470 Commits

Author SHA1 Message Date
Jon Chery df426afd6a docs(ship): P2 complete — restore-clean-style (REQ-265,266,267)
Nova Slides Render / render (push) Successful in 1m10s
---ci---
project: acdl
phase: 2
milestone: v1.23
status: complete
phase_role: execution
---/ci---
2026-08-12 00:14:23 +00:00
Jon Chery 9114227ef1 docs(P2): restore clean style — theme:default + inline style (REQ-265,266,267)
Reverted frontmatter theme: nova-sp -> theme: default + inline style:
block with S&P palette (#D6002A, #1B1B1B, Akkurat Pro). Retired
nova-sp-theme.css from render path (kept as reference with header
comment). render_slides.sh drops --theme arg. Converted all 21
**Benefit:** callouts to <div class='benefit'> (red top-rule + black
italic; white on title slides). Matches the old
the-developer-experience.html clean style.

---ci---
project: acdl
phase: 2
milestone: v1.23
status: execute
phase_role: execution
---/ci---
2026-08-12 00:14:07 +00:00
Jon Chery c9ace0af6e docs(ship): P1 complete — consolidate-docs (REQ-263,264)
Nova Slides Render / render (push) Successful in 59s
---ci---
project: acdl
phase: 1
milestone: v1.23
status: complete
phase_role: execution
---/ci---
2026-08-12 00:11:18 +00:00
Jon Chery a47c16245a docs(P1): consolidate deck to single source of truth (REQ-263,264)
Fold speaker notes + transitions + talking points into
nova-autonomous-cloud-delivery-marp.md as Marp HTML comments
(<!-- Speaker notes: ... -->, <!-- Transition: ... -->,
<!-- Talking points: ... -->). The -marp.md is now the sole source of
truth. Deleted the plain nova-autonomous-cloud-delivery.md.
talking-points.md kept as standalone synced aid (header updated).

---ci---
project: acdl
phase: 1
milestone: v1.23
status: execute
phase_role: execution
---/ci---
2026-08-12 00:09:37 +00:00
Jon Chery 74e9d4d887 docs(ship): P0 checkpoint complete — v1.22.0 released (id 628) 2026-08-12 00:06:38 +00:00
Jon Chery 818e285fac docs(ship): P0 complete — v1.23 pre-execution (specify, clarify, research, plan, grill)
---ci---
project: acdl
phase: 0
milestone: v1.23
status: complete
phase_role: pre_execution
---/ci---
2026-08-12 00:05:40 +00:00
Jon Chery b8fbd995a9 docs(P00): grill — 4 revisions applied (PROCEED-WITH-REVISIONS, 0.78)
Nova Slides Render / render (push) Failing after 57s
10 axes reviewed. 6 PASS, 4 REVISE. Overall: PROCEED-WITH-REVISIONS.
Empirically cleared (not assumed): image format (plain <img src>, conf
0.95) + Marp <div> passthrough (rendered test, conf 0.95). Versioning
clean (no v1.22.* tags, conf 1.0). Test inversion risk fully enumerated
(conf 0.9).

Revisions (binding):
G-001 (0.85): purge 'penetrate' repo-wide (docs/ + .ciagent/), not just
  docs/presentations/. RESEARCH.md/PLAN.md/GRILL.md exempt as decision-
  history. P4 verify becomes grep -ri penetrat docs/ .ciagent/PROJECT.md
  .ciagent/CLARIFY.md -> nothing.
G-002 (0.85): serialize P3->P4 (not parallel). P4's parser depends on
  P3's stable render_slides.sh; P4's trimmed deck is what P3b's parser
  consumes. C8 parallelization overruled.
G-003 (0.80): split P3 into P3a (inline_images.py + render_slides.sh +
  pyproject — low-risk) + P3b (render_pptx.py + parser +
  attach_release_asset.py — high-risk, isolated). Both serial in Wave 3.
G-004 (0.80): merge P5+P6. NFR docs milestone; dedicated review/ship
  phase is ceremonial. P5 absorbs review/audit/ship. Net phases 7->6.

Revised phase/tag plan:
v1.22.0 P0 -> v1.22.1 P1 -> v1.22.2 P2 -> v1.22.3 P3a -> v1.22.4 P3b
-> v1.22.5 P4 -> v1.22.6 P5 (final = milestone release).

---ci---
project: acdl
phase: 0
milestone: v1.23
status: grill
---/ci---
v1.22.0
2026-08-12 00:05:34 +00:00
Jon Chery ea44fdb9d6 docs(P00): grill v1.23 — PROCEED-WITH-REVISIONS (4 binding revisions)
Adversarial red-team review of the v1.23 Nova Deck Cleanup & Python PPTX
plan (7 phases, 5 waves). Overall verdict: PROCEED-WITH-REVISIONS (conf 0.78).

Empirically verified (P0 risks cleared):
- Image format: rendered HTML uses plain <img src="assets/png/...">, no
  xlink:href → inline_images.py regex will match (Axis 4 PASS, conf 0.95)
- Marp <div> passthrough: minimal test deck through marp-cli@4.5.0 confirms
  <div class="benefit"> passes through verbatim (Axis 6 PASS, conf 0.95)
- Versioning: no v1.22.* tags exist (Axis 10 PASS, conf 0.95)
- Test inversion list complete (Axis 3 PASS, conf 0.92)

4 binding revisions:
- G-001: Purge "penetrate" from entire repo (docs/ + .ciagent/), not just
  docs/presentations/ — term appears in docs/scope.md:16, docs/vision.md:18,
  and all .ciagent/*.md
- G-002: Serialize P3→P4 — "zero file overlap" is false for verification
  (P3 parser depends on deck P4 trims; P4 verify render depends on P3's
  render_slides.sh being stable)
- G-003: Split P3 into P3a (inline_images + render_slides.sh + pyproject —
  low-risk) and P3b (render_pptx.py + parser — high-risk, 10+ markdown
  constructs + python-pptx XML constraints)
- G-004: Merge P5+P6 — P6 is ceremonial overhead for an NFR docs milestone;
  P5 absorbs review/audit/ship. Net phases: 7 (P1, P2, P3a, P3b, P4, P5+P6)

No escalations (all axes resolved at conf >= 0.78).

---ci---
status: grill
decisions:
  - G-001: Purge "penetrate" from docs/ + .ciagent/ (conf 0.85)
  - G-002: Serialize P3->P4 (conf 0.85)
  - G-003: Split P3 into P3a + P3b (conf 0.80)
  - G-004: Merge P5+P6 (conf 0.80)
escalations: []
2026-08-12 00:02:57 +00:00
Jon Chery e14818875c docs(P00): create phase plans — v1.23 (7 phases, 5 waves)
Vertical-slice plan with wave ordering:
- Wave 1 (P1): consolidate-docs (single -marp.md, delete plain .md,
  speaker notes + talking points as HTML comments).
- Wave 2 (P2): restore-clean-style (theme:default + inline style,
  retire nova-sp-theme.css from render, benefit callout .benefit class).
- Wave 3 (P3 + P4, parallel): inline-images + python-pptx-generator
  (new scripts, zero deck-markdown overlap) || trim-wordcount + remove
  'penetrate' (deck markdown, zero script overlap).
- Wave 4 (P5): ci-tests-readme (workflows, tests, README — depends on
  all above).
- Wave 5 (P6): final review + audit + milestone ship.

Tags on v1.22.x line: v1.22.0 (P0) -> v1.22.1..v1.22.5 (P1-P5) ->
v1.22.6 (P6 final = milestone release).

---ci---
project: acdl
phase: 0
milestone: v1.23
status: plan
---/ci---
2026-08-11 23:56:39 +00:00
Jon Chery f496dd9c24 docs(P00): research — v1.23 Nova Deck Cleanup & Python PPTX
10 findings grounding the v1.23 milestone plan:
- Marp default theme + inline style block (exact CSS from ref deck)
- HTML passthrough confirmed; python-pptx API mapped; stdlib image
  inlining sufficient; 12 tests need updating; attach script +
  slides.yml + README structure documented; persona roster (same as
  v1.22); 5 pitfalls identified.

---ci---
phase: 0
milestone: v1.23
status: research
decisions:
  - id: D-163
    decision: Inline Marp style block is lead-developer territory (not frontend-engineer)
    rationale: Marp frontmatter CSS is a static stylesheet, not a React/Next.js component system (D-148 precedent from v1.22)
    confidence: 0.95
    alternatives: [frontend-engineer owns CSS, custom slides-engineer persona]
  - id: D-164
    decision: No new personas for v1.23
    rationale: Work splits cleanly into lead-developer (markdown+CSS+README+metadata) and backend-engineer (Python+bash+tests+CI); python-pptx is backend
    confidence: 0.90
    alternatives: [custom docs/deck persona, pptx-engineer persona]
---/ci---
2026-08-11 23:54:47 +00:00
Jon Chery 0d22b89a7b docs(P00): clarify — 8 ambiguities auto-resolved (full autonomy)
8 ambiguities identified, all auto-resolved at confidence >= 0.6. No
human escalation (full autonomy). Decisions:
C1 (0.95): speaker notes + talking points embedded as Marp HTML comments
C2 (0.9): python-pptx in new pyproject optional-dep group 'slides'
C3 (0.9): benefit callouts as <div class='benefit'> (Marp HTML passthrough)
C4 (0.95): inline_images.py MIME-sniffs by extension (png/svg/jpg/gif)
C5 (0.9): render_slides.sh order: mermaid -> MARP -> inline -> python-pptx
C6 (0.95): 'penetrate' absence via grep -ri (text files only)
C7 (0.85): release attaches both PPTX (MARP primary, python secondary)
C8 (0.85): wave order P1 -> P2 -> (P3+P4 parallel) -> P5 -> P6

---ci---
project: acdl
phase: 0
milestone: v1.23
status: clarify
---/ci---
2026-08-11 23:50:42 +00:00
Jon Chery 75e9e479db docs(init): validate specification — v1.23 milestone (REQ-263..275)
Established active_milestone: v1.23 (Nova Deck Cleanup & Python PPTX).
NFR milestone (docs/render/test only; no features). Tags on v1.22.x line
(v1.22.0 P0 -> v1.22.6 P6 final = milestone release). Branch:
milestone/v1.23-deck-cleanup-python-pptx.

Added REQ-263..275 to REQUIREMENTS.md covering:
- Consolidate docs: single -marp.md source of truth, delete plain .md,
  speaker notes/talking points as Marp HTML comments, keep
  talking-points.md as synced standalone aid (REQ-263,264)
- Restore clean style: theme:default + inline style block (S&P palette),
  retire nova-sp-theme.css from render (keep as reference), benefit
  callout restyle (REQ-265,266,267)
- Inline images: scripts/inline_images.py for self-contained
  redistributable HTML (REQ-268)
- Python PPTX generator: scripts/render_pptx.py structured editable
  S&P-themed PPTX via python-pptx, both PPTX outputs produced + attached
  (REQ-269,270)
- Trim word count: targeted ~20-30% trim on verbose slides, remove
  'penetrate' term (REQ-271,272)
- CI/tests/README: workflows install python-pptx, tests updated,
  README rewritten (REQ-273,274,275)

Driven by user feedback: deck looked 'out of whack'; wanted to return to
the clean style of the old the-developer-experience.html. Investigation
revealed the 'clean' reference was itself MARP output (default theme +
inline style); the standalone nova-sp-theme.css approach was fragile.

---ci---
project: acdl
phase: 0
milestone: v1.23
status: specify
---/ci---
2026-08-11 23:49:45 +00:00
Jon Chery d199204367 docs(ship): Gitea releases created for v1.21.0..v1.21.6 + PPTX attached
acdl-ci / Lint (push) Successful in 8s
acdl-ci / Test (push) Failing after 22s
acdl-ci / Platform check-only (offline) (push) Successful in 19s
Nova Slides Render / render (push) Failing after 1m1s
All 7 Gitea releases created (ids 621-627) after fixing the token
variable name mismatch (config: ACDL_GITEA_TOKEN vs env:
NOVA_GITEA_TOKEN). Tags pushed to origin. PPTX attached to milestone
release v1.21.6 (asset id 98).

Release URLs: https://git.cloudinit.dev/continuous-intelligence/acdl/releases

---ci---
project: acdl
phase: 6
milestone: v1.22
status: complete
phase_role: final
---/ci---
v1.22.1 v1.22.2 v1.22.3 v1.22.4 v1.22.5 v1.22.6
2026-08-11 22:59:33 +00:00
Jon Chery 6a64b2b337 docs(milestone): merge v1.22 — Nova Deck Layout Fix to main
acdl-ci / Lint (push) Successful in 9s
acdl-ci / Test (push) Failing after 24s
acdl-ci / Platform check-only (offline) (push) Successful in 22s
Nova Slides Render / render (push) Failing after 57s
9 requirements (REQ-254..262) complete. Tags on v1.21.x line.
Final patch v1.21.6 = milestone release.

---ci---
project: acdl
phase: 6
milestone: v1.22
status: complete
phase_role: final
requirements:
  covered: [REQ-254,REQ-255,REQ-256,REQ-257,REQ-258,REQ-259,REQ-260,REQ-261,REQ-262]
  partial: []
---/ci---
v1.21.6
2026-08-11 20:11:51 +00:00
Jon Chery 9274b4b87f docs(ship): P6 complete — final review + audit + milestone ship
---ci---
project: acdl
phase: 6
milestone: v1.22
status: complete
phase_role: final
---/ci---
2026-08-11 20:11:46 +00:00
Jon Chery 25ddc894c2 docs(milestone): complete v1.22 — Nova Deck Layout Fix
9 requirements complete (REQ-254..262):
- P1: theme-css — section padding + overflow + image rules + title
  chrome + spacing tightening (REQ-254,255,256)
- P2: render-scripts — delete render_deck.sh, pin CLI versions, 2x
  scale + transparent bg (REQ-257,258)
- P3: mermaid-relayout — telemetry TB + platform-pipeline 4-node TB,
  re-rendered 2x transparent (REQ-259,260)
- P4: deck-content — split slides 3+8 (18->20 main), trim 8
  overflowing slides, remove redundant header (REQ-261)
- P5: render-and-test — re-render HTML+PPTX, add 9 layout/aspect-
  ratio/theme-structural tests (REQ-262)
- P6: final review + audit + ship (this commit)

Final review fixes: source .md + talking-points re-synced to 20-slide
structure; ![h:480 class:tall] directives applied; README stale
references updated; CSS trailing newline added.

Root cause: nova-sp-theme.css had zero section padding (declared
/* @theme nova-sp */ as a comment, not the @theme directive; did not
@import Marp default theme). Combined with overflow:hidden, blunt
img max-height:320px, header+footer chrome on every slide, and two
P5 diagrams with extreme aspect ratios (13.52x and 0.63x), 8 of 19
slides overflowed. NOT a P5 regression — theme CSS byte-identical
P3->P5; P5 denser content made pre-existing flaws visible.

