Briefing Slides Convention

This file is the single authoring source for the briefing-slides convention. Source checkouts load it from docs/briefing-slides-convention.md; packaged installs load the same content from assets/briefing-slides-convention.md. Briefing slides are the slide-first review surface for dense alignment pages, interrogation pages, research findings, framework/workshop artifacts, specs, reports, and documentation plans.

Briefing slides do not replace dense artifacts. They make review more visual and navigable while preserving dense alignment/.html, interrogation/.html, markdown reports, specs, research notes, and source documents as linked canonical backup/reference surfaces.

Briefing-First Review Surface

Where this convention is installed, the briefing deck is the primary review surface at each interrogation and alignment step, and the dense page is the canonical backup/reference surface. When a producing skill reaches a review/open step and this convention is present, it applies briefing-first:

This behavior activates purely from the presence of this convention. When this convention is absent (for example on a stable install where the asset is stripped), producing skills fall back to the dense page as the primary review surface with no briefing behavior.

Gate Parity And Partial Decks

A briefing-first deck must faithfully represent the dense page's review gates.

Output Path

Write decks under briefing-slides/.

Source And Reference Handling

Identify source artifacts, dense review pages, owning skill or workflow, topic slug, and output path before authoring the deck.

Presentation Experience

Build a self-contained HTML slideshow that works from file:// with no external runtime dependency.

Required presentation controls:

Use purpose-built visual structures where they clarify the material: decision cards, evidence matrices, comparison tables, canvases, workshop boards, scored options, risk/assumption registers, and compact charts. Avoid using the deck as a raw markdown dump.

Fit-To-Slide Content

Slides are briefing surfaces, not dense artifacts. Author each slide so the content can be read without scrolling the slide body or discovering hidden overflow.

Deck Patterns

Choose the pattern that matches the source material.

Alignment briefing: problem frame, source/evidence summary, findings, decision options, recommendation, risks/assumptions, proposed artifacts/file changes, gates, references, final response compiler.

Interrogation briefing: context, what is being tested, question groups, why each question matters, answer fields, open-question markers, evidence gaps, next-step gates, references, final response compiler.

Framework/workshop briefing: framework lens, canvas or matrix, scored options, tradeoffs, implications, workshop decisions, unresolved prompts, references, final response compiler.

Documentation briefing: intended audience, source inputs, document structure, claims/evidence map, proposed outline, unresolved decisions, destination paths, references, final response compiler.

Review Controls

Every deck must support review and feedback directly on the relevant slide.

Do not use sticky or fixed compile banners. Put compile controls in normal slide flow.

YAML Contract

Compiled YAML is produced only by local slide-feedback YAML controls in the slide sidebar or near-slide feedback surface, marked data-slide-feedback-yaml, and by the final full-deck compiler on the response or final slide, marked data-full-deck-yaml. The final full-deck compiler remains in normal slide flow on the last slide or an explicit response slide.

Do not render prior compiled YAML sidecars, answer sidecars, or generated review YAML files as primary slide cards, action chips, or navigation links. If they are needed as provenance, include them in compiled source_artifacts and optionally in a dedicated References slide with non-action wording.

Every compiled YAML payload begins with:

# Invoke with: <owning-command>
command: "<owning-command>"
briefing_slides: briefing-slides/<name>.html

Include:

Route review YAML to the owning producing workflow when one exists. Use the briefing-slides skill command only for ad hoc decks that the briefing-slides skill owns.

Set approval_status: ready-for-agent-review only when every required gate has an approving answer and there is no unresolved revise, down, or clarification feedback.

Verification And Opening

Before handoff:

The opener may use the existing alignment page open helper because it is the repository's generic HTML opener; this does not make the deck an alignment page and does not authorize opening dense reference pages.

Manifest-Driven Skill Decks (this repo)

The briefing-slides/ skill-deck gallery in this repository — the per-skill decks that summarize each AFPS skill — is generated, not hand-authored. It flows manifest → generator → rotating archetypes so ~42 decks read as one designed folder instead of 42 identical layouts. Ad hoc briefing decks that producing skills author for a specific review step (everything above) are unaffected by this section; this pipeline governs only the repo's batch-generated skill gallery.

Source of truth. briefing-slides/_deck-manifest.json is the hand-editable manifest of skill-deck entries (slug, command, title, family grouping/order, blurb, chips, skillPath, nextSkill, lead, and the six content beats). Edit this file to change deck content; do not hand-edit generated decks.

Scripts.

Locked chrome. Design tokens/chrome CSS live in scripts/briefing-deck-base.css and runtime chrome JS in scripts/briefing-deck-chrome.js. Both are injected verbatim into every generated deck so there is one place to edit the mechanics. Every emitted deck is theme-aware (light + dark), self-contained (works from file://), and conforms to scripts/audit-briefing-slides.mjs.

Rotating-archetype variety rule. The six fixed content beats map to slides as: 1 overview → hero (fixed), 2 when-to-use → rotate POOL2, 3 session → rotate POOL3, 4 expect → rotate POOL4, 5 handoff → rotate POOL5, 6a references → references (fixed), 6b gate → compiler (fixed). Rotation is pool[(deckIndex + beatOffset) % pool.length]: adjacent beat pools are disjoint so neighboring slides in one deck never collide, and the manifest-order deckIndex offset makes adjacent folder decks differ. The rotating pools deliberately exclude meterRow and scorecard — those render numeric gauges/scores and the extracted beat copy carries no honest numbers; bigStat is used only as labeled icon tiles, never fabricated metrics.

Generated decks are not hand-edited. To change a deck, edit _deck-manifest.json (content) or the generator/mapper/chrome scripts (structure or mechanics), then re-run node scripts/generate-briefing-decks.mjs and node scripts/audit-briefing-slides.mjs.