---ci---
phase: 1
milestone: v1.0
status: plan
plan:
waves: 3
wave_1_coordination: [T-1.1 gitignore+layout+README, T-1.2 verify_phase01.sh]
wave_2_backend: [T-2.1 gitea_setup.sh, T-2.2 pipeline.yml skeleton, T-2.3 issue-to-contract.yml skeleton]
wave_3_coordination: [T-3.1 wire verify + traceability update]
requirements_covered: [REQ-01, REQ-09, REQ-10]
must_haves: 6
verification:
typecheck: bash -n scripts/*.sh
test: scripts/verify_phase01.sh
build: no-op
---/ci---
PLAN.md defines 3 vertical-slice waves: coordination (skeleton + verify
script), backend (Gitea setup + workflow skeletons), coordination (wiring +
traceability). infra-stub-engineer and frontend-engineer have 0 tasks this
phase. Branch for EXECUTE will be phase/01-repo-scaffolding.
7.2 KiB
phase, name, milestone, milestone_type, status, requirements, must_haves, verification
| phase | name | milestone | milestone_type | status | requirements | must_haves | verification | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | repo-scaffolding | v1.0 | feature | planned |
|
|
|
Phase 01 — repo-scaffolding PLAN
Goal
Stand up the three-repo scaffold under the continuous-intelligence Gitea org
and the Phase 01 visible artifacts in the local acdl checkout: the
Gitea-setup script, the workflow skeletons, and the Phase 01 verification
script. After this phase, Phases 02-05 can push stub modules, core scripts,
and workflows into the right repos.
Requirements covered
- REQ-01: All demo code lives under
continuous-intelligenceGitea org - REQ-09: Three repos exist (
acdl,acdl-contracts,acdl-evidence) - REQ-10: reusable pipeline runs Dev → QA (approval) → Prod (approval) → Finalize; Phase 01 builds the skeleton (gates wired in Phase 04)
Waves (vertical slices, executed in domain priority order)
Wave 1 — coordination (lead-developer)
Tasks:
- T-1.1 Add
.gitignore(ignoreaudit.jsonartifacts,__pycache__/,*.pyc,state.json,.env). Create repo directory layout markers:scripts/.gitkeep,modules/l1/.gitkeep,modules/l2/.gitkeep,.gitea/workflows/.gitkeep. Add a top-levelREADME.mdwith the project name, the 4-act demo summary, and a pointer to.ciagent/PROJECT.md. - T-1.2 Add
scripts/verify_phase01.sh— the Phase 01 verification script. It reads$ACDL_GITEA_TOKENfrom the env, calls the Gitea API to confirm both new repos exist, curls the rawindex.htmlURL, lists branches onacdl-contractslooking forqaandprod, and prints a PASS/FAIL summary. Exits 0 on success, non-zero on any failure. Idempotent.
Files owned (territory):
.gitignore,README.mdscripts/.gitkeep,modules/l1/.gitkeep,modules/l2/.gitkeep,.gitea/workflows/.gitkeepscripts/verify_phase01.sh
Commits: one per task, ---ci--- block has phase: 1, status: plan-as-execute, persona: lead-developer, task: T-1.x, requirements.covered: [REQ-01].
Wave 2 — backend (backend-engineer)
Tasks:
- T-2.1 Add
scripts/gitea_setup.sh. Idempotent. Reads$ACDL_GITEA_TOKENand$GITEA_HOST(defaulthttps://git.cloudinit.dev). Createsacdl-contractsandacdl-evidenceundercontinuous-intelligenceif missing (POST/orgs/continuous-intelligence/reposwithauto_init: true,default_branch: "main",private: true). Pushes a placeholderindex.htmltoacdl-evidencemain via the Gitea file-contents API (POST/repos/{owner}/{repo}/contents/{path}with base64 content + "Initial placeholder" commit message). Createsqaandprodbranches onacdl-contractsfrommainvia the Gitea branch API (POST/repos/{owner}/{repo}/branches). All HTTP errors are logged with status + body; the script is idempotent (409 / "already exists" treated as success). Usescurl+python3 -cfor base64 encoding; no jq dependency. - T-2.2 Add
acdl/.gitea/workflows/pipeline.ymlskeleton.on: workflow_call. Four jobs:dev(runs-on ubuntu-latest, placeholder "Dev stage" step),qa-gate(needs dev, runs-on ubuntu-latest, placeholder "Awaiting QA approval" step; in Phase 04 this becomes aworkflow_dispatchapproval input per D-013),prod-gate(needs qa-gate, placeholder "Awaiting Prod approval"),finalize(needs prod-gate, placeholder "Commit audit.json to acdl-evidence"). All steps are explicit placeholders marked# Phase 04 will implement. Comment at top documents the branch-pin rule (@milestone/v1.0-initial). - T-2.3 Add
acdl-contracts/.gitea/workflows/issue-to-contract.ymlskeleton (committed to theacdlrepo undercontracts-repo/.gitea/workflows/as a reference copy; pushed to the actualacdl-contractsrepo in Phase 04).on: issueswithtypes: [opened]. One jobparse-and-triggerwith placeholder steps for: checkout, runl3b_agent_stub.py, commitcontract.yaml, push, trigger theacdlpipeline viaworkflow_dispatchAPI (D-014). Marked# Phase 04 will implement.
Files owned (territory):
scripts/gitea_setup.sh.gitea/workflows/pipeline.ymlcontracts-repo/.gitea/workflows/issue-to-contract.yml(reference copy in theacdlrepo; source of truth for Phase 04)
Commits: one per task, ---ci--- block has persona: backend-engineer, task: T-2.x, requirements.covered: [REQ-01 or REQ-09 or REQ-10].
Wave 3 — coordination (lead-developer, verification wiring)
Tasks:
- T-3.1 Run
scripts/gitea_setup.shagainst the live Gitea (executed as part of EXECUTE; recorded as a commit only if it modifies repo state — it does not, so no commit. Instead, the verify run in Wave 3 confirms the artifacts exist via the API.) Addscripts/verify_phase01.shinvocation note to README.md ("Runscripts/verify_phase01.shafterscripts/gitea_setup.shto confirm Phase 01 success criteria"). Update.ciagent/REQUIREMENTS.mdTraceability table to mark REQ-01/09/10 ascovered(pending VERIFY confirmation). Update.ciagent/ROADMAP.mdPhase 01 status toexecuting(will flip tocompleteon SHIP).
Files owned (territory):
README.md(update).ciagent/REQUIREMENTS.md(traceability update only).ciagent/ROADMAP.md(phase status update only)
Commits: one for T-3.1 (a chore(P01) update with phase: 1, status: execute, persona: lead-developer, task: T-3.1).
Wave ordering rationale
- Wave 1 (coordination) creates the directory skeleton + verification script so Wave 2's scripts have a place to live and a check to satisfy.
- Wave 2 (backend) builds the Gitea setup script and workflow skeletons.
- Wave 3 (coordination) wires the verification script into README and updates traceability after Wave 2's scripts exist.
- infra-stub-engineer and frontend-engineer have 0 tasks this phase (per PERSONAS.md), so their persona groups are skipped.
Dependencies on other phases
None. Phase 01 is self-contained. Phases 02-05 depend on Phase 01 having created the two new repos and the workflow skeletons.
Risk notes
- If
gitea_setup.shhits a 401/403, treat as an escalation (token scope insufficient). Per run.md Step 4: retry once, then escalate. Do NOT proceed to SHIP with uncreated repos. - The Gitea file-contents API requires the file to NOT already exist on first POST. The script must check existence first (GET) and skip POST if 200. Otherwise 422.
- Creating branches requires the default branch to exist first (
auto_init: truehandles this).