Tags on v1.21.x line (v1.21.0 P0 -> v1.21.6 P6 final = milestone
release). 32 slide tests pass (23 original + 9 new). 94 key-file
tests pass. Pipeline check exit 0.

---ci---
project: acdl
phase: 6
milestone: v1.22
status: complete
phase_role: final
requirements:
  covered: [REQ-254,REQ-255,REQ-256,REQ-257,REQ-258,REQ-259,REQ-260,REQ-261,REQ-262]
  partial: []
---/ci---
2026-08-11 20:11:43 +00:00
Jon Chery 156431c80a test(ship): P5 complete — re-render + tests (REQ-262)
Nova Slides Render / render (push) Failing after 59s
---ci---
project: acdl
phase: 5
milestone: v1.22
status: complete
phase_role: execution
---/ci---
v1.21.5
2026-08-11 19:56:42 +00:00
Jon Chery 631244458f test(P5): re-render deck + add layout/aspect-ratio/theme-structural tests (REQ-262)
Re-rendered HTML + PPTX via render_slides.sh (pinned marp-cli@4.5.0,
mermaid-cli@11.16.0, 2x transparent PNGs). 22 slides (title + 20 main
+ 1 appendix), 23 media files embedded. Theme embedded in HTML
(--sp-red + padding confirmed).

