docs(init): validate specification — v1.17 Strategic Direction, Leadership Metrics & Unified Story

---ci---
project: acdl
phase: 0
milestone: v1.17
status: specify
---/ci---
This commit is contained in:
Jon Chery
2026-08-04 19:08:31 +00:00
parent f5b681f31a
commit 7fc646d773
5 changed files with 405 additions and 12 deletions
+151
View File
@@ -956,3 +956,154 @@ simplification and the first self-service onboarding request path.
scoping (REQ-143), contractId/env validation (REQ-144), `.gitignore`
catch-all (REQ-146), `--kube-version` removal (REQ-147), orphan
cleanup (REQ-148), `set -euo pipefail` parity (REQ-150).
## v1.17 — Strategic Direction, Leadership Metrics & Unified Story
**Milestone type:** Feature (P1P3 feat; P4 docs; P5 docs+test; P6 test;
P7 review+audit+ship). 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).
**Objective:** Three pillars. (A) Encode the PO's strategic direction in
a durable `NORTH_STAR.md` read by CIAgent in every future `/ci-run`.
(B) 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) 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.
### Requirements
**Pillar A — Strategic Direction**
- **REQ-185** — `.ciagent/NORTH_STAR.md` is PO-authored with Vision,
Strategic Objectives (4), Anti-Goals (5), Non-Goals (v1.17 scope),
1218mo Targets (with grounding column), and Success Criteria. The
attestation clarification is reflected: human attestation required at
stage gates (QA for production, SRE for operational readiness);
autonomy in operations, not in accountability. (Phase P0)
- **REQ-186** — CIAgent reads `NORTH_STAR.md` in context-loading for all
future milestones; the file is referenced from PROJECT.md and
ARCHITECTURE.md so the strategic direction survives across milestones.
(Phase P4)
**Pillar B — Leadership Metrics + PowerBI**
- **REQ-187** — Event emitters: a CloudEvents 1.0 envelope is adopted;
a per-run manifest writer emits structured events (run_id, contractId,
env, stages×durations, exit, confidence, HITL block count) to
`metrics/runs/`; existing ephemeral `$WORK/*.json` (pcr, signal,
event, outbox, stack) are persisted as durable artifacts; pytest
`addopts` gains `--junitxml`+`--json-report`; Infracost runs as a
plan post-processor emitting `cost.estimated{delta_usd}` (offline).
(Phase P1)
- **REQ-188** — Decision Ledger: `outbox_writer.py` is extended to emit
to a SQLite append-only table with hash chain; `ai.decision.made`
events are modeled from Nova's real decision points (decision_id=run_id,
chosen_action=band outcome, confidence=score, alternatives=perInput
breakdown, human_override=HITL block) with outcome backfill from
apply.completed; `attestation.recorded` events capture qa/prod/dr
sign-offs (approver, env, concerns, result). Honors D-083 (no S3 Object
Lock/JWS). (Phase P1)
- **REQ-189** — Metrics collector: `core/metrics/collector.py` +
`schemas/metrics_*.schema.json` read all grounded signals
(REGRESSION_REPORT.json, per-run manifests, junit XML, pcr.json,
signal.json, COST.md, decision ledger) → normalized SQLite cold store
at `metrics/nova_metrics.db`; idempotent re-runs. (Phase P2)
- **REQ-190** — PowerBI export: `core/metrics/powerbi_export.py` emits
CSV/JSON views to `metrics/powerbi/` (fact_run, fact_capability,
fact_policy_check, fact_confidence, fact_test, fact_decision,
fact_cost_estimate, dim_capability, dim_milestone + 8 empty
placeholder views for deferred metrics with documented schemas) +
`docs/METRICS_VIEWS.md` schema doc. (Phase P3)
- **REQ-191** — Zero-touch efficiency metrics: Autonomous Resolution
Rate (runs without operational HITL block ÷ total; attestation gates
excluded), Human Escalation Frequency (operational HITL blocks only),
AI Decision Accuracy (decisions not followed by apply.failed/incident
within 5min), MTTD/MTTR (platform-run: apply.failed → successful
retry), Attestation Coverage (prod/dr promotions attested ÷ total
prod/dr promotions). (Phase P4)
- **REQ-192** — Velocity metrics: Provisioning Lead Time
(apply.completed.time intent.received.time), Deployment Frequency
(count(apply.completed) per day). Self-Healing Velocity deferred (no
auto-remediator). (Phase P4)
- **REQ-193** — Financial & cost-ROI metrics: FTE Hours Saved (derived:
run count × manual baseline), Cost Savings via Infracost estimates
(grounded), Cost Efficiency Ratio (derived), Platform ROI (derived
formula). Live CUR reconciliation deferred (D-096). (Phase P4)
- **REQ-194** — Reliability, security & compliance metrics: Zero-Trust
Policy Compliance Rate (from pcr.json), Attestation Coverage (from
hitl_gates.py). Uptime, Patch Remediation, SLA/downtime deferred
(D-096). (Phase P4)
- **REQ-195** — Metrics catalog doc: `docs/METRICS.md` catalogs every
executive KPI with `grounded`/`derived`/`deferred` status, source
file or decision ID, and a per-KPI definition-of-success doc in
`docs/metrics/<kpi>.md`. (Phase P4)
**Pillar C — Unified Narrative Deck**
- **REQ-196** — The two existing decks (`how-the-platform-works` +
`the-developer-experience`) are merged into one unified narrative deck
"Nova — The No-Humans Infrastructure Platform" with a single arc:
Problem → Vision/Direction (NORTH_STAR) → How it works → Proof
(metrics) → Roadmap/Ask. The x3 structure ("tell them what you're
going to tell them → tell them → tell them what you told them") applies
at deck level (opening = arc; body = tell them; closing = recap + ask).
Both old decks are retired (all derived artifacts deleted). (Phase P5)
- **REQ-197** — Each slide has the x3 structure (opens with what it
covers, delivers, closes with an explicit "benefit of this stage"
callout) + fluid transitions between slides (no disjointed jumps).
The 4-step deck process (source `.md` → Marp → HTML → talking-points)
is re-run for the unified deck. (Phase P5)
**Cross-cutting**
- **REQ-198** — Regression capability: CAP-023 (metrics collector runs,
emits expected schema) + CAP-024 (deck structure: slide count, x3
present, per-slide benefit present) added to `core/regression_verify.py`.
(Phase P6)
### v1.17 Traceability
| Requirement | Phase | Status |
|-------------|-------|--------|
| REQ-185 | P0 | in_progress |
| REQ-186 | P4 | pending |
| REQ-187 | P1 | pending |
| REQ-188 | P1 | pending |
| REQ-189 | P2 | pending |
| REQ-190 | P3 | pending |
| REQ-191 | P4 | pending |
| REQ-192 | P4 | pending |
| REQ-193 | P4 | pending |
| REQ-194 | P4 | pending |
| REQ-195 | P4 | pending |
| REQ-196 | P5 | pending |
| REQ-197 | P5 | pending |
| REQ-198 | P6 | pending |
### Out of Scope (v1.17)
- Live AWS re-provisioning (D-096) — metrics requiring live
infrastructure ship as placeholder views.
- Onboarding auto-grant (D-113/D-114/D-119) — only the request-path
metric is grounded.
- ML anomaly-forecasting / predictive remediation — no emitter today;
Predictive-vs-Reactive metric ships as a placeholder.
- Drift detection scheduled job (D-096 + no scheduler) — drift metrics
ship as placeholders.
- Live cost CUR reconciliation (D-096) — Infracost pre-apply estimates
are grounded; actuals are not.
- S3 Object Lock / JWS tamper-evident ledger (D-083) — Decision Ledger
uses a local SQLite hash-chain this milestone.
- Multi-cloud support (Azure/GCP/K8s) — Nova is AWS-only this milestone.
- A third deck — the two existing decks merge into one; no new
standalone metrics deck.
- A Nova web UI — dashboards are PowerBI, not a Nova-built frontend.