requirements-spec
Skill0 starsChanged 11 days agoApache-2.0View on GitHub
Requirements specification (kravspecifikation) as Word, English or Swedish: numbered shall statements with rationale and verification, TBDs and SI units, checked.
4 other projects use a version of this.
Adopted by
Most recently taken up by
- sehyun0518/agenttheir own version, first seen Nov 8, 2026
- Douglasst102/AgentSkillstheir own version, first seen Sep 28, 2026
- messiwu/requirements-spectheir own version, first seen Sep 23, 2026
- lzx-Bill/Project-Factory-Coretheir own version, first seen Jul 15, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- Douglasst102/AgentSkills★ 4same name
- messiwu/requirements-spec★ 1same name
- lzx-Bill/Project-Factory-Core★ 0same name
- sehyun0518/agent★ 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 repository24 other files it gives its agents.
- AGENTS.mdAGENTS.md
- llms.txtllms.txt
- academic-referencesSkill
- annual-accountsSkill
- business-deckSkill
- business-letterSkill
- _checksSkill
- contract-draftingSkill
- diagramSkill
- docxSkill
- e-invoiceSkill
- employment-statementSkill
- html-deckSkill
- literature-searchSkill
- meeting-minutesSkill
- paperSkill
- pdfSkill
- powerpointSkill
- _sharedSkill
- social-posterSkill
- trade-documentsSkill
- whatsapp-exportSkill
- xlsxSkill
- zotero-librarySkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 5 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
Use this when someone asks for a requirements specification, a product or system spec, a technical specification to send for quotes, or a …
- Distinctive: line 30
Read the notes and the brief.
- Very specific: line 34
Write a small spec file (JSON).
- Very specific: line 43
Run the pack check and fix what it names: python3 <skill folder>/../_checks/packcheck.py requirements-spec <your output>
- Very specific: line 54
Run the check with --in and the working folder.
- Very specific: line 75
Every requirement has an id of its own: letters, a hyphen and a number, such as PS-001.
- Distinctive: line 77
Every requirement has a rationale and names how it is verified: test, analysis, inspection or demonstration.
- Distinctive: line 80
No ambiguous or unverifiable words: as appropriate, etc., and/or, but not limited to, adequate, sufficient, user-friendly, easy, fast, …
- Distinctive: line 104
Write ids, values and units in the spec exactly as they should read.
≈ “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
Use this when someone asks for a requirements specification, a product or system spec, a technical specification to send for quotes, or a kravspecifikation, from notes, a brief or an email. One script writes the document, so your attention goes to the requirements themselves.
How to make it
- Read the notes and the brief. Ask nothing they already say; a value nobody has decided is a TBD, not a question. The author, the approver and the history's author are people the notes name; when they name none, leave them empty. Never the account's email, the agent's name or a guess: who owns the system later did not approve the spec.
- Write a small spec file (JSON). Start from
templates/requirements.spec.jsonin English ortemplates/kravspecifikation.spec.jsonin Swedish. The spec'sdateand the first history row's date are the day you write it, today, as YYYY-MM-DD; never a bracket such as[date]. - Build the document:
python3 <skill folder>/scripts/requirements_create.py spec.json requirements.docx- Run the pack check and fix what it names:
python3 <skill folder>/../_checks/packcheck.py requirements-spec <your output>
Nothing given is left off
requirements_create.py stops before anything is laid out when the spec holds a key it has no field
for or a value of another shape, and names the key (spec.fields.json beside this file lists every
key). Context and assumptions that are no requirement go in facts, one statement each. Never leave
a fact out to make the error go away: put it where the message says, or say in your reply what the
page does not carry.
Run the check with --in and the working folder. It then reads the person's own files there and
asks, once and never as a fail (NOTES-FLOOR): which e-mail addresses, numbers, dates and amounts the
notes hold and the page does not, which of them the page carries changed. Answer the question once:
put each on the page as the notes have it, or say in your reply why it does not belong there. Never
change one to shorten the list.
Work in the working folder, the folder the person is working in: write the data file there, run the
script from there by its full path (<skill folder> is the folder this file is in) and give the
output a path there. The builder refuses an output path inside the library's own folder, where the
person never looks; hand back the path in the working folder.
How a requirement is written
From NASA's Systems Engineering Handbook (NASA/SP-2016-6105 Rev 2), Appendix C, "How to Write a Good Requirement", a US Government work in the public domain:
- "shall" marks a requirement, "will" a fact or an assumption, "should" a goal. Facts go under context and assumptions, goals in their own list, requirements in the requirement tables.
- One requirement per statement, in the form "The
<product>shall<do or be><value with tolerance>". Say what is needed, not how to build it, and not who does what (that belongs in the order or the statement of work). - Every requirement has an id of its own: letters, a hyphen and a number, such as
PS-001. Never reuse or renumber an id; a dropped requirement keeps its id retired. - Every requirement has a rationale and names how it is verified: test, analysis, inspection or demonstration.
- State it positively: "The guard shall stay locked while the belt runs", not "shall not open".
- No ambiguous or unverifiable words: as appropriate, etc., and/or, but not limited to, adequate, sufficient, user-friendly, easy, fast, quickly, safe, robust, flexible, small, large, portable, light-weight, minimize, maximize, when required, if required. Give a number with its tolerance or a condition someone can check.
- A value not yet decided is TBD; a best estimate still to be confirmed is TBR, which is better.
Mark it in the statement (
(TBR-1)) and list it intbdwith what closes it, who resolves it and by when, both from the notes. A date the notes do not give stays empty and the document says it is to be agreed; never a date of your own, and never the go-live date as a TBD's.
The verbal forms follow the ISO/IEC Directives, Part 2 (2021), clause 7: shall for a requirement, should for a recommendation, may for a permission, can for a possibility, and never "must" in place of shall. In Swedish: ska, bör, får, kan; "kommer att" for a fact.
Values and units
From the SI Brochure, 9th edition (BIPM, CC BY 4.0), section 5, and NIST SP 811 (2008), public domain:
- A space between the number and the unit symbol:
5 kg,20 °C,5 %,230 V; no space before the degree of an angle (30°). The script makes that space a no-break space. - The unit's own symbol, unchanged in the plural and with no full stop: kg, kN, MPa, s, min, h, L; never Kg, kgs, sec, hr, hrs, mins, cc or amps.
- At most one solidus (
m/s², notm/s/s), and never a symbol mixed with a unit name (km/hor "kilometres per hour", not "km per hour").
Write ids, values and units in the spec exactly as they should read; the script does not correct them.
What the check reads
A requirement is a row of a table whose heading row names the statement column (Requirement, Goal, Krav, Mål), with the id in the first cell, or a paragraph that begins with its id. Quote a word when you only mention it (“shall”), or the check reads it as a requirement with no id.
Sources
- NASA Systems Engineering Handbook, NASA/SP-2016-6105 Rev 2, Appendix C: https://www.nasa.gov/seh/appendix-c-how-to-write-a-good-requirement
- ISO/IEC Directives, Part 2 (2021), clause 7, verbal forms: https://www.iso.org/directives-and-policies.html
- The SI Brochure, 9th edition (BIPM, CC BY 4.0): https://www.bipm.org/en/publications/si-brochure
- NIST Special Publication 811 (2008 edition): https://www.nist.gov/pml/special-publication-811
Say what passed, not more
Tell the person which checks the document passed and against which source. This is a drafting check: never call the document or the product compliant, certified or approved; it is approved when the people named sign it off.
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.

