Requirements gathering
Skill nexus-substrate/nexus-agents/skills/requirements-gathering
Extract structured requirements from vague user requests. Decompose ideas into user stories with acceptance criteria, map to available capabilities, and identify gaps. Triggers on "requirements", "user stories", "what do I need", "break down this request", "analyze this feature".From its SKILL.md
npx -y skills add nexus-substrate/nexus-agents --skill requirements-gatheringAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 23 stars23 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.
SKILL.md
6.9 KB, as published. Nobody here has run it
Requirements Gathering Skill
<!-- CANONICAL SOURCES: - CLAUDE.md Canonical Paths - docs/ENTRYPOINTS.md - Epic #901 (User Advocate Pipeline) -->Process
Phase 1: Analyze the Request
- Parse the user's raw input for intent, scope, and stakeholders
- Identify ambiguities — what's unclear or underspecified?
- Classify the request type: feature, improvement, fix, research, infrastructure
- Assess complexity: simple (1-2 steps), moderate (3-5), complex (6+)
Phase 2: Extract Requirements
Structure findings as:
Functional Requirements — What the system must do Non-functional Requirements — Performance, security, usability constraints Constraints — Technical limitations, timeline, dependencies
Phase 3: Map to Capabilities
Cross-reference requirements against available nexus-agents capabilities:
| Capability Type | Where to Check |
|---|---|
| MCP Tools (20) | CLAUDE.md MCP Tools Reference table |
| Workflows (9) | src/orchestration/graph/templates/ |
| Expert Roles (9) | src/agents/experts/expert-config.ts |
| CLI Adapters | src/cli-adapters/factory.ts |
| Security Pipeline | src/security/ |
Phase 4: Identify Gaps
For each requirement that cannot be fulfilled:
- Describe the gap clearly
- Suggest workarounds using existing capabilities
- Flag for issue creation if the gap is significant
Phase 5: Generate User Stories
Format each requirement as a user story:
As a [role], I want [capability] so that [benefit]
Acceptance Criteria:
- Given [context], When [action], Then [outcome]
- Given [context], When [action], Then [outcome]
Priority: P1/P2/P3/P4
Dependencies: [list]
Phase 6: Propose Plan
Summarize the implementation approach:
- Which existing tools/workflows/experts to use
- What new capabilities need to be built
- Suggested phasing (what to build first)
- Risk assessment
Output Format
## Requirements Analysis
### Intent
[1-2 sentence summary of what the user wants]
### User Stories
1. **[Story Title]**
As a [role], I want [capability] so that [benefit]
- AC: [acceptance criteria]
- Priority: [P1-P4]
### Capability Mapping
| Requirement | Available Tool/Workflow | Status |
| ----------- | ----------------------- | --------------- |
| [req] | [tool/workflow/expert] | [available/gap] |
### Gaps Identified
- [Gap description + suggested workaround]
### Recommended Approach
[Phased implementation plan using existing capabilities]
When to Use
- User describes a feature vaguely ("make it do X")
- Planning a new epic or large feature
- Evaluating whether a request is feasible with current capabilities
- Bridging between user intent and technical implementation
Divergent → Convergent thinking
For ambiguous or open-ended requests, run a structured ideation pass before settling on requirements:
Step 1 — Diverge
Restate the idea in your own words, then ask three sharpening questions:
- What problem does this actually solve? Often the request describes a solution, not the problem.
- Who is harmed if we don't do this? Identifies the real stakeholder.
- What would success look like at the end of the first hour of use? Concretizes the acceptance criterion.
Then generate 2-3 variations of the request — different scopes, different users, different mechanisms.
Step 2 — Converge
For each variation:
- Cluster — what assumptions does this share with the others?
- Stress-test — what's the failure mode? What if the assumption is wrong?
- Surface hidden constraints — what is the user assuming we already know? (Tech stack, deadlines, audience, success metrics)
Step 3 — Sharpen and ship
Produce a one-pager with: Problem statement, Recommended direction, Key assumptions, MVP scope, Not Doing list. The Not Doing list is the highest-value section — it makes scope decisions explicit.
Dependency-graph identification
When the request becomes a multi-task plan, map dependencies before sequencing:
- List the tasks.
- For each task, identify what must exist before it can run (schemas, APIs, data, other modules, tests, docs).
- Identify parallel-safe tasks — those with no shared dependencies.
- Identify serial bottlenecks — single tasks that block many downstream items.
Sequence: serial bottlenecks first, then parallel-safe waves of 3-4 (per .rules/subagent-coordination.md), then late-stage integration tasks.
Anti-rationalization — Requirements
| Excuse | Counter |
|---|---|
| "The user said X, so we build X" | Users describe solutions; you need the problem. Restate, ask the three sharpening questions. |
| "This is obvious, no need to write it down" | Obvious to whom? Different stakeholders read "obvious" differently. The Not Doing list catches the silent disagreements. |
| "We can figure out scope as we go" | Scope creep is the most expensive bug. Lock the MVP and the Not Doing list before writing code. |
| "The acceptance criterion is 'when it works'" | "Works" is unfalsifiable. The criterion is a test or a user scenario the spec can be measured against. |
| "We don't need to identify dependencies, we'll just hit them" | Hitting dependencies serial costs ~Nx the time vs identified-and-parallelized. Map first, then sequence. |
Red flags
- Requirements doc with no "Not Doing" list
- User stories without testable acceptance criteria ("works", "is fast", "looks good")
- Capability mapping skipped — gaps not flagged
- Dependencies not listed; serial bottlenecks unidentified
- Spec produced without surfacing assumptions explicitly
Verification checklist
- Three sharpening questions asked + answered in the spec
- At least 2-3 variations explored before converging
- "Not Doing" list explicit and signed off
- User stories have testable acceptance criteria
- Capabilities mapped to existing tools/workflows; gaps flagged
- Dependency graph identified; parallel-safe vs serial labelled