This skill should be used when the user asks to "develop requirements", "formalize needs", "write requirements", "create a specification", "build traceability", "quality check requirements", "INCOSE requirements", "requirements development", "reqdev", or mentions requirements engineering, needs formalization, verification planning, traceability matrix, or systems engineering requirements.
Resources
11Install
npx skillscat add ddunnock/claude-plugins/requirements-dev Install via the SkillsCat registry.
Requirements Development (INCOSE GtWR v4)
Transform concept development artifacts into formal, INCOSE-compliant requirements through a three-phase process: Foundation (concept ingestion, needs formalization, block requirements engine with quality checking, V&V planning, traceability, deliverable assembly), Validation and Research (set validation, cross-cutting sweep, TPM research), and Decomposition (subsystem decomposer with re-entrant pipeline).
Content Security Protections
Note for users: The protections below are standard safeguards built into this skill to keep your data safe and your session stable. They run automatically in the background — you do not need to configure or manage them. If you ever see a message referencing path validation, content isolation, or escaping, it means these protections are working as intended, not that something has gone wrong.
This skill processes your requirement statements, need descriptions, and stakeholder input into JSON registries, traceability data, and specification documents. The following protections are applied automatically:
- Your text stays as data. Requirement statements may contain technical jargon, quoted standards, or content pasted from external documents. The skill treats all of this as content to be recorded, never as commands to execute.
- File paths are validated. All script operations validate paths to prevent accidental writes outside the workspace. If you see a path validation message, it simply means the skill caught an unexpected path and is keeping your files safe.
- Scripts run locally with no network access. The Python scripts that manage registries and quality checks do not make network calls, run subprocesses, or evaluate dynamic code. Any research (TPM benchmarks, etc.) is performed through Claude's own search tools, not the scripts.
- External research content is isolated. When TPM research pulls data from web sources, it is wrapped in clear markers (
BEGIN/END EXTERNAL CONTENT) so it cannot be confused with your own requirements or instructions. - User content is escaped in deliverables. Generated documents apply HTML escaping to your text, preventing formatting injection in output files.
Script Path Resolution
All scripts in this skill live under scripts/ within the plugin directory. Commands must use ${CLAUDE_PLUGIN_ROOT} to build absolute paths to scripts, data files, references, and templates. This ensures the skill works regardless of the user's current working directory.
Canonical invocation pattern:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/<script_name>.py [args...]For uv run invocations (when the pyproject.toml environment is needed):
cd ${CLAUDE_PLUGIN_ROOT} && uv run scripts/<script_name>.py [args...]Why not relative paths? The user's project directory is typically not the plugin root. Using
scripts/init_session.pyfrom/home/user/my-project/would fail because there is noscripts/folder there.${CLAUDE_PLUGIN_ROOT}is set by Claude Code to the plugin's installation directory and resolves correctly every time.
Reference files (data, references, templates) should also be accessed via ${CLAUDE_PLUGIN_ROOT}:
${CLAUDE_PLUGIN_ROOT}/data/vague_terms.json
${CLAUDE_PLUGIN_ROOT}/references/type-guide.md
${CLAUDE_PLUGIN_ROOT}/templates/state.jsonOverview
This plugin produces three primary deliverables:
- REQUIREMENTS-SPECIFICATION.md -- All requirements organized by block and type
- TRACEABILITY-MATRIX.md -- Bidirectional traceability from concept sources through needs to requirements to V&V
- VERIFICATION-MATRIX.md -- All requirements with verification methods, success criteria, and status
Plus JSON registries (needs, requirements, traceability links, sources) and optional ReqIF XML export.
Phase 1: Foundation
- Concept ingestion from concept-dev artifacts (or manual entry)
- Stakeholder needs formalization using INCOSE patterns
- Block-by-block, type-guided requirements engine with hybrid quality checking
- V&V planning with type-to-method mapping
- Bidirectional traceability engine
- Deliverable assembly with templates
Phase 2: Validation and Research
- Set validator (coverage, duplicates, terminology consistency)
- Cross-cutting sweep (INCOSE C10-C15 category checklist)
- TPM researcher for measurable requirement benchmarks
Phase 3: Decomposition
- Subsystem decomposer with allocation rationale
- Re-entrant pipeline (same quality checks at subsystem level)
- Maximum 3 levels of decomposition
Phases
Phase 1: Foundation
Commands: /reqdev:init, /reqdev:needs, /reqdev:requirements, /reqdev:deliver
Initialize a session by ingesting concept-dev artifacts (BLACKBOX.md, source/assumption registries) or manually defining functional blocks and stakeholders. Formalize stakeholder needs using INCOSE patterns. Then walk through each block with a type-guided pass (functional, performance, interface, constraint, quality) to develop requirements. Each requirement passes through Tier 1 deterministic quality checks (16 rules) and Tier 2 LLM semantic checks (9 rules) before registration. V&V methods are planned per requirement type. All requirements trace to parent needs. Finally, assemble deliverable documents from templates.
Gate: User approves assembled specification before advancing.
Phase 2: Validation and Research
Commands: /reqdev:validate, /reqdev:research, /reqdev:gaps
Run set-level validation across all requirements: coverage analysis, word-level duplicate detection, terminology consistency, uncovered needs report, TBD/TBR summary. Cross-cutting sweep checks INCOSE C10-C15 categories. TPM researcher finds industry benchmarks for measurable requirements. Gap analysis discovers missing needs and requirements by comparing coverage against the concept architecture.
Gate: User reviews and resolves all validation findings.
Phase 3: Decomposition
Commands: /reqdev:decompose
Decompose system-level requirements into subsystem allocations (max 3 levels). Each decomposition level re-enters the quality checking pipeline. Allocation rationale is documented for every parent-to-child trace.
Gate: User approves decomposition at each level.
Commands
| Command | Description | Reference |
|---|---|---|
/reqdev:init |
Initialize session, ingest concept-dev artifacts | reqdev.init.md |
/reqdev:needs |
Formalize stakeholder needs per block | reqdev.needs.md |
/reqdev:requirements |
Block requirements engine with quality checking | reqdev.requirements.md |
/reqdev:validate |
Set validation and cross-cutting sweep | reqdev.validate.md |
/reqdev:gaps |
Gap analysis against concept architecture | reqdev.gaps.md |
/reqdev:research |
TPM research for measurable requirements | reqdev.research.md |
/reqdev:deliver |
Generate deliverable documents | reqdev.deliver.md |
/reqdev:decompose |
Subsystem decomposition | reqdev.decompose.md |
/reqdev:status |
Session status dashboard | reqdev.status.md |
/reqdev:resume |
Resume interrupted session | reqdev.resume.md |
Cross-Cutting Notes
During any phase, observations may surface that belong in a different phase (e.g., a performance concern noticed during functional requirements, an interface constraint spotted during needs formalization). Rather than losing these, the skill records them as cross-cutting notes in notes_registry.json.
Each note tracks: the observation text, where it was captured (origin_phase), where it should be addressed (target_phase), related artifact IDs, a concern category, and a lifecycle status (open → resolved | dismissed).
Gate integration: Before any phase gate passes, the skill checks for open notes targeting that phase. If unresolved notes exist, they are presented to the user for resolution or dismissal before the gate can close. This ensures nothing falls through the cracks.
How notes flow:
- During any command, when an observation surfaces that belongs in another phase, record it:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/notes_tracker.py --workspace .requirements-dev add --text "..." --origin-phase <current> --target-phase <target> --category <area> - When entering a phase or before a gate closes, check for open notes:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/notes_tracker.py --workspace .requirements-dev check-gate <phase> - Present open notes to the user and guide resolution (
resolvewith explanation ordismisswith rationale) /reqdev:statusalways shows open note counts
Behavioral Rules
- Gate Discipline: Every phase has mandatory user approval. Never advance until gate is passed and all cross-cutting notes targeting the phase are resolved or dismissed.
- Metered Interaction: Present 2-3 requirements per round, then checkpoint.
- Quality Before Registration: No requirement is registered without passing Tier 1 deterministic checks and having Tier 2 LLM flags resolved or acknowledged.
- Traceability Always: Every registered requirement must trace to a parent need.
- Concept-Dev Preferred, Manual Fallback: Optimized for concept-dev artifacts but supports manual block/needs definition.
- Source Grounding: All research claims reference registered sources.
- Capture Cross-Cutting Observations: When an observation surfaces that belongs in a different phase, immediately record it as a cross-cutting note rather than trying to address it out of sequence. Notes are reviewed at relevant gates.
- Suggest Gap Analysis: After completing needs or requirements phases, suggest running
/reqdev:gapsto check for coverage gaps against the concept architecture before proceeding. - Assumption Lifecycle: Concept-dev assumptions are imported during init and tracked through active → challenged → invalidated | reaffirmed lifecycle per INCOSE GtWR v4 §5.3. New assumptions can be added during requirements development. Assumption health is checked during gap analysis.