plan.md — AI-Native SDLC board slide, round 8 (8/10 → 9.5/10), 2026-09-19
One animated slide, dark and light .pptx + .png + .gif, and a 3–5 minute narrated .mp4, for a
Fortune-500 executive committee. Round 7 is built green in both themes (tmp/render/round7/). The
presenter's standing brief for this round: position, alignment, size only; keep the tested deliverables
on the canvas (intent.md, spec.md, CLAUDE.md, Models, Agents, Skills, Tools, MCPs, Memory); a
stronger title; the six records rewritten in the presenter's words so each names the components and deliverables
that produce it; a bigger human gate; the presenter's own voice only once the bar is met.
0. The presenter's brief — every message this session, and where each lands
| # | Presenter (verbatim intent, condensed) | Status → where |
|---|---|---|
| 1 | /goal F0–F6: notes pane too big · less is more, tags beside their figure, SDLC on screen at entrance · clone the SDLC panel · clone the ADLC panel · title = the governed control plane around the agents, not the coding agent · inner orbit = the adlc.oceansoft.io hub + playbook loop · dark AND light · ~50 % of the slide for the Claude orbit | done r4–r7 (F0 scrub.py zoom fix; rectangular loops; hub from McpCapabilityOrbit; both themes); title → #28 |
| 2 | remove "DECIDE…" and "Not measured…" | done r4 (notes only) |
| 3 | "deliver this content to c-suite, are you sure?" (the review-findings lines) | done r4 (off canvas; one labelled sentence in notes) |
| 4 | Claude / Claude Code / Anthropic / Copilot / 5W1H / what_if_missing / business_value / critical_thinking are a generative scaffold, not a customer taxonomy | done: ladder step 8 fails closed on them; rule line in executive-content-scaffold.md |
| 5 | "Numbers 1–6 … Moving dots: agents move it" is noise | done r4 (markers and note removed) |
| 6 | content/context & elegant UX/UI for the executive audience, not for agents (×2) | done: business words, Title Case, panel wording; kept r8 |
| 7 | adlc-framework/docs = the hub's source | done r4 (tokens read from the component source, not a screenshot) |
| 8 | /compact — focus on RQs/feedback and real working deliverables | this plan |
| 9 | "reduce the width of 2 orbits… position SDLC / ADLC / ADLC / SDLC" | done r5–r7 (one column per side) |
| 10 | own voice via ELEVENLABS_API_KEY / ELEVENLABS_VOICE_ID in .env.secrets | wired (TTS_ENGINE=elevenlabs); r8: only at ≥ 9.5 (#28) → §3 |
| 11 | "width should the same size; consistent x-axis & width" | done r7 (BOX_W 2.00 everywhere, one x per column) |
| 12 | "reduce the width of 3 orbits … SDLC / ADLC / Claude / Claude / ADLC / SDLC; optimise height. Agree or not, why + what-if" | answered §1c (agree in part; stack offered as round 9) |
| 13 | "smaller circle for Claude" | 1.40 → 1.00 (r6) → 0.80 (r8) → §2 #1 |
| 14 | tag bars "shorter; the same size" | r8 → §2 #5 |
| 15 | "missing important: intent.md spec.md CLAUDE.md … Models Agents Skills Tools MCPs Memory" | done r6/r7 (sublines + pill ring); r8: pills by relevance → §1b |
| 16 | "using Title Case label/term" | done r7 |
| 17 | show the key deliverables along the Claude orbit; rename "PRODUCTION SIGNAL" | done r6 ("Production Feedback"); kept |
| 18 | "1-slide with 2.5 (to max 5 mins) .mp4" | §3 (180–300 s, verified from the muxed file) |
| 19 | "no … latest code/ppt is low-quality" (six-box grid mock-up) | grid rejected; r7 clean-up; §1c |
| 20 | "Title: something like ADLC with Governed Control Plane Around the Agents, on top of the Coding Agent" | r7 title; superseded by #28 |
| 21 | "just improve to reach 8/10 → 9.5/10 with position, alignment, size and show the deliverables" | §2 — the whole of round 8 |
| 22 | "never change the tested code/deliverables" | §2 is position/alignment/size; the only string edits are the two sublines that wrap to a third line and the hub tag's centre line (#14), each ≤ the measured width |
| 23 | "Title: … → better/impressive title as key message for C-suite" | superseded by #28 |
| 24 | "good. Just improve the correct positioning of Models Agents Skills Tools MCPs Memory in correlation with Intent, Specification … Are you really sure?" | §1b (one pill per record's spoke; honest: our design claim, one notes sentence, presenter may reorder) |
| 25 | "autonomously deliver target 9.5/10 final .pptx with ~3 to 5 minutes .mp4 … 6 stages (Plan, Design, Build, Test, Deploy, Maintain) + ADLC and Claude orbit" | §4; the six SDLC boxes keep panel-1 wording, which maps 1:1 to Plan / Design / Build / Test / Deploy / Maintain (playbook extract, stage lines) — the notes say so |
| 26 | "simplify/standardise as a professional plan.md … for the C-suite to reproduce (light & dark, .png/.gif, 3–5 min .mp4)" | this file + tracked $G/ai-native-sdlc/plan.md → §5 |
| 27 | "also reflect HITL/C-suite RQs/feedbacks/comments across this session" | this table |
| 28 | plan review: title = "ADLC — Governed Control Plane Around Every Specialist Agent"; bigger/clearer HITL gate icon (the human gate is the important control in ADLC); presenter's voice ONLY at ≥ 9.5 to save quota | §1a · §2 #7 · §3 |
| 29 | plan review, pill mapping: keep ~/Desktop/claude-components.png (ring unchanged); six cards rewritten in the presenter's words — file name as bold title, three lines each (intent.md · what to build · Outcomes, Constraints … Approval & Deploy · Hooks, Tools/MCPs, Rules · CI/CD with HITL Approval) | §1b · §2 #2–#4, #10 |
| 30 | plan review: keep panel-1 SDLC wording; ~/Desktop/adlc-layout.png "may make sense, why + value + what if" | §1c (taller hub, corner tags; stack still not taken) |
| 31 | plan review: the CFO's open item — "notes say it is decided in the room" | §2 #11 (one neutral sentence, no numbers) |
| — | standing constraints from earlier sessions: git is HITL-only (list files for git add); customise the spec, never the .pptx; no rm -rf; no new vendor icon downloads; no role names or hooks on canvas/notes/narration; TMPDIR on the project volume; secrets only from .env.secrets, never printed or passed as flags; AWS/Azure read-only; never overwrite a deck PowerPoint holds open | all kept |
C-suite seats (agent sittings 4 → 6, weighted 8.16 → 9.04 → 9.27; presenter 6/10 on round 3, 8/10 implied on round 7): CEO — coral meant the vendor, not the plane (pills now dim outline; r8 keeps coral for the governed elements only) · CTO — pills bound to Claude by proximity only (§1b) · CDO — narration header count stale two rounds (§2 build-script check) · CFO — decision paragraph gives no pilot scope, owner or licence basis (open, presenter's to state; never invented) · CSO — gate bar same weight as the rail, coral pills read as governed (§2 #7; dim pills).
1. Decisions (recommended; the presenter overrules by editing this file)
1a. Title — the presenter's wording (2026-09-19, plan review)
ADLC — Governed Control Plane Around Every Specialist Agent (60 chars, one line at 19 pt; sourced to the
presenter's plan-review message, transcribed into evidence/hitl-feedback-2026-09-19.md).
1b. Components ↔ records — the presenter's answer (plan review, 2026-09-19)
The pill ring stays exactly as the presenter's reference ~/Desktop/claude-components.png: Memory (top-left),
Models (top-right), MCPs (left), Agents (right), Tools (bottom-left), Skills (bottom-right), between the spokes,
dim outline (round 7). The relevance mapping is carried in words on the six cards, three lines each, in the
presenter's wording (file name in the title: bold name, regular .md; no duplicated file name on the card):
| Card title (line 1) | Line 2 | Line 3 |
|---|---|---|
| intent.md | • what to build | • Outcomes, Constraints |
| spec.md | • Design & Approach | • Spec-Kit & Kiro |
| plan.md | • Implementation Plan | • CLAUDE.md, Agents, Skills |
| Code + Tests | • Evals & Feedback Loop | • Deliverables from plan.md |
| Approval & Deploy | • Hooks, Tools/MCPs, Rules | • CI/CD with HITL Approval |
| Production Feedback | • Incidents & Metrics | • Create/Upgrade Intent |
Consequences: hooks? leaves the banned-jargon grep (presenter's direction, like MCP on 2026-09-19); the
narration expands HITL once as "human-in-the-loop"; the file names are the real ones (intent.md, lower case,
as the file exists — the presenter typed Intent.md once and spec.md / plan.md lower case). Every new string
is sourced to the plan-review message transcribed into evidence/hitl-feedback-2026-09-19.md.
1c. Layout — the presenter's ~/Desktop/adlc-layout.png: why it makes sense, its value, what-if
The picture pastes a taller hub (three-line cards, Intent directly under Capture Intent, Code + Tests directly above Continuous Evaluations) into the round-7 frame, pill ring unchanged.
- Why it makes sense. The hub is the argument. Three-line cards let each record say what it is for AND which components and deliverables produce it, so the relevance question ("which tool for which stage") is answered on the canvas in words, not by pill proximity — the round-6 chief-technology seat's deduction closed without moving a pill. Height is the one dimension round 7 leaves idle inside the agentic loop.
- Value. A CTO or CDO reads the control plane without narration; the six components stay one visual unit ("Claude and its parts", inside the ring) and the six records another (governed, coral) — the figure-ground the title depends on.
- What-if. Three lines need 0.72 in cards; the interior between Capture Intent and Continuous Evaluations is 3.54 in, and card + pill + disc + pill + card with gaps is 3.36 in — 0.18 in spare, so every gap is set by number and checked by eye (the layout gate cannot see a wrap). The two inner tags lose their pockets beside the Intent card; they move to the free corners of the outer band (ADLC tag bottom-left, hub tag bottom-right, quote top-right, SDLC tag top-left), still beside their loops and still revealed on their own click. The six-box stack per side is not taken (round-6 cold read: eighteen equal boxes lose figure-ground; coral arrows cross the rail).
2. Round-8 changes — position, alignment, size (builder $G/ai-native-sdlc/build_slide.py)
$G = aws-networking/docs/content/assets/diagrams/_generator/. Every number below is a constant already in the file.
| # | Item (presenter's ask / sitting-6 finding) | Change |
|---|---|---|
| 1 | smaller circle for Claude | HUB["disc"] 1.00 → 0.80; mark 0.38 → 0.30 at CY − 0.27; "Claude" 9 pt under it |
| 2 | pill ring as claude-components.png | order and angles unchanged (comp_angs −60…240); comp_ry 0.78 → 0.62 so the top and bottom pills clear the taller cards by ≥ 0.18 in and the disc by ≥ 0.10 in; pill 0.78 × 0.24, dim outline |
| 3 | taller hub, rows aligned | HUB["ch"] 0.56 → 0.72 (three lines: 9.5 pt bold title, two 9 pt bullet lines); HUB["ry"] 1.22 → 1.25 (cards at 2.70 / 3.33 / 4.57 / 5.20; the ±30° cards centred on the ADLC rows); no icon on hub cards (the site's tile has none; the longest line, 27 chars, needs 1.7 in of the 1.9 in text width) |
| 4 | card content (§1b) | HUB["items"] → (title runs, line 2, line 3); hub_card draws three paragraphs, title as two runs (bold name + regular .md) |
| 5 | tags shorter, same size, three lines each; pockets moved (§1c) | all three tag(...) w 2.7 × h 0.62: SDLC (1.85, 1.13) top-left; ADLC (2.95, 6.10) bottom-left; hub (7.75, 6.10) bottom-right, chip key kept; quote → (7.85, 1.20) top-right, one line; label line = bold acronym + regular expansion so 36 chars fit 2.48 in at 9 pt; hub centre line → Six governed records — the audit trail |
| 6 | the a4→a5 dot halts at an invisible bar on click 1 (sitting 6) | reveal adlc_gate on click 1 with its loop; the gate stays on the inner rail into the gates play, lowered to y ≈ 5.35 so the 0.48 in glyph clears the Approval & Deploy card |
| 7 | the human gate is the important control in ADLC — bigger, clearer (presenter, plan review) | glyph 0.26 → 0.42 in on a 0.48 in page-fill disc (rails do not run through it), bar 0.30 → 0.40 in, both gates identical; hub gate glyph 0.36 in outward from the arc so it clears the card above it; weight stays 1.25 pt (one stroke width is a conformance row); notes + narration name it "the human gate (human-in-the-loop approval)" |
| 8 | coral dots park on a card corner | park at 0.30 of the arc instead of 0.20 |
| 9 | title (1a) | spec.title = ADLC — Governed Control Plane Around Every Specialist Agent; sources row → evidence/hitl-feedback-2026-09-19.md (plan-review message transcribed verbatim) |
| 10 | hooks on canvas by the presenter's direction | build_sdlc.sh step 8: BANNED_JARGON loses hooks? (comment cites the message and date); role names and scaffold words stay fail-closed |
| 11 | CFO seat: pilot scope / owner / licence basis | notes "The decision on the table" gains one neutral sentence: "Pilot scope, owner and licence basis are set by the committee on the day." (presenter's choice; no numbers) |
Spec $G/specs/ai-native-sdlc/ai-native-sdlc.yaml: title; tag claude.centre; the six cards' three lines in
canvas:; story n = 3 rewritten to the new card wording (business words; MCPs glossed once as "the connectors
between the agents and the organisation's own systems"; HITL expanded once); decision paragraph + one sentence
(#11). $G/ai-native-sdlc/sources.yaml: re-key every changed string to the plan-review message; strings count
rises from 42 to 48 (six cards × three lines replace six × two) — the narration header states the new count.
Build script $G/build_sdlc.sh: (a) snapshot inputs — copy build_slide.py, the spec, the narration and
sources.yaml into $SDLC_OUT/inputs/ so a review can rebuild what it scored (sitting-6 high finding: "the tree
moved under the review"); (b) step 9 asserts the narration header's "N of N" equals the strings count (stale for
two rounds).
3. Video — 3 to 5 minutes; the presenter's voice ONLY at ≥ 9.5
$G/specs/ai-native-sdlc/ai-native-sdlc.narration.md: scene 3 rewritten around the six verbs of 1b (no
component taxonomy spoken); word budget 430–480 so the presenter's slower ElevenLabs rate lands inside 5:00
(measured on an earlier deck: 289 s in that voice vs 158 s in say for the same 18 scenes).
Every draft cut is built with TTS_ENGINE=say (free). TTS_ENGINE=elevenlabs runs once, on the final deck,
only after the sitting reaches ≥ 9.5 weighted with no seat < 9.0 (presenter: save the limited quota). Keys come
from the gitignored .env.secrets (env only, never a flag, never printed). A GET on the subscription endpoint
returned 401 today (permission scope, not proof of quota); the text-to-speech call is the test; non-200 is fatal
by design → the say cut ships and the report says so. Verify from the muxed file: ffprobe duration =
Σ scenes + 0.18 s gaps, 180 ≤ d ≤ 300; two frames 0.4 s apart inside scene 3 differ; frame at each scene start
matches its named beat.
4. Execution — the ADLC golden prompt sequence (README/prompts/GOLDEN_PROMPT_ADLC_PDCA.md), ultracode → Workflow
- product-owner (read-only, Workflow seat): confirms the need, persona and what "value" means for round 8
(the presenter's §0 rows 21–28; value = the presenter's score reaching 9.5 and a deck the room can reproduce),
and checks §1b's mapping and §1c's answer against the brief →
tmp/b2b-metering/coordination-logs/product-owner-2026-09-19.json. - cloud-architect (read-only, Workflow seat, independent of PO's framing): reviews §2's geometry numbers
against the builder (spoke midpoints, tag widths at 9 pt, gate glyph 0.40 in clearances, disc 0.80) and names
trade-offs rejected →
cloud-architect-2026-09-19.json. - Disagreement check: a judgment-call conflict between PO and CA is surfaced to the presenter (stop condition); a factual conflict ("this string fits 2.48 in") goes to a 3-verifier refute round, counts reported, never a percentage.
- Do (specialist = this session,
aws-architecture-pptxskill): apply §2, §3, §5; build both themes totmp/render/round8/(SDLC_OUT), all 11 ladder steps green per theme; LOOK at both 170 dpi renders and the beat frames; send dark + light PNG and the dark GIF to the presenter, ask for the number. - Check — sitting 8 = the round-6 script with the round-8 paths: five seats (CEO .25 / CTO .25 / CDO .20 /
CFO .15 / CSO .15) + context-free cold read + two-lens verify (reproduce, materiality), cap 12, all agents
READ-ONLY and told to assume the author was over-confident. First write
sitting-6-2026-09-19.jsonfrom the completed round-6 workflow (weighted 9.27; cold read 8.7; 12 verifications failed on the session limit — recorded as unverified). - Act: position/size fixes → round 8b (back to Do, not to Plan); content findings that need the presenter (pilot scope, owner, licence basis — open since round 5) are listed, never invented. Stop after three Check failures on the same gate and escalate.
- Ship when ≥ 9.5 weighted with no seat < 9.0, or report the honest number (below 9.5 the
sayvideo ships, no ElevenLabs call is made): copy the round set topowerpoint/ai-native-sdlc-{dark,light}.{pptx,png,gif,strings.json}+ai-native-sdlc.mp4(+ manifest). PowerPoint holds noai-native-*file today (lsofempty) — verify again immediately before the copy. - Report: outcome; scores (agent sittings 8.16 → 9.04 → 9.27 → round 8; presenter 6/10 on round 3, 8/10
implied on round 7);
git addlist; not verified (PowerPoint title bar, Windows, audio by ear); open presenter items (pilot sentence for the decision paragraph; Anthropic mark permission); tool-routing table.
5. Reproduction — tracked $G/ai-native-sdlc/plan.md (new, for the C-suite's own team to rebuild)
The slide's own three records ship beside it: intent = evidence/hitl-feedback-2026-09-19.md (the brief,
verbatim), spec = specs/ai-native-sdlc/ai-native-sdlc.yaml + .narration.md, plan = this file's §5 as
plan.md. Contents, one page:
| Kind | Component | Used for |
|---|---|---|
| Command | task aws-networking:diagrams:sdlc | build + 11 gates, both themes, PNG + GIF |
| Command | task aws-networking:diagrams:sdlc:video [TTS_ENGINE=elevenlabs] | frames from the deck's own <p:timing>, narration over motion, mp4 + manifest |
| Command | /board-slide-pdca, /eval-deliverables | the PDCA loop; the three review lanes |
| Agent | product-owner → cloud-architect (ADLC order), read-only cold reader | business framing; layout; falsification |
| Skill | aws-architecture-pptx (§10 direct build, timing grammar, type floors) | the only skill for this engine |
| Tools | python-pptx builder, soffice render, ffmpeg/ffprobe, say or ElevenLabs | build, render, video, voice |
| Setting | TMPDIR on the project volume; .env.secrets (gitignored) for the two voice keys; SDLC_OUT per round | disk; secrets; reproducible rounds |
| MCP | none required to build. Not used: awslabs-*, azure, Atlassian, GitHub. Failed to connect, irrelevant: aws-mcp, awslabs-cloudwatch, grafana, microsoft-fabric | — |
Plus: inputs → outputs table, the acceptance gates (§6), and the two things only a person can check.
6. Acceptance criteria — the deck is DONE only when every row is true and evidenced
| # | Criterion (from the presenter's messages, §0) | Evidence that proves it |
|---|---|---|
| A1 | Score ≥ 9.5 weighted, no seat < 9.0 (five seats + cold read + adversarial verify) and the presenter's own number | sitting-8-2026-09-19.json; the presenter's reply |
| A2 | One slide, dark AND light, .pptx + .png + .gif each, byte-identical canvas strings across themes | powerpoint/ai-native-sdlc-{dark,light}.*; diff of the two strings.json empty |
| A3 | Narrated .mp4 between 3:00 and 5:00, motion under the voice, frames match the named beats | ffprobe duration 180–300 s; in-scene frame diff ≠ 0; scene-start frames = entrance00 / beat01 / beat02 |
| A4 | Presenter's voice used only at ≥ 9.5; otherwise say, stated in the manifest and the report | ai-native-sdlc.mp4.manifest.json tts_engine |
| A5 | Title = "ADLC — Governed Control Plane Around Every Specialist Agent", one line | render; strings.json |
| A6 | SDLC loop visible at entrance; click 1 ADLC + its gate; click 2 hub + coral plane marks + hub tag; 3 click groups, 12 motion paths | <p:timing> read back; entrance00 / beat01 / beat02 frames |
| A7 | The nine deliverables on the Claude orbit: intent.md, spec.md, plan.md as card titles, CLAUDE.md on the plan card; Models, Agents, Skills, Tools, MCPs, Memory as the pill ring in the presenter's order (claude-components.png); the six cards carry the presenter's three lines verbatim (§1b) | strings.json ⊇ the 18 card lines + 6 pills; render |
| A8 | One box width (2.00), one x per column; loop boxes 0.56 high, hub cards 0.72 high with the ±30° cards centred on the ADLC rows (± 0.02); disc 0.80; pills ≥ 0.18 in clear of cards and ≥ 0.10 in clear of the disc | geometry read-back from the built deck |
| A9 | No line wraps: loop boxes ≤ 2 lines, every hub card exactly 3 paragraphs on 3 rows, three tags of one size on 3 rows each; quote one line | 170 dpi render inspected (the gate cannot see a wrap); text frames counted |
| A10 | Human gate bigger and clearer: glyph 0.42 in on a 0.48 in disc, both gates identical, no overlap with any card, legible at 50 % downscale; ADLC gate revealed on click 1 | read-back + downscaled crop inspected; timing tree |
| A11 | No role names and no agent-scaffold words on canvas, notes or narration (hooks allowed by the presenter's direction, HITL expanded once in the narration); Title Case labels; no numbers, decision line or review findings on canvas | ladder step 8 green; render |
| A12 | 48 canvas strings, all traced, all cited paths resolve; narration header count = strings count | check_sources.py Untraced: 0; build-script assertion |
| A13 | Ladder green both themes: layout 0 · contrast 0 · media 0 · conformance 0 gaps (written waiver) · notes zoom 100 | build_sdlc.sh output kept in tmp/render/round8/ |
| A14 | Reproducible by the C-suite's own team from the tracked files: inputs snapshot beside outputs, plan.md names the commands, agents, skills, tools, MCPs | tmp/render/round8/inputs/; $G/ai-native-sdlc/plan.md |
| A15 | Nothing overwritten while PowerPoint holds it; nothing committed by the agent; every changed file listed for git add | lsof check before the copy; the report's file list |
| A16 | Open items named, never invented: pilot scope / owner / licence basis (CFO), Anthropic mark permission, PowerPoint title bar and audio by ear (presenter-only checks) | the report |
6b. Verification (both controls, every gate)
- Ladder: layout 0 · contrast 0 · media 0 · conformance 0 gaps (written waiver) · banned words clean (roles,
hooks, scaffold) · notes zoom 100 · sourcesUntraced: 0, all paths resolve · header count = strings count. - Geometry read back from the built deck: pills at the presenter's six positions, clearances as A8; hub cards 2.00 × 0.72 at y 2.70 / 3.33 / 4.57 / 5.20 (±0.02); disc 0.80; tags three paragraphs each, one text box size; every card three rows exactly (render at 170 dpi and look — the gate cannot see a wrap).
- Timing: 3 click groups; 12
animMotion; ADLC gate in click 1;sub_polyassertion holds for both gated paths. - Human gate: both glyphs 0.42 in on a 0.48 in disc, read back from the deck; visible at a 50 % downscale of the 170 dpi render (boardroom distance proxy) — LOOK.
- Video: duration 180–300 s; in-scene motion; scene starts match named frames.
- Only a person can check: PowerPoint title bar (no "- Repaired"), two clicks, notes pane at 100 %, audio by ear.
7. Rules and skills to append (one line each, measured this round)
.claude/rules/diagram-engine-invariants.md §21 · .claude/skills/aws-architecture-pptx/SKILL.md §10.1:
a component pill placed between spokes asserts nothing — place it on the spoke of the record it serves; a
36-character tag label fits 2.5 in at 9 pt only as bold acronym + regular expansion; snapshot the inputs beside
every round's outputs or a review scores a build the tree no longer produces.