Files
acdl/.ciagent/PLAN.md
T
Jon Chery 97560e3c88 docs(grill): v1.17 binding decisions applied — 12 fixes (NORTH_STAR reclassification + deck plan rewrites)
NORTH_STAR-CHANGE: reclassify 3 targets to Post-Pilot section (E-003);
move AI-Agent Intent Share to Future Horizons (E-004).

GRILL binding decisions applied:
- G-Q4: D-122 honesty sentence on slide 7 (Nova's AI = confidence-gated policy engine, not LLM)
- G-Q5/G-Q15: derived metrics annotated with N=0 caveat; ROI formula shown inline on slide 13
- G-Q6: NORTH_STAR targets reclassified (3 to Post-Pilot, honesty note added)
- G-Q8: stake line (18V+0 consumers) added to slide 1
- G-Q9: 4 filler benefit closes rewritten (slides 1, 4, 13, 16)
- G-Q10: slide 12 split into Zero-Touch Efficiency + Cost & ROI (deck now 18 slides)
- G-Q11: preempt added to slide 14 (deferrals are measurement infra, not autonomy)
- G-Q13: Act 3->4 transition rewritten ('how it works' is not 'proof it works')
- G-Q14: slide 9 benefit reframed from data plumbing to trust substrate
- G-Q16: slide 16 ask reframed as business decision (approve pilot + ledger build-out)

---ci---
project: acdl
phase: 0
milestone: v1.17
status: grill
---/ci---
2026-08-04 19:44:28 +00:00

60 KiB
Raw Blame History

phase, name, milestone, requirements, wave, depends_on
phase name milestone requirements wave depends_on
P0 pre-execution v1.17
REQ-185
REQ-186
REQ-187
REQ-188
REQ-189
REQ-190
REQ-191
REQ-192
REQ-193
REQ-194
REQ-195
REQ-196
REQ-197
REQ-198
REQ-199
REQ-200
REQ-201
REQ-202
REQ-203
REQ-204
REQ-205
REQ-206
REQ-207
REQ-208
REQ-209
REQ-210
REQ-211
REQ-212
REQ-213
0

v1.17 — Strategic Direction, Leadership Metrics & Unified Story (Plan)

Milestone: v1.17 — Strategic Direction, Leadership Metrics & Unified Story Type: Feature (P1P3 feat; P4 docs; P5 docs+test; P6 test; P7 review+audit+ship; P8 final). Progressive patches; the final phase's patch IS the milestone release. Tags run on the v1.16.x line: v1.16.0 (P0) → v1.16.1..v1.16.7 (P1P7) → v1.16.8 (P8 final = milestone release). Branch: milestone/v1.17-strategic-metrics-deck (branched off the v1.16 complete merge). Execution phases branch phase/NN-* → merge to milestone branch → tag patch on the v1.16.x line. Tags: metrics, telemetry, decision-ledger, powerbi, deck, north-star, no-humans-thesis, regression-capability Decisions (locked, D-120..D-132 — do NOT re-open): D-120 Nova-native + Infracost, drift deferred · D-121 Decision Ledger = outbox_writer → SQLite hash-chain · D-122 AI decision = confidence_signal + HITL gate · D-123 8 deferred metrics ship as empty placeholder views · D-125 Hybrid events/files · D-126 Cold-only SQLite · D-127 Per-KPI definition-of-success docs · D-128 metrics/ at repo root · D-129 PowerBI = CSV/JSON folder connector · D-130 Deck arc Problem→Vision→How→Proof→Roadmap, both old decks retired · D-131 MTTR = platform-run only · D-132 Attestation instrumentation = emit attestation.recorded events.

Objective (three pillars):

  • (A) Strategic Direction — encode the PO's strategic direction in a durable NORTH_STAR.md read by CIAgent in every future /ci-run.
  • (B) Leadership Metrics + PowerBI — instrument Nova to collect, aggregate, and surface leadership-grade metrics that prove the "no-humans" autonomous-infrastructure value proposition — grounded in signals Nova actually emits, derived via documented formulas, or explicitly deferred with a decision ID — flowing into PowerBI-ready views.
  • (C) Unified Narrative Deck — merge the two existing decks into one unified narrative deck with the "tell them x3" arc at deck + slide level, per-slide benefit callouts, and fluid transitions.

Hard constraint: DO NOT make anything up. Every metric carries a grounded / derived / deferred status with a source file or decision ID. Deferred metrics ship as empty PowerBI placeholder views with documented schemas.


Wave Overview

Wave Phases Theme Dependency rationale
Wave 1 P1 Event emitters — the foundation Everything depends on events being emitted. P1 establishes the CloudEvents envelope, per-run manifests, Decision Ledger, Infracost adapter, and attestation/confidence/policy event emission. P2/P3/P4/P5 all consume P1's event formats.
Wave 2 P2, P3 Collector + PowerBI export P2 (collector) reads P1's events/files → SQLite cold store. P3 (export) reads P2's SQLite → CSV/JSON views. P2 + P3 can partially parallelize: P3's view schemas can be authored against P2's schemas before P2's collector code is complete, but P3's export code needs P2's SQLite to exist.
Wave 3 P4, P5 Metrics catalog + deck rebuild P4 (catalog + NORTH_STAR integration) depends on metrics being grounded (P2/P3 done). P5 (deck) depends on P4's METRICS.md for the Proof section's grounded citations. P4 + P5 can partially parallelize: P5's Problem/Vision/How acts don't need P4; P5's Proof act needs P4's catalog.
Wave 4 P6, P7 Regression capability + final review/ship P6 (CAP-023/024) depends on P2/P3 (collector) + P5 (deck) existing. P7 (review/audit/ship) depends on all prior phases.
Final P8 Milestone ship Merge to main, tag v1.16.8, Gitea release, delete milestone branches.

Dependency chain (critical path): P1 → P2 → P3 → P4 → P5(Proof) → P6 → P7 → P8

Parallelization opportunities:

  • P2 schemas + P3 view schemas can be authored concurrently (Wave 2 entry).
  • P4 docs/metrics/*.md per-KPI docs + P5 Problem/Vision/How acts can be authored concurrently (Wave 3 entry); P5 Proof act waits for P4 METRICS.md.
  • P6 CAP-023 (collector) test can be drafted while P5 finishes (the test needs P2's collector to exist, which it does by Wave 4).

Per-Phase Vertical-Slice Plans

Phase P1 — event-emitters (Wave 1, feat)

Goal: Instrument every Nova decision point to emit structured CloudEvents 1.0 events + persist ephemeral $WORK/*.json as durable artifacts + extend outbox_writer.py into the SQLite Decision Ledger. After P1, the metrics layer has all the raw signals it needs — no downstream phase invents new signals.

Requirements covered: REQ-187, REQ-188, REQ-205 (emitter half), REQ-206 (emitter half).

Primary persona: backend-engineer. Supporting: data-engineer (event schemas).

Tasks (vertical slices):

  1. CloudEvents envelope + schemascore/metrics/event_envelope.py defines the CloudEvents 1.0 envelope + platform.* semantic conventions (specversion, id, source, type, time, subject, datacontenttype, platform block, data). schemas/metrics_event.schema.json validates the envelope. schemas/metrics_run_manifest.schema.json validates per-run manifests.

    • Acceptance: python -m jsonschema validates a sample event against the schema; tests/test_metrics_emitters.py::test_envelope passes.
  2. Per-run manifest writercore/metrics/run_manifest.py emits nova.run.started, nova.run.completed, nova.run.failed events with (run_id, contractId, env, stages×durations, exit, confidence, HITL block count). Writes metrics/runs/<run_id>.json. scripts/run_platform.sh invokes the writer at run start + run end.

    • Acceptance: a --check-only run produces metrics/runs/<run_id>.json with a valid manifest; test_run_manifest passes.
  3. Persist ephemeral $WORK/*.jsonrun_platform.sh copies $WORK/pcr.json, signal.json, event.json, outbox_item.json, stack.json to metrics/runs/<run_id>/ as durable artifacts (the ephemeral $WORK copies remain for the running pipeline; the persisted copies are the metrics source of truth).

    • Acceptance: after a run, metrics/runs/<run_id>/pcr.json exists and matches $WORK/pcr.json; a test asserts the copy.
  4. pytest addoptspyproject.toml addopts gains --junitxml=metrics/test-results.xml --json-report --cov=core --cov=adapters --cov-report=json:metrics/coverage.json. CAP-009 (offline pytest suite passes) must remain Verified (assumption A5 — additive flags).

    • Acceptance: bash scripts/run_ci.sh exits 0; metrics/test-results.xml
      • metrics/coverage.json exist; regression gate 22/22 (run at P6, but P1 must not break any cap locally).
  5. Infracost post-processorcore/metrics/infracost_adapter.py runs Infracost on terraform show -json plan.tfplan (offline, reads plan JSON, no live AWS). Emits nova.cost.estimated{delta_usd}. Degrades gracefully (omits the event, logs a warning) when Infracost CLI is absent (A6). run_platform.sh invokes it after the plan stage.

    • Acceptance: when Infracost is available, metrics/runs/<run_id>/ contains a cost_estimate.json; when absent, the run still exits 0; test_infracost_adapter passes (mock the CLI).
  6. Decision Ledger (SQLite hash-chain)core/metrics/decision_ledger.py extends outbox_writer.py to emit to a SQLite append-only table (metrics/decision_ledger.db) with a hash chain (prev_hash + own hash, SHA-256). Emits ai.decision.made events (decision_id=run_id, chosen_action=band outcome, confidence=score, alternatives=perInput breakdown, human_override=HITL block) with outcome backfill from apply.completed. Honors D-083 (no S3 Object Lock/JWS — local SQLite hash-chain only).

    • Acceptance: metrics/decision_ledger.db exists after a run; the hash chain verifies (verify-chain returns 0 broken); test_decision_ledger passes.
  7. Attestation event emissioncore/hitl_gates.py emits attestation.recorded events to the Decision Ledger on qa/prod/dr gates (approver, env, concerns, result). D-132. (Dev skips — autonomous.)

    • Acceptance: a mocked qa gate produces an attestation.recorded row in the Decision Ledger; test_attestation_event passes.
  8. Confidence decision event emissioncore/confidence_signal.py emits nova.confidence.computed + nova.ai.decision.made events (D-122: the "AI decision" is the confidence-gated policy engine, not an LLM).

    • Acceptance: a confidence computation produces both events in metrics/events.jsonl; test_confidence_event passes.
  9. Policy event emissionadapters/terraform/policy/checkov_adapter.py emits nova.policy.evaluated events (rule count, pass/fail/skipped, severity breakdown).

    • Acceptance: a Checkov run produces a nova.policy.evaluated event; test_policy_event passes.
  10. Lifecycle success-rate emitter — each lifecycle run writes metrics/lifecycle/<module>-<env>.json (module, env, phase apply/modify/destroy, result, duration_ms). REQ-205 emitter half.

    • Acceptance: a mocked lifecycle run produces the JSON; the emitter test passes.
  11. Capability event emissioncore/regression_verify.py emits nova.capability.verified events (capability ID, status, tier, duration).

    • Acceptance: a regression run produces nova.capability.verified events; test_capability_event passes.

Must-haves (phase ships only if ALL true):

  • core/metrics/event_envelope.py, run_manifest.py, infracost_adapter.py, decision_ledger.py exist and are tested.
  • metrics/events.jsonl is appended to on every run (CloudEvents 1.0 envelope, valid against schemas/metrics_event.schema.json).
  • metrics/runs/<run_id>.json manifest exists after every run.
  • metrics/decision_ledger.db exists with a verified hash chain.
  • outbox_writer.py extended to write to the SQLite Decision Ledger.
  • hitl_gates.py emits attestation.recorded (D-132).
  • confidence_signal.py emits nova.confidence.computed + nova.ai.decision.made (D-122).
  • checkov_adapter.py emits nova.policy.evaluated.
  • pyproject.toml addopts include --junitxml + --json-report + --cov.
  • bash scripts/run_ci.sh exits 0.
  • No existing capability regresses (22/22 locally).

Risks + mitigations:

  • Risk: --junitxml/--cov addopts break the existing test suite. Mitigation: A5 (additive flags); verify CAP-009 stays Verified locally before merging.
  • Risk: Infracost CLI not available in CI. Mitigation: A6 — degraded mode (omit event, log warning, don't fail the run).
  • Risk: SQLite hash-chain corruption on concurrent writes. Mitigation: single-writer model (the run manifest writer is the only writer per run); WAL mode + BEGIN IMMEDIATE.
  • Risk: Event schema drift between emitters and collector. Mitigation: schemas authored first (task 1); all emitters validate against the schema before writing.

Phase P2 — metrics-collector (Wave 2, feat)

Goal: Read all grounded signals (files + events) into a normalized SQLite cold store at metrics/nova_metrics.db with idempotent re-runs. After P2, the metrics layer has a queryable store — P3 exports it, P4 catalogs it.

Requirements covered: REQ-189, REQ-200, REQ-201, REQ-205 (collector half), REQ-206 (collector half), REQ-207.

Primary persona: data-engineer. Supporting: backend-engineer (event formats).

Tasks (vertical slices):

  1. Fact/dimension schemasschemas/metrics_fact_run.schema.json, schemas/metrics_fact_capability.schema.json, schemas/metrics_fact_policy_check.schema.json, schemas/metrics_fact_confidence.schema.json, schemas/metrics_fact_test.schema.json, schemas/metrics_fact_decision.schema.json, schemas/metrics_fact_cost_estimate.schema.json, schemas/metrics_fact_lifecycle.schema.json, schemas/metrics_dim_capability.schema.json, schemas/metrics_dim_milestone.schema.json. Schema-first (data-engineer constraint): all schemas exist before any collector code.

    • Acceptance: all schemas validate sample rows; python -m jsonschema passes for each.
  2. Collector corecore/metrics/collector.py reads:

    • REGRESSION_REPORT.jsonfact_capability + dim_capability.
    • metrics/runs/*.jsonfact_run.
    • metrics/test-results.xml (junit) → fact_test.
    • metrics/coverage.jsonfact_test.coverage column.
    • metrics/runs/<run_id>/pcr.jsonfact_policy_check.
    • metrics/runs/<run_id>/signal.jsonfact_confidence.
    • metrics/decision_ledger.dbfact_decision.
    • metrics/runs/<run_id>/cost_estimate.jsonfact_cost_estimate.
    • metrics/lifecycle/*.jsonfact_lifecycle.
    • CHECKPOINT.jsondim_milestone. Writes to metrics/nova_metrics.db (SQLite cold store, D-126).
    • Acceptance: after a run + collector invocation, metrics/nova_metrics.db has all fact/dim tables populated; test_metrics_collector passes.
  3. Idempotent re-runs — the collector is idempotent: re-running it produces identical row counts + a verified chain. REQ-200.

    • Acceptance: test_metrics_collector_idempotent passes (two runs → identical row counts + chain verified).
  4. Decision Ledger CLIcore/metrics/decision_ledger_cli.py supports query, verify-chain, stats, export, replay. verify-chain detects broken hashes; replay prints ordered events. REQ-207.

    • Acceptance: decision_ledger_cli.py verify-chain exits 0 on a clean chain, exits 1 on a tampered chain; test_decision_ledger_cli passes.
  5. Metrics READMEmetrics/README.md documents regenerable vs append-only artifacts + the restore procedure (the cold store is regenerable from the raw signals; the Decision Ledger is append-only). REQ-201.

    • Acceptance: metrics/README.md exists with the two categories + a restore procedure section.

Must-haves:

  • core/metrics/collector.py exists and is tested.
  • metrics/nova_metrics.db is produced with all fact/dim tables.
  • Idempotent re-runs (REQ-200) verified by test.
  • core/metrics/decision_ledger_cli.py exists with all 5 subcommands.
  • metrics/README.md documents regenerable vs append-only + restore.
  • bash scripts/run_ci.sh exits 0.

Risks + mitigations:

  • Risk: Schema drift between P1's event formats and P2's fact schemas. Mitigation: data-engineer authors both; backend-engineer reviews the event-format alignment.
  • Risk: Junit XML parsing edge cases (test names with special chars). Mitigation: use xml.etree.ElementTree with XPath; test with a fixture containing edge-case names.

Phase P3 — powerbi-export (Wave 2, feat)

Goal: Emit CSV/JSON views from the SQLite cold store to metrics/powerbi/ — fact + dimension views + 8 empty placeholder views for deferred metrics. After P3, a PowerBI folder-connector dashboard can be built.

Requirements covered: REQ-190, REQ-199, REQ-208, REQ-209 (P3 half), REQ-205 (view half).

Primary persona: data-engineer.

Tasks (vertical slices):

  1. PowerBI export corecore/metrics/powerbi_export.py reads metrics/nova_metrics.db and emits CSV/JSON views to metrics/powerbi/: fact_run.csv, fact_capability.csv, fact_policy_check.csv, fact_confidence.csv, fact_test.csv, fact_decision.csv, fact_cost_estimate.csv, fact_lifecycle.csv, dim_capability.csv, dim_milestone.csv. D-129 (CSV/JSON folder connector).

    • Acceptance: after powerbi_export.py runs, all 10 CSV files exist in metrics/powerbi/ with non-empty content (given a populated cold store); test_powerbi_export passes.
  2. 8 deferred placeholder views — empty CSV files with documented schemas (headers only, no data rows) for the 8 deferred metrics: (1) Live Infrastructure Health, (2) Live Outbox Write Rate, (3) Tamper-Evident Ledger Checkpoints, (4) Onboarding Funnel (requested→granted), (5) Drift Auto-Reversal Rate, (6) Live CUR Reconciliation, (7) SLA / Unplanned Downtime, (8) Predictive vs Reactive Ratio. D-123. Each has a header row documenting the columns + a comment row citing the blocking decision ID.

    • Acceptance: all 8 placeholder CSVs exist with header rows + a decision-ID comment; test_placeholder_views passes.
  3. METRICS_VIEWS.md data dictionarydocs/METRICS_VIEWS.md has a per-column data-dictionary table (column, type, source/formula, unit, grounded/derived/deferred status) for every view. REQ-209 (P3 half).

    • Acceptance: docs/METRICS_VIEWS.md exists with a complete per-column table covering all 18 views (10 fact/dim + 8 placeholder).
  4. NOVA_DASHBOARD_README.mdmetrics/powerbi/NOVA_DASHBOARD_README.md documents the folder-connector import path + a starter visual model + a reference screenshot placeholder. REQ-208.

    • Acceptance: the README exists with import steps + visual model description.
  5. Schema validation in CIrun_ci.sh validates metrics/powerbi/*.json + a sample metrics/events.jsonl against their schemas; exits 0. REQ-199.

    • Acceptance: bash scripts/run_ci.sh validates the PowerBI JSON exports + a sample events file; exits 0.

Must-haves:

  • core/metrics/powerbi_export.py exists and is tested.
  • metrics/powerbi/ contains all 10 fact/dim CSVs + 8 placeholder CSVs.
  • docs/METRICS_VIEWS.md has the per-column data dictionary.
  • metrics/powerbi/NOVA_DASHBOARD_README.md exists.
  • run_ci.sh schema validation (REQ-199) passes.
  • bash scripts/run_ci.sh exits 0.

Risks + mitigations:

  • Risk: Placeholder view schemas diverge from what the future emitter will produce. Mitigation: the schema is documented in the header row
    • METRICS_VIEWS.md; the future emitter must conform to the documented schema.
  • Risk: PowerBI folder connector quirks (CSV encoding, delimiters). Mitigation: UTF-8 + comma-delimited; documented in the README.

Phase P4 — metrics-catalog + north-star-integration (Wave 3, docs)

Goal: Catalog every executive KPI in docs/METRICS.md with grounded/derived/deferred status + per-KPI definition-of-success docs. Wire NORTH_STAR.md into CIAgent context-loading so every future /ci-run reads it. Produce the trust-snapshot report, the deferred-metrics roadmap, the confidence-gate halt rate metric, and the no-humans thesis brief. After P4, the metrics layer is fully documented and the strategic direction is durable.

Requirements covered: REQ-186, REQ-191, REQ-192, REQ-193, REQ-194, REQ-195, REQ-204, REQ-209 (P4 half), REQ-210, REQ-211, REQ-212, REQ-213 (P4 half).

Primary persona: lead-developer. Supporting: data-engineer (metric definitions).

Tasks (vertical slices):

  1. METRICS.md catalogdocs/METRICS.md catalogs every executive KPI with: name, NORTH_STAR target, grounded/derived/deferred status, source file or decision ID, and a link to the per-KPI definition doc. REQ-195. Covers all metrics from the scorecard (RESEARCH.md §3): Touchless Resolution Rate, Human Escalation Frequency, MTTR (platform-run), AI Decision Accuracy, Decision Ledger Coverage, Attestation Coverage, Capability Health, Confidence Distribution, Policy Pass Rate, Test Count/Pass Rate, Provisioning Lead Time, Deployment Frequency, Cost Estimates (Infracost), FTE Hours Saved, Platform ROI, Confidence-Gate Halt Rate, + the 8 deferred metrics.

    • Acceptance: docs/METRICS.md exists; every KPI has a status badge
      • a source link; a grep confirms no KPI is missing a status.
  2. Per-KPI definition-of-success docsdocs/metrics/<kpi>.md for every KPI (D-127). Each doc defines: the metric, the formula, the grounding status, the source file, the definition of success (what number = "won"), and the deferred dependency (if applicable).

    • Acceptance: docs/metrics/ contains one .md per KPI; each doc has all 5 sections.
  3. Zero-touch efficiency metrics docs — REQ-191: Autonomous Resolution Rate, Human Escalation Frequency, AI Decision Accuracy, MTTD/MTTR (platform-run, D-131). Documented in METRICS.md + per-KPI docs with the attestation exclusion clarification (attestation gates are designed controls, not escalations).

    • Acceptance: the 4 metrics have per-KPI docs with the correct formulas + attestation exclusion language.
  4. Velocity metrics docs — REQ-192: Provisioning Lead Time (apply.completed.time intent.received.time), Deployment Frequency (count(apply.completed) per day). Self-Healing Velocity deferred.

    • Acceptance: the 2 metrics have per-KPI docs; the deferral is documented.
  5. Financial & cost-ROI metrics docs — REQ-193: FTE Hours Saved (derived), Cost Savings via Infracost (grounded), Cost Efficiency Ratio (derived), Platform ROI (derived formula). Live CUR deferred (D-096).

    • Acceptance: the 4 metrics have per-KPI docs with formulas; the CUR deferral cites D-096.
  6. Reliability, security & compliance metrics docs — REQ-194: Zero-Trust Policy Compliance Rate (from pcr.json), Attestation Coverage (prod/dr promotions attested by a human ÷ total prod/dr promotions; grounded in hitl_gates.py + outbox approver_* attributes). Uptime, Patch Remediation, SLA/downtime deferred (D-096). Attestation Coverage is canonically owned here (REQ-194), not in REQ-191.

    • Acceptance: the 2 grounded metrics have per-KPI docs; the 3 deferred metrics have deferral docs citing D-096.
  7. NORTH_STAR integration — REQ-186: NORTH_STAR.md is referenced from PROJECT.md (a "Strategic Direction" section pointing to it) + ARCHITECTURE.md (the v1.17 addendum already references it). config.json gains strategic_direction_file: ".ciagent/NORTH_STAR.md" so the run workflow reads it at SPECIFY.

    • Acceptance: PROJECT.md has a Strategic Direction section; config.json has the strategic_direction_file key; a test confirms the file is readable.
  8. NORTH_STAR diff-check in CI — REQ-204: run_ci.sh includes check_north_star_diff that fails when Vision/Objectives/Anti-Goals/ Targets sections change without a NORTH_STAR-CHANGE: commit trailer.

    • Acceptance: a test commit changing a Target without the trailer fails the check; a commit with the trailer passes.
  9. Deferred-metrics activation roadmapdocs/METRICS_DEFERRED_ROADMAP.md lists 8 deferred metrics + onboarding-grant half with {blocking decision, unblock requirement, candidate milestone} + a "Hot-Path Activation (post-D-096)" section (Nova-native only, D-120) + "Re-evaluation Triggers" section. REQ-210.

    • Acceptance: the roadmap exists with all 8 + the onboarding-grant half + the 2 sections.
  10. Trust-snapshot reportcore/metrics/trust_snapshot.py emits metrics/TRUST_SNAPSHOT.md with 5 trust metrics (Decision Ledger Coverage, Attestation Coverage, Capability Health, AI Decision Accuracy, Confidence-Gate Halt Rate) + chain-integrity verdict + snapshot hash. Runs offline. REQ-211.

    • Acceptance: metrics/TRUST_SNAPSHOT.md exists after running trust_snapshot.py; the 5 metrics + verdict + hash are present; test_trust_snapshot passes.
  11. Confidence-Gate Halt Rate metric — REQ-212: docs/METRICS.md + trust snapshot include "Confidence-Gate Halt Rate" (signal.json band=halt ÷ total runs). PowerBI view includes it (added to fact_confidence projection in P3's export — coordinate with P3).

    • Acceptance: METRICS.md has the metric; the trust snapshot includes it; the PowerBI export includes a column for it.
  12. No-humans thesis briefdocs/NO_HUMANS_THESIS.md defines the thesis, grounded proof metrics, deferred proof metrics, and explicit anti-claims (incl. D-122 honesty: the "AI" is the confidence-gated policy engine, not an LLM). REQ-213 (P4 half). The unified deck's Vision act cites it (P5).

    • Acceptance: docs/NO_HUMANS_THESIS.md exists with all 4 sections; the anti-claims section explicitly addresses D-122.

Must-haves:

  • docs/METRICS.md catalogs every KPI with status + source.
  • docs/metrics/*.md per-KPI docs exist for every KPI.
  • NORTH_STAR.md referenced from PROJECT.md + ARCHITECTURE.md + config.json.
  • run_ci.sh includes check_north_star_diff (REQ-204).
  • docs/METRICS_DEFERRED_ROADMAP.md exists (REQ-210).
  • core/metrics/trust_snapshot.py + metrics/TRUST_SNAPSHOT.md (REQ-211).
  • Confidence-Gate Halt Rate in METRICS.md + trust snapshot + PowerBI (REQ-212).
  • docs/NO_HUMANS_THESIS.md exists (REQ-213 P4 half).
  • bash scripts/run_ci.sh exits 0.

Risks + mitigations:

  • Risk: KPI definitions drift from NORTH_STAR targets. Mitigation: the catalog cross-references NORTH_STAR target rows; the diff-check (REQ-204) catches NORTH_STAR changes.
  • Risk: The no-humans thesis overclaims. Mitigation: D-122 honesty constraint — the anti-claims section explicitly states the "AI" is the confidence-gated policy engine; A3.

Phase P5 — deck-rebuild (Wave 3, docs+test)

Goal: Merge the two existing decks into one unified narrative deck "Nova — The No-Humans Infrastructure Platform" with the 5-act arc (Problem → Vision → How → Proof → Roadmap), x3 structure at deck + slide level, per-slide benefit callouts, fluid transitions, a metrics glossary appendix slide, a "what's deferred" slide, and the no-humans thesis cited in the Vision act. Retire both old decks. Re-run the 4-step deck process (source .md → Marp → HTML → talking-points).

Requirements covered: REQ-196, REQ-197, REQ-202, REQ-203, REQ-213 (P5 half).

Primary persona: lead-developer.

Tasks (vertical slices):

  1. Unified deck source markdowndocs/presentations/nova-no-humans-platform.md is the single source of truth (the full slide-by-slide plan is in the "Deck Rebuild Plan" section below). The 5-act arc with x3 at deck level (opening = arc preview, body = tell them, closing = recap + ask) + x3 per slide (opens with what it covers, delivers, closes with benefit callout). Fluid transitions written into each slide's opening line. REQ-196, REQ-197.

    • Acceptance: the source .md exists with all slides from the deck plan below; each slide has the 3-part structure; transitions are written.
  2. Marp deckdocs/presentations/nova-no-humans-platform-marp.md (Marp-formatted with the S&P visual theme, sp-theme.json unchanged).

    • Acceptance: the Marp deck renders to HTML with the correct slide count + theme.
  3. HTML renderdocs/presentations/nova-no-humans-platform.html (re-rendered from the Marp deck).

    • Acceptance: the HTML exists and opens with the correct title slide.
  4. Talking pointsdocs/presentations/nova-no-humans-platform-talking-points.md (distilled from the Marp deck, one section per slide with speaker notes).

    • Acceptance: the talking-points file exists with one section per slide.
  5. Metrics glossary appendix slide — REQ-202: the deck has a "Metrics Glossary" appendix slide with one-line KPI definitions + grounding badges (grounded/derived/deferred).

    • Acceptance: the glossary slide exists with all KPIs + badges.
  6. "What's Deferred — and Why" slide — REQ-203: the deck has a slide pairing each of 8 deferred metrics with its blocking decision ID.

    • Acceptance: the deferred slide exists with all 8 + decision IDs.
  7. No-humans thesis cited in Vision act — REQ-213 (P5 half): the Vision act cites docs/NO_HUMANS_THESIS.md (the thesis, grounded proof, deferred proof, anti-claims).

    • Acceptance: the Vision act slides reference the thesis brief.
  8. Retire both old decks — delete how-the-platform-works.md + -marp.md + .html + -talking-points.md + the-developer-experience.md

    • -marp.md + .html + -talking-points.md. D-130.
    • Acceptance: a grep confirms the old deck files are deleted; no references to them remain in the repo.

Must-haves:

  • docs/presentations/nova-no-humans-platform.md (+ marp + html + talking-points) exists with the full slide plan.
  • x3 structure at deck + slide level (REQ-197).
  • Per-slide benefit callouts (REQ-197).
  • Fluid transitions written into each slide (REQ-197).
  • Metrics glossary appendix slide (REQ-202).
  • "What's Deferred" slide (REQ-203).
  • No-humans thesis cited in Vision act (REQ-213 P5 half).
  • Both old decks deleted (D-130).
  • bash scripts/run_ci.sh exits 0.

Risks + mitigations:

  • Risk: The deck claims a metric that isn't grounded yet. Mitigation: P5 Proof act depends on P4's METRICS.md; every cited metric has a grounded source file verified by the catalog.
  • Risk: The old decks are referenced by other docs. Mitigation: grep for references before deletion; update or remove them.

Phase P6 — regression-capability (Wave 4, test)

Goal: Add CAP-023 (metrics collector runs, emits expected schema) + CAP-024 (deck structure: slide count, x3 present, per-slide benefit present) to core/regression_verify.py. After P6, the regression gate protects the metrics layer + the deck structure.

Requirements covered: REQ-198.

Primary persona: backend-engineer. Supporting: data-engineer (CAP-023 schema).

Tasks (vertical slices):

  1. CAP-023 — metrics collectorcore/regression_verify.py gains a CAP-023 check: runs core/metrics/collector.py against a fixture metrics dir, asserts the SQLite cold store has all fact/dim tables with the expected schema, asserts idempotent re-run. Tags Verified/Decayed/Broken.

    • Acceptance: CAP-023 returns Verified when the collector produces the correct schema; test_regression_cap023 passes.
  2. CAP-024 — deck structurecore/regression_verify.py gains a CAP-024 check: parses docs/presentations/nova-no-humans-platform.md, asserts (a) slide count is in the expected range (1220), (b) the x3 structure is present (opening arc preview + closing recap), (c) each slide has a benefit callout. Tags Verified/Decayed/Broken.

    • Acceptance: CAP-024 returns Verified when the deck meets all 3 criteria; test_regression_cap024 passes.
  3. Regression gate runbash scripts/run_regression.sh runs the full gate (22 prior capabilities + CAP-023 + CAP-024 = 24 total). All must pass (Verified or Skipped per D-118).

    • Acceptance: the regression report shows 24 capabilities, all Verified or Skipped, 0 Decayed/Broken.

Must-haves:

  • CAP-023 + CAP-024 in core/regression_verify.py.
  • bash scripts/run_regression.sh passes (24 capabilities, 0 Broken).
  • bash scripts/run_ci.sh exits 0.

Risks + mitigations:

  • Risk: CAP-024's slide-count range is too tight and breaks on minor deck edits. Mitigation: the range is 1220 (generous); the check focuses on structure (x3 + benefit callouts), not exact count.

Phase P7 — final-review-ship (Wave 4, review+audit+ship)

Goal: Multi-persona review (incl. deck story quality), audit, and milestone ship. After P7, v1.17 is complete and ready for the final merge.

Requirements covered: all (review gate).

Primary persona: lead-developer. Supporting: all active personas (review participation).

Tasks (vertical slices):

  1. Multi-persona review — each active persona reviews their territory:

    • backend-engineer: event emitters, Decision Ledger, Infracost adapter, regression CAP-023/024 code.
    • data-engineer: collector, PowerBI export, schemas, data dictionary.
    • lead-developer: NORTH_STAR integration, METRICS.md catalog, deck narrative, no-humans thesis.
    • Deck story quality review: the lead-developer reviews the deck for narrative coherence, fluidity, and benefit-callout quality.
    • Acceptance: review findings recorded; P0/P1 findings fixed before ship; P2 findings logged for future milestones.
  2. Audit — verify:

    • All 29 requirements (REQ-185..213) have a status of complete in the traceability table.
    • No stale claims in the deck (every metric citation has a grounded source).
    • NORTH_STAR.md is readable + referenced.
    • The regression gate passes (24 capabilities).
    • bash scripts/run_ci.sh exits 0.
    • Acceptance: audit PASS recorded in ---ci--- block.
  3. Milestone completion — update PROJECT.md, ROADMAP.md, REQUIREMENTS.md traceability to mark v1.17 complete. Tag v1.16.7 (P7 patch on the v1.16.x line).

    • Acceptance: PROJECT.md reflects v1.17 complete; tag v1.16.7 exists.

Must-haves:

  • All 29 requirements marked complete.
  • Multi-persona review complete (incl. deck story quality).
  • Audit PASS.
  • Regression gate 24/24 (Verified or Skipped).
  • bash scripts/run_ci.sh exits 0.
  • Tag v1.16.7 exists.

Risks + mitigations:

  • Risk: Review surfaces a P0 finding late. Mitigation: the review is scoped to each persona's territory; findings are fixed before the audit step.

Phase P8 — milestone-ship (Final)

Goal: Merge the milestone branch to main, tag v1.16.8 (the milestone release), publish the Gitea release, and delete the milestone branches.

Requirements covered: all (ship gate).

Primary persona: lead-developer.

Tasks (vertical slices):

  1. Merge to main — merge milestone/v1.17-strategic-metrics-deckmain.

    • Acceptance: main contains all v1.17 commits; git log main shows the milestone merge.
  2. Tag + release — tag v1.16.8 on main; publish the Gitea release (Nova v1.16.8 — Strategic Direction, Leadership Metrics & Unified Story) with the release notes summarizing the three pillars.

    • Acceptance: tag v1.16.8 exists; Gitea release published (release ID recorded).
  3. Delete milestone branches — delete milestone/v1.17-strategic-metrics-deck

    • all phase/NN-* branches.
    • Acceptance: git branch -r shows no v1.17 milestone/phase branches.

Must-haves:

  • main has the v1.17 merge.
  • Tag v1.16.8 exists.
  • Gitea release published.
  • Milestone + phase branches deleted.

Risks + mitigations:

  • Risk: Merge conflicts on main. Mitigation: the milestone branch is off the v1.16 complete merge; rebase before merge if needed.

Deck Rebuild Plan

The unified deck: "Nova — The No-Humans Infrastructure Platform." 5-act arc: Problem → Vision → How → Proof → Roadmap. x3 at deck level (opening = arc preview, body = tell them, closing = recap + ask) + x3 per slide (opens with what it covers, delivers, closes with benefit callout). Fluid transitions written into each slide's opening line. Act indicator in the Marp footer (Act N/5: <act name>).

Deck-level x3 structure

Level "What I'm going to tell you" "Tell them" "What I told you"
Deck Slide 1 (arc preview: Problem→Vision→How→Proof→Roadmap; with 18V+0-consumer stake line) Slides 215 (the 5 acts, 14 slides) Slide 16 (recap of 5 acts + the business-decision ask)
Per slide Opening line: "This slide shows X" Body: bullets/diagram/table Closing line: "Benefit: you now know Y"

Act 1 — Problem (2 slides)

Transition into Act 1: (none — this is the opening; the arc preview slide sets up all 5 acts).

Slide 1 — Arc Preview (the "what I'm going to tell you" deck-level opening)

  • Opens: "This deck proves Nova is the no-humans infrastructure platform — and shows you the metrics that make the claim defensible."
  • Stake line (G-Q8 binding): "Today: 18 capabilities verified, 0 consumer estates in production. This deck shows what's proven, what's pipeline-ready, and what's honestly deferred."
  • Delivers: The 5-act arc as a visual roadmap: Problem → Vision → How → Proof → Roadmap. One-line summary per act.
  • Closes: "Benefit: you leave this deck knowing which claims are proven today, which are pipeline-ready, and which are deferred with a documented unblock path — no marketing, just grounded evidence."
  • Grounded metrics cited: 18 Verified + 4 Skipped (source: REGRESSION_REPORT.json); 0 consumers (source: PROJECT.md:495).
  • Deferred metrics: none.

Slide 2 — The No-Humans Imperative

  • Opens: "This slide shows why the operator is the bottleneck — and why removing them from operations (not accountability) is the imperative."
  • Delivers: The cost of humans-in-the-loop: L1/L2 ops hours, escalation latency, the trust gap (autonomous claims without proof). Cites the no-humans thesis (docs/NO_HUMANS_THESIS.md).
  • Closes: "Benefit: you now know the problem framing — autonomy in operations, human at stage gates, is the path forward."
  • Grounded metrics cited: none (problem framing).
  • Deferred metrics: none.
  • Transition into Act 2: "Having defined the problem, here is Nova's strategic direction toward solving it."

Act 2 — Vision/Direction (3 slides)

Transition into Act 2: "Having defined the problem, here is Nova's strategic direction toward solving it."

Slide 3 — Nova's Vision

  • Opens: "This slide states Nova's vision — infrastructure operations become invisible, with provable trust."
  • Delivers: The NORTH_STAR vision statement verbatim. The attestation model: human attestation required at stage gates (QA for production, SRE for operational readiness); autonomy in operations, not in accountability. Cites docs/NO_HUMANS_THESIS.md (the thesis, grounded proof, deferred proof, anti-claims incl. D-122 honesty).
  • Closes: "Benefit: you now know the destination — invisible operations with provable trust, not promised trust."
  • Grounded metrics cited: none (vision).
  • Deferred metrics: none.
  • Transition: "The vision is ambitious — here are the 4 strategic objectives that make it concrete."

Slide 4 — Strategic Objectives + Anti-Goals

  • Opens: "This slide pairs what Nova is building toward (4 objectives) with what Nova refuses to build (5 anti-goals)."
  • Delivers: The 4 strategic objectives (zero-touch ops, provable trust, compounding ROI, default substrate for agentic consumption) + the 5 anti-goals (not a hyperscaler competitor, not a general AI platform, not removing humans from accountability, not for legacy infra, not sold to operators). From NORTH_STAR.md.
  • Closes: "Benefit: you now know the scope boundaries — Nova is purpose-built for infrastructure operations, sold to leadership on outcomes, and explicitly not a general-purpose AI platform or a hyperscaler competitor."
  • Grounded metrics cited: none (direction).
  • Deferred metrics: none.
  • Transition: "The objectives are committed to measurable targets — here is the 1218 month scorecard, with honest grounding status."

Slide 5 — 1218 Month Targets (the scorecard)

  • Opens: "This slide shows the committed targets — numbers a board member can repeat back — with their grounding status."
  • Delivers: The NORTH_STAR targets table with the grounding column: Touchless Resolution Rate ≥99% (grounded), Human Escalation <0.1% (grounded), MTTR <60s (grounded, platform-run), AI Decision Accuracy ≥99.5% (grounded), Decision Ledger Coverage 100% (grounded), Attestation Coverage 100% (grounded), Cloud Spend Reduction ≥25% (partial — Infracost grounded, CUR deferred), Platform ROI ≥250% (derived), + deferred targets (Predictive vs Reactive, Drift Auto-Reversal, AI-Agent Intent Share) marked Planned.
  • Closes: "Benefit: you now know the destination numbers — and which ones are measurable today vs deferred honestly."
  • Grounded metrics cited: Touchless Resolution Rate, Human Escalation Frequency, MTTR, AI Decision Accuracy, Decision Ledger Coverage, Attestation Coverage — all grounded with source files.
  • Deferred metrics marked Planned: Predictive vs Reactive, Drift Auto-Reversal, AI-Agent Intent Share.
  • Transition into Act 3: "The targets are committed — here is how Nova works to achieve them."

Act 3 — How it works (4 slides)

Transition into Act 3: "The targets are committed — here is how Nova works to achieve them."

Slide 6 — The Platform Pipeline

  • Opens: "This slide shows the contract-to-evidence pipeline — how intent becomes verified infrastructure without an operator."
  • Delivers: The pipeline flow: contract → resolver → adapter → terraform plan → Checkov (policy) → confidence signal → HITL gate (dev autonomous; qa/prod/dr attested) → apply → evidence. Mermaid diagram. Grounded in scripts/run_platform.sh + core/contract_resolver.py + adapters/terraform/adapter.py + core/confidence_signal.py.
  • Closes: "Benefit: you now know the path from intent to evidence — and where the human appears (stage gates only)."
  • Grounded metrics cited: none (architecture).
  • Deferred metrics: none.
  • Transition: "The pipeline produces decisions — here is how every decision is captured and made accountable."

Slide 7 — The Decision Ledger

  • Opens: "This slide shows the Decision Ledger — every AI decision captured with confidence, alternatives, and outcome."
  • Delivers: The Decision Ledger architecture: outbox_writer.py extended → SQLite append-only hash-chain table. ai.decision.made events (decision_id=run_id, chosen_action=band, confidence=score, alternatives=perInput, human_override=HITL block) with outcome backfill from apply.completed. attestation.recorded events for qa/prod/dr. D-121, D-122, D-132. Honors D-083 (no S3 Object Lock/JWS — local hash-chain this milestone).
  • D-122 honesty sentence (G-Q4 binding): "Nova's 'AI' is the confidence-gated policy engine (confidence_signal + HITL gate), not an LLM planner. The Decision Ledger captures this real decision path — not a fabricated 'AI agent' that doesn't exist yet."
  • Closes: "Benefit: you now know why 'autonomous' is defensible — every decision is immutable, queryable, and accountable. And you know exactly what 'AI' means here: a confidence-gated policy engine, not a black-box LLM."
  • Grounded metrics cited: Decision Ledger Coverage 100% (source: core/metrics/decision_ledger.py + metrics/decision_ledger.db).
  • Deferred metrics marked Planned: Tamper-Evident Ledger Checkpoints (D-083).
  • Transition: "Decisions are captured — here is how stage-gate attestation keeps humans in accountability."

Slide 8 — The 8-Concern Attestation Matrix

  • Opens: "This slide shows the 8-concern attestation matrix — the designed controls that keep humans at stage gates."
  • Delivers: The 8 concerns (functional, performance, security posture, contract NFRs, operational readiness, incident response, capacity/cost, resilience). Offline-testable concerns run for real; operator-supplied concerns accept signed evidence artifacts. Separation-of-duties on prod. Grounded in core/attestation_matrix.py + core/hitl_gates.py.
  • Closes: "Benefit: you now know the gate model — autonomy in operations, human in accountability, by design."
  • Grounded metrics cited: Attestation Coverage 100% (source: core/hitl_gates.py + outbox approver_* attributes).
  • Deferred metrics: none.
  • Transition into Act 4 (G-Q13 binding — rewritten): "You've now seen how Nova works — the pipeline, the Decision Ledger, the attestation gates. But 'how it works' is not 'proof it works.' The next four slides show the measured evidence: capability health, trust metrics, efficiency, and cost — every number grounded in a real file, not a marketing claim."

Slide 9 — Telemetry Architecture (G-Q14 binding — benefit reframed from data plumbing to trust)

  • Opens: "This slide shows how Nova instruments itself — the CloudEvents envelope, the cold store, and the PowerBI export."
  • Delivers: The telemetry architecture diagram (from ARCHITECTURE.md v1.17 addendum): platform components → CloudEvents 1.0 envelope → metrics/events.jsonl + metrics/runs/ + metrics/decision_ledger.db → collector → metrics/nova_metrics.db (SQLite cold store) → metrics/powerbi/ (CSV/JSON views) → PowerBI. D-120 (Nova-native), D-125 (hybrid events/files), D-126 (cold-only).
  • Closes: "Benefit: you now know that every metric in this deck is traceable to a real emitted event — the architecture IS the trust substrate. When a CFO asks 'where does this number come from?', the answer is a file path, not a Slack thread."
  • Grounded metrics cited: none (architecture).
  • Deferred metrics marked Planned: Hot-path (live ops dashboard) — D-126.
  • Transition into Act 4: "The architecture is sound — here is the measured proof."

Act 4 — Proof (4 slides)

Transition into Act 4: "The architecture is sound — here is the measured proof."

Slide 10 — Capability Health + Confidence Distribution

  • Opens: "This slide shows the grounded proof: capability health and confidence distribution from real runs."
  • Delivers: Capability health: 18 Verified + 4 Skipped (post-D-096 teardown) from .ciagent/REGRESSION_REPORT.json. Confidence distribution: from metrics/nova_metrics.db fact_confidence — score histogram, band breakdown (pass/halt). The honesty model: Skipped is honest (resources torn down per D-096), not a failure.
  • Closes: "Benefit: you now know the platform is verified — 18 capabilities pass, 4 are honestly skipped, 0 broken."
  • Grounded metrics cited: Capability Health (source: REGRESSION_REPORT.json), Confidence Distribution (source: metrics/nova_metrics.db fact_confidence).
  • Deferred metrics: none.
  • Transition: "Capability health is necessary — here is the trust substrate that makes autonomy defensible."

Slide 11 — Decision Ledger + Attestation Coverage

  • Opens: "This slide shows the trust metrics — Decision Ledger coverage and attestation coverage, both 100%."
  • Delivers: Decision Ledger Coverage: 100% of platform runs emit ai.decision.made with outcome backfill (source: metrics/decision_ledger.db). Attestation Coverage: 100% of prod/dr promotions attested by a human (source: hitl_gates.py + outbox approver_* attributes). AI Decision Accuracy: decisions not followed by apply.failed/incident within 5min. The trust-snapshot report (metrics/TRUST_SNAPSHOT.md) with chain-integrity verdict.
  • Closes: "Benefit: you now know the trust is provable — not a marketing claim, a queryable record."
  • Grounded metrics cited: Decision Ledger Coverage, Attestation Coverage, AI Decision Accuracy (source: metrics/decision_ledger.db + metrics/TRUST_SNAPSHOT.md).
  • Deferred metrics: Tamper-Evident Ledger Checkpoints (D-083) — Planned.
  • Transition: "Trust is provable — here is the operational efficiency that makes the ROI real."

Slide 12 — Zero-Touch Efficiency (G-Q10 binding — split from old slide 12)

  • Opens: "This slide shows the zero-touch efficiency metrics — touchless resolution, human escalation, and MTTR."
  • Delivers: Touchless Resolution Rate (runs without operational HITL block ÷ total; attestation gates excluded). Human Escalation Frequency (operational HITL blocks only). MTTR (platform-run: apply.failed → successful retry, D-131). Post-Pilot caveat (G-Q5 binding): these three metrics are computed on N internal runs today; the production-denominator activates when a pilot estate runs (see NORTH_STAR Post-Pilot Targets section).
  • Closes: "Benefit: you now know the zero-touch efficiency is measurable — the pipeline works today on internal runs, and the denominator expands to production estates when a pilot activates."
  • Grounded metrics cited: Touchless Resolution Rate, Human Escalation Frequency, MTTR (source: metrics/nova_metrics.db fact_run).
  • Derived metrics: none on this slide.
  • Deferred metrics marked Planned: Self-Healing Velocity (no auto-remediator).
  • Transition: "Efficiency is half the ROI story — here is the cost side."

Slide 13 — Cost & ROI (G-Q10 binding — split from old slide 12; G-Q15 binding — formula inline + N=0 caveat)

  • Opens: "This slide shows the cost estimates and the ROI formula — with honest caveats about the current denominator."
  • Delivers: Cost Estimates via Infracost (pre-apply, grounded). ROI formula shown inline (G-Q15 binding): Platform ROI = (FTE hours saved × blended rate + cloud savings + avoided downtime) ÷ platform op cost. N=0 caveat (G-Q5/G-Q15 binding): "These derived metrics are computed on N internal runs today; the production-denominator activates post-pilot. The formula is grounded; the production numbers are not yet." FTE Hours Saved (derived). Platform ROI (derived formula). The grounded/derived/deferred honesty model.
  • Closes: "Benefit: you now know the ROI formula — and you know it's computed on internal runs today, not fabricated production numbers. The formula is ready; the production denominator activates with a pilot."
  • Grounded metrics cited: Cost Estimates (source: metrics/nova_metrics.db fact_cost_estimate).
  • Derived metrics: FTE Hours Saved, Platform ROI (formula shown inline).
  • Deferred metrics marked Planned: Live CUR Reconciliation (D-096), Drift Auto-Reversal (D-096).
  • Transition: "The proof is grounded — here is what is honestly deferred."

Slide 14 — What's Deferred — and Why (G-Q11 binding — preempt: deferrals are measurement infra, not whether the platform runs without humans)

  • Opens: "This slide pairs each deferred metric with its blocking decision — honesty about what isn't measured yet."
  • Preempt (G-Q11 binding): "To be clear: these deferrals are measurement infrastructure, not whether the platform runs without humans. The platform IS autonomous in operations. What's deferred is the evidence pipeline for certain metrics (live infra health, drift detection, predictive remediation) — not the autonomy itself."
  • Delivers: The 8 deferred metrics + onboarding-grant half, each paired with its blocking decision ID: (1) Live Infrastructure Health — D-096, (2) Live Outbox Write Rate — D-096, (3) Tamper-Evident Ledger Checkpoints — D-083, (4) Onboarding Funnel (granted) — D-113/D-114/D-119, (5) Drift Auto-Reversal — D-096 + no scheduler, (6) Live CUR Reconciliation — D-096, (7) SLA / Unplanned Downtime — D-096, (8) Predictive vs Reactive — future emitter. From docs/METRICS_DEFERRED_ROADMAP.md.
  • Closes: "Benefit: you now know the boundaries — what Nova measures today, and exactly what blocks the rest. The autonomy is real; the measurement gaps are documented."
  • Grounded metrics cited: none (deferral honesty).
  • Deferred metrics: all 8 + onboarding-grant half, each with decision ID.
  • Transition into Act 5: "The proof is honest — here is the roadmap from here to the 1218 month targets."

Act 5 — Roadmap/Ask (2 slides)

Transition into Act 5: "The proof is honest — here is the roadmap from here to the 1218 month targets."

Slide 15 — Roadmap to the North Star

  • Opens: "This slide shows the path from v1.17's grounded metrics to the 1218 month targets — the unblock path for each deferred metric."
  • Delivers: The deferred-metrics activation roadmap (from docs/METRICS_DEFERRED_ROADMAP.md): each deferred metric → blocking decision → unblock requirement → candidate milestone. The hot-path activation section (post-D-096, Nova-native only, D-120). Re-evaluation triggers.
  • Closes: "Benefit: you now know the path — every deferred metric has an unblock requirement and a candidate milestone."
  • Grounded metrics cited: none (roadmap).
  • Deferred metrics: all 8 referenced with unblock paths.
  • Transition: "The roadmap is clear — here is the recap and the ask."

Slide 16 — Recap + Ask (the "what I told you" deck-level closing; G-Q16 binding — ask reframed as a business decision)

  • Opens: "This slide recaps the 5 acts and states the ask."
  • Delivers: Recap: Problem (operator bottleneck) → Vision (invisible ops, provable trust) → How (pipeline + Decision Ledger + attestation) → Proof (18V+4S, 100% ledger coverage, 100% attestation, grounded ROI formula) → Roadmap (deferred metrics have unblock paths). The ask (G-Q16 binding — reframed as a business decision, not insider language): "The ask is a business decision: approve a pilot estate to activate the production-denominator metrics (Touchless Resolution, Human Escalation, AI Decision Accuracy), and approve the tamper- evident ledger build-out (D-083 lift) to move from local hash-chain to S3 Object Lock + JWS. These two decisions move Nova from 'pipeline-ready' to 'production-proven.'"
  • Closes: "Benefit: you leave with a clear business decision to make — approve a pilot + the ledger build-out — and the confidence that every claim in this deck is grounded, derived, or honestly deferred."
  • Grounded metrics cited: Capability Health, Decision Ledger Coverage, Attestation Coverage (recap).
  • Deferred metrics: referenced as the ask.

Appendix slides (2 slides)

Slide A1 — Metrics Glossary

  • Opens: "This appendix defines every KPI in one line with its grounding badge."
  • Delivers: One-line definitions for all KPIs with grounded/derived/ deferred badges. REQ-202.
  • Closes: "Benefit: you now have a reference for every metric mentioned in the deck."
  • Grounded metrics cited: all (glossary).
  • Deferred metrics: all (badged).

Slide A2 — Operating Model & Cost

  • Opens: "This appendix shows the real cost figures + the zero-cost steady state."
  • Delivers: COST.md figures ($0.001883 / 8 days, ~$0.007/mo, S3-dominated, zero BAU compute) + the zero-cost-steady-state / D-096 teardown claim. References the pre-mortem (PRE_MORTEM.md: v1.10 decay root cause + four forward failure modes + structural mitigations).
  • Closes: "Benefit: you now know the operating cost is negligible — and the structural mitigation that prevents decay."
  • Grounded metrics cited: Cost figures (source: COST.md).
  • Deferred metrics: none.

Fluidity strategy

  1. Every slide's opening line references the previous slide's close. Each slide above has an explicit transition sentence. No disjointed jumps. The Act 3→4 boundary (slide 9→10) was rewritten per G-Q13 binding: "But 'how it works' is not 'proof it works.'"
  2. Act indicator in the Marp footer. Act N/5: <act name> keeps the audience oriented. Configured in the Marp theme.
  3. The arc is visible. Slide 1 (arc preview + stake line) + slide 16 (recap + business-decision ask) bookend the deck. The audience always knows where they are in the 5-act structure.
  4. Per-slide benefit callout is the last line. Every slide closes with "Benefit: ..." — the audience leaves each slide with a takeaway, not a cliffhanger. Benefit callouts rewritten per G-Q9 binding (slides 1, 4, 13, 16 now give specific value, not generic restatements).
  5. The Proof act is the centerpiece. It is 5 slides (the longest act, expanded from 4 per G-Q10 binding: slide 12 split into Zero-Touch Efficiency + Cost & ROI) because the PO's direction is "prove it, don't promise it." The grounded/derived/deferred honesty model is the narrative spine of the Proof act.
  6. Deferred metrics are shown, not hidden. Slide 14 ("What's Deferred — and Why") pairs each deferred metric with its blocking decision, with a preempt (G-Q11 binding) clarifying that deferrals are measurement infrastructure, not whether the platform runs without humans.
  7. The D-122 honesty sentence on slide 7. The deck explicitly states that Nova's "AI" is the confidence-gated policy engine, not an LLM planner — per G-Q4 binding. This prevents the "no fabrication" constraint from being violated by implication.
  8. Derived metrics carry the N=0 caveat. Slides 12 and 13 annotate derived metrics (FTE, ROI) with "computed on N internal runs; production-denominator activates post-pilot" — per G-Q5/G-Q15 binding. The ROI formula is shown inline (G-Q15).

Deck file inventory (after P5)

File Status
docs/presentations/nova-no-humans-platform.md NEW (source of truth, 16 main + 2 appendix slides per G-Q10 split)
docs/presentations/nova-no-humans-platform-marp.md NEW (Marp)
docs/presentations/nova-no-humans-platform.html NEW (rendered)
docs/presentations/nova-no-humans-platform-talking-points.md NEW (talking points)
docs/presentations/how-the-platform-works.md DELETED (retired, D-130)
docs/presentations/how-the-platform-works-marp.md DELETED
docs/presentations/how-the-platform-works.html DELETED
docs/presentations/how-the-platform-works-talking-points.md DELETED
docs/presentations/the-developer-experience.md DELETED (retired, D-130)
docs/presentations/the-developer-experience-marp.md DELETED
docs/presentations/the-developer-experience.html DELETED
docs/presentations/the-developer-experience-talking-points.md DELETED

Wave Dependency Graph

Wave 1                 Wave 2                 Wave 3                 Wave 4              Final
                      ┌──────────────────┐   ┌──────────────────┐   ┌──────────────┐
P1 (event emitters)──┤P2 (collector)    │   │P4 (catalog +     │   │P6 (regression│   P8
                      │  P3 (powerbi     │──▶│  NORTH_STAR     │──▶│  capability) │──▶(ship)
                      │   export)        │   │  integration)    │   │P7 (review +  │
                      └──────────────────┘   │P5 (deck rebuild) │   │  audit + ship)│
                                             └──────────────────┘   └──────────────┘

Critical path:
P1 ──▶ P2 ──▶ P3 ──▶ P4 ──▶ P5(Proof) ──▶ P6 ──▶ P7 ──▶ P8

Parallelization:
  Wave 2: P2 schemas + P3 view schemas can be authored concurrently.
  Wave 3: P4 docs/metrics/*.md + P5 Problem/Vision/How acts can be authored
          concurrently; P5 Proof act waits for P4 METRICS.md.
  Wave 4: P6 CAP-023 test can be drafted while P5 finishes.

Dependency details:

Phase Depends on Blocks
P1 (none — foundation) P2, P3, P4, P5, P6
P2 P1 (event formats) P3 (SQLite store), P4 (catalog sources), P6 (CAP-023)
P3 P2 (SQLite store) P4 (PowerBI view references), P6 (CAP-023 schema)
P4 P2 + P3 (grounded metrics) P5 (Proof act citations), P6 (CAP-024 deck structure)
P5 P4 (METRICS.md for Proof act) P6 (CAP-024 deck structure)
P6 P2 + P3 (CAP-023) + P5 (CAP-024) P7 (regression gate must pass)
P7 P1P6 (all prior phases) P8 (audit must pass)
P8 P7 (milestone complete) (none — terminal)

Execution approach

  • Per-phase ship: each execution phase merges phase/NN-*milestone/v1.17-strategic-metrics-deck and tags a patch on the v1.16.x line (v1.16.1 = P1 ... v1.16.7 = P7, v1.16.8 = P8 final).
  • Verification: 4-layer verify (structural/behavioral/security/quality) per phase; the regression gate (D-091, 22 prior + CAP-023 + CAP-024 = 24 capabilities) runs at P6 and P7.
  • No live AWS: NOVA_LIFECYCLE_MODE=plan default; all metrics that require live AWS ship as placeholder views (D-096). Infracost runs offline (reads plan JSON, A6).
  • Test discipline: each phase that changes runtime code adds/updates tests; bash scripts/run_ci.sh exits 0 at every phase boundary.
  • No fabrication: every metric carries a grounded/derived/deferred status with a source file or decision ID. No fabricated numbers in any deck slide or METRICS.md entry.
  • Decision discipline: D-120..D-132 are locked. This plan does not re-open any locked decision. If a decision needs revisiting, it goes through the GRILL, not the plan.