772ac721b0
---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---
194 lines
8.6 KiB
Markdown
194 lines
8.6 KiB
Markdown
---
|
||
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.1–v1.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. |