Use nfr-spec
Sweep a feature or system through the full non-functional requirements catalog
Sweep a feature or system through the full non-functional requirements catalog — performance, throughput, availability, durability, privacy/retention, accessibility, i18n, observability, operability, compatibility, cost — forcing every category to a measurable target, an explicit n/a, or a tagged default.
Reach for it when the user needs NFRs, quality attributes, "how fast/reliable does it need to be", SLO targets for a feature, or the requirements everyone forgets until they're incidents.
Install it
npx skilldrop-cli install nfr-spec # Claude Code, your user folder
npx skilldrop-cli install nfr-spec --project # Claude Code, this repo
npx skilldrop-cli install nfr-spec --ide cursor # or kiro, codex, antigravity, copilot
It is part of the Solution architect pack: --pack solution-architect installs it with its neighbours.
Ask for it
Say it the way you would to a colleague. Requests like these route to it:
- "What are the non-functional requirements for this service?"
- "Sweep the NFRs — latency, availability, privacy, accessibility, operability"
- "Set performance and availability targets for this feature"
- "We keep forgetting the -ilities; give me the full NFR ledger"
Requests like these belong to a different skill, so it shouldn't answer them:
- "Write the functional requirements and user stories"
- "Draft the OpenAPI contract for this service"
- "Design the dashboards, SLOs, and alerts we should build"
If another skill answers instead, ask for this one by name: "use nfr-spec".
Check what you get
A good result:
- Every category lands in one of three states — target, n/a-with-reason, or tagged default. The ledger shows all of them; silence fails the doc.
- Every target has a percentile, a load condition, and a verification. A latency number without load is a screenshot of a quiet day.
- Availability matches the down-for-an-hour answer, not the marketing instinct. The cost of each extra nine is named when the target exceeds the archetype default.
- Every data class has a retention period and a deletion mechanism. "Indefinite" is written as the decision it is.
- Accessibility names level and scope — "WCAG 2.2 AA on all agent-facing screens, axe + manual screen-reader pass" — not "accessible".
- Cost has a number at target volume, or a tagged
[assumption]placeholder that explicitly hands the sizing tocapacity-cost-model. Either way the line is present — an NFR spec that's silent on cost has delegated it to the first invoice.
Use something else when
- Functional requirements — that's
prd-draft - Security threat depth — one posture line here, the analysis is
threat-model - Designing the architecture that meets the targets —
design-doc - Writing the verification tests themselves — hand the methods to
test-plan-generator
Where a loop runs it
- Stage
constrainof thedesignloop
Next
- SKILL.md, the instructions the agent reads
- Its page on the site
- Related: capacity-cost-model, design-doc, prd-draft, test-plan-generator, threat-model