Use when tech design is reviewed and approved. Generates functional requirements docs (EA then GA) from the approved PRD and tech design. Runs both milestones sequentially in one pass.
64
76%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./.claude/skills/func-req/SKILL.mdGenerate functional requirements docs (one epic + stories per milestone) from the approved PRD and tech design.
/func-req --project <name>--project — matches folder under docs/projects/. Optional if .current-project is set.Project: --project <name> or .current-project — stop if neither.
docs/projects/<name>/prd.md must have status: approved AND a Scope Proposal section with EA/GA assignments (no remaining ⚡ items). If ⚡ items remain, stop: "Scope not finalized — resolve the ⚡ items in the Scope Proposal section of prd.md before running func-req."docs/projects/<name>/tech-design.md must have status: approved — stop if not met.If tech-design.md does not exist: "tech-design.md not found. For UI-only features with no backend changes, confirm before proceeding — tasks will be labeled [UNVERIFIED]. Otherwise run /tech-design first."
Read all files before generating anything:
docs/projects/<name>/prd.md — user stories (section 4), goals (section 2), non-goals (section 3), dependencies (section 6), and the Scope Proposal section (EA/GA assignments). Check design-mocks in frontmatter.docs/projects/<name>/tech-design.md — API contracts, DB schema, component changes, integration points, open technical questions
Design mocks (if present): If section 5 of prd.md contains a Design Mocks Summary (written by /analyze), read it. Map screens to US-XX stories. Reference specific screen names in acceptance criteria where they add precision — behavioral states only, not visual styling.Read the Scope Proposal section in prd.md:
Story selection is strict: EA file contains only ✅ stories. GA file contains only ⏩ stories. No story appears in both files.
One epic per milestone:
[EA] <Project Name> or [GA] <Project Name>For each user story in the milestone (by US-XX ID), produce a story block:
### US-01: <Story Title>
**As a** <persona>, **I want** <capability> **so that** <outcome>.
**Acceptance Criteria:**
- [ ] <User-facing, observable behavior>
- [ ] <Reference specific endpoint/component/state from tech design where relevant>
**Technical Tasks:**
API:
- <Endpoint to create or modify — method, path, key params (tech-design.md: API Contracts)>
UI:
- <Component or page change (tech-design.md: Components)>
Background jobs / workers:
- <Worker or job (tech-design.md: section)>
External dependency:
- <Team name>: <what is needed> ⚠️ EA blocker *(remove tag if not a blocker)*
Misc / launch:
- <Docs, runbook, comms, rollout task>Rules:
Add GET /audit-logs endpoint (tech-design.md: API Contracts). Uncited tasks must be flagged [UNVERIFIED]⚠️ EA blockerWrite to:
docs/projects/<name>/functional-requirements-ea.mddocs/projects/<name>/functional-requirements-ga.md (if GA scope exists)Frontmatter:
---
project: <name>
milestone: <ea|ga>
created: <today's date YYYY-MM-DD>
status: draft
jira-epic-key:
---"Functional requirements drafted:
docs/projects/<name>/functional-requirements-ea.mddocs/projects/<name>/functional-requirements-ga.md(if GA exists)Review stories, acceptance criteria, and technical task groupings. Reply approved when ready."
If the user replies with approval language ("approved", "lgtm", "looks good", etc.):
status: approved on each drafted functional requirements file./jira-tickets — creates one JIRA Epic per milestone and one Story per technical task (~3 days each), sized and linked. Run /jira-tickets --project <name> when ready."585e8a6
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.