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:
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user