siesa-agents 2.1.2 → 2.1.3

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.
Files changed (111) hide show
  1. package/README.md +83 -83
  2. package/bin/install.js +400 -400
  3. package/bin/prepare-publish.js +26 -26
  4. package/bin/restore-folders.js +26 -26
  5. package/bmad-core/agent-teams/team-all.yaml +15 -15
  6. package/bmad-core/agent-teams/team-fullstack.yaml +19 -19
  7. package/bmad-core/agent-teams/team-ide-minimal.yaml +11 -11
  8. package/bmad-core/agent-teams/team-no-ui.yaml +14 -14
  9. package/bmad-core/agents/analyst.md +84 -84
  10. package/bmad-core/agents/architect.md +94 -94
  11. package/bmad-core/agents/backend-agent.md +189 -189
  12. package/bmad-core/agents/bmad-master.md +110 -110
  13. package/bmad-core/agents/bmad-orchestrator.md +147 -147
  14. package/bmad-core/agents/dev.md +81 -81
  15. package/bmad-core/agents/frontend-agent.md +168 -168
  16. package/bmad-core/agents/pm.md +84 -84
  17. package/bmad-core/agents/po.md +79 -79
  18. package/bmad-core/agents/qa.md +91 -91
  19. package/bmad-core/agents/sm.md +65 -65
  20. package/bmad-core/agents/ux-expert.md +69 -69
  21. package/bmad-core/checklists/architect-checklist.md +440 -440
  22. package/bmad-core/checklists/backend-checklist.md +142 -142
  23. package/bmad-core/checklists/change-checklist.md +184 -184
  24. package/bmad-core/checklists/frontend-checklist.md +105 -105
  25. package/bmad-core/checklists/pm-checklist.md +372 -372
  26. package/bmad-core/checklists/po-master-checklist.md +434 -434
  27. package/bmad-core/checklists/story-dod-checklist.md +96 -96
  28. package/bmad-core/checklists/story-draft-checklist.md +155 -155
  29. package/bmad-core/core-config.yaml +22 -22
  30. package/bmad-core/data/backend-standards.md +439 -439
  31. package/bmad-core/data/bmad-kb.md +809 -809
  32. package/bmad-core/data/brainstorming-techniques.md +38 -38
  33. package/bmad-core/data/elicitation-methods.md +156 -156
  34. package/bmad-core/data/frontend-standards.md +323 -323
  35. package/bmad-core/data/technical-preferences.md +5 -5
  36. package/bmad-core/data/test-levels-framework.md +148 -148
  37. package/bmad-core/data/test-priorities-matrix.md +174 -174
  38. package/bmad-core/enhanced-ide-development-workflow.md +248 -248
  39. package/bmad-core/install-manifest.yaml +230 -230
  40. package/bmad-core/tasks/advanced-elicitation.md +119 -119
  41. package/bmad-core/tasks/apply-qa-fixes.md +150 -150
  42. package/bmad-core/tasks/brownfield-create-epic.md +162 -162
  43. package/bmad-core/tasks/brownfield-create-story.md +149 -149
  44. package/bmad-core/tasks/correct-course.md +72 -72
  45. package/bmad-core/tasks/create-brownfield-story.md +314 -314
  46. package/bmad-core/tasks/create-component.md +102 -102
  47. package/bmad-core/tasks/create-deep-research-prompt.md +280 -280
  48. package/bmad-core/tasks/create-doc.md +103 -103
  49. package/bmad-core/tasks/create-entity.md +132 -132
  50. package/bmad-core/tasks/create-feature.md +90 -90
  51. package/bmad-core/tasks/create-next-story.md +114 -114
  52. package/bmad-core/tasks/create-service.md +117 -117
  53. package/bmad-core/tasks/create-use-case.md +140 -140
  54. package/bmad-core/tasks/document-project.md +345 -345
  55. package/bmad-core/tasks/execute-checklist.md +88 -88
  56. package/bmad-core/tasks/facilitate-brainstorming-session.md +138 -138
  57. package/bmad-core/tasks/generate-ai-frontend-prompt.md +53 -53
  58. package/bmad-core/tasks/index-docs.md +175 -175
  59. package/bmad-core/tasks/kb-mode-interaction.md +77 -77
  60. package/bmad-core/tasks/nfr-assess.md +345 -345
  61. package/bmad-core/tasks/qa-gate.md +163 -163
  62. package/bmad-core/tasks/review-story.md +316 -316
  63. package/bmad-core/tasks/risk-profile.md +355 -355
  64. package/bmad-core/tasks/scaffold-backend.md +110 -110
  65. package/bmad-core/tasks/scaffold-frontend.md +78 -78
  66. package/bmad-core/tasks/shard-doc.md +187 -187
  67. package/bmad-core/tasks/test-design.md +176 -176
  68. package/bmad-core/tasks/trace-requirements.md +266 -266
  69. package/bmad-core/tasks/validate-next-story.md +136 -136
  70. package/bmad-core/templates/architecture-tmpl.yaml +662 -662
  71. package/bmad-core/templates/brainstorming-output-tmpl.yaml +156 -156
  72. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +477 -477
  73. package/bmad-core/templates/brownfield-prd-tmpl.yaml +281 -281
  74. package/bmad-core/templates/competitor-analysis-tmpl.yaml +307 -307
  75. package/bmad-core/templates/front-end-architecture-tmpl.yaml +258 -258
  76. package/bmad-core/templates/front-end-spec-tmpl.yaml +350 -350
  77. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +824 -824
  78. package/bmad-core/templates/market-research-tmpl.yaml +253 -253
  79. package/bmad-core/templates/prd-tmpl.yaml +203 -203
  80. package/bmad-core/templates/project-brief-tmpl.yaml +222 -222
  81. package/bmad-core/templates/qa-gate-tmpl.yaml +103 -103
  82. package/bmad-core/templates/story-tmpl.yaml +138 -138
  83. package/bmad-core/user-guide.md +530 -530
  84. package/bmad-core/utils/bmad-doc-template.md +327 -327
  85. package/bmad-core/utils/workflow-management.md +71 -71
  86. package/bmad-core/workflows/brownfield-fullstack.yaml +298 -298
  87. package/bmad-core/workflows/brownfield-service.yaml +188 -188
  88. package/bmad-core/workflows/brownfield-ui.yaml +198 -198
  89. package/bmad-core/workflows/greenfield-fullstack.yaml +241 -241
  90. package/bmad-core/workflows/greenfield-service.yaml +207 -207
  91. package/bmad-core/workflows/greenfield-ui.yaml +236 -236
  92. package/bmad-core/working-in-the-brownfield.md +606 -606
  93. package/claude/commands/BMad/agents/backend.md +187 -187
  94. package/claude/commands/BMad/agents/frontend.md +150 -150
  95. package/github/b-mad-expert.md +742 -742
  96. package/github/chatmodes/analyst.chatmode.md +89 -89
  97. package/github/chatmodes/architect.chatmode.md +97 -97
  98. package/github/chatmodes/backend.chatmode.md +194 -194
  99. package/github/chatmodes/bmad-master.chatmode.md +115 -115
  100. package/github/chatmodes/bmad-orchestrator.chatmode.md +152 -152
  101. package/github/chatmodes/dev.chatmode.md +86 -86
  102. package/github/chatmodes/frontend.chatmode.md +157 -157
  103. package/github/chatmodes/pm.chatmode.md +89 -89
  104. package/github/chatmodes/po.chatmode.md +84 -84
  105. package/github/chatmodes/qa.chatmode.md +96 -96
  106. package/github/chatmodes/sm.chatmode.md +70 -70
  107. package/github/chatmodes/ux-expert.chatmode.md +74 -74
  108. package/index.js +9 -9
  109. package/package.json +37 -37
  110. package/vscode/mcp.json +11 -11
  111. package/vscode/settings.json +12 -12
