diff --git a/.claude/agents/presentation-claude-code.md b/.claude/agents/presentation-claude-code.md index e6b9766..82835e1 100644 --- a/.claude/agents/presentation-claude-code.md +++ b/.claude/agents/presentation-claude-code.md @@ -154,4 +154,5 @@ _Findings from previous executions are recorded here. Add new entries as bullet - **2026-04-30 slide-10 vocabulary anchoring — "turn" and "inference" defined**: slide 10 is now the deck's canonical vocabulary moment for two primitives the rest of the talk relies on. (1) Bold caption changed from "Every turn is a fresh API call." → "Every turn is a fresh inference." — when a precise term is defined on the same slide, the punchline should use the precise term, not the layperson paraphrase. (2) A single-line glossary added below the red subtitle (28px top margin to sit clearly below the caption-strip group, not glued to it): "**Turn** — one user message + the model's reply. • **Inference** — one model API call. The model has no memory across inferences." Rendered as Option B (single horizontal line, `font-size: 0.9rem`, `color: #666`) because slide 10 already has heavy vertical content (title + 4 bubbles + 2-line caption strip) and side-by-side mini-cards would have over-weighted the glossary relative to the dialog. No new CSS classes introduced — all inline styles. **Rule**: when the user asks to "include a word and its definition", treat the body and the glossary as a coordinated pair — promote the word into the body (replacing any vague paraphrase), and add the definition below. Do not bolt the glossary on without updating the body text above it. - **2026-04-30 vocabulary anchor moved from slide 10 → slide 14 (SUPERSEDES previous entry)**: the prior entry's claim that "slide 10 is the deck's canonical vocabulary moment for 'turn' and 'inference'" is no longer true. The glossary paragraph was removed from slide 10 and the formal definitions were added to slide 14 (Tool Calling sequence diagram), where the diagram with a "Language Model" column showing multiple arrows per turn makes both terms visually concrete. **Rule**: vocabulary anchors belong where the visual evidence lives, not at the slide where the concept first appears. If a later slide has a diagram that visually distinguishes the named primitives, the formal definitions go on that slide — and the earlier slides should use the layperson translation only. For "turn" and "inference", that is slide 14 (the tool-calling sequence diagram: multiple arrows to the Language Model column = multiple inferences per turn). **Caption ripple rule**: when vocabulary moves out of a slide, any precise term in that slide's body must revert to the layperson version too — otherwise the slide forward-references undefined vocabulary. Slide 10's bold caption reverted from "Every turn is a fresh inference." → "Every turn is a fresh API call." for this reason. **Treatment chosen for slide 14**: stacked two-paragraph block (one `

` per term, `font-size: 0.95rem`, `margin-top: 28px` from image, `gap: 12px` between paragraphs) rather than side-by-side cards — the image already fills most of the slide's width and a flex row of cards would have crowded the image's bottom edge. No new CSS classes introduced — all inline styles. - **2026-04-30 diagram-specific count annotation added to slide 14 (Turn × 1, Inference × 2)**: added a single italic preface line above the two vocabulary definitions: "In the diagram above: **Turn × 1** · **Inference × 2**". Numbers rendered in `#C0392B` (the deck's existing red accent, matching the harness-replay subtitle on slide 10) at `font-size: 1rem; font-weight: bold` within an italic `font-size: 0.9rem; color: #666` carrier sentence. **Visual approach chosen**: separate annotation line (not parenthetical inside the term headings) — the "In the diagram above:" prefix needs room to breathe as a scoping clause; embedding it into heading text would make the headings read as conditional definitions rather than scoped counts. The annotation sits inside the same `max-width: 820px` flex container as the definitions, with a `margin-bottom: 4px` gap before the first definition paragraph. Container's `margin-top` trimmed from `28px` → `24px` to absorb the extra line without pushing definitions off-screen. No new CSS classes. **Rule**: when defining a primitive on a slide that contains a diagram, annotate the specific count that primitive has IN THAT DIAGRAM and label it "In the diagram above: ..." so the counts are read as diagram-scoped observations, not general truths (e.g., "Turn × 1" here means one turn in this example flow, not one turn in every conversation). Concrete counts force audience verification against the diagram; abstract definitions alone do not. +- **2026-05-07 horse-teaser slide inserted at position 9 (54 → 55 slides)**: new slide 9 "A horse. A model." is a stripped-down teaser of the full harness analogy slide (now at 19). SVG contains only horse body elements (torso, neck, head, muzzle, ear, eye, nostril, 4 legs, 4 hooves, tail, mane) — no harness strokes, no callouts, no `` block. `viewBox="110 25 340 345"` tightened from the source slide's `"-130 -50 780 450"` (which had expanded margins for callout labels). Two-line caption only: "A horse. A model." (bold, 1.8rem, dark) + "The model is the horse. Raw power, no direction." (1.2rem, red). No etymology line (that belongs to the harness reveal at 19). All existing slides 9–54 → 10–55 via Python sentinel-replacement pass; `` comments and `data-slide` attributes all updated in a single pass. Structural check: 55 slides, sequential 1–55, data-level distribution unchanged (agents=7, claude-md=4, skills=3, context=3, workflow=3). The CSS `.slide[data-slide="1"]` selector in the stylesheet also matches the `data-slide` regex — future integrity checks should match `]+data-slide="(\d+)"` not bare `data-slide="(\d+)"` to exclude the CSS rule. - **2026-04-30 etymology footnote added to slide 13 (Horse Harness — The Pivot Analogy)**: added one `

` immediately after the red subtitle on slide 13. Final markup: `

The origin is Old French harneis — gear, equipment, armor.

`. Italicized the source word `harneis` (not the phrase "Old French") — the source word is the unfamiliar token that benefits from visual separation; "Old French" is a standard linguistic label that reads cleanly plain. `margin-top: 16px` chosen to sit clearly below the red subtitle as a separate beat without occupying excessive vertical space. Visual register is subordinate to the main caption pair: smaller font (`0.95rem` vs `1.2rem`), muted color (`#666` vs `#C0392B`), single line. **Pedagogical pattern for analogy/metaphor slides**: when the metaphor's word has a meaningful etymology, surface it as a quiet footnote below the analogy lines. It earns the analogy a "second landing" — the metaphor isn't a stretch, it's the word's original meaning recovered. This pattern applies any time an analogy word can be grounded in literal historical meaning. **Voice-to-text correction pattern**: user said "Old France" (transcription artifact) but meant "Old French" (the correct linguistic term) — cross-referenced against the user's reference screenshot where the correct form appeared in writing. Second instance of this transcription pattern this session (first was Shayan/Cheyenne). **Rule**: when in doubt about a voice-transcribed proper noun or technical term, cross-reference any reference screenshot the user shares; corrected forms in visual material override transcribed text.