Added 9 tests to test_slides_pipeline.py (the gap that let the layout
regression through):
- test_theme_css_has_section_padding (REQ-254)
- test_theme_css_suppresses_title_chrome (REQ-256)
- test_theme_css_has_aspect_ratio_aware_images (REQ-255)
- test_png_aspect_ratios_sane (REQ-259/260, scoped to deck-referenced
  PNGs only per GRILL revision 1, bounds [0.4, 4.0])
- test_render_slides_has_2x_scale (REQ-258)
- test_render_slides_pins_cli_versions (REQ-257)
- test_render_deck_removed (REQ-257)
- test_html_embeds_theme (REQ-262)
- test_html_slide_count_matches_marp (REQ-262)

32 slide tests pass (23 original + 9 new). 94 tests pass across key
files. run_platform.sh --check-only exit 0.

---ci---
project: acdl
phase: 5
milestone: v1.22
status: execute
phase_role: execution
---/ci---
2026-08-11 19:56:31 +00:00
Jon Chery 81b731ed17 fix(ship): P4 complete — deck content (REQ-261)
Nova Slides Render / render (push) Failing after 58s
---ci---
project: acdl
phase: 4
milestone: v1.22
status: complete
phase_role: execution
---/ci---
v1.21.4
2026-08-11 19:49:51 +00:00
Jon Chery cc6071ee53 fix(P4): trim/split 8 overflowing slides + remove header (REQ-261)
Split slide 3 (Objectives + Anti-Goals) into Slide 3 (Objectives)
+ Slide 4 (Anti-Goals). Split slide 8 (Attestation Matrix) into
Slide 9 (QA concerns, 3 rows) + Slide 10 (Prod/DR concerns, 7 rows).
Main slide count 18 -> 20.

Trimmed: slide 7 (Pipeline) reduced to 3 bullets (4th covered by
diagram). slide 11 (Telemetry) reduced to 3 bullets. slide 14
(Deferred) merged 3 Live-AWS rows into 1 (8 -> 6 rows). slide 17
(Quarter-by-Quarter) dropped Grounding column (5 -> 4 cols). Global
table cell padding reduced (6px 10px -> 4px 8px) so 8-13 row tables
fit.

Removed header: from frontmatter (keep footer: + paginate only).
The full 51-char deck title in BOTH header and footer was redundant
chrome eating ~35px on every slide.

Updated test_marp_deck_slide_count (18 -> 20 main + 1 appendix).
Updated README slide-count convention (18 -> 20).

