@dzhechkov/keysarium 1.7.14 → 1.7.18

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 (84) hide show
  1. package/.dz-manifest.json +215 -55
  2. package/README.md +35 -6
  3. package/README.ru.md +36 -16
  4. package/package.json +3 -3
  5. package/sbom.json +456 -56
  6. package/src/cli.js +32 -2
  7. package/src/commands/doctor.js +25 -1
  8. package/src/commands/init.js +46 -12
  9. package/src/utils.js +1 -0
  10. package/templates/.agents/skills/casarium/SKILL.md +29 -0
  11. package/templates/.claude/agents/code-goal-planner.md +9 -0
  12. package/templates/.claude/commands/analyst-manual.md +4 -2
  13. package/templates/.claude/commands/casarium.md +3 -1
  14. package/templates/.claude/commands/cjm-prototype.md +2 -2
  15. package/templates/.claude/commands/research.md +4 -1
  16. package/templates/.claude/rules/checkpoint-protocol.md +2 -1
  17. package/templates/.claude/rules/research-quality.md +11 -6
  18. package/templates/.claude/shards/phase-2-research.shard.md +12 -8
  19. package/templates/.claude/shards/phase-25-cjm.shard.md +5 -3
  20. package/templates/.claude/skills/analyst-manual-full/SKILL.md +65 -37
  21. package/templates/.claude/skills/feature-adr/SKILL.md +17 -15
  22. package/templates/.claude/skills/feature-adr/modules/03-adr.md +1 -1
  23. package/templates/.claude/skills/feature-adr/modules/03.5-ideation-swarm.md +1 -1
  24. package/templates/.claude/skills/feature-adr/modules/06-implementation-plan.md +2 -2
  25. package/templates/.claude/skills/feature-adr/modules/08-qe.md +1 -1
  26. package/templates/.claude/skills/feature-adr/modules/09-fleet-qe.md +12 -12
  27. package/templates/.claude/skills/feature-adr/references/agentic-qe/LICENSE.agentic-qe +21 -0
  28. package/templates/.claude/skills/feature-adr/references/agentic-qe/README.md +20 -16
  29. package/templates/.claude/skills/feature-adr/references/agentic-qe/UPSTREAM-MANIFEST.json +246 -0
  30. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/README.md +218 -0
  31. package/templates/.claude/skills/feature-adr/references/agentic-qe/{brutal-honesty-review.md → qe-ref-brutal-honesty-review/REFERENCE.md} +14 -1
  32. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/assessment-rubrics.md +295 -0
  33. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/review-template.md +102 -0
  34. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/schemas/output.json +291 -0
  35. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-code.sh +179 -0
  36. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-tests.sh +223 -0
  37. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/validate-config.json +34 -0
  38. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/REFERENCE.md +758 -0
  39. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  40. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/schemas/output.json +74 -0
  41. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/scripts/validate-config.json +25 -0
  42. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/REFERENCE.md +226 -0
  43. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -0
  44. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/schemas/output.json +568 -0
  45. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/scripts/validate-config.json +25 -0
  46. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/01-flag-detection.md +57 -0
  47. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/02-core-agents.md +29 -0
  48. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/03-batch1-results.md +15 -0
  49. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/04-conditional-agents.md +23 -0
  50. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/05-decision-synthesis.md +29 -0
  51. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/06-report-generation.md +18 -0
  52. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/07-learning-persistence.md +29 -0
  53. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/08-final-output.md +18 -0
  54. package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-coverage-analysis.md → qe-ref-qe-coverage-analysis/REFERENCE.md} +42 -3
  55. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -0
  56. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/schemas/output.json +286 -0
  57. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/scripts/validate-config.json +42 -0
  58. package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-requirements-validation.md → qe-ref-qe-requirements-validation/REFERENCE.md} +13 -3
  59. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -0
  60. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/schemas/output.json +587 -0
  61. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/scripts/validate-config.json +37 -0
  62. package/templates/.claude/skills/feature-adr/references/agentic-qe/{regression-testing.md → qe-ref-regression-testing/REFERENCE.md} +30 -49
  63. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/evals/regression-testing.yaml +504 -0
  64. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/schemas/output.json +311 -0
  65. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/scripts/validate-config.json +50 -0
  66. package/templates/.claude/skills/feature-adr/references/agentic-qe/{risk-based-testing.md → qe-ref-risk-based-testing/REFERENCE.md} +23 -52
  67. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/evals/risk-based-testing.yaml +141 -0
  68. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/schemas/output.json +480 -0
  69. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/scripts/validate-config.json +25 -0
  70. package/templates/.claude/skills/feature-adr/references/agentic-qe/{shift-left-testing.md → qe-ref-shift-left-testing/REFERENCE.md} +33 -88
  71. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/evals/shift-left-testing.yaml +145 -0
  72. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/schemas/output.json +459 -0
  73. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/scripts/validate-config.json +25 -0
  74. package/templates/CLAUDE.md +3 -1
  75. package/templates/docs/feature-adr/04-admin-guide.md +1 -1
  76. package/templates/docs/improvement-directions.md +3 -3
  77. package/templates/docs/keysarium/02-admin-guide.md +2 -2
  78. package/templates/docs/keysarium/03-user-guide.md +3 -3
  79. package/templates/docs/keysarium/05-architecture.md +9 -8
  80. package/templates/docs/keysarium/06-user-flows.md +4 -4
  81. package/templates/lib/platform-templates/copilot.md +1 -1
  82. package/templates/lib/platform-templates/opencode.md +1 -1
  83. package/templates/.claude/skills/feature-adr/references/agentic-qe/enterprise-integration-testing.md +0 -111
  84. package/templates/.claude/skills/feature-adr/references/agentic-qe/qcsd-ideation-swarm.md +0 -126
