Implements Task 25: Kustomize Dev Overlay + Resource Limits + Health Checks Files Created: - infra/k8s/overlays/dev/kustomization.yaml - Dev overlay config - References base manifests - Namespace: workclub-dev - Replicas: 1 for all deployments - Image tags: dev for workclub-api and workclub-frontend - Environment label: development - infra/k8s/overlays/dev/patches/backend-resources.yaml - Backend resources: cpu=50m-200m, memory=128Mi-256Mi - Strategic merge patch targeting workclub-api deployment - infra/k8s/overlays/dev/patches/frontend-resources.yaml - Frontend resources: cpu=50m-200m, memory=128Mi-256Mi - Strategic merge patch targeting workclub-frontend deployment - frontend/src/app/api/health/route.ts - Missing health endpoint (declared in base manifest but not implemented) - Simple Next.js route handler returning {status: 'ok'} Resource Limits (Dev vs Base): - Dev: 50m-200m CPU, 128Mi-256Mi memory (50% of base) - Base: 100m-500m CPU, 256Mi-512Mi memory Verification: - kustomize build succeeds (exit 0) - All deployments replicas=1 - Lower resource limits applied correctly - Image tags set to dev - Frontend /api/health route registered - Evidence saved to .sisyphus/evidence/task-25-kustomize-dev.yaml (495 lines) Note: commonLabels deprecated warning (non-blocking), consider using labels in future.
- Create domain entities in WorkClub.Domain/Entities: Club, Member, WorkItem, Shift, ShiftSignup - Implement enums: SportType, ClubRole, WorkItemStatus - Add ITenantEntity interface for multi-tenancy support - Implement state machine validation on WorkItem with C# 14 switch expressions - Valid transitions: Open→Assigned→InProgress→Review→Done, Review→InProgress (rework) - All invalid transitions throw InvalidOperationException - TDD approach: Write tests first, 12/12 passing - Use required properties with explicit Guid/Guid? for foreign keys - DateTimeOffset for timestamps (timezone-aware, multi-tenant friendly) - RowVersion byte[] for optimistic concurrency control - No navigation properties yet (deferred to EF Core task) - No domain events or validation attributes (YAGNI for MVP)