Files
acdl/.ciagent/CLARIFY.md
T
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

3.9 KiB

CLARIFY — v1.23 (auto-resolved, full autonomy)

8 ambiguities identified, all auto-resolved at confidence ≥ 0.6. No human escalation (full autonomy). All decisions logged below.

C1 — Speaker notes source for HTML comments (conf 0.95)

Ambiguity: The plain .md has > **Speaker notes:** and > **Transition:** blocks per slide; talking points live in a separate file. Which content goes into the <!-- ... --> comments? Resolution: Extract > **Speaker notes:** and > **Transition:** blocks from the plain .md and embed each slide's as <!-- Speaker notes: ... --> before the next --- separator. Talking points come from talking-points.md (the 3-6 bullets per slide) embedded as <!-- Talking points: ... -->. Both are Marp HTML comments (excluded from slide rendering; the talking-points.md stays as the standalone synced aid).

C2 — python-pptx dependency placement (conf 0.9)

Ambiguity: pyproject.toml has [project.optional-dependencies] test. Where does python-pptx go? Resolution: Add a new optional-dependency group slides = ["python-pptx>=0.6.23"]. Keeps the base dependencies minimal (the render script is a docs-only concern, not a runtime dep). CI installs via pip install -e .[slides]. The render_pptx.py script imports pptx at module load (not a hard failure if absent — the script prints a clear "pip install -e .[slides]" message and exits 1).

C3 — Benefit callout markdown representation (conf 0.9)

Ambiguity: Marp markdown can't natively produce arbitrary <div>. How is the .benefit class applied? Resolution: Use Marp's HTML-in-markdown support — write benefit lines as <div class="benefit">text</div> directly in the markdown (Marp passes through HTML blocks). The inline style: block targets .benefit. The **Benefit:** prefix is removed.

C4 — Image inlining MIME types (conf 0.95)

Ambiguity: What MIME types does inline_images.py handle? Resolution: The deck references .png files only (mermaid renders). inline_images.py MIME-sniffs by extension: .pngimage/png, .svgimage/svg+xml, .jpg/.jpegimage/jpeg, .gifimage/gif; fallback application/octet-stream. Only relative src="assets/..." paths are inlined (absolute/http(s):// URLs are left alone).

C5 — render_slides.sh step ordering (conf 0.9)

Ambiguity: Where do the new inline-images + python-pptx steps go? Resolution: Step 1 mermaid → PNG (unchanged); Step 2 MARP → HTML + PPTX (drop --theme); Step 3 inline images into HTML; Step 4 python-pptx → *-python.pptx; Step 5 stage all. The inline step runs only on the HTML (not the PPTX — both PPTX formats embed media in their zip by construction).

C6 — "penetrate" absence test scope (conf 0.95)

Ambiguity: How is "penetrate" absence asserted? Resolution: grep -ri penetrat docs/presentations/ returns nothing (covers .md, -marp.md, talking-points.md, .html; .pptx is binary so excluded). A new test test_no_penetrate_term asserts this.

C7 — attach_release_asset.py dual-PPTX (conf 0.85)

Ambiguity: Does the release attach both PPTX files? Resolution: Yes — attach both .pptx (MARP image-of-slide) and -python.pptx (structured). Minimal change: loop over both filenames. The MARP PPTX remains the "primary" attachment (first); the python PPTX is secondary (comparison artifact).

C8 — Wave ordering (conf 0.85)

Ambiguity: Can P1 (consolidate) and P2 (style) parallelize? Resolution: No — both edit -marp.md with a serial dependency: P1 establishes the single doc (deletes the plain .md, adds HTML-comment speaker notes); P2 edits that single doc's frontmatter + benefit callouts. Order: P1 → P2 → (P3 + P4 parallel: P3 edits scripts/inline_images.py + render_pptx.py + render_slides.sh + pyproject; P4 edits the deck markdown — zero file overlap) → P5 → P6. P3 depends on P2's render-script --theme drop. P4 depends on P1's consolidated doc.