kramme-cc-workflow/skills/kramme:visual:demo-reel/SKILL.md
--- name: kramme:visual:demo-reel description: Capture local demo evidence for observable product behavior: screenshots, before/after image sets, browser reels, terminal recordings, and short GIF/video proof. Use when shipping UI changes, CLI features, or any change where PR reviewers would benefit from visual or behavioral evidence. argument-hint: "[what to capture] [--url <url>|auto] [--tier static|before-after|browser-reel|terminal-recording]" disable-model-invocation: true user-invocable: tr
npx skillsauth add abildtoft/kramme-cc-workflow kramme-cc-workflow/skills/kramme:visual:demo-reelInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Capture evidence that the changed product behavior works. Evidence means using the product surface: opening the app, exercising the changed route, running the changed CLI command, making the relevant request, or reproducing and confirming a fixed bug. Test output is verification evidence, not demo evidence.
This skill stores artifacts locally under .context/demo-reels/<timestamp>/ by default. Do not upload, attach, or publish artifacts unless the user explicitly asks for that later.
Parse $ARGUMENTS:
--url <url>: explicit app URL for web capture.--url auto or bare auto: discover a running local app with the shared dev-server detector.--tier <tier>: optional requested tier. Valid tiers: static, before-after, browser-reel, terminal-recording.If the target is blank, infer it from recoverable branch context: current branch, existing PR title/body, diff against the base branch, and recent commits. Ask only if there are multiple plausible observable behaviors or no clear way to exercise the behavior.
Skip capture with a clear reason when the diff is docs-only, markdown-only, config-only, CI-only, test-only, or a pure internal refactor with no observable output change.
Before recording, read references/secret-preflight.md and apply it to the planned route, command, and screen.
Hard-stop and ask for guidance when capture would expose credentials, private customer/user data, admin-only pages, payment flows, destructive actions, or authenticated data the user has not approved for recording.
Do not record destructive product flows. Prefer a seeded/local/demo account, a dry-run command, or a non-mutating path.
Resolve DEMO_REEL_SKILL_DIR to the directory containing this SKILL.md: ${CLAUDE_PLUGIN_ROOT}/skills/kramme:visual:demo-reel (the Codex converter rewrites CLAUDE_PLUGIN_ROOT at install time). Skill-local helpers live beside the installed skill; shared plugin scripts are handled separately.
Run:
REPO_ROOT=$(git rev-parse --show-toplevel)
python3 "$DEMO_REEL_SKILL_DIR/scripts/demo_reel_helper.py" create-run-dir --repo-root "$REPO_ROOT"
Store the returned path as DEMO_REEL_DIR. Put every artifact for this run in that directory.
If the target is web UI and no explicit --url was provided, use the shared dev-server detector. Do not start a server and do not duplicate its port heuristics:
"${CLAUDE_PLUGIN_ROOT}/scripts/dev-server/detect-url.sh" auto
Handle output:
http://... or https://...: use it as TARGET_URL.__MULTIPLE_URLS__: ask the user to choose unless the caller already supplied a route-specific target.__NO_RUNNING_SERVER__: fall back to non-browser tiers only if they still prove the behavior; otherwise stop and tell the user to start the dev server.ERROR: ...: stop and report the diagnostic.When checking env files for URL discovery, the shared script reads only PORT= assignments. Never print full env-file contents or non-port variables.
Detect browser automation by inspecting the available tool set. Do not call browser tools just to probe. Browser automation may be Claude in Chrome, Chrome DevTools MCP, Playwright MCP, or an equivalent provider that can navigate and capture screenshots.
Then run:
python3 "$DEMO_REEL_SKILL_DIR/scripts/demo_reel_helper.py" preflight
Merge the script output with your browser-tool detection. The helper detects local command-line tools such as vhs, silicon, ffmpeg, ffprobe, and platform screenshot utilities; it cannot see agent MCP tools.
Read references/capture-tiers.md.
Choose the lightest tier that proves the change:
If a requested tier is unavailable, explain the missing tool and use the next lighter tier that still proves the behavior. If no tier can prove the behavior, stop with the reason.
Load exactly one tier reference first, then fall back only when needed:
static -> references/tier-static-screenshots.mdbefore-after -> references/tier-before-after-screenshots.mdbrowser-reel -> references/tier-browser-reel.mdterminal-recording -> references/tier-terminal-recording.mdKeep captures short. Prefer the smallest number of screenshots or the shortest GIF/video that proves the change.
Before reporting artifacts, scan filenames and visible text/transcripts for obvious credential patterns from references/secret-preflight.md. If any are found, discard the artifact and recapture; do not blur or crop as remediation.
Write a small manifest in DEMO_REEL_DIR/manifest.json with:
Return:
=== Demo Evidence Complete ===
Tier: static|before-after|browser-reel|terminal-recording|skipped
Description: <one sentence describing what the evidence shows>
Directory: <DEMO_REEL_DIR>
Files:
- <path or "none">
PR Markdown:
<local-only markdown table or embed guidance>
=== End Demo Evidence ===
For local-only artifacts, use paths only in conversation output or copy-paste PR text. If another skill is updating an existing PR directly, do not write local filesystem paths into the PR body because reviewers cannot access them.
tools
Requires Linear MCP. Implements one Linear issue end to end, selects applicable code-review, convention, and PR-refactor gates, runs them to bounded convergence, verifies, and optionally opens the PR and iterates on CI and review feedback until green. Use when the user wants a single Linear issue taken from implementation through a clean Pull Request. Not for implementation-only work, SIW-tracked issues, stacked PRs, existing PR updates, or post-merge rollout.
development
Reviews PR and local changes for convention drift and overcaution against documented rules and mined peer-file practice. Use for new patterns, dependencies, abstractions, or defensive complexity that departs from established practice; every finding cites evidence. Supports --inline. Not for general code quality (use kramme:pr:code-review) or spec review (use kramme:siw:spec-audit --team).
testing
Charts huge or foggy initiatives into a local `.context` decision map and resolves one typed frontier ticket per session until the work is ready for SIW or another execution workflow. Use when the route to a destination cannot fit in one agent session or parallel workspaces need coordinated planning state. Not for clear specs, ordinary issue decomposition, implementation, or Linear-native tracking.
development
Investigates a question against primary sources and saves one cited Markdown artifact. Use for reading legwork: official docs/API facts, source-code or spec checks, standards, and first-party service behavior before planning or implementation. Not for making product or architecture decisions, implementing code, broad web search, secondary blog summaries, or uncited answers.