requirements-specification
Skill3 starsChanged 38 days agoApache-2.0View on GitHub
Use when a feature request or bug report is vague enough that "what does done look like" isn't obvious yet — turns a fuzzy ask into testable functional/non-functional requirements, constraints, and Gherkin-style acceptance criteria before any design or code starts. Skip for small, already-unambiguous changes, and skip once a spec exists — use superpowers:writing-plans to turn an existing spec into an implementation plan instead of re-deriving requirements.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- fusebase-dev/fusebase-flowtheir own version, first seen Oct 16, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- fusebase-dev/fusebase-flow★ 9same 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 repository7 other files it gives its agents.
- AGENTS.mdAGENTS.md
- algorithm-pseudocode-designSkill
- brainstormingSkill
- openapi-documentationSkill
- pmSkill
- system-architecture-designSkill
- systematic-debuggingSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
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 8
Write requirements precisely enough that two different people implementing from the same spec would build the same thing.
- Distinctive: line 76
Write the failure scenarios, not just the happy path — that's usually where the real design decisions hide.
- Distinctive: line 81
Before treating a spec as done:
≈ “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 Specification
Write requirements precisely enough that two different people implementing from the same spec would build the same thing. A vague spec doesn't save time — it just moves the ambiguity (and the rework) later.
When to use
- The ask is underspecified: "add notifications," "make search better," "support teams" — before any architecture or code, pin down what these actually mean.
- Multiple stakeholders (or a stakeholder and an implementer) could reasonably disagree about scope.
- Skip when the change is small and unambiguous (a one-line bug fix, a well-scoped refactor) — writing a formal spec for those is pure overhead.
Process
1. Requirements gathering
Split every requirement into functional (what the system does) and non-functional (how well it does it — latency, availability, security). Each one needs an id, a priority, and criteria specific enough to fail a "is this actually done?" test:
FR-001: System shall authenticate users via OAuth2
priority: high
acceptance:
- Users can log in with Google/GitHub
- Session persists for 24 hours
- Refresh tokens auto-renew
NFR-001 (performance): API p95 latency <200ms
NFR-002 (security): All data encrypted in transit and at rest"Fast" and "user-friendly" are not requirements — they're not testable. Replace them with a number and a measurement method.
2. Constraint analysis
Separate constraints by kind, since each kind trades off differently:
- Technical — must use existing DB, must run on current infra, language/ framework version floors.
- Business — deadline, budget, team size.
- Regulatory — compliance regimes (GDPR, SOC2), accessibility (WCAG).
3. Use cases
For anything with a nontrivial flow, write the actor, preconditions, the numbered step-by-step flow, postconditions, and — critically — the exceptions (what happens when a step fails). Most spec gaps live in the exceptions nobody wrote down.
4. Acceptance criteria (Gherkin)
Given/When/Then scenarios make "done" checkable by someone who didn't write the code:
Scenario: Failed login - wrong password
Given I am on the login page
When I enter a valid email and the wrong password
Then I should see "Invalid credentials"
And I should remain on the login page
And the failed attempt should be loggedWrite the failure scenarios, not just the happy path — that's usually where the real design decisions hide.
Validation checklist
Before treating a spec as done:
- Every requirement is testable (not "fast," not "intuitive")
- Acceptance criteria are unambiguous
- Edge cases and failure modes are documented, not just the happy path
- Non-functional requirements have a number and a measurement method
- Constraints (technical/business/regulatory) are captured, not assumed
- Dependencies on other in-flight work are identified
Best practices
- Be specific — ban words like "fast," "user-friendly," "robust" unless immediately followed by a number or test.
- Make it testable — every requirement should have a clear pass/fail.
- Consider edge cases explicitly — walk the failure paths, not just the success path.
- Think end-to-end — trace the full user journey, not one screen.
- Version the spec — when requirements change mid-implementation, that's a signal worth recording, not silently overwriting.
After the spec
Once requirements and acceptance criteria are pinned down, hand off to
superpowers:writing-plans for the implementation plan, or
superpowers:brainstorming if the approach (not just the requirements)
is still open. Persist durable facts or decisions from this pass with
mcp__flare__memory (action="remember") so later work doesn't re-derive
them.
Remember: a good spec prevents misunderstandings and rework. Time spent here is cheaper than time spent re-implementing after a wrong guess.
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.

