Exec Recipe Review Skill
Read the exec-talk README, analyze its structure with a primary reviewer plus an independent cross-model Rubber Duck critique, and write exec.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 Slide Generator when building exec-talk decks.
Key Constraints:
- Max 4 sections — Review should consolidate, not expand. Exec talks are tighter than tech talks. Each section earns ~8–12 slides in a 30–45 min briefing.
- Executive audience is the filter — Every section must be evaluated through the lens of a CXO, VP, or transformation lead. If a section teaches implementation, it needs to be reframed as business implications or cut.
- Slide generator ensures consistency — Once you commit a recipe, the Slide Generator agent generates all slides using the cockpit HTML template system with uniform structure. Focus the review on decision clarity and business credibility, not slide-level details.
- Recipe schema — Read
.github/skills/exec-recipe-review/EXEC-RECIPE-TEMPLATE.yml to understand all valid fields before writing the output file.
When to Invoke This Skill
- After a new exec-talk README is complete
- User wants to revise section structure, business framing, or action clarity
- User questions whether a section earns its airtime ("are we spending too long on X")
- User notices a business angle is missing ("we never explain the cost of not acting")
- User asks to "review the talk" or check if the structure matches the executive audience
Not for: Minor wording tweaks, slide-level fixes, or tech-talk decks (use deck-recipe-review for those).
Pre-Flight: Gather Source Material
Before starting the review, read BOTH of these. The Rubber Duck brief must include the full context — the independent reviewer must not be expected to read files itself.
1. exec-talks/<topic>/README.md — full section content + key metrics
2. .github/skills/exec-recipe-review/EXEC-RECIPE-TEMPLATE.yml — recipe schema (all valid fields)
Do not read the existing slides/exec-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
## H2 headings from the README — these are the candidate sections
- Target audience + talk duration (from README frontmatter or intro)
- The core business question or decision the talk is designed to drive
- Key metrics, risk frames, and business moments
- The specific concern the user raised (if invoked manually)
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 business question or decision the talk drives]"
CANDIDATE SECTIONS (from README ## headings):
1. "[Section Name]" — [2-line description of what it covers]
2. ...
CONSTRAINTS:
- Max 4 sections (no exceptions — consolidate, don't expand)
- Audience is executives: every section must land as business implication, not implementation detail
- Slide generator will apply cockpit HTML templates for structural consistency
USER CONCERN: [Exact concern — what's taking too much space / what's missing / what's not landing]
KNOWN MATERIAL:
- [Any key metrics, business models, or frameworks already in the README]
- [Any competitive data, cost figures, or risk framing that exists]
Primary Review Prompt
[CONTEXT BLOCK]
Analyze: Is the current section structure the best use of this talk's time with a C-suite audience?
What should change and why?
1. Identify the strongest executive decision journey and the single highest-value structural improvement.
2. Protect sourced claims, business credibility, quantified outcomes, and decision clarity.
3. Reframe or remove implementation detail and content that has not earned executive airtime.
4. Produce a concrete `sectionOrder`, emphasis levels, and highlight changes with rationale.
5. Flag open questions and at least one credible alternate structure for the independent reviewer to challenge.
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 business question, decision journey, section order, weighting, credibility, urgency, action clarity, and content that has not earned executive airtime.
- 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:
- Verdict (2-3 sentences) — the core structural problem and fix for this executive audience
arcToc — one line ≤ 80 chars, section names joined by → (use "The X" naming pattern if appropriate)
arcNarrative — a prose paragraph: what each section establishes for the executive, where credibility and urgency peak, and why the ordering drives a decision
- Concrete
sectionOrder with sectionModes (emphasis + one-line note per section)
- Updated
highlightMoments list — what to drop, what to add (quantified business metrics preferred)
- One open decision — the single thing the user must resolve before slides can be generated
Mapping Output to exec.recipe.yml
Write the complete exec.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 |
deck.tagline |
README one-line promise / focus (from intro block) |
deck.arcToc |
Reconciled review output |
deck.arcNarrative |
Reconciled review output |
deck.sectionOrder |
Reconciled review output |
deck.sectionModes |
Reconciled review output |
deck.highlightMoments |
Reconciled review output |
deck.preamble |
Always [{ src: "./exec-spine.md" }] for exec talks — every exec deck imports the shared series context slide. Do NOT set to []. |
deck.appendix |
[] unless the talk has explicit appendix content |
Use EXEC-RECIPE-TEMPLATE.yml (read during pre-flight) as the schema for field names, YAML structure, and inline comments. 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].
Post-Recipe Workflow:
- Commit updated
exec.recipe.yml
- Invoke Slide Generator agent with the exec-talk path
- Slide Generator uses the cockpit HTML template system to create consistent slides for all sections
- No manual slide editing needed — the template ensures title slides, overview, section openers, closers, and references are auto-generated
Quality Checks Before Committing
Common Executive Talk Anti-Patterns
| Anti-Pattern |
Signal |
Exec Fix |
| Implementation section |
Section covers a tool, CLI, or configuration step rather than a business outcome |
Reframe as "What this means for your platform team" or absorb into the stakes section |
| Missing urgency |
No section answers "why now" or "cost of not acting" |
Add a stakes/imperative section before the action close |
| Passive closing section |
Last section = "Resources" or "References" — leaders leave with no decision |
Reframe as "What Leadership Must Authorize" or "Three Decisions This Quarter" |
| Metric-free talk |
Key points are directional but not quantified |
Audit README for any numbers; if none exist, flag as an open decision |
| All sections equal weight |
All high or all medium |
Force a ranking — the credibility peak and the urgency section should be highest emphasis |
| Too many sections |
5+ sections in a 30-min exec briefing |
Consolidate: the opening frame and the system/model can often be one section |
| Audience confusion |
Section mixes exec-level framing with developer-level detail |
Cut the detail; add a speaker note that "detail available on request" |
Example Invocations
- "we're spending two sections on the operating model — review the exec talk and see if that's the best use of time"
- "we never explain the cost of not acting — is it worth adding a section?"
- "does the agentic-delivery talk structure land for a CXO audience?"
- "review the exec recipe before we regenerate slides"
- "is this the best use of our time with VPs who only have 30 minutes?"
1---2name: exec-recipe-review3description: Review an exec-talk's README and produce an exec.recipe.yml. Requires an independent cross-model Rubber Duck critique of section weighting, executive audience fit, narrative arc, and action clarity. Always overwrites any existing recipe. Triggers: "review the talk", "create the recipe", "is this landing for execs", "section weighting", "coverage gap", "recipe", "executive framing".4---56# Exec Recipe Review Skill78Read the exec-talk README, analyze its structure with a primary reviewer plus an independent cross-model Rubber Duck critique, and write `exec.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 Slide Generator when building exec-talk decks.910**Key Constraints:**11- **Max 4 sections** — Review should consolidate, not expand. Exec talks are tighter than tech talks. Each section earns ~8–12 slides in a 30–45 min briefing.12- **Executive audience is the filter** — Every section must be evaluated through the lens of a CXO, VP, or transformation lead. If a section teaches implementation, it needs to be reframed as business implications or cut.13- **Slide generator ensures consistency** — Once you commit a recipe, the [Slide Generator agent](../../agents/slide-generator.agent.md) generates all slides using the cockpit HTML template system with uniform structure. Focus the review on *decision clarity and business credibility*, not slide-level details.14- **Recipe schema** — Read `.github/skills/exec-recipe-review/EXEC-RECIPE-TEMPLATE.yml` to understand all valid fields before writing the output file.1516---1718## When to Invoke This Skill1920- After a new exec-talk README is complete21- User wants to revise section structure, business framing, or action clarity22- User questions whether a section earns its airtime ("are we spending too long on X")23- User notices a business angle is missing ("we never explain the cost of not acting")24- User asks to "review the talk" or check if the structure matches the executive audience2526**Not for:** Minor wording tweaks, slide-level fixes, or tech-talk decks (use `deck-recipe-review` for those).2728---2930## Pre-Flight: Gather Source Material3132Before starting the review, read BOTH of these. The Rubber Duck brief must include the full context — the independent reviewer must not be expected to read files itself.3334```351. exec-talks/<topic>/README.md — full section content + key metrics362. .github/skills/exec-recipe-review/EXEC-RECIPE-TEMPLATE.yml — recipe schema (all valid fields)37```3839Do **not** read the existing `slides/exec-talks/<topic>.md`. The recipe is the authoritative spec for the slide generator — existing slides will be overwritten and should not constrain the review.4041From these, extract:42- The `## ` H2 headings from the README — these are the candidate sections43- Target audience + talk duration (from README frontmatter or intro)44- The core business question or decision the talk is designed to drive45- Key metrics, risk frames, and business moments46- The specific concern the user raised (if invoked manually)4748---4950## Primary Analysis5152Dispatch all three agents simultaneously. Each gets the SAME full context block (see template below) with a different cognitive role.5354### Context Block Template5556```57TASK: [One-sentence description of the structural question]5859TALK: [title], [duration], audience: [audience list]60CORE QUESTION: "[the business question or decision the talk drives]"6162CANDIDATE SECTIONS (from README ## headings):631. "[Section Name]" — [2-line description of what it covers]642. ...6566CONSTRAINTS:67- Max 4 sections (no exceptions — consolidate, don't expand)68- Audience is executives: every section must land as business implication, not implementation detail69- Slide generator will apply cockpit HTML templates for structural consistency7071USER CONCERN: [Exact concern — what's taking too much space / what's missing / what's not landing]7273KNOWN MATERIAL:74- [Any key metrics, business models, or frameworks already in the README]75- [Any competitive data, cost figures, or risk framing that exists]76```7778### Primary Review Prompt7980```81[CONTEXT BLOCK]8283Analyze: Is the current section structure the best use of this talk's time with a C-suite audience?84What should change and why?85861. Identify the strongest executive decision journey and the single highest-value structural improvement.872. Protect sourced claims, business credibility, quantified outcomes, and decision clarity.883. Reframe or remove implementation detail and content that has not earned executive airtime.894. Produce a concrete `sectionOrder`, emphasis levels, and highlight changes with rationale.905. Flag open questions and at least one credible alternate structure for the independent reviewer to challenge.91```9293---9495## Mandatory Rubber Duck Gate9697Before writing the recipe, complete all of these steps without asking the user to remember or invoke them:98991. In Copilot CLI, explicitly delegate the primary recommendation and the complete context block to the built-in **Rubber Duck** agent.1002. Require Rubber Duck to independently attack the proposed business question, decision journey, section order, weighting, credibility, urgency, action clarity, and content that has not earned executive airtime.1013. Do not role-play Rubber Duck in the primary model. Wait for the separate review and preserve substantive disagreements for reconciliation.1024. Outside Copilot CLI, launch one review subagent using a different model family from the primary model and give it the same adversarial brief.1035. 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.104105---106107## Reconciliation and Final Recipe Direction108109Reconcile 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:1101111. **Verdict** (2-3 sentences) — the core structural problem and fix for this executive audience1122. **`arcToc`** — one line ≤ 80 chars, section names joined by ` → ` (use "The X" naming pattern if appropriate)1133. **`arcNarrative`** — a prose paragraph: what each section establishes for the executive, where credibility and urgency peak, and why the ordering drives a decision1144. **Concrete `sectionOrder`** with `sectionModes` (emphasis + one-line note per section)1155. **Updated `highlightMoments`** list — what to drop, what to add (quantified business metrics preferred)1166. **One open decision** — the single thing the user must resolve before slides can be generated117118---119120## Mapping Output to exec.recipe.yml121122Write the **complete** `exec.recipe.yml` file — all fields. Source them as follows:123124| Field | Source |125|---|---|126| `version` | Always `1` |127| `deck.title` | README H1 title |128| `deck.subtitle` | README subtitle line or guiding question, condensed |129| `deck.tagline` | README one-line promise / focus (from intro block) |130| `deck.arcToc` | Reconciled review output |131| `deck.arcNarrative` | Reconciled review output |132| `deck.sectionOrder` | Reconciled review output |133| `deck.sectionModes` | Reconciled review output |134| `deck.highlightMoments` | Reconciled review output |135| `deck.preamble` | **Always** `[{ src: "./exec-spine.md" }]` for exec talks — every exec deck imports the shared series context slide. Do NOT set to `[]`. |136| `deck.appendix` | `[]` unless the talk has explicit appendix content |137138Use `EXEC-RECIPE-TEMPLATE.yml` (read during pre-flight) as the schema for field names, YAML structure, and inline comments. 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]`.139140**Post-Recipe Workflow:**1411. Commit updated `exec.recipe.yml`1422. Invoke [Slide Generator agent](../../agents/slide-generator.agent.md) with the exec-talk path1433. Slide Generator uses the cockpit HTML template system to create consistent slides for all sections1444. No manual slide editing needed — the template ensures title slides, overview, section openers, closers, and references are auto-generated145146---147148## Quality Checks Before Committing149150- [ ] **Max 4 sections** — Reconciled output has exactly 4 or fewer sections. If more, consolidate.151- [ ] Every section in the new `sectionOrder` exists as a `## ` heading in the README152- [ ] No section has been marked `high` that contains primarily implementation detail — reframe or cut153- [ ] `arcToc` is a single line ≤ 80 chars using ` → ` separators between section names154- [ ] `arcNarrative` is a prose paragraph explaining the sequencing logic for an executive audience155- [ ] The open decision is documented in the file — don't silently absorb it156- [ ] `highlightMoments` list is 3-5 items with quantified metrics where possible157- [ ] No `highlightMoments` entry describes a tool command, code pattern, or implementation step158- [ ] **After approval**: Slide Generator agent will regenerate all slides using the cockpit HTML system — you don't need to update individual slides159- [ ] `deck.preamble` is `[{ src: "./exec-spine.md" }]` — never `[]` for exec talks160161---162163## Common Executive Talk Anti-Patterns164165| Anti-Pattern | Signal | Exec Fix |166|---|---|---|167| Implementation section | Section covers a tool, CLI, or configuration step rather than a business outcome | Reframe as "What this means for your platform team" or absorb into the stakes section |168| Missing urgency | No section answers "why now" or "cost of not acting" | Add a stakes/imperative section before the action close |169| Passive closing section | Last section = "Resources" or "References" — leaders leave with no decision | Reframe as "What Leadership Must Authorize" or "Three Decisions This Quarter" |170| Metric-free talk | Key points are directional but not quantified | Audit README for any numbers; if none exist, flag as an open decision |171| All sections equal weight | All `high` or all `medium` | Force a ranking — the credibility peak and the urgency section should be highest emphasis |172| Too many sections | 5+ sections in a 30-min exec briefing | Consolidate: the opening frame and the system/model can often be one section |173| Audience confusion | Section mixes exec-level framing with developer-level detail | Cut the detail; add a speaker note that "detail available on request" |174175---176177## Example Invocations178179- "we're spending two sections on the operating model — review the exec talk and see if that's the best use of time"180- "we never explain the cost of not acting — is it worth adding a section?"181- "does the agentic-delivery talk structure land for a CXO audience?"182- "review the exec recipe before we regenerate slides"183- "is this the best use of our time with VPs who only have 30 minutes?"