Skip to content
Back to skills

Cl Srs

ASecurity

Generate IEEE 830 SRS from raw requirements. Use when the user says "write SRS", "generate requirements doc", "analyze requirements", "I have raw requirements from a client", or pastes a client email/chat/PRD.

  • 41 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 10, 2026
ai-agentsapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 10, 2026

npx -y skills add skillmds/skillmd --skill cl-srs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cl Srs?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Cl Srs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/skillmds-cl-srs/badge)](https://www.skillsdirectory.com/skills/skillmds-cl-srs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: cl:srs
description: >
  Generate IEEE 830 SRS from raw requirements. Use when the user says
  "write SRS", "generate requirements doc", "analyze requirements",
  "I have raw requirements from a client", or pastes a client email/chat/PRD.
user-invocable: true
metadata:
  use_when: User provides raw client requirements (email, chat, bullets, partial PRD) to be formalized into IEEE 830 SRS
  do_not_use_when: Requirements already in complete SRS format; a more specific skill owns the task
  quality_standards: All FRs use "shall" clauses; all NFRs use numeric thresholds; no content fabricated beyond what user provides
  anti_patterns: >
    Do not invent requirements absent from input — tag as [CONTEXT-GAP: {desc}].
    Do not use vague adjectives (fast, easy, many) in FR/NFR — tag as [VERIFIABILITY-FAIL: {FR-NN}].
    Do not skip clarification rounds. Do not save file without explicit user confirmation.
  outputs: IEEE 830 SRS at docs/srs-{slug}-{YYYYMMDD}.md + compliance verdict
  references: .claude/skills/srs-generator/references/srs-template.md, .claude/skills/srs-generator/references/gap-detection-guide.md
---


# cl:srs — IEEE 830 SRS from Raw Requirements

Pipeline: **Brainstorm** → Receive → Extract → Gap Scan → Clarify (P1 → P2 → P3) → Generate → Review Gate → Save

Reference files (load before starting):
- `.claude/skills/srs-generator/references/srs-template.md`
- `.claude/skills/srs-generator/references/gap-detection-guide.md`

**Context files (load if present — created by `.claude/scripts/init_project.py`):**
- `projects/{name}/_context/vision.md` → pre-fills §1.2 Scope and §2.1
- `projects/{name}/_context/features.md` → pre-fills §2.2 and IN/OUT table
- `projects/{name}/_context/tech_stack.md` → pre-fills §3.5 Design Constraints
- `projects/{name}/_context/glossary.md` → pre-fills Appendix A
- `projects/{name}/_context/quality_standards.md` → pre-fills §3.3–§3.6 NFR

If context files exist: skip Brainstorm Gate questions already answered there.

---

### Brainstorm Gate — Understand Context First

Do NOT ask for raw requirements yet. First understand project context.

Ask these 3 questions in one `AskUserQuestion` batch:

1. **System type:** Web app / Mobile app / API / Internal tool / SaaS / Desktop / Other?
2. **Primary users:** Who will use this system? (end customers, internal staff, admins, B2B clients…)
3. **Core problem:** What problem does this system solve? (1–2 sentences)

Wait for answers. Use responses to seed §2.1 Product Perspective, §2.3 User Characteristics, and §1.2 Scope.

After receiving answers, prompt:
```
Context noted. Now paste your raw requirements — any format works:
client email, bullet list, chat transcript, PRD draft.
```

Wait for raw input, then proceed to Step 0.

---

### Step 0 — Receive Input

Read full input silently. Emit:
```
Input received: ~{N} words | type: [email prose | bullet list | partial PRD | mixed]
```

---

### Step 1 — Extract & Classify

Output structured block:
- **Actors** — named and implied stakeholders. Tag undefined: `[GLOSSARY-GAP: {actor}]`
- **Features** — FR-01, FR-02… in "Subject can do X" form. Note strategy: prose / bullets / PRD
- **Constraints** — verbatim fragments only (tech stack, deadline, compliance, budget)
- **Out-of-Scope signals** — explicit exclusions. If absent: `[CONTEXT-GAP: no out-of-scope boundary stated]`

Append `[Source: {location}]` to every item.

---

### Step 2 — Gap Scan

Load `.claude/skills/srs-generator/references/gap-detection-guide.md`. Run all 7 patterns. Output:

| # | Priority | Pattern | Verbatim fragment / missing element |
|---|----------|---------|-------------------------------------|

Zero gaps → state explicitly, jump to **SRS Generation**.

---

### Step 3 — Round 1 Clarification (P1 — Blockers)

If P1 gaps exist, emit `AskUserQuestion` with ≤7 questions. Label:
```
Round 1 of 3 — Scope & Actors (P1 — must resolve before writing SRS)
```

On receipt: integrate, mark resolved gaps. Unanswered P1 → `[CONTEXT-GAP: {desc}]` → Appendix B.
Block only if zero actors AND zero scope remain. Then proceed to Round 2.

---

### Step 4 — Round 2 Clarification (P2 — Functional Details)

If P2 gaps remain, emit `AskUserQuestion` with ≤7 questions. Label:
```
Round 2 of 3 — Functional Details (P2)
```

Unanswered → log assumed default in SRS and Appendix B. Then proceed to Round 3.

---

### Step 5 — Round 3 Clarification (P3 — Optional)

Emit `AskUserQuestion` with ≤7 questions. Label:
```
Round 3 of 3 — Non-Functional & Secondary Details (P3 — optional)
Reply 'skip' to use [TBD] placeholders.
```

On "skip": mark all P3 gaps `[TBD: {condition} | owner: {role} | resolve-by: sprint planning]`.
Proceed to **SRS Generation**.

---

### SRS Generation

Populate `.claude/skills/srs-generator/references/srs-template.md` with all gathered information.

**§1.2 Scope** — mandatory IN / OUT table for every feature area.

**§3.2 Functional Requirements** — each FR block:
```
FR-NN [Essential|Conditional|Optional]
Requirement:  The system shall {verb} {object} when {condition}.
Actor:        {role}
Precondition: {state}
Given:        {context}
When:         {trigger — exactly one}
Then:         {externally observable outcome}
Source:       [{location}]
```
Non-observable "Then" → `[VERIFIABILITY-FAIL: FR-NN]` → Appendix B

**§3.3–§3.6 NFR** — Quality Attribute Scenario (ISO/IEC 25023):
```
NFR-NN [{ISO/IEC 25010 characteristic}]
Source / Stimulus / Environment / Artifact / Response / Response Measure: {numeric}
```

After populating, run IEEE 830 quality checklist from `gap-detection-guide.md`. Output verdict:
- `COMPLIANT` — all sections present, Appendix B empty
- `PARTIALLY COMPLIANT` — sections present, Appendix B has open items
- `NON-COMPLIANT` — required sections missing

---

### Human Review Gate

```
Review complete. SRS is {verdict}.
Open issues: {count} (see Appendix B).
Proceed to save? [Y / n]
```

Wait for explicit confirmation before writing any file.

---

### Save & Report

1. Derive slug from §1.2 product name (lowercase, hyphenated). Fallback: ask user.
2. Path: `docs/srs-{slug}-{YYYYMMDD}.md`
3. Echo absolute path, wait for confirmation.
4. Create `docs/` if absent, write file, confirm: `"Saved ✓ {absolute_path}"`

Files in this skill

  • SKILL.md6.2 KB
  • references/gap-detection-guide.md10.7 KB
  • references/srs-template.md8.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…