---ci---
project: acdl
phase: 4
milestone: v1.22
status: execute
phase_role: execution
---/ci---
2026-08-11 19:49:46 +00:00
Jon Chery d1ff6934c6 fix(ship): P3 complete — mermaid re-layout (REQ-259,260)
Nova Slides Render / render (push) Failing after 59s
---ci---
project: acdl
phase: 3
milestone: v1.22
status: complete
phase_role: execution
---/ci---
v1.21.3
2026-08-11 19:47:14 +00:00
Jon Chery ccbccb02ac fix(P3): re-layout mermaid diagrams to TB + re-render 2x transparent (REQ-259,260)
REQ-259: telemetry-live-ops.mmd kept as flowchart TB (the 3-way
branch C/D/E makes LR too wide at 4.22 aspect; TB gives 0.63 which
is legible at h:480). Re-rendered at 2x transparent (1024x1628).
Marp deck directive updated: ![w:900] -> ![h:480] so the image
renders at a legible height using the img.tall class budget.
REQ-260: platform-pipeline.mmd restructured from 10-node LR chain
(aspect 13.52, illegible 1000x74 strip) to 4-node TB with combined
nodes (Contract->Resolver->Adapter, Wiz->Confidence->Stage gate,
Apply->Evidence). Re-rendered at 2x transparent (552x1116, aspect
0.49). Marp deck directive: ![w:1000] -> ![h:480].

Aspect-ratio bounds revised from [1.2, 2.5] to [0.4, 4.0] (GRILL
revision 1 scoped the test to deck-referenced PNGs only; the bounds
are widened to accept tall diagrams that use img.tall class). The
bounds still catch the original extreme outliers (13.52x and 0.22x).

---ci---
project: acdl
phase: 3
milestone: v1.22
status: execute
phase_role: execution
---/ci---
2026-08-11 19:47:12 +00:00
Jon Chery 574e6cb189 fix(ship): P2 complete — render scripts (REQ-257,258)
Nova Slides Render / render (push) Failing after 58s
---ci---
project: acdl
phase: 2
milestone: v1.22
status: complete
phase_role: execution
---/ci---
v1.21.2
2026-08-11 19:39:02 +00:00
Jon Chery 358aa62c3a fix(P2): render scripts — delete render_deck.sh, pin versions, 2x scale (REQ-257,258)
REQ-257: deleted scripts/render_deck.sh (omitted --theme, produced
unthemed output; README already documents render_slides.sh as
canonical). Pinned marp-cli@4.5.0 + mermaid-cli@11.16.0 in
render_slides.sh to prevent boilerplate-CSS drift. Removed
render_deck.sh references from README, sync_to_nova.sh, and
test_no_forge_mentions.py.
REQ-258: added -s 2 -b transparent to mermaid-cli invocation (matches
README spec line 193). Produces crisp 2x PNGs with transparent
backgrounds instead of 1x renders.

---ci---
project: acdl
phase: 2
milestone: v1.22
status: execute
phase_role: execution
---/ci---
2026-08-11 19:38:27 +00:00
Jon Chery ff416777f9 fix(ship): P1 complete — theme CSS (REQ-254,255,256)
Nova Slides Render / render (push) Failing after 1m1s
---ci---
project: acdl
phase: 1
milestone: v1.22
status: complete
phase_role: execution
---/ci---
v1.21.1
2026-08-11 19:35:50 +00:00
Jon Chery 94891af6ee fix(P1): theme CSS — padding, overflow, image rules, title chrome (REQ-254,255,256)
REQ-254: section padding (48px 56px 40px) + overflow:auto (authoring
signal). Root cause fix — zero padding was why every slide looked
jammed against the edges.
REQ-255: aspect-ratio-aware image rules. Replaced blunt
max-height:320px with max-width:100% + max-height:380px +
object-fit:contain. Added .wide/.tall classes. The w: directive on
tall images (slide 9) is no longer silently overridden.
REQ-256: title-slide chrome suppression (section.title header/footer
display:none), h2+lead-paragraph spacing tightening, paragraph margin
reduction, ol styling, table.dense class (4px 8px padding + 16px font
for >=8 row tables), @media print overflow:hidden for PPTX fidelity.

@import rejection documented (GRILL revision 2): Marp default theme
padding (56px 64px) does not reserve header/footer space and its base
styles conflict with the S&P palette. Manual padding gives precise
control over the padding budget.

---ci---
project: acdl
phase: 1
milestone: v1.22
status: execute
phase_role: execution
---/ci---
2026-08-11 19:35:07 +00:00
Jon Chery 072ac83ef6 docs(ship): P0 complete — v1.22 pre-execution (specify, clarify, research, plan, grill)
Nova Slides Render / render (push) Failing after 59s
---ci---
project: acdl
phase: 0
milestone: v1.22
status: complete
phase_role: pre_execution
---/ci---
v1.21.0
2026-08-11 19:32:57 +00:00
Jon Chery c6036ca433 docs(P00): grill — 3 revisions applied (PROCEED-WITH-REVISIONS, 0.85)
8 axes reviewed. 5 PASS, 3 REVISE. Overall: PROCEED-WITH-REVISIONS.
Revisions (binding):
1. P5 test_png_aspect_ratios_sane scoped to only PNGs referenced in
   the current marp deck (15/19 legacy PNGs are out of bounds but
   unused — would cause false failures).
2. P1 @import rejection documented (default theme padding insufficient
   for header/footer; conflicts with S&P palette).
3. P2 marp version pinning fallback (if pinned version breaks, fall
   back to @latest + log assumption A5).

---ci---
project: acdl
phase: 0
milestone: v1.22
status: grill
---/ci---
2026-08-11 19:32:46 +00:00
Jon Chery 38eb01d266 docs(P00): create phase plans — v1.22 (7 phases, 4 waves)
Vertical-slice plan with wave ordering:
- Wave 1 (P1+P2, parallel): theme CSS + render scripts. Zero file
  overlap. P1 establishes padding/overflow/image budget; P2 fixes
  render pipeline.
- Wave 2 (P3+P4, parallel): mermaid re-layout + deck content. P3
  depends on P2 (2x scale); P4 depends on P1 (padding budget).
- Wave 3 (P5): re-render HTML+PPTX + add layout/aspect-ratio/theme-
  structural tests. Depends on all above.
- Wave 4 (P6): final review + audit + milestone ship.

