6e27df7404
---ci--- phase: 2 milestone: v1.0 status: shipped requirements: complete: [REQ-02, REQ-03] release: tag: v1.0.2 pr: 2 ---/ci--- ROADMAP Phase 02 -> complete (v1.0.2). REQUIREMENTS REQ-02/03 -> complete.
4.5 KiB
4.5 KiB
ACDL — Requirements
v1
Category: Repos & Org
- REQ-01: All demo code lives under the
continuous-intelligenceGitea org athttps://git.cloudinit.dev. - REQ-09: Three repos exist:
acdl(platform + stubs + reusable workflows),acdl-contracts(developer surface),acdl-evidence(Pages audit timeline).
Category: L1 Modules
- REQ-02: 8 L1 module folders exist under
acdl/modules/l1/:l1-eks-fargate,l1-iam-role,l1-lambda,l1-api-gateway,l1-eventbridge,l1-sqs,l1-s3,l1-cloudwatch. - REQ-03: Each L1 module has a
manifest.yaml(declaring inputs) and amock_apply.shthat echoes success, sleeps 1s, and exits 0.
Category: L2 Modules
- REQ-04: 4 L2 modules exist under
acdl/modules/l2/:l2-invoice-service,l2-commodity-price-feed,l2-energy-analytics-api,l2-regulatory-reporting, each composing the specified L1s. - REQ-05: L2 modules compose L1 primitives into deployable shapes with a maximum depth of 5.
Category: Core Scripts
- REQ-06:
mock_executor.shreads an L2 composition, invokes each L1mock_apply.sh, and writesstate.json. - REQ-07:
policy_checker.pyreadscontract.yamland fails withPOLICY_VIOLATION:PUBLIC_INGRESSonpublic-ingress: true; otherwise passes. - REQ-08:
confidence_signal.pyreturns a base score of 0.90 and drops to 0.40 (with reason code) when policy fails; gate threshold is ≥ 0.50.
Category: Evidence Stream
- REQ-11:
evidence_writer.pyappends events toaudit.jsonand links each event to the previous via a SHA-256 hash chain (prev_hash+ ownhash). - REQ-13:
acdl-evidenceis Pages-enabled and servesaudit.jsonplusindex.html.
Category: Pipeline
- REQ-10: The reusable pipeline runs Dev (autonomous), pauses at QA (manual approval), pauses at Prod (manual approval), then finalizes by committing
audit.jsontoacdl-evidence. - REQ-12: Opening an Issue in
acdl-contractsrunsl3b_agent_stub.py, commits a generatedcontract.yamlto a new branch, closes the Issue, and triggers the main pipeline.
Category: Demo Acts
- REQ-14:
index.htmluses vanilla JS to fetchaudit.jsonfrom the Pages URL and render events as a timeline. - REQ-15: All four demo acts (Friction, Developer Self-Service, Citizen Developer, Safety Net) reproduce deterministically in a dry run.
v2
(None — v1 covers the complete demo.)
Clarifications (Phase 01)
| REQ | Original criterion | Clarified criterion (effective) | Decision |
|---|---|---|---|
| REQ-09 | Three repos exist | Three repos exist (acdl, acdl-contracts, acdl-evidence) under continuous-intelligence; new repos use default_branch: "main", auto_init: true |
D-015 |
| REQ-10 | "Pages returns 200 with placeholder index.html" on acdl-evidence |
Gitea has no Pages; substitute: an HTTP GET against the raw file URL https://git.cloudinit.dev/continuous-intelligence/acdl-evidence/raw/branch/main/index.html returns 200 with the placeholder HTML body |
D-012, D-016 |
| REQ-10 | "qa and prod environments exist on acdl-contracts" |
Gitea has no environments API and ignores environment: blocks; substitute: the reusable workflow defines qa-gate and prod-gate jobs gated by workflow_dispatch approval inputs (D-004 fallback); a qa and prod branch may be created on acdl-contracts as a visible stand-in for environments |
D-013 |
Out of Scope
| Feature | Reason |
|---|---|
| Real cloud provisioning (AWS/GCP/Azure) | Demo explicitly stubs all infrastructure; no cloud access available. |
| Real LLM inference / external AI APIs | Spec forbids external AI; L3B is a keyword parser. |
| Production-grade infrastructure | Demo target is a 30-minute executive show, not a production system. |
| Adversarial tamper-proofing of evidence | Hash chain is demonstrative; not cryptographically secure against a determined attacker. |
| Multi-tenant isolation | Out of demo scope. |
Traceability
| Requirement | Phase | Status |
|---|---|---|
| REQ-01 | 1 | complete (v1.0.1) |
| REQ-02 | 2 | complete (v1.0.2) |
| REQ-03 | 2 | complete (v1.0.2) |
| REQ-04 | 3 | pending |
| REQ-05 | 3 | pending |
| REQ-06 | 3 | pending |
| REQ-07 | 3 | pending |
| REQ-08 | 3 | pending |
| REQ-09 | 1 | complete (v1.0.1) |
| REQ-10 | 4 | partial (skeleton in Phase 01 v1.0.1; full impl in Phase 04) |
| REQ-11 | 3 | pending |
| REQ-12 | 4 | partial (skeleton in Phase 01 v1.0.1; full impl in Phase 04) |
| REQ-13 | 5 | pending |
| REQ-14 | 5 | pending |
| REQ-15 | 5 | pending |