Requirements doc drafter
Skill nicholashidalgo/claude-skillforge/writing/requirements-doc-drafter
npx -y skills add nicholashidalgo/claude-skillforge --skill requirements-doc-drafterAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Writes structured requirements documents from product briefs or engineer notes.
SKILL.md
3.5 KB, as published. Nobody here has run it
requirements-doc-writer
Purpose: Convert product briefs, design notes, or meeting outputs into a structured requirements document with clear acceptance criteria.
Input Schema
| Field | Type | Required |
|---|---|---|
feature_name | string | yes |
problem_statement | string | yes |
user_stories | string[] | yes |
constraints | string[] | yes |
non_goals | string[] | yes |
preserve_facts | string[] | yes |
{
"feature_name": "Saved Payment Methods",
"problem_statement": "Users re-enter card details on every purchase. 28% of checkout abandonments cite friction.",
"user_stories": ["As a returning user, I can save a card and use it on subsequent purchases without re-entering details"],
"constraints": ["PCI-DSS compliance required", "Must support multi-card per user", "No server-side card storage"],
"non_goals": ["Loyalty points", "Crypto payments"],
"preserve_facts": ["28% abandonment", "PCI-DSS"]
}
Output Schema
{
"title": "Requirements: Saved Payment Methods",
"problem": "...",
"user_stories": [{"id": "US-001", "story": "...", "acceptance_criteria": ["..."]}],
"constraints": ["..."],
"non_goals": ["..."],
"open_questions": ["..."]
}
Prompt Flow
Pass 1: Structure the doc. Write acceptance criteria as testable, binary pass/fail statements. Remove: significance inflation (P1), promotional adjectives (P4), weasel words (P5), AI vocab (P7), boldface overuse (P14), inline-header lists (P15), filler (P22).
Pass 2: Audit for any remaining vague language or non-testable requirements. Rewrite to concrete and specific.
Examples
Short - single AC
Before: "The system should provide a seamless and intuitive experience for saving payment methods, enhancing user satisfaction." After: "AC: User can save a card at checkout with a single click. Saved card appears on next visit pre-selected."
Medium - user story
Before: "As a user, I want to be able to leverage the platform's groundbreaking capabilities to manage my payment information in a dynamic way." After: "US-001: As a returning user, I can view all saved cards, select one at checkout, and delete any card from my account settings."
Long - constraints section
Before: "The solution must be built in a way that ensures compliance with all relevant regulatory frameworks and fosters trust among users." After: "Constraints: (1) Card data must be tokenized via Stripe; no raw PANs stored server-side. (2) PCI-DSS SAQ A compliance required before launch. (3) Each user may store up to 5 cards."
Unit Tests
# tests/skills/test_requirements_doc_writer.py
from ai_pattern_scrubber import detect_patterns
AC = "User can save a card at checkout with one click. Saved card appears pre-selected on next visit."
CONSTRAINT = "Card data must be tokenized via Stripe; no raw PANs stored server-side. PCI-DSS SAQ A required."
def test_ac_no_ai_vocab():
assert not [h for h in detect_patterns(AC) if h.id == 7]
def test_constraint_no_weasel_words():
assert not [h for h in detect_patterns(CONSTRAINT) if h.id == 5]
def test_ac_no_high_severity():
assert not [h for h in detect_patterns(AC) if h.severity == "high"]