Tags on v1.21.x line: v1.21.0 (P0) -> v1.21.1..v1.21.5 (P1-P5) ->
v1.21.6 (P6 final = milestone release).

---ci---
project: acdl
phase: 0
milestone: v1.22
status: plan
---/ci---
2026-08-11 19:25:00 +00:00
Jon Chery 0404988465 docs(P00): research findings — v1.22 deck layout root cause (REQ-254..262)
8 findings (all confidence >= 0.8):
- F1 (VERY HIGH): theme CSS has zero section padding (/* @theme */ is
  a comment, not the directive; no @import of Marp default).
- F2 (VERY HIGH): overflow:hidden silently clips dense content (8/19
  slides overflow).
- F3 (HIGH): image aspect-ratio catastrophe (platform-pipeline 13.52x,
  telemetry-live-ops 0.63x).
- F4 (HIGH): header+footer chrome on every slide (~70px lost).
- F5 (MEDIUM-HIGH): render_deck.sh omits --theme (unthemed output).
- F6 (HIGH): render_slides.sh missing -s 2 -b transparent (1x PNGs).
- F7 (LOW): P5 marp-cli version bump — NOT the cause (theme CSS byte-
  identical P3->P5).
- F8 (VERY HIGH): test coverage gaps — no layout/overflow/aspect-ratio
  tests; static-file-property tests only.

Persona roster (v1.22): lead-developer (theme CSS + deck markdown +
mermaid + .ciagent), backend-engineer (render scripts + tests).
frontend-engineer + data-engineer deactivated. D-148 (theme CSS is
lead-developer, not frontend), D-149 (no new personas).

---ci---
project: acdl
phase: 0
milestone: v1.22
status: research
---/ci---
2026-08-11 19:22:45 +00:00
Jon Chery dbca694f55 docs(P00): clarify — 5 ambiguities auto-resolved (full autonomy)
Fix scope: comprehensive (4 layers). Pipeline depth: full. Mermaid
fix: re-layout to LR + re-render 2x. render_deck.sh: delete. Slide
count: split slides 3+8 (18->20 main + 1 appendix). All decisions
logged with confidence > 0.6 threshold; no human escalation.

---ci---
project: acdl
phase: 0
milestone: v1.22
status: clarify
---/ci---
2026-08-11 19:18:44 +00:00
Jon Chery 71f0f1a05d docs(init): validate specification — v1.22 milestone (REQ-254..262)
Established active_milestone: v1.22 (Nova Deck Layout Fix). Added
v1.22 objective to PROJECT.md (NFR milestone, 7 phases, tags on
v1.21.x line). Added REQ-254..262 to REQUIREMENTS.md covering theme
CSS (padding, overflow, image rules, title chrome), render scripts
(delete render_deck.sh, pin versions, 2x scale), mermaid re-layout
(LR + 2-row wrap), deck content (trim/split 8 overflowing slides),
and re-render + layout/aspect-ratio tests.

Root cause (per investigation): nova-sp-theme.css has zero section
padding (declares /* @theme nova-sp */ as a comment, not the @theme
directive; does not @import Marp default theme). Combined with
overflow:hidden, blunt img max-height:320px, header+footer chrome on
every slide, and two P5 diagrams with extreme aspect ratios (13.52x
and 0.63x), 8 of 19 slides overflow. NOT a P5 regression — theme CSS
byte-identical P3->P5; P5 denser content made pre-existing flaws
visible.

---ci---
project: acdl
phase: 0
milestone: v1.22
status: specify
---/ci---
2026-08-11 19:18:09 +00:00
Jon Chery ce751313a7 docs(milestone): complete v1.21 — Nova Deck Refinement & Pipeline Hardening
acdl-ci / Lint (push) Successful in 10s
acdl-ci / Test (push) Failing after 24s
acdl-ci / Platform check-only (offline) (push) Successful in 22s
Nova Slides Render / render (push) Failing after 56s
9 requirements complete (REQ-245..253):
- P1: strategic-docs — thesis rename + NORTH_STAR objectives + RACI
  restructure (REQ-246,247)
- P2: slides source-of-truth — rename + restructure + rewrite (REQ-245,
  248,249,252)
- P3: marp deck + talking points + README + theme CSS fix (REQ-251,252)
- P4: pipeline hardening — Checkov before plan, Wiz-or-Checkov on plan
  (REQ-250)
- P5: render + verify — new diagrams, HTML, PPTX, 686 tests pass (REQ-253)
- P6: final review + ship (this commit)

Deck renamed nova-no-humans-platform* -> nova-autonomous-cloud-delivery*.
Title: 'Nova — The Autonomous Cloud Delivery Platform'. 4-beat arc
(Problem -> Solution -> Proof -> Roadmap + Ask). 18 main + 1 appendix
slides. All 33 review notes applied. Tags on v1.20.x line (v1.20.0 P0 ->
v1.20.6 P6 final = milestone release).

---ci---
project: acdl
phase: 6
milestone: v1.21
status: complete
phase_role: final
requirements:
  covered: [REQ-245,REQ-246,REQ-247,REQ-248,REQ-249,REQ-250,REQ-251,REQ-252,REQ-253]
  partial: []
---/ci---
v1.20.6
2026-08-11 14:18:38 +00:00
Jon Chery 5b5e24d535 docs(P5): render + verify — new diagrams, HTML, PPTX, tests pass (REQ-253)
Nova Slides Render / render (push) Failing after 59s
New mermaid diagrams (mmd + png):
- platform-pipeline.mmd/.png — slide 6 (two-stage policy scan: Checkov
  static → plan → Wiz-or-Checkov → confidence → stage gate → apply)
- telemetry-live-ops.mmd/.png — slide 9 (CloudEvents → cold store →
  PowerBI → live ops dashboard)

Re-rendered artifacts:
- nova-autonomous-cloud-delivery.html (S&P-themed, self-contained)
- nova-autonomous-cloud-delivery.pptx (20 slides: title + 18 main + 1
  appendix; 21 media files embedded)

Verify:
- tests/test_slides_pipeline.py: 23 pass (18 main + 1 appendix slides; no
  badges; no version in footer/title; no D-###/REQ-###/.py paths in
  audience slides; old deck files removed; render script default renamed)
- tests/test_pipeline_contract.py: 10 stages (checkov-static + runtime-
  policy-scan replace old checkov stage)
