Three traditions.
One skill tree.
Storymakers method · consulting deck craft · contrarian playbook — three traditions distilled into one canon, indexed by role not folder. 110 resources across 6 areas, read by your AI as a skill.
- 110 resources
- 6 areas
- 13 categories
- 24 MCP tools
Resource URIs are organized by role, not by physical folder: method, canon, craft, applications and examples.
Agents read the live canon from Postgres and the fused prose corpus from the same server package.
The skill includes the deck preview contract, slide descriptions and playbook comparison workflow.
Browse by area
6Skill Orchestrator
How the Storytelling skill asks for canon, resources, deck evidence and output contracts.
Method
Storymakers operating guidance: process, agents, checklists, storytelling moves and playbook examples.
Canon
Reusable abstractions: arcs, loops and application patterns that should converge with Postgres canon.
Craft
Slide, prose, rhythm and composition techniques for making the canon visible on the page.
Applications
Consulting, activist, valuation, campaign and research-note use cases built from the shared canon.
Examples
Reference specimens and playbooks worth studying when matching, reviewing or generating decks.
Browse by category
13Three things your AI does once the skill is loaded.
- 01 Picks the arc.
Reads
concepts.arcslive, suggests the arc + 5–7 beats that fits your thesis. - 02 Lints your draft.
Walks every slide through the canon checklists, names the rule each weak action title violates.
- 03 Cites real decks.
Pulls observed slides from 309k indexed examples — not made-up references.
Agent entry points
24- search_storytelling_corpusSearch the Storytelling corpus
Search the unified Storytelling skill corpus: method, canon, craft, examples and applied consulting/contrarian resources. The domain filter is a legacy source-family filter, not the public resource tree.
- get_storytelling_resourceGet a Storytelling corpus resource
Return the full markdown for one Storytelling resource. Prefer unified URIs like `storytelling://method/agents.md`, `storytelling://canon/story-arcs.md` or `storytelling://applications/forms/activist-deck.md`; legacy ids like `storymakers/meta/agents` still work.
- list_storytelling_corpusList the Storytelling corpus
List logical Storytelling skill areas/categories/resources. `domain` is kept only as a legacy source-family filter.
- get_storymakers_method_packGet the Storymakers method pack
Return curated Storymakers method markdown: overview, 10-step process, Creative Trio agents, checklists, story arcs, loop examples, examples, textures or all. This is the MCP-backed version of the Claude Storymakers skill.
- list_storymakers_canon_filtersList Storymakers canon filters
Presearch the available Storymakers request lenses before asking for canon or observed slide inventory. Document kind is the primary category lens; source/source_type is preserved as producer provenance/backcompat.
- get_storymakers_canonGet the Storymakers canon
Return the converged Storymakers canon: Postgres concepts.* is the source of truth for arcs, loops and tools, and MCP markdown resources are returned as companion bodies/examples. Call list_storymakers_canon_filters first when you need valid document kinds, layers, agents, slide types or component lenses.
- documents_count_by_kindCount documents by kind
Return the number of documents in the storytelling corpus (Postgres-backed) grouped by document kind. Documents with no classification appear under "unclassified".
- get_deck_playbookGet a deck playbook
Return the structured PlaybookDeck for one corpus document — slides, arc beats, loops, action titles, slide functions. Identifier accepts UUID or slug. Output is a compact prompt-friendly summary by default; pass format="json" for the full structure.
- search_slidesSearch slides
Faceted slice over corpus.page_metadata. `kind` selects the lens (slide_type, slide_function, component, chart, metric, tool, framework, arc, beat, loop, all) and `value` filters that lens. Document-level filters (kinds, sourceTypes, orientations) further narrow the scope. Returns up to `pageSize` rows (max 24).
- get_slideGet one slide detail
Return the full SlideDetail for one (docId, pageNumber) — components, metrics, framework/tool/arc-beat/loop matches. Use the `docId` from search_slides results.
- search_slides_semanticSearch slides by meaning
Meaning-first slide retrieval for deck-building agents. Describe the slide you need ("waterfall showing cost reduction across business units", "timeline of regulatory milestones with a call to act now") and get real corpus slides ranked by embedding similarity (cosine, text-embedding-3-small). Optional `document_kind` narrows to one kind (e.g. consulting-deck, pitchdeck, activist-deck); `entity_type: "deck"` searches whole decks instead of single slides. Follow up with get_slide({ docId, pageNumber }) or get_deck_playbook({ identifier }) for full detail.
- get_exemplarsGet exemplar slides
Return the N best real corpus slides for one canon lens: a tool (`tool_slug`), a slide type (`slide_type_slug`) or an arc beat (`beat_slug`). Pass exactly one of the three. Exemplars are ranked by match confidence and diversified (max 2 slides per document); each carries a signed image URL you can open as a multimodal input. Optional `document_kind` narrows to one deck kind (e.g. consulting-deck).
- get_narrative_priorsNarrative priors from the corpus
Aggregated narrative statistics for a slice of the enriched corpus (~10k docs): arc distribution, most common beat sequence, loop usage with typical open/close pages, SCQA completeness, example big ideas, audience×intent cross-tab. Pure SQL, no LLM. Filter by document_kind (e.g. consulting-deck, pitchdeck, activist-deck), audience (e.g. investors, executives), intent (e.g. persuade-decision, raise-capital) and/or author_name substring — at least one filter is required.
- get_layout_priorsLayout priors for a slide type
Where components sit on slides of a given type, aggregated from the corpus: per component kind, the share of slides that carry it, the median bbox (x,y,w,h normalized 0–1) with p25–p75 spread, and a verbal reading ("title: top band 5–12% of height, full width"). Filter by slide_type_slug (required, e.g. kpi_overview, executive_summary, section_divider), optionally document_kind and component_kind. Pure SQL over a bounded sample, no LLM.
- pressure_test_deckPressure-test a draft deck
Audit a draft deck against corpus priors — deterministic, no LLM. Four checks: title spine (all-caps, repeated openings, outlier lengths, stat stacking), arc coverage (deck vs the modal beat sequence of the document_kind, flagging missing beats), proportions (divider/evidence/assertion shares vs the kind median), and size (slide count vs p25–p75). Pass the deck as [{page, title, slide_type?, kind_hint?}] plus document_kind (e.g. consulting-deck) and optional audience/intent to narrow the prior.
- titles_examplesTitle examples by species
Fetch anonymized gold or flagged-bad examples for one of the 10 title species. Examples come from the 230k+ enriched corpus and are filtered against the species-specific gold criterion.
- titles_anti_patternsTitle anti-patterns
Pedagogical lookup of named title anti-patterns: definition, severity, and the canonical fix. Pass a slug for a single entry, omit it to list all 14.
- titles_species_cardTitle species card
Render one species ficha with live corpus data — same content as the `storytelling://copywriting/titles/species/<slug>` resource, exposed as a tool for callers that prefer the tools/call surface.
- titles_spine_checkTitle spine check
Audit a sequence of titles (in deck order) against deterministic wiring rules: all-caps share, first-word repetition, word-count outliers, stat-fact stacking, open/close echo. Returns a list of findings keyed by rule.
- titles_gradeGrade a draft title
Diagnose a single draft title against the species taxonomy, the three quality gates (headline / forward / 8-second), the 14 anti-patterns, and the pair pattern. Backed by `claude -p` (Opus by default; ~5–25s per call).
- titles_rewriteRewrite a draft title
Propose up to 3 candidate rewrites for a draft title. Each candidate must pass the three quality gates and be defensible by the evidence summary (if provided). The model declines when the evidence is too thin, returning a blocked_reason. Backed by `claude -p` (Opus default; ~10–30s per call).
- search_patternsSearch contrarian applications (deprecated)
⚠ Deprecated alias — will be removed 2026-07-01. Use search_storytelling_corpus({ domain: "contrarian" }) instead. Original behavior: BM25 search over the contrarian/activist application subset.
- get_patternGet contrarian application markdown (deprecated)
⚠ Deprecated alias — will be removed 2026-07-01. Use get_storytelling_resource({ id: "contrarian/<category>/<slug>" }) instead. Original behavior: read one contrarian/activist application markdown body.
- list_categoriesList contrarian application categories (deprecated)
⚠ Deprecated alias — will be removed 2026-07-01. Use list_storytelling_corpus({ domain: "contrarian" }) instead. Original behavior: list categories within the contrarian/activist application subset.
Legacy aliases still exist for older contrarian clients:
search_patterns, get_pattern and list_categories.
You've seen what's inside. Wire it into your AI.
Reading the resources is one path. The faster path: install the MCP once, and let Claude, Cursor or Codex pull the right resource for whatever you're working on. One install, every IDE.