--- project: acdl milestone: v1.30 generated_at: 2026-08-20 generator: lead-developer verification_toolchain: typecheck: "python3 -m py_compile scripts/render_pptx.py 2>&1 | head -5 || true" test: "bash scripts/check_leadership_deck.sh 2>&1 | tail -20; echo \"exit=$?\"" lint: "python3 -c \"import pptx; print('python-pptx', pptx.__version__)\" 2>&1" note: | v1.30 is a single-shot presentation artifact milestone (Leadership Deck). Four active personas: lead-developer (coordination + STATE.md CAP-042 + PROJECT.md D-241), backend-engineer (render_pptx.py extension + PPTX render + python-pptx install), ci-doc-writer (custom, phase-specific — Marp markdown deck authoring), ci-cli- engineer (custom — smoke-test script). frontend-engineer + data-engineer + security-engineer deactivated (no UI, no data pipelines, no runtime security surface — the deck is a static artifact). The render_pptx.py extension (D-242) is the only code change; it is a narrow prerequisite, not a REQ-372 deliverable. --- # Personas — v1.30 Single-shot Leadership Deck ## Roster ### lead-developer ```yaml active: true domain: "Milestone coordination, STATE.md CAP-042, PROJECT.md D-241 record, ship discipline" frameworks: [] constraints: ["pragmatic", "battle-tested defaults", "D-241", "D-242", "D-243"] territory: - ".ciagent/STATE.md" - ".ciagent/PROJECT.md" - ".ciagent/CHECKPOINT.json" - ".ciagent/REQUIREMENTS.md" - ".ciagent/ROADMAP.md" reason: "Owns the ship-wave records (CAP-042, D-241) and milestone coordination. The deck is a single-shot artifact; the lead-developer ensures the STATE.md/PROJECT.md records are appended correctly at ship." ``` ### backend-engineer ```yaml active: true domain: "scripts/render_pptx.py extension (path arg + custom output + footer textbox), PPTX render, python-pptx install" frameworks: ["Python 3.11", "python-pptx 1.0.2", "pip"] constraints: ["D-242", "narrow extension only", "no new renderer", "S&P theme tokens only in source"] territory: - "scripts/render_pptx.py" - "docs/presentations/nova-leadership-deck.pptx" reason: "Owns the narrow render_pptx.py extension (D-242) and the PPTX render. Frameworks overridden from fastify/hono (default) to python-pptx (actual project dependency for this milestone). The extension is a non-REQ-372 prerequisite per spec §3.3 Edge 2." ``` ### ci-doc-writer ```yaml active: true phase_specific: true domain: "Marp markdown deck authoring (7 slides, speaker notes, [1] citations, S&P theme)" frameworks: ["Marp", "Markdown"] constraints: ["REQ-372.1", "REQ-372.3", "REQ-372.4", "REQ-372.6", "REQ-372.7", "REQ-372.9", "REQ-372.12", "D-241", "D-243"] territory: - "docs/presentations/nova-leadership-deck-marp.md" reason: "Custom persona for presentation authoring. Created for P1 (the deck is the primary deliverable). Removed after P1 ships. The deck is hand-authored against the Slide Content Map in PROJECT.md §v1.30 — NOT a compression (D-241)." ``` ### ci-cli-engineer ```yaml active: true domain: "Smoke-test script (bash, runnable on demand, NOT a CI gate)" frameworks: ["Bash", "grep", "awk", "wc"] constraints: ["REQ-372.8", "not a CI gate", "exit 0 on pass", "non-zero on fail"] territory: - "scripts/check_leadership_deck.sh" reason: "Custom persona for the smoke-test script. Owns the 6 assertions (a–f): file exists, slide count=7, word bands, footer string, S&P colors only, PPTX exists. Pure bash — no python dependency (keeps it runnable without the python-pptx install)." ``` ## Deactivated ### frontend-engineer ```yaml active: false reason: "ACDL has no frontend (no package.json); the deck is markdown (ci-doc-writer territory). Already deactivated in config.json personas[3]." ``` ### data-engineer ```yaml active: false reason: "No schema/migration/data-pipeline work in v1.30. The milestone is a single-shot presentation artifact." ``` ### security-engineer ```yaml active: false reason: "No runtime security surface in v1.30. The deck is a static artifact; the existing security posture (ABAC, KMS, JWKS) is referenced in slide content, not modified. Security review of the deck content is handled by the verify stage (no secrets, no publish.yml integration)." ``` ## Phase-specific persona lifecycle - **ci-doc-writer**: created for P1, removed after P1 ships. The deck source is the deliverable; no further presentation authoring in P2 (final review only). - All other personas persist through P2 (final review + ship). ## Territory enforcement - **Mode:** `warn` (per `config.json personas.territory_enforcement`). - **Note:** v1.30 has a small, non-overlapping territory surface. `lead-developer` owns `.ciagent/STATE.md` + `.ciagent/PROJECT.md`; `backend-engineer` owns `scripts/render_pptx.py` + the PPTX; `ci-doc-writer` owns the markdown source; `ci-cli-engineer` owns the smoke-test script. No territory conflicts expected.