Fable Domain
Sahir619/fable-method
Discuss a domain with the user, research it from real sources, then generate a trusted skill bundle for it - a step-by-step workflow with a flowchart, a domain adapter, a trap fixture, and a smoke…
Use after the fix round to validate the design by walking through key tasks as each persona — simulating how Jordan (low-vision), Priya (non-native speaker), Marcus (motor impairment), or any…
$ npx skills add Owl-Listener/designpowers --skill synthetic-user-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Owl-Listener/designpowers synthetic-user-testing --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/Owl-Listener/designpowers.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/synthetic-user-testing .claude/skills/synthetic-user-testing && 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 "synthetic-user-testing" agent skill from https://github.com/Owl-Listener/designpowers/tree/main/skills/synthetic-user-testing into .claude/skills/synthetic-user-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthetic-user-testing", 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/Owl-Listener/designpowers/tree/main/skills/synthetic-user-testingType 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 Owl-Listener/designpowers --skill synthetic-user-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Owl-Listener/designpowers synthetic-user-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Owl-Listener/designpowers.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/synthetic-user-testing .agents/skills/synthetic-user-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "synthetic-user-testing" agent skill from https://github.com/Owl-Listener/designpowers/tree/main/skills/synthetic-user-testing into .agents/skills/synthetic-user-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthetic-user-testing", 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 Owl-Listener/designpowers --skill synthetic-user-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Owl-Listener/designpowers synthetic-user-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Owl-Listener/designpowers.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/synthetic-user-testing .cursor/skills/synthetic-user-testing && 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 "synthetic-user-testing" agent skill from https://github.com/Owl-Listener/designpowers/tree/main/skills/synthetic-user-testing into .cursor/skills/synthetic-user-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthetic-user-testing", 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/Owl-Listener/designpowers.git --path skills/synthetic-user-testing--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 Owl-Listener/designpowers --skill synthetic-user-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Owl-Listener/designpowers synthetic-user-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Owl-Listener/designpowers.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/synthetic-user-testing .gemini/skills/synthetic-user-testing && 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 "synthetic-user-testing" agent skill from https://github.com/Owl-Listener/designpowers/tree/main/skills/synthetic-user-testing into .gemini/skills/synthetic-user-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthetic-user-testing", 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 Owl-Listener/designpowers synthetic-user-testingInstalls 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 Owl-Listener/designpowers --skill synthetic-user-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Owl-Listener/designpowers.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/synthetic-user-testing .github/skills/synthetic-user-testing && 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 "synthetic-user-testing" agent skill from https://github.com/Owl-Listener/designpowers/tree/main/skills/synthetic-user-testing into .github/skills/synthetic-user-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthetic-user-testing", 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 Owl-Listener/designpowers --skill synthetic-user-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Owl-Listener/designpowers synthetic-user-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Owl-Listener/designpowers.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/synthetic-user-testing .opencode/skills/synthetic-user-testing && 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 "synthetic-user-testing" agent skill from https://github.com/Owl-Listener/designpowers/tree/main/skills/synthetic-user-testing into .opencode/skills/synthetic-user-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthetic-user-testing", 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.
synthetic-user-testingUse after the fix round to validate the design by walking through key tasks as each persona — simulating how Jordan (low-vision), Priya (non-native speaker), Marcus (motor impairment), or any…
Synthetic User Testing is an agent skill from Owl-Listener/designpowers. Use after the fix round to validate the design by walking through key tasks as each persona — simulating how Jordan (low-vision), Priya (non-native speaker), Marcus (motor impairment), or any project persona would actually experience the interface. Catches the issues that code review misses because they only surface in the act of using
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Product & Project Management, covering User research. The repository describes itself as: An agent design team you control: 10 agents that run an inclusive design process while you direct. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cb00757. 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 markdown).
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.
Synthetic User Testing loads about 2.3k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 819 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 Owl-Listener/designpowers at commit cb00757, republished under its MIT licence (© Owl-Listener). 819 words, ~2,281 tokens.
.claude/skills/synthetic-user-testing/SKILL.md (or your agent's skills folder).Synthetic user testing is the closest thing to putting the design in front of real people without leaving the pipeline. You walk through the interface as each persona, attempting real tasks, and report what works, what breaks, and what feels wrong — from their perspective, not yours.
This is not a checklist exercise. It is an act of empathy disciplined by specifics. When you test as Jordan (low-vision, uses 200% zoom and high contrast), you don't ask "is contrast sufficient?" — you ask "can Jordan find the 'continue reading' button at 200% zoom when three articles are competing for attention?"
Before testing, assemble:
inclusive-personas (via design-state.md)For each key task in the brief, write a scenario that a persona would actually encounter. Scenarios are not "test case 1" — they are moments:
Format:
SCENARIO: [Natural situation trigger]
TASK: [What the persona is trying to accomplish]
PERSONA: [Name] — [key ability context]
SUCCESS: [What "done" looks like for this persona]Example:
SCENARIO: Jordan is on the train home and wants to finish an article
they started yesterday.
TASK: Find and continue a partially-read article.
PERSONA: Jordan — low vision, uses 200% zoom, high contrast mode,
reads on a phone with one hand.
SUCCESS: Jordan locates the article, picks up where they left off,
and the progress updates when they finish.For each scenario, simulate the persona's experience step by step. This is not "would this work?" — it is "let me try to do this the way [Persona] would."
For each step, document:
STEP [N]: [What the persona does]
USING: [Input method — touch, keyboard, screen reader, switch, etc.]
SEES: [What the interface presents — at their zoom level, contrast
setting, screen size]
THINKS: [What the persona would likely think or feel]
RESULT: ✓ succeeds / ⚠ succeeds with difficulty / ✗ fails / ? unclear
FINDING: [If ⚠, ✗, or ? — what went wrong and why]
WHO IS AFFECTED: [This persona, and any others with similar needs]Critical rules for walking through:
After walking through all scenarios, look for patterns across personas:
Barrier matrix:
| Task | Jordan | Priya | Marcus | [Persona] |
| | (low vis) | (ESL) | (motor) | |
|-------------------|-----------|-----------|-----------|-----------|
| Find article | ⚠ zoom | ✓ | ✗ target | ... |
| Continue reading | ✓ | ⚠ jargon | ✓ | ... |
| Mark complete | ✗ no fbk | ✓ | ⚠ gesture | ... |Pattern analysis:
Compile findings into a structured report (see "What You Deliver" below). Every finding must:
Severity in synthetic testing:
| Severity | Definition |
|---|---|
| Critical | Persona cannot complete the task at all |
| Major | Persona completes the task but with significant difficulty, confusion, or emotional friction |
| Minor | Persona completes the task but the experience is rougher than it should be |
Synthetic testing results feed into two places:
# Synthetic User Test Results: [Project Name]
**Date:** [YYYY-MM-DD]
**Build tested:** [what was tested]
**Personas tested:** [list]
**Tasks tested:** [list]
## Summary
[2-3 sentences: overall findings — who can use this, who can't,
and the biggest gap]
## Scenario Results
### Scenario 1: [Scenario name]
**Persona:** [Name] — [context]
**Task:** [what they're trying to do]
**Result:** ✓ / ⚠ / ✗
[Step-by-step walkthrough with findings]
### Scenario 2: ...
## Barrier Matrix
| Task | [Persona 1] | [Persona 2] | [Persona 3] | ... |
|------|-------------|-------------|-------------|-----|
| ... | ✓/⚠/✗ | ✓/⚠/✗ | ✓/⚠/✗ | ... |
## Cross-Persona Patterns
- **Universal barriers:** [issues affecting 2+ personas]
- **Friction hotspots:** [steps with clustered difficulty]
- **Emotional patterns:** [where confusion/frustration clusters]
## Findings by Severity
### Critical
- [Persona] cannot [task] because [specific reason] → [Fix]
### Major
- [Persona] struggles with [task] at [step] because [reason] → [Fix]
### Minor
- [Persona] experiences friction at [step] because [reason] → [Fix]
## Comparison: Pre-Fix vs Post-Fix
[If this is a re-test after fixes, show what improved and what didn't]
## Recommendation
[Ship / Fix and re-test / Rethink flow for [persona]]verification-before-shippinginclusive-personas, design-discovery (brief), design-state (all decisions)verification-before-shipping (persona walkthrough evidence), design-builder (if fixes needed), design-debt-tracker (deferred findings)usability-testing (which plans tests with real people — synthetic testing validates before real testing begins)| Synthetic User Testing | Usability Testing | |
|---|---|---|
| Who | AI walks through as each persona | Real people use the interface |
| When | After fix round, inside the pipeline | After shipping or during user research |
| Speed | Minutes | Days to weeks |
| Catches | Predictable barriers, flow breaks, friction | Unexpected behaviour, mental model mismatches, emotional reactions |
| Misses | True surprises — things no persona model predicts | Nothing (but expensive and slow) |
| Value | Closes the gap between build and validation without leaving the pipeline | Ground truth |
Synthetic testing does not replace real usability testing. It makes real testing more efficient by catching the obvious issues first, so real participants encounter the design at its best — and surface the surprises only humans can find.
© Owl-Listener, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/synthetic-user-testing of Owl-Listener/designpowers.
Open the folder on GitHubat commit cb00757
Synthetic User Testing 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 |
|---|---|---|---|---|---|---|
| Synthetic User Testing this skillOwl-Listener/designpowers | 251 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Fable DomainSahir619/fable-method | 2.3k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Design Sprintwondelai/skills | 2.4k | — | ~3.8k | Automated safety check: Pass | MIT | |
| User Research Cookiycookiy-ai/user-research-skill | 1.6k | — | ~954 | Automated safety check: Pass | MIT | |
| Produck Feedback To Buildtryproduck/produck-skills | 510 | — | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Customer InterviewsRefoundAI/lenny-skills | 1.4k | — | ~1.7k | Automated safety check: Pass | MIT |
Sahir619/fable-method
Discuss a domain with the user, research it from real sources, then generate a trusted skill bundle for it - a step-by-step workflow with a flowchart, a domain adapter, a trap fixture, and a smoke…
wondelai/skills
Run a structured 5-day process to prototype, test, and validate product ideas with real users.
cookiy-ai/user-research-skill
End-to-end user research assistant — qualitative and quantitative.
tryproduck/produck-skills
Pulls full in-context user feedback tickets through the Produck MCP server and turns them into an aligned product change instead of a guess.
RefoundAI/lenny-skills
Help users conduct high-impact customer interviews that move beyond surface-level feature requests to identify root emotional frustrations and specific causal triggers.
open-mercato/skills
Guides a product discovery conversation and writes product-brief.md with the problem, evidence, scope, decisions and the next open question, for existing, client or own ideas.
Owl-Listener/designpowers
A skill your agent uses when designing for user preferences — motion sensitivity, contrast needs, colour schemes, text sizing, information density, or any interface behaviour that should adapt to…
Owl-Listener/designpowers
A skill your agent uses when a design direction is uncertain, when the team could go multiple ways, or when the user wants to see competing approaches argued before committing — orchestrates…
Owl-Listener/designpowers
A skill your agent uses when critique or review produces deferred findings, when checking accumulated design compromises, or when deciding what to address in the next iteration.
Owl-Listener/designpowers
You MUST use this before any creative or design work — building features, creating components, designing interfaces, modifying user-facing behaviour.
Owl-Listener/designpowers
A skill your agent uses when design work is complete and needs to be communicated to engineering — creates specifications, documents rationale, accessibility requirements, and interaction details in…
Owl-Listener/designpowers
A skill your agent uses when the user wants to evaluate something that ALREADY EXISTS rather than build something new — "review this", "audit this screen", "what's wrong with this page", "is this…
Categories
Use after the fix round to validate the design by walking through key tasks as each persona — simulating how Jordan (low-vision), Priya (non-native speaker), Marcus (motor impairment), or any…. Synthetic User Testing is an agent skill from Owl-Listener/designpowers. Use after the fix round to validate the design by walking through key tasks as each persona — simulating how Jordan (low-vision), Priya (non-native speaker), Marcus (motor impairment), or any project persona would actually experience the interface.
Synthetic User Testing fits situations like: tasks that involve User research.
Run `npx skills add Owl-Listener/designpowers --skill synthetic-user-testing -a claude-code`. Or copy the skill folder (skills/synthetic-user-testing in Owl-Listener/designpowers) into .claude/skills/synthetic-user-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Owl-Listener/designpowers --skill synthetic-user-testing -a codex`. Or copy the skill folder (skills/synthetic-user-testing in Owl-Listener/designpowers) into .agents/skills/synthetic-user-testing 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 Owl-Listener/designpowers --skill synthetic-user-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/synthetic-user-testing, .gemini/skills/synthetic-user-testing, .github/skills/synthetic-user-testing and .opencode/skills/synthetic-user-testing in your project.
SKILL.md names no scripts, command-line tools or credentials: Synthetic User Testing 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.
Synthetic User Testing 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.3k tokens (SKILL.md is roughly 9.1k 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 Synthetic User Testing: Fable Domain (Sahir619/fable-method, 2.3k stars), Design Sprint (wondelai/skills, 2.4k stars), User Research Cookiy (cookiy-ai/user-research-skill, 1.6k stars) and Produck Feedback To Build (tryproduck/produck-skills, 510 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Owl-Listener (a GitHub user) maintains it in Owl-Listener/designpowers, which has 251 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on June 23, 2026.
Source: Owl-Listener/designpowers on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.