Walkthrough

Adopt the pattern

Point it at your app and publish what it saw

The walkthrough skill is a directory of markdown and a capture layer that refuses to publish a misleading artifact. Neither is specific to this repository — install the plugin, run it against your own product, and the same contract applies.

MIT licensed · alibad/walkthrough-studio

Three ways in

The skill is runtime-agnostic by construction: it describes what to do, and the drivers describe how to do it per platform. Pick whichever matches your setup.

Claude Code

Add the marketplace, install the plugin, and the skill is available in every project on this machine.

  1. 1Add the marketplace/plugin marketplace add alibad/walkthrough-studio
  2. 2Install the plugin/plugin install walkthrough@walkthrough-studio
  3. 3Walk something/walkthroughWith no argument it catalogs the app, shows you the plan and the estimated time, and waits for you to say go.

Codex

The same skill ships a Codex plugin manifest, so it loads with its own interface metadata and prompts.

  1. 1Clone the repogit clone https://github.com/alibad/walkthrough-studio.git
  2. 2Point Codex at the plugincodex plugin add ./walkthrough-studio/plugins/walkthrough
  3. 3Walk somethingwalkthrough: document this app end to end

Any agent with a shell

The skill is a directory of markdown. Nothing in it is runtime-specific — copy it in and point your agent at SKILL.md.

  1. 1Copy the skill into your projectcp -R walkthrough-studio/plugins/walkthrough/skills/walkthrough .claude/skills/
  2. 2Or symlink it, so updates arrive with a git pullln -s ../../walkthrough-studio/plugins/walkthrough/skills/walkthrough .claude/skills/walkthrough
  3. 3Read the entry pointcat .claude/skills/walkthrough/SKILL.mdPlatform mechanics live in drivers/, the JSON contract in references/output-format.md.

What it refuses to get wrong

These are enforced in one place, for every capture backend, and each is verified by measurement rather than trusted from a configuration flag — a backend that accepts a Retina setting and writes 1x pixels fails the walk at the first capture. Each run records which of them it actually proved, in its run manifest.

Retina pixels
Every capture carries twice the pixels of its CSS viewport, verified by measuring the PNG.
Without it: A 1x capture of a text-dense UI is unreadable zoomed in, and looks identical in a file listing.
Nothing in motion
CSS animations are removed and Web Animations are finished before every capture.
Without it: A mid-animation frame is a state the product never rests in.
Time pinned
The page's clock is fixed, so a live timestamp cannot make two identical screens look different.
Without it: A ticking clock silently disarms the duplicate check — it still runs, it just can never fire.
A fresh context per feature
Each feature gets its own browser context, proven by a storage marker that must differ.
Without it: Leaked state documents a session no real user had — and on a shared profile, one carrying your identity.
A real phone, not a narrow window
Device scale, touch points and user agent are set together, then read back from the page.
Without it: Sites pick their layout from the user agent; a narrow window documents a screen nobody sees.
Console and network kept
Errors and failed requests are collected during the walk and become issues.
Without it: An empty list because the API is down looks exactly like an empty list that is a feature.
No two captures alike
Every capture is MD5-compared against every earlier one in the same walk, not just the previous.
Without it: Identical bytes mean two claimed states with one real state behind them.

Read it before you trust it

A tool that claims its output is trustworthy should be easy to audit. These are the files worth opening first.

Your own hub

The skill writes JSON and PNGs into apps/hub/public/walkthroughs/{slug}/. The hub reads them straight off disk with no build step and no request-time generation, so a walk is visible the moment it finishes.

  1. 1Register your apppnpm new-project
  2. 2Install a browser for the default backendnpx playwright install chromium
  3. 3Walk it/walkthrough
  4. 4Read itpnpm dev

No Playwright browser on the machine? The capture layer falls back to a Chrome you already have, over the DevTools protocol, with no npm dependency — and says so in the run manifest, because that backend cannot record video and you should know which artifacts came from which.