opencode-metis 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -0
- package/dist/cli.cjs +63 -0
- package/dist/mcp-server.cjs +51 -0
- package/dist/plugin.cjs +4 -0
- package/dist/worker.cjs +224 -0
- package/opencode/agent/the-analyst/feature-prioritization.md +66 -0
- package/opencode/agent/the-analyst/market-research.md +77 -0
- package/opencode/agent/the-analyst/project-coordination.md +81 -0
- package/opencode/agent/the-analyst/requirements-analysis.md +77 -0
- package/opencode/agent/the-architect/compatibility-review.md +138 -0
- package/opencode/agent/the-architect/complexity-review.md +137 -0
- package/opencode/agent/the-architect/quality-review.md +67 -0
- package/opencode/agent/the-architect/security-review.md +127 -0
- package/opencode/agent/the-architect/system-architecture.md +119 -0
- package/opencode/agent/the-architect/system-documentation.md +83 -0
- package/opencode/agent/the-architect/technology-research.md +85 -0
- package/opencode/agent/the-chief.md +79 -0
- package/opencode/agent/the-designer/accessibility-implementation.md +101 -0
- package/opencode/agent/the-designer/design-foundation.md +74 -0
- package/opencode/agent/the-designer/interaction-architecture.md +75 -0
- package/opencode/agent/the-designer/user-research.md +70 -0
- package/opencode/agent/the-meta-agent.md +155 -0
- package/opencode/agent/the-platform-engineer/ci-cd-pipelines.md +109 -0
- package/opencode/agent/the-platform-engineer/containerization.md +106 -0
- package/opencode/agent/the-platform-engineer/data-architecture.md +81 -0
- package/opencode/agent/the-platform-engineer/dependency-review.md +144 -0
- package/opencode/agent/the-platform-engineer/deployment-automation.md +81 -0
- package/opencode/agent/the-platform-engineer/infrastructure-as-code.md +107 -0
- package/opencode/agent/the-platform-engineer/performance-tuning.md +82 -0
- package/opencode/agent/the-platform-engineer/pipeline-engineering.md +81 -0
- package/opencode/agent/the-platform-engineer/production-monitoring.md +105 -0
- package/opencode/agent/the-qa-engineer/exploratory-testing.md +66 -0
- package/opencode/agent/the-qa-engineer/performance-testing.md +81 -0
- package/opencode/agent/the-qa-engineer/quality-assurance.md +77 -0
- package/opencode/agent/the-qa-engineer/test-execution.md +66 -0
- package/opencode/agent/the-software-engineer/api-development.md +78 -0
- package/opencode/agent/the-software-engineer/component-development.md +79 -0
- package/opencode/agent/the-software-engineer/concurrency-review.md +141 -0
- package/opencode/agent/the-software-engineer/domain-modeling.md +66 -0
- package/opencode/agent/the-software-engineer/performance-optimization.md +113 -0
- package/opencode/command/analyze.md +149 -0
- package/opencode/command/constitution.md +178 -0
- package/opencode/command/debug.md +194 -0
- package/opencode/command/document.md +178 -0
- package/opencode/command/implement.md +225 -0
- package/opencode/command/refactor.md +207 -0
- package/opencode/command/review.md +229 -0
- package/opencode/command/simplify.md +267 -0
- package/opencode/command/specify.md +191 -0
- package/opencode/command/validate.md +224 -0
- package/opencode/skill/accessibility-design/SKILL.md +566 -0
- package/opencode/skill/accessibility-design/checklists/wcag-checklist.md +435 -0
- package/opencode/skill/agent-coordination/SKILL.md +224 -0
- package/opencode/skill/api-contract-design/SKILL.md +550 -0
- package/opencode/skill/api-contract-design/templates/graphql-schema-template.md +818 -0
- package/opencode/skill/api-contract-design/templates/rest-api-template.md +417 -0
- package/opencode/skill/architecture-design/SKILL.md +160 -0
- package/opencode/skill/architecture-design/examples/architecture-examples.md +170 -0
- package/opencode/skill/architecture-design/template.md +749 -0
- package/opencode/skill/architecture-design/validation.md +99 -0
- package/opencode/skill/architecture-selection/SKILL.md +522 -0
- package/opencode/skill/architecture-selection/examples/adrs/001-example-adr.md +71 -0
- package/opencode/skill/architecture-selection/examples/architecture-patterns.md +239 -0
- package/opencode/skill/bug-diagnosis/SKILL.md +235 -0
- package/opencode/skill/code-quality-review/SKILL.md +337 -0
- package/opencode/skill/code-quality-review/examples/anti-patterns.md +629 -0
- package/opencode/skill/code-quality-review/reference.md +322 -0
- package/opencode/skill/code-review/SKILL.md +363 -0
- package/opencode/skill/code-review/reference.md +450 -0
- package/opencode/skill/codebase-analysis/SKILL.md +139 -0
- package/opencode/skill/codebase-navigation/SKILL.md +227 -0
- package/opencode/skill/codebase-navigation/examples/exploration-patterns.md +263 -0
- package/opencode/skill/coding-conventions/SKILL.md +178 -0
- package/opencode/skill/coding-conventions/checklists/accessibility-checklist.md +176 -0
- package/opencode/skill/coding-conventions/checklists/performance-checklist.md +154 -0
- package/opencode/skill/coding-conventions/checklists/security-checklist.md +127 -0
- package/opencode/skill/constitution-validation/SKILL.md +315 -0
- package/opencode/skill/constitution-validation/examples/CONSTITUTION.md +202 -0
- package/opencode/skill/constitution-validation/reference/rule-patterns.md +328 -0
- package/opencode/skill/constitution-validation/template.md +115 -0
- package/opencode/skill/context-preservation/SKILL.md +445 -0
- package/opencode/skill/data-modeling/SKILL.md +385 -0
- package/opencode/skill/data-modeling/templates/schema-design-template.md +268 -0
- package/opencode/skill/deployment-pipeline-design/SKILL.md +579 -0
- package/opencode/skill/deployment-pipeline-design/templates/pipeline-template.md +633 -0
- package/opencode/skill/documentation-extraction/SKILL.md +259 -0
- package/opencode/skill/documentation-sync/SKILL.md +431 -0
- package/opencode/skill/domain-driven-design/SKILL.md +509 -0
- package/opencode/skill/domain-driven-design/examples/ddd-patterns.md +688 -0
- package/opencode/skill/domain-driven-design/reference.md +465 -0
- package/opencode/skill/drift-detection/SKILL.md +383 -0
- package/opencode/skill/drift-detection/reference.md +340 -0
- package/opencode/skill/error-recovery/SKILL.md +162 -0
- package/opencode/skill/error-recovery/examples/error-patterns.md +484 -0
- package/opencode/skill/feature-prioritization/SKILL.md +419 -0
- package/opencode/skill/feature-prioritization/examples/rice-template.md +139 -0
- package/opencode/skill/feature-prioritization/reference.md +256 -0
- package/opencode/skill/git-workflow/SKILL.md +453 -0
- package/opencode/skill/implementation-planning/SKILL.md +215 -0
- package/opencode/skill/implementation-planning/examples/phase-examples.md +217 -0
- package/opencode/skill/implementation-planning/template.md +220 -0
- package/opencode/skill/implementation-planning/validation.md +88 -0
- package/opencode/skill/implementation-verification/SKILL.md +272 -0
- package/opencode/skill/knowledge-capture/SKILL.md +265 -0
- package/opencode/skill/knowledge-capture/reference/knowledge-capture.md +402 -0
- package/opencode/skill/knowledge-capture/reference.md +444 -0
- package/opencode/skill/knowledge-capture/templates/domain-template.md +325 -0
- package/opencode/skill/knowledge-capture/templates/interface-template.md +255 -0
- package/opencode/skill/knowledge-capture/templates/pattern-template.md +144 -0
- package/opencode/skill/observability-design/SKILL.md +291 -0
- package/opencode/skill/observability-design/references/monitoring-patterns.md +461 -0
- package/opencode/skill/pattern-detection/SKILL.md +171 -0
- package/opencode/skill/pattern-detection/examples/common-patterns.md +359 -0
- package/opencode/skill/performance-analysis/SKILL.md +266 -0
- package/opencode/skill/performance-analysis/references/profiling-tools.md +499 -0
- package/opencode/skill/requirements-analysis/SKILL.md +139 -0
- package/opencode/skill/requirements-analysis/examples/good-prd.md +66 -0
- package/opencode/skill/requirements-analysis/template.md +177 -0
- package/opencode/skill/requirements-analysis/validation.md +69 -0
- package/opencode/skill/requirements-elicitation/SKILL.md +518 -0
- package/opencode/skill/requirements-elicitation/examples/interview-questions.md +226 -0
- package/opencode/skill/requirements-elicitation/examples/user-stories.md +414 -0
- package/opencode/skill/safe-refactoring/SKILL.md +312 -0
- package/opencode/skill/safe-refactoring/reference/code-smells.md +347 -0
- package/opencode/skill/security-assessment/SKILL.md +421 -0
- package/opencode/skill/security-assessment/checklists/security-review-checklist.md +285 -0
- package/opencode/skill/specification-management/SKILL.md +143 -0
- package/opencode/skill/specification-management/readme-template.md +32 -0
- package/opencode/skill/specification-management/reference.md +115 -0
- package/opencode/skill/specification-management/spec.py +229 -0
- package/opencode/skill/specification-validation/SKILL.md +397 -0
- package/opencode/skill/specification-validation/reference/3cs-framework.md +306 -0
- package/opencode/skill/specification-validation/reference/ambiguity-detection.md +132 -0
- package/opencode/skill/specification-validation/reference/constitution-validation.md +301 -0
- package/opencode/skill/specification-validation/reference/drift-detection.md +383 -0
- package/opencode/skill/task-delegation/SKILL.md +607 -0
- package/opencode/skill/task-delegation/examples/file-coordination.md +495 -0
- package/opencode/skill/task-delegation/examples/parallel-research.md +337 -0
- package/opencode/skill/task-delegation/examples/sequential-build.md +504 -0
- package/opencode/skill/task-delegation/reference.md +825 -0
- package/opencode/skill/tech-stack-detection/SKILL.md +89 -0
- package/opencode/skill/tech-stack-detection/references/framework-signatures.md +598 -0
- package/opencode/skill/technical-writing/SKILL.md +190 -0
- package/opencode/skill/technical-writing/templates/adr-template.md +205 -0
- package/opencode/skill/technical-writing/templates/system-doc-template.md +380 -0
- package/opencode/skill/test-design/SKILL.md +464 -0
- package/opencode/skill/test-design/examples/test-pyramid.md +724 -0
- package/opencode/skill/testing/SKILL.md +213 -0
- package/opencode/skill/testing/examples/test-pyramid.md +724 -0
- package/opencode/skill/user-insight-synthesis/SKILL.md +576 -0
- package/opencode/skill/user-insight-synthesis/templates/research-plan-template.md +217 -0
- package/opencode/skill/user-research/SKILL.md +508 -0
- package/opencode/skill/user-research/examples/interview-questions.md +265 -0
- package/opencode/skill/user-research/examples/personas.md +267 -0
- package/opencode/skill/vibe-security/SKILL.md +654 -0
- package/package.json +45 -0
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: requirements-elicitation
|
|
3
|
+
description: "Requirement gathering techniques, stakeholder analysis, user story patterns, and specification validation."
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: opencode
|
|
6
|
+
metadata:
|
|
7
|
+
category: analysis
|
|
8
|
+
version: "1.0"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Requirements Elicitation
|
|
12
|
+
|
|
13
|
+
Roleplay as a requirements elicitation specialist transforming vague ideas into clear, testable specifications that align stakeholders and guide implementation.
|
|
14
|
+
|
|
15
|
+
RequirementsElicitation {
|
|
16
|
+
Activation {
|
|
17
|
+
When to use this skill:
|
|
18
|
+
- Gathering requirements for new features
|
|
19
|
+
- Clarifying vague or ambiguous requests
|
|
20
|
+
- Resolving conflicting stakeholder needs
|
|
21
|
+
- Documenting formal specifications
|
|
22
|
+
- Creating user stories with acceptance criteria
|
|
23
|
+
- Validating requirements before implementation
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
ElicitationTechniques {
|
|
27
|
+
The5Whys {
|
|
28
|
+
Purpose: Drill past surface requests to discover root needs
|
|
29
|
+
|
|
30
|
+
Example {
|
|
31
|
+
```
|
|
32
|
+
Surface Request: "We need a dashboard"
|
|
33
|
+
|
|
34
|
+
Why 1: Why do you need a dashboard?
|
|
35
|
+
-> "To see our metrics in one place"
|
|
36
|
+
|
|
37
|
+
Why 2: Why do you need to see metrics in one place?
|
|
38
|
+
-> "To identify problems quickly"
|
|
39
|
+
|
|
40
|
+
Why 3: Why do you need to identify problems quickly?
|
|
41
|
+
-> "Because slow response affects customer satisfaction"
|
|
42
|
+
|
|
43
|
+
Why 4: Why does customer satisfaction matter right now?
|
|
44
|
+
-> "We're losing customers and don't know why until it's too late"
|
|
45
|
+
|
|
46
|
+
Why 5: Why don't you know until it's too late?
|
|
47
|
+
-> "We only see issues in monthly reports"
|
|
48
|
+
|
|
49
|
+
Root Need: Real-time alerting for customer-impacting issues
|
|
50
|
+
(Not just a dashboard - the dashboard was a solution, not the need)
|
|
51
|
+
```
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
ConcreteExamples {
|
|
56
|
+
Purpose: Transform abstract requirements into specific, testable scenarios
|
|
57
|
+
|
|
58
|
+
| Abstract | Concrete |
|
|
59
|
+
|----------|----------|
|
|
60
|
+
| "The system should be fast" | "Page loads in under 2 seconds on 3G" |
|
|
61
|
+
| "Users should be able to search" | "Find orders by customer name, date range, or status" |
|
|
62
|
+
| "It needs to be secure" | "All PII encrypted at rest, session timeout after 15 min inactive" |
|
|
63
|
+
| "Good error handling" | "Network failures retry 3x with exponential backoff, then show offline mode" |
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
BoundaryIdentification {
|
|
67
|
+
Purpose: Define what's explicitly in and out of scope
|
|
68
|
+
|
|
69
|
+
Example {
|
|
70
|
+
```
|
|
71
|
+
Feature: User Registration
|
|
72
|
+
|
|
73
|
+
IN SCOPE:
|
|
74
|
+
- Email/password registration
|
|
75
|
+
- Email verification
|
|
76
|
+
- Password strength requirements
|
|
77
|
+
- Terms of service acceptance
|
|
78
|
+
|
|
79
|
+
OUT OF SCOPE:
|
|
80
|
+
- Social login (Google, Facebook)
|
|
81
|
+
- Two-factor authentication
|
|
82
|
+
- Password recovery (separate feature)
|
|
83
|
+
|
|
84
|
+
DEFERRED:
|
|
85
|
+
- SSO integration (planned for Q3)
|
|
86
|
+
- Biometric login (pending security review)
|
|
87
|
+
```
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
StakeholderInterviews {
|
|
92
|
+
Purpose: Structured conversation to extract requirements
|
|
93
|
+
|
|
94
|
+
Structure {
|
|
95
|
+
```
|
|
96
|
+
Interview Structure (45 min):
|
|
97
|
+
|
|
98
|
+
1. CONTEXT (10 min)
|
|
99
|
+
- What's your role in this project?
|
|
100
|
+
- What does success look like for you?
|
|
101
|
+
- What's driving this initiative?
|
|
102
|
+
|
|
103
|
+
2. CURRENT STATE (10 min)
|
|
104
|
+
- How do you do this today?
|
|
105
|
+
- What works well?
|
|
106
|
+
- What are the pain points?
|
|
107
|
+
|
|
108
|
+
3. DESIRED STATE (15 min)
|
|
109
|
+
- What would the ideal solution look like?
|
|
110
|
+
- Walk me through a typical scenario...
|
|
111
|
+
- What would make your job easier?
|
|
112
|
+
|
|
113
|
+
4. CONSTRAINTS (5 min)
|
|
114
|
+
- What absolutely must be included?
|
|
115
|
+
- What's definitely out of scope?
|
|
116
|
+
- Any timeline or budget constraints?
|
|
117
|
+
|
|
118
|
+
5. WRAP-UP (5 min)
|
|
119
|
+
- What haven't I asked that I should?
|
|
120
|
+
- Who else should I talk to?
|
|
121
|
+
- Can I follow up if I have questions?
|
|
122
|
+
```
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
ObservationAndShadowing {
|
|
127
|
+
Purpose: Watch users perform tasks in their environment
|
|
128
|
+
|
|
129
|
+
Protocol {
|
|
130
|
+
```
|
|
131
|
+
Observation Protocol:
|
|
132
|
+
|
|
133
|
+
PREPARE:
|
|
134
|
+
- Define what you're observing
|
|
135
|
+
- Get permission to observe
|
|
136
|
+
- Prepare note-taking template
|
|
137
|
+
|
|
138
|
+
OBSERVE:
|
|
139
|
+
- Note actions, not interpretations
|
|
140
|
+
- Record workarounds and pain points
|
|
141
|
+
- Note environmental factors
|
|
142
|
+
- Time key activities
|
|
143
|
+
|
|
144
|
+
DEBRIEF:
|
|
145
|
+
- "I noticed you did X, can you tell me more?"
|
|
146
|
+
- "What would make that easier?"
|
|
147
|
+
- "How often does this happen?"
|
|
148
|
+
|
|
149
|
+
Document:
|
|
150
|
+
+-------------------------------------------------------------+
|
|
151
|
+
| Observation: Order Processing |
|
|
152
|
+
+-------------------------------------------------------------+
|
|
153
|
+
| Action: Copied customer email from order to support tool |
|
|
154
|
+
| Time: 15 seconds per order |
|
|
155
|
+
| Frequency: ~50 orders/day |
|
|
156
|
+
| Pain Point: Manual copy-paste, error-prone |
|
|
157
|
+
| Opportunity: Direct integration between systems |
|
|
158
|
+
+-------------------------------------------------------------+
|
|
159
|
+
```
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
RequirementDocumentation {
|
|
165
|
+
UserStoryFormat {
|
|
166
|
+
Format {
|
|
167
|
+
```
|
|
168
|
+
Format:
|
|
169
|
+
As a [role],
|
|
170
|
+
I want [capability],
|
|
171
|
+
So that [benefit].
|
|
172
|
+
|
|
173
|
+
Components:
|
|
174
|
+
- Role: Who benefits (be specific)
|
|
175
|
+
- Capability: What they can do (action, not solution)
|
|
176
|
+
- Benefit: Why it matters (business value)
|
|
177
|
+
|
|
178
|
+
Example:
|
|
179
|
+
As a customer service representative,
|
|
180
|
+
I want to see a customer's order history when they call,
|
|
181
|
+
So that I can resolve their issues without asking them to repeat information.
|
|
182
|
+
```
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
AcceptanceCriteria_GivenWhenThen {
|
|
187
|
+
Format {
|
|
188
|
+
```
|
|
189
|
+
Format:
|
|
190
|
+
Given [context/precondition]
|
|
191
|
+
When [action/event]
|
|
192
|
+
Then [expected outcome]
|
|
193
|
+
|
|
194
|
+
Example:
|
|
195
|
+
Feature: Order Cancellation
|
|
196
|
+
|
|
197
|
+
Scenario: Cancel order before shipping
|
|
198
|
+
Given an order in "confirmed" status
|
|
199
|
+
And the order has not been shipped
|
|
200
|
+
When the customer requests cancellation
|
|
201
|
+
Then the order status changes to "cancelled"
|
|
202
|
+
And the customer receives a cancellation confirmation email
|
|
203
|
+
And the payment is refunded within 3-5 business days
|
|
204
|
+
|
|
205
|
+
Scenario: Cannot cancel shipped order
|
|
206
|
+
Given an order in "shipped" status
|
|
207
|
+
When the customer requests cancellation
|
|
208
|
+
Then the cancellation is rejected
|
|
209
|
+
And the customer is directed to the returns process
|
|
210
|
+
```
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
EdgeCasesAndExceptions {
|
|
215
|
+
Purpose: Document what happens when things go wrong
|
|
216
|
+
|
|
217
|
+
Example {
|
|
218
|
+
```
|
|
219
|
+
Feature: Password Reset
|
|
220
|
+
|
|
221
|
+
Happy Path:
|
|
222
|
+
- User requests reset -> Email sent -> User clicks link -> Sets new password
|
|
223
|
+
|
|
224
|
+
Edge Cases:
|
|
225
|
+
| Scenario | Expected Behavior |
|
|
226
|
+
|----------|-------------------|
|
|
227
|
+
| Email not found | Show same success message (security) |
|
|
228
|
+
| Link expired (>24h) | Show "link expired" with new reset option |
|
|
229
|
+
| Link already used | Show "link already used" message |
|
|
230
|
+
| Weak password | Show requirements, block submission |
|
|
231
|
+
| Same as old password | Show error, require different password |
|
|
232
|
+
| User locked out | Still send reset email (unlock flow) |
|
|
233
|
+
```
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
NonFunctionalRequirements {
|
|
238
|
+
Template {
|
|
239
|
+
```
|
|
240
|
+
NFR Template:
|
|
241
|
+
+-------------------------------------------------------------+
|
|
242
|
+
| Category: Performance |
|
|
243
|
+
+-------------------------------------------------------------+
|
|
244
|
+
| Requirement: Response Time |
|
|
245
|
+
| Measure: 95th percentile page load time |
|
|
246
|
+
| Target: < 2 seconds |
|
|
247
|
+
| Context: Desktop browser, 4G connection |
|
|
248
|
+
| Priority: Must Have |
|
|
249
|
+
+-------------------------------------------------------------+
|
|
250
|
+
|
|
251
|
+
Common Categories:
|
|
252
|
+
- Performance: Speed, throughput, latency
|
|
253
|
+
- Scalability: Users, data volume, geographic distribution
|
|
254
|
+
- Availability: Uptime, recovery time, disaster recovery
|
|
255
|
+
- Security: Authentication, authorization, encryption
|
|
256
|
+
- Usability: Accessibility, learnability, efficiency
|
|
257
|
+
- Maintainability: Modularity, testability, documentation
|
|
258
|
+
```
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
StakeholderManagement {
|
|
264
|
+
StakeholderAnalysis {
|
|
265
|
+
Purpose: Identify and categorize stakeholders
|
|
266
|
+
|
|
267
|
+
Map {
|
|
268
|
+
```
|
|
269
|
+
Stakeholder Map:
|
|
270
|
+
|
|
271
|
+
High Influence
|
|
272
|
+
|
|
|
273
|
+
+--------------+--------------+
|
|
274
|
+
| Manage | Partner |
|
|
275
|
+
| Closely | With |
|
|
276
|
+
| | |
|
|
277
|
+
Low +--------------+--------------+ High
|
|
278
|
+
Interest | Interest
|
|
279
|
+
| Monitor | Keep |
|
|
280
|
+
| Only | Informed |
|
|
281
|
+
| | |
|
|
282
|
+
+--------------+--------------+
|
|
283
|
+
|
|
|
284
|
+
Low Influence
|
|
285
|
+
|
|
286
|
+
Stakeholder Register:
|
|
287
|
+
| Name | Role | Interest | Influence | Communication |
|
|
288
|
+
|------|------|----------|-----------|---------------|
|
|
289
|
+
| VP Sales | Sponsor | High | High | Weekly update |
|
|
290
|
+
| Dev Team | Implementer | High | Medium | Daily standup |
|
|
291
|
+
| Legal | Advisor | Low | High | As needed |
|
|
292
|
+
```
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
RACIMatrix {
|
|
297
|
+
Purpose: Define roles for each requirement
|
|
298
|
+
|
|
299
|
+
Format {
|
|
300
|
+
```
|
|
301
|
+
R = Responsible (does the work)
|
|
302
|
+
A = Accountable (final decision maker)
|
|
303
|
+
C = Consulted (provides input)
|
|
304
|
+
I = Informed (kept updated)
|
|
305
|
+
|
|
306
|
+
| Requirement | Product | Dev | Design | Legal |
|
|
307
|
+
|-------------|---------|-----|--------|-------|
|
|
308
|
+
| User stories | R,A | C | C | I |
|
|
309
|
+
| UI mockups | C | I | R,A | I |
|
|
310
|
+
| API contracts | C | R,A | I | I |
|
|
311
|
+
| Privacy policy | C | I | I | R,A |
|
|
312
|
+
```
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
ConflictResolution {
|
|
317
|
+
Purpose: When stakeholders disagree
|
|
318
|
+
|
|
319
|
+
Process {
|
|
320
|
+
```
|
|
321
|
+
Resolution Process:
|
|
322
|
+
|
|
323
|
+
1. UNDERSTAND both positions
|
|
324
|
+
- "Help me understand why X is important to you"
|
|
325
|
+
- Identify underlying needs vs stated positions
|
|
326
|
+
|
|
327
|
+
2. FIND COMMON GROUND
|
|
328
|
+
- What do both parties agree on?
|
|
329
|
+
- What's the shared goal?
|
|
330
|
+
|
|
331
|
+
3. EXPLORE OPTIONS
|
|
332
|
+
- Can we do both? (phased approach)
|
|
333
|
+
- Is there a third option that addresses both needs?
|
|
334
|
+
- What's the minimum viable for each?
|
|
335
|
+
|
|
336
|
+
4. ESCALATE if needed
|
|
337
|
+
- Present options with trade-offs
|
|
338
|
+
- Let decision-maker decide
|
|
339
|
+
- Document the decision and rationale
|
|
340
|
+
|
|
341
|
+
Example:
|
|
342
|
+
Marketing wants: Launch by Q1 with all features
|
|
343
|
+
Engineering says: Can't do all features by Q1
|
|
344
|
+
|
|
345
|
+
Resolution: Launch Q1 with core features (MVP), Phase 2 in Q2
|
|
346
|
+
Documented: ADR-2024-03: MVP Scope Decision
|
|
347
|
+
```
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
ValidationTechniques {
|
|
353
|
+
RequirementsReviewChecklist {
|
|
354
|
+
| Criterion | Question | Pass/Fail |
|
|
355
|
+
|-----------|----------|-----------|
|
|
356
|
+
| Complete | Is everything needed documented? | |
|
|
357
|
+
| Consistent | Are there contradictions? | |
|
|
358
|
+
| Correct | Does it match stakeholder intent? | |
|
|
359
|
+
| Unambiguous | Is there only one interpretation? | |
|
|
360
|
+
| Testable | Can we verify it's met? | |
|
|
361
|
+
| Traceable | Can we link to business goal? | |
|
|
362
|
+
| Feasible | Can it be implemented? | |
|
|
363
|
+
| Prioritized | Is importance clear? | |
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
PrototypeValidation {
|
|
367
|
+
Purpose: Use prototypes to validate understanding
|
|
368
|
+
|
|
369
|
+
Levels {
|
|
370
|
+
```
|
|
371
|
+
Prototype Levels:
|
|
372
|
+
|
|
373
|
+
Low Fidelity (Paper/Whiteboard):
|
|
374
|
+
- Quick to create (minutes)
|
|
375
|
+
- Good for: Overall flow, major screens
|
|
376
|
+
- Validate: "Is this the right approach?"
|
|
377
|
+
|
|
378
|
+
Medium Fidelity (Clickable mockups):
|
|
379
|
+
- Moderate effort (hours)
|
|
380
|
+
- Good for: Detailed interactions, UI layout
|
|
381
|
+
- Validate: "Does this workflow make sense?"
|
|
382
|
+
|
|
383
|
+
High Fidelity (Functional prototype):
|
|
384
|
+
- Significant effort (days)
|
|
385
|
+
- Good for: Complex interactions, performance
|
|
386
|
+
- Validate: "Will this actually work?"
|
|
387
|
+
```
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
AcceptanceCriteriaReview {
|
|
392
|
+
Purpose: Validate with stakeholders before implementation
|
|
393
|
+
|
|
394
|
+
Format {
|
|
395
|
+
```
|
|
396
|
+
Review Format:
|
|
397
|
+
|
|
398
|
+
"Here's my understanding of [feature]. Please correct me if I'm wrong."
|
|
399
|
+
|
|
400
|
+
[Read each scenario aloud]
|
|
401
|
+
|
|
402
|
+
Questions:
|
|
403
|
+
- "Is this what you expected?"
|
|
404
|
+
- "What did I miss?"
|
|
405
|
+
- "What edge cases should we handle?"
|
|
406
|
+
- "Is the priority right?"
|
|
407
|
+
|
|
408
|
+
Document changes and get sign-off.
|
|
409
|
+
```
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
Traceability {
|
|
415
|
+
TraceabilityMatrix {
|
|
416
|
+
Purpose: Link requirements to their sources and verification
|
|
417
|
+
|
|
418
|
+
Format {
|
|
419
|
+
```
|
|
420
|
+
| Req ID | Description | Source | Priority | Status | Test Cases |
|
|
421
|
+
|--------|-------------|--------|----------|--------|------------|
|
|
422
|
+
| REQ-001 | User login | Stakeholder interview | Must | Approved | TC-001, TC-002 |
|
|
423
|
+
| REQ-002 | Order history | User observation | Should | Draft | TC-015 |
|
|
424
|
+
| REQ-003 | Export CSV | Sales team request | Could | Approved | TC-020 |
|
|
425
|
+
```
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
RequirementStates {
|
|
430
|
+
Purpose: Track requirement lifecycle
|
|
431
|
+
|
|
432
|
+
Diagram {
|
|
433
|
+
```
|
|
434
|
+
States:
|
|
435
|
+
+---------+ +----------+ +----------+ +------------+
|
|
436
|
+
| Draft |---->| Reviewed |---->| Approved |---->| Implemented|
|
|
437
|
+
+---------+ +----------+ +----------+ +------------+
|
|
438
|
+
| |
|
|
439
|
+
v v
|
|
440
|
+
+----------+ +----------+
|
|
441
|
+
| Rejected | | Verified |
|
|
442
|
+
+----------+ +----------+
|
|
443
|
+
```
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
AntiPatterns {
|
|
449
|
+
| Anti-Pattern | Problem | Solution |
|
|
450
|
+
|--------------|---------|----------|
|
|
451
|
+
| **Solution First** | "We need a dashboard" | Ask "Why?" to find the real need |
|
|
452
|
+
| **Assumed Obvious** | Undocumented "common sense" | Document everything explicitly |
|
|
453
|
+
| **Gold Plating** | Adding unrequested features | Stick to documented requirements |
|
|
454
|
+
| **Moving Baseline** | Requirements keep changing | Change control process |
|
|
455
|
+
| **Single Stakeholder** | Missing perspectives | Identify all stakeholders |
|
|
456
|
+
| **Technical Jargon** | Users don't understand | Use domain language |
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
Templates {
|
|
460
|
+
FeatureRequestTemplate {
|
|
461
|
+
```markdown
|
|
462
|
+
# Feature: [Name]
|
|
463
|
+
|
|
464
|
+
## Problem Statement
|
|
465
|
+
[What problem does this solve?]
|
|
466
|
+
|
|
467
|
+
## User Stories
|
|
468
|
+
- As a [role], I want [what] so that [why]
|
|
469
|
+
|
|
470
|
+
## Acceptance Criteria
|
|
471
|
+
- Given [context] when [action] then [outcome]
|
|
472
|
+
|
|
473
|
+
## Out of Scope
|
|
474
|
+
- [What this feature does NOT include]
|
|
475
|
+
|
|
476
|
+
## Dependencies
|
|
477
|
+
- [Other features or systems required]
|
|
478
|
+
|
|
479
|
+
## Open Questions
|
|
480
|
+
- [Unresolved issues needing discussion]
|
|
481
|
+
```
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
RequirementsDocumentTemplate {
|
|
485
|
+
```markdown
|
|
486
|
+
# [Project Name] Requirements Specification
|
|
487
|
+
|
|
488
|
+
## 1. Introduction
|
|
489
|
+
### 1.1 Purpose
|
|
490
|
+
### 1.2 Scope
|
|
491
|
+
### 1.3 Definitions
|
|
492
|
+
|
|
493
|
+
## 2. Overall Description
|
|
494
|
+
### 2.1 Product Perspective
|
|
495
|
+
### 2.2 User Classes
|
|
496
|
+
### 2.3 Constraints
|
|
497
|
+
|
|
498
|
+
## 3. Functional Requirements
|
|
499
|
+
### 3.1 [Feature Area 1]
|
|
500
|
+
### 3.2 [Feature Area 2]
|
|
501
|
+
|
|
502
|
+
## 4. Non-Functional Requirements
|
|
503
|
+
### 4.1 Performance
|
|
504
|
+
### 4.2 Security
|
|
505
|
+
### 4.3 Usability
|
|
506
|
+
|
|
507
|
+
## 5. Appendices
|
|
508
|
+
### A. Stakeholder Register
|
|
509
|
+
### B. Traceability Matrix
|
|
510
|
+
```
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
References {
|
|
515
|
+
- [Interview Question Bank](examples/interview-questions.md) - Questions by domain
|
|
516
|
+
- [User Story Examples](examples/user-stories.md) - Well-written story examples
|
|
517
|
+
}
|
|
518
|
+
}
|