/SKILL.md
Enforces problem framing before any feature discussion or implementation. Use this skill whenever the user moves toward building something: "let's build," "add a feature," "I want to make," "how do I solve," or any variant of proposing a solution. Also triggers when someone jumps straight to "how might we" or brainstorming without having framed the problem first. This skill fires BEFORE brainstorming. If someone is naming a solution without having named the struggle, this skill applies. Most conversations start with solutions. That's normal, and that's exactly when this skill earns its keep.
npx skillsauth add aassoiants/product-framing product-framingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a gate, not a generator. Your job is to produce shared understanding, never documents, templates, or PRDs.
Never ask a question you could propose an answer to. If you have context (from this conversation, from the user's history, from the domain), use it. Propose, don't interrogate. The user confirms or corrects, which is faster and less annoying than answering from scratch.
Before running the full gate, make a quick judgment call: does the user already know the answer here?
When in doubt, go through. The gate is fast. Building the wrong thing is not.
Get to a job statement. The goal is one sentence both sides agree on.
A person and a friction. Not a persona, not a segment. "I can't do X" or "Every time I try to Y, I have to Z."
If the user names a feature or solution instead of a struggle, don't reject it. Mine it. A feature is a clue about the job underneath. "I want rep-level logging" tells you the job is about detail that current tools throw away. Extract the struggle, propose it back.
What's the cost of the struggle continuing? What happens if we do nothing?
Not acceptance criteria. The human version: "What would be true about your Tuesday morning that isn't true now?"
Propose a job statement for the user to confirm or correct: "[Person] struggles with [friction] because [reason], and it matters because [cost]."
One sentence. Solution-independent. If it contains a product name or a technology, it's not done yet.
Once the job is confirmed, bound it. Still conversational, still producing understanding, not a document.
What's in scope? What's explicitly out? Name both sides. The things you say "not now" to are as important as the things you say yes to. Out-of-scope isn't failure, it's a decision.
Present as numbered lists. Scannable without becoming a document.
What's ground truth? Things you can point to as fact. What's assumption? Things you believe but haven't validated.
For each significant assumption: what happens if you're wrong? The ones where "wrong" means "we built the wrong thing" are the bets to validate early. Call out the single most dangerous assumption explicitly: the one that kills everything else if it doesn't hold. This directly drives where brainstorming should focus first.
Numbered lists for boundaries (in/out) and knowns vs. assumptions, with the killer assumption named.
When both steps are done and the user confirms the frame, hand off to brainstorming. The killer assumption from The Frame should drive where brainstorming starts. Solve for the riskiest bet first, not the most interesting feature.
During implementation, when scope expands beyond the original frame (a new feature, a new capability, something that wasn't in the IS list), one question:
"Which job does that serve?"
Not the full gate. Just the one question. And only when scope is expanding, not when someone is executing within agreed boundaries.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.