# sr-spec

> Turns a brainstorm document into a comprehensive, structured software requirements specification with no word limit.

- Skill: `huuanh20/sr-spec` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add huuanh20/sr-spec`
- Raw SKILL.md: https://api.skillmd.com/api/skills/huuanh20/sr-spec/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing, Technical Writing
- Tags: Brainstorm, Documentation, Requirements, Specification, Srs
- Author: huuanh20 (https://skillmd.com/u/huuanh20)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/huuanh20/sr-spec

---


# sr-spec

Goal: turn the brainstorm output into a structured, comprehensive spec.
No word limit — every section must be fully written.

---

## Step 0 — Identify Project

Ask user for the project slug (or detect from context):

Ask the user: "Which project to write spec for? (slug name or path to brainstorm.md)"

Read `projects/{slug}/brainstorm.md`. If it doesn't exist, tell the user to run
`$sr-brainstorm` first.

---

## Step 1 — Write spec.md

Write `projects/{slug}/spec.md`. No word limit. Every sub-section fully written.

### §1 — Project Overview
- System name (confirmed in brainstorm)
- Problem statement (what problem does this solve?)
- Solution summary (what does the system do, for whom, how)
- Primary success metrics (how will we know it's working?)

### §2 — Actors
One full entry per confirmed actor:
- Name and role
- Technical proficiency (non-technical | basic | intermediate | expert)
- Domain knowledge level
- Frequency and channel of use (web | mobile | API | all)
- Accessibility needs (if any)
- Data access scope (read | write | admin)

### §3 — Features (IN Scope)
For each confirmed feature:
- Feature name + cluster
- Description in user's own words (verbatim from brainstorm)
- AI-expanded detail (what sub-capabilities does this imply?)
- Actors who use it
- Priority tier: Essential | Conditional | Optional

### §4 — OUT of Scope
Table: Feature | Reason excluded | Planned for version
Every item from brainstorm OUT scope list.

### §5 — Technical Constraints
- Tech stack: languages, frameworks, runtime
- Hosting / deployment model
- Existing systems to integrate (name, protocol, direction)
- Security standards (auth model, encryption requirements)
- Compliance: applicable regulations + specific obligations

### §6 — Business Rules
Numbered list. Each rule: precise, testable statement.
Example: "BR-01: A user cannot place an order if their account balance is below the order total."
Cover every rule surfaced in brainstorm Round 5.

### §7 — NFR Baselines
Table format:

| ID | Characteristic | Target | Status |
|----|---------------|--------|--------|
| NFR-01 | Response Time | < 500ms at p95 | Confirmed |
| NFR-02 | Availability | 99.9% uptime | Confirmed |
| NFR-03 | Data Retention | 7 years | [TBD: legal to confirm \| owner: PM \| resolve-by: Sprint 1] |

### §8 — Assumptions
Numbered list. Each assumption: what is assumed + what happens if the assumption is wrong.

### §9 — Open Items
Every [TBD] from the brainstorm open-items section, with:
- What is unknown
- Who needs to answer it
- Impact if unresolved

---

## Step 2 — Confirm Before Finishing

After writing, do a self-check:
- Every confirmed actor appears in at least one feature entry?
- Every confirmed feature has a priority tier?
- Every [TBD] from brainstorm.md appears in §9?
- Every business rule is numbered and testable?

Fix any gaps before outputting the handoff message.

---

## Step 3 — Handoff

Output:
```
Spec written: projects/{slug}/spec.md

Actors:         {count}
Features (IN):  {count}
OUT scope:      {count}
Business rules: {count}
NFR baselines:  {count confirmed} confirmed, {count TBD} [TBD]
Open items:     {count}

Next: $sr-plan → breaks this spec into per-section SRS plan files
```

