docs(P00): validate specification — v1.20 milestone (REQ-230..244)

---ci---
project: acdl
phase: 0
milestone: v1.20
status: specify
---/ci---
This commit is contained in:
Jon Chery
2026-08-07 18:02:23 +00:00
parent 0b79b16715
commit f0bc3be92c
4 changed files with 243 additions and 12 deletions
+141
View File
@@ -1395,3 +1395,144 @@ with documented schemas.
| REQ | Phase | Status |
|-----|-------|--------|
| REQ-229 | P1 | complete |
## v1.20 — Consumer Cleanup + Transparent Terraform + Slide Pipeline
> **Multi-concern milestone.** Four user-directed inputs spanning consumer
> cleanup, infrastructure transparency, and presentation automation. Tags
> run on the v1.19.x line (milestone v1.20 → tags v1.19.0, v1.19.1, …).
>
> **Input 1 — Gitea/GitLab removal:** Remove all mentions of `gitea` / `gitlab`
> (case-insensitive) from every file synced to `~/nova`. The platform team
> (consumer of `~/nova`) must never know about the dev forge or the GitLab
> mirror. Genericize forge-detection code to `forge` / `generic_forge`.
>
> **Input 2 — Documentation simplification:** Radically simplify all synced
> documentation. Anything the CIAgent needs to reference for itself lives in
> `.ciagent/`. Everything else is tailored to the Platform Team audience.
> Strip ciagent-internal provenance (REQ-/D-/P-/CAP- IDs, milestone headers,
> `.ciagent/PROJECT.md` citations) from synced docs. Delete completed
> migration guides. Move internal artifacts to `.ciagent/`.
>
> **Input 3 — Transparent terraform:** Move terraform `init` / `validate` /
> `plan` / `apply` / `output` into native workflow steps (transparent, visible
> in CI logs). Split `run_platform.sh` into `run_codegen.sh` (pre-TF) +
> `run_postapply.sh` (post-TF). Add `var.enabled` feature flags to every L1
> module + L2 composition toggles. Wire forge repo variables as per-client
> feature flags — different clients test different functionality without
> version upgrades.
>
> **Input 4 — Slide pipeline + product roadmap:** The slides have not adopted
> the S&P Global theme fully. Create a dedicated render pipeline that builds
> the slides (mermaid PNGs + Marp HTML/PPTX) with the S&P theme applied to all
> slide chrome. Add a 12-month product roadmap (high-level, product-oriented
> vs the technical roadmap in `.ciagent/ROADMAP.md`) to the deck.
- **REQ-230** — No `gitea` / `gitlab` string literal (case-insensitive) appears
in any file synced to `~/nova`. Verified by
`tests/test_no_forge_mentions.py` which scans the synced subset (same
path rules as `sync_to_nova.sh`'s `DOMAINS` / `EXCLUDES`). Forge-detection
code (`contract_ingestor.py`, `hitl_gates.py`, `run_platform.sh`) is
genericized: `gitea``forge` / `generic_forge`, `GITEA_ACTOR`
`FORGE_ACTOR` (with `GITHUB_ACTOR` primary). (Phase P1)
- **REQ-231** — Synced documentation is tailored to the Platform Team
audience. Ciagent-internal provenance (`v1.XX — Strategic Direction` headers,
`REQ-NNN` / `D-NNN` / `P-NNN` / `CAP-NNN` IDs, `.ciagent/PROJECT.md`
"source of truth" citations) is stripped from synced docs. (Phase P1)
- **REQ-232** — Completed/historical migration docs
(`docs/NOVA_MIGRATION.md`, `docs/NOVA_AWS_MIGRATION.md`) removed from the
synced tree. `docs/NO_HUMANS_THESIS.md` moved to `.ciagent/` (internal
thesis-defense artifact). (Phase P1)
- **REQ-233** — Terraform `init` / `validate` / `plan` / `apply` / `output`
run as native workflow steps in `deploy.yml` (transparent, named steps
visible in CI logs), not buried inside `run_platform.sh`. (Phase P4)
- **REQ-234** — `run_platform.sh` is split: `run_codegen.sh` (pre-TF: env
check, validate, resolve, adapt) + `run_postapply.sh` (post-TF: Checkov,
confidence, HITL, outbox, SSM, comment, uptime). A thin `run_platform.sh`
shim preserves backward compat for local-dev usage. (Phase P4)
- **REQ-235** — Every L1 module has `variable "enabled" { type = bool,
default = true }` + `count = var.enabled ? 1 : 0` on its primary
resource(s); declared in `interface.json`. The `uptime` module's
`feature_flag_enabled` is renamed to `enabled` (with backward-compat alias).
(Phase P4)
- **REQ-236** — L2 `composition.json` supports per-child `enabled` toggles
driven by contract `inputs.enable_<child>`. The resolver skips children
with `enabled: false`. (Phase P4)
- **REQ-237** — `deploy.yml` reads feature flags from forge repository
variables (`vars.ENABLE_*`) and passes them as `-var` flags to terraform,
enabling per-client feature toggles without version upgrades. (Phase P4)
- **REQ-238** — Stale artifact path `/tmp/acdl_platform_run_v18` in
`deploy.yml` fixed to use `NOVA_WORK_DIR`. (Phase P4)
- **REQ-239** — A dedicated S&P Global theme CSS file
(`docs/presentations/assets/nova-sp-theme.css`) is the Marp theme for all
Nova presentation decks. The theme applies the S&P Red/Black/White palette
(`#D6002A`, `#1B1B1B`, `#FFFFFF`) to all slide chrome (background,
header/footer, pagination, tables, blockquotes), not just headings. (Phase P2)
- **REQ-240** — A dedicated render pipeline (`scripts/render_slides.sh`)
builds the presentation deck end-to-end: (1) renders all
`assets/mmd/*.mmd` → `assets/png/*.png` via `mermaid-cli --configFile
sp-theme.json`; (2) renders the Marp deck → HTML + PPTX via `marp-cli`;
(3) stages all rendered artifacts to git. Supersedes `render_deck.sh`.
(Phase P2)
- **REQ-241** — A CI workflow (`workflows-src/slides.yml` +
`.github/workflows/slides.yml`) runs `render_slides.sh` on any change to
`docs/presentations/**` and commits the rendered HTML/PPTX/PNGs back. No
manual re-render step; no artifact drift. (Phase P2)
- **REQ-242** — `tests/test_slides_pipeline.py` validates: (1) the Marp
deck frontmatter references `nova-sp-theme.css`; (2) the CSS contains the
S&P colors; (3) every `.mmd` has a corresponding `.png`; (4) the HTML
exists and is newer than the Marp `.md`. (Phase P2)
- **REQ-243** — `docs/presentations/README.md` directory layout is updated
to remove retired decks (`how-the-platform-works-*`,
`the-developer-experience-*`) and document the render pipeline + theme CSS.
(Phase P2)
- **REQ-244** — A 12-month product roadmap (4 quarters, product-outcome
oriented, grounded in NORTH_STAR strategic objectives + deferred-metric
candidate milestones) is added to the presentation deck as Slide 20 +
Slide 21. The roadmap is distinct from Slide 15's deferred-metric unblock
paths. A matching talking-points section is added. (Phase P3)
### Out of Scope (v1.20)
- **Multi-cloud (Azure/GCP) implementation** — deferred; only the product
roadmap references it as a Q4 aspiration.
- **ML anomaly-forecasting service** — deferred; only the product roadmap
references it as a Q4 aspiration.
- **Actual pilot estate activation** — deferred (requires live AWS
re-provisioning, D-096 lift); the product roadmap references it as Q1.
- **Token rotation for `NOVA_GITEA_TOKEN`** — out of scope; the `.env` files
are correctly excluded from sync. Flagged for awareness only.
### v1.20 Traceability
| REQ | Phase | Status |
|-----|-------|--------|
| REQ-230 | P1 | pending |
| REQ-231 | P1 | pending |
| REQ-232 | P1 | pending |
| REQ-233 | P4 | pending |
| REQ-234 | P4 | pending |
| REQ-235 | P4 | pending |
| REQ-236 | P4 | pending |
| REQ-237 | P4 | pending |
| REQ-238 | P4 | pending |
| REQ-239 | P2 | pending |
| REQ-240 | P2 | pending |
| REQ-241 | P2 | pending |
| REQ-242 | P2 | pending |
| REQ-243 | P2 | pending |
| REQ-244 | P3 | pending |