@@ -0,0 +1,295 @@
1
+ # Assessment Rubrics for Brutal Honesty Reviews
2
+
3
+ ## Code Quality Rubric (Linus Mode)
4
+
5
+ ### Correctness
6
+ | Level | Criteria | Example |
7
+ |-------|----------|---------|
8
+ | 🔴 **Failing** | Wrong algorithm, logic errors, crashes | `null` pointer dereference, off-by-one errors |
9
+ | 🟡 **Passing** | Works in tested cases, no obvious bugs | Handles expected inputs correctly |
10
+ | 🟢 **Excellent** | Proven correct across edge cases | Property-based tests, formal verification |
11
+
12
+ ### Performance
13
+ | Level | Criteria | Example |
14
+ |-------|----------|---------|
15
+ | 🔴 **Failing** | Naive O(n²) where O(n) exists | Nested loops for searchable data |
16
+ | 🟡 **Passing** | Acceptable complexity for scale | O(n log n) for reasonable n |
17
+ | 🟢 **Excellent** | Optimal algorithm + profiled | Cached, indexed, benchmarked |
18
+
19
+ ### Error Handling
20
+ | Level | Criteria | Example |
21
+ |-------|----------|---------|
22
+ | 🔴 **Failing** | Crashes on invalid input | Uncaught exceptions, panics |
23
+ | 🟡 **Passing** | Returns error codes/exceptions | `try/catch`, error returns |
24
+ | 🟢 **Excellent** | Graceful degradation + logging | Circuit breakers, retry logic |
25
+
26
+ ### Concurrency Safety
27
+ | Level | Criteria | Example |
28
+ |-------|----------|---------|
29
+ | 🔴 **Failing** | Race conditions, deadlocks | Shared mutable state, no locks |
30
+ | 🟡 **Passing** | Thread-safe with locks | Proper mutex usage |
31
+ | 🟢 **Excellent** | Lock-free or proven safe | Immutable data, atomic operations |
32
+
33
+ ### Testability
34
+ | Level | Criteria | Example |
35
+ |-------|----------|---------|
36
+ | 🔴 **Failing** | Impossible to unit test | Hard-coded dependencies, global state |
37
+ | 🟡 **Passing** | Can be tested with mocks | Dependency injection |
38
+ | 🟢 **Excellent** | Self-testing design | Pure functions, property-based |
39
+
40
+ ### Maintainability
41
+ | Level | Criteria | Example |
42
+ |-------|----------|---------|
43
+ | 🔴 **Failing** | "Clever" code, unclear intent | Obfuscated logic, magic numbers |
44
+ | 🟡 **Passing** | Clear intent, reasonable | Named variables, comments |
45
+ | 🟢 **Excellent** | Self-documenting + simple | Obvious code, minimal complexity |
46
+
47
+ **Passing Threshold**: Minimum 🟡 on ALL criteria
48
+ **Ship-Ready**: Minimum 🟢 on Correctness, Performance, Error Handling
49
+
50
+ ---
51
+
52
+ ## Test Quality Rubric (Ramsay Mode)
53
+
54
+ ### Coverage
55
+ | Level | Criteria | Acceptable % |
56
+ |-------|----------|--------------|
57
+ | 🔴 **Raw** | Only happy path | <50% branch |
58
+ | 🟡 **Acceptable** | Common failures covered | 80%+ branch |
59
+ | 🟢 **Michelin Star** | Complete boundary analysis | 95%+ branch + mutation tested |
60
+
61
+ ### Edge Case Testing
62
+ | Level | Criteria | Example |
63
+ |-------|----------|---------|
64
+ | 🔴 **Raw** | Only happy path tested | `test('adds 2+2')` |
65
+ | 🟡 **Acceptable** | Common failures tested | Null, empty, invalid input |
66
+ | 🟢 **Michelin Star** | Boundary analysis complete | Min/max values, overflow, underflow |
67
+
68
+ ### Test Clarity
69
+ | Level | Criteria | Example |
70
+ |-------|----------|---------|
71
+ | 🔴 **Raw** | Unclear what's being tested | `test('test1')` |
72
+ | 🟡 **Acceptable** | Clear test names | `test('handles null input')` |
73
+ | 🟢 **Michelin Star** | Self-documenting test pyramid | Given-When-Then, BDD style |
74
+
75
+ ### Speed
76
+ | Level | Criteria | Example |
77
+ |-------|----------|---------|
78
+ | 🔴 **Raw** | Minutes to run unit tests | Calls real database/network |
79
+ | 🟡 **Acceptable** | <10s for unit tests | Mocked dependencies |
80
+ | 🟢 **Michelin Star** | <1s, parallelized | Pure functions, in-memory |
81
+
82
+ ### Stability
83
+ | Level | Criteria | Flake Rate |
84
+ |-------|----------|------------|
85
+ | 🔴 **Raw** | Flaky, timing-dependent | >1% failure rate |
86
+ | 🟡 **Acceptable** | Stable but potentially slow | 0% flake, deterministic |
87
+ | 🟢 **Michelin Star** | Deterministic + fast | 0% flake, <100ms per test |
88
+
89
+ ### Isolation
90
+ | Level | Criteria | Example |
91
+ |-------|----------|---------|
92
+ | 🔴 **Raw** | Tests depend on each other | Shared state, execution order matters |
93
+ | 🟡 **Acceptable** | Independent tests | Each test sets up own state |
94
+ | 🟢 **Michelin Star** | Pure functions, no shared state | Immutable, stateless |
95
+
96
+ **Merge Threshold**: Minimum 🟡 on ALL criteria
97
+ **Production-Ready**: Minimum 🟢 on Coverage, Stability, Isolation
98
+
99
+ ---
100
+
101
+ ## BS Detection Rubric (Bach Mode)
102
+
103
+ ### Red Flags in Testing Practices
104
+
105
+ | Red Flag | Evidence | Impact | Harshness Level |
106
+ |----------|----------|--------|-----------------|
107
+ | **Cargo Cult Practice** | "Best practice" with no context | Wasted effort, false confidence | 🟡 Harsh |
108
+ | **Certification Theater** | Required cert unrelated to actual skills | Filters out critical thinkers | 🟢 Brutal |
109
+ | **Vendor Lock-In** | Tool solves problem it created | Expensive dependency | 🟡 Harsh |
110
+ | **False Automation** | "AI testing" still needs human verification | Automation debt | 🟡 Harsh |
111
+ | **Checkbox Quality** | Compliance without outcome measurement | Audit passes, customers suffer | 🟢 Brutal |
112
+ | **Hype Cycle** | Promises 10x improvement without evidence | Budget waste, disillusionment | 🟡 Harsh |
113
+ | **Coverage Theater** | 100% coverage of trivial code | False sense of quality | 🟡 Harsh |
114
+ | **Test Script Slavery** | Following test cases without thinking | Misses actual bugs | 🟢 Brutal |
115
+ | **Magic Tool Thinking** | Tool will solve all problems | Dependency without skill growth | 🟡 Harsh |
116
+ | **Certification Over Competence** | Hiring based on credentials, not ability | Weak team, strong resumes | 🟢 Brutal |
117
+
118
+ ### Green Flag Test
119
+
120
+ Ask these questions about any practice/tool/certification:
121
+
122
+ 1. **Does this help testers/developers do better work in THIS context?**
123
+ - If yes → Worth considering
124
+ - If no → BS alert
125
+
126
+ 2. **Who benefits economically from this?**
127
+ - Vendor/Consultant more than users → BS alert
128
+ - Users demonstrably benefit → Potentially useful
129
+
130
+ 3. **Can you measure the impact?**
131
+ - Measurable outcomes → Worth evaluating
132
+ - Vague claims → BS alert
133
+
134
+ 4. **Does this promote thinking or compliance?**
135
+ - Critical thinking → Good
136
+ - Checkbox compliance → BS alert
137
+
138
+ 5. **What happens if you don't adopt this?**
139
+ - Concrete negative consequence → Worth considering
140
+ - FOMO, vendor says so → BS alert
141
+
142
+ ---
143
+
144
+ ## Calibration Matrix
145
+
146
+ ### When to Be Brutal
147
+
148
+ | Scenario | Linus | Ramsay | Bach | Notes |
149
+ |----------|-------|--------|------|-------|
150
+ | **Senior engineer, repeated mistake** | ✅ | ✅ | ✅ | They should know better |
151
+ | **Critical security bug** | ✅ | ✅ | ❌ | Technical precision needed |
152
+ | **Production incident** | ✅ | ✅ | ❌ | No time for sugar-coating |
153
+ | **Vendor evaluating claims** | ❌ | ❌ | ✅ | BS detection prevents waste |
154
+ | **Team explicitly requests no-BS** | ✅ | ✅ | ✅ | Permission granted |
155
+ | **Certification/process evaluation** | ❌ | ❌ | ✅ | Bach's specialty |
156
+
157
+ ### When to Dial Back
158
+
159
+ | Scenario | Instead Use | Reason |
160
+ |----------|-------------|--------|
161
+ | **Junior dev, first PR** | Constructive mentoring | Build confidence |
162
+ | **Demoralized team** | Supportive guidance | Rebuild trust |
163
+ | **Public forum** | Private feedback | Avoid humiliation |
164
+ | **Unclear if fixable** | Collaborative problem-solving | Avoid frustration |
165
+ | **Personal, not technical** | Empathy + support | Not a code issue |
166
+
167
+ ---
168
+
169
+ ## Scoring Guide
170
+
171
+ ### Overall Code Review Score (Linus Mode)
172
+
173
+ ```
174
+ Score = (Correctness × 3) + (Performance × 2) + (Error Handling × 3) +
175
+ (Concurrency × 2) + (Testability × 1) + (Maintainability × 1)
176
+
177
+ Maximum: 60 points (all Excellent)
178
+ Passing: 36 points (all Passing)
179
+ Failing: <36 points
180
+
181
+ Harshness Level:
182
+ - 0-24 points: 🔴 Brutal ("This is fundamentally broken")
183
+ - 25-35 points: 🟡 Harsh ("Multiple issues need addressing")
184
+ - 36-48 points: 🟢 Direct ("Some improvements needed")
185
+ - 49-60 points: ⚪ Professional ("Minor suggestions")
186
+ ```
187
+
188
+ ### Test Suite Score (Ramsay Mode)
189
+
190
+ ```
191
+ Score = (Coverage × 3) + (Edge Cases × 3) + (Clarity × 1) +
192
+ (Speed × 1) + (Stability × 3) + (Isolation × 1)
193
+
194
+ Maximum: 60 points (all Michelin Star)
195
+ Merge Threshold: 36 points (all Acceptable)
196
+ Failing: <36 points
197
+
198
+ Harshness Level:
199
+ - 0-24 points: 🔴 Brutal ("This is RAW. Don't serve it.")
200
+ - 25-35 points: 🟡 Harsh ("You know what good looks like.")
201
+ - 36-48 points: 🟢 Direct ("Close, but needs refinement.")
202
+ - 49-60 points: ⚪ Professional ("Well done, minor polish.")
203
+ ```
204
+
205
+ ### BS Detection Score (Bach Mode)
206
+
207
+ ```
208
+ Red Flags: Count from BS Detection Rubric
209
+ Green Flags: Passes all 5 Green Flag Tests
210
+
211
+ Score = (Green Flags × 20) - (Red Flags × 10)
212
+
213
+ Maximum: 100 (all green flags, no red flags)
214
+ Acceptable: 50+ (more green than red)
215
+ BS Alert: <50 (more red than green)
216
+
217
+ Harshness Level:
218
+ - Negative score: 🔴 Brutal ("This is harmful")
219
+ - 0-40: 🟡 Harsh ("This is questionable")
220
+ - 41-70: 🟢 Direct ("Some concerns")
221
+ - 71-100: ⚪ Professional ("Reasonable approach")
222
+ ```
223
+
224
+ ---
225
+
226
+ ## Example Assessments
227
+
228
+ ### Code Review Example (Linus Mode)
229
+
230
+ **Code**: Database query in HTTP handler without connection pooling
231
+
232
+ **Assessment**:
233
+ - Correctness: 🔴 Failing (connection leak)
234
+ - Performance: 🔴 Failing (O(n) connections)
235
+ - Error Handling: 🟡 Passing (has try/catch)
236
+ - Concurrency: 🔴 Failing (connection exhaustion)
237
+ - Testability: 🟡 Passing (can mock)
238
+ - Maintainability: 🟡 Passing (clear intent)
239
+
240
+ **Score**: (0×3) + (0×2) + (1×3) + (0×2) + (1×1) + (1×1) = 5/60
241
+
242
+ **Harshness**: 🔴 Brutal
243
+
244
+ **Feedback**:
245
+ > "This is fundamentally broken. You're creating a new database connection
246
+ > for every HTTP request without pooling. Under load, you'll exhaust
247
+ > connections in seconds. Did you even test this with concurrent users?
248
+ >
249
+ > Use a connection pool. This is Database 101."
250
+
251
+ ---
252
+
253
+ ### Test Suite Example (Ramsay Mode)
254
+
255
+ **Tests**: 15 tests, all happy path, no edge cases
256
+
257
+ **Assessment**:
258
+ - Coverage: 🔴 Raw (35% branch)
259
+ - Edge Cases: 🔴 Raw (none tested)
260
+ - Clarity: 🟡 Acceptable (clear names)
261
+ - Speed: 🟢 Michelin (fast)
262
+ - Stability: 🟢 Michelin (no flakes)
263
+ - Isolation: 🟡 Acceptable (independent)
264
+
265
+ **Score**: (0×3) + (0×3) + (1×1) + (2×1) + (2×3) + (1×1) = 9/60
266
+
267
+ **Harshness**: 🔴 Brutal
268
+
269
+ **Feedback**:
270
+ > "Look at this. You've got 15 tests and 14 of them are happy path.
271
+ > Where's the validation testing? Where's the error handling?
272
+ >
273
+ > This is RAW. You're testing if the code runs, not if it's correct.
274
+ > Don't merge this."
275
+
276
+ ---
277
+
278
+ ### BS Detection Example (Bach Mode)
279
+
280
+ **Claim**: "Our AI-powered test automation eliminates manual testing"
281
+
282
+ **Assessment**:
283
+ - Red Flags: Hype Cycle, Magic Tool Thinking, False Automation
284
+ - Green Flags: 0/5 (fails all tests)
285
+
286
+ **Score**: (0×20) - (3×10) = -30/100
287
+
288
+ **Harshness**: 🔴 Brutal
289
+
290
+ **Feedback**:
291
+ > "This is vendor hype. 'AI-powered' doesn't eliminate the need for humans
292
+ > to define test oracles, handle edge cases, or investigate failures.
293
+ >
294
+ > The real question: Does this tool help YOUR testers on YOUR product
295
+ > in YOUR context? If you can't answer specifically, you're buying hype."
@@ -0,0 +1,102 @@
1
+ # Brutal Honesty Review Template
2
+
3
+ ## Review Type
4
+ - [ ] Linus Mode (Technical Precision)
5
+ - [ ] Ramsay Mode (Standards-Driven Quality)
6
+ - [ ] Bach Mode (BS Detection)
7
+
8
+ ---
9
+
10
+ ## What's Broken
11
+
12
+ [Surgical description of the problem - be specific, not vague]
13
+
14
+ **Evidence**:
15
+ ```
16
+ [Code snippet, claim, or practice being reviewed]
17
+ ```
18
+
19
+ ---
20
+
21
+ ## Why It's Wrong
22
+
23
+ [Technical/logical explanation - facts, not opinions]
24
+
25
+ **Fundamental Issue**:
26
+ - Root cause:
27
+ - Why this matters:
28
+ - When it breaks:
29
+
30
+ ---
31
+
32
+ ## What Correct Looks Like
33
+
34
+ [Clear model of excellence - show, don't just tell]
35
+
36
+ **Best Practice**:
37
+ ```
38
+ [Example of correct approach]
39
+ ```
40
+
41
+ **Why This Works**:
42
+ - Reason 1:
43
+ - Reason 2:
44
+ - Reason 3:
45
+
46
+ ---
47
+
48
+ ## How to Fix It
49
+
50
+ [Actionable steps - specific to context]
51
+
52
+ 1. **Immediate Fix**:
53
+ ```bash
54
+ [Command or code change]
55
+ ```
56
+
57
+ 2. **Verify Fix**:
58
+ ```bash
59
+ [How to test the fix]
60
+ ```
61
+
62
+ 3. **Prevent Recurrence**:
63
+ - [ ] Add test coverage
64
+ - [ ] Update documentation
65
+ - [ ] Review similar code
66
+
67
+ ---
68
+
69
+ ## Why This Matters
70
+
71
+ **Impact if Not Fixed**:
72
+ - [ ] Security vulnerability
73
+ - [ ] Performance degradation
74
+ - [ ] Data corruption
75
+ - [ ] User experience failure
76
+ - [ ] Technical debt
77
+ - [ ] Team velocity reduction
78
+
79
+ **Priority**: 🔴 Critical | 🟡 High | 🟢 Medium | ⚪ Low
80
+
81
+ ---
82
+
83
+ ## Harshness Calibration
84
+
85
+ **Audience**: [Junior/Mid/Senior]
86
+ **Context**: [First offense/Repeated mistake/Critical bug]
87
+ **Delivery**: [Private/Team review/Public]
88
+
89
+ **Tone Level**:
90
+ - [ ] Level 1 - Direct (experienced engineers)
91
+ - [ ] Level 2 - Harsh (repeated mistakes)
92
+ - [ ] Level 3 - Brutal (critical issues/willful ignorance)
93
+
94
+ ---
95
+
96
+ ## Follow-Up
97
+
98
+ - [ ] Reviewed by recipient
99
+ - [ ] Fix implemented
100
+ - [ ] Tests added
101
+ - [ ] Documentation updated
102
+ - [ ] Knowledge shared with team
@@ -0,0 +1,291 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentic-qe.dev/schemas/skills/brutal-honesty-review/output.json",
4
+ "title": "Brutal Honesty Review Skill Output Schema",
5
+ "description": "Schema for brutal-honesty-review skill output. Validates unvarnished technical criticism with actionable recommendations.",
6
+ "type": "object",
7
+ "required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
8
+ "properties": {
9
+ "skillName": {
10
+ "type": "string",
11
+ "const": "brutal-honesty-review"
12
+ },
13
+ "version": {
14
+ "type": "string",
15
+ "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$"
16
+ },
17
+ "timestamp": {
18
+ "type": "string",
19
+ "format": "date-time"
20
+ },
21
+ "status": {
22
+ "type": "string",
23
+ "enum": ["success", "partial", "failed", "skipped"]
24
+ },
25
+ "trustTier": {
26
+ "type": "integer",
27
+ "const": 3
28
+ },
29
+ "output": {
30
+ "type": "object",
31
+ "required": ["summary", "reviewFindings", "codeQuality"],
32
+ "properties": {
33
+ "summary": {
34
+ "type": "string",
35
+ "minLength": 50,
36
+ "maxLength": 3000,
37
+ "description": "Brutally honest executive summary"
38
+ },
39
+ "reviewFindings": {
40
+ "type": "array",
41
+ "items": {
42
+ "$ref": "#/$defs/reviewFinding"
43
+ },
44
+ "minItems": 1,
45
+ "maxItems": 200,
46
+ "description": "Detailed findings with no sugar-coating"
47
+ },
48
+ "codeQuality": {
49
+ "$ref": "#/$defs/codeQuality"
50
+ },
51
+ "severity": {
52
+ "$ref": "#/$defs/severityBreakdown"
53
+ },
54
+ "recommendations": {
55
+ "type": "array",
56
+ "items": {
57
+ "$ref": "#/$defs/recommendation"
58
+ },
59
+ "maxItems": 100,
60
+ "description": "Actionable improvement recommendations"
61
+ },
62
+ "technicalDebt": {
63
+ "$ref": "#/$defs/technicalDebt"
64
+ },
65
+ "readabilityScore": {
66
+ "type": "number",
67
+ "minimum": 0,
68
+ "maximum": 100
69
+ },
70
+ "maintainabilityScore": {
71
+ "type": "number",
72
+ "minimum": 0,
73
+ "maximum": 100
74
+ },
75
+ "verdict": {
76
+ "type": "string",
77
+ "enum": ["ship-it", "needs-work", "major-issues", "do-not-merge", "rewrite-needed"],
78
+ "description": "Final honest verdict"
79
+ },
80
+ "metrics": {
81
+ "$ref": "#/$defs/metrics"
82
+ }
83
+ }
84
+ },
85
+ "metadata": {
86
+ "$ref": "#/$defs/metadata"
87
+ },
88
+ "validation": {
89
+ "$ref": "#/$defs/validationResult"
90
+ },
91
+ "learning": {
92
+ "$ref": "#/$defs/learningData"
93
+ }
94
+ },
95
+ "$defs": {
96
+ "reviewFinding": {
97
+ "type": "object",
98
+ "required": ["id", "title", "severity", "category", "honestAssessment"],
99
+ "properties": {
100
+ "id": {
101
+ "type": "string",
102
+ "pattern": "^REV-\\d{3,6}$"
103
+ },
104
+ "title": {
105
+ "type": "string",
106
+ "minLength": 10,
107
+ "maxLength": 200
108
+ },
109
+ "description": {
110
+ "type": "string",
111
+ "maxLength": 2000
112
+ },
113
+ "severity": {
114
+ "type": "string",
115
+ "enum": ["critical", "high", "medium", "low", "nitpick"]
116
+ },
117
+ "category": {
118
+ "type": "string",
119
+ "enum": ["architecture", "design", "implementation", "performance", "security", "maintainability", "readability", "testing", "documentation", "naming"]
120
+ },
121
+ "honestAssessment": {
122
+ "type": "string",
123
+ "minLength": 20,
124
+ "maxLength": 2000,
125
+ "description": "Brutally honest assessment with no softening"
126
+ },
127
+ "location": {
128
+ "type": "object",
129
+ "properties": {
130
+ "file": { "type": "string" },
131
+ "line": { "type": "integer", "minimum": 1 },
132
+ "endLine": { "type": "integer", "minimum": 1 },
133
+ "function": { "type": "string" }
134
+ }
135
+ },
136
+ "codeSnippet": {
137
+ "type": "string",
138
+ "maxLength": 5000
139
+ },
140
+ "suggestedFix": {
141
+ "type": "string",
142
+ "maxLength": 5000
143
+ },
144
+ "effort": {
145
+ "type": "string",
146
+ "enum": ["trivial", "low", "medium", "high", "major"]
147
+ },
148
+ "blocking": {
149
+ "type": "boolean",
150
+ "description": "Whether this blocks merging"
151
+ }
152
+ }
153
+ },
154
+ "codeQuality": {
155
+ "type": "object",
156
+ "required": ["overallScore", "grade"],
157
+ "properties": {
158
+ "overallScore": {
159
+ "type": "number",
160
+ "minimum": 0,
161
+ "maximum": 100
162
+ },
163
+ "grade": {
164
+ "type": "string",
165
+ "pattern": "^[A-F][+-]?$"
166
+ },
167
+ "dimensions": {
168
+ "type": "object",
169
+ "properties": {
170
+ "correctness": { "type": "number", "minimum": 0, "maximum": 100 },
171
+ "readability": { "type": "number", "minimum": 0, "maximum": 100 },
172
+ "maintainability": { "type": "number", "minimum": 0, "maximum": 100 },
173
+ "performance": { "type": "number", "minimum": 0, "maximum": 100 },
174
+ "security": { "type": "number", "minimum": 0, "maximum": 100 },
175
+ "testability": { "type": "number", "minimum": 0, "maximum": 100 }
176
+ }
177
+ },
178
+ "strengths": {
179
+ "type": "array",
180
+ "items": { "type": "string" }
181
+ },
182
+ "weaknesses": {
183
+ "type": "array",
184
+ "items": { "type": "string" }
185
+ }
186
+ }
187
+ },
188
+ "severityBreakdown": {
189
+ "type": "object",
190
+ "properties": {
191
+ "critical": { "type": "integer", "minimum": 0 },
192
+ "high": { "type": "integer", "minimum": 0 },
193
+ "medium": { "type": "integer", "minimum": 0 },
194
+ "low": { "type": "integer", "minimum": 0 },
195
+ "nitpick": { "type": "integer", "minimum": 0 },
196
+ "blocking": { "type": "integer", "minimum": 0 }
197
+ }
198
+ },
199
+ "recommendation": {
200
+ "type": "object",
201
+ "required": ["id", "title", "priority", "impact"],
202
+ "properties": {
203
+ "id": {
204
+ "type": "string",
205
+ "pattern": "^REC-\\d{3,6}$"
206
+ },
207
+ "title": {
208
+ "type": "string",
209
+ "maxLength": 200
210
+ },
211
+ "description": {
212
+ "type": "string",
213
+ "maxLength": 2000
214
+ },
215
+ "priority": {
216
+ "type": "string",
217
+ "enum": ["critical", "high", "medium", "low"]
218
+ },
219
+ "impact": {
220
+ "type": "string",
221
+ "enum": ["transformative", "significant", "moderate", "minor"]
222
+ },
223
+ "relatedFindings": {
224
+ "type": "array",
225
+ "items": { "type": "string" }
226
+ },
227
+ "effort": {
228
+ "type": "string",
229
+ "enum": ["trivial", "low", "medium", "high", "major"]
230
+ },
231
+ "codeExample": {
232
+ "type": "string",
233
+ "maxLength": 5000
234
+ }
235
+ }
236
+ },
237
+ "technicalDebt": {
238
+ "type": "object",
239
+ "properties": {
240
+ "totalDebtHours": { "type": "number", "minimum": 0 },
241
+ "debtRatio": { "type": "number", "minimum": 0, "maximum": 100 },
242
+ "categories": {
243
+ "type": "array",
244
+ "items": {
245
+ "type": "object",
246
+ "properties": {
247
+ "category": { "type": "string" },
248
+ "hours": { "type": "number" },
249
+ "priority": { "type": "string" }
250
+ }
251
+ }
252
+ }
253
+ }
254
+ },
255
+ "metrics": {
256
+ "type": "object",
257
+ "properties": {
258
+ "filesReviewed": { "type": "integer", "minimum": 0 },
259
+ "linesReviewed": { "type": "integer", "minimum": 0 },
260
+ "totalFindings": { "type": "integer", "minimum": 0 },
261
+ "blockingIssues": { "type": "integer", "minimum": 0 },
262
+ "suggestedFixes": { "type": "integer", "minimum": 0 }
263
+ }
264
+ },
265
+ "metadata": {
266
+ "type": "object",
267
+ "properties": {
268
+ "executionTimeMs": { "type": "integer", "minimum": 0 },
269
+ "toolsUsed": { "type": "array", "items": { "type": "string" } },
270
+ "agentId": { "type": "string", "pattern": "^qe-[a-z][a-z0-9-]*$" },
271
+ "reviewScope": { "type": "string" },
272
+ "reviewType": { "type": "string", "enum": ["full", "incremental", "focused"] }
273
+ }
274
+ },
275
+ "validationResult": {
276
+ "type": "object",
277
+ "properties": {
278
+ "schemaValid": { "type": "boolean" },
279
+ "contentValid": { "type": "boolean" },
280
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 }
281
+ }
282
+ },
283
+ "learningData": {
284
+ "type": "object",
285
+ "properties": {
286
+ "patternsDetected": { "type": "array", "items": { "type": "string" } },
287
+ "reward": { "type": "number", "minimum": 0, "maximum": 1 }
288
+ }
289
+ }
290
+ }
291
+ }