agentleFS
serhiilenivserhiileniv/ccs/skills/demo/SKILL.md

demo

Skill0 starsChanged 11 days agoMITView on GitHub

Hackathon, at feature freeze. Writes the demo scenario, checks every external call has replay and reset, dry-runs each scene, then records a captioned demo video with the bundled Playwright recorder (16:9, 9:16, gif, srt, backup cut). User-invoked only.

26 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use ship and research.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • AWSSkill

    ship

    Finalize dev work on an issue branch — update docs, push, and open a PR.

    Also in 3 projects that use this

  • NVIDIASkill

    research

    Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

3 rules. 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 23 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Start the app as demo.md says.

    line 40
  2. Very specific:

    Write only demo/scenario.ts, from scenario.example.ts:

    line 53
  3. Distinctive:

    no dev badges, no secrets, no real customer data on screen

    line 67

“Common” is measured: kept by at least 6 in 10 of the 23 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/ccs:demo

A demo that breaks on stage loses. A video that takes 40 seconds to show anything loses. This makes a demo that can't do either.

Reads hackathon/plan.md (demo script v0, replay list) if present.

Step 1 — scenario

Write hackathon/demo.md:

  • Prep: exact start commands, reset step, window 1440×900, theme, production build (no dev badges), seeded data.
  • Scenes:

    | # | Time | Action | Visible | Judge understands | Caption (≤ 8 words) |

  • Must stick: the 1–2 moments a judge should retell. The first one lands ≤ 15 s into the video.

One user, one path, real data. Cut every scene that doesn't prove a rubric criterion.

Step 2 — replay check

For every external call on the demo path (LLM, APIs, speech, payments), find in code: a replay or fixture flag, and a reset for seeded state.

  • Found → name the flag and file in demo.md.
  • Missing → print the gap and the /ccs:implement command to add it. Write no product code here.
  • Replay that was hand-scripted, not recorded from a real run → say so; it is not "a replay of a live run".
  • Recording in replay → the recorder adds a "Replay of a live run" chip. Never claim "live".

Step 3 — preflight and dry run

Start the app as demo.md says. Then write hackathon/demo-readiness.md:

| Check | Result | Fix |

Cover: health endpoint, keys present, model and quota/rate limits (a token-per-minute ceiling stalls a live demo), reset works twice, every scene once end to end. PASS/FAIL per line. FAIL on the core path → stop and report; don't record a broken demo.

Step 4 — record

The engine lives in ${CLAUDE_SKILL_DIR}/recorder/. If the repo has no demo/ yet, copy it there and install (pnpm i or npm i, then npx playwright install chromium). Needs ffmpeg; check first.

Write only demo/scenario.ts, from scenario.example.ts:

  • one entry per scene from demo.md, with its caption; mark the wow scene wow: true
  • selectors from a live snapshot of the running app (accessibility roles and names), never guessed
  • expect locators for each scene so preflight can fail fast

Then: npm run check (all scenes' selectors and health, no recording) → fix until green → REPLAY=<0|1> npm run demo.

Step 5 — review the cut

Open demo/out/poster.png and frames around each caption. Check and print pass/fail:

  • duration ≤ the limit and ≤ 90% of it for video submissions (default 120 s)
  • first wow ≤ 15 s (the renderer warns)
  • captions ≤ 8 words, readable at 960×540
  • no dev badges, no secrets, no real customer data on screen

Outputs: demo.mp4 (16:9), demo-vertical.mp4 (9:16), demo.gif, poster.png, demo.srt. Backup for the live pitch: MAX_S=60 npm run render && mv out/demo.mp4 backup-60s.mp4 && npm run render. The backup goes outside out/ because every render wipes out/; the replay chip follows the recording. Speed ramps only compress fast() waits; if the core flow can't fit 60 s, drop scenes from a copy of scenario.ts instead. Tell the user to keep the backup on the desktop and a USB stick.

Manual path

Voice, mobile or real-microphone demos: write a shot list from demo.md for Screen Studio or Cap, then check the user's recording against step 5.

Language

lang: uk → demo.md and captions in Ukrainian; UI labels stay as on screen.

Writing

One line where one line does. Answer first. State the fact, not the story behind it — no narrating what was tried, no paragraph restating the line above. Two things always stay: why a non-obvious decision was made, and what a check cannot do. Caveats and risks still get said, one line each.

What the checks cannot do: tell whether the story lands. Watch the video once with sound off, as a judge would.

Outcome: success = video rendered, step 5 all pass · partial = scenario and readiness written, recording blocked or failing checks · failed = core path broken.

Report

Last step, every run, whatever the outcome: write .ccs/reports/<skill>/<YYYY-MM-DD>-<slug>.md at the repo root, and add .ccs/ to .git/info/exclude if missing. One line per field, no secrets, tokens or customer data. Print the path.

---
skill: <skill>
date: <YYYY-MM-DD>
repo: <owner/name>
target: <argument, one line>
outcome: success | partial | failed
learned: false
---

Used: <tools, CLIs, MCPs, files that did the work>
Found: <the result, one or two lines>
Friction: <what slowed or blocked it; a user correction; "none">

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.