qa-manual
Skill2 starsChanged 46 days agoMITView on GitHub
Living user / configuration manual generated by an agent that actually operates your app — the same drive-your-app engine as qa-explore, pointed at a different output (docs instead of bugs). It recons the app, ORDERS the features into a real setup/usage sequence, proposes a table of contents + audience for you to approve, then walks the happy path in that order, screenshots and annotates every step, and assembles one coherent Markdown manual. The Markdown is the master, so it re-generates when the UI drifts instead of rotting. Use when asked to "write the manual", "document the app", "generate the user guide", "make an onboarding guide", "config/installer manual", or "update the docs to match the app".
1 other project uses a version of this.
Adopted by
Most recently taken up by
- tomimor/skillstheir own version, first seen Jun 26, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- tomimor/skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
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
- Very specific: line 24
It won't document a broken flow: If a section's happy path hits a blocking bug, qa-manual flags it and leaves that section out (or marked …
- Very specific: line 47
Recon → propose TOC (GATE 1): Run the engine with no toc: Workflow({ scriptPath: "<engine>/qa-manual.workflow.js", args: { ...config, …
- Distinctive: line 49
Review the draft (GATE 2): Read the returned Markdown before publishing.
- Distinctive: line 61
Never invents UI: Every step and screenshot comes from driving the real app.
- Distinctive: line 62
Personal data aware: If the app shows real user data, the shared clean example should use fictional/sample records where possible.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
qa-manual
The same engine that drives your app to find bugs (qa-explore) can drive it to document it. Instead of a bug report, the output is a living manual: a coherent, screenshot-annotated guide walked in the order a real person would use the app.
recon the live app → ORDER the features as a real setup/usage sequence
→ propose a Table of Contents + AUDIENCE [GATE 1: you approve]
per section, in order: drive the app to that view → screenshot → annotate the steps
→ assemble ONE coherent Markdown manual (one clean example throughout)
→ draft ready [GATE 2: you review before it ships]
Markdown is the master → re-run when the UI drifts → docs update instead of rottingWhat makes it a good manual (not a screenshot dump)
- Setup order, not file order. Dependencies/prerequisites first; each section builds on the previous. The recon step reorders whatever it discovers into the sequence a human actually follows.
- One coherent example throughout. The same clean sample data/flow runs across the whole manual, so screenshots tell a single story instead of contradicting each other.
- Audience is a knob. The same app yields an installer / configuration guide or an end-user / daily-use guide by setting
audience(which also reshapes the TOC and the depth of each step). - Every screenshot is annotated with what to do and what to notice — captured from the real app, never mocked.
- It won't document a broken flow. If a section's happy path hits a blocking bug, qa-manual flags it and leaves that section out (or marked "known issue") rather than teaching a broken path — run qa-explore/qa-fix first.
🔒 The two gates (never publish auto-docs blind)
- Approve the TOC + audience up front. The engine returns a proposed table of contents and audience; you edit/approve it before a single screenshot is taken. This is where you catch "wrong order", "wrong audience", "skip this section".
- Review the draft before it ships. The Markdown master is handed back for a human read before it becomes the published manual. Docs that go out unread are how wrong instructions reach users.
Engine (invoke via the Workflow tool; do not inline)
${CLAUDE_PLUGIN_ROOT}/skills/qa-manual/engine/qa-manual.workflow.js
(If $CLAUDE_PLUGIN_ROOT is unset, the skill is at ~/.claude/skills/qa-manual — resolve the engine path relative to this SKILL.md.)
Prerequisites
- The same
qa.config.jsonqa-explore uses (baseUrl,appPath,login,shotsDir,viewports,projectType). No tracker or E2E dir needed — this writes docs, not tests. - Two manual-specific knobs (in a
manualblock, all optional):audience—"end-user"(default) or"installer"(config/admin guide). Reshapes the TOC + step depth.outFile— where to write the master, e.g.docs/manual-usuario.md(defaultdocs/manual.md).title,product,brand— cover copy.sampleHint— one sentence describing the clean example to use throughout (e.g. "a fictional client 'Demo SL'"), so screenshots stay coherent.
- Runs against a running app. Credentials come from env (
QA_EMAIL/QA_PASSor theloginrecipe) — never inline them in the config.
How to run
- Resolve config. Load
qa.config.json; confirm the login works (don't print secrets). Pick theaudience(ask the user if unclear — an installer guide and an end-user guide are very different documents). - Recon → propose TOC (GATE 1). Run the engine with no
toc:Workflow({ scriptPath: "<engine>/qa-manual.workflow.js", args: { ...config, manual: { audience, ... } } }). It explores the app and returns{ audience, toc: [{ key, title, goal }], notes }. Show the user the TOC + audience and get approval/edits before continuing. Do not screenshot anything yet. - Capture + assemble. Re-run the engine with the approved
tocinargs.manual.toc. It walks each section in order (driving the real app), screenshots + annotates, and assembles one coherent Markdown master atoutFile, with the shared example throughout. Sections whose happy path is blocked by a bug come back flagged, not faked. - Review the draft (GATE 2). Read the returned Markdown before publishing. Fix wording/order if needed (edit the master and re-assemble, or re-run just the affected section).
- Ship the format the user wants. The master is Markdown. If they want a single self-contained file to hand over (e.g. email an HTML with screenshots embedded), bundle it as a last step (base64-inline the images). Flag if any screenshots contain real personal data — a manual full of real contacts should be delivered directly, not committed to the repo.
- Report back. Summarize: audience, sections written, any section flagged (blocked by a bug → point at qa-explore/qa-fix), and where the master + screenshots live.
Re-generating when the UI drifts
The Markdown is the master; the screenshots are regenerated, not hand-pasted. When the app changes, re-run step 3 (optionally scoped to the sections that changed) and the manual updates instead of rotting. Keep the approved toc in the config to skip GATE 1 on routine refreshes.
Where it fits
qa-explore finds bugs · qa-heal keeps the suite honest · qa-fix fixes the bugs · qa-manual turns the same "an agent that operates your app" engine into docs that stay true to the app. A flow with an open bug gets fixed first, then documented — the manual never teaches a broken path.
Notes
- Human approves twice (TOC, then draft). qa-manual never publishes unread.
- Never invents UI. Every step and screenshot comes from driving the real app; if something can't be reached, the section is flagged, not fabricated.
- Personal data aware. If the app shows real user data, the shared clean example should use fictional/sample records where possible; when real data is unavoidable in a screenshot, the skill flags the output as "deliver directly, do not commit".
- Cadence: on demand (
/qa-manual) and after shipping a feature that changes a documented flow.
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
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.

