Graph-based requirements as atomic markdown files with rich frontmatter. Filesystem-as-graph: each AC is a node, directories are groupings, meta.md files are the human interface, frontmatter traces are the edges. Use when: defining requirements as a filesystem graph of atomic ACs, eliciting user stories, or laying out acceptance criteria with traceable edges.
Resources
1Install
npx skillscat add mikeparcewski/wicked-garden/wicked-garden-product-requirements-graph Install via the SkillsCat registry.
Requirements Graph
Atomic, graph-structured requirements using the filesystem. Each acceptance
criterion is a file. Each user story is a directory. Traces live in frontmatter.meta.md files aggregate for humans.
Why Graph Over Monolith
| Monolith (old) | Graph (new) |
|---|---|
| 200-260 line single file | 10-30 line atomic nodes |
| Duplicates stories + functional reqs | One node per concept |
| Traceability in separate store | Traces in frontmatter |
| Grep for coverage | FTS5 + frontmatter queries |
| All-or-nothing context load | Progressive: frontmatter, meta.md, or full |
Directory Layout
requirements/
meta.md # Project-level summary
{area}/ # Epic/feature area (kebab-case)
meta.md # Area summary + story table
{US-NNN}/ # User story directory
meta.md # Story definition + AC table
{AC-NNN}-{slug}.md # Atomic acceptance criterion
{NFR-NNN}-{slug}.md # Non-functional requirements (area-level)
_decisions/ # ADR-style decision records
{DEC-NNN}-{slug}.md
_scope.md # In/out/future scope
_risks.md # Risk register
_questions.md # Open questionsNode Types
Five node types, each a small markdown file with YAML frontmatter:
| Type | Lives at | Required fields |
|---|---|---|
acceptance-criterion |
{area}/{US-NNN}/{AC-NNN}-{slug}.md |
id, type, priority, category, story |
user-story |
{area}/{US-NNN}/meta.md |
id, type, priority, complexity, persona, status |
area |
{area}/meta.md |
id, type |
nfr |
{area}/{NFR-NNN}-{slug}.md |
id, type, priority, category, target |
decision |
_decisions/{DEC-NNN}-{slug}.md |
id, type, status, date |
requirements-root |
meta.md |
type, project, created, status |
Minimal AC (the atomic unit):
---
id: auth/US-001/AC-001
type: acceptance-criterion
priority: P0
category: happy-path
story: auth/US-001
---
Given valid credentials
When user submits login form
Then user is redirected to dashboard and session is created12 lines. See refs/schema.md for all fields and refs/examples.md for
complete story, area, NFR, and decision examples.
Frontmatter Schema
Required fields (all node types):
id— path-derived slug, canonical referencetype—acceptance-criterion,user-story,area,nfr,decision,requirements-root
Required for ACs:
priority— P0/P1/P2category— happy-path, error, edge-case, non-functionalstory— parent story slug
Required for stories:
priority,complexity,persona,status
Optional (all types):
traces— list of{target, type}objects (graph edges)tags— keyword list for searchcompliance— regulatory refs (SOC2, HIPAA, GDPR controls)
Trace types (edges):
DECOMPOSES_TO— story to ACsTRACES_TO— requirement to designIMPLEMENTED_BY— AC to source codeTESTED_BY— AC to test fileVERIFIES— test result back to ACSATISFIES— evidence to requirementDEPENDS_ON— cross-story/cross-area dependency
Authoring Process
1. Initialize graph
Create requirements/ with root meta.md, _scope.md, _questions.md:
mkdir -p requirements
# Write root meta.md, _scope.md, _risks.md, _questions.md2. Create areas from discovery
For each feature area, create requirements/{area}/meta.md.
3. Decompose into stories
For each story, create requirements/{area}/{US-NNN}/meta.md with
the As a/I want/So that definition.
4. Write atomic ACs
For each acceptance criterion, create individual files:requirements/{area}/{US-NNN}/{AC-NNN}-{slug}.md
Keep AC files small: Given/When/Then + frontmatter. No essays.
5. Add traces as work progresses
Update traces: frontmatter as code and tests are written.
Traces are bidirectional by convention — if AC-001 hasIMPLEMENTED_BY: src/login.ts, the navigate skill can reverse-query.
Crew Integration
| Crew Phase | Graph Action |
|---|---|
| clarify | Create requirements/ structure, areas, stories, ACs |
| design | Add TRACES_TO links from stories to design docs |
| build | Add IMPLEMENTED_BY links from ACs to code |
| test | Add TESTED_BY links from ACs to test files |
| review | Navigate skill generates fresh meta.md, gate checks coverage |
Progressive Disclosure
- SKILL.md (this file): Overview, layout, schema, process
- refs/schema.md: Complete frontmatter reference with all fields
- refs/examples.md: Full worked examples for different project types