requirements
Skill0 starsChanged 3 months agoMITView on GitHub
Turn a rough plan into a traceable requirements.md with stable R-ids and testable EARS acceptance criteria. Use when the user says "/blueprint:requirements", "write requirements", "turn this plan into requirements", "spec this out", or hands over a plan.md / design doc / issue and wants it made rigorous before any code is written.
16 other projects use a version of this.
Adopted by
Most recently taken up by
- Jakeschincariol/whale-skilltheir own version, first seen Nov 8, 2026
- marcusbelz/di2-starter-kittheir own version, first seen Oct 31, 2026
- owainlewis/blueprinttheir own version, first seen Oct 13, 2026
- jvalin17/agent-toolkittheir own version, first seen Oct 12, 2026
- ngthluu/my-ba-skillstheir own version, first seen Oct 9, 2026
- rizsotto/Beartheir own version, first seen Oct 8, 2026
Used with
Projects with it also use agent-browser.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
VercelSkillagent-browser
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.
Also in 3 projects that use this
Other versions16 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 16
- rizsotto/Bear★ 6.5ksame name
- owainlewis/blueprint★ 423same name
- ptsilivis/autonomousguy★ 33same name
- Jakeschincariol/whale-skill★ 15same name
- aborroy/aiup-alfresco★ 14same name
- dewil/ai-toolkit★ 9same name
- dewil/claude-toolkit★ 9same name
- saitarrun/Devforge-ai★ 4same name
- digitaldreams/tuhin★ 3same name
- websublime/mister-anderson★ 3same name
6 more not listed
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 repository4 other files it gives its agents.
- architectureSkill
- buildSkill
- inspectSkill
- tasksSkill
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 6 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Read ${CLAUDE_PLUGIN_ROOT}/FORMAT.md first (or FORMAT.md at the repo root if you are working inside the blueprint repo itself).
- Very specific: line 21
No plan at all → the conversation *is* the plan.
- Very specific: line 36
Write one
### R<n>per user-visible capability: If two requirements always change together and no one would ever want one without the … - Distinctive: line 40
Write ACs in EARS: Every AC must be assertable by a test that only sees the outside of the system.
- Distinctive: line 86
If there are no open questions, say the spec is ready and skip the caveat.
- Distinctive: line 90
No implementation nouns in this file.
- Distinctive: line 94
No AC that cannot fail. "The system SHALL be reliable" is not an AC.
- Distinctive: line 95
Prefer fewer, sharper requirements.
- Distinctive: line 97
Never write requirements.md and architecture.md in the same pass.
“Common” is measured: kept by at least 6 in 10 of the 12 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
Blueprint: requirements
Read ${CLAUDE_PLUGIN_ROOT}/FORMAT.md first (or FORMAT.md at the repo root
if you are working inside the blueprint repo itself). It defines the ID
grammar and the exact document shape. Do not improvise a variant.
Input
Argument is a feature slug or a path. Resolve in this order:
- Explicit path given (
/blueprint:requirements docs/oauth-plan.md) → use it. - Slug given (
/blueprint:requirements token-refresh) → read.blueprint/token-refresh/plan.md. - Nothing given → if exactly one
.blueprint/*/plan.mdexists, use it. Otherwise ask which. - No plan at all → the conversation is the plan. Say so, and write
plan.mdfrom what the user has told you before continuing.
What you do
- Read the plan and the codebase it lands in. Grep for the systems it touches. A requirement written without knowing what already exists is how you get R-ids for things that shipped last year.
- Extract intent, not implementation. The plan will contain solution language ("add a Redis cache"). Requirements record the need behind it ("repeat lookups SHALL complete in under 50ms"). If a constraint is genuinely fixed by the user (must use their existing Postgres), record it under Scope as a stated constraint, not as an AC.
- Write one
### R<n>per user-visible capability. If two requirements always change together and no one would ever want one without the other, they are one requirement. - Write ACs in EARS. Every AC must be assertable by a test that only sees the outside of the system. Reject your own AC if you cannot name the test that would fail.
- Fill
## Out of scopehonestly. List what a reader would reasonably assume is included and is not. This section prevents the most expensive kind of rework. - Do not invent answers to gaps. Anything the plan does not settle goes
in
## Open questionsasQ<n>. Then ask the user the top 1–3 blocking ones directly. Guessing here is the single worst failure mode of this skill — a wrong assumption at R-level propagates through architecture and tasks and is not caught until the code is written. Write the answers back. An answer that lives only in the chat is an answer the next phase cannot see. When the user settles a question, in the same pass:
- mark it
status: answered — <the answer>, keeping theQ<n>. The marker goes on the same line as the id, directly after it — the check is line-based, so a marker pushed onto a continuation line reads as unanswered. Let the question text wrap underneath instead; - fold the consequence into the document. A fixed decision becomes a
stated constraint under
## Scope; a new capability becomes a newR<n>with its own criteria.
An answered question that changed nothing in the document usually means it was not blocking. Say so rather than inventing a requirement for it.
- mark it
- Write the file to
.blueprint/<slug>/requirements.md, at the root of the repository being built — including when that repository is Blueprint itself.
Updating an existing requirements.md
Append new R-ids. Never renumber. If a requirement changed meaning, that is a
new R-id and the old one gets status: dropped — superseded by R7. Then say
which architecture components and tasks now reference a dropped id — the user
needs to know the downstream cost before accepting the change.
Done
Report: count of requirements and ACs, the out-of-scope list, and any open questions still unanswered. Then one line:
Next:
/blueprint:architecture <slug>— but answer Q1–Q2 first.
If there are no open questions, say the spec is ready and skip the caveat.
Rules
- No implementation nouns in this file. No class names, no libraries, no file paths, no schemas. The one exception is a non-functional requirement where the constraint is the dependency — portability, operability, a runtime that must or must not be present. Name the category, never the product.
- No AC that cannot fail. "The system SHALL be reliable" is not an AC.
- Prefer fewer, sharper requirements. Ten R-ids for a two-day feature means you are describing the implementation.
- Never write requirements.md and architecture.md in the same pass. The gap between them is where the user gets to disagree cheaply.
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.