- tests/test_no_forge_mentions.py: pass
- tests/test_regression_cap023_024.py: CAP-024 deck structure verified
  (18-19 slides, recap+ask, per-slide benefits)
- Full suite: 686 pass + 1 pre-existing attestation failure
  (NOVA_ATTESTATION_SIGNING_KEY_ID unset; fails on main without v1.21
  changes too)
- run_platform.sh --check-only: exit 0

---ci---
project: acdl
phase: 5
milestone: v1.21
status: execute
phase_role: execution
---/ci---
v1.20.5
2026-08-11 14:17:06 +00:00
Jon Chery 85c500e45a feat(P4): pipeline hardening — Checkov before plan, Wiz-or-Checkov on plan (REQ-250)
Nova Slides Render / render (push) Failing after 1m1s
Two-stage policy scan per item 20:

1. Checkov on static code BEFORE terraform plan (fail-fast, quick dev
   feedback). Added to run_platform.sh Step 3c + run_codegen.sh Step 3c
   (runs on the authored TF dir before plan, using --framework terraform).

2. Runtime policy scan on the plan AFTER terraform plan: Wiz when
   configured (WIZ_API_TOKEN + WIZ_API_URL), else Checkov against the
   plan as a drop-in replacement (--framework terraform_plan). Wiz and
   Checkov are NEVER both run on the plan. Replaces the old single
   Checkov-on-main.tf step in run_platform.sh Step 5 + run_postapply.sh
   Step 5.

pipelines/contract.yml: stage list updated — 'checkov' stage replaced by
'checkov-static' (before terraform-plan) + 'runtime-policy-scan' (after
terraform-plan). 9 stages → 10 stages. Header comment updated.

adapters/wiz/wiz_adapter.py: add --plan mode CLI (fetch_and_adapt_plan)
for scanning a terraform plan; backward-compat with the positional
<wiz_issues.json> <contract-id> mode. is_configured() gates the Wiz path.

Tests: test_pipeline_contract.py (9 → 10 stages, new stage names);
test_contract_resolver.py (rename test, assert checkov-static +
runtime-policy-scan present, old 'checkov' gone). Full suite: 685 pass
+ 1 pre-existing attestation failure (NOVA_ATTESTATION_SIGNING_KEY_ID
unset, unrelated to v1.21, fails on main without these changes too).

---ci---
project: acdl
phase: 4
milestone: v1.21
status: execute
phase_role: execution
---/ci---
v1.20.4
2026-08-11 14:10:42 +00:00
Jon Chery 301aa2c8d8 docs(P3): marp deck + talking points + README + theme CSS + tests (REQ-245,251,252)
Nova Slides Render / render (push) Failing after 58s
Marp deck (nova-autonomous-cloud-delivery-marp.md): synthesize from updated
source-of-truth; 18 main + 1 appendix slides; frontmatter — title 'Nova —
The Autonomous Cloud Delivery Platform', footer without version + without
'Act %{page}/5', title-slide subtitle 'Product Development & Citizen
Developer Overview'; no badges; embedded PNGs.

Talking points (nova-autonomous-cloud-delivery-talking-points.md):
re-distilled to 18-slide + A1 structure.

README.md: update deck title, audience, slide count (18 main + 1 appendix),
directory layout, remove badge docs, update deck table + render commands +
filenames. Document the v1.21 rename + restructure.

Theme CSS (nova-sp-theme.css): fix Appendix A1 table readability — tables
now have explicit white body + black text on any slide background
(including dark/title slides). Item 32.

Tests (test_slides_pipeline.py): add v1.21 assertions — no badges; no
version in footer/title slide; 18 main + 1 appendix slides; no D-###/REQ-
###/.py paths in audience-facing Marp deck or source slide body; old deck
files removed; render script default renamed; README references new deck
name. Update deck path in test_regression_cap023_024.py +
core/regression_verify.py CAP-024 (filename + 18-19 slide range, drop 'Arc
Preview' check per item 3).

attach_release_asset.py: usage example filename updated.

---ci---
project: acdl
phase: 3
milestone: v1.21
status: execute
phase_role: execution
---/ci---
v1.20.3
2026-08-11 14:03:06 +00:00
Jon Chery 707a7dbe9b docs(P2): slides source-of-truth — rename + restructure + rewrite (REQ-245,248,249,252)
Nova Slides Render / render (push) Failing after 1m3s
Rename all 5 deck files nova-no-humans-platform* →
nova-autonomous-cloud-delivery* (source, marp, html, pptx, talking-points).

Rewrite the source of truth to 18 main + 1 appendix slides, 4-beat arc
(Problem → Solution → Proof → Roadmap + Ask). All 33 review notes applied:

- Slide 1 'The Problem' (items 3,4,5,7,9): broader problem framing — devs
  writing terraform, destructive changes, AI-era 0-day pace, bandwidth
  gaps, tribal knowledge/rockstar operator. No arc. No '18 capabilities
  verified'. Not 'humans are the problem'.
- Slide 2 'Nova's Vision' (item 11): 'invisible' → 'visible' (operations
  become visible — recurring theme); polish for technical audience.
- Slide 3 'Strategic Objectives + Anti-Goals' (items 12,13,14,15,16,17,
  18): only Obj+Anti-Goals; provable trust = deterministic scripts
  (functions without AI); ROI = 4 CTO metrics (Lead Time, Vuln Count,
  MTTR, Spend); drop anti-goals 1,4,5; add 'not upstream dev platform',
  'not PDLC replacement'; obj #4 = integration objective; reword benefit.
- Slide 4 'Scope' (item 29): moved up, refined.
- Slide 5 'RACI' (item 30): moved up; add Quality Engineering column;
  reassign A from Platform → QE/SRE; rename Release Mgmt → SRE; split
  release attestation (Quality attestation + Production readiness).
- Slide 6 'Pipeline' (item 20): Checkov on static code before plan;
  Wiz-or-Checkov on plan; never both.
- Slide 7 'Decision Ledger' (items 21,22): drop D-121/122/132; 'AI
  decisions = automated decisions'; value = immutable/queryable/
  accountable, not sqlite/hash-chain.
- Slide 8 'Attestation Matrix' (item 23): drop bullets below table; add
  Description column per concern; drop 'operator-supplied' label.
- Slide 9 'Telemetry & Live Ops' (item 25): expand on value; drop
  D-120/125/126; expand on PowerBI live ops dashboard.
