0540b4e596
---ci--- phase: 3 milestone: v1.0 status: execute persona: lead-developer task: T-3.11 requirements: covered: [REQ-04, REQ-05, REQ-06, REQ-07, REQ-08, REQ-11] partial: [REQ-12] ---/ci--- Wave 3, task T-3.11. REQUIREMENTS: REQ-04/05/06/07/08/11 -> covered (pending VERIFY). REQ-12 -> partial (l3b_agent_stub created in Phase 03; full issue-trigger wiring in Phase 04). ROADMAP Phase 03 -> executing.
59 lines
3.4 KiB
Markdown
59 lines
3.4 KiB
Markdown
# ACDL — Roadmap
|
|
|
|
## Overview
|
|
|
|
Five-phase breakdown to take ACDL from empty repo to a reproducible 4-act executive demo. Milestone `v1.0-initial` covers the full demo build. Each phase produces a runnable increment and ends with a phase-completion commit + tag.
|
|
|
|
## Phases
|
|
|
|
### Phase 01 — repo-scaffolding
|
|
- **Description:** Create the three repos under `continuous-intelligence` (`acdl-contracts`, `acdl-evidence`; `acdl` already exists), seed directory layouts, configure Pages on `acdl-evidence`, add environment protection for `qa` and `prod` on `acdl-contracts`.
|
|
- **Status:** complete (v1.0.1)
|
|
- **Depends on:** —
|
|
- **Requirements:** REQ-01, REQ-09, REQ-10
|
|
- **Success Criteria:**
|
|
- `acdl-contracts` and `acdl-evidence` exist and are pushable.
|
|
- `acdl-evidence` Pages returns 200 with placeholder `index.html`.
|
|
- `qa` and `prod` environments exist on `acdl-contracts`.
|
|
|
|
### Phase 02 — l1-modules
|
|
- **Description:** Create all 8 L1 module folders under `acdl/modules/l1/`, each with `manifest.yaml` (declared inputs) and `mock_apply.sh` (uniform echo + 1s sleep + exit 0).
|
|
- **Status:** complete (v1.0.2)
|
|
- **Depends on:** [1]
|
|
- **Requirements:** REQ-02, REQ-03
|
|
- **Success Criteria:**
|
|
- All 8 L1s present; `mock_apply.sh` runs and exits 0 for each.
|
|
- `manifest.yaml` validates against the L1 schema.
|
|
|
|
### Phase 03 — l2-modules-and-core-scripts
|
|
- **Description:** Create the 4 L2 compositions under `acdl/modules/l2/` referencing L1s, plus the 5 core scripts in `acdl/scripts/` (`mock_executor.sh`, `policy_checker.py`, `confidence_signal.py`, `evidence_writer.py`, `l3b_agent_stub.py`).
|
|
- **Status:** executing
|
|
- **Depends on:** [2]
|
|
- **Requirements:** REQ-04, REQ-05, REQ-06, REQ-07
|
|
- **Success Criteria:**
|
|
- `mock_executor.sh` applies each L1 in an L2 and writes `state.json`.
|
|
- `policy_checker.py` fails on `public-ingress: true` with `POLICY_VIOLATION:PUBLIC_INGRESS`.
|
|
- `confidence_signal.py` returns 0.90 (pass) / 0.40 (fail).
|
|
- `evidence_writer.py` appends an event with a valid hash chain.
|
|
- `l3b_agent_stub.py` maps the Act 3 example issue to `l2-commodity-price-feed`.
|
|
|
|
### Phase 04 — pipeline-and-approval-gates
|
|
- **Description:** Build the reusable pipeline workflow in `acdl/.gitea/workflows/` (Dev → QA → Prod → Finalize) plus the issue-triggered L3B workflow in `acdl-contracts/.gitea/workflows/`. Wire environment protection for QA and Prod.
|
|
- **Status:** not_started
|
|
- **Depends on:** [3]
|
|
- **Requirements:** REQ-08, REQ-09, REQ-10, REQ-12
|
|
- **Success Criteria:**
|
|
- Pushing a valid `contract.yaml` runs Dev automatically and pauses at QA.
|
|
- Approving QA moves to Prod; approving Prod finalizes.
|
|
- Opening an Issue with the Act 3 text generates a `contract.yaml` commit and triggers the pipeline.
|
|
|
|
### Phase 05 — evidence-ui-and-demo-dry-run
|
|
- **Description:** Build `index.html` (vanilla JS, fetches `audit.json`, renders timeline) and run all four acts end-to-end as a dry run.
|
|
- **Status:** not_started
|
|
- **Depends on:** [4]
|
|
- **Requirements:** REQ-11, REQ-13, REQ-14, REQ-15
|
|
- **Success Criteria:**
|
|
- Pages timeline renders events from `audit.json`.
|
|
- Act 2: valid contract passes through all gates; timeline shows the full flow.
|
|
- Act 3: Issue text produces the expected `l2-commodity-price-feed` contract and triggers the pipeline.
|
|
- Act 4: malicious `public-ingress: true` contract halts in Dev with confidence < 0.50 and a visible rejection reason on the timeline. |