Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2ea9fb4e51 | |||
| 52b16bbef1 | |||
| 68908d7f6a | |||
| 85cc962fda | |||
| ba28017f5b | |||
| 17903973aa | |||
| 6dfde4b785 | |||
| 13ee34b5a7 | |||
| ac791c7d23 |
@@ -1,19 +1,28 @@
|
||||
{
|
||||
"phase": 3,
|
||||
"stage": "complete",
|
||||
"milestone": "v1.30",
|
||||
"phase_role": "execution",
|
||||
"phase": 0,
|
||||
"stage": "plan",
|
||||
"milestone": "v1.31",
|
||||
"phase_role": "pre_execution",
|
||||
"attempts": 0,
|
||||
"updated_at": "2026-08-20T15:30:00Z",
|
||||
"updated_at": "2026-08-20T16:18:00Z",
|
||||
"project": "acdl",
|
||||
"projects": ["acdl", "nova-blockchain-exchange"],
|
||||
"active_milestone": "v1.30",
|
||||
"milestone_branch": "milestone/v1.30-leadership-deck",
|
||||
"phase_branch": "phase/03-deck-polish",
|
||||
"tag_line": "v1.29.x",
|
||||
"phase_name": "deck-polish",
|
||||
"milestone_type": "feature",
|
||||
"reqs_covered": ["REQ-372.1","REQ-372.2","REQ-372.3","REQ-372.4","REQ-372.5","REQ-372.6","REQ-372.7","REQ-372.8","REQ-372.9","REQ-372.10","REQ-372.11","REQ-372.12"],
|
||||
"active_milestone": "v1.31",
|
||||
"milestone_branch": "milestone/v1.31-leadership-deck-polish",
|
||||
"phase_branch": "acdl/phase/00-pre-execution",
|
||||
"tag_line": "v1.30.x",
|
||||
"phase_name": "pre-execution",
|
||||
"milestone_type": "nfr",
|
||||
"reqs_covered": [],
|
||||
"reqs_partial": [],
|
||||
"notes": "v1.30 P3 (deck-polish) COMPLETE. D-244 (cover), D-245 (slide 7 what-works-now), D-246 (7 mermaid diagrams). F1-F5 polish fixes. 7 S&P-themed diagrams rendered via local mmdc (vendored Chromium libs). All checks pass. Next: SHIP (v1.29.4)."
|
||||
"previous_milestone": {
|
||||
"milestone": "v1.30",
|
||||
"tag": "v1.29.5",
|
||||
"complete": true,
|
||||
"merged_to_main": "13ee34b",
|
||||
"branches_deleted": true,
|
||||
"releases_created": true,
|
||||
"release_ids": [811,812,813,814,818]
|
||||
},
|
||||
"notes": "v1.31 P0 complete (specify+clarify+research+plan). D-247 locked: refinement-only, theme-preserving invariants. Plan = single vertical slice P1: rewrite visible prose + improve layout in nova-leadership-deck-marp.md, re-render PPTX, smoke test must pass."
|
||||
}
|
||||
@@ -689,8 +689,8 @@ New requirements REQ-354..REQ-369 + REQ-371 + REQ-363b — full text in
|
||||
|
||||
### v1.30 ID allocations (no collisions with shipped history)
|
||||
|
||||
- **Decisions:** `D-241..D-243` (3 decisions, authored in CLARIFY).
|
||||
Max existing D = D-240 (v1.29). Next free: D-244.
|
||||
- **Decisions:** `D-241..D-246` (6 decisions, authored in CLARIFY
|
||||
across P0 + P3). Max existing D = D-240 (v1.29). Next free: D-247.
|
||||
- **D-241** — Leadership deck is a single-shot, discrete, hand-
|
||||
authored artifact (NOT a compression of the existing citizen-
|
||||
developer pitch `nova-autonomous-cloud-delivery-marp.md`).
|
||||
@@ -707,6 +707,18 @@ New requirements REQ-354..REQ-369 + REQ-371 + REQ-363b — full text in
|
||||
- **D-243** — Date anchor discipline: August 2026 is a month-only
|
||||
presentation anchor (no specific day); November 2026 is the
|
||||
runway anchor (~90 days).
|
||||
- **D-244** — Slide 1 becomes a black-background cover (overrides
|
||||
grill G-1). Visual treatment only; on-slide text unchanged.
|
||||
- **D-245** — Slide 7 "What works now" content addition. New
|
||||
on-slide block before the ask. Records: 13 L1 + 2 L2 live
|
||||
(confidence 0.800), next-steps arc (greenfield pilots → promote
|
||||
to prod → SPGE constitutional library → infra layer). "sandbox"
|
||||
is colloquial for the dev AWS account `581513795199`; "SPGE
|
||||
constitutional library" is external/unverified-in-repo.
|
||||
- **D-246** — 7 S&P-themed mermaid diagrams, one per slide,
|
||||
rendered via local mmdc with vendored Chromium libs (24 Debian
|
||||
bookworm .deb packages fetched, `.so` files extracted). `.mmd`
|
||||
sources + PNGs committed for reproducibility.
|
||||
- **Capabilities:** `CAP-042` (1 capability, appended at ship).
|
||||
Max existing CAP = CAP-041 (v1.29). Next free: CAP-043.
|
||||
|
||||
@@ -1032,4 +1044,98 @@ Infrastructure & Operations leadership in August 2026." Asks for
|
||||
architecture endorsement and runway to next milestone by November
|
||||
2026. Velocity framing with **60% goal as internal directional
|
||||
target, not sourced claim**. Closes with "Use the runway to land the
|
||||
architecture endorsement."
|
||||
architecture endorsement."
|
||||
|
||||
## v1.31 — Leadership Deck Polish II (active milestone)
|
||||
|
||||
> **NFR/refinement milestone — polish pass on the v1.30 leadership
|
||||
> deck.** A single refinement phase that enriches the visible on-slide
|
||||
> prose, improves the slide layout, and re-renders the PPTX — without
|
||||
> altering the S&P visual theme, the 7-slide structure, the speaker-note
|
||||
> word-count bands, the vision `[1]` grounding, or the diagram PNGs.
|
||||
> The v1.30 deck shipped with sparse visible wording (slides 2–6
|
||||
> averaged 43–67 visible words, leaning on diagrams); v1.31 makes each
|
||||
> slide stand on its own as a readable artifact while a presenter
|
||||
> speaks, so the deck reads cleanly both live and as a leave-behind.
|
||||
>
|
||||
> This is a **refinement-only** milestone (no new features, no new
|
||||
> slides, no theme change, no schema change). Tags run on the
|
||||
> **v1.30.x** line (previous minor): `v1.30.0` (P0) → `v1.30.1` (P1
|
||||
> execution = milestone release). Milestone branch:
|
||||
> `milestone/v1.31-leadership-deck-polish`. Authoritative resume
|
||||
> state: `.ciagent/CHECKPOINT.json`.
|
||||
>
|
||||
> **Source spec:** REQ-373 v1.0 (locked 2026-08-20). Full requirement
|
||||
> text in `.ciagent/REQUIREMENTS.md` §v1.31.
|
||||
|
||||
### v1.31 ID allocations (no collisions with shipped history)
|
||||
|
||||
- **Decisions:** `D-247` (1 decision, authored in CLARIFY).
|
||||
- **D-247** — Polish is **refinement-only and theme-preserving**.
|
||||
The S&P theme tokens (`#D6002A`, `#1B1B1B`, `#FFFFFF`, `#F0F0F0`),
|
||||
the 7-slide count, the per-slide speaker-note word-count bands
|
||||
(1/2/4/6: 150–300; 3/5: 250–400; 7: 200–300), the vision `[1]`
|
||||
citations on slides 3/5/7, the 7 mermaid diagram PNGs, and the
|
||||
footer string are all **invariants** of this milestone — they must
|
||||
not change. Polish is confined to: (a) denser, better-structured
|
||||
visible body prose on each slide, (b) layout improvement within
|
||||
the existing `render_pptx.py` block vocabulary (lead/quote/plain/
|
||||
bullet/ordered/image/table/benefit), and (c) re-rendering the
|
||||
PPTX. No new slides, no new diagrams, no theme tokens, no new
|
||||
speaker-note bands. The citizen-developer deck
|
||||
(`nova-autonomous-cloud-delivery-marp.md`) remains untouched
|
||||
(D-241 still holds).
|
||||
- **Capabilities:** none new (CAP-042 is refined in place; no new CAP
|
||||
allocated). Next free CAP remains CAP-043.
|
||||
|
||||
### v1.31 Scope (CLARIFY-grounded, full autonomy)
|
||||
|
||||
Refinement of `docs/presentations/nova-leadership-deck-marp.md`:
|
||||
|
||||
- Enrich the **visible on-slide prose** on every slide so the deck
|
||||
reads as a standalone artifact (current slides 2–6 average 43–67
|
||||
visible words; target a denser, well-structured body that does not
|
||||
crowd the diagram or overflow the slide).
|
||||
- Improve **slide layout** using the existing renderer's block
|
||||
vocabulary — re-balance the order of lead/quote/plain/benefit
|
||||
blocks so each slide has a clear title, a framing line, the body,
|
||||
the diagram, and a closing italic benefit line where present.
|
||||
- Preserve all invariants (D-247): theme tokens, slide count = 7,
|
||||
speaker-note bands, `[1]` citations on 3/5/7, the 7 diagram PNGs,
|
||||
the footer string.
|
||||
- Re-render `docs/presentations/nova-leadership-deck.pptx` via
|
||||
`scripts/render_pptx.py`; the smoke test
|
||||
`scripts/check_leadership_deck.sh` must still exit 0.
|
||||
|
||||
### v1.31 Hard constraints (invariants — D-247)
|
||||
|
||||
- Slide count stays exactly 7.
|
||||
- S&P theme tokens are the only colors.
|
||||
- Speaker-note word counts stay in band per REQ-372.4 bands.
|
||||
- `[1]` citations remain present in slides 3, 5, 7 speaker notes.
|
||||
- The 7 diagram PNGs (`assets/png/leadership-slide-N.png`) are reused
|
||||
unchanged; `.mmd` sources are not modified.
|
||||
- Footer string `Nova Platform - Infrastructure & Operations` unchanged.
|
||||
- `scripts/render_pptx.py` is not modified (no new renderer features
|
||||
needed — polish uses the existing block vocabulary).
|
||||
- The citizen-developer deck is not touched.
|
||||
|
||||
### v1.31 Requirements
|
||||
|
||||
Full text in `.ciagent/REQUIREMENTS.md` §v1.31. Summary:
|
||||
|
||||
- **REQ-373.1** — Visible prose density: every slide's on-slide body
|
||||
(excluding speaker notes + images) is enriched to a richer, well-
|
||||
structured wording that reads as a standalone artifact.
|
||||
- **REQ-373.2** — Layout improvement: each slide uses the renderer's
|
||||
block vocabulary to balance title → frame → body → diagram → benefit.
|
||||
- **REQ-373.3** — Invariants preserved (D-247): theme, 7 slides,
|
||||
note bands, `[1]` citations, diagram PNGs, footer.
|
||||
- **REQ-373.4** — PPTX re-rendered; smoke test exits 0.
|
||||
|
||||
### v1.31 phase status (live — tag `v1.30.1` = the milestone release)
|
||||
|
||||
| Phase | Status | Tag |
|
||||
|-------|--------|-----|
|
||||
| P0 pre-execution | in flight | v1.30.0 |
|
||||
| P1 polish | pending | v1.30.1 (milestone release) |
|
||||
@@ -1025,15 +1025,96 @@ principles, anti-goals, and integration-boundary claims to
|
||||
|
||||
| REQ | Phase | Status |
|
||||
|-----|-------|--------|
|
||||
| REQ-372.1 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.2 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.3 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.4 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.5 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.6 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.7 | P1 | complete (v1.29.2, visual review pass) |
|
||||
| REQ-372.8 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.9 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.10 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.11 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.12 | P1 | complete (v1.29.2) |
|
||||
| REQ-372.1 | P1/P3 | complete (v1.29.5, polished) |
|
||||
| REQ-372.2 | P1/P3 | complete (v1.29.5, polished) |
|
||||
| REQ-372.3 | P1/P3 | complete (v1.29.5, polished) |
|
||||
| REQ-372.4 | P1/P3 | complete (v1.29.5, polished) |
|
||||
| REQ-372.5 | P1/P3 | complete (v1.29.5, polished) |
|
||||
| REQ-372.6 | P1/P3 | complete (v1.29.5, polished) |
|
||||
| REQ-372.7 | P1/P3 | complete (v1.29.5, polished + diagrams) |
|
||||
| REQ-372.8 | P1/P3 | complete (v1.29.5, polished) |
|
||||
| REQ-372.9 | P1/P3 | complete (v1.29.5, polished) |
|
||||
| REQ-372.10 | P1/P3 | complete (v1.29.5, polished) |
|
||||
| REQ-372.11 | P1/P3 | complete (v1.29.5, polished) |
|
||||
| REQ-372.12 | P1/P3 | complete (v1.29.5, polished) |
|
||||
|
||||
## v1.31 — Leadership Deck Polish II (active milestone)
|
||||
|
||||
> **Refinement-only NFR milestone — polish pass on the v1.30 leadership
|
||||
> deck.** Enriches visible on-slide prose + improves layout, then
|
||||
> re-renders the PPTX. No new features, no new slides, no theme change,
|
||||
> no diagram change (D-247). Tags run on the **v1.30.x** line (previous
|
||||
> minor): `v1.30.0` (P0) → `v1.30.1` (P1 = milestone release). The
|
||||
> v1.30 requirements (REQ-372.1..12) remain complete and are NOT
|
||||
> re-opened; v1.31 adds REQ-373.1..4 as a refinement layer over the
|
||||
> same artifact.
|
||||
|
||||
### Decisions (locked in CLARIFY, full autonomy — load-bearing for v1.31)
|
||||
|
||||
- **D-247 (refinement-only, theme-preserving):** The polish is
|
||||
confined to visible prose density + layout. The following are
|
||||
**invariants** and must not change: the S&P theme tokens
|
||||
(`#D6002A`, `#1B1B1B`, `#FFFFFF`, `#F0F0F0`); the 7-slide count; the
|
||||
per-slide speaker-note word-count bands (1/2/4/6: 150–300; 3/5:
|
||||
250–400; 7: 200–300, per REQ-372.4); the `[1]` citations on slides
|
||||
3/5/7 (per REQ-372.12); the 7 mermaid diagram PNGs and their `.mmd`
|
||||
sources; the footer string `Nova Platform - Infrastructure &
|
||||
Operations`. No new slides, no new diagrams, no renderer changes.
|
||||
The citizen-developer deck is untouched (D-241 still holds).
|
||||
|
||||
### Requirements
|
||||
|
||||
#### REQ-373.1 — Visible prose density enriched per slide
|
||||
|
||||
**Priority:** High · **Journey:** J1
|
||||
|
||||
**Given** the v1.30 deck shipped with sparse visible wording (slides
|
||||
2–6 averaged 43–67 visible words, leaning on diagrams), **when** the
|
||||
polished source markdown is inspected, **then** every slide's on-slide
|
||||
body (excluding speaker-note HTML comments and image references)
|
||||
carries richer, well-structured wording that lets the slide read as a
|
||||
standalone artifact — a title, a framing line, a body, and (where
|
||||
present) a closing italic benefit — without crowding the diagram or
|
||||
overflowing the 16:9 slide. Verified by visual review against the
|
||||
Slide Content Map and by the smoke test still passing.
|
||||
|
||||
#### REQ-373.2 — Layout improved within the renderer block vocabulary
|
||||
|
||||
**Priority:** High · **Journey:** J1
|
||||
|
||||
**Given** the existing `scripts/render_pptx.py` block vocabulary
|
||||
(lead/quote/plain/bullet/ordered/image/table/benefit) is not modified,
|
||||
**when** the polished PPTX is rendered, **then** each slide balances
|
||||
its blocks so the reading order is clear (title → frame → body →
|
||||
diagram → benefit) and the diagram remains the visual anchor. No new
|
||||
renderer features are added.
|
||||
|
||||
#### REQ-373.3 — v1.30 invariants preserved (D-247)
|
||||
|
||||
**Priority:** High · **Journey:** J1
|
||||
|
||||
**Given** the D-247 invariants, **when** the polished source + PPTX
|
||||
are validated, **then**: slide count = 7; the only hex colors are the
|
||||
four S&P tokens; per-slide speaker-note word counts remain in band per
|
||||
REQ-372.4; `[1]` citations remain in slides 3, 5, 7 speaker notes; the
|
||||
7 diagram PNGs are reused unchanged; the footer string is unchanged.
|
||||
The smoke test enforces (a)–(f) and must exit 0.
|
||||
|
||||
#### REQ-373.4 — PPTX re-rendered; smoke test exits 0
|
||||
|
||||
**Priority:** High · **Journey:** J1
|
||||
|
||||
**Given** the polished source markdown, **when**
|
||||
`scripts/render_pptx.py docs/presentations/nova-leadership-deck-marp.md
|
||||
--output docs/presentations/nova-leadership-deck.pptx` is invoked,
|
||||
**then** the PPTX is written with 7 slides and python-pptx raises no
|
||||
exceptions, **and** `bash scripts/check_leadership_deck.sh` exits 0.
|
||||
|
||||
### v1.31 Traceability (live — see CHECKPOINT.json for authoritative state)
|
||||
|
||||
| REQ | Phase | Status |
|
||||
|-----|-------|--------|
|
||||
| REQ-373.1 | P1 | pending |
|
||||
| REQ-373.2 | P1 | pending |
|
||||
| REQ-373.3 | P1 | pending |
|
||||
| REQ-373.4 | P1 | pending |
|
||||
@@ -146,22 +146,40 @@
|
||||
10 NFR constraints. Tags: `v1.28.0` (P0) → `v1.28.1..v1.28.5` (P1..P5)
|
||||
→ `v1.28.6` (P6 final = milestone release).
|
||||
|
||||
- **v1.30 (complete, tag `v1.29.3` = the v1.30 release, merged to main
|
||||
2026-08-20):** Single-shot Leadership Deck. Feature milestone. A
|
||||
hand-authored 7-slide PPTX deck for Infrastructure & Operations
|
||||
leadership (CTO + VP Technology + Product Management), presented
|
||||
August 2026, securing architecture endorsement and a November 2026
|
||||
runway. The deck is a **discrete artifact** (D-241: NOT a
|
||||
compression of the existing citizen-developer pitch
|
||||
- **v1.30 (complete, tag `v1.29.5` = the v1.30 release, merged to main
|
||||
2026-08-20):** Single-shot Leadership Deck (polished). Feature
|
||||
milestone. A hand-authored 7-slide PPTX deck for Infrastructure &
|
||||
Operations leadership (CTO + VP Technology + Product Management),
|
||||
presented August 2026, securing architecture endorsement and a
|
||||
November 2026 runway. The deck is a **discrete artifact** (D-241:
|
||||
NOT a compression of the existing citizen-developer pitch
|
||||
`nova-autonomous-cloud-delivery-marp.md`, which remains unmodified).
|
||||
Authored as Marp markdown, rendered via the existing
|
||||
`scripts/render_pptx.py` (narrowly extended per D-242: path arg +
|
||||
`--output` + per-slide footer textbox + leading-comment skip).
|
||||
Smoke test `scripts/check_leadership_deck.sh` (on-demand, NOT a CI
|
||||
gate). Vision `[1]` grounding in slides 3/5/7 speaker notes
|
||||
(resolve to `docs/vision.md`). 12 requirements (REQ-372.1..12), 1
|
||||
capability (CAP-042), 3 decisions (D-241..D-243). Tags: `v1.29.1`
|
||||
(P0) → `v1.29.2` (P1 execution) → `v1.29.3` (P2 final = milestone
|
||||
`--output` + per-slide footer textbox + leading-comment skip +
|
||||
auto-fit + vertical balance + bullet-marker fix). **Polished in P3**
|
||||
(D-244: slide 1 → black cover; D-245: slide 7 "What works now" block
|
||||
— L1/L2 stacks live at confidence 0.800, next steps: greenfield
|
||||
pilots → promote to prod → SPGE constitutional library → infra
|
||||
layer; D-246: 7 S&P-themed mermaid diagrams, one per slide, rendered
|
||||
via local mmdc with vendored Chromium libs). Smoke test
|
||||
`scripts/check_leadership_deck.sh` (on-demand, NOT a CI gate). Vision
|
||||
`[1]` grounding in slides 3/5/7 speaker notes (resolve to
|
||||
`docs/vision.md`). 12 requirements (REQ-372.1..12), 1 capability
|
||||
(CAP-042), 6 decisions (D-241..D-246). Tags: `v1.29.1` (P0) →
|
||||
`v1.29.2` (P1 first draft) → `v1.29.3` (P2 first-draft final) →
|
||||
`v1.29.4` (P3 polish) → `v1.29.5` (P4 polished final = milestone
|
||||
release).
|
||||
|
||||
- **v1.31 (active):** Leadership Deck Polish II — refinement-only NFR
|
||||
milestone. Enriches the v1.30 deck's visible on-slide prose and
|
||||
improves slide layout, then re-renders the PPTX. Preserves all
|
||||
v1.30 invariants (D-247): S&P theme tokens, 7-slide count, speaker-
|
||||
note word-count bands, `[1]` citations on slides 3/5/7, the 7
|
||||
mermaid diagram PNGs, and the footer string. No new slides, no new
|
||||
diagrams, no renderer changes; the citizen-developer deck is
|
||||
untouched. 4 requirements (REQ-373.1..4), 1 decision (D-247). Tags
|
||||
run on the v1.30.x line: `v1.30.0` (P0) → `v1.30.1` (P1 = milestone
|
||||
release).
|
||||
|
||||
> **Full v1.0–v1.24 phase detail, wave ordering, success criteria, and
|
||||
|
||||
@@ -357,7 +357,7 @@
|
||||
| CAP-039 | Platform ops reposplit | v1.29 / `v1.28.6` | `nova-platform-ops` (out-of-band), `docs/operator-guide-platform-ops.md`, `docs/archive/nova-idp-cfn-v1.28.md` | REQ-369, REQ-OPS-GUIDE, D-232, D-235 | covered-reference | engineering (`acdl/acdl`, GitHub) ends at the artifact; operations (`nova-platform-ops`, Gitea-private, OPER-PRIV) begins at the live platform; tag-pin handoff; CFN archived; covered-reference REQs tracked via cutover gates |
|
||||
| CAP-040 | KJ substrate lockstep | v1.29 / `v1.28.6` | `nova-platform-ops` (out-of-band), `platform/abac/kj-version.txt`, `.github/workflows/publish.yml` | REQ-371, REQ-363, REQ-363b, D-238, D-239 | covered-reference | one ECR image digest shared by Lambda `image_uri` + Fargate task `image`; `lifecycle.precondition` on both resources at `terraform plan`; KJ-STATIC (`CGO_ENABLED=0`, `file(1)` asserts `statically linked`); no second pipeline, no second SHA pin |
|
||||
| CAP-041 | JWKS edge-only | v1.29 / `v1.28.6` | `nova-platform-ops` (out-of-band), `docs/operator-guide-platform-ops.md` | REQ-364, REQ-365, REQ-366, INV-18, D-233 | covered-reference | JWKS is the only public read surface; CloudFront + OAC (`AuthType: AWS_IAM`, NOT `NONE`, `OriginAccessControlOriginType: lambda`, `SigningBehavior: always`); direct Function URL → 403, via-CloudFront → 200; WAF rate-limit 3000/5min + AWSManagedRulesCommonRuleSet; ACM DNS-validated in us-east-1; Route53 A-alias |
|
||||
| CAP-042 | Leadership presentation deck (single-shot) | v1.30 / `v1.29.3` | `docs/presentations/nova-leadership-deck-marp.md`, `docs/presentations/nova-leadership-deck.pptx`, `scripts/check_leadership_deck.sh` | REQ-372.1..REQ-372.12, D-241, D-242, D-243 | local | Single-shot 7-slide PPTX deck for Infrastructure & Operations leadership (CTO + VP Technology + Product Management); presented August 2026; November 2026 runway anchor; discrete hand-authored artifact (NOT a compression of the citizen-developer pitch per D-241); rendered via existing `scripts/render_pptx.py` (narrowly extended per D-242); smoke test on-demand (NOT a CI gate); vision `[1]` grounding in slides 3/5/7 |
|
||||
| CAP-042 | Leadership presentation deck (single-shot, polished) | v1.30 / `v1.29.5` | `docs/presentations/nova-leadership-deck-marp.md`, `docs/presentations/nova-leadership-deck.pptx`, `scripts/check_leadership_deck.sh`, `scripts/render_leadership_diagrams.sh`, `docs/presentations/assets/mmd/leadership-slide-{1..7}.mmd`, `docs/presentations/assets/png/leadership-slide-{1..7}.png` | REQ-372.1..REQ-372.12, D-241..D-246 | local | Single-shot 7-slide PPTX deck for Infrastructure & Operations leadership (CTO + VP Technology + Product Management); presented August 2026; November 2026 runway anchor; discrete hand-authored artifact (NOT a compression of the citizen-developer pitch per D-241); rendered via existing `scripts/render_pptx.py` (narrowly extended per D-242); polished in P3 (D-244 cover slide, D-245 slide 7 "What works now" block, D-246 7 S&P-themed mermaid diagrams); smoke test on-demand (NOT a CI gate); vision `[1]` grounding in slides 3/5/7 |
|
||||
|
||||
## Archive pointers
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ state for offline agent loading.
|
||||
|
||||
## Why archive
|
||||
|
||||
The active milestone is v1.27 (PO State Catalog & Ciagent Compression).
|
||||
The `.ciagent/` root was compressed twice:
|
||||
The active milestone is v1.30 (Single-shot Leadership Deck, complete).
|
||||
The `.ciagent/` root was compressed three times:
|
||||
|
||||
1. **v1.26 P2 compression** (~11,164 lines → ~5,232): the
|
||||
completed-milestone narratives (v1.0–v1.24) were relocated. Per the
|
||||
@@ -22,6 +22,14 @@ The `.ciagent/` root was compressed twice:
|
||||
+ COST (predates v1.26 pilot) were relocated. The 4 pre-execution
|
||||
files (CLARIFY/GRILL/IDEATE/RESEARCH) were rewritten by v1.27 P0
|
||||
and stay active through v1.27.
|
||||
3. **v1.30 post-milestone compression** (17 → 8 files): the v1.30
|
||||
phase-specific pre-execution files (CLARIFY/RESEARCH/GRILL/PLAN/
|
||||
PERSONAS) were snapshotted to the archive and removed from the
|
||||
active root — they are regenerated fresh each milestone. The stale
|
||||
IDEATE (v1.27), IAM_POLICY (v1.28), and REGRESSION_REPORT (v1.26)
|
||||
were also archived. The persistent files (PROJECT, REQUIREMENTS,
|
||||
ROADMAP, STATE, ARCHITECTURE, NORTH_STAR, config, CHECKPOINT)
|
||||
remain in the active root.
|
||||
|
||||
## Contents
|
||||
|
||||
|
||||
@@ -2,21 +2,28 @@
|
||||
"projects": [
|
||||
{
|
||||
"slug": "acdl",
|
||||
"name": "Nova — The New Dawn of DevSecOps",
|
||||
"name": "Nova \u2014 The New Dawn of DevSecOps",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"slug": "nova-blockchain-exchange",
|
||||
"name": "Nova Pilot Consumer — Blockchain Stock Exchange",
|
||||
"name": "Nova Pilot Consumer \u2014 Blockchain Stock Exchange",
|
||||
"default": false
|
||||
}
|
||||
],
|
||||
"active_project": "acdl",
|
||||
"active_projects": ["acdl", "nova-blockchain-exchange"],
|
||||
"active_milestone": "v1.30",
|
||||
"active_projects": [
|
||||
"acdl",
|
||||
"nova-blockchain-exchange"
|
||||
],
|
||||
"active_milestone": "v1.31",
|
||||
"autonomy": {
|
||||
"level": "full",
|
||||
"escalation_hooks": ["deploy", "delete_data", "merge_to_main"],
|
||||
"escalation_hooks": [
|
||||
"deploy",
|
||||
"delete_data",
|
||||
"merge_to_main"
|
||||
],
|
||||
"clarify_budget": 10,
|
||||
"decision_confidence_threshold": 0.6,
|
||||
"max_revision_iterations": 3,
|
||||
@@ -42,35 +49,72 @@
|
||||
"escalate_high_severity": true,
|
||||
"bash_allowlist": {
|
||||
"allowed_commands": [
|
||||
"git", "ls", "cat", "head", "tail", "wc",
|
||||
"echo", "mkdir", "cp", "mv", "rm", "touch",
|
||||
"pwd", "which", "env", "printenv",
|
||||
"python3", "pytest", "pip",
|
||||
"terraform", "checkov",
|
||||
"curl", "wget",
|
||||
"docker", "docker-compose"
|
||||
"git",
|
||||
"ls",
|
||||
"cat",
|
||||
"head",
|
||||
"tail",
|
||||
"wc",
|
||||
"echo",
|
||||
"mkdir",
|
||||
"cp",
|
||||
"mv",
|
||||
"rm",
|
||||
"touch",
|
||||
"pwd",
|
||||
"which",
|
||||
"env",
|
||||
"printenv",
|
||||
"python3",
|
||||
"pytest",
|
||||
"pip",
|
||||
"terraform",
|
||||
"checkov",
|
||||
"curl",
|
||||
"wget",
|
||||
"docker",
|
||||
"docker-compose"
|
||||
],
|
||||
"max_output_bytes": 1048576,
|
||||
"timeout_ms": 30000,
|
||||
"blocked_env_vars": [
|
||||
"HOME", "PATH", "USER", "SHELL",
|
||||
"AWS_*", "*_TOKEN", "*_KEY", "*_SECRET",
|
||||
"*_PASSWORD", "*_CREDENTIAL",
|
||||
"GITHUB_TOKEN", "GITHUB_API_KEY",
|
||||
"OPENAI_API_KEY", "ANTHROPIC_API_KEY",
|
||||
"HOME",
|
||||
"PATH",
|
||||
"USER",
|
||||
"SHELL",
|
||||
"AWS_*",
|
||||
"*_TOKEN",
|
||||
"*_KEY",
|
||||
"*_SECRET",
|
||||
"*_PASSWORD",
|
||||
"*_CREDENTIAL",
|
||||
"GITHUB_TOKEN",
|
||||
"GITHUB_API_KEY",
|
||||
"OPENAI_API_KEY",
|
||||
"ANTHROPIC_API_KEY",
|
||||
"OLLAMA_CLOUD_API_KEY"
|
||||
]
|
||||
}
|
||||
},
|
||||
"git": {
|
||||
"branching_strategy": "flat",
|
||||
"_branching_strategy_note": "Nova uses flat workflow (committed directly to main per established convention since v1.0; renamed ACDL→Nova in v1.15). The 'phase' strategy is advisory; CIAgent uses milestone/phase branches for v1.14 but the project convention is flat.",
|
||||
"_branching_strategy_note": "Nova uses flat workflow (committed directly to main per established convention since v1.0; renamed ACDL\u2192Nova in v1.15). The 'phase' strategy is advisory; CIAgent uses milestone/phase branches for v1.14 but the project convention is flat.",
|
||||
"auto_commit": true,
|
||||
"auto_push": true
|
||||
},
|
||||
"secrets": {
|
||||
"sources": [".env", ".env.secrets", ".env.*"],
|
||||
"disallow": ["shell_env", "netrc", "keychain", "rc_files", "global_config"],
|
||||
"sources": [
|
||||
".env",
|
||||
".env.secrets",
|
||||
".env.*"
|
||||
],
|
||||
"disallow": [
|
||||
"shell_env",
|
||||
"netrc",
|
||||
"keychain",
|
||||
"rc_files",
|
||||
"global_config"
|
||||
],
|
||||
"scopes": {
|
||||
"forge": "NOVA_FORGE_TOKEN",
|
||||
"gitea": "NOVA_FORGE_TOKEN",
|
||||
@@ -112,10 +156,18 @@
|
||||
"backend": {
|
||||
"provider": "auto",
|
||||
"agent_backends": {
|
||||
"opencode": { "enabled": true },
|
||||
"codex": { "enabled": true },
|
||||
"claude-code": { "enabled": true },
|
||||
"hermes": { "enabled": true }
|
||||
"opencode": {
|
||||
"enabled": true
|
||||
},
|
||||
"codex": {
|
||||
"enabled": true
|
||||
},
|
||||
"claude-code": {
|
||||
"enabled": true
|
||||
},
|
||||
"hermes": {
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
"llm_backends": {
|
||||
"openai": {
|
||||
@@ -148,7 +200,13 @@
|
||||
},
|
||||
"ideation": {
|
||||
"enabled": true,
|
||||
"categories": ["security", "quality", "architecture", "coverage", "improvement"],
|
||||
"categories": [
|
||||
"security",
|
||||
"quality",
|
||||
"architecture",
|
||||
"coverage",
|
||||
"improvement"
|
||||
],
|
||||
"confidence_threshold": 0.6,
|
||||
"max_ideas": 20,
|
||||
"external_signals": {
|
||||
@@ -162,7 +220,11 @@
|
||||
},
|
||||
"chaos": {
|
||||
"enabled": true,
|
||||
"scenarios": ["backend_unavailable", "requirement_change", "test_coverage_drop"]
|
||||
"scenarios": [
|
||||
"backend_unavailable",
|
||||
"requirement_change",
|
||||
"test_coverage_drop"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -178,30 +240,77 @@
|
||||
"name": "lead-developer",
|
||||
"domain": "coordination",
|
||||
"frameworks": [],
|
||||
"constraints": ["pragmatic", "battle-tested defaults"],
|
||||
"constraints": [
|
||||
"pragmatic",
|
||||
"battle-tested defaults"
|
||||
],
|
||||
"territory": []
|
||||
},
|
||||
{
|
||||
"name": "data-engineer",
|
||||
"domain": "data",
|
||||
"frameworks": ["drizzle", "postgresql"],
|
||||
"constraints": ["schema-first", "type-safe ORM", "migration-driven"],
|
||||
"territory": ["**/migrations/**", "**/schema/**", "**/models/**", "**/db/**", "prisma/schema.prisma", "drizzle/**", "**/*.sql"]
|
||||
"frameworks": [
|
||||
"drizzle",
|
||||
"postgresql"
|
||||
],
|
||||
"constraints": [
|
||||
"schema-first",
|
||||
"type-safe ORM",
|
||||
"migration-driven"
|
||||
],
|
||||
"territory": [
|
||||
"**/migrations/**",
|
||||
"**/schema/**",
|
||||
"**/models/**",
|
||||
"**/db/**",
|
||||
"prisma/schema.prisma",
|
||||
"drizzle/**",
|
||||
"**/*.sql"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "backend-engineer",
|
||||
"domain": "backend",
|
||||
"frameworks": ["fastify", "hono"],
|
||||
"constraints": ["api-first", "strict-typing", "dependency-injection"],
|
||||
"territory": ["**/api/**", "**/routes/**", "**/services/**", "**/middleware/**", "**/controllers/**", "**/auth/**"]
|
||||
"frameworks": [
|
||||
"fastify",
|
||||
"hono"
|
||||
],
|
||||
"constraints": [
|
||||
"api-first",
|
||||
"strict-typing",
|
||||
"dependency-injection"
|
||||
],
|
||||
"territory": [
|
||||
"**/api/**",
|
||||
"**/routes/**",
|
||||
"**/services/**",
|
||||
"**/middleware/**",
|
||||
"**/controllers/**",
|
||||
"**/auth/**"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "frontend-engineer",
|
||||
"domain": "frontend",
|
||||
"active": false,
|
||||
"frameworks": ["react", "next.js"],
|
||||
"constraints": ["component-first", "server-components", "minimal-client-js"],
|
||||
"territory": ["**/components/**", "**/pages/**", "**/hooks/**", "**/styles/**", "**/*.tsx", "**/*.css", "**/*.vue"],
|
||||
"frameworks": [
|
||||
"react",
|
||||
"next.js"
|
||||
],
|
||||
"constraints": [
|
||||
"component-first",
|
||||
"server-components",
|
||||
"minimal-client-js"
|
||||
],
|
||||
"territory": [
|
||||
"**/components/**",
|
||||
"**/pages/**",
|
||||
"**/hooks/**",
|
||||
"**/styles/**",
|
||||
"**/*.tsx",
|
||||
"**/*.css",
|
||||
"**/*.vue"
|
||||
],
|
||||
"reason": "ACDL has no frontend (no package.json); decks are markdown (lead-developer territory). Deactivated per PERSONAS.md:80."
|
||||
}
|
||||
]
|
||||
@@ -220,4 +329,4 @@
|
||||
"engine": "kyverno-json",
|
||||
"policy_root": "adapters/kyverno-json/policies"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +1,33 @@
|
||||
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%%
|
||||
flowchart LR
|
||||
subgraph F["The friction"]
|
||||
F1["Authored by<br/>non-specialists"]
|
||||
F2["Every change<br/>gated"]
|
||||
F3["Compliance<br/>checked late"]
|
||||
subgraph TODAY["Today — the gap is widening"]
|
||||
direction TB
|
||||
V["Delivery velocity<br/>↑ rising fast"]
|
||||
C["Coordination surface<br/>↑↑ rising faster"]
|
||||
V -.-|"gap"| C
|
||||
end
|
||||
F1 --- F2
|
||||
F2 --- F3
|
||||
F --> N
|
||||
subgraph N["Nova absorbs all three"]
|
||||
N1["Owned<br/>building blocks"]
|
||||
N2["Separation<br/>of concerns"]
|
||||
N3["Attested compliance<br/>up front"]
|
||||
subgraph COST["The cost of the gap"]
|
||||
direction TB
|
||||
R1["Remediation<br/>cycles"]
|
||||
R2["Gate fatigue<br/>& morale loss"]
|
||||
R3["Compliance<br/>found late"]
|
||||
end
|
||||
style F fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style N fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style F1 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style F2 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style F3 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
TODAY -->|"absorbs"| NOVA
|
||||
subgraph NOVA["Nova closes the gap"]
|
||||
direction TB
|
||||
N1["Owned primitives<br/>= no per-team infra authoring"]
|
||||
N2["Attested up front<br/>= no late compliance"]
|
||||
N3["Policy-bounded<br/>= no manual gating"]
|
||||
end
|
||||
COST -->|"absorbs"| NOVA
|
||||
style TODAY fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style COST fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style NOVA fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style V fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style C fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style R1 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style R2 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style R3 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style N1 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style N2 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style N3 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
@@ -1,10 +1,25 @@
|
||||
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%%
|
||||
flowchart TB
|
||||
CIT["Central IT curates<br/>the golden OS image"]
|
||||
NOVA["Nova curates<br/>the cloud infrastructure"]
|
||||
CONSUMER["Consumer declares<br/>a contract"]
|
||||
CIT -->|own, patch, ship| NOVA
|
||||
NOVA -->|own, patch, attest| CONSUMER
|
||||
style CIT fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style NOVA fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style CONSUMER fill:#fff,color:#1B1B1B,stroke:#D6002A
|
||||
flowchart LR
|
||||
SDLC["SDLC<br/>code authored,<br/>built, tested"]
|
||||
PDLC["PDLC<br/>product backlog,<br/>release planning"]
|
||||
CONTRACT["The<br/>contract"]
|
||||
INGEST["Contract<br/>ingestor"]
|
||||
RESOLVE["Resolve<br/>→ L1/L2 stack"]
|
||||
POLICY["Policy +<br/>confidence<br/>enforcement"]
|
||||
APPLY["Reconcile<br/>→ live cloud"]
|
||||
PROD["Running,<br/>observable,<br/>attested infra"]
|
||||
SDLC --> CONTRACT
|
||||
PDLC --> CONTRACT
|
||||
CONTRACT -->|"validated<br/>boundary"| INGEST
|
||||
INGEST --> RESOLVE
|
||||
RESOLVE --> POLICY
|
||||
POLICY --> APPLY
|
||||
APPLY -->|"production-grade<br/>by construction"| PROD
|
||||
style SDLC fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style PDLC fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style CONTRACT fill:#fff,color:#D6002A,stroke:#D6002A
|
||||
style INGEST fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style RESOLVE fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style POLICY fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style APPLY fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style PROD fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
@@ -1,17 +1,22 @@
|
||||
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%%
|
||||
flowchart LR
|
||||
T1["Sovereign<br/>boundary"]
|
||||
T2["Lower autonomous<br/>higher attested"]
|
||||
I1["Four-layer<br/>model"]
|
||||
I2["HITL<br/>gates"]
|
||||
I3["Contract<br/>schema"]
|
||||
T1 --> I1
|
||||
T1 --> I3
|
||||
T2 --> I2
|
||||
T2 --> I3
|
||||
T1 -.-> T2
|
||||
style T1 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style T2 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style I1 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style I2 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style I3 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
flowchart TB
|
||||
ROOT["Two tenets<br/>discipline everything"]
|
||||
SB["Sovereign boundary<br/>govern the delivery lifecycle<br/>do not reach upstream"]
|
||||
LA["Lower autonomous<br/>higher attested<br/>compute: platform<br/>choice: human"]
|
||||
ROOT --> SB
|
||||
ROOT --> LA
|
||||
SB -->|"shapes"| FM["4-layer model<br/>artifact → contract →<br/>infra → runtime"]
|
||||
SB -->|"shapes"| CS["Contract schema<br/>the only integration<br/>surface to SDLC/PDLC"]
|
||||
SB -->|"shapes"| PE["Policy envelope<br/>confidence, NFRs,<br/>boundaries enforced"]
|
||||
LA -->|"shapes"| HITL["HITL gates<br/>named approver ≠ PR author<br/>at qa, prod, dr"]
|
||||
LA -->|"shapes"| CONF["Confidence signal<br/>0.50 → 0.75 → 0.90 → 0.95<br/>escalation below threshold"]
|
||||
LA -->|"shapes"| AUDIT["Audit lineage<br/>every action → one owner<br/>→ one evidence entry"]
|
||||
style ROOT fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style SB fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style LA fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style FM fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style CS fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style PE fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style HITL fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style CONF fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style AUDIT fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
@@ -1,9 +1,17 @@
|
||||
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%%
|
||||
flowchart LR
|
||||
L["Live today<br/>41 capabilities<br/>12 domains"]
|
||||
A["Attested on<br/>promotion<br/>named human approver"]
|
||||
H["Stays human<br/>by design<br/>escalation below threshold"]
|
||||
L --> A --> H
|
||||
style L fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style A fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style H fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
DEV["dev<br/>autonomous<br/>conf ≥ 0.50<br/>zero-touch"]
|
||||
QA["qa<br/>HITL gate<br/>conf ≥ 0.75<br/>named approver<br/>≠ PR author"]
|
||||
PROD["prod<br/>HITL gate<br/>conf ≥ 0.90<br/>named approver<br/>≠ PR author"]
|
||||
DRENV["dr<br/>HITL gate<br/>conf ≥ 0.95<br/>named approver<br/>≠ PR author"]
|
||||
DEV -->|"promotion"| QA
|
||||
QA -->|"promotion"| PROD
|
||||
PROD -->|"promotion"| DRENV
|
||||
ESC["Escalation:<br/>below threshold<br/>→ human judgment"] -.->|"triggers"| QA
|
||||
ESC -.->|"triggers"| PROD
|
||||
ESC -.->|"triggers"| DRENV
|
||||
style DEV fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style QA fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style PROD fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style DRENV fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style ESC fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
@@ -1,23 +1,29 @@
|
||||
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%%
|
||||
flowchart LR
|
||||
subgraph IN["In Nova's lane"]
|
||||
I1["Infrastructure<br/>primitives"]
|
||||
I2["Operational<br/>guardrails"]
|
||||
I3["CVE response<br/>infra layer"]
|
||||
subgraph ABOVE["Above the contract — upstream, not Nova"]
|
||||
APP["Application<br/>business logic"]
|
||||
IDE["IDE · sprint ·<br/>author workflows"]
|
||||
APPSEC["AppSec · dependency<br/>review · runtime security"]
|
||||
VM["VM · bare-metal ·<br/>OS lifecycles<br/>consumed, not maintained"]
|
||||
end
|
||||
C["The<br/>contract"]
|
||||
subgraph OUT["Outside Nova's lane"]
|
||||
O1["Application<br/>business logic"]
|
||||
O2["IDE & sprint<br/>workflows"]
|
||||
O3["AppSec &<br/>dependency review"]
|
||||
CONTRACT["the contract<br/>━━━━━━━━━<br/>declared intent<br/>validated, published"]
|
||||
subgraph BELOW["Below the contract — Nova's lane"]
|
||||
L1["L1 primitives<br/>S3 · RDS · Lambda<br/>ECS · KMS · DynamoDB"]
|
||||
L2["L2 compositions<br/>microservice ·<br/>static-assets"]
|
||||
GUARD["Guardrails<br/>confidence · policy<br/>attestation · audit"]
|
||||
end
|
||||
IN --- C --- OUT
|
||||
style IN fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style OUT fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style C fill:#fff,color:#D6002A,stroke:#D6002A
|
||||
style I1 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style I2 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style I3 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style O1 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style O2 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style O3 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
RT["Production<br/>runtime"]
|
||||
ABOVE -.->|"declares via"| CONTRACT
|
||||
CONTRACT -->|"validated boundary"| BELOW
|
||||
BELOW -->|"reconciles to"| RT
|
||||
style ABOVE fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style BELOW fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style APP fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style IDE fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style APPSEC fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style VM fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style CONTRACT fill:#fff,color:#D6002A,stroke:#D6002A
|
||||
style L1 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style L2 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style GUARD fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style RT fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
@@ -1,11 +1,32 @@
|
||||
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%%
|
||||
flowchart LR
|
||||
A["α<br/>Now → Q4'26<br/>Operating model +<br/>federated governance"]
|
||||
B["β<br/>Q1'27<br/>Auto-published<br/>infra observability"]
|
||||
G["γ<br/>Q2'27<br/>Runbook generation<br/>from telemetry"]
|
||||
D["δ<br/>Q3'27 → Q4'27<br/>Audit ledger<br/>tamper-resistant"]
|
||||
A --> B --> G --> D
|
||||
subgraph NOW["Now"]
|
||||
A["α — operating model<br/>named platform-ops body<br/>SLAs on every L2"]
|
||||
end
|
||||
subgraph Q1["Q1 2027"]
|
||||
B["β — infra observability<br/>auto-published on apply<br/>no per-team dashboards"]
|
||||
end
|
||||
subgraph Q2["Q2 2027"]
|
||||
G["γ — runbook generation<br/>from observed patterns<br/>SREs start, not blank"]
|
||||
end
|
||||
subgraph Q4["Q3-Q4 2027"]
|
||||
D["δ — audit ledger<br/>S3 Object Lock + JWS<br/>externally verifiable"]
|
||||
end
|
||||
A -->|"unlocks"| B
|
||||
B -->|"builds on"| G
|
||||
G -->|"matures to"| D
|
||||
NOW -.->|"governance<br/>is the unlock"| B
|
||||
subgraph UNCHANGED["Stays constant across the arc"]
|
||||
C["The contract surface<br/>remains the only<br/>SDLC/PDLC integration"]
|
||||
end
|
||||
D -.->|"exits to"| UNCHANGED
|
||||
style NOW fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style Q1 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style Q2 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style Q4 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style UNCHANGED fill:#fff,color:#1B1B1B,stroke:#D6002A
|
||||
style A fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style B fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style G fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style D fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style D fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style C fill:#fff,color:#1B1B1B,stroke:#D6002A
|
||||
@@ -1,13 +1,40 @@
|
||||
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%%
|
||||
flowchart LR
|
||||
W["What works now<br/>L1 & L2 stacks live<br/>confidence 0.800"]
|
||||
N1["Ingest greenfield<br/>pilot projects"]
|
||||
N2["Promote sandbox<br/>to production"]
|
||||
N3["Integrate SPGE<br/>constitutional library"]
|
||||
N4["Serve as the<br/>infrastructure layer"]
|
||||
W --> N1 --> N2 --> N3 --> N4
|
||||
style W fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
flowchart TB
|
||||
subgraph PROVEN["Proven today — the foundation"]
|
||||
direction LR
|
||||
L1L2["13 L1 + 2 L2<br/>live in registry"]
|
||||
PILOT["Pilot live-apply<br/>confidence 0.800<br/>dev AWS account"]
|
||||
L1L2 --- PILOT
|
||||
end
|
||||
subgraph ARC["The runway arc — next steps"]
|
||||
direction LR
|
||||
N1["Ingest greenfield<br/>pilot projects"]
|
||||
N2["Promote<br/>dev → prod<br/>activate qa, prod, dr"]
|
||||
N3["Integrate SPGE<br/>constitutional library<br/>at the contract surface"]
|
||||
N4["Serve as the<br/>infrastructure layer<br/>beneath every app"]
|
||||
N1 --> N2 --> N3 --> N4
|
||||
end
|
||||
subgraph ASK["The ask"]
|
||||
ENDORSE["Architecture<br/>endorsement"]
|
||||
RUNWAY["Runway to next<br/>milestone by Nov 2026"]
|
||||
ENDORSE --- RUNWAY
|
||||
end
|
||||
subgraph RISK["If we don't — the structural risk"]
|
||||
GAP["Delivery acceleration<br/>vs operational absorption<br/>gap widens through 2027"]
|
||||
end
|
||||
PROVEN -->|"foundation enables"| ARC
|
||||
ARC -->|"lands at"| ASK
|
||||
ASK -.->|"without it"| RISK
|
||||
style PROVEN fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style ARC fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style ASK fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style RISK fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style L1L2 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style PILOT fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style N1 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style N2 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style N3 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style N4 fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style N4 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
style ENDORSE fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style RUNWAY fill:#1B1B1B,color:#fff,stroke:#D6002A
|
||||
style GAP fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A
|
||||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 91 KiB |