User Story Mapping
deanpeters/Product-Manager-Skills
Lays out a user journey as activities, steps, and tasks on a two-dimensional map that then informs backlog slicing.
End-to-end app feature inventory and user-story testing workflow with a canonical tracker.
$ npx skills add majiayu000/spellbook --skill app-user-story-qa -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install majiayu000/spellbook app-user-story-qa --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/app-user-story-qa .claude/skills/app-user-story-qa && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "app-user-story-qa" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/app-user-story-qa into .claude/skills/app-user-story-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-user-story-qa", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/majiayu000/spellbook/tree/main/skills/app-user-story-qaType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add majiayu000/spellbook --skill app-user-story-qa -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install majiayu000/spellbook app-user-story-qa --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/app-user-story-qa .agents/skills/app-user-story-qa && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "app-user-story-qa" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/app-user-story-qa into .agents/skills/app-user-story-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-user-story-qa", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add majiayu000/spellbook --skill app-user-story-qa -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install majiayu000/spellbook app-user-story-qa --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/app-user-story-qa .cursor/skills/app-user-story-qa && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "app-user-story-qa" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/app-user-story-qa into .cursor/skills/app-user-story-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-user-story-qa", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/majiayu000/spellbook.git --path skills/app-user-story-qa--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add majiayu000/spellbook --skill app-user-story-qa -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install majiayu000/spellbook app-user-story-qa --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/app-user-story-qa .gemini/skills/app-user-story-qa && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "app-user-story-qa" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/app-user-story-qa into .gemini/skills/app-user-story-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-user-story-qa", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install majiayu000/spellbook app-user-story-qaInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add majiayu000/spellbook --skill app-user-story-qa -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/app-user-story-qa .github/skills/app-user-story-qa && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "app-user-story-qa" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/app-user-story-qa into .github/skills/app-user-story-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-user-story-qa", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add majiayu000/spellbook --skill app-user-story-qa -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install majiayu000/spellbook app-user-story-qa --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/majiayu000/spellbook.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/app-user-story-qa .opencode/skills/app-user-story-qa && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "app-user-story-qa" agent skill from https://github.com/majiayu000/spellbook/tree/main/skills/app-user-story-qa into .opencode/skills/app-user-story-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "app-user-story-qa", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
app-user-story-qaEnd-to-end app feature inventory and user-story testing workflow with a canonical tracker.
App User Story QA is an agent skill from majiayu000/spellbook. End-to-end app feature inventory and user-story testing workflow with a canonical tracker. Use when the user asks to audit every feature, derive expected behavior from code, test user journeys, or explicitly fix and retest documented UX or logistical defects.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Product & Project Management, covering User stories and Customer journey mapping. The repository describes itself as: Cross-runtime skills for Claude Code, Codex, and multi-agent workflows. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ed52af7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are csv).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
App User Story QA loads about 2.1k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 1,165 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from majiayu000/spellbook at commit ed52af7, republished under its MIT licence (© majiayu000). 1,165 words, ~2,097 tokens.
.claude/skills/app-user-story-qa/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use this skill to turn a broad "test every feature in this app" request into a controlled loop with one source of truth. Anchor every feature to code, track expected behavior in a canonical spreadsheet, run tests against each user story, and classify failures. Apply fixes only when the current request explicitly authorizes them.
Use plan_first for most runs. Switch to clarify_first only when the app boundary, writable checkout, production risk, or acceptance criteria are unclear enough that a wrong assumption would waste substantial work.
Before editing:
AGENTS.md, README, architecture docs, and feature entrypoints.Select one mode before editing production code:
report_only is the default for audit, inventory, test, diagnose, or tracker requests. It may create or update the requested canonical tracker and run tests, but it must not change product behavior.apply_fixes requires the current user request to explicitly ask for fixes. It covers only defects already reproduced and classified within the agreed app boundary. Earlier approval and a generic request to "test everything" do not authorize fixes.If the mode is ambiguous, use report_only and record proposed fixes in the tracker.
Direct actions:
apply_fixes only, fix narrow in-scope logistical or UX defects and add focused coverage when user-observable behavior changes.Escalate before:
Evidence-backed pushback:
Feedback loop:
report_only.Create or update exactly one tracker. Prefer a real spreadsheet when the runtime supports it; otherwise use a CSV and treat it as the canonical spreadsheet. Do not scatter status across side reports.
Use these columns:
Feature ID,Surface,Feature / capability,User story,Expected behavior based on code,Code anchors,Initial test approach,Initial test command or route,Status,Test result,Errors,Fix status,Retest result,NotesRules:
F001, F002.Use a small, consistent status set:
Not TestedPassedFailed - ProductFailed - UXFailed - LogisticalFailed - Test InfraBlocked - EnvFixedPassed after fixUse Failed - Logistical for repo-owned setup, script, port, packaging, or local workflow defects that block a valid user path.
Use Blocked - Env for local machine issues such as missing credentials, occupied services outside the repo, stale PATH binaries, or unavailable optional runtimes. Do not "fix" the user's environment unless they explicitly ask.
Classify every failure before fixing:
Product: implemented behavior violates the user story or loses data.UX: behavior works but the user path is confusing, brittle, or poorly surfaced.Logistical: scripts, ports, setup, packaging, or local workflow make valid behavior hard to exercise.Test Infra: the test itself is flaky, racy, or asserts the wrong contract.Env: external setup blocks execution and is not a repo defect.Fix only defects that are in scope for the task. Record out-of-scope defects in the tracker with clear rationale.
Map all user-visible surfaces first:
For each feature, record the user story as:
As a <user>, I want <capability>, so <outcome>.Keep stories practical. Do not create rows for private helpers unless the user can observe the behavior through a surface.
For every tracker row, choose the strongest feasible evidence:
Record the command, route, or manual steps in the tracker. Fresh output from the current session is required before marking a row passed.
In report_only, record the reproduced defect, evidence, and proposed fix, then continue testing without editing production code.
In apply_fixes, state the exact defect and files being changed before editing. Keep fixes narrow:
Stop and re-evaluate after three failed attempts on the same defect.
After each fix:
Fix status and Retest result.Errors so the tracker remains an audit log.Before completion, run the repo's required formatting, build, typecheck, lint, and test commands when practical.
Finish only when:
Failed row is fixed and retested in apply_fixes, or is explicitly recorded as proposed, out of scope, or blocked with evidence in report_only;If the repo has existing dirty work that is not yours, mention the isolated worktree or scope boundary in the final answer.
© majiayu000, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/app-user-story-qa of majiayu000/spellbook.
Open the folder on GitHubat commit ed52af7
App User Story QA next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| App User Story QA this skillmajiayu000/spellbook | 287 | — | ~2.1k | Automated safety check: Pass | MIT | |
| User Story Mappingdeanpeters/Product-Manager-Skills | 7.2k | 2 repos | ~2.8k | Automated safety check: Pass | Custom licence | |
| Super Product Ownersyahiidkamil/Software-Engineer-AI-Agent-Atlas | 401 | — | ~7.9k | Automated safety check: Pass | None | |
| 09 Customer Insight Globalminhnv0807/ai-business-skills | 609 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Aidd Product Managerparalleldrive/aidd | 384 | — | ~845 | Automated safety check: Pass | MIT | |
| User Researchyonatangross/orchestkit | 292 | — | ~1.6k | Automated safety check: Pass | MIT |
deanpeters/Product-Manager-Skills
Lays out a user journey as activities, steps, and tasks on a two-dimensional map that then informs backlog slicing.
syahiidkamil/Software-Engineer-AI-Agent-Atlas
Complete Product Owner / Product Manager capability — a wiki-style knowledge map of product practice in active software development: the role and its boundaries, strategy cascade (vision → OKRs →…
minhnv0807/ai-business-skills
A skill your agent uses when the user needs to understand customers deeply enough to write copy and pick targeting — consumer versus shopper, JTBD, layered persona, internal monologue, pain map…
paralleldrive/aidd
Plan features, user stories, user journeys, and conduct product discovery.
yonatangross/orchestkit
User personas, customer journey maps, interview guides, usability testing, and card sorting.
digipulse-engineering/GAAI-framework
Validate user stories by simulating real user journeys in a live browser against deployed application.
majiayu000/spellbook
Audits and repairs how coding-agent Skills are owned, copied and exposed across runtimes, from canonical sources to quarantine and retirement.
majiayu000/spellbook
Scans a repository for real evidence and proposes, or on request writes, a small stack of root and scoped AGENTS.md files with validation commands and generated-file boundaries.
majiayu000/spellbook
Plans, produces or diagnoses evidence-backed product demo videos: script, capture plan, pacing checks and verified final media built on real product behavior.
majiayu000/spellbook
Single entry point that routes long or ambiguous agent tasks, checks live state, bounds autonomous loops and leaves a resumable handoff.
majiayu000/spellbook
Scans a repository, its lockfiles and node_modules for known malicious npm package versions and install-time indicators, using a read-only Python scanner.
majiayu000/spellbook
Product management helpers: a RICE scoring script, an interview transcript analyzer and PRD templates for prioritizing features, synthesizing research and writing requirements.
Categories
End-to-end app feature inventory and user-story testing workflow with a canonical tracker. App User Story QA is an agent skill from majiayu000/spellbook. End-to-end app feature inventory and user-story testing workflow with a canonical tracker.
App User Story QA fits situations like: the user asks to audit every feature; derive expected behavior from code; test user journeys; explicitly fix and retest documented UX.
Run `npx skills add majiayu000/spellbook --skill app-user-story-qa -a claude-code`. Or copy the skill folder (skills/app-user-story-qa in majiayu000/spellbook) into .claude/skills/app-user-story-qa in your project. Claude Code loads it when a task matches its description.
Run `npx skills add majiayu000/spellbook --skill app-user-story-qa -a codex`. Or copy the skill folder (skills/app-user-story-qa in majiayu000/spellbook) into .agents/skills/app-user-story-qa in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add majiayu000/spellbook --skill app-user-story-qa -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/app-user-story-qa, .gemini/skills/app-user-story-qa, .github/skills/app-user-story-qa and .opencode/skills/app-user-story-qa in your project.
SKILL.md names no scripts, command-line tools or credentials: App User Story QA is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
App User Story QA is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with App User Story QA: User Story Mapping (deanpeters/Product-Manager-Skills, 7.2k stars), Super Product Owner (syahiidkamil/Software-Engineer-AI-Agent-Atlas, 401 stars), 09 Customer Insight Global (minhnv0807/ai-business-skills, 609 stars) and Aidd Product Manager (paralleldrive/aidd, 384 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
majiayu000 (a GitHub user) maintains it in majiayu000/spellbook, which has 287 GitHub stars. The repository holds 97 skills in this directory. The repository was last updated on October 8, 2026.
Source: majiayu000/spellbook on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.