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:
@@ -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 (P1–P3 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` (P1–P7) → `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),
|
||||
12–18mo 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.
|
||||
|
||||
Reference in New Issue
Block a user