requirements-clarification
Skill1 starsChanged 3 months agoMITView on GitHub
Use before implementing a significant feature or change when requirements are ambiguous, underspecified, or likely to have multiple reasonable interpretations, or when a requirement arrives pre-formed as an issue, audit finding, or review comment whose claim needs checking — covers verifying the premise before acting, structured discovery, one question at a time, edge-case probing, and writing a brief requirements summary before coding starts.
4 other projects use a version of this.
Adopted by
Most recently taken up by
- taljeon/plzdotheir own version, first seen Nov 1, 2026
- haoyuqi/engineering-agent-skillstheir own version, first seen Oct 22, 2026
- dss-time/repo-doctor-skillstheir own version, first seen Oct 15, 2026
- ivyfan-toowell/IvyClawtheir own version, first seen Oct 13, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- ivyfan-toowell/IvyClaw★ 66same name
- taljeon/plzdo★ 9same name
- dss-time/repo-doctor-skills★ 1same name
- haoyuqi/engineering-agent-skills★ 0same 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 repository77 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/accessibility.mdcCursor rule
- .cursor/rules/agentharness-router.mdcCursor rule
- .cursor/rules/agentic-loops.mdcCursor rule
- .cursor/rules/api-design.mdcCursor rule
- .cursor/rules/audit-review-followup.mdcCursor rule
- .cursor/rules/big-work-plan-review.mdcCursor rule
- .cursor/rules/branching.mdcCursor rule
- .cursor/rules/clean-architecture.mdcCursor rule
- .cursor/rules/code-review-api.mdcCursor rule
- .cursor/rules/code-review-db.mdcCursor rule
- .cursor/rules/code-review.mdcCursor rule
- .cursor/rules/code-review-ui.mdcCursor rule
- .cursor/rules/committing.mdcCursor rule
- .cursor/rules/database-conventions.mdcCursor rule
- .cursor/rules/dependency-audit.mdcCursor rule
- .cursor/rules/dependency-injection.mdcCursor rule
- .cursor/rules/design-patterns.mdcCursor rule
- .cursor/rules/docker-conventions.mdcCursor rule
- .cursor/rules/error-handling.mdcCursor rule
- .cursor/rules/file-placement-policy.mdcCursor rule
- .cursor/rules/github-issue-triage.mdcCursor rule
- .cursor/rules/go-conventions.mdcCursor rule
- .cursor/rules/harness-feedback.mdcCursor rule
- .cursor/rules/logging.mdcCursor rule
- .cursor/rules/multi-agent-coordination.mdcCursor rule
- .cursor/rules/mutation-testing.mdcCursor rule
- .cursor/rules/performance-profiling.mdcCursor rule
- .cursor/rules/planning-with-files.mdcCursor rule
- .cursor/rules/port-agent-config.mdcCursor rule
- .cursor/rules/project-bootstrap.mdcCursor rule
- .cursor/rules/python-conventions.mdcCursor rule
- .cursor/rules/react-best-practices.mdcCursor rule
- .cursor/rules/refactoring.mdcCursor rule
- .cursor/rules/requirements-clarification.mdcCursor rule
- .cursor/rules/security-review.mdcCursor rule
- .cursor/rules/solid-principles.mdcCursor rule
- .cursor/rules/testing.mdcCursor rule
- .cursor/rules/typescript-conventions.mdcCursor rule
- accessibilitySkill
- agentic-loopsSkill
- api-designSkill
- audit-review-followupSkill
- big-work-plan-reviewSkill
- branchingSkill
- clean-architectureSkill
- code-review-apiSkill
- code-review-dbSkill
- code-reviewSkill
- code-review-uiSkill
- committingSkill
- database-conventionsSkill
- dependency-auditSkill
- dependency-injectionSkill
- design-patternsSkill
- docker-conventionsSkill
- error-handlingSkill
- file-placement-policySkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 9 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
Not every requirement arrives as a conversation.
- Distinctive: line 35
Verify them separately — they fail independently, and the second fails more often.
- Distinctive: line 52
Watch for the check that passes for the wrong reason: When you write a check to confirm a claim, confirm the check actually exercises what …
- Distinctive: line 62
Ask one focused question, wait for the answer, then ask the next.
- Distinctive: line 64
Stop when you have enough to write the success criteria.
- Distinctive: line 77
If the user says "add search to the app" — done means search results are displayed, or the search index is built, or both?
- Distinctive: line 107
If the user describes a manual test, write it down as a criterion.
- Very specific: line 114
After the conversation, write a short summary.
- Distinctive: line 149
Implementing then asking: Write the requirements summary before writing a single line of code.
- Distinctive: line 153
Scope creep during discovery: If the user adds a new capability mid-conversation, note it separately and decide whether it's in or out of …
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Requirements Clarification
Gather requirements before writing code. A few minutes of structured discovery prevents hours of rework. Use this skill when a request is ambiguous, underspecified, or likely to have non-obvious edge cases.
When NOT to clarify: The request is a single, well-scoped bug fix with one clear resolution. Don't block on questions you can resolve by reading the existing code.
Verify the premise before accepting the requirement
Not every requirement arrives as a conversation. Many arrive pre-formed — a filed issue, an audit finding, a review comment, a recommendation document — asserting that something is broken or missing. That is a claim, and claims can be stale, partly wrong, or right for the wrong reason. Check it against the current code before designing anything.
A requirement that arrives with a proposed solution is two claims:
- The problem exists.
- The proposed change addresses it.
Verify them separately — they fail independently, and the second fails more often. A real problem paired with a wrong remedy is the most expensive case, because the problem being real lends the remedy false credibility.
| What you find | Right response |
| Claim true, proposal fits | Implement it |
| Claim true, proposal wrong or backwards | Solve it another way; say why |
| Claim partly true | Narrow scope to the true part |
| Claim false or already fixed | Don't implement; record the evidence |
Record the null result. "I checked, and it's already correct" is a finding worth writing down. Without it the next person re-investigates from scratch, and a rejected recommendation is indistinguishable from an ignored one.
Watch for the check that passes for the wrong reason. When you write a check to confirm a claim, confirm the check actually exercises what it names. A verification that silently matches nothing looks exactly like one that found nothing wrong — a green result you cannot distinguish from "never ran" is not evidence.
One question at a time
Ask one focused question, wait for the answer, then ask the next. Don't front-load 8 questions at once — it overwhelms and produces vague answers. Stop when you have enough to write the success criteria.
Discovery sequence
Work through these categories in order. Stop as soon as you have enough context; you don't need to ask about every category for every request.
1. Goal
"What does 'done' look like? Describe the end state in one sentence."
If the user says "add search to the app" — done means search results are displayed, or the search index is built, or both? The answer changes the scope entirely.
2. Scope boundary
"What's explicitly out of scope for this change?"
Users often know what they don't want but don't say it. A scope boundary question surfaces hidden constraints (no backend changes, no schema migration, no change to the mobile app).
3. Edge cases and error paths
"What should happen when [most obvious failure scenario]?"
Pick the single most likely failure mode for the feature and ask about it. Common examples: empty input, duplicate submission, concurrent updates, missing permissions, network timeout, very large data set.
4. Priority
"If you had to cut half this feature for time, which half stays?"
This reveals the MVP from the full vision — useful for scoping a first PR.
5. Acceptance criteria
"How will you test that this is working correctly?"
If the user describes a manual test, write it down as a criterion. If they describe an automated assertion, that becomes a test case.
Requirements summary (write before coding)
After the conversation, write a short summary. Keep it in the chat or as
a requirements.md in docs/operational/ for long tasks:
## Requirements: <feature name>
**Goal:** One sentence.
**In scope:**
- Item A
- Item B
**Out of scope:**
- Item X (explicitly excluded by user on <date>)
**Edge cases / error handling:**
- Empty input → show placeholder, not an error
- Duplicate submission → idempotent; return existing record
**Acceptance criteria:**
- [ ] User can search by name and email
- [ ] Results appear within 300ms for the p95 case
- [ ] Empty search shows all records (not zero results)
**Open questions:**
- Does pagination apply to search results? (unblocks: API design)Share the summary with the user and get explicit sign-off before starting implementation.
Pitfalls to avoid
- Implementing then asking. Write the requirements summary before writing a single line of code.
- Vague criteria. "Fast" is not a criterion. "Loads in < 1s on a 100-row dataset" is.
- Scope creep during discovery. If the user adds a new capability mid-conversation, note it separately and decide whether it's in or out of scope for this PR — don't silently expand scope.
- Skipping "out of scope." The most valuable question is often "what are you not asking for?"
- Treating an authoritative source as a verified one. A filed issue, an automated reviewer, or a written audit can all state something that is no longer true. Where the requirement came from says nothing about whether its premise still holds — check it, then act.
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.

