plugins/project/skills/requirements/SKILL.md
Gathers, structures, and prioritizes requirements for a system before any design work begins. Use when the user has a vague idea ("I need to build X", "we need a service that does Y"), wants to define what a system should do and under what constraints, asks about non-functional requirements, says things like "what are the requirements for", "help me scope this", "what do I need to think about before building", or "let's figure out what this needs to do". Do NOT use for designing the system itself — this skill produces the inputs that architecture and design skills consume.
npx skillsauth add lucasilverentand/skills requirementsInstall 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.
Turn a vague "build X" into structured, prioritized requirements before any design work begins. This skill produces the spec that architecture consumes — it does not pick technologies, draw boxes, or model data. Those are other skills' jobs.
!ls .context/architecture/requirements/ 2>/dev/null || echo "(none yet)"
systems-design:design-review when availablesystems-design:architecture when availablePin down 7 areas using AskUserQuestion. Ask in batches of 3-4 — not all at once, not one at a time. Skip questions you can answer from the codebase. Call out assumptions explicitly so the user can correct them.
Before asking, scan the project for existing context:
.context/ files, README, and existing docsOnce the interview is done, structure what the system must DO:
Walk references/nfr-checklist.md area by area. For each relevant NFR:
Write structured requirements to .context/architecture/requirements/<system>.md using the template from references/requirements-template.md. Read the template before writing — match its structure exactly.
Include an "Open questions" section for anything unresolved. These become the first thing the architecture skill addresses.
|Situation|Hand off to|
|---|---|
|Requirements done, ready to decompose into components|systems-design:architecture if installed|
|Requirements done, ready to write a design doc|documentation:write-design-doc if installed|
|Need to review an existing design against these requirements|systems-design:design-review if installed|
|File|Covers|
|---|---|
|references/nfr-checklist.md|Non-functional requirements checklist — walk this during NFR analysis|
|references/requirements-template.md|Structured output template — match this format|
tools
Creates, audits, and updates public open-source repository documentation, including README files, CONTRIBUTING guides, SECURITY and SUPPORT docs, project badges, quickstarts, usage guidance, community links, and contributor onboarding. Use when maintaining docs for public GitHub projects, libraries, CLIs, apps, or reusable packages, especially when the user says "update this README", "write CONTRIBUTING.md", "make these docs open-source ready", or "improve the public project docs".
development
Creates, audits, and updates private or closed-source project documentation, including internal README hubs, codebase navigation guides, ownership links, Linear initiative links, onboarding notes, runbooks, and contribution guidance for teams. Use when maintaining docs for private repositories, internal apps, services, infrastructure, or company projects, especially when the user says "make this README an internal hub", "document how to navigate this repo", "add Linear links to the docs", or "write private project documentation".
development
Creates, updates, estimates, and tidies Linear issues using Luca's issue-shaping rules. Use when the user asks to create a Linear issue, write ticket-ready issue text, refine an existing issue, add acceptance criteria, set issue relationships, estimate points, audit issue hygiene, tidy a Linear project, find duplicates, fix stale blockers, or normalize labels, milestones, priorities, and issue state.
testing
Keeps an existing Linear project tidy after planning and during execution. Use when the user asks to "tidy Linear", "clean up the project", "audit issues", "find duplicates", "check stale blockers", "fix project drift", or run periodic Linear housekeeping on a project, initiative, or milestone set. Use when planning is underway or execution has started and relationships, labels, priorities, documents, and issue states need coherence without changing product scope.