docs(milestone): complete v1.12 — Presentation Refinement (tag v1.12.0)

---
ci---
project: acdl
phase: 0
milestone: v1.12
status: complete
requirements:
  covered: [REQ-129, REQ-130, REQ-134, REQ-131, REQ-132, REQ-133]
  partial: []
---
/ci---

Milestone v1.12 complete. All 6 requirements satisfied:
- REQ-129: adapter dedup defect fixed (CAP-013 Verified).
- REQ-130: 2 regression-probe bugs fixed (CAP-017/018).
- REQ-134: lifecycle tests plan-only default + ACDL_LIFECYCLE_MODE flag.
- REQ-131: decks match CAPABILITY_INVENTORY.md (22/22 Verified, zero
  stale claims except the honest 'v1.10 status is closed' disclosure).
- REQ-132: decks reflect v1.11 architecture + roadmap (v1.10 no longer
  NEXT); version refs bumped to @v1.12.
- REQ-133: A6 (real cost figures + pre-mortem) + A7 (stateless adapter +
  lifecycle pipeline); HTML re-rendered; PPTX exported for the release.

Verification: 522 tests pass; 22/22 capabilities Verified (D-091);
run_platform.sh --check-only green; run_ci.sh green; ci-doc-verifier
grep clean; multi-persona review clean (P1 remediated).

ROADMAP.md v1.12 section added; v1.11 marked complete; config.json
status -> complete, ship_tag v1.12.0. Version refs @v1.11 -> @v1.12
(decks re-rendered). PPTX in /tmp/v1.12-release/ for the Gitea upload.
This commit is contained in:
Jon Chery
2026-07-29 13:48:06 +00:00
parent 6d8c098205
commit 0f6d10a2b6
7 changed files with 103 additions and 29 deletions
+6 -6
View File
@@ -596,12 +596,12 @@ two probe fixes required to make the deck claims true.
| Requirement | Phase | Status |
|-------------|-------|--------|
| REQ-129 | P67 | planned |
| REQ-130 | P67 | planned |
| REQ-134 | P67b | planned |
| REQ-131 | P68, P70 | planned |
| REQ-132 | P68 | planned |
| REQ-133 | P69, P70 | planned |
| REQ-129 | P67 | complete |
| REQ-130 | P67 | complete |
| REQ-134 | P67b | complete |
| REQ-131 | P68, P70 | complete |
| REQ-132 | P68 | complete |
| REQ-133 | P69, P70 | complete |
### Out of Scope (v1.12)
- docs/ site, README.md, consumer-guide, module READMEs (decks only).
+75 -1
View File
@@ -22,7 +22,8 @@
- **v1.10 (complete, tag `v1.10.0`):** pipeline regression fix + capability re-verification + verified-reality rewrite. The v1.9.1v1.9.8 deck work is **superseded-by-reverification**: the decks presented advertised capability as current without disclosing that the platform had decayed (7 adapter defects prevented `terraform init/validate/plan` against live AWS). v1.10 re-verified every advertised capability, fixed all 7 defects in-sweep (D-090: no cap), and rewrote PROJECT/ROADMAP/decks to match verified reality. Decks unfrozen only after Phase 55 lands. See the v1.10 section below for the 4-phase breakdown.
- **v1.10.1 (complete, tag `v1.10.1`):** post-v1.10 NFR patch — adversarial grill review (12 challenges, 10 binding decisions, 2 escalations: G-005 risks, G-008 budget), 4-layer verify gate (PASS), multi-persona code review (1 P1 auto-fixed: mis-citation PROJECT.md:6 → PROJECT.md:487). ACDL reclassified as OSS reference implementation (G-003). Docs-only; 518 tests pass; regression gate 16/16 Verified. Gitea release id 236.
- **v1.10.2 (complete, tag `v1.10.2`):** contract surface redesign + rename + .yml repo-wide + deck polish. Breaking contract schema change: new top-level fields `id`/`name`/`infrastructure`; dropped `uses:`/`module:`/`inputs:`. All 44 `.yaml``.yml`. Code review: 3 P0 auto-fixed, 2 P1+ flagged. 494 tests pass. Gitea release id 237.
- **v1.11 (active, tag `v1.11.0`):** RESTART — stateless adapter + pipeline-driven module lifecycle testing. Closes G-005 (CAP-017..022 deploy-unverified) and G-008 (no cost docs) via a corrected architecture, not the failed v1.11 first attempt (which produced 4 drifted VPCs, ran terraform apply from Python, and had no module lifecycle tests). The restart branches off `v1.10.2` and rebuilds v1.11 on three corrections: (1) the terraform adapter becomes a stateless assembler — each L1 module ships a real `terraform/` module dir (variables/locals/main/outputs) owning its resource shape, nested blocks, and defaults; the adapter deletes `TYPE_MAP`/`INPUT_MAP`/`OUTPUT_MAP` and all 39 type-specific branches, becoming a ~80-line assembler that emits `module "x" { source = ... }` blocks; (2) lifecycle is owned by terraform via the shell orchestrator (`run_platform.sh --apply`/`--destroy`), never by Python — `verify_deploy_microservice.py` is deleted; (3) testing is pipeline-driven — a `modules-lifecycle` pipeline (Gitea + GitHub, byte-identical) matrix-runs each L1 module's `examples/{simple,complex}.yml` contracts through apply→modify→destroy against live AWS; no per-module Python. A single platform VPC (`terraform/platform`) is shared by all stacks via `data` source — no per-contract VPC. State keys are deterministic and env-aware (`spike/{id}/{env}/terraform.tfstate`), stable across lifecycle changes. 13 phases (P56aP65). See the v1.11 section below for the phase breakdown.
- **v1.11 (complete, tag `v1.11.0`):** RESTART — stateless adapter + pipeline-driven module lifecycle testing. Closes G-005 (CAP-017..022 deploy-unverified) and G-008 (no cost docs) via a corrected architecture, not the failed v1.11 first attempt (which produced 4 drifted VPCs, ran terraform apply from Python, and had no module lifecycle tests). The restart branches off `v1.10.2` and rebuilds v1.11 on three corrections: (1) the terraform adapter becomes a stateless assembler — each L1 module ships a real `terraform/` module dir (variables/locals/main/outputs) owning its resource shape, nested blocks, and defaults; the adapter deletes `TYPE_MAP`/`INPUT_MAP`/`OUTPUT_MAP` and all 39 type-specific branches, becoming a ~80-line assembler that emits `module "x" { source = ... }` blocks; (2) lifecycle is owned by terraform via the shell orchestrator (`run_platform.sh --apply`/`--destroy`), never by Python — `verify_deploy_microservice.py` is deleted; (3) testing is pipeline-driven — a `modules-lifecycle` pipeline (Gitea + GitHub, byte-identical) matrix-runs each L1 module's `examples/{simple,complex}.yml` contracts through apply→modify→destroy against live AWS; no per-module Python. A single platform VPC (`terraform/platform`) is shared by all stacks via `data` source — no per-contract VPC. State keys are deterministic and env-aware (`spike/{id}/{env}/terraform.tfstate`), stable across lifecycle changes. 13 phases (P56aP65). See the v1.11 section below for the phase breakdown.
- **v1.12 (complete, tag `v1.12.0`):** Presentation Refinement — the leadership decks synced to the v1.11-verified reality (22/22 Verified, stateless adapter, lifecycle pipeline, cost figures, pre-mortem). Includes the CAP-013 adapter dedup fix + 2 probe fixes (required to make the deck claims true) + the ACDL_LIFECYCLE_MODE CI flag (lifecycle tests default to plan-only, full on override). 6 phases (P66P70). See the v1.12 section below.
- **v1.0 demo URL:** https://git.cloudinit.dev/continuous-intelligence/acdl-evidence/raw/branch/main/index.html
---
@@ -886,3 +887,76 @@ Wave 4 (P63 → P64 → P65) closes G-005/G-008 + teardown + deck rewrite.
After Phase P65: COMPLETE gate — review → ship `v1.11.0` (next minor;
feature milestone) → audit. **DONE.**
## v1.12 (complete — Presentation Refinement, tag `v1.12.0`)
The v1.12 milestone refines the leadership presentation decks to reflect
the verified reality after v1.11. The v1.11 P65 deck-rewrite task did not
fully land on the deck artifacts: the rendered HTML still claimed 6 cloud
capabilities were "deploy-unverified (IAM drift)", the road-to-north-star
diagram still showed v1.10 as "NEXT", and the v1.11 architecture stories
(stateless adapter, pipeline-driven lifecycle testing) were absent. The
v1.10 decay lesson (PRE_MORTEM.md FM-3) requires decks to match verified
reality exactly, not outrun it.
**Scope:** leadership decks only (`docs/presentations/`) across all four
layers (source markdown, Marp deck, rendered HTML, talking points) +
diagrams + README. Plus one real adapter fix + two probe fixes required to
make the deck claims true, and a CI lifecycle-mode flag (REQ-134) that
defaults the lifecycle tests to plan-only.
**Why the code fixes.** The v1.12 regression gate run (Phase 66) found
CAP-013 (a real adapter dedup defect — multi-resource L1s produced invalid
Terraform) + CAP-017/018 (two regression-probe bugs). The inventory's
"22/22 Verified" claim was overstated until CAP-013 was fixed. The pre-
mortem mitigation (verified-only claims) made the fixes mandatory.
**Why the lifecycle flag.** The lifecycle pipeline defaulted to full
apply→modify→destroy, which requires AWS credentials + cost on every PR.
REQ-134 adds the `ACDL_LIFECYCLE_MODE` CI variable (workflow_dispatch
input `lifecycle_mode`, default `plan`) so the pipeline runs plan-only on
every PR (fast, no AWS mutation, no cost) and full only on override.
### Phase breakdown (6 phases)
- **P66 — init + research.** Drift audit (9 items) comparing
`docs/presentations/*` against v1.11-verified reality. Regression gate
(D-091) re-run surfaced 3 Broken capabilities; root-cause analysis
classified CAP-013 (real adapter defect), CAP-017/018 (probe bugs).
REQ-129..133 added.
- **P67 — fix adapter dedup + 2 probe bugs (REQ-129/130).** The adapter's
module-call dedup logic rewritten: multi-resource L1s (ecs-service, alb)
now emit ONE module block named by the composition child id, with
expanded sub-ids rewritten via id_remap (stack outputs + cross-module
ref: inputs). terraform validate succeeds for the microservice; adapter
192 lines (< 200 gate). CAP-017 probe: locals.tf conditional on local.*
usage. CAP-018 probe: LocalLambdaStub constructed with the required
outbox arg. Regression gate: 22/22 Verified.
- **P67b — lifecycle tests plan-only default + ACDL_LIFECYCLE_MODE flag
(REQ-134).** The four lifecycle scripts dispatch to --plan-only (plan
mode, default) or --apply/--destroy (full mode). Both workflows
(byte-identical) expose lifecycle_mode as a workflow_dispatch input;
CI VPC jobs skipped in plan mode. 24 new tests.
- **P68 — sync decks source .md (REQ-131/132).** Re-verification headers
→ 22/22 Verified. De-duplicated story-beat lines. Version refs
@v1.10 → @v1.11. road-to-north-star.mmd re-rendered. New A6 (real
COST.md figures + pre-mortem) + A7 (stateless adapter + lifecycle
pipeline + plan-only default) in both decks.
- **P69 — Marp + talking points + HTML render (REQ-133).** Re-synthesized
both Marp decks (10 main + 7 appendix = 17 slides). Re-distilled both
talking-points files (added the missing A6/A7 sections). Re-rendered
both HTML (committed). Exported both PPTX (held for the v1.12.0
release).
- **P70 — verify + review + complete.** Multi-persona code review: no P0;
2 P1 testing gaps remediated (6 CAP-013 regression tests added —
terraform validate + dedup unit assertions). Audit clean. 522 tests
pass. Ship v1.12.0.
**Outcome:** the decks now honestly claim 22/22 Verified (backed by the
regression gate), reflect the v1.11 architecture (stateless adapter +
lifecycle pipeline), carry the real cost figures + pre-mortem, and the
lifecycle pipeline defaults to plan-only. The v1.10 "deploy-unverified
(IAM drift)" framing is disclosed as closed, not hidden.
Ship tag at milestone COMPLETE: `v1.12.0` (v1.11.0 → v1.12.0; feature
milestone — includes the adapter fix + lifecycle flag). **DONE.**
+3 -3
View File
@@ -5,10 +5,10 @@
"slug": "acdl",
"name": "Agentic Cloud Delivery Platform",
"milestone": "v1.12",
"status": "active",
"restart": false,
"status": "complete",
"milestone_branch": "milestone/v1.12-presentation",
"milestone_base": "v1.11.0"
"milestone_base": "v1.11.0",
"ship_tag": "v1.12.0"
}
],
"active_project": "acdl",