Squash merge of phase/02-l1-modules into milestone/v1.0-initial; 8 L1 stub modules created; verify_phase02.sh green.
4.0 KiB
phase, name, milestone, milestone_type, status, requirements, must_haves, verification
| phase | name | milestone | milestone_type | status | requirements | must_haves | verification | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 02 | l1-modules | v1.0 | feature | planned |
|
|
|
Phase 02 — l1-modules PLAN
Goal
Create the 8 L1 stub modules under modules/l1/. Each module has a
manifest.yaml (declared inputs, flat string map per D-017) and a uniform
mock_apply.sh (echo + 1s sleep + exit 0 per D-007/D-018). After this phase,
Phase 03 can compose L1s into L2 modules and mock_executor.sh can iterate
over an L2's L1 references.
Requirements covered
- REQ-02: 8 L1 module folders exist (exact names)
- REQ-03: each L1 has manifest.yaml + mock_apply.sh with the uniform behavior
Waves (vertical slices)
Wave 1 — infra-stub-engineer (creates the 8 L1s)
Tasks:
- T-2.1 Create
modules/l1/l1-eks-fargate/{manifest.yaml, mock_apply.sh} - T-2.2 Create
modules/l1/l1-iam-role/{manifest.yaml, mock_apply.sh} - T-2.3 Create
modules/l1/l1-lambda/{manifest.yaml, mock_apply.sh} - T-2.4 Create
modules/l1/l1-api-gateway/{manifest.yaml, mock_apply.sh} - T-2.5 Create
modules/l1/l1-eventbridge/{manifest.yaml, mock_apply.sh} - T-2.6 Create
modules/l1/l1-sqs/{manifest.yaml, mock_apply.sh} - T-2.7 Create
modules/l1/l1-s3/{manifest.yaml, mock_apply.sh} - T-2.8 Create
modules/l1/l1-cloudwatch/{manifest.yaml, mock_apply.sh}
Each L1's manifest.yaml declares 1-3 plausible inputs for that primitive
(e.g., l1-s3 declares bucket_name, region, retention_days; l1-iam-role
declares role_name, trust_policy). Each mock_apply.sh follows the exact
uniform template from ARCHITECTURE.md.
Files owned (territory): modules/l1/**
Commits: one per task, ---ci--- block has phase: 2, status: plan-as-execute, persona: infra-stub-engineer, task: T-2.x, requirements.covered: [REQ-02, REQ-03].
Wave 2 — lead-developer (verification script + traceability)
Tasks:
- T-2.9 Create
scripts/verify_phase02.sh. It:- Enumerates
modules/l1/*/and confirms exactly 8 folders with the 8 expected names. - For each L1: confirms
manifest.yamlexists and parses as YAML withnamematching the folder,kind: l1, and aninputs:map. - For each L1: confirms
mock_apply.shis executable,bash -nclean, runs in <2s, exits 0, and its stdout contains the[L1: <name>] applying...and[L1: <name>] OKmarkers. - Prints a PASS/FAIL summary; exits 0 on full success.
- Enumerates
- T-2.10 Update
.ciagent/REQUIREMENTS.md(REQ-02/03 → covered pending VERIFY) and.ciagent/ROADMAP.md(Phase 02 → executing). No README change.
Files owned (territory): scripts/verify_phase02.sh, .ciagent/REQUIREMENTS.md, .ciagent/ROADMAP.md
Commits: one per task, ---ci--- block has phase: 2, status: plan-as-execute, persona: lead-developer, task: T-2.9/2.10.
Wave ordering
- Wave 1 (infra-stub-engineer) creates all 8 L1s. A single subagent gets all 8 tasks; it commits per task.
- Wave 2 (lead-developer) adds the verify script and traceability after the L1s exist.
backend-engineer, data-engineer, frontend-engineer have 0 tasks this phase.
Dependencies
- Depends on Phase 01 (the
modules/l1/.gitkeepfrom T-1.1 is replaced by real folders). - Phase 03 depends on this phase for L1 references in L2 compositions.