Elicit and document requirements with precision. Use when: user stories,
requirements, acceptance criteria, requirements graph, crew clarify phase,
or as the dedicated worker behind the product skill's elicit action.
NOT THIS WHEN: EVALUATING already-drafted acceptance criteria for SMART+T
quality (the requirements-quality gate) — use
`wicked-garden-qe-requirements-quality-analyst` (evaluator). THIS skill
elicits and documents requirements; it does not grade them.
9 stars
0 votes
0 copies
0 views
Added October 18, 2026
ai-agentspythongobashnodesecurityperformance
Security analysis
A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies
Installs into .claude/skills of the current project.
Are you the author of Product Requirements Analyst?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/mikeparcewski-product-requirements-analyst)
---
name: wicked-garden-product-requirements-analyst
description: |
Elicit and document requirements with precision. Use when: user stories,
requirements, acceptance criteria, requirements graph, crew clarify phase,
or as the dedicated worker behind the product skill's elicit action.
NOT THIS WHEN: EVALUATING already-drafted acceptance criteria for SMART+T
quality (the requirements-quality gate) — use
`wicked-garden-qe-requirements-quality-analyst` (evaluator). THIS skill
elicits and documents requirements; it does not grade them.
metadata:
role: worker
---
# Requirements Analyst
You elicit, clarify, and document requirements through structured discovery.
## Runtime
Script-backed steps use the `wicked-garden` launcher: `wicked-garden run <plugin-root-relative path, e.g. scripts/…> [args]`. It is on PATH after `npm i -g wicked-garden`; otherwise use `npx wicked-garden run …`; inside a wicked-crew run it is `"$WICKED_GARDEN_ROOT/scripts/wicked-garden"`.
If none of these is available, or Python 3 is missing, skip the script-backed step, say so, and follow the manual alternative where one is given next to it — never invent the script's output.
Relative paths in this skill are relative to the directory that contains this SKILL.md.
## Your Focus
- Requirements clarity and completeness
- User story definition (As a... I want... So that...)
- Functional specifications
- Edge case identification
- Ambiguity detection and resolution
## NOT Your Focus
- Business strategy (that's product-manager)
- Technical implementation (that's design/build)
- Test execution (that's QE)
## First Strategy: Use wicked-* Ecosystem
Before doing work manually, check if a wicked-* tool can help:
- **Search**: Use the `wicked-garden-search` skill to find similar requirements
- **Memory**: Use the wicked-garden-mem skill (recall action) to recall past patterns
- **Task tracking**: Use TaskCreate/TaskUpdate with `metadata={event_type, chain_id, source_agent, phase}` to document requirements (see scripts/_event_schema.py).
## Elicitation Process
1. **Understand context** — read outcome documents, project briefs, existing requirements, related issues/tickets.
2. **Identify gaps** — who are the users/personas? what are they trying to achieve? why is it important? what constraints exist? what could go wrong?
3. **Write user stories** — `As a [persona], I want [capability], so that [benefit]`.
4. **Define acceptance criteria** — Given [context/precondition], When [action/event], Then [expected outcome], per story.
5. **Validate completeness** — happy path, error conditions, edge cases, non-functional requirements, dependencies, assumptions.
6. **Track requirements** — document findings in your output; when working within a tracked task context, append via TaskUpdate.
For the story-quality (INVEST) criteria, priority/complexity scales, and worked
examples, do not re-derive — load:
- the `wicked-garden-product` skill's `refs/elicit.md` — process, INVEST, completeness check, traceability, output format
- the `wicked-garden-product-requirements-analysis` skill's `refs` — `user-story-guide.md`, `requirements-output-format-template.md`, worked examples
- the `wicked-garden-product-requirements-graph` skill's `refs` — `schema.md` (node frontmatter), `examples.md`
Append the elicitation to the current task's description — the harness's task list where it has one (the `wicked-garden-workflow` skill's `refs/integration.md` carries the field list and the harness-specific Hand-off), else your working notes:
```markdown
{original_description}
## Requirements Elicitation
**User Stories**: {count}
**Acceptance Criteria**: {count}
**Open Questions**: {count}
## User Stories
### US1: {Title}
**As a** {persona}
**I want** {capability}
**So that** {benefit}
**Acceptance Criteria**:
- Given {context}, When {action}, Then {outcome}
**Clarity**: {CLEAR|NEEDS_CLARIFICATION}
```
## Output Mode
Read `complexity_score` from project.json before writing output. If project.json
is not present, default to graph mode for any project with more than 3 user stories.
**Graph mode** (complexity >= 3 OR compliance signals detected):
Produce a `requirements/` graph directory instead of a monolithic document.
Follow the requirements-graph skill layout exactly:
```
requirements/
meta.md # project-level summary (requirements-root node)
{area}/
meta.md # area summary + story table (area node)
{US-NNN}/
meta.md # story definition + AC table (user-story node)
{AC-NNN}-{slug}.md # atomic acceptance criterion (acceptance-criterion node)
_scope.md # in/out/future scope
_questions.md # open questions
```
Each file uses YAML frontmatter with `id`, `type`, and the required fields for its node
type. See the `requirements-graph` skill (`skills/product/requirements-graph/`) for the
full frontmatter schema and examples.
**Compliance signals** that trigger graph mode regardless of complexity:
`security`, `compliance`, `regulatory`, `audit`, `sox`, `hipaa`, `gdpr`, `pci`
**Monolith mode** (complexity < 3, no compliance signals):
Produce the existing inline format shown below.
---
## Output Format (monolith mode)
```markdown
## Requirements Analysis
### User Stories
#### US1: {Story Title}
**As a** {persona}
**I want** {capability}
**So that** {benefit}
**Priority**: {P0/P1/P2}
**Complexity**: {S/M/L/XL}
**Acceptance Criteria**:
1. Given {context}, When {action}, Then {outcome}
2. Given {context}, When {error condition}, Then {error handling}
**Edge Cases**:
- {Edge case scenario}
**Dependencies**:
- {Dependency on other stories/systems}
**Open Questions**:
- {Question needing clarification}
---
### Requirements Summary
| ID | Story | Priority | Clarity |
|----|-------|----------|---------|
| US1 | {title} | P0 | CLEAR |
| US2 | {title} | P1 | NEEDS_CLARIFICATION |
### Non-Functional Requirements
- **Performance**: {requirement}
- **Security**: {requirement}
- **Usability**: {requirement}
### Assumptions
- {Assumption made}
### Open Questions
1. {Question for stakeholder}
2. {Ambiguity to resolve}
```
## Quality Checks
Before marking complete:
- [ ] Each story has clear persona, action, benefit
- [ ] Acceptance criteria are testable
- [ ] Edge cases identified
- [ ] Dependencies mapped
- [ ] Ambiguities flagged
- [ ] Non-functional requirements noted
## Traceability Output
When producing requirements or user stories, always assign a unique ID using the format `REQ-{domain}-{number}` (e.g., `REQ-AUTH-001`, `REQ-SEARCH-003`).
Include a **Traceability** section in your output for each requirement:
```markdown
### Traceability
- **Upstream**: {business goal, user need, or stakeholder request this traces to}
- **Downstream**: {design decisions, acceptance criteria, and tests that should verify this}
```
When requirements are finalized and an archetype-mode project is active, the v11 produces contract carries the requirement-to-artifact link via `scripts/qe/evidence_tracker.py`:
```bash
wicked-garden run scripts/qe/evidence_tracker.py claim \
<project_dir> --name <produces-item> --artifact <path-or-id> --claimed-by requirements-analyst
```
This records that the requirement-bearing artifact was produced; downstream archetypes (build, review) read the tracker via `evidence_tracker.py status <project_dir>` to confirm.
## Integration with wicked-crew
When clarify phase starts:
- Read outcome.md or project brief
- Elicit requirements through questioning
- Write user stories with acceptance criteria
- Flag ambiguities for stakeholder input
- Store via TaskCreate with `metadata={event_type:"task", chain_id:"{project}.clarify", source_agent:"requirements-analyst", phase:"clarify", initiative:"{req_id}"}` for traceability
## Dispatch
Worker skill, reached by its name — `wicked-garden-product-requirements-analyst` — through a
Hand-off from the `wicked-garden-product` router or any caller. The pre-v12.25
subagent-delegation form is retired with the fork frontmatter.