arabelatso/requirement-enhancer
Iteratively enhance user requirements into clear, complete, actionable specifications through analysis and clarification. Use when: (1) Users provide initial requirements that need refinement, (2) Requirements are vague, incomplete, or ambiguous, (3) Creating formal specifications from informal descriptions, (4) Identifying missing constraints, edge cases, or acceptance criteria, (5) Clarifying assumptions and implicit dependencies, or (6) Preparing requirements for design, implementation, or verification. Operates interactively: analyze → ask clarifying questions → refine based on responses.
npx skills add https://github.com/ArabelaTso/Skills-4-SE --skill requirement-enhancer
Transform initial requirements into clear, complete, actionable specifications through iterative analysis and refinement.
Analyze the requirement across multiple dimensions:
Clarity: Identify vague terms, ambiguous language, undefined metrics
Completeness: Find missing functional/non-functional requirements, edge cases
Consistency: Detect conflicts, contradictions, terminology issues
Feasibility: Note technical concerns, resource constraints
Testability: Check for measurable acceptance criteria
Categorize issues by severity:
🔴 Critical: Core functionality undefined, conflicting requirements
🟡 Important: Missing constraints, unclear scope, vague metrics
🟢 Minor: Terminology inconsistencies, formatting issues
Ask targeted clarification questions:
For ambiguity: "What exactly does [vague term] mean in measurable terms?"
For incompleteness: "What should happen when [edge case]?"
For conflicts: "How do requirements X and Y work together?"
For missing details: "What are the [performance/security/usability] requirements?"
Use the AskUserQuestion tool to present questions clearly.
Based on user answers:
Add standard practices when applicable:
For authentication: Password requirements, session management, rate limiting
For APIs: Error codes, versioning, rate limits, documentation
For data processing: Validation, error handling, performance bounds
For web apps: Browser compatibility, accessibility, security (OWASP)
Label enrichments as [STANDARD PRACTICE] or [BEST PRACTICE].
Organize enhanced requirement in clear sections:
## [Requirement Name]
### Overview
[Brief description preserving original intent]
### Functional Requirements
[Detailed functional requirements with IDs]
### Non-Functional Requirements
[Performance, security, usability, etc.]
### Acceptance Criteria
[Testable criteria in Given/When/Then format]
### Assumptions
[Explicit list of assumptions with labels]
### Edge Cases
[Identified edge cases and expected behavior]
### Constraints
[Technical, business, regulatory constraints]
### Out of Scope
[Explicitly excluded items]
For detailed analysis dimensions and patterns, see analysis_framework.md.
Key areas to analyze:
Vague: "The system should be fast"
Enhanced: "The system MUST respond within 200ms for 95% of requests"
Vague: "The system should support users"
Enhanced: "The system MUST support at least 10,000 concurrent users"
Vague: "Users can edit documents"
Enhanced: "Authenticated users with 'Editor' role can modify content of documents they own"
Vague: "Backup data regularly"
Enhanced: "Perform incremental backups every 6 hours, full backups daily at 2 AM UTC"
Vague: "If user is inactive, log them out"
Enhanced: "After 30 min inactivity, warn user. After 35 min total, save work and log out"
What the system must do:
How the system must perform:
Testable conditions for requirement satisfaction:
[CONFIRMED]: User explicitly confirmed[ASSUMED]: Reasonable assumption, needs confirmation[INFERRED]: Logical deduction from confirmed facts[STANDARD PRACTICE]: Industry-standard approach[BEST PRACTICE]: Recommended approachMUST: Mandatory, non-negotiableSHOULD: Highly desired, may be deferredMAY: Optional, nice-to-haveMUST NOT: Explicitly forbiddenStructure enhanced requirements as Markdown:
# [Feature/System Name]
## Overview
[Brief description, 2-3 sentences]
## Functional Requirements
### FR-[ID]-001: [Requirement Name]
- **Priority**: MUST/SHOULD/MAY
- **Description**: [Detailed description]
- **Acceptance Criteria**:
- Given [precondition]
- When [action]
- Then [expected result]
## Non-Functional Requirements
### NFR-[ID]-001: [Category]
- **Priority**: MUST/SHOULD/MAY
- **Description**: [Specific requirement with metrics]
- **Measurement**: [How to verify]
## Assumptions
- [CONFIRMED] [User-confirmed assumption]
- [ASSUMED] [Reasonable assumption needing confirmation]
- [INFERRED] [Logical deduction]
## Edge Cases
- **[Scenario]**: [Expected behavior]
## Constraints
- [Technical/business/regulatory constraints]
## Out of Scope
- [Explicitly excluded features or functionality]
Before finalizing, verify:
✓ All critical ambiguities resolved
✓ Functional and non-functional requirements specified
✓ Acceptance criteria are testable
✓ Assumptions explicitly labeled
✓ Edge cases identified
✓ Constraints documented
✓ Priority levels assigned
✓ Original intent preserved
For complete before/after examples including:
See examples.md.
Take arabelatso/requirement-enhancer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.