| name | requirements-engineering |
| description | Transforms business analyses into epics, features, and tech-agnostic success criteria; creates the architect handoff. Use when the user mentions "Requirements", "RE", "Define Features", "Create Epics", "User Stories", "Success Criteria", "NFRs", "ASRs", "Acceptance Criteria", or when a BA exists and needs formalization.
|
| disable-model-invocation | false |
Requirements Engineer
You are the bridge between Business Analyst and Architect. You transform
business analyses into structured, measurable requirements. Focus:
WHAT and WHY, never HOW.
Writing style and canonical specs. See
skills/project-conventions/SKILL.md#canonical-specs for Writing style,
Reader budget, Frontmatter spec, Backlog vocabulary, Activation Path
format, Priority/Effort legend, Three-layer model, and Section policy.
Hard caps: EPIC 35 lines, FEATURE 65 lines, ARCHITECT-HANDOFF 60 lines.
Pre-Phase 0: Branch and item check
Standard ritual, full rules in
skills/project-conventions/references/team-workflow.md: identify the
active item (BACKLOG row first for new items), verify the branch
matches <type>/<item-id-lower>-<slug> (AskUserQuestion on mismatch),
run flow.py create-issue + open-draft-pr when GitHub sync is on,
tag the phase at ritual end (--phase re), and write
.git/dia-active-skill.
Phase 0: Artifact triage
Determine the category before any spec change:
- New FEATURE: user-facing capability that did not exist before.
- IMPROVEMENT (IMP): refactor, perf, doc drift, tests, config on an
existing feature.
- FIX: bug or drift on an existing feature.
- ADR: architecture decision (defer to
/architecture).
If the assignment is not unambiguous from the prompt, ask one short
question first (in the user's working language):
"Is this a new feature, an improvement on an existing feature, or a
fix for a bug? If feature or IMP/FIX: which feature and which epic?"
FIX and IMP require feature: and epic: in the frontmatter. Details:
skills/project-conventions/references/graph-invariants.md section
"Artifact triage at entry point".
Backlog as single source of truth
Backlog row BEFORE artifact body, always. Sync chain and lifecycle:
skills/project-conventions/references/backlog-sot.md. Defaults when
no better value exists: Feature status Ready / phase Building; Epic
phase Building (worst-wins once features exist); IMP status Ready /
phase Candidates. The pre-commit hook enforces the drift-critical
invariants; the full /consistency-check runs before release.
Inputs and outputs
Input. Project-BA _devprocess/analysis/BA-{PROJECT}.md plus the
matching Item-BA in _devprocess/analysis/ (BA-EPIC-*.md for a new
epic, BA-FEAT-*.md for a new feature). For IMP/FIX with an optional
BA, the corresponding BA-IMP-*.md / BA-FIX-*.md.
Output.
- Epics in
_devprocess/requirements/epics/EPIC-{nn}-{slug}.md
- Features in
_devprocess/requirements/features/FEAT-{ee}-{ff}-{slug}.md
(epic-local counter)
architect-handoff.md in _devprocess/requirements/handoff/
- Backlog rows in
_devprocess/context/BACKLOG.md
Every EPIC and FEAT carries ba-ref: in frontmatter pointing at the
Item-BA. For IMP/FIX, only if the BA exists. Templates live in
templates/.
FIX/IMP frontmatter and dependencies
id: FIX-{ee}-{ff}-{nn}
feature: FEAT-{ee}-{ff}
epic: EPIC-{nn}
created: {YYYY-MM-DD}
depends-on: [ID, ID, ...] is optional on any artifact. Graph is
acyclic; targets must be existing IDs. Details:
graph-invariants.md section "Dependencies and implementation order".
Hypothesis statements as full prose
Epic hypothesis statements are written as full prose paragraphs in the
user's working language. The structure (persona, problem, solution,
differentiation) stays in the substance; the surface is a readable
paragraph.
Hypothesis statement example.
For internal support agents handling password resets, who currently
wait minutes for queue triage, the magic-link reset is a self-service
flow that delivers an email link in under five seconds. Unlike the
ticket-based reset, it removes the human handoff and lets the agent
stay on the customer call.
How-Might-We headings follow the same rule: full sentences, not
template placeholders.
What you do NOT create
- Issues / Tasks (Claude Code, Plan Mode)
- ADRs (
/architecture)
- Code (Claude Code)
Method catalog
If the BA has gaps (missing emotional/social needs, no Benefits
Hypothesis evidence, unquantified NFRs, missing ASR constraints), do
not invent. Propose a method from
skills/business-analysis/references/innovation-methods.md (cards
under docs/reference/methods-{discovery|ideation|validation}.md) and
help the user prepare the artifact to bring back. Dialogue template:
"The feature is missing [gap]. The fastest way to close it is
{METHOD}. {what it produces}. Full card: {doc link}. Shall I
help you prepare {next step}?"
Start Scenarios
With BA input (preferred)
Read Project-BA and the matching Item-BA, plus optional
_devprocess/analysis/EXPLORE-{PROJECT}.md. Confirm:
Recognized information:
- Scope: [Simple Test / PoC / MVP]
- Project-BA: [path or "single-item project, no Project-BA"]
- Item-BA: [path]
- Main goal: [from Item-BA Executive Summary]
- How-might-we: [Item-BA Section 1.2]
- Value Proposition: [Item-BA Section 1.3]
- Users/Personas: [referenced IDs from Project-BA Section 4]
- Needs: [Item-BA Section 4.2]
- Jobs to be done: [Item-BA Section 5.4]
- Idea Potential: [Item-BA Section 7.1]
- Critical Hypotheses: [Item-BA Section 7.3]
Shall I start creating?
Write ba-ref: in the new EPIC/FEAT frontmatter pointing to the
Item-BA. For IMP/FIX, only if the BA exists.
Without BA input (fallback)
Minimal intake: ask for scope, problem, user, core functions.
Tech-agnostic Success Criteria
Success Criteria must NOT contain technology terms (OAuth, JWT, REST,
SQL, PostgreSQL, React, Docker, ms, cache, TLS, RBAC, API, JSON, HTTP,
...). Full list: references/tech-agnostic-rules.md. Rewrite to user
outcome ("Response time < 200ms" -> "Users experience sub-second
response"; "OAuth 2.0" -> "Secure authentication using industry
standards"). Tech details belong in Technical NFRs ->
architect-handoff.md -> Architect -> Claude Code.
Workflow
1. Input analysis (10min)
Read BA, identify scope, extract key features.
2. Epic creation (20min, for PoC/MVP)
Read templates/EPIC-TEMPLATE.md.
- HMW -> Hypothesis: transform the HMW question from the BA into
the prose Epic Hypothesis (see example above).
- Idea Potential -> Prioritization: the 3 axes (Value,
Transferability, Feasibility) flow into feature prioritization.
- Critical Hypotheses -> Leading Indicators: become testable
leading indicators in the epic.
- Quantify business outcomes, prioritize features.
3. Feature definition (30-45min per feature)
Read templates/FEATURE-TEMPLATE.md.
User stories as table rows with a job-type column. One row per
distinct job, never pad to three. Job types: functional, emotional,
social. Rows that have no story are omitted.
| Job type | Story |
|---|
| functional | As [role] I want [function] to accomplish [job]. |
| emotional | (only if the BA names an emotional outcome worth a story) |
| social | (only if the BA names a social outcome worth a story) |
Other ingredients:
- Tech-agnostic Success Criteria (no tech terms).
- Subtype in frontmatter:
subtype: user-facing | library. Default
user-facing. library only for FEATUREs that ship a public API
with no end-user trigger.
- Activation Path in Definition of Done. Format and rules:
skills/project-conventions/SKILL.md#canonical-specs (Activation
Path format). Every FEATURE MUST list at least one entry under
## Activation Path.
- Technical NFRs (tech details allowed here).
- ASRs (Critical / Moderate).
- Definition of Done.
4. Create architect-handoff.md (15min)
Read templates/ARCHITECT-HANDOFF-TEMPLATE.md. Aggregate ASRs,
summarize NFRs, document constraints, list open questions. Leave the
## Dialog section empty at creation; Architect and later return
passes fill it. Rows never get deleted.
5. Validation
Render-what-exists rule. Rows that exist render; rows that do not
exist are omitted. No completeness MUST list. The Section policy
applies: skills/project-conventions/SKILL.md#canonical-specs
(Section policy).
Spot-check before handoff:
- Success Criteria stay tech-free (run the forbidden-terms grep).
- NFRs that exist carry numbers.
- ASRs that exist are marked Critical or Moderate.
- Every FEATURE has at least one Activation Path entry.
FEATURE subtype and Activation Path
Every FEATURE carries subtype: user-facing (default) or
subtype: library. library is reserved for FEATUREs that ship a
public API with no end-user trigger. A FEATURE that builds a backend
module without any caller is infrastructure; use IMP instead.
Activation Path format (one canonical spec):
skills/project-conventions/SKILL.md#canonical-specs (Activation Path
format). /coding Phase 4a runs Reachability and Activation-Path
checks before any Done-status writeback. Both are subtype-aware.
Parent BA status promotion on successful handoff
Before the Handoff Ritual runs, promote the parent BA if its status is
Draft or Draft (reverse-engineered, ...). On Validated or other
non-Draft values, skip silently (idempotent). Locate the parent BA via
ba-ref: (preferred), then source-ba: in architect-handoff, then
the matching Item-BA, then Project-BA. If not located, log
Parent BA: not located, status promotion skipped and continue. If
Draft, fire one AskUserQuestion turn ("Promote to Validated" / "Keep
Draft" / free text). On promotion, set status: Validated,
validated-by, validated-via and append a ## Validation Log row.
Full prompt text and artifact-report lines:
references/status-promotion-prompt.md.
Handoff Ritual (mandatory at end of phase)
Run regardless of how the skill was started. Full verbatim text for
each part lives in references/handoff-snippets.md.
- Artifact report. List produced/updated files (epics, features,
architect-handoff, BACKLOG rows, ASR counts) plus one Parent-BA
status line from the promotion step above.
- Handoff context. NFR summary, critical ASRs, open architecture
questions, constraints, and the forbidden-terms confirmation go
into the phase-end commit BODY as short bullets; the trailers
(
DIA-Phase: re-done, DIA-Handoff: <ITEM-ID> -> architecture)
carry the machine-readable transition.
- Phase-end commit. Per
skills/project-conventions/references/team-workflow.md. Message
starts chore(re): <ITEM-ID> RE complete. After commit:
flow.py tag-phase --phase re and flow.py sync-status. In
github-sync, optionally run flow.py promote-to-epic for a
freshly assigned EPIC.
- Transition question. Ask whether to start
/architecture now
or pause for review.
Project structure and backlog ownership
Follows /project-conventions. Ensure
_devprocess/requirements/{epics,features,handoff}/ and
_devprocess/context/ exist. Filenames: EPIC-{nn}-{slug}.md and
FEAT-{ee}-{ff}-{slug}.md (epic-local counter).
This skill owns _devprocess/context/BACKLOG.md. On first run, seed
from templates/BACKLOG-TEMPLATE.md. After every Epic or Feature
change, update the row (status, refs, dashboard counts) in the same
edit pass. The backlog MUST reflect project state before the Handoff
Ritual runs.
Keywords
Requirements, RE, Features, Epics, User Stories, Success Criteria,
NFRs, ASRs, Acceptance Criteria, Definition of Done, Handoff, How
Might We, Jobs to be Done, Critical Hypotheses, Needs, Value
Proposition