diff --git a/.ciagent/CHECKPOINT.json b/.ciagent/CHECKPOINT.json index d199ed4..db4aa13 100644 --- a/.ciagent/CHECKPOINT.json +++ b/.ciagent/CHECKPOINT.json @@ -1,12 +1,12 @@ { - "phase": 2, + "phase": 3, "stage": "complete", "milestone": "v1.22", "phase_role": "execution", "attempts": 0, - "updated_at": "2026-08-11T14:50:00Z", + "updated_at": "2026-08-11T14:55:00Z", "milestone_complete": false, - "tag": "v1.21.2", - "requirements": ["REQ-257","REQ-258"], - "notes": "v1.22 P2 complete. Tag v1.21.2. render_deck.sh deleted, CLI versions pinned, 2x scale + transparent bg added. 4 render tests + 1 no-forge test pass. Proceeding to P3 (mermaid re-layout)." + "tag": "v1.21.3", + "requirements": ["REQ-259","REQ-260"], + "notes": "v1.22 P3 complete. Tag v1.21.3. Both mermaid diagrams re-rendered at 2x transparent. telemetry-live-ops: TB, 0.63 aspect. platform-pipeline: TB 4-node, 0.49 aspect. Marp deck directives updated to h:480. Proceeding to P4 (deck content)." } \ No newline at end of file diff --git a/docs/presentations/README.md b/docs/presentations/README.md index 61c7b7e..d5c24e5 100644 --- a/docs/presentations/README.md +++ b/docs/presentations/README.md @@ -126,10 +126,11 @@ docs/presentations/ ### Appendix structure -Each Marp deck has **18 main slides + 1 appendix slide**. The main 18 are the -presentation; the appendix is for Q&A backup. +Each Marp deck has **20 main slides + 1 appendix slide**. The main 20 are the +presentation; the appendix is for Q&A backup. (v1.22 split slides 3 and 8 +to relieve overflow, increasing the count from 18 to 20.) -- **Main slides** (1-18): the story arc — Problem → Solution → Proof → +- **Main slides** (1-20): the story arc — Problem → Solution → Proof → Roadmap + Ask. These are what the audience sees during the talk. - **Appendix slide** (A1): the Metrics Glossary — detail-heavy reference for Q&A. diff --git a/docs/presentations/assets/nova-sp-theme.css b/docs/presentations/assets/nova-sp-theme.css index 2b07e54..9726bf8 100644 --- a/docs/presentations/assets/nova-sp-theme.css +++ b/docs/presentations/assets/nova-sp-theme.css @@ -68,8 +68,8 @@ section.title header, section.title footer { display: none; } /* Tables — grey header with red underline, explicit white body for readability on any background */ table { font-size: 18px; width: 100%; border-collapse: collapse; background: var(--sp-white); } -th { background: var(--sp-grey); border-bottom: 2px solid var(--sp-red); padding: 6px 10px; text-align: left; } -td { background: var(--sp-white); color: var(--sp-black); border-bottom: 1px solid var(--sp-grey); padding: 6px 10px; } +th { background: var(--sp-grey); border-bottom: 2px solid var(--sp-red); padding: 4px 8px; text-align: left; } +td { background: var(--sp-white); color: var(--sp-black); border-bottom: 1px solid var(--sp-grey); padding: 4px 8px; } /* Ensure tables on dark/title slides remain readable: white card with a subtle border */ section.title table, section table { background: var(--sp-white); } section.title td, section td { background: var(--sp-white); color: var(--sp-black); } diff --git a/docs/presentations/nova-autonomous-cloud-delivery-marp.md b/docs/presentations/nova-autonomous-cloud-delivery-marp.md index 22c44ed..9b5851c 100644 --- a/docs/presentations/nova-autonomous-cloud-delivery-marp.md +++ b/docs/presentations/nova-autonomous-cloud-delivery-marp.md @@ -3,7 +3,6 @@ marp: true theme: nova-sp paginate: true size: 16x9 -header: 'Nova — The Autonomous Cloud Delivery Platform' footer: 'Nova — The Autonomous Cloud Delivery Platform' --- @@ -45,7 +44,7 @@ Every hour a developer spends writing, deploying, fixing, or remediating infrast --- -## Slide 3 — Strategic Objectives + Anti-Goals +## Slide 3 — Strategic Objectives **4 Strategic Objectives:** 1. **Zero-touch operations** — autonomy as the default, not the demo; stage-gate attestation (QA, SRE) remains human by design @@ -54,17 +53,22 @@ Every hour a developer spends writing, deploying, fixing, or remediating infrast - **Lead Time** (PR → Production) · **Infrastructure Vulnerability Count** (trend) · **MTTR** · **Cloud Spend Reduction** 4. **Integrate with externally owned development platforms — regardless of source** — PDLC, SDLC, Agentic, or Citizen Developer; Nova provides skills + MCP endpoints; all prod intents go through the same controls and quality gates -**4 Anti-Goals (what Nova is NOT):** +**Benefit:** the scope is explicit — Nova governs infrastructure and delivery, integrates with any upstream source through one validated contract, and measures success on four metrics a CTO can repeat back. + +--- + +## Slide 4 — Anti-Goals (What Nova Is NOT) + 1. Not a general-purpose AI agent platform 2. Not a system that removes humans from accountability — only from normal operations 3. Not an upstream development platform (no product backlogs, IDE, code authorship) 4. Not a replacement for the Product Development Lifecycle (PDLC) -**Benefit:** the scope is explicit — Nova governs infrastructure and delivery, integrates with any upstream source through one validated contract, and measures success on four metrics a CTO can repeat back. +**Benefit:** the boundaries are explicit — Nova is purpose-built for infrastructure operations and delivery, not a general-purpose AI agent or an upstream development platform. --- -## Slide 4 — Scope: Downstream of PDLC +## Slide 5 — Scope: Downstream of PDLC **Nova governs infrastructure and delivery. The PDLC is upstream — Nova never penetrates it. Integration is through one validated contract.** @@ -77,7 +81,7 @@ Every hour a developer spends writing, deploying, fixing, or remediating infrast --- -## Slide 5 — RACI: Who Owns What +## Slide 6 — RACI: Who Owns What **Four roles, one matrix — citizen developer owns FRs + UAT, platform owns NFRs + infra, quality engineering owns the gate evidence, SRE owns operational readiness.** @@ -98,7 +102,7 @@ Every hour a developer spends writing, deploying, fixing, or remediating infrast --- -## Slide 6 — The Platform Pipeline +## Slide 7 — The Platform Pipeline **How intent becomes verified infrastructure — fail-fast policy scanning before the plan, runtime scanning after it.** @@ -107,13 +111,12 @@ Every hour a developer spends writing, deploying, fixing, or remediating infrast - **Contract → resolver → adapter → Checkov on static code (before plan) → terraform plan → Wiz on the plan → confidence signal → stage gate → apply → evidence + ledger** - **Fail-fast, quick feedback** — Checkov runs on the authored Terraform code before `terraform plan` so developers get immediate policy feedback - **Wiz on the plan when configured; Checkov as a drop-in otherwise** — Wiz scans the plan output; when Wiz credentials are absent, Checkov runs against the plan. **Wiz and Checkov are never both run on the plan.** -- **Dev is autonomous** (no stage gate); **qa/prod/dr require human attestation** (QA for quality, SRE for production readiness) **Benefit:** two layers of scanning, zero operator involvement in normal operations — fast deterministic feedback at authoring time and a runtime scan on the resolved plan. --- -## Slide 7 — The Decision Ledger +## Slide 8 — The Decision Ledger **Every automated decision is captured, immutable, queryable — and accountable.** @@ -125,15 +128,26 @@ Every hour a developer spends writing, deploying, fixing, or remediating infrast --- -## Slide 8 — The Attestation Matrix +## Slide 9 — Attestation Matrix: QA -**The designed controls that keep humans at stage gates — structured, freshness-validated, separation-of-duties-enforced.** +**The designed controls that keep humans at stage gates — QA concerns, freshness-validated.** | Concern | Env | Freshness | Description | |---------|-----|-----------|-------------| | Functional correctness | qa | 24h | The application behaves as specified; evidence accepted from the consumer's UAT. | | Performance baseline | qa | 7d | The deployment meets its performance envelope vs. the agreed baseline. | | Security posture | qa | 24h | The deployment's security findings have been reviewed and accepted. | + +**Benefit:** QA signs off on quality before any promotion — the gate is explicit, not implicit. + +--- + +## Slide 10 — Attestation Matrix: Prod/DR + +**Production and DR controls — operational readiness, resilience, and disaster recovery.** + +| Concern | Env | Freshness | Description | +|---------|-----|-----------|-------------| | Operational readiness | prod | 30d | SRE confirms the deployment is operable: runbooks, dashboards, on-call. | | Incident response | prod | 90d | The on-call path has been exercised; a working incident-response plan exists. | | Capacity & cost | prod | 30d | Capacity headroom and monthly cost are within the agreed envelope. | @@ -148,7 +162,7 @@ Separation-of-duties on prod: the approver cannot be the same person who built t --- -## Slide 9 — Telemetry & Live Ops +## Slide 11 — Telemetry & Live Ops **Every metric in this deck is traceable to a real emitted signal — the live-ops dashboard makes operations visible in PowerBI.** @@ -156,28 +170,26 @@ Separation-of-duties on prod: the approver cannot be the same person who built t - **Platform components → CloudEvents envelope → event log + decision ledger + run records → collector → cold store → PowerBI views → live ops dashboard** - **The live ops dashboard (PowerBI)** surfaces the four CTO-grade metrics (Lead Time, Vulnerability Count, MTTR, Cloud Spend) alongside trust metrics (Decision Ledger coverage, Attestation coverage) and efficiency metrics (touchless resolution, escalation frequency) -- **Deliberately minimal** — Nova-native envelopes; no Kafka, no Prometheus, no ClickHouse. The cold store handles batch and historical analysis; the live-ops surface is built in PowerBI on the exported views - **Every number is traceable to a signal** — when a CFO asks "where does this number come from?", the answer is a query against the cold store, not a Slack thread **Benefit:** the architecture is the trust substrate — leadership sees the same numbers the platform produces, in PowerBI, with full traceability. Operations become visible. --- -## Slide 10 — Decision Ledger + Attestation Coverage +## Slide 12 — Decision Ledger + Attestation Coverage **By design, no change reaches production without a ledger entry and a human attestation — both queryable for auditing, with full traceability.** - **Decision Ledger coverage: 100%** — every platform run emits a decision record with outcome backfill; no automated decision is ever lost - **Attestation coverage: 100%** — every prod/dr promotion is attested by a human (QA for quality, SRE for production readiness), recorded with approver identity, separation-of-duties check, and the evidence matrix - **No change to production without both** — the ledger entry and the human attestation are mandatory, enforced by the pipeline, not by policy -- **Easily queried for auditing** — queryable by run, by environment, by approver, and by outcome; the audit trail is a query, not a forensic exercise - **Full traceability** — a production change is traceable from the contract that declared intent, through the policy scan, the confidence score, the attestation, to the applied outcome **Benefit:** trust is provable — not a marketing claim, a queryable record. An auditor answers "who approved this, when, on what evidence?" in one query; a CTO answers "how many of last quarter's prod changes were touchless?" in one query. --- -## Slide 11 — Cost & ROI +## Slide 13 — Cost & ROI **The ROI formula and the cost estimates — grounded, with the production denominator honestly flagged.** @@ -191,7 +203,7 @@ Separation-of-duties on prod: the approver cannot be the same person who built t --- -## Slide 12 — What's Deferred — and Why +## Slide 14 — What's Deferred — and Why **Honesty about what is not measured yet — and the blocking work for each.** @@ -199,20 +211,18 @@ To be clear: these deferrals are *measurement infrastructure*, not the autonomy | # | Deferred metric | Blocking work | |---|-----------------|---------------| -| 1 | Live infrastructure health | Live AWS re-provisioning (currently torn down to zero-cost steady state) | -| 2 | Live outbox write rate | Live AWS re-provisioning | -| 3 | Tamper-evident ledger checkpoints | Audit-ledger build-out (Object Lock + signed checkpoints) | -| 4 | Onboarding funnel (requested → granted) | Auto-grant implementation | -| 5 | Drift auto-reversal | Drift-detection scheduler (not yet built) | -| 6 | Live cost reconciliation | Live AWS re-provisioning + actual-spend feed | -| 7 | SLA / unplanned downtime | Live AWS re-provisioning | -| 8 | Predictive vs reactive ratio | ML anomaly-forecasting service (not yet built) | +| 1 | Live infra health, outbox write rate, SLA | Live AWS re-provisioning (currently torn down to zero-cost steady state) | +| 2 | Tamper-evident ledger checkpoints | Audit-ledger build-out (Object Lock + signed checkpoints) | +| 3 | Onboarding funnel (requested → granted) | Auto-grant implementation | +| 4 | Drift auto-reversal | Drift-detection scheduler (not yet built) | +| 5 | Live cost reconciliation | Live AWS re-provisioning + actual-spend feed | +| 6 | Predictive vs reactive ratio | ML anomaly-forecasting service (not yet built) | **Benefit:** the boundaries are explicit — what Nova measures today, and exactly what blocks the rest. The autonomy is real; the measurement gaps are documented with the work that unblocks each one. --- -## Slide 13 — Roadmap to the North Star +## Slide 15 — Roadmap to the North Star **The path from the grounded metrics to the 12–18 month targets — each deferred metric has an unblock path and a timeframe.** @@ -231,7 +241,7 @@ Re-evaluation triggers: each blocking piece of work lifts on its own schedule; t --- -## Slide 14 — 12-Month Product Roadmap +## Slide 16 — 12-Month Product Roadmap **The product arc from pilot activation to integration — four quarters, four outcomes.** @@ -248,14 +258,14 @@ Grounded in the four strategic objectives (autonomy, provable trust, ROI, integr --- -## Slide 15 — Quarter-by-Quarter Outcomes +## Slide 17 — Quarter-by-Quarter Outcomes -| Quarter | Product theme | Key deliverable | Target metric | Grounding | -|---------|---------------|-----------------|---------------|-----------| -| **Q1** | Pilot Activation | Re-provision live AWS; activate first pilot estate; onboarding auto-grant | Touchless ≥ 99% · Escalation < 0.1% · Accuracy ≥ 99.5% | Objective #1 — autonomy as the default | -| **Q2** | Provable Trust | Tamper-evident ledger (Object Lock + signed checkpoints); daily checkpoints; live cost reconciliation | Decision Ledger Coverage 100% · Cost Savings ≥ 25% | Objective #2 — trust is the moat | -| **Q3** | Compounding ROI + Drift | Drift-detection scheduler; auto-reversal; pre-apply → actual-spend reconciliation on the pilot estate | Drift Auto-Reversal ≥ 95% · Spend Reduction ≥ 25% | Objective #3 — CFO-pointable numbers | -| **Q4** | Integration + Predictive | ML anomaly-forecasting; AI-agent intent surface; multi-cloud (Azure/GCP) preview | Predictive:Reactive ≥ 3:1 · AI-Agent Intent Share (first measurement) | Objective #4 — default substrate for agents | +| Quarter | Product theme | Key deliverable | Target metric | +|---------|---------------|-----------------|---------------| +| **Q1** | Pilot Activation | Re-provision live AWS; activate first pilot estate; onboarding auto-grant | Touchless ≥ 99% · Escalation < 0.1% · Accuracy ≥ 99.5% | +| **Q2** | Provable Trust | Tamper-evident ledger (Object Lock + signed checkpoints); daily checkpoints; live cost reconciliation | Decision Ledger Coverage 100% · Cost Savings ≥ 25% | +| **Q3** | Compounding ROI + Drift | Drift-detection scheduler; auto-reversal; pre-apply → actual-spend reconciliation on the pilot estate | Drift Auto-Reversal ≥ 95% · Spend Reduction ≥ 25% | +| **Q4** | Integration + Predictive | ML anomaly-forecasting; AI-agent intent surface; multi-cloud (Azure/GCP) preview | Predictive:Reactive ≥ 3:1 · AI-Agent Intent Share (first measurement) | **Month-18 destination:** *"Nova is the layer enterprise leadership points to when they say 'we don't have an infrastructure ops team anymore, and the audit trail is stronger than it ever was.'"* @@ -263,7 +273,7 @@ Grounded in the four strategic objectives (autonomy, provable trust, ROI, integr --- -## Slide 16 — Production-Grade Guidance via Atelier (1/2) +## Slide 18 — Production-Grade Guidance via Atelier (1/2) **Nova instructs the citizen developer's AI agent on production-grade engineering — a set of skills and an MCP server.** @@ -275,7 +285,7 @@ Grounded in the four strategic objectives (autonomy, provable trust, ROI, integr --- -## Slide 17 — Production-Grade Guidance via Atelier (2/2) +## Slide 19 — Production-Grade Guidance via Atelier (2/2) **Agentic validation catches engineering-discipline gaps that deterministic scanners miss — and the validation is reproducible.** @@ -287,7 +297,7 @@ Grounded in the four strategic objectives (autonomy, provable trust, ROI, integr --- -## Slide 18 — Recap + Ask +## Slide 20 — Recap + Ask **The 4-beat recap + the business decision.** diff --git a/tests/test_slides_pipeline.py b/tests/test_slides_pipeline.py index 285053e..e9964dd 100644 --- a/tests/test_slides_pipeline.py +++ b/tests/test_slides_pipeline.py @@ -202,7 +202,9 @@ def test_marp_deck_title_is_autonomous_cloud_delivery(): def test_marp_deck_slide_count(): - """REQ-245: 18 main slides + 1 appendix = 19 slides total.""" + """REQ-245/261: 20 main slides + 1 appendix = 21 slides total. + v1.22 split slides 3 (Objectives+Anti-Goals) and 8 (Attestation + Matrix) to relieve overflow, increasing the count from 18 to 20.""" text = MARP_DECK.read_text() # Count slide separators: each slide ends with --- (except the last) # The frontmatter is one --- ... --- block, then each slide is separated by --- @@ -210,8 +212,8 @@ def test_marp_deck_slide_count(): slide_headings = re.findall(r"^## (?:Slide|Appendix) ", text, re.MULTILINE) main_slides = re.findall(r"^## Slide ", text, re.MULTILINE) appendix_slides = re.findall(r"^## Appendix ", text, re.MULTILINE) - assert len(main_slides) == 18, \ - f"expected 18 main slides, found {len(main_slides)}: {slide_headings}" + assert len(main_slides) == 20, \ + f"expected 20 main slides, found {len(main_slides)}: {slide_headings}" assert len(appendix_slides) == 1, \ f"expected 1 appendix slide, found {len(appendix_slides)}"