Loading...
Loading...
Complete Problem-Based Software Requirements Specification methodology following Gorski & Stadzisz research. Use when you need to perform requirements engineering from business problems to functional requirements with full traceability.
npx skill4agent add rafaelgorski/problem-based-srs problem-based-srsBusiness Context
↓
┌──────────────────┐
│ Step 1: CP │ → See references/step1-customer-problems.md
│ Customer Problems│
└────────┬─────────┘
↓
┌──────────────────┐
│ Step 2: SG │ → See references/step2-software-glance.md
│ Software Glance │
└────────┬─────────┘
↓
┌──────────────────┐
│ Step 3: CN │ → See references/step3-customer-needs.md
│ Customer Needs │
└────────┬─────────┘
↓
┌──────────────────┐
│ Step 4: SV │ → See references/step4-software-vision.md
│ Software Vision │
└────────┬─────────┘
↓
┌──────────────────┐
│ Step 5: FR/NFR │ → See references/step5-functional-requirements.md
│ Requirements │
└──────────────────┘| Domain | Artifact | Question Answered |
|---|---|---|
| WHY | Customer Problems (CP) | Why is the solution needed? (Business justification) |
| WHAT | Customer Needs (CN) | What outcomes must the software provide? |
| HOW | Functional Requirements (FR) | How will the system behave? |
Before we begin, where would you like to save your SRS artifacts?
Options:
1. `docs/srs/` (recommended - keeps SRS separate from code docs)
2. `requirements/` (alternative - at project root)
3. Custom path: [specify your preferred location]
All artifacts will be saved in this folder with consistent naming.[chosen-folder]/ # e.g., docs/srs/
├── 00-context.md # Business context and project overview
├── 01-customer-problems.md # Step 1: CPs (WHY)
├── 02-software-glance.md # Step 2: High-level solution view
├── 03-customer-needs.md # Step 3: CNs (WHAT)
├── 04-software-vision.md # Step 4: Architecture and scope
├── functional-requirements/ # Step 5: Individual FR files
│ ├── _index.md # FR summary and traceability matrix
│ ├── FR-001.md # Individual FR file
│ ├── FR-002.md # Individual FR file
│ └── ... # One file per FR
├── non-functional-requirements/ # NFR files (quality attributes)
│ ├── _index.md # NFR summary
│ ├── NFR-001.md # Individual NFR file
│ └── ... # One file per NFR
└── traceability-matrix.md # CP → CN → FR complete mapping# FR-XXX: [Brief Title]
## Requirement
**Statement:** The [System] shall [verb] [object] [constraint] [condition].
**Priority:** [Must Have | Should Have | Could Have | Won't Have]
**Status:** [Draft | Review | Approved | Implemented | Tested]
## Traceability
| Traces To | ID | Description |
|-----------|-----|-------------|
| Customer Need | CN-XXX | [Brief CN description] |
| Customer Problem | CP-XXX | [Brief CP description] |
## Acceptance Criteria
- [ ] Criterion 1 (testable)
- [ ] Criterion 2 (testable)
- [ ] Criterion 3 (testable)
## Notes
[Any additional context, assumptions, or dependencies]
<!-- ⚠️ NO CODE SNIPPETS: Do not include code examples, SQL, or implementation details here.
Construction details belong in design/ folder (see design/implementation-notes/) -->
---
*Created: [Date]*
*Last Updated: [Date]*
*Author: [Name]*# NFR-XXX: [Brief Title]
## Requirement
**Category:** [Performance | Security | Usability | Reliability | Scalability | Maintainability]
**Statement:** The [System] shall [quality attribute with measurable criteria].
**Priority:** [Must Have | Should Have | Could Have | Won't Have]
**Status:** [Draft | Review | Approved | Implemented | Tested]
## Traceability
| Traces To | ID | Description |
|-----------|-----|-------------|
| Customer Need | CN-XXX | [Brief CN description] |
| Applies To FRs | FR-XXX, FR-YYY | [Related functional requirements] |
## Acceptance Criteria
- [ ] Criterion 1 (measurable)
- [ ] Criterion 2 (measurable)
## Measurement Method
[How this NFR will be verified/tested]
<!-- ⚠️ NO CODE SNIPPETS: Do not include code examples or implementation details here.
Technical specifications belong in design/ folder -->
---
*Created: [Date]*
*Last Updated: [Date]*✅ Step 5 Complete: Functional Requirements Specified
📁 Saved to: docs/srs/functional-requirements/
├── _index.md (summary with 8 FRs)
├── FR-001.md → CN-001 (User Registration)
├── FR-002.md → CN-001 (User Authentication)
├── FR-003.md → CN-002 (Data Validation)
├── FR-004.md → CN-002 (Error Handling)
├── FR-005.md → CN-003 (Report Generation)
├── FR-006.md → CN-003 (Export Functionality)
├── FR-007.md → CN-004 (Search Capability)
└── FR-008.md → CN-004 (Filter Options)
📁 Updated: docs/srs/traceability-matrix.md
Engineers can now work on individual requirements independently.
Each FR file contains full context and acceptance criteria.# Project Context: [Project Name]
## Business Domain
[Description of the business area]
## Current Situation
[Description of current state/problems]
## Stakeholders
| Role | Name/Group | Interest |
|------|------------|----------|
| [Role] | [Who] | [What they care about] |
## Scope
- **In Scope:** [What's included]
- **Out of Scope:** [What's excluded]
## Constraints
- [Constraint 1]
- [Constraint 2]
---
*Created: [Date]*
*Last Updated: [Date]*| If user has... | Current Step | Load Reference | Save To |
|---|---|---|---|
| Nothing / business idea only | 1 | step1-customer-problems.md | 01-customer-problems.md |
| Customer Problems (CPs) | 2 | step2-software-glance.md | 02-software-glance.md |
| CPs + Software Glance | 3 | step3-customer-needs.md | 03-customer-needs.md |
| CPs + CNs + Software Glance | 4 | step4-software-vision.md | 04-software-vision.md |
| CPs + CNs + Software Vision | 5 | step5-functional-requirements.md | functional-requirements/*.md |
[Subject] [must/expects/hopes] [Object] [Penalty]01-customer-problems.md02-software-glance.md[Subject] needs [system] to [Verb] [Object] [Condition]03-customer-needs.md04-software-vision.mdThe [System] shall [Verb] [Object] [Constraint] [Condition]functional-requirements/FR-XXX.mdnon-functional-requirements/NFR-XXX.md01-customer-problems.md02-software-glance.md03-customer-needs.md04-software-vision.mdfunctional-requirements/non-functional-requirements/_index.mddesign/traceability-matrix.mdI notice you're describing a solution. Let's first understand the problem.
Before we design [mentioned solution], help me understand:
1. What business obligation, expectation, or hope drives this need?
2. What negative consequences occur without this?
3. Who is impacted?
→ Loading: references/step1-customer-problems.md| Artifact | Syntax Pattern |
|---|---|
| CP | [Subject] [must/expects/hopes] [Object] [Penalty] |
| CN | [Subject] needs [system] to [Verb] [Object] [Condition] |
| FR | The [System] shall [Verb] [Object] [Constraint] [Condition] |
| NFR | The [System] shall [quality attribute with measurable criteria] |
✅ Step 3 Complete: Customer Needs Specified
📁 Saved to: docs/srs/03-customer-needs.md
Outputs:
- CN-001: [Information] User needs system to display...
- CN-002: [Control] Admin needs system to manage...
- CN-003: [Information] Manager needs system to report...
Gate Check:
- [x] All CNs use structured notation
- [x] Outcome classes assigned
- [x] Every CP has at least one CN
- [x] File saved
→ Next: Step 4 - Software Vision
→ Loading: references/step4-software-vision.md
→ Will save to: docs/srs/04-software-vision.md
→ Input: The CNs documented above