Review a tech-talk's README and produce a deck.recipe.yml. Requires an independent cross-model Rubber Duck critique of section weighting, narrative arc, and coverage gaps. Always overwrites any existing recipe. Triggers: "review the talk", "create the recipe", "is this the best use of our time", "section weighting", "coverage gap", "recipe".
Read the tech-talk README, analyze its structure with a primary reviewer plus an independent cross-model Rubber Duck critique, and write deck.recipe.yml. This skill always produces a fresh recipe — it does not preserve or patch an existing one. The recipe is the authoritative input for the Tech Talk Slide Generator.
Key Constraints:
Max 4 sections — Review should consolidate, not expand. Each section gets ~12-15 slides in 60-min talks.
Slide generator ensures consistency — Once you commit a recipe, the Tech Talk Slide Generator agent generates all slides using the Vue component system with uniform structure (title, toc, section openers, closers, references). Focus the review on narrative logic and audience fit, not slide-level details.
Recipe schema — Read .github/skills/deck-recipe-review/DECK-RECIPE-TEMPLATE.yml to understand all valid fields before writing the output file.
Tech-talk voice applies to recipe guidance — Write every field and comment in direct-positive, possibility-led language because the slide generator may carry recipe wording into audience-facing content. Replace contrastive-negation constructions such as "not X, but Y," "rather than," "instead of," "unlike," and "no longer" with a direct statement of the desired behavior.
When to Invoke This Skill
After a new tech-talk README is complete (called by the Tech Talk Generator agent as its final step)
User wants to revise section structure or narrative arc of an existing talk
User questions whether a section is worth its airtime ("we're spending a whole section on X")
User notices a topic is missing ("we never show how to build/configure/deploy Y")
User asks to "review the talk" or check if the structure matches the audience
Not for: Minor wording tweaks, slide-level fixes, or adding a single slide.
Pre-Flight: Gather Source Material
Before starting the review, read all three sources. The Rubber Duck brief must include the full context — the independent reviewer must not be expected to read files itself.
Do not read the existing slides/tech-talks/<topic>.md. The recipe is the authoritative spec for the slide generator — existing slides will be overwritten and should not constrain the review.
From these, extract:
The <!-- 🎬 MAJOR SECTION: --> markers from the README — these are the candidate sections
Target audience + talk duration (from README frontmatter or intro)
The core question the talk answers
Key artifacts, metrics, and highlight moments
The specific concern the user raised (if invoked manually)
The direct-positive voice rules that every reviewer and the final recipe must follow
Primary Analysis
Dispatch all three agents simultaneously. Each gets the SAME full context block (see template below) with a different cognitive role.
Context Block Template
TASK: [One-sentence description of the structural question]
TALK: [title], [duration], audience: [audience list]
CORE QUESTION: "[the talk's stated core question]"
CANDIDATE SECTIONS (from README 🎬 markers):
1. "[Section Name]" — [2-line description of what it covers]
2. ...
CONSTRAINTS:
- Max 4 sections (no exceptions — consolidate, don't expand)
- Slide generator will apply the component system for structural consistency
- Apply the tech-talk voice to every proposed recipe field and comment
- State desired behavior directly; avoid contrastive-negation phrasing ("not X, but Y,"
"rather than," "instead of," "unlike," "no longer")
USER CONCERN: [Exact concern — what's taking too much space / what's missing]
KNOWN MATERIAL:
- [Any relevant artifacts, demos, or examples that already exist in the repo]
- [Any CLI commands or toolchain status that affects feasibility]
Primary Review Prompt
[CONTEXT BLOCK]
Analyze: Is the current section weighting the best use of the talk's time?
What should change and why?
1. Identify the strongest narrative arc and the single highest-value structural improvement.
2. Protect practical artifacts, audience outcomes, and technical accuracy.
3. Identify content to consolidate, demote, or remove rather than only adding material.
4. Produce a concrete `sectionOrder`, emphasis levels, agenda, and highlight changes with rationale.
5. Flag open questions and at least one credible alternate structure for the independent reviewer to challenge.
6. Rewrite every recommendation in direct-positive, possibility-led language suitable for reuse by the slide generator.
Mandatory Rubber Duck Gate
Before writing the recipe, complete all of these steps without asking the user to remember or invoke them:
In Copilot CLI, explicitly delegate the primary recommendation and the complete context block to the built-in Rubber Duck agent.
Require Rubber Duck to independently attack the proposed thesis, section order, weighting, agenda, highlights, missing producer/consumer perspectives, content that has not earned slide time, and any recommendation that violates the tech-talk voice.
Do not role-play Rubber Duck in the primary model. Wait for the separate review and preserve substantive disagreements for reconciliation.
Outside Copilot CLI, launch one review subagent using a different model family from the primary model and give it the same adversarial brief.
If no independent cross-model reviewer is available or delegation does not occur, stop and report that the recipe review gate is blocked. Do not silently write an unreviewed recipe.
Reconciliation and Final Recipe Direction
Reconcile the primary analysis with the independent critique. Rubber Duck is advisory, but every material objection must be accepted or rejected with a content-based reason before producing. Rewrite inherited reviewer language into the direct-positive tech-talk voice; never copy contrastive phrasing into the recipe unchanged.
Verdict (2-3 sentences) — the core structural problem and fix
arcToc — one line ≤ 80 chars, section names joined by →
arcNarrative — a prose paragraph: what each section sets up for the next, where peak engagement lands, and why the ordering beats alternatives
Concrete sectionOrder with sectionModes (emphasis + one-line note per section)
Updated highlightMoments list — what to drop, what to add
agenda — exactly 3 concise entries with title, takeaway, and whyItMatters, derived from the core question, artifacts, and highlight moments rather than restating the section navigation
One open decision — the single thing the user must resolve before slides can be generated
Mapping Output to recipe.yml
Write the completedeck.recipe.yml file — all fields. Source them as follows:
Field
Source
version
Always 1
deck.title
README H1 title
deck.subtitle
README subtitle line or guiding question, condensed
Use DECK-RECIPE-TEMPLATE.yml (read during pre-flight) as the schema for field names, YAML structure, and inline comments. Apply the same voice rules to internal guidance and YAML comments because they are generator inputs. If there is an open decision from the review, append it as a YAML comment at the end of the file: # OPEN DECISION: [question] — [paths and consequences].
Slide Generator uses the Vue component system to create consistent slides for all sections
No manual slide editing needed — the template ensures title slides, TOCs, section openers, closers, and references are auto-generated
Quality Checks Before Committing
Max 4 sections — Reconciled output has exactly 4 or fewer sections. If more, consolidate.
Every section in the new sectionOrder exists as a major section (##) in the README
No section has been promoted to high that Rubber Duck flagged as risky without noting the risk
arcToc is a single line ≤ 80 chars using → separators between section names
arcNarrative is a prose paragraph explaining the reconciled sequencing logic
agenda contains exactly 3 entries, each with title, takeaway, and whyItMatters; entries promise outcomes rather than repeat the TOC
The open decision is documented in the file — don't silently absorb it
highlightMoments list is 3-5 items (not more — dilutes focus)
Every recipe field and comment uses direct-positive, possibility-led language
A final phrase scan finds no contrastive-negation constructions such as "not X, but Y," "rather than," "instead of," "unlike," or "no longer"; rewrite each match before writing the file
After approval: Tech Talk Slide Generator agent will regenerate all slides using the Vue component system — you don't need to update individual slides
Common Structural Anti-Patterns
Anti-Pattern
Signal
Fix
Mechanism as section
Section covers a tool/output (lockfiles, CI flags) rather than a capability or decision
Absorb as callout inside the parent capability section
Identity crisis
Talk's core question promises X but all slides deliver Y
Rename sections with verb-led titles that match what the audience does
Consumption-only for a producer audience
Platform/ops teams are in the audience but all sections are consumer-perspective
Add at least one producer-perspective section
Passive closing section
Last section = "Resources" or "References" — audience leaves with no next action
Reframe as "Contribution Targets" or "What to Try This Week"
All sections equal weight
All high or all medium
Force a ranking — the climax section should be the highest-emphasis section
Example Invocations
"we're spending a whole section just on X — review the talk and see if that's the best use of our time"
"we never show how to do Y — is it worth adding a section?"
"does the copilot-plugins talk structure match what platform teams actually need?"
"review the tech-talk recipe before we regenerate slides"
1---2name: deck-recipe-review3description: Review a tech-talk's README and produce a deck.recipe.yml. Requires an independent cross-model Rubber Duck critique of section weighting, narrative arc, and coverage gaps. Always overwrites any existing recipe. Triggers: "review the talk", "create the recipe", "is this the best use of our time", "section weighting", "coverage gap", "recipe".4---56# Deck Recipe Review Skill78Read the tech-talk README, analyze its structure with a primary reviewer plus an independent cross-model Rubber Duck critique, and write `deck.recipe.yml`. This skill **always produces a fresh recipe** — it does not preserve or patch an existing one. The recipe is the authoritative input for the Tech Talk Slide Generator.910**Key Constraints:**11- **Max 4 sections** — Review should consolidate, not expand. Each section gets ~12-15 slides in 60-min talks.12- **Slide generator ensures consistency** — Once you commit a recipe, the [Tech Talk Slide Generator agent](../../agents/tech-talk-slide-generator.agent.md) generates all slides using the Vue component system with uniform structure (title, toc, section openers, closers, references). Focus the review on *narrative logic and audience fit*, not slide-level details.13- **Recipe schema** — Read `.github/skills/deck-recipe-review/DECK-RECIPE-TEMPLATE.yml` to understand all valid fields before writing the output file.14- **Tech-talk voice applies to recipe guidance** — Write every field and comment in direct-positive, possibility-led language because the slide generator may carry recipe wording into audience-facing content. Replace contrastive-negation constructions such as "not X, but Y," "rather than," "instead of," "unlike," and "no longer" with a direct statement of the desired behavior.1516---1718## When to Invoke This Skill1920- After a new tech-talk README is complete (called by the Tech Talk Generator agent as its final step)21- User wants to revise section structure or narrative arc of an existing talk22- User questions whether a section is worth its airtime ("we're spending a whole section on X")23- User notices a topic is missing ("we never show how to build/configure/deploy Y")24- User asks to "review the talk" or check if the structure matches the audience2526**Not for:** Minor wording tweaks, slide-level fixes, or adding a single slide.2728---2930## Pre-Flight: Gather Source Material3132Before starting the review, read all three sources. The Rubber Duck brief must include the full context — the independent reviewer must not be expected to read files itself.3334```351. tech-talks/<topic>/README.md — full section content + key artifacts362. .github/skills/deck-recipe-review/DECK-RECIPE-TEMPLATE.yml — recipe schema (all valid fields)373. tech-talks/TEMPLATE.md — "Voice & Framing Guidelines"38```3940Do **not** read the existing `slides/tech-talks/<topic>.md`. The recipe is the authoritative spec for the slide generator — existing slides will be overwritten and should not constrain the review.4142From these, extract:43- The `<!-- 🎬 MAJOR SECTION: -->` markers from the README — these are the candidate sections44- Target audience + talk duration (from README frontmatter or intro)45- The core question the talk answers46- Key artifacts, metrics, and highlight moments47- The specific concern the user raised (if invoked manually)48- The direct-positive voice rules that every reviewer and the final recipe must follow4950---5152## Primary Analysis5354Dispatch all three agents simultaneously. Each gets the SAME full context block (see template below) with a different cognitive role.5556### Context Block Template5758```59TASK: [One-sentence description of the structural question]6061TALK: [title], [duration], audience: [audience list]62CORE QUESTION: "[the talk's stated core question]"6364CANDIDATE SECTIONS (from README 🎬 markers):651. "[Section Name]" — [2-line description of what it covers]662. ...6768CONSTRAINTS:69- Max 4 sections (no exceptions — consolidate, don't expand)70- Slide generator will apply the component system for structural consistency71- Apply the tech-talk voice to every proposed recipe field and comment72- State desired behavior directly; avoid contrastive-negation phrasing ("not X, but Y,"73 "rather than," "instead of," "unlike," "no longer")7475USER CONCERN: [Exact concern — what's taking too much space / what's missing]7677KNOWN MATERIAL:78- [Any relevant artifacts, demos, or examples that already exist in the repo]79- [Any CLI commands or toolchain status that affects feasibility]80```8182### Primary Review Prompt8384```85[CONTEXT BLOCK]8687Analyze: Is the current section weighting the best use of the talk's time?88What should change and why?89901. Identify the strongest narrative arc and the single highest-value structural improvement.912. Protect practical artifacts, audience outcomes, and technical accuracy.923. Identify content to consolidate, demote, or remove rather than only adding material.934. Produce a concrete `sectionOrder`, emphasis levels, agenda, and highlight changes with rationale.945. Flag open questions and at least one credible alternate structure for the independent reviewer to challenge.956. Rewrite every recommendation in direct-positive, possibility-led language suitable for reuse by the slide generator.96```9798---99100## Mandatory Rubber Duck Gate101102Before writing the recipe, complete all of these steps without asking the user to remember or invoke them:1031041. In Copilot CLI, explicitly delegate the primary recommendation and the complete context block to the built-in **Rubber Duck** agent.1052. Require Rubber Duck to independently attack the proposed thesis, section order, weighting, agenda, highlights, missing producer/consumer perspectives, content that has not earned slide time, and any recommendation that violates the tech-talk voice.1063. Do not role-play Rubber Duck in the primary model. Wait for the separate review and preserve substantive disagreements for reconciliation.1074. Outside Copilot CLI, launch one review subagent using a different model family from the primary model and give it the same adversarial brief.1085. If no independent cross-model reviewer is available or delegation does not occur, stop and report that the recipe review gate is blocked. Do not silently write an unreviewed recipe.109110---111112## Reconciliation and Final Recipe Direction113114Reconcile the primary analysis with the independent critique. Rubber Duck is advisory, but every material objection must be accepted or rejected with a content-based reason before producing. Rewrite inherited reviewer language into the direct-positive tech-talk voice; never copy contrastive phrasing into the recipe unchanged.1151161. **Verdict** (2-3 sentences) — the core structural problem and fix1172. **`arcToc`** — one line ≤ 80 chars, section names joined by ` → `1183. **`arcNarrative`** — a prose paragraph: what each section sets up for the next, where peak engagement lands, and why the ordering beats alternatives1194. **Concrete `sectionOrder`** with `sectionModes` (emphasis + one-line note per section)1205. **Updated `highlightMoments`** list — what to drop, what to add1216. **`agenda`** — exactly 3 concise entries with `title`, `takeaway`, and `whyItMatters`, derived from the core question, artifacts, and highlight moments rather than restating the section navigation1227. **One open decision** — the single thing the user must resolve before slides can be generated123124---125126## Mapping Output to recipe.yml127128Write the **complete** `deck.recipe.yml` file — all fields. Source them as follows:129130| Field | Source |131|---|---|132| `version` | Always `1` |133| `deck.title` | README H1 title |134| `deck.subtitle` | README subtitle line or guiding question, condensed |135| `deck.tagline` | README one-line promise / focus (from intro block) |136| `deck.agenda` | Reconciled review output; exactly 3 attendee-facing outcomes |137| `deck.arcToc` | Reconciled review output |138| `deck.arcNarrative` | Reconciled review output |139| `deck.sectionOrder` | Reconciled review output |140| `deck.sectionModes` | Reconciled review output |141| `deck.highlightMoments` | Reconciled review output |142143Use `DECK-RECIPE-TEMPLATE.yml` (read during pre-flight) as the schema for field names, YAML structure, and inline comments. Apply the same voice rules to internal guidance and YAML comments because they are generator inputs. If there is an open decision from the review, append it as a YAML comment at the end of the file: `# OPEN DECISION: [question] — [paths and consequences]`.144145**Post-Recipe Workflow:**1461. Commit updated `deck.recipe.yml`1472. Invoke [Tech Talk Slide Generator agent](../../agents/tech-talk-slide-generator.agent.md) with the talk path1483. Slide Generator uses the Vue component system to create consistent slides for all sections1494. No manual slide editing needed — the template ensures title slides, TOCs, section openers, closers, and references are auto-generated150151---152153## Quality Checks Before Committing154155- [ ] **Max 4 sections** — Reconciled output has exactly 4 or fewer sections. If more, consolidate.156- [ ] Every section in the new `sectionOrder` exists as a major section (`##`) in the README157- [ ] No section has been promoted to `high` that Rubber Duck flagged as risky without noting the risk158- [ ] `arcToc` is a single line ≤ 80 chars using ` → ` separators between section names159- [ ] `arcNarrative` is a prose paragraph explaining the reconciled sequencing logic160- [ ] `agenda` contains exactly 3 entries, each with `title`, `takeaway`, and `whyItMatters`; entries promise outcomes rather than repeat the TOC161- [ ] The open decision is documented in the file — don't silently absorb it162- [ ] `highlightMoments` list is 3-5 items (not more — dilutes focus)163- [ ] Every recipe field and comment uses direct-positive, possibility-led language164- [ ] A final phrase scan finds no contrastive-negation constructions such as "not X, but Y," "rather than," "instead of," "unlike," or "no longer"; rewrite each match before writing the file165- [ ] **After approval**: Tech Talk Slide Generator agent will regenerate all slides using the Vue component system — you don't need to update individual slides166167---168169## Common Structural Anti-Patterns170171| Anti-Pattern | Signal | Fix |172|---|---|---|173| Mechanism as section | Section covers a tool/output (lockfiles, CI flags) rather than a capability or decision | Absorb as callout inside the parent capability section |174| Identity crisis | Talk's core question promises X but all slides deliver Y | Rename sections with verb-led titles that match what the audience *does* |175| Consumption-only for a producer audience | Platform/ops teams are in the audience but all sections are consumer-perspective | Add at least one producer-perspective section |176| Passive closing section | Last section = "Resources" or "References" — audience leaves with no next action | Reframe as "Contribution Targets" or "What to Try This Week" |177| All sections equal weight | All `high` or all `medium` | Force a ranking — the climax section should be the highest-emphasis section |178179---180181## Example Invocations182183- "we're spending a whole section just on X — review the talk and see if that's the best use of our time"184- "we never show how to do Y — is it worth adding a section?"185- "does the copilot-plugins talk structure match what platform teams actually need?"186- "review the tech-talk recipe before we regenerate slides"
Run npx skillmds@latest add msbart2/deck-recipe-review in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Review a tech-talk's README and produce a deck.recipe.yml. Requires an independent cross-model Rubber Duck critique of section weighting, narrative arc, and coverage gaps. Always overwrites any existing recipe. Triggers: "review the talk", "create the recipe", "is this the best use of our time", "section weighting", "coverage gap", "recipe". It is listed under AI & ML on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Capability flags: docs only. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
MSBart2 (@msbart2) published this skill. Their other Agent Skills are listed on their SkillMD profile.