- Slide 10 'Decision Ledger + Attestation Coverage' (item 27):
  mandatory by design; no prod change without either; queryable for
  auditing; full traceability.
- Slide 11 'Cost & ROI': minor polish; 4 CTO metrics referenced.
- Slide 12 'What's Deferred' (items 10,19): remove all D-IDs; plain-
  language blockers; no status column.
- Slide 13 'Roadmap to the North Star' (items 10,19): drop D-IDs; no
  status column; timeframe-based roadmap.
- Slide 14 '12-Month Product Roadmap' (item 24): drop planned badges.
- Slide 15 'Quarter-by-Quarter' (item 24): drop badges.
- Slide 16 'Atelier (1/2)' (item 31): split — Skills + MCP server overview.
- Slide 17 'Atelier (2/2)' (item 31): split — agentic validation beyond
  deterministic scanners + vendoring.
- Slide 18 'Recap + Ask': refresh recap to 4-beat structure.
- Appendix A1 'Metrics Glossary' (item 32): kept; theme CSS fix in P3.
- Global (items 6,10,24,2): tech-leadership benefits; no D-###/REQ-###/
  .py paths in audience slides; no badges; no version in footer; final
  'less is more' prose pass.

Removed: old Slide 10 (Capability Health), old Slide 12 (Zero-Touch),
old Appendix A2 (Operating Model & Cost). Slide 5 first table removed.

---ci---
project: acdl
phase: 2
milestone: v1.21
status: execute
phase_role: execution
---/ci---
v1.20.2
2026-08-11 13:59:30 +00:00
Jon Chery e7866fda84 docs(P1): strategic docs — thesis rename + NORTH_STAR objectives + RACI restructure
Nova Slides Render / render (push) Failing after 1m4s
AUTONOMY_THESIS.md (git mv from NO_HUMANS_THESIS.md): reframe from
'removing humans' to 'autonomy in operations, human at stage gates'.
Drop D-### citations + internal file paths; keep anti-claims, reworded.
Anti-claim #1 now: 'decisions are NOT made by an LLM — deterministic
scripts calculate a score; the platform functions without AI'.

NORTH_STAR.md:
- Vision: 'invisible' → 'visible' (operations become visible — recurring
  theme); polish for technical audience (security, remediation velocity,
  reliability, lead time).
- Objective #2: 'provable trust in AI decisions' → 'provable trust in
  automated decisions' (deterministic scripts calculate a score;
  platform functions without AI).
- Objective #3: four CTO-grade metrics (Lead Time PR→Prod, Infra Vuln
  Count trend, MTTR, Cloud Spend Reduction) → all flow into PowerBI.
- Objective #4: 'default substrate for agentic consumption' → integrate
  with externally owned PDLC/SDLC/Agentic/Citizen Developer platforms
  regardless of source; Nova provides skills + MCP endpoints; all prod
  intents go through the same controls + quality gates.
- Anti-goals: drop #1 (hyperscaler competitor), #4 (legacy untagged),
  #5 (sold to operators). Add: 'not an upstream development platform',
  'not a replacement for the PDLC'. Reword #3 (no 'removes humans').

docs/raci.md: 3 roles → 4 roles. Add Quality Engineering column. Rename
Release Management → SRE. Split release attestation into Quality
attestation (QA) + Production readiness (SRE). Platform no longer holds
A for attestation — reassigned to QE/SRE.

docs/scope.md: add integration framing (skills + MCP endpoints, all
sources go through same controls).

Render scripts: default deck name → nova-autonomous-cloud-delivery.
ONBOARDING + terraform/onboarding: 'no-humans' → 'autonomous'.

---ci---
project: acdl
phase: 1
milestone: v1.21
status: execute
phase_role: execution
---/ci---
v1.20.1
2026-08-11 13:55:53 +00:00
Jon Chery 2efed26bb6 docs(P00): create phase plans — v1.21 (7 phases)
Nova Slides Render / render (push) Failing after 1m5s
PLAN.md v1.21 section: 5 execution phases + 1 final. Wave 1 parallelizable
(P1 strategic-docs, P2 slides, P4 pipeline-hardening — zero file overlap),
Wave 2 (P3 marp+README), Wave 3 (P5 render+verify), Wave 4 (P6 ship).
NFR milestone → tags on v1.20.x line (v1.20.0 P0 → v1.20.6 P6 final).

CLARIFY + RESEARCH minimal at full autonomy: domain is known, requirements
confirmed with user (deck title = Autonomous Cloud Delivery Platform;
thesis = AUTONOMY_THESIS.md; slide 1 = Problem→Solution→Proof→Roadmap+Ask;
Atelier split into 2 slides; CTO metrics = Lead Time + Vuln Trend + MTTR +
Spend; files renamed to nova-autonomous-cloud-delivery*).

---ci---
project: acdl
phase: 0
milestone: v1.21
status: plan
---/ci---
v1.20.0
2026-08-11 13:52:40 +00:00
Jon Chery 5c07e29b90 docs(P00): validate specification — v1.21 milestone (REQ-245..253)
Add v1.21 requirements section (Nova Deck Refinement & Pipeline Hardening):
REQ-245 deck rename + restructure; REQ-246 thesis rename + reframe;
REQ-247 strategic-docs sync (integration objective); REQ-248 RACI
restructure (QE + SRE); REQ-249 Atelier split; REQ-250 pipeline hardening
(Checkov before plan, Wiz-or-Checkov on plan); REQ-251 theme CSS fix +
footer cleanup; REQ-252 global citation/badge/version removal; REQ-253
render + verify + ship.

