From f0bc3be92c1afdff028aca2ff968a092dca77a6c Mon Sep 17 00:00:00 2001 From: Jon Chery Date: Fri, 7 Aug 2026 18:02:23 +0000 Subject: [PATCH] =?UTF-8?q?docs(P00):=20validate=20specification=20?= =?UTF-8?q?=E2=80=94=20v1.20=20milestone=20(REQ-230..244)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ---ci--- project: acdl phase: 0 milestone: v1.20 status: specify ---/ci--- --- .ciagent/CHECKPOINT.json | 19 +++--- .ciagent/REQUIREMENTS.md | 141 +++++++++++++++++++++++++++++++++++++++ .ciagent/ROADMAP.md | 93 ++++++++++++++++++++++++++ .ciagent/config.json | 2 +- 4 files changed, 243 insertions(+), 12 deletions(-) diff --git a/.ciagent/CHECKPOINT.json b/.ciagent/CHECKPOINT.json index cad7705..709936e 100644 --- a/.ciagent/CHECKPOINT.json +++ b/.ciagent/CHECKPOINT.json @@ -1,13 +1,10 @@ { - "phase": 2, - "stage": "complete", - "milestone": "v1.19", - "phase_role": "final", + "phase": 0, + "stage": "specify", + "milestone": "v1.20", + "phase_role": "pre_execution", "attempts": 0, - "updated_at": "2026-08-06T20:30:00Z", - "milestone_complete": true, - "tag": "v1.18.1", - "release_id": 531, - "requirements": ["REQ-229"], - "notes": "v1.19 milestone complete. NFR-only chore milestone: 1 execution phase (P1 nova-sync-script, tag v1.18.0) + 1 final phase (P2 review+audit+ship, tag v1.18.1 = milestone release). scripts/sync_to_nova.sh replaces sync_to_gl.sh as manual-only 2nd-release pipeline ~/acdl -> ~/nova (GitLab jonathanchery/nova, separate repo/history, consumer/platform-team audience). Consumer subset rsync, 13 fixed-order domain commits via positional -m, conventional-commit validation. 8 new tests pass. Review clean (no P0). Audit clean (4/4 ci blocks, reconstruction OK, no secrets, sync_to_gl.sh removed). 5 decisions locked (D-143..D-147). Next milestone starts fresh." -} \ No newline at end of file + "updated_at": "2026-08-07T20:00:00Z", + "milestone_complete": false, + "notes": "v1.20 milestone: Consumer Cleanup + Transparent Terraform + Slide Pipeline + Product Roadmap. Three user-directed inputs: (1) remove all gitea/gitlab from synced files, (2) simplify docs for Platform Team audience, (3) terraform transparency + feature flags. Plus: dedicated S&P-themed slide render pipeline + 12-month product roadmap slides." +} diff --git a/.ciagent/REQUIREMENTS.md b/.ciagent/REQUIREMENTS.md index 1c29bf6..759a1de 100644 --- a/.ciagent/REQUIREMENTS.md +++ b/.ciagent/REQUIREMENTS.md @@ -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_`. 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 | diff --git a/.ciagent/ROADMAP.md b/.ciagent/ROADMAP.md index 75de05e..64e42e6 100644 --- a/.ciagent/ROADMAP.md +++ b/.ciagent/ROADMAP.md @@ -1799,3 +1799,96 @@ IS the release). **DONE.** Ship tag at milestone COMPLETE: `v1.18.1` (NFR milestone; final patch IS the release). **DONE.** + +--- + +## v1.20 — Consumer Cleanup + Transparent Terraform + Slide Pipeline + +> **Multi-concern milestone.** Four user-directed inputs: (1) remove all +> gitea/gitlab from synced files — the platform team must never know about +> the dev forge; (2) radically simplify documentation for the Platform Team +> audience; (3) make terraform runs transparent in workflows with feature-flag +> client differentiation; (4) dedicated S&P-themed slide render pipeline + +> 12-month product roadmap slides. +> +> Tags run on the v1.19.x line (milestone v1.20 → tags v1.19.x). + +### Phase P0 — pre-execution +- **Description:** Specify → clarify → research → plan. Validate v1.20 + requirements (REQ-230..244). Establish milestone version in config.json. +- **Status:** complete +- **Requirements:** REQ-230..244 +- **Success Criteria:** + - `.ciagent/REQUIREMENTS.md` has v1.20 section with all 15 requirements. + - `.ciagent/config.json` has `active_milestone: "v1.20"`. + - Checkpoint written. + +### Phase P1 — consumer-cleanup (gitea removal + doc simplification) +- **Description:** Remove all gitea/gitlab mentions from synced files. + Genericize forge-detection code. Drop `.gitea/` byte-identity test + assertions. Add `test_no_forge_mentions.py` guard test. Simplify + documentation: delete completed migration docs, move thesis to `.ciagent/`, + strip ciagent-internal provenance from synced docs. +- **Status:** pending +- **Requirements:** REQ-230, REQ-231, REQ-232 +- **Success Criteria:** + - `tests/test_no_forge_mentions.py` passes — zero gitea/gitlab mentions in + synced subset. + - `pytest` passes — all existing tests green after genericization. + - Synced docs stripped of REQ-/D-/P- IDs, milestone headers, `.ciagent/` + citations. + - `docs/NOVA_MIGRATION.md` + `docs/NOVA_AWS_MIGRATION.md` deleted. + - `docs/NO_HUMANS_THESIS.md` moved to `.ciagent/`. + +### Phase P2 — slide-pipeline (S&P theme + render automation) +- **Description:** Create dedicated S&P theme CSS, render_slides.sh pipeline, + CI workflow, tests. Update Marp frontmatter to use dedicated theme. Fix + README directory layout. +- **Status:** pending +- **Requirements:** REQ-239, REQ-240, REQ-241, REQ-242, REQ-243 +- **Success Criteria:** + - `docs/presentations/assets/nova-sp-theme.css` exists with S&P colors. + - Marp deck frontmatter references the theme CSS. + - `scripts/render_slides.sh` renders mermaid PNGs + HTML + PPTX. + - `workflows-src/slides.yml` + `.github/workflows/slides.yml` exist. + - `tests/test_slides_pipeline.py` passes. + - `docs/presentations/README.md` updated (no retired decks). + +### Phase P3 — product-roadmap (12-month slides) +- **Description:** Add 12-month product roadmap as Slide 20 + Slide 21 to the + deck. Add matching talking-points sections. Render via new pipeline. +- **Status:** pending +- **Requirements:** REQ-244 +- **Success Criteria:** + - Slide 20 + 21 in `nova-no-humans-platform-marp.md` + source-of-truth + + talking-points. + - HTML + PPTX re-rendered via `render_slides.sh`. + - 4-quarter product arc grounded in NORTH_STAR + deferred metrics. + +### Phase P4 — transparent-terraform (workflow refactor + feature flags) +- **Description:** Split run_platform.sh → run_codegen.sh + run_postapply.sh. + Rewrite deploy.yml with native terraform steps. Add var.enabled to all L1 + modules + L2 composition toggles. Wire forge repo variables as feature + flags. Fix stale artifact path. +- **Status:** pending +- **Requirements:** REQ-233, REQ-234, REQ-235, REQ-236, REQ-237, REQ-238 +- **Success Criteria:** + - `scripts/run_codegen.sh` + `scripts/run_postapply.sh` exist. + - `deploy.yml` has native terraform init/validate/plan/apply steps. + - Every L1 module has `variable "enabled"` + `count = var.enabled ? 1 : 0`. + - L2 `composition.json` supports per-child `enabled`. + - `deploy.yml` reads `vars.ENABLE_*` as `-var` flags. + - Stale `/tmp/acdl_platform_run_v18` path fixed to `NOVA_WORK_DIR`. + - `pytest` passes; `run_platform.sh` shim backward-compat verified. + +### Phase P5 — final-review-ship (Final Phase) +- **Description:** Final review + audit + milestone ship. Merge to main, + tag `v1.19.4` (final patch = milestone release), create release. +- **Status:** pending +- **Depends on:** [P1, P2, P3, P4] +- **Requirements:** REQ-230..244 +- **Success Criteria:** + - Review + audit clean (no P0). + - Milestone branches merged to main. + - Tag `v1.19.4` created; release notes summarize all 15 requirements. + - CHECKPOINT cleared; milestone branches deleted. diff --git a/.ciagent/config.json b/.ciagent/config.json index 5ffde6e..5a5cf5a 100644 --- a/.ciagent/config.json +++ b/.ciagent/config.json @@ -8,7 +8,7 @@ ], "active_project": "acdl", "active_projects": ["acdl"], - "active_milestone": "v1.19", + "active_milestone": "v1.20", "autonomy": { "level": "full", "escalation_hooks": ["deploy", "delete_data", "merge_to_main"],