CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/speaker-toolkit

Four-skill presentation system: ingest talks into a rhetoric vault, run interactive clarification, generate a speaker profile, then create new presentations that match your documented patterns. Includes an 88-entry Presentation Patterns taxonomy for scoring, brainstorming, and go-live preparation.

96

1.21x
Quality

93%

Does it follow best practices?

Impact

97%

1.21x

Average score across 30 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

title-placement.mdskills/presentation-creator/references/

Title Placement — Outline Schema + Scripts

Implements the policy in rules/title-overlay-rules.md.

Outline schema addition

Each slide block in presentation-outline.md gains one optional line:

### Slide 3: The Question
- Format: **FULL**
- Image prompt: `[STYLE ANCHOR]. <scene description> ...`
- Safe zone: upper_third (uniform backdrop drawn from the style anchor)
- Text: **how many hours last week...**

Grammar: - Safe zone: <zone> (<surface>)

  • <zone> — one of upper_third, middle_third, lower_third, left_half, right_half. Horizontal bands reserve a full-width strip; half-frame zones reserve one side of the frame for the title column and push the subject to the opposite side. left_third / right_third are intentionally excluded — too narrow to hold horizontal title text. middle_third is for styles whose subject naturally frames a clean center opening (TV sets, monitors, windows, portrait frames, vignettes).
  • <surface> — optional short phrase describing what fills the zone in the deck's own visual vocabulary (e.g. "unbroken painted sky", "flat studio backdrop", "parchment grain", "gradient wash"). If omitted, a generic default is used, but results are noticeably better with an explicit style-anchored surface.

Slides without a Safe zone: line generate and apply exactly as today.

Scripts

ScriptRole
generate-illustrations.py (modified)Parses Safe zone: and appends the SAFE ZONE directive to each prompt before calling Gemini. No new CLI flags.
apply-illustrations-to-deck.py (new)Swaps generated images into a .pptx, adds a zone-sized scrim rectangle behind the title, and positions title text. Reads the same outline for zone data. Accepts --scrim-color / --scrim-alpha.
suggest-scrim-color.py (new)Samples the darkest 5% of pixels across a deck's illustrations and prints a scrim color + alpha tuned to the deck's natural shadow tone.

End-to-end workflow

# 1. Author presentation-outline.md with `Safe zone:` lines

# 2. Generate illustrations — directive appended automatically
python3 generate-illustrations.py presentation-outline.md all

# 3. (Optional) Sample a scrim color tuned to the deck's style
python3 suggest-scrim-color.py illustrations/
# -> prints: scrim base #RRGGBB, recommended alpha NNNNN

# 4. Apply to deck
python3 apply-illustrations-to-deck.py \
    deck.pptx illustrations/ presentation-outline.md \
    --out deck-with-titles.pptx \
    --scrim-color 100903 --scrim-alpha 47553   # omit for plain 45% black

Notes

  • Scrim always applied, zone-scoped. A rectangle matching the title zone sits between the picture and the text. Full-slide scrims flatten the illustration; zone-sized ones lift the title locally.
  • Scrim color sampled from the deck. Default is 45% black. For styled decks (warm sepia, cool night, etc.) suggest-scrim-color.py samples the natural shadow tone — the scrim then reads as "deeper shadow of the same style" instead of a black film.
  • Idempotence. generate-illustrations.py strips any existing TITLE SAFE ZONE block before re-appending, so re-running after a zone edit produces the right result.
  • Recovery path. If a specific slide's illustration ignores the directive, use the Loop B pattern (vision-LLM diagnose → revised prompt → regenerate). Documented in the rule file; not mechanized as a default.

skills

presentation-creator

references

phase0-intake.md

phase1-intent.md

phase2-architecture.md

phase3-content.md

phase4-guardrails.md

phase5-slides.md

phase6-publishing.md

phase7-post-event.md

title-placement.md

SKILL.md

README.md

tile.json