home-manager/ai-tools/agent-skills/skills/requirements-definition/SKILL.md
This skill should be used when the user asks to "define requirements", "create specification", "clarify requirements", "write requirements document", or mentions requirement analysis. Provides comprehensive requirements definition methodology.
npx skillsauth add takeokunn/nixos-configuration Requirements DefinitionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Security:
- All data encrypted at rest using AES-256
- JWT tokens for authentication
Maintainability:
- Test coverage >= 80%
- Documentation for all public APIs
</example>
</pattern>
<pattern name="technical_specifications">
<description>Document design policies, patterns, and key decisions with rationale</description>
<decision_tree name="when_to_use">
<question>Have key technical decisions been made or identified?</question>
<if_yes>Apply technical specifications pattern with rationale and impact analysis</if_yes>
<if_no>Continue requirements gathering to identify decision points</if_no>
</decision_tree>
<example>
Design Decision: Use React Query for data fetching
Rationale:
- Built-in caching reduces API calls
- Automatic background refetching
- TypeScript support
- Widely adopted in existing codebase
Impact Scope:
- All components making API calls
- Testing utilities need to mock React Query
</example>
</pattern>
<pattern name="requirement_quality_metrics">
<description>Quantitative measures of requirement quality</description>
<decision_tree name="when_to_use">
<question>Are all requirements documented and ready for handoff?</question>
<if_yes>Apply quality metrics to assess requirement completeness</if_yes>
<if_no>Continue requirements definition until complete</if_no>
</decision_tree>
<example>
Feasibility (0-100): Technical achievability given constraints
- 90-100: Straightforward with existing tools
- 70-89: Requires some research or new libraries
- 50-69: Significant technical challenges
- Below 50: May need architecture changes
Objectivity (0-100): Evidence-based vs. assumption-based
- 90-100: All requirements verified through investigation
- 70-89: Most requirements verified, some assumptions documented
- 50-69: Mix of verification and assumptions
- Below 50: Mostly assumptions, needs more investigation
</example>
</pattern>
</patterns>
<output>
<format>
<summary>
- One-sentence request description
- Background and context
- Expected outcomes
</summary>
<current_state>
- Existing system description
- Technology stack
- Relevant patterns and conventions
</current_state>
<functional_requirements>
Format: FR-XXX (FR-001, FR-002, ...)
- Priority: mandatory or optional
- Clear acceptance criteria
</functional_requirements>
<non_functional_requirements>
- Performance: response time, throughput
- Security: authentication, authorization, data protection
- Maintainability: code quality, documentation
</non_functional_requirements>
<technical_specifications>
- Design policies and patterns
- Impact scope analysis
- Key design decisions with rationale
</technical_specifications>
<metrics>
- Feasibility (0-100): Technical achievability
- Objectivity (0-100): Evidence-based specification
</metrics>
<constraints>
- Technical constraints: platform, language, framework
- Operational constraints: deployment, maintenance
</constraints>
<test_requirements>
- Unit test coverage expectations
- Integration test scenarios
- Acceptance criteria verification
</test_requirements>
<task_breakdown>
- Dependency graph: task dependencies and execution order
- Phased tasks: files to modify/create, overview of changes, dependencies
- Execute handoff: key decisions, reference implementations, constraints
</task_breakdown>
</format>
</output>
<best_practices> <practice priority="critical">Always investigate current state before defining requirements using Serena's symbol-level operations</practice> <practice priority="critical">Score questions using the 4-criteria scoring system and prioritize high-score questions (>= 15)</practice> <practice priority="critical">Clearly distinguish mandatory from optional requirements with explicit rationale</practice> <practice priority="high">Document all assumptions when requirements are unclear or incomplete</practice> <practice priority="high">Map each requirement to specific test scenarios for verification</practice> <practice priority="high">Include rationale for key design decisions in technical specifications</practice> <practice priority="medium">Use Context7 to verify latest library documentation and best practices</practice> <practice priority="medium">Create dependency graphs showing task execution order</practice> </best_practices>
<anti_patterns> <avoid name="vague_requirements"> <description>Requirements that are unclear or unmeasurable</description> <instead>Write specific, testable requirements with clear acceptance criteria</instead> </avoid> <avoid name="implementation_details"> <description>Specifying implementation details instead of requirements</description> <instead>Describe what needs to be achieved, not how to implement it</instead> </avoid> <avoid name="skipping_investigation"> <description>Writing requirements without investigating existing code</description> <instead>Always investigate current state before defining requirements</instead> </avoid> <avoid name="missing_constraints"> <description>Not identifying technical or operational constraints</description> <instead>Explicitly document all constraints that affect implementation</instead> </avoid> <avoid name="undefined_priorities"> <description>Treating all requirements as equally important</description> <instead>Clearly mark requirements as mandatory or optional with rationale</instead> </avoid> </anti_patterns>
<rules priority="critical"> <rule>Never proceed without clear answers to critical questions (score >= 15)</rule> <rule>All requirements must be verifiable and measurable</rule> <rule>Distinguish mandatory from optional requirements</rule> </rules> <rules priority="standard"> <rule>Present high-score questions first in requirement discussions</rule> <rule>Document assumptions explicitly when requirements are unclear</rule> <rule>Include rationale for key design decisions</rule> <rule>Map requirements to test scenarios</rule> </rules><error_escalation inherits="core-patterns#error_escalation"> <examples> <example severity="low">Minor ambiguity in non-critical detail</example> <example severity="medium">Unclear requirement affecting scope</example> <example severity="high">Technically infeasible requirement</example> <example severity="critical">Requirement violates security or ethics</example> </examples> </error_escalation>
<constraints> <must>Investigate before concluding</must> <must>Ask questions before making assumptions</must> <must>Include (Recommended) option in AskUserQuestion</must> <avoid>Proceeding without answering critical questions</avoid> <avoid>Justifying user preferences over technical validity</avoid> <avoid>Documenting requirements without evidence</avoid> </constraints><related_skills> <skill name="investigation-patterns">Use to understand current system state before requirements definition</skill> <skill name="execution-workflow">Use after requirements approval to delegate implementation</skill> <skill name="testing-patterns">Use to define test requirements and acceptance criteria</skill> </related_skills>
<related_agents> <agent name="explore">Locate existing implementations and patterns to ground requirements in evidence</agent> <agent name="design">Evaluate architectural feasibility and consistency of proposed requirements</agent> <agent name="validator">Cross-validate requirements document for completeness and consistency</agent> </related_agents>
tools
This skill should be used when the user asks to parse, search, grep, query, filter, or extract headings, sections, tasks, code blocks, links, or tables from Markdown files. Use when working with mdq, jq-style Markdown querying, section extraction, checklist validation, CI task scripts, or documentation automation pipelines.
development
Practical SBCL (Steel Bank Common Lisp) operations guide. Use this skill whenever the user mentions SBCL execution/debugging, --script usage, REPL workflows, backtraces, ASDF loading, save-lisp-and-die, profiling, or SLY-based Common Lisp development.
tools
Context7 MCP documentation retrieval patterns for up-to-date library and API references. Use this skill whenever current library docs, API signatures, version-specific behavior, or migration notes are needed.
development
Patterns for output formats, reflection checkpoints, agent references, and self-evaluation shared across agents and commands.