demo-runbook

This skill should be used when a user needs a demo package that starts with a live demo (not slides) and produces both a demo script and a navigable single-file HTML runbook, including caveats, respectful competitive comparison, and LLM architecture details (RAG, evals, observability).

5 stars

Best use case

demo-runbook is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

This skill should be used when a user needs a demo package that starts with a live demo (not slides) and produces both a demo script and a navigable single-file HTML runbook, including caveats, respectful competitive comparison, and LLM architecture details (RAG, evals, observability).

Teams using demo-runbook should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/demo-runbook/SKILL.md --create-dirs "https://raw.githubusercontent.com/marchatton/agent-skills/main/.agents/skills/06-release/demo-runbook/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/demo-runbook/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How demo-runbook Compares

Feature / Agentdemo-runbookStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

This skill should be used when a user needs a demo package that starts with a live demo (not slides) and produces both a demo script and a navigable single-file HTML runbook, including caveats, respectful competitive comparison, and LLM architecture details (RAG, evals, observability).

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Demo Runbook

Create a demo package that is demo-first, user-empathy-led, and technically credible. Produce two deliverables every time: a demo script and a single-file HTML runbook.

## When to use this skill

Use this skill when asked to create or refresh a demo (often a PoC demo) that:
- Starts with an end-to-end live demo before explaining why, what, and how
- Includes a competitive landscape comparison using April Dunford’s respectful approach framing
- Includes technical architecture details, especially LLM patterns (RAG, evals, observability)
- Produces both a talk track and a navigable runbook page

Example triggering requests:
- “Help me create a PoC demo runbook and script for a live demo.”
- “Make a demo-first talk track, then cover why/what/how and architecture.”
- “Create a single HTML runbook with links, diagrams, and sections for tech stack.”
- “Write a respectful competitive comparison and explain our approach.”

## Outputs

Always produce both:
1) **Demo script** as markdown (talk track + what to click + timings)
2) **Single-file HTML runbook** (visual-first with custom CSS, navigable sections, Mermaid diagrams (flowchart + sequence), in-app hyperlinks, back-to-home navigation)

HTML runbook must:
- Be single-file HTML (no build step required) with custom CSS styling (cards/callouts/layout), not a plain document.
- Include Mermaid diagrams (at least one flowchart and one sequence diagram).
- Include navigation between sections (hash router is fine) and “Back to Home” affordances.
- Include an app links section with real links or TODO placeholders.

When returning outputs, format as:
- `=== demo-script.md ===` then the markdown
- `=== demo-runbook.html ===` then the full HTML

## Input schema

Accept inputs in either bullet form or JSON. If any field is missing, insert a clear TODO placeholder rather than asking questions.

Minimum inputs to request are not required. Proceed with placeholders.

### Core narrative
- `poc_name`: Name of the PoC
- `tagline`: One-line value statement
- `audience`: Who is watching (and expected technical depth)
- `segment`:
  - `organisation`: The organisation context (industry, size, geography, constraints)
  - `buyer`: Who buys / signs (budget owner, success metric, risk posture)
  - `end_user`: Who uses it day-to-day (workflow, pain, what “better” feels like)
- `job_to_be_done`: What the user is trying to do
- `starting_feelings`: How they feel at the start (rushed, uncertain, risk-averse, too many tabs)
- `desired_feelings`: How the product changes that (confidence, clarity, speed, fewer guesses)
- `scenario`: The demo scenario in plain English
- `success_outcome`: What “done” looks like for the user
- `business_success_outcome`: What success looks like for the business (be specific: $ impact or growth/adoption metric + timeframe)

### Special feature X
- `special_feature`:
  - `name`: Feature X name
  - `what_it_does`: Plain English
  - `why_it_matters`: User value
  - `citation`: Optional link or text reference
  - `evidence_note`: If citation missing, set to “Evidence is preliminary.”

