An Agent Skill to use Problem-Based Software Requirements Specification (SRS) method in your software project. Designed for integration with AI agents like GitHub Copilot, Claude, and others.
This repository is a continuation of the work presented in the research paper: "Problem-Based SRS: A Novel Approach for Software Requirements Specification" by Gorski and Stadzisz
This is a novel approach to improving software requirements specification quality by constructing knowledge about software requirements from knowledge about customer problems. The Problem-Based SRS methodology consists of an organization of activities and outcome objects through a process with five main steps, aiming to systematically analyze business context and specify requirements.
The key insight from the research: accurately capturing business intents of stakeholders remains a major challenge and factor in software project failures. This methodology addresses this by ensuring requirements provide suitable answers to real customer business issues.
Supported Formats: This repository provides GitHub Copilot prompt files (
.github/prompts/) and AgentSkills format (skills/).
Enable software engineers and requirements analysts to leverage AI agents for better requirements engineering by providing:
- Structured Skills for each phase of requirements gathering
- Problem-first methodology that ensures requirements solve real needs
- AI agent integration compatible with Claude Code, Claude.ai, and Claude API
- Lightweight approach with no heavy tooling or frameworks
- Examples and templates for immediate use
This repository supports multiple formats:
.github/prompts/- GitHub Copilot prompt files for VS Code, Visual Studio, and JetBrains IDEsskills/- AgentSkills format for Claude Code and Claude.ai `` .github/prompts/ # GitHub Copilot prompt files (VS Code, Visual Studio, JetBrains) ├── srs-coordinator.prompt.md # Main orchestrator prompt ├── cp.prompt.md # Step 1: Customer Problems ├── glance.prompt.md # Step 2: Software Glance ├── cn.prompt.md # Step 3: Customer Needs ├── vision.prompt.md # Step 4: Software Vision ├── fr.prompt.md # Step 5: Functional Requirements └── zigzag.prompt.md # Quality validation tool
skills/problem-based-srs/ # AgentSkills format (Claude Code, Claude.ai) ├── SKILL.md # Main orchestrator skill └── references/ # Detailed instructions for each step ├── step1-customer-problems.md ├── step2-software-glance.md ├── step3-customer-needs.md ├── step4-software-vision.md ├── step5-functional-requirements.md └── zigzag-validator.md
This repository supports two formats:
- **`.github/prompts/`** - [GitHub Copilot prompt files](https://docs.github.com/en/copilot/tutorials/customization-library/prompt-files) for VS Code, Visual Studio, and JetBrains IDEs
- **`skills/`** - [AgentSkills](https://agentskills.io) format for Claude Code and Claude.ai
## 📊 Methodology Overview
### The 5-Step Process
```mermaid
graph LR
A[Business Context] --> B[Step 1: **C**ustomer **P**roblems]
B --> C[Step 2: Software Glance]
C --> D[Step 3: **C**ustomer **N**eeds]
D --> E[Step 4: Software Vision]
E --> F[Step 5: **F**unctional **R**equirements]
F --> G[Ready to code]
B -.->| Use **/cp**<br/>Identify **WHY** behind Customer Problems | B
C -.->| Use **/glance** to draft the sofware high level compoenents| C
D -.->| Use **/cn**<br/>Define **WHAT** customer needs should help the problems <br/>&<br/> validate with **/zigzag** | D
E -.->| Use **/vision** to detail software architecture | E
F -.->| Use **/fr** to define the **HOW** <br/>&<br/> validate with **/zigzag** | F
style B fill:#ff6b6b
style C fill:#4ecdc4
style D fill:#45b7d1
style E fill:#96ceb4
style F fill:#ffeaa7
graph LR
subgraph "Understanding Customer"
SP1[Business Context] --> SP2[Use **/cp**<br/>Identify **WHY** behind Customer Problems]
SP2 --> SP3[Use **/cn**<br/>Define **WHAT** will customer needs or Acceptance Criteria to solve the problem]
SP3 --> SP4[Use **/zigzag**<br/>Validate Traceability and Coupling with CPs]
end
subgraph "Software Design"
D1[Use **/glance**<br/>High-level Software Approach] --> D2[Use **/vision**<br/> Software Architecture]
I1[Use **/fr**<br/> Implementation details of **HOW**]
I1 --> D3[Use **/zigzag**<br/>Validate Traceability and Coupling with CNs]
end
subgraph "SWE Construction"
I2[Code]
end
SP2 --> D1
SP3 --> I1
I1 --> I2
D2 --> I2
D1 --> SP3
style SP2 fill:#ff6b6b
style D1 fill:#4ecdc4
style D2 fill:#96ceb4
style I1 fill:#ffeaa7
style D3 fill:#a29bfe
This section guides developers new to AI agents through setting up and using the Problem-Based SRS methodology with GitHub Copilot and Claude.
Before using these prompts, ensure you have the following:
| Requirement | Description | Installation |
|---|---|---|
| GitHub Account | Required for Copilot access | Sign up |
| GitHub Copilot Subscription | Individual, Business, or Enterprise | Get Copilot |
| Supported IDE | VS Code, Visual Studio, or JetBrains IDE | See below |
| Copilot Extension | IDE extension for your editor | See below |
IDE Setup:
VS Code
- Install VS Code
- Open Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search and install "GitHub Copilot"
- Search and install "GitHub Copilot Chat"
- Sign in with your GitHub account when prompted
- Verify Copilot icon appears in status bar
Visual Studio
- Install Visual Studio 2022 (v17.6+)
- Go to Extensions → Manage Extensions
- Search and install "GitHub Copilot"
- Restart Visual Studio
- Sign in with your GitHub account
JetBrains IDEs
- Install your preferred JetBrains IDE (IntelliJ IDEA, PyCharm, WebStorm, etc.)
- Go to Settings → Plugins
- Search and install "GitHub Copilot"
- Restart the IDE
- Sign in with your GitHub account
| Requirement | Description | How to Get |
|---|---|---|
| Anthropic Account | Required for Claude access | Sign up |
| Claude Pro (optional) | Extended context and usage | Upgrade |
| Claude Code (optional) | Terminal-based Claude for coding | Install Guide |
Clone this repository to include the prompts in your project:
# Clone the repository
git clone https://github.com/RafaelGorski/Problem-Based-SRS.git
# Or add as a submodule to your existing project
git submodule add https://github.com/RafaelGorski/Problem-Based-SRS.git .srs-methodologyCopy only the files you need:
For GitHub Copilot:
Copy .github/prompts/ → your-project/.github/prompts/
For Claude Code:
Copy skills/problem-based-srs/ → your-project/skills/problem-based-srs/
GitHub Copilot automatically discovers .prompt.md files in your .github/prompts/ directory.
Step 1: Open Copilot Chat
- VS Code: Press
Ctrl+Shift+I(Windows/Linux) orCmd+Shift+I(Mac) - Visual Studio: View → GitHub Copilot Chat
- JetBrains: Right-click → GitHub Copilot → Open Chat
Step 2: Use a Prompt Command
Type the prompt command in the chat. Available commands:
| Command | Purpose | When to Use |
|---|---|---|
/cp |
Customer Problems | Start here! Identify the WHY behind your project |
/glance |
Software Glance | Create high-level system overview |
/cn |
Customer Needs | Define WHAT outcomes software should provide |
/vision |
Software Vision | Document scope and architecture boundaries |
/fr |
Functional Requirements | Specify HOW the system will behave |
/zigzag |
Validate Traceability | Check consistency between CP → CN → FR |
/srs-coordinator |
Full Orchestration | Let the AI guide you through all 5 steps |
Step 3: Provide Context
When prompted, provide:
/cp
Business Context: We're building an inventory management system for a
warehouse that currently tracks everything in spreadsheets. They have
3 warehouse locations and 50 employees.
Example Session:
You: /cp
Copilot: I'll help you identify Customer Problems. Please describe your
business context...
You: Our retail company loses $50k/month due to inventory discrepancies
between physical stock and system records. Warehouse staff use paper
forms that get lost or entered late.
Copilot: Based on your context, here are the identified Customer Problems:
### CP-001: Inventory Data Accuracy
**Statement:** The company must maintain accurate inventory records
that match physical stock otherwise loses $50k monthly in discrepancies.
**Classification:** Obligation
...
Step 1: Start a New Conversation
Go to claude.ai and start a new chat.
Step 2: Upload the Skill
- Click the attachment/upload icon
- Upload the
skills/problem-based-srs/SKILL.mdfile - Also upload the files from
skills/problem-based-srs/references/folder
Step 3: Start Your Session
I've uploaded the Problem-Based SRS methodology. I need help creating
requirements for [your project description].
Let's start with Step 1: Customer Problems.
Alternative: Copy-Paste Approach
If you prefer not to upload files:
- Open the specific step file you need (e.g.,
.github/prompts/cp.prompt.md) - Copy the entire content
- Paste it at the start of your Claude conversation
- Provide your business context
Claude Code automatically discovers skills in your workspace.
Step 1: Install Claude Code
# macOS
brew install anthropic/tap/claude-code
# Or via npm
npm install -g @anthropic-ai/claude-codeStep 2: Navigate to Your Project
cd your-project
# Ensure skills/problem-based-srs/ exists in your projectStep 3: Start Claude Code
claudeStep 4: Use the Methodology
The skill auto-discovers. Just describe what you need:
> Help me create requirements for my inventory management system.
The warehouse currently tracks everything in spreadsheets.
Claude Code will detect you need to start at Step 1 and guide you through the process.
sequenceDiagram
participant You
participant AI as GitHub Copilot / Claude
You->>AI: /cp with business context
AI->>You: Customer Problems (CP-001, CP-002...)
You->>AI: /glance with CPs
AI->>You: Software Glance document
You->>AI: /cn with CPs + Glance
AI->>You: Customer Needs (CN-001, CN-002...)
You->>AI: /zigzag to validate CN→CP traceability
AI->>You: Validation report
You->>AI: /vision with CNs + Glance
AI->>You: Software Vision document
You->>AI: /fr with CNs + Vision
AI->>You: Functional Requirements (FR-001...)
You->>AI: /zigzag to validate FR→CN→CP traceability
AI->>You: Final validation report
If you already have requirements that need structure:
/fr
I have these existing requirements that need to be validated and
structured. Please review them and ensure they trace to customer needs:
1. User shall be able to log in
2. System shall display inventory levels
3. Admin shall generate reports
...
| Issue | Solution |
|---|---|
| Prompts not appearing in Copilot | Ensure .github/prompts/ folder is in your workspace root. Restart your IDE. |
| "Command not found" error | Verify Copilot Chat extension is installed and you're signed in. |
| Claude doesn't follow methodology | Re-upload the SKILL.md file or copy-paste the specific prompt at the start of your message. |
| Outputs are too generic | Provide more specific business context. Include numbers, constraints, and stakeholder details. |
| Traceability validation fails | Use /zigzag to identify gaps, then revisit the step with missing traceability. |
-
Be Specific: The more context you provide, the better the output. Include business domain, constraints, numbers, and stakeholder roles.
-
Iterate: Don't expect perfect results on the first try. Refine and ask for adjustments.
-
Maintain Artifacts: Save each step's output in a markdown file for future reference and traceability.
-
Validate Often: Use
/zigzagbetween major steps to catch issues early. -
Trust the Process: The 5-step methodology is designed to prevent common requirements pitfalls. Don't skip steps.
The prompts are available as .prompt.md files in .github/prompts/. In VS Code, Visual Studio, or JetBrains IDEs:
/cp # Start with Customer Problems
/glance # Create Software Glance
/cn # Generate Customer Needs
/vision # Build Software Vision
/fr # Specify Functional Requirements
/zigzag # Validate traceability
/srs-coordinator # Full methodology orchestration
The methodology works with any LLM (ChatGPT, DeepSeek, Claude, Llama, etc.).
Option 1: AgentSkills (Open Standard)
The skills/ directory follows the AgentSkills standard, compatible with any tool that implements it.
For Claude Code: The skill will auto-discover when this repository is in your workspace.
For Claude.ai:
Upload the skill from skills/problem-based-srs/ (including the references folder).
Simply describe your business context or problem:
I need to create requirements for [feature name]
Business Context: [describe current situation]
The skill will automatically:
- Detect what step you're on
- Load the appropriate reference guide
- Walk you through the process
- Ensure traceability back to business problems
Start with Customer Problems:
Help me identify customer problems for my inventory management system
Customer Problems are classified by severity:
graph TD
CP[Customer Problem] --> O{Classification}
O -->|Must, Required| OB[Obligation<br/>High Priority<br/>Legal/Contractual]
O -->|Expects, Should| EX[Expectation<br/>Medium Priority<br/>Business Goal]
O -->|Hopes, Wishes| HO[Hope<br/>Low Priority<br/>Improvement]
OB --> I1[Severe consequences<br/>if unsolved]
EX --> I2[Moderate impact<br/>if unsolved]
HO --> I3[Minimal penalty<br/>if unsolved]
style OB fill:#ff6b6b
style EX fill:#ffa502
style HO fill:#ffeaa7
Create Software Glance:
I have customer problems documented, need to create a software glance
Validate Traceability:
Check if my requirements properly trace back to customer problems
Artifact Traceability: Each artifact traces back to ensure requirements solve real problems:
graph LR
CP[Customer Problems<br/>CP-001, CP-002, CP-003] --> CN[Customer Needs<br/>CN-001, CN-002, CN-003]
CP --> SG[Software Glance<br/>High-level solution view]
SG --> CN
CN --> SV[Software Vision<br/>Features, Architecture]
SV --> FR[Functional Requirements<br/>FR-001, FR-002, FR-003]
CN --> FR
style CP fill:#ff6b6b
style SG fill:#4ecdc4
style CN fill:#45b7d1
style SV fill:#96ceb4
style FR fill:#ffeaa7
When: Building a new feature from business need
Start with: /srs-coordinator prompt
Follow: All 5 steps sequentially
When: You have draft requirements that need structure
Start with: /fr in review mode
Then: Work backwards to validate against CNs and CPs
When: Stakeholders describe solutions, not problems
Start with: /cp in generation mode
Use discovery questions to elicit actual problems
When: Validating completeness before implementation
Start with: /zigzag
Verify: All CPs are addressed, all CNs trace to CPs, all Requirements trace to CNs
- Use
/cpto capture user stories as customer problems - Use
/cnto define acceptance criteria as customer needs - Use
/frto break down into technical requirements
- Reference
/glancefor high-level solution approach - Reference
/visionfor architectural decisions and constraints - Use
/zigzagto ensure design addresses all needs
- Keep
/frrequirements as your implementation checklist - Trace each requirement back to its CN and CP for context
- Update requirements if new problems are discovered
- Verify implementation satisfies requirements from
/fr - Check that requirements still trace to customer needs
- Validate no scope creep beyond identified problems
- Full Methodology: See
docs/for detailed research paper - GitHub Copilot Prompts: See
.github/prompts/for prompt files - AgentSkills: See
skills/problem-based-srs/for Claude Code integration - Examples: Each prompt file contains real-world examples