@@ -1,345 +1,345 @@
1
- <!-- Powered by BMAD™ Core -->
2
-
3
- # nfr-assess
4
-
5
- Quick NFR validation focused on the core four: security, performance, reliability, maintainability.
6
-
7
- ## Inputs
8
-
9
- ```yaml
10
- required:
11
- - story_id: '{epic}.{story}' # e.g., "1.3"
12
- - story_path: `bmad-core/core-config.yaml` for the `devStoryLocation`
13
-
14
- optional:
15
- - architecture_refs: `bmad-core/core-config.yaml` for the `architecture.architectureFile`
16
- - technical_preferences: `bmad-core/core-config.yaml` for the `technicalPreferences`
17
- - acceptance_criteria: From story file
18
- ```
19
-
20
- ## Purpose
21
-
22
- Assess non-functional requirements for a story and generate:
23
-
24
- 1. YAML block for the gate file's `nfr_validation` section
25
- 2. Brief markdown assessment saved to `qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
26
-
27
- ## Process
28
-
29
- ### 0. Fail-safe for Missing Inputs
30
-
31
- If story_path or story file can't be found:
32
-
33
- - Still create assessment file with note: "Source story not found"
34
- - Set all selected NFRs to CONCERNS with notes: "Target unknown / evidence missing"
35
- - Continue with assessment to provide value
36
-
37
- ### 1. Elicit Scope
38
-
39
- **Interactive mode:** Ask which NFRs to assess
40
- **Non-interactive mode:** Default to core four (security, performance, reliability, maintainability)
41
-
42
- ```text
43
- Which NFRs should I assess? (Enter numbers or press Enter for default)
44
- [1] Security (default)
45
- [2] Performance (default)
46
- [3] Reliability (default)
47
- [4] Maintainability (default)
48
- [5] Usability
49
- [6] Compatibility
50
- [7] Portability
51
- [8] Functional Suitability
52
-
53
- > [Enter for 1-4]
54
- ```
55
-
56
- ### 2. Check for Thresholds
57
-
58
- Look for NFR requirements in:
59
-
60
- - Story acceptance criteria
61
- - `docs/architecture/*.md` files
62
- - `docs/technical-preferences.md`
63
-
64
- **Interactive mode:** Ask for missing thresholds
65
- **Non-interactive mode:** Mark as CONCERNS with "Target unknown"
66
-
67
- ```text
68
- No performance requirements found. What's your target response time?
69
- > 200ms for API calls
70
-
71
- No security requirements found. Required auth method?
72
- > JWT with refresh tokens
73
- ```
74
-
75
- **Unknown targets policy:** If a target is missing and not provided, mark status as CONCERNS with notes: "Target unknown"
76
-
77
- ### 3. Quick Assessment
78
-
79
- For each selected NFR, check:
80
-
81
- - Is there evidence it's implemented?
82
- - Can we validate it?
83
- - Are there obvious gaps?
84
-
85
- ### 4. Generate Outputs
86
-
87
- ## Output 1: Gate YAML Block
88
-
89
- Generate ONLY for NFRs actually assessed (no placeholders):
90
-
91
- ```yaml
92
- # Gate YAML (copy/paste):
93
- nfr_validation:
94
- _assessed: [security, performance, reliability, maintainability]
95
- security:
96
- status: CONCERNS
97
- notes: 'No rate limiting on auth endpoints'
98
- performance:
99
- status: PASS
100
- notes: 'Response times < 200ms verified'
101
- reliability:
102
- status: PASS
103
- notes: 'Error handling and retries implemented'
104
- maintainability:
105
- status: CONCERNS
106
- notes: 'Test coverage at 65%, target is 80%'
107
- ```
108
-
109
- ## Deterministic Status Rules
110
-
111
- - **FAIL**: Any selected NFR has critical gap or target clearly not met
112
- - **CONCERNS**: No FAILs, but any NFR is unknown/partial/missing evidence
113
- - **PASS**: All selected NFRs meet targets with evidence
114
-
115
- ## Quality Score Calculation
116
-
117
- ```
118
- quality_score = 100
119
- - 20 for each FAIL attribute
120
- - 10 for each CONCERNS attribute
121
- Floor at 0, ceiling at 100
122
- ```
123
-
124
- If `technical-preferences.md` defines custom weights, use those instead.
125
-
126
- ## Output 2: Brief Assessment Report
127
-
128
- **ALWAYS save to:** `qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
129
-
130
- ```markdown
131
- # NFR Assessment: {epic}.{story}
132
-
133
- Date: {date}
134
- Reviewer: Quinn
135
-
136
- <!-- Note: Source story not found (if applicable) -->
137
-
138
- ## Summary
139
-
140
- - Security: CONCERNS - Missing rate limiting
141
- - Performance: PASS - Meets <200ms requirement
142
- - Reliability: PASS - Proper error handling
143
- - Maintainability: CONCERNS - Test coverage below target
144
-
145
- ## Critical Issues
146
-
147
- 1. **No rate limiting** (Security)
148
- - Risk: Brute force attacks possible
149
- - Fix: Add rate limiting middleware to auth endpoints
150
-
151
- 2. **Test coverage 65%** (Maintainability)
152
- - Risk: Untested code paths
153
- - Fix: Add tests for uncovered branches
154
-
155
- ## Quick Wins
156
-
157
- - Add rate limiting: ~2 hours
158
- - Increase test coverage: ~4 hours
159
- - Add performance monitoring: ~1 hour
160
- ```
161
-
162
- ## Output 3: Story Update Line
163
-
164
- **End with this line for the review task to quote:**
165
-
166
- ```
167
- NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
168
- ```
169
-
170
- ## Output 4: Gate Integration Line
171
-
172
- **Always print at the end:**
173
-
174
- ```
175
- Gate NFR block ready → paste into qa.qaLocation/gates/{epic}.{story}-{slug}.yml under nfr_validation
176
- ```
177
-
178
- ## Assessment Criteria
179
-
180
- ### Security
181
-
182
- **PASS if:**
183
-
184
- - Authentication implemented
185
- - Authorization enforced
186
- - Input validation present
187
- - No hardcoded secrets
188
-
189
- **CONCERNS if:**
190
-
191
- - Missing rate limiting
192
- - Weak encryption
193
- - Incomplete authorization
194
-
195
- **FAIL if:**
196
-
197
- - No authentication
198
- - Hardcoded credentials
199
- - SQL injection vulnerabilities
200
-
201
- ### Performance
202
-
203
- **PASS if:**
204
-
205
- - Meets response time targets
206
- - No obvious bottlenecks
207
- - Reasonable resource usage
208
-
209
- **CONCERNS if:**
210
-
211
- - Close to limits
212
- - Missing indexes
213
- - No caching strategy
214
-
215
- **FAIL if:**
216
-
217
- - Exceeds response time limits
218
- - Memory leaks
219
- - Unoptimized queries
220
-
221
- ### Reliability
222
-
223
- **PASS if:**
224
-
225
- - Error handling present
226
- - Graceful degradation
227
- - Retry logic where needed
228
-
229
- **CONCERNS if:**
230
-
231
- - Some error cases unhandled
232
- - No circuit breakers
233
- - Missing health checks
234
-
235
- **FAIL if:**
236
-
237
- - No error handling
238
- - Crashes on errors
239
- - No recovery mechanisms
240
-
241
- ### Maintainability
242
-
243
- **PASS if:**
244
-
245
- - Test coverage meets target
246
- - Code well-structured
247
- - Documentation present
248
-
249
- **CONCERNS if:**
250
-
251
- - Test coverage below target
252
- - Some code duplication
253
- - Missing documentation
254
-
255
- **FAIL if:**
256
-
257
- - No tests
258
- - Highly coupled code
259
- - No documentation
260
-
261
- ## Quick Reference
262
-
263
- ### What to Check
264
-
265
- ```yaml
266
- security:
267
- - Authentication mechanism
268
- - Authorization checks
269
- - Input validation
270
- - Secret management
271
- - Rate limiting
272
-
273
- performance:
274
- - Response times
275
- - Database queries
276
- - Caching usage
277
- - Resource consumption
278
-
279
- reliability:
280
- - Error handling
281
- - Retry logic
282
- - Circuit breakers
283
- - Health checks
284
- - Logging
285
-
286
- maintainability:
287
- - Test coverage
288
- - Code structure
289
- - Documentation
290
- - Dependencies
291
- ```
292
-
293
- ## Key Principles
294
-
295
- - Focus on the core four NFRs by default
296
- - Quick assessment, not deep analysis
297
- - Gate-ready output format
298
- - Brief, actionable findings
299
- - Skip what doesn't apply
300
- - Deterministic status rules for consistency
301
- - Unknown targets → CONCERNS, not guesses
302
-
303
- ---
304
-
305
- ## Appendix: ISO 25010 Reference
306
-
307
- <details>
308
- <summary>Full ISO 25010 Quality Model (click to expand)</summary>
309
-
310
- ### All 8 Quality Characteristics
311
-
312
- 1. **Functional Suitability**: Completeness, correctness, appropriateness
313
- 2. **Performance Efficiency**: Time behavior, resource use, capacity
314
- 3. **Compatibility**: Co-existence, interoperability
315
- 4. **Usability**: Learnability, operability, accessibility
316
- 5. **Reliability**: Maturity, availability, fault tolerance
317
- 6. **Security**: Confidentiality, integrity, authenticity
318
- 7. **Maintainability**: Modularity, reusability, testability
319
- 8. **Portability**: Adaptability, installability
320
-
321
- Use these when assessing beyond the core four.
322
-
323
- </details>
324
-
325
- <details>
326
- <summary>Example: Deep Performance Analysis (click to expand)</summary>
327
-
328
- ```yaml
329
- performance_deep_dive:
330
- response_times:
331
- p50: 45ms
332
- p95: 180ms
333
- p99: 350ms
334
- database:
335
- slow_queries: 2
336
- missing_indexes: ['users.email', 'orders.user_id']
337
- caching:
338
- hit_rate: 0%
339
- recommendation: 'Add Redis for session data'
340
- load_test:
341
- max_rps: 150
342
- breaking_point: 200 rps
343
- ```
344
-
345
- </details>
1
+ <!-- Powered by BMAD™ Core -->
2
+
3
+ # nfr-assess
4
+
5
+ Quick NFR validation focused on the core four: security, performance, reliability, maintainability.
6
+
7
+ ## Inputs
8
+
9
+ ```yaml
10
+ required:
11
+ - story_id: '{epic}.{story}' # e.g., "1.3"
12
+ - story_path: `bmad-core/core-config.yaml` for the `devStoryLocation`
13
+
14
+ optional:
15
+ - architecture_refs: `bmad-core/core-config.yaml` for the `architecture.architectureFile`
16
+ - technical_preferences: `bmad-core/core-config.yaml` for the `technicalPreferences`
17
+ - acceptance_criteria: From story file
18
+ ```
19
+
20
+ ## Purpose
21
+
22
+ Assess non-functional requirements for a story and generate:
23
+
24
+ 1. YAML block for the gate file's `nfr_validation` section
25
+ 2. Brief markdown assessment saved to `qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
26
+
27
+ ## Process
28
+
29
+ ### 0. Fail-safe for Missing Inputs
30
+
31
+ If story_path or story file can't be found:
32
+
33
+ - Still create assessment file with note: "Source story not found"
34
+ - Set all selected NFRs to CONCERNS with notes: "Target unknown / evidence missing"
35
+ - Continue with assessment to provide value
36
+
37
+ ### 1. Elicit Scope
38
+
39
+ **Interactive mode:** Ask which NFRs to assess
40
+ **Non-interactive mode:** Default to core four (security, performance, reliability, maintainability)
41
+
42
+ ```text
43
+ Which NFRs should I assess? (Enter numbers or press Enter for default)
44
+ [1] Security (default)
45
+ [2] Performance (default)
46
+ [3] Reliability (default)
47
+ [4] Maintainability (default)
48
+ [5] Usability
49
+ [6] Compatibility
50
+ [7] Portability
51
+ [8] Functional Suitability
52
+
53
+ > [Enter for 1-4]
54
+ ```
55
+
56
+ ### 2. Check for Thresholds
57
+
58
+ Look for NFR requirements in:
59
+
60
+ - Story acceptance criteria
61
+ - `docs/architecture/*.md` files
62
+ - `docs/technical-preferences.md`
63
+
64
+ **Interactive mode:** Ask for missing thresholds
65
+ **Non-interactive mode:** Mark as CONCERNS with "Target unknown"
66
+
67
+ ```text
68
+ No performance requirements found. What's your target response time?
69
+ > 200ms for API calls
70
+
71
+ No security requirements found. Required auth method?
72
+ > JWT with refresh tokens
73
+ ```
74
+
75
+ **Unknown targets policy:** If a target is missing and not provided, mark status as CONCERNS with notes: "Target unknown"
76
+
77
+ ### 3. Quick Assessment
78
+
79
+ For each selected NFR, check:
80
+
81
+ - Is there evidence it's implemented?
82
+ - Can we validate it?
83
+ - Are there obvious gaps?
84
+
85
+ ### 4. Generate Outputs
86
+
87
+ ## Output 1: Gate YAML Block
88
+
89
+ Generate ONLY for NFRs actually assessed (no placeholders):
90
+
91
+ ```yaml
92
+ # Gate YAML (copy/paste):
93
+ nfr_validation:
94
+ _assessed: [security, performance, reliability, maintainability]
95
+ security:
96
+ status: CONCERNS
97
+ notes: 'No rate limiting on auth endpoints'
98
+ performance:
99
+ status: PASS
100
+ notes: 'Response times < 200ms verified'
101
+ reliability:
102
+ status: PASS
103
+ notes: 'Error handling and retries implemented'
104
+ maintainability:
105
+ status: CONCERNS
106
+ notes: 'Test coverage at 65%, target is 80%'
107
+ ```
108
+
109
+ ## Deterministic Status Rules
110
+
111
+ - **FAIL**: Any selected NFR has critical gap or target clearly not met
112
+ - **CONCERNS**: No FAILs, but any NFR is unknown/partial/missing evidence
113
+ - **PASS**: All selected NFRs meet targets with evidence
114
+
115
+ ## Quality Score Calculation
116
+
117
+ ```
118
+ quality_score = 100
119
+ - 20 for each FAIL attribute
120
+ - 10 for each CONCERNS attribute
121
+ Floor at 0, ceiling at 100
122
+ ```
123
+
124
+ If `technical-preferences.md` defines custom weights, use those instead.
125
+
126
+ ## Output 2: Brief Assessment Report
127
+
128
+ **ALWAYS save to:** `qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
129
+
130
+ ```markdown
131
+ # NFR Assessment: {epic}.{story}
132
+
133
+ Date: {date}
134
+ Reviewer: Quinn
135
+
136
+ <!-- Note: Source story not found (if applicable) -->
137
+
138
+ ## Summary
139
+
140
+ - Security: CONCERNS - Missing rate limiting
141
+ - Performance: PASS - Meets <200ms requirement
142
+ - Reliability: PASS - Proper error handling
143
+ - Maintainability: CONCERNS - Test coverage below target
144
+
145
+ ## Critical Issues
146
+
147
+ 1. **No rate limiting** (Security)
148
+ - Risk: Brute force attacks possible
149
+ - Fix: Add rate limiting middleware to auth endpoints
150
+
151
+ 2. **Test coverage 65%** (Maintainability)
152
+ - Risk: Untested code paths
153
+ - Fix: Add tests for uncovered branches
154
+
155
+ ## Quick Wins
156
+
157
+ - Add rate limiting: ~2 hours
158
+ - Increase test coverage: ~4 hours
159
+ - Add performance monitoring: ~1 hour
160
+ ```
161
+
162
+ ## Output 3: Story Update Line
163
+
164
+ **End with this line for the review task to quote:**
165
+
166
+ ```
167
+ NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
168
+ ```
169
+
170
+ ## Output 4: Gate Integration Line
171
+
172
+ **Always print at the end:**
173
+
174
+ ```
175
+ Gate NFR block ready → paste into qa.qaLocation/gates/{epic}.{story}-{slug}.yml under nfr_validation
176
+ ```
177
+
178
+ ## Assessment Criteria
179
+
180
+ ### Security
181
+
182
+ **PASS if:**
183
+
184
+ - Authentication implemented
185
+ - Authorization enforced
186
+ - Input validation present
187
+ - No hardcoded secrets
188
+
189
+ **CONCERNS if:**
190
+
191
+ - Missing rate limiting
192
+ - Weak encryption
193
+ - Incomplete authorization
194
+
195
+ **FAIL if:**
196
+
197
+ - No authentication
198
+ - Hardcoded credentials
199
+ - SQL injection vulnerabilities
200
+
201
+ ### Performance
202
+
203
+ **PASS if:**
204
+
205
+ - Meets response time targets
206
+ - No obvious bottlenecks
207
+ - Reasonable resource usage
208
+
209
+ **CONCERNS if:**
210
+
211
+ - Close to limits
212
+ - Missing indexes
213
+ - No caching strategy
214
+
215
+ **FAIL if:**
216
+
217
+ - Exceeds response time limits
218
+ - Memory leaks
219
+ - Unoptimized queries
220
+
221
+ ### Reliability
222
+
223
+ **PASS if:**
224
+
225
+ - Error handling present
226
+ - Graceful degradation
227
+ - Retry logic where needed
228
+
229
+ **CONCERNS if:**
230
+
231
+ - Some error cases unhandled
232
+ - No circuit breakers
233
+ - Missing health checks
234
+
235
+ **FAIL if:**
236
+
237
+ - No error handling
238
+ - Crashes on errors
239
+ - No recovery mechanisms
240
+
241
+ ### Maintainability
242
+
243
+ **PASS if:**
244
+
245
+ - Test coverage meets target
246
+ - Code well-structured
247
+ - Documentation present
248
+
249
+ **CONCERNS if:**
250
+
251
+ - Test coverage below target
252
+ - Some code duplication
253
+ - Missing documentation
254
+
255
+ **FAIL if:**
256
+
257
+ - No tests
258
+ - Highly coupled code
259
+ - No documentation
260
+
261
+ ## Quick Reference
262
+
263
+ ### What to Check
264
+
265
+ ```yaml
266
+ security:
267
+ - Authentication mechanism
268
+ - Authorization checks
269
+ - Input validation
270
+ - Secret management
271
+ - Rate limiting
272
+
273
+ performance:
274
+ - Response times
275
+ - Database queries
276
+ - Caching usage
277
+ - Resource consumption
278
+
279
+ reliability:
280
+ - Error handling
281
+ - Retry logic
282
+ - Circuit breakers
283
+ - Health checks
284
+ - Logging
285
+
286
+ maintainability:
287
+ - Test coverage
288
+ - Code structure
289
+ - Documentation
290
+ - Dependencies
291
+ ```
292
+
293
+ ## Key Principles
294
+
295
+ - Focus on the core four NFRs by default
296
+ - Quick assessment, not deep analysis
297
+ - Gate-ready output format
298
+ - Brief, actionable findings
299
+ - Skip what doesn't apply
300
+ - Deterministic status rules for consistency
301
+ - Unknown targets → CONCERNS, not guesses
302
+
303
+ ---
304
+
305
+ ## Appendix: ISO 25010 Reference
306
+
307
+ <details>
308
+ <summary>Full ISO 25010 Quality Model (click to expand)</summary>
309
+
310
+ ### All 8 Quality Characteristics
311
+
312
+ 1. **Functional Suitability**: Completeness, correctness, appropriateness
313
+ 2. **Performance Efficiency**: Time behavior, resource use, capacity
314
+ 3. **Compatibility**: Co-existence, interoperability
315
+ 4. **Usability**: Learnability, operability, accessibility
316
+ 5. **Reliability**: Maturity, availability, fault tolerance
317
+ 6. **Security**: Confidentiality, integrity, authenticity
318
+ 7. **Maintainability**: Modularity, reusability, testability
319
+ 8. **Portability**: Adaptability, installability
320
+
321
+ Use these when assessing beyond the core four.
322
+
323
+ </details>
324
+
325
+ <details>
326
+ <summary>Example: Deep Performance Analysis (click to expand)</summary>
327
+
328
+ ```yaml
329
+ performance_deep_dive:
330
+ response_times:
331
+ p50: 45ms
332
+ p95: 180ms
333
+ p99: 350ms
334
+ database:
335
+ slow_queries: 2
336
+ missing_indexes: ['users.email', 'orders.user_id']
337
+ caching:
338
+ hit_rate: 0%
339
+ recommendation: 'Add Redis for session data'
340
+ load_test:
341
+ max_rps: 150
342
+ breaking_point: 200 rps
343
+ ```
344
+
345
+ </details>