### Scope and caveats
- `geography`: Default `US`
- `caveats`: Default list must include:
  - Synthetic customer data including made up packs
  - Segmentation and positioning were not a focus
  - Not production ready
  - Goal was mini Orbital Copilot PoC with special feature X (citation optional, otherwise evidence preliminary)
  - US only

### Competitive landscape
- `competitors`: Optional list of competitor names
- `competitor_patterns`: Optional list describing market approaches (use when competitor names are unknown)
- `our_approach_summary`: How the PoC approach differs and why
- `tradeoffs`: Explicit trade-offs accepted

### Tech stack
- `tech_stack`:
  - `frontend`
  - `backend`
  - `llm_provider_and_models`
  - `orchestration`
  - `vector_search_or_db`
  - `storage`
  - `auth_security`
  - `observability`
  - `evals_tooling`
  - `hosting`

### Architecture and choices
- `architecture`:
  - `chosen_option`: e.g. “RAG + light tool use”
  - `options_considered`: At least 2 options with pros/cons
  - `rag_details`: chunking, retrieval, filters, grounding approach
  - `citations_policy`: when to cite, when to say unknown
  - `evals`: offline set, regression, quality metrics and what “good” means
  - `observability`: traces, prompt/versioning, cost/latency, failure modes
  - `security_privacy_notes`: even for synthetic data, log redaction and separation of secrets

### Demo links
- `app_links`: List of `{label, url, note}` for in-app pages to click during demo
- `runbook_links`: Optional external links to supporting docs (PRD, repo, design, etc.)

### Risks and next steps
- `known_limitations`: hallucination risks, coverage gaps, latency/cost concerns, reliability risks
- `next_steps`: what to productionise, what to validate, what to expand

## Workflow

Follow this workflow in order.

### Step 1: Normalise inputs and apply defaults
- Apply default caveats and geography (US).
- If `special_feature.citation` is missing, set `special_feature.evidence_note` to “Evidence is preliminary.”
- If competitors are missing, use `competitor_patterns` or generate neutral market patterns with TODO markers.
- If tech stack fields are missing, insert TODO placeholders.
- If app links are missing, create 3 placeholder links with TODO URLs.

Optional: Run `scripts/validate_inputs.py` to normalise a JSON input payload and produce a filled structure.

### Step 2: Build the demo-first narrative backbone
- Lead with an end-to-end happy path.
- Make the segment (organisation, buyer, end-user), job, and feelings explicit in the first minute.
- Call out the emotional shift, from uncertainty to confidence, as part of the story.
- Include one edge case showing safe behaviour (clarify, refuse, uncertainty).
- Tie the story to the business success outcome (what changes, and how you will measure it).

### Step 3: Add caveats early and repeat at the end
- Place caveats immediately after the first sentence or within the first 10 seconds.
- Repeat a short caveats recap in the closing.

### Step 4: Add why, what, how
- Explain why after the demo has landed.
- Define what is in scope and out of scope.
- Explain how at two levels:
  - Product level, what components do
  - Technical level, architecture and LLM specifics

### Step 5: Add competitive landscape section
- Compare approaches, priorities, and trade-offs.
- Avoid dunking on competitors.
- Frame differences as “different constraints” and “optimising for X”.

Use `references/competitive-template.md`.

### Step 6: Add technical architecture section
- Include RAG, grounding, citations policy.
- Include evals plan and what “good” means.
- Include observability plan and what gets logged.
- Include at least two architecture options considered and why the PoC choice was made.

Use `references/architecture-template.md`.

### Step 7: Generate deliverables
- Generate `demo-script.md` using `references/demo-script-template.md`.
- Generate `demo-runbook.html` by copying `assets/runbook-template.html` and filling placeholders:
  - PoC name, tagline, narrative, caveats
  - Segment (organisation, buyer, end-user) and business success outcome
  - App links
  - Tech stack and architecture content
  - Competitive section content
  - Mermaid diagrams (flowchart and sequence diagram) and custom CSS styling (keep it visual, not a plain document)

