requirements-interview
Skill9 starsChanged 2 months agoMITView on GitHub
Extracts what someone actually needs by asking one question at a time, separating the problem from the solution they proposed. Use when a request is vague, when you are about to guess at intent, when scope keeps shifting, or when nobody has said what done means. Ends with written requirements and acceptance criteria.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Leshm0321/skillstheir own version, first seen Aug 8, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Leshm0321/skills★ 1same 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.
In this repository28 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- api-designSkill
- architecture-decisionSkill
- autonomous-relaySkill
- browser-verificationSkill
- code-review-passSkill
- data-analysisSkill
- data-modelingSkill
- data-pipelineSkill
- data-qualitySkill
- documentationSkill
- firmware-buildSkill
- frontend-buildSkill
- incident-responseSkill
- incremental-deliverySkill
- ml-lifecycleSkill
- performance-passSkill
- release-and-rollbackSkill
- security-hardeningSkill
- simplification-passSkill
- spec-writingSkill
- systematic-debuggingSkill
- tdd-loopSkill
- team-escalationSkill
- using-agent-dev-teamSkill
- work-breakdownSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 5 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Play back what you heard: before moving on. Misunderstandings are cheap now.
- Distinctive: line 50
When the request names a mechanism (a button, a table, a queue, a specific library), ask what it would let the person do, and why they …
- Distinctive: line 93
Every requirement is observable from outside the system.
- Distinctive: line 94
Every acceptance criterion could be turned into a test by someone who has not read the code.
- Distinctive: line 98
No requirement names a library, a table, or an endpoint.
≈ “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
Requirements Interview
People describe solutions, not problems. "Add an export button" is a solution; the problem is that someone rebuilds a report by hand every Monday. Interview until you have the problem, because the problem often has a better solution than the one proposed.
Rules of the interview
- One question per message. A list of five questions gets one answer, usually to the easiest one.
- Only ask questions where different answers change what gets built. Everything else gets a stated default. "I'll assume X unless you say otherwise" moves faster than a question and captures the same information.
- Prefer a choice over an open question. "A or B, and here is the trade-off" is easier to answer than "what do you want?" and produces a decision instead of a paragraph.
- Play back what you heard before moving on. Misunderstandings are cheap now.
- Stop when the next answer would not change the build. Over-interviewing is its own failure; you are spending someone's attention.
The questions that pay
Roughly in order. Skip any whose answer is already clear.
- Problem: What happens today without this? Walk me through the last time it hurt.
- Who: Who has this problem, and how many of them are there?
- Frequency and cost: How often, and what does each occurrence cost in time, money, or trust?
- Current workaround: What do they do instead now? A workaround tells you the real requirement better than any wish list.
- Success: How will you know this worked? What number moves, in which direction?
- Boundaries: What is explicitly not part of this?
- Constraints: What cannot change? Existing data, an external contract, a compliance rule, a deadline.
- Failure: What happens when it does not work? Who notices, and what should they see?
- Scale: How much data, how many users, how fast, on what devices?
Detecting a solution masquerading as a requirement
When the request names a mechanism (a button, a table, a queue, a specific library), ask what it would let the person do, and why they cannot do that now. Two rounds of this usually surfaces the actual problem. Then check whether the proposed mechanism is still the best answer; often it is not.
Handling "everything is important"
Force a trade: "If you could only have one of these next week, which one?" Ranking is information the person has and will not volunteer.
Output
# <Feature>
## Problem
<the situation today, concretely, with the cost>
## Users and context
## Requirements
### Must
### Should
### Later
## Non-goals
<the adjacent things explicitly out, and why>
## Acceptance criteria
- Given <state>, when <action>, then <observable result>
## Assumptions
<defaults you took instead of asking; each is a place to be corrected>
## Open questions
| Question | Who answers | Blocking? |
## Success measure
<the number, and its direction>Verification
- Every requirement is observable from outside the system.
- Every acceptance criterion could be turned into a test by someone who has not read the code.
- Non-goals are non-empty. An empty non-goals section means scope was never bounded.
- Assumptions are listed, so silence is not mistaken for agreement.
- No requirement names a library, a table, or an endpoint.
Red flags
| Thought | Reality |
| "I understand enough to start" | Then write the acceptance criteria. If you cannot, you do not. |
| "I'll ask all my questions at once" | You will get one answer. One question per message. |
| "They said they want X, so the requirement is X" | X is a solution. Find the problem underneath it. |
| "Everything is a must" | Then nothing is ranked, and the team will build the easy half. |
| "I'll leave scope open for flexibility" | Open scope is an unbounded estimate, not flexibility. |
| "It is obvious what done means" | Write it down anyway. Obvious requirements produce the most rework. |
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.