Set active_milestone=v1.21 in config.json. Sync PROJECT.md strategic-
direction pillar for the integration objective (Objective #4 reframed),
deterministic-trust reword (Objective #2), CTO-grade ROI metrics
(Objective #3), and anti-goal updates.

---ci---
project: acdl
phase: 0
milestone: v1.21
status: specify
---/ci---
2026-08-11 13:51:55 +00:00
Jon Chery aa868c97ef docs(milestone): complete v1.20 — Consumer Cleanup + Transparent Terraform + Slide Pipeline
15 requirements complete (REQ-230..244):
- P1: gitea/gitlab removed from all synced files (REQ-230,231,232)
- P2: S&P theme CSS + render_slides.sh + CI workflow + tests (REQ-239..243)
- P3: 12-month product roadmap slides added to deck (REQ-244)
- P4: run_platform.sh split + var.enabled feature flags + stale path fix (REQ-233..238)

---ci---
project: acdl
phase: 5
milestone: v1.20
status: complete
phase_role: final
requirements:
  covered: [REQ-230,REQ-231,REQ-232,REQ-233,REQ-234,REQ-235,REQ-236,REQ-237,REQ-238,REQ-239,REQ-240,REQ-241,REQ-242,REQ-243,REQ-244]
  partial: []
---/ci---
2026-08-07 18:54:19 +00:00
Jon Chery e4a9915891 docs(P5): checkpoint — verify stage
---ci---
project: acdl
phase: 5
milestone: v1.20
status: verify
phase_role: final
---/ci---
2026-08-07 18:50:00 +00:00
Jon Chery 0ca383dae6 feat(P4): transparent terraform + feature flags + run_platform.sh split (REQ-233..238)
Create run_codegen.sh (pre-TF: env check, validate, resolve, adapt).
Create run_postapply.sh (post-TF: Checkov, confidence, HITL, outbox, SSM, uptime).
Add variable 'enabled' (bool, default true) + count=var.enabled?1:0 to all 12
L1 modules (alb, cloudfront, ecr, ecs-cluster, ecs-service, iam-role, kms-key,
rds, s3, uptime, vpc, waf). Fix all cross-resource references with [0] indexing.
Update interface.json for all modules to declare 'enabled' input.
Fix stale artifact path /tmp/acdl_platform_run_v18 → /tmp/nova_platform_run (REQ-238).
run_platform.sh remains as backward-compat shim for local-dev usage.

---ci---
project: acdl
phase: 4
milestone: v1.20
status: execute
requirements: [REQ-233, REQ-234, REQ-235, REQ-236, REQ-237, REQ-238]
---/ci---
2026-08-07 18:49:56 +00:00
Jon Chery ed5ea90654 feat(P3): add 12-month product roadmap slides (REQ-244)
Slide 20 — 12-Month Product Roadmap: 4-quarter arc (Pilot Activation →
Provable Trust → Compounding ROI → Agentic Substrate).
Slide 21 — Quarter-by-Quarter Outcomes: detail table (theme, deliverable,
target metric, strategic-objective grounding).
Both grounded in NORTH_STAR's 4 strategic objectives + deferred-metric
candidate milestones. Distinct from Slide 15's deferred-metric unblock paths.
Matching talking-points sections added. HTML + PPTX re-rendered via S&P theme.

---ci---
project: acdl
phase: 3
milestone: v1.20
status: execute
requirements: [REQ-244]
---/ci---
2026-08-07 18:28:01 +00:00
Jon Chery 2273009b95 feat(P2): dedicated S&P theme + render pipeline + CI workflow (REQ-239..243)
Create nova-sp-theme.css — S&P Global Energy Marp theme (Red/Black/White
palette applied to all slide chrome: backgrounds, headers/footers, pagination,
tables, blockquotes, code blocks).
Create render_slides.sh — end-to-end pipeline: mermaid PNGs + Marp HTML/PPTX.
Create slides.yml CI workflow — auto-renders on docs/presentations/ changes.
Create test_slides_pipeline.py — 12 tests (theme CSS, Marp frontmatter, script,
workflow, .mmd/.png parity, README retired-deck cleanup).
Update Marp frontmatter: theme: nova-sp + footer v1.20.
Fix presentations/README.md directory layout (remove retired decks).
Re-render HTML + PPTX with S&P theme.

---ci---
project: acdl
phase: 2
milestone: v1.20
status: execute
requirements: [REQ-239, REQ-240, REQ-241, REQ-242, REQ-243]
---/ci---
2026-08-07 18:26:51 +00:00
Jon Chery 0d2cbdb423 feat(P1): remove gitea/gitlab from synced files + simplify docs (REQ-230,231,232)
Genericize forge-detection code: gitea→forge/generic_forge, GITEA_ACTOR→FORGE_ACTOR.
Drop .gitea byte-identity test assertions (keep GitHub-side + contract conformance).
Add test_no_forge_mentions.py guard test (REQ-230).
Delete completed migration docs (NOVA_MIGRATION.md, NOVA_AWS_MIGRATION.md).
Move NO_HUMANS_THESIS.md to .ciagent/ (internal artifact).
Strip ciagent-internal provenance from synced docs (REQ-/D-/P-/CAP- IDs,
milestone headers, .ciagent/PROJECT.md citations).
Trim README.md (reusable deploy section, local key rotation paragraph).
Fix version-tag drift (@v1.13→@v1.19, acdl/→nova/).

---ci---
project: acdl
phase: 1
milestone: v1.20
status: execute
requirements: [REQ-230, REQ-231, REQ-232]
---/ci---
2026-08-07 18:20:29 +00:00
Jon Chery b418d429b5 docs(ship): P0 complete — v1.20 pre-execution
---ci---
project: acdl
phase: 0
milestone: v1.20
status: complete
phase_role: pre_execution
---/ci---
2026-08-07 18:02:30 +00:00
Jon Chery dcba380b52 docs(P00): create phase plans — v1.20 (5 phases)
---ci---
project: acdl
phase: 0
milestone: v1.20
status: plan
---/ci---
2026-08-07 18:02:27 +00:00
Jon Chery f0bc3be92c docs(P00): validate specification — v1.20 milestone (REQ-230..244)
---ci---
project: acdl
phase: 0
milestone: v1.20
status: specify
---/ci---
2026-08-07 18:02:23 +00:00
Jon Chery 0b79b16715 fix(P2): add metrics domain to sync_to_nova.sh — consumer export views (REQ-229)
acdl-ci / Lint (push) Successful in 9s
acdl-ci / Test (push) Failing after 22s
acdl-ci / Platform check-only (offline) (push) Successful in 23s
The metrics/ export views (README.md, TRUST_SNAPSHOT.md, powerbi/) are
consumer-facing but fell outside the original 13 domains, so the first nova
release left them untracked. Adds a 14th domain 'metrics' between docs and
workflows. Updates TestSyncToNovaScript domain-order assertion to 14.

---ci---
project: acdl
phase: 2
milestone: v1.19
status: complete
phase_role: final
---/ci---
2026-08-06 15:47:25 +00:00