### Step 8: Quality check before returning
Confirm:
- Demo starts before any explanation.
- Segment (organisation, buyer, end-user), job and feelings are explicit.
- Caveats appear early and at the end.
- Competitive section is respectful and trade-off based.
- Architecture includes RAG, evals, observability and options considered.
- Geography is US only.
- Business success outcome is specific and measurable (not vibes).
- Outputs are British English, crisp, no production promises.

## Bundled resources

Load as needed:
- `references/demo-script-template.md` for the script structure
- `references/competitive-template.md` for respectful comparison framing
- `references/architecture-template.md` for the LLM architecture talk track
- `assets/runbook-template.html` for a navigable, visual-first runbook shell
- `scripts/validate_inputs.py` for deterministic input normalisation (optional)

Related Skills

skill-creator

5
from marchatton/agent-skills

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, update or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

modular-skills-architect

5
from marchatton/agent-skills

Map and refactor an agent context ecosystem: skills, commands/workflows, hooks, agent files, AGENTS.md templates, and docs. Output system map, module/dependency design, Register updates, and a concrete split/consolidate/rename/delete plan. Use when routing or ownership is messy.

heal-skill

5
from marchatton/agent-skills

This skill should be used when fixing incorrect SKILL.md files with outdated instructions or APIs.

create-agent-skills

5
from marchatton/agent-skills

Expert guidance for creating, writing, and refining Claude Code Skills. Use when working with SKILL.md files, authoring new skills, improving existing skills, or understanding skill structure and best practices.

agent-native-audit

5
from marchatton/agent-skills

Comprehensive agent-native architecture audit with scored principles and multi-slice review. Use for system-wide health checks or periodic audits.

write-judge-prompt

5
from marchatton/agent-skills

Design LLM-as-Judge evaluators for subjective criteria that code-based checks cannot handle. Use when a failure mode requires interpretation (tone, faithfulness, relevance, completeness). Do NOT use when the failure mode can be checked with code (regex, schema validation, execution tests). Do NOT use when you need to validate or calibrate the judge — use validate-evaluator instead.

validate-evaluator

5
from marchatton/agent-skills

Calibrate an LLM judge against human labels using data splits, TPR/TNR, and bias correction. Use after writing a judge prompt (write-judge-prompt) when you need to verify alignment before trusting its outputs. Do NOT use for code-based evaluators (those are deterministic; test with standard unit tests).

generate-synthetic-data

5
from marchatton/agent-skills

Create diverse synthetic test inputs for LLM pipeline evaluation using dimension-based tuple generation. Use when bootstrapping an eval dataset, when real user data is sparse, or when stress-testing specific failure hypotheses. Do NOT use when you already have 100+ representative real traces (use stratified sampling instead), or when the task is collecting production logs.

evaluate-rag

5
from marchatton/agent-skills

Guides evaluation of RAG pipeline retrieval and generation quality. Use when evaluating a retrieval-augmented generation system, measuring retrieval quality, assessing generation faithfulness or relevance, generating synthetic QA pairs for retrieval testing, or optimizing chunking strategies.

eval-audit

5
from marchatton/agent-skills

Audit an LLM eval pipeline and surface problems: missing error analysis, unvalidated judges, vanity metrics, etc. Use when inheriting an eval system, when unsure whether evals are trustworthy, or as a starting point when no eval infrastructure exists. Do NOT use when the goal is to build a new evaluator from scratch (use error-analysis, write-judge-prompt, or validate-evaluator instead).

error-analysis

5
from marchatton/agent-skills

Help the user systematically identify and categorize failure modes in an LLM pipeline by reading traces. Use when starting a new eval project, after significant pipeline changes (new features, model switches, prompt rewrites), when production metrics drop, or after incidents.

build-review-interface

5
from marchatton/agent-skills

Build a custom browser-based annotation interface tailored to your data for reviewing LLM traces and collecting structured feedback. Use when you need to build an annotation tool, review traces, or collect human labels.