Files
acdl/.ciagent/PLAN.md
T
Jon Chery 772ac721b0 docs(P52): create v1.10 milestone plan — pipeline regression fix + capability re-verification
---ci---
project: acdl
phase: 52
milestone: v1.10
status: plan
decisions: [D-090, D-091, D-092, D-093, D-094]
requirements: [REQ-112, REQ-113, REQ-114, REQ-115]
---/ci---
2026-07-27 17:10:09 +00:00

194 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
phase: 52-55
name: v1.10-pipeline-regression-fix-and-capability-reverification
milestone: v1.10
requirements: [REQ-112, REQ-113, REQ-114, REQ-115]
type: fix/test/docs
---
# ACDL v1.10 — Pipeline Regression Fix + Capability Re-Verification
> Milestone v1.10. Generated at PLAN stage. Autonomy: full.
> Requirements: REQ-112..REQ-115 (see REQUIREMENTS.md).
> Decisions: D-090..D-094 (see PROJECT.md).
> Versioning: NFR/fix milestone — progressive patch versions per phase
> (v1.9.9..v1.9.12), tag `v1.10.0` at milestone COMPLETE (next minor;
> this is fix/test/docs, not a breaking schema change).
## Context
The CLARIFY/RESEARCH stages (this run, 2026-07-27) surfaced a structural
defect and a credibility gap:
1. **VERIFY is diff-scoped (D-091).** The CIAgent VERIFY stage checks the
phase diff only; it never re-runs underlying platform capability. The
pipeline has no regression memory. As a result, 8 NFR-patch phases
(v1.9.1→v1.9.8, deck rework) passed VERIFY while the platform they
described decayed underneath them.
2. **Advertised capability is not currently reproducible.** The v1.2 ECS
Fargate E2E and v1.7 pipelines ran once historically (tags true at the
time) but are not reproducible today without revival work. The decks
present this capability as current without disclosing the decay.
3. **Decks froze critical-path work but were sequenced backwards.** Deck
rework (v1.9.1→v1.9.8) was justified by real incremental exec viewings,
but the feedback signal was mixed/ambiguous (thesis-not-landing +
demand-proof + needs-polish). The honest sequencing is re-verify →
rewrite docs/decks to match reality → polish. This was done backwards
for 8 phases.
User decisions (this run):
- **D-090:** No cap on the re-verification sweep. Fix every advertised
capability in-sweep; all must end Verified. Unbounded-risk trade-off
accepted for full integrity. Decks stay frozen until the sweep completes.
- **D-091:** Add a regression-class VERIFY that re-runs capability checks
(not just diff checks), at minimum on milestone completion.
- **D-092:** Build local emulating adapters (flat-file outbox, local ECS
emulator, local S3 state, local Lambda stub) so the platform is fully
locally testable without cloud credentials.
- **D-093:** Re-verify every v1.1→v1.8 advertised capability. v1.0 demo
excluded as archived/superseded. Headline E2E runs both live-AWS and
local-emulator tiers (both must pass); all other capabilities run
locally via emulating adapters.
- **D-094:** Rewrite PROJECT/ROADMAP/decks to match verified reality;
decks unfrozen only after this lands.
## Wave ordering
- **Wave 1 (sequential):** Phase 52 — pipeline regression-VERIFY fix.
Must land first; the sweep runs through the fixed pipeline.
- **Wave 2 (sequential):** Phase 53 — local emulating adapters. The
sweep's local tier depends on these.
- **Wave 3 (sequential):** Phase 54 — v1.1→v1.8 capability re-verification
sweep. Fix in-sweep per D-090 (no cap). Tag each capability
Verified/Decayed/Broken; repair Decayed/Broken in-phase; all must end
Verified.
- **Wave 4 (sequential):** Phase 55 — rewrite PROJECT/ROADMAP/decks to
verified reality; unfreeze decks.
---
## Phase 52 — pipeline-regression-verify-fix
**Requirements:** REQ-112
**Personas:** backend-engineer (lead: VERIFY stage), ci-verifier (review)
**Branch:** `phase/52-pipeline-regression-verify-fix`
### Task 52.1 — Add regression-class VERIFY (REQ-112, backend-engineer)
- Extend the VERIFY stage to support a `regression` mode that re-runs
capability checks (not just diff checks). Triggered at minimum on
milestone completion; may also be invoked per-phase when a phase
touches platform code (not docs-only NFR patches).
- The regression run executes the local-emulator tier (Phase 53) for
every capability marked Verified in prior milestones. Any capability
that fails the regression run blocks milestone completion.
- Record the regression result in `---ci---` blocks as
`regression: { capability: <id>, status: Verified|Decayed|Broken }`.
- Verify: a regression run against the current codebase surfaces at
least one Decayed/Broken capability (proving the gate catches decay,
not just passes).
### Success Criteria
- VERIFY supports `regression` mode; milestone completion requires a
clean regression run.
- A regression run against current code surfaces decay (fails closed).
- `tests/test_verify_regression_mode.py` passes.
- Existing diff-scoped VERIFY behavior preserved for non-regression
invocations.
---
## Phase 53 — local-emulating-adapters
**Requirements:** REQ-113
**Personas:** backend-engineer (lead: adapters), data-engineer (flat-file
outbox), ci-verifier (review)
**Branch:** `phase/53-local-emulating-adapters`
### Task 53.1 — Flat-file DynamoDB outbox emulator (REQ-113, data-engineer)
- A local adapter that writes evidence events to flat files in a temp
folder instead of DynamoDB. Same write/read interface as the live
DynamoDB outbox adapter.
- Verify: a contract submission through the local tier writes an
evidence event to the flat-file outbox with a valid hash chain.
### Task 53.2 — Local ECS emulator (REQ-113, backend-engineer)
- A local adapter that emulates ECS Fargate: records the service
definition, returns a synthetic HTTP 200 from a local shell process
instead of a real ECS service. Same interface as the live ECS adapter.
- Verify: the headline E2E against the local tier returns HTTP 200 from
the emulator.
### Task 53.3 — Local S3 state + Lambda stub (REQ-113, backend-engineer)
- Local S3 state backend (flat-file tfstate in temp folder) + local
Lambda stub (invokes the handler in-process, no AWS Lambda call).
- Verify: `terraform plan` runs against the local state backend; the
Lambda stub executes the contract-ingestion handler locally.
### Success Criteria
- All three local adapters exist; the headline E2E runs end-to-end
against the local tier with no cloud credentials.
- `tests/test_local_emulating_adapters.py` passes.
- `run_platform.sh --local` (or equivalent) runs the full pipeline
locally.
---
## Phase 54 — v1.1-v1.8 capability-reverification-sweep
**Requirements:** REQ-114
**Personas:** ci-verifier (lead: sweep), ci-debugger (in-sweep fixes),
backend-engineer (in-sweep fixes)
**Branch:** `phase/54-capability-reverification-sweep`
### Task 54.1 — Capability inventory (REQ-114, ci-verifier)
- Enumerate every capability advertised in v1.1→v1.8 PROJECT/ROADMAP:
IR + L1 + adapter, ECS Fargate E2E, contract ingestion Lambda, 3
platform pipelines, CloudFront/WAF, uptime-kuma, decommission mode,
8 P1 remediations, etc. Write the inventory to
`.ciagent/CAPABILITY_INVENTORY.md` with a unique ID per capability.
### Task 54.2 — Re-verify each capability (REQ-114, ci-verifier + ci-debugger)
- Headline E2E: run both tiers (live AWS + local emulator). Both must
pass.
- All other capabilities: run the local tier via emulating adapters.
- Tag each capability Verified / Decayed / Broken in
`CAPABILITY_INVENTORY.md`.
- For each Decayed/Broken capability: fix in-sweep (D-090, no cap) until
Verified. Commit per capability:
`verify(P54): <capability-id> — Verified|Decayed|Broken` then
`fix(P54): <capability-id> — <fix-summary>` as needed.
### Success Criteria
- Every v1.1→v1.8 advertised capability is tagged Verified in
`CAPABILITY_INVENTORY.md`. (D-090: no cap; all must end Verified.)
- Headline E2E passes at both tiers.
- Regression run (Phase 52) is clean against the re-verified state.
---
## Phase 55 — rewrite-to-verified-reality
**Requirements:** REQ-115
**Personas:** ci-doc-writer (lead: docs/decks), ci-doc-verifier (review)
**Branch:** `phase/55-rewrite-to-verified-reality`
### Task 55.1 — Rewrite PROJECT/ROADMAP (REQ-115, ci-doc-writer)
- Add a "Capability Status (Re-Verified 2026-07-27)" section to
PROJECT.md listing every v1.1→v1.8 capability with its Verified tag
and the tier(s) tested.
- Add a decay disclosure: capabilities marked complete in v1.1v1.8 ran
at the time of tagging; as of 2026-07-27 they were not reproducible
and were re-verified in v1.10.
- Update ROADMAP.md v1.9.x entries to note deck-freeze and
superseded-by-reverification status.
### Task 55.2 — Rewrite decks (REQ-115, ci-doc-writer)
- Update both leadership decks so every capability claim reflects the
re-verified status. Remove any claim that cannot be demonstrated
live.
- Re-render HTML; upload PPTX to the v1.10.0 release.
### Success Criteria
- PROJECT/ROADMAP/decks match `CAPABILITY_INVENTORY.md` exactly.
- `ci-doc-verifier` confirms no stale capability claims remain.
- Decks unfrozen; v1.10.0 tagged; Gitea release published.