Mom Test
getagentseal/founder-playbook
Validates business ideas through customer conversations using Rob Fitzpatrick's Mom Test framework.
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.
$ npx skills add open-mercato/skills --skill om-discover -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install open-mercato/skills om-discover --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/open-mercato/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/om-discover .claude/skills/om-discover && 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 "om-discover" agent skill from https://github.com/open-mercato/skills/tree/main/skills/om-discover into .claude/skills/om-discover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "om-discover", 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/open-mercato/skills/tree/main/skills/om-discoverType 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 open-mercato/skills --skill om-discover -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install open-mercato/skills om-discover --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-mercato/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/om-discover .agents/skills/om-discover && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "om-discover" agent skill from https://github.com/open-mercato/skills/tree/main/skills/om-discover into .agents/skills/om-discover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "om-discover", 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 open-mercato/skills --skill om-discover -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install open-mercato/skills om-discover --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-mercato/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/om-discover .cursor/skills/om-discover && 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 "om-discover" agent skill from https://github.com/open-mercato/skills/tree/main/skills/om-discover into .cursor/skills/om-discover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "om-discover", 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/open-mercato/skills.git --path skills/om-discover--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 open-mercato/skills --skill om-discover -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install open-mercato/skills om-discover --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-mercato/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/om-discover .gemini/skills/om-discover && 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 "om-discover" agent skill from https://github.com/open-mercato/skills/tree/main/skills/om-discover into .gemini/skills/om-discover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "om-discover", 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 open-mercato/skills om-discoverInstalls 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 open-mercato/skills --skill om-discover -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/open-mercato/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/om-discover .github/skills/om-discover && 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 "om-discover" agent skill from https://github.com/open-mercato/skills/tree/main/skills/om-discover into .github/skills/om-discover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "om-discover", 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 open-mercato/skills --skill om-discover -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install open-mercato/skills om-discover --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/open-mercato/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/om-discover .opencode/skills/om-discover && 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 "om-discover" agent skill from https://github.com/open-mercato/skills/tree/main/skills/om-discover into .opencode/skills/om-discover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "om-discover", 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.
om-discoverGuides 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.
This skill runs a structured discovery conversation to help you make a current product decision, then records the basis, scope, rules and unresolved risks in a `product-brief.md` file that later skills, including code and UX review, read as a protected contract of non-goals and business rules. A hard rule bars inventing research, user behavior, quotes or measurements: a missing fact stays marked unknown or becomes an explicit hypothesis, and a decision without your confirmation stays a proposal rather than becoming settled fact.
You can target an existing product, a client's idea or your own idea, each mode starting from different evidence, existing usage data, a client's stated decision, or a problem hypothesis and existing alternatives, with follow-ups pulled in only when relevant to the current decision. A `--quick` option runs one round of two or three independent questions with an inline skeptic check instead of a full interview, and `--refresh` updates an existing brief while preserving ids and superseded decisions. Reference files cover interview rounds, evidence tiers, a context gate, a skeptic prompt, templates and a prototype handoff.
10 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3fc5a1f. 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.
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.
Product Discovery Brief Builder loads about 3k tokens when it runs, and up to ~21k if it reads all its reference files. Until then it costs about 72 tokens; SKILL.md has 1,601 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 open-mercato/skills at commit 3fc5a1f, republished under its MIT licence (© open-mercato). 1,601 words, ~3,013 tokens.
.claude/skills/om-discover/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.Establish product context that later skills can use without guessing. Help the user make the current decision, then record the basis, scope, rules, and unresolved risks in ${SPECS_DIR}/product-brief.md. om-brainstorm handles an individual idea; this skill establishes or refreshes the product context it reads. The brief's Non-goals, Business rules and Decisions also supply the protected contract that om-code-review and om-ux-review-pr enforce under SDLC.md.
<HARD-GATE>
Never invent research, user behaviour, quotes, or measurements. A missing fact stays unknown or becomes an explicitly identified hypothesis. A human may choose to build with an untested assumption; that decision does not turn it into evidence. Decisions without human confirmation remain `proposal`. Material needed for the current decision goes on a collection plan; irrelevant empty sections need no research task.
</HARD-GATE>
{topic} (optional): product or area to discover. When absent, ask what the brief is for.--mode existing|client|own (optional): use the stated mode; otherwise infer it from the material and confirm it with the opening decision frame.--refresh (optional): update an existing brief, preserving ids and superseded decisions.--research <dir> (optional): raw material directory; default ${SPECS_DIR}/research.--quick (optional): one round, normally two or three independent questions; inline skeptic; the same evidence, coherence, and compression checks. Use material already available, including flows. Defer details irrelevant to the next decision without creating research tasks. Further substantive questions require the user to choose to extend the session.Read references/modes.md for the selected mode. Modes guide where to look and what might matter; depth follows the current decision and its risks.
| Mode | Start from | Follow up when relevant |
|---|---|---|
existing | observed problems, current users, usage and support evidence | affected flows, compatibility, data and rollout risks |
client | the decision needed, the client's process and stakeholder disagreements | constraints, integrations, rollout and service requirements |
own | the problem hypothesis, existing alternatives and evidence beyond the team | the assumption to test, provisional scope and conditions for revisiting it |
ALWAYS check first: Apply .ai/skills/om-discover/SKILL.md when present; safety rules still win.
Load context. Follow references/agentic-setup.md. Config is optional; without it use .ai/specs and do not start pipeline setup. Resolve paths, load available repository and design context, and apply the untrusted-content boundary. Tracker operations, when configured, are read-only: search-issues, search-prs, get-issue, list-issue-comments. Read references/rules.md for shared conventions.
Frame the decision and mode. Read enough material to state what the session should help decide. If unclear, ask what decision the user needs to make. An explicit mode stands; otherwise propose existing for a product with users, client for material from a client, or own. Confirm the inferred mode in the same exchange rather than a separate setup round. Combine relevant concerns when modes overlap. The brief owner defaults to the person running the session; settle missing names only when needed to attribute a decision.
Check the material. Follow references/context-gate.md. Read available research, repository files and tracker context before asking the user for facts. Identify what supports the current decision and what could change it. Keep unsupported claims as unknown; with the user's choice to continue on assumptions, record them honestly. Put consequential missing material on a collection plan. Keep other empty sections short and deferred. On --refresh with a tracker, read resolved-assumptions comments on open and merged spec PRs through search-prs and list-issue-comments here, before drafting. Record confirmed choices with the confirmer and source; factual assumptions remain unverified unless new evidence supports them.
Ask and record. Follow references/interview-rounds.md and references/voice.md. Ask two or three independent questions that could change the decision, or one when later questions depend on it. Use batches of up to eight only when the user prefers them. Ask about experiences without suggesting the answer. Offer a recommendation for a decision only when its alternatives and tradeoff can be explained. Accept a concrete story or “we don't know”. Full sessions have at most three substantive rounds including skeptic questions unless the user asks for more; quick sessions have one. Record confirmed decisions under ${research}/decisions/; a direct account may be captured under ${research}/interviews/ as described in the context gate. Writing a record documents its origin, not the truth of every belief it contains.
Draft the brief. Use references/brief-template.md and references/evidence-tiers.md. Start with the short Decision summary, then retain all existing detailed headings and ids. Give each claim a clear meaning as an observation, decision or hypothesis and a source tag in its canonical section. Keep full rule wording in one place and refer to it elsewhere. Show the independent source basis and important unknowns beside the legacy Coverage count; the count is not product validation.
Check the draft. Apply references/quality-gate.md, including source fidelity, problem/solution fit, the proposed test, and compression. Fix your own unsupported generalizations, transcription mistakes and duplicate prose from the sources. An honestly incomplete brief may be written, but must say what it cannot support yet.
Get a skeptical reading. Give a fresh-context subagent the draft, mode, cited source paths, and references/skeptic-prompt.md. It checks the material independently. If subagents are unavailable, use the same checks inline and disclose that the full pass lacked independent review. Separate agent errors, which you correct, from missing facts or consequential decisions, which go back to the user within the round budget. Under --quick, use the same checks inline and state the lack of independent review. If the budget is spent, leave the unresolved item visible and ask permission to extend only when needed; do not add a hidden round. Recheck changed content.
Confirm and write. Present the Decision summary, the scope split, consequential decisions and owners, evidence limitations, and remaining blockers. Use clear prior confirmation when it covers these exact choices and their material consequences; otherwise wait for the user's confirmation before writing ${SPECS_DIR}/product-brief.md. A batch confirmation covers only explicit independent choices; it cannot supply missing facts or answer unresolved prerequisites. A pending choice may remain a proposal. On --refresh, retain old ids and history; a changed decision gets a superseding row approved by its owner. If material or decisions have changed since review, repeat steps 4–6 on the changed content before confirmation and writing. Write only the brief and the context gate's authorized records and templates.
Offer a relevant next step. Follow references/prototype-handoff.md. Offer one action the current evidence makes useful and run another skill only when the user authorizes it. A synthetic panel requires a concrete Key flow and a reason that examining it would inform the current decision, or the user's request. Without a flow, name what is missing and skip that handoff; never invent one. Choose the panel subject and arguments through references/modes.md. After a completed panel, offer a relevant neutral prototype through om-mockup-prototype, then a separately authorized walkthrough only when its verification passed. Refresh the brief once through steps 2 and 4–7 from the completed material, preserving confirmation and review. Resume at readiness, without repeating panel or prototype offers. If readiness is met, offer om-backlog <brief> --dry-run; otherwise name the specific missing material or decision. Further questions require an explicit session extension. A backlog dry run does not authorize issue filing. Missing companions stop only their handoff; do not install anything.
Report. Follow references/report-templates.md. State the useful outcome and the remaining uncertainty, link the detailed record, and end with the output lines below.
Keep these machine-parsed lines exact and undecorated:
Product brief: <repo-relative path>
Coverage: <n> claims — <a> sourced (interview <i>, data <d>, document <c>, product <p>, benchmark <b>), <s> synthetic, <u> assumed
Collection plan: <k> entries waiting for material
Next: om-<skill> <supported args> | noneEmit Product brief: and Coverage: only when a brief was written; emit Collection plan: only for actual material requests. Next: names only a user-authorized skill action that has not started and is ready to run. Preserve its supported arguments, including --dry-run or the selected panel subject, flow, stance, research directory and panel options. Use none for an unaccepted or declined offer, a completed action, a blocked handoff, or collecting facts and making decisions. Describe completed actions and offers in prose; they are not pending commands. Emit only one final Next:; never automatically execute or copy a child's routing line. Relay completed artifact paths and their actual verification status before the final contract lines. Put Elapsed: <minutes per step> before these lines when timing is available; otherwise say timing was not recorded.
Consumers accept ^Product brief: (\S+)$, ^Coverage: (\d+) claims, ^Collection plan: (\d+) entries, and ^Next: (none|om-[a-z-]+.*)$. Keep the legacy Coverage counting scope from references/evidence-tiers.md; synthetic hypotheses are reported separately in prose. Do not infer readiness from aggregate counts.
om-auto-* skill. Without a user available, report the limitation and stop.references/rules.md. Paths come from configuration; no stack or domain is assumed.© open-mercato, 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 12 other files (references) in skills/om-discover of open-mercato/skills.
Open the folder on GitHubat commit 3fc5a1f
Product Discovery Brief Builder 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 |
|---|---|---|---|---|---|---|
| Product Discovery Brief Builder this skillopen-mercato/skills | 231 | — | ~3k | Automated safety check: Pass | MIT | |
| Mom Testgetagentseal/founder-playbook | 729 | — | ~2.3k | Automated safety check: Pass | MIT | |
| User Story Writerdeanpeters/Product-Manager-Skills | 7.2k | 2 repos | ~2.9k | Automated safety check: Pass | Custom licence | |
| User Research Cookiycookiy-ai/user-research-skill | 1.6k | — | ~954 | Automated safety check: Pass | MIT | |
| Fable DomainSahir619/fable-method | 2.3k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Ouroboros PM InterviewQ00/ouroboros | 6.2k | — | ~5.7k | Automated safety check: Pass | MIT |
getagentseal/founder-playbook
Validates business ideas through customer conversations using Rob Fitzpatrick's Mom Test framework.
deanpeters/Product-Manager-Skills
Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.
cookiy-ai/user-research-skill
End-to-end user research assistant — qualitative and quantitative.
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…
Q00/ouroboros
Runs a guided product-manager interview that classifies each question automatically and produces a Product Requirements Document.
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.
open-mercato/skills
Turns a product brief or a spec's phasing into a tracker backlog of epics, stories and tasks with stable ids, acceptance criteria and epic checklists.
open-mercato/skills
Builds a clickable low-fidelity prototype of one flow from a product brief during discovery, with simulated data and browser checks, before detailed design.
open-mercato/skills
Builds a panel of personas from real material, interviews them under decision pressure (never stated preference), and walks a flow through their eyes — on a brief, a spec, a prototype, or the…
open-mercato/skills
Runs a manual QA session for a PR, issue, or branch — publishes an interactive runbook the tester works through in parallel from the moment a plan exists, updated with AI verdicts and bugs at the end.
open-mercato/skills
Adds the product layer to a repository that om-setup-agent-pipeline already configured — one yes per product role, a discovery block in .ai/agentic.config.json, the Discovery stage, Definition of…
open-mercato/skills
Bring existing tracker issues up to standard without implementing anything — applies missing SDLC labels, clarifies laconic issues (analyzing attached screenshots), posts a read-only…
Categories
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. md` file that later skills, including code and UX review, read as a protected contract of non-goals and business rules. A hard rule bars inventing research, user behavior, quotes or measurements: a missing fact stays marked unknown or becomes an explicit hypothesis, and a decision without your confirmation stays a proposal rather than becoming settled fact.
Product Discovery Brief Builder fits situations like: starting discovery on a new product idea before writing a brief; refreshing an existing product brief after new evidence comes in; running a quick, one-round discovery check before a smaller decision; turning a client's request into a documented scope and set of decisions.
Run `npx skills add open-mercato/skills --skill om-discover -a claude-code`. Or copy the skill folder (skills/om-discover in open-mercato/skills) into .claude/skills/om-discover in your project. Claude Code loads it when a task matches its description.
Run `npx skills add open-mercato/skills --skill om-discover -a codex`. Or copy the skill folder (skills/om-discover in open-mercato/skills) into .agents/skills/om-discover 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 open-mercato/skills --skill om-discover -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/om-discover, .gemini/skills/om-discover, .github/skills/om-discover and .opencode/skills/om-discover in your project.
SKILL.md names no scripts, command-line tools or credentials: Product Discovery Brief Builder 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.
Product Discovery Brief Builder is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 18k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Product Discovery Brief Builder: Mom Test (getagentseal/founder-playbook, 729 stars), User Story Writer (deanpeters/Product-Manager-Skills, 7.2k stars), User Research Cookiy (cookiy-ai/user-research-skill, 1.6k stars) and Fable Domain (Sahir619/fable-method, 2.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
open-mercato (a GitHub organization) maintains it in open-mercato/skills, which has 231 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 5, 2026.
Source: open-mercato/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.