@dzhechkov/keysarium 1.7.15 → 1.7.19

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 (83) hide show
  1. package/.dz-manifest.json +214 -54
  2. package/README.md +29 -6
  3. package/README.ru.md +17 -0
  4. package/package.json +3 -3
  5. package/sbom.json +455 -55
  6. package/src/cli.js +32 -2
  7. package/src/commands/doctor.js +25 -1
  8. package/src/commands/init.js +56 -12
  9. package/src/commands/update.js +30 -3
  10. package/src/utils.js +7 -0
  11. package/templates/.agents/skills/casarium/SKILL.md +29 -0
  12. package/templates/.claude/agents/code-goal-planner.md +447 -0
  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/feature-adr/SKILL.md +17 -15
  21. package/templates/.claude/skills/feature-adr/modules/03-adr.md +1 -1
  22. package/templates/.claude/skills/feature-adr/modules/03.5-ideation-swarm.md +1 -1
  23. package/templates/.claude/skills/feature-adr/modules/06-implementation-plan.md +2 -2
  24. package/templates/.claude/skills/feature-adr/modules/08-qe.md +1 -1
  25. package/templates/.claude/skills/feature-adr/modules/09-fleet-qe.md +12 -12
  26. package/templates/.claude/skills/feature-adr/references/agentic-qe/LICENSE.agentic-qe +21 -0
  27. package/templates/.claude/skills/feature-adr/references/agentic-qe/README.md +20 -16
  28. package/templates/.claude/skills/feature-adr/references/agentic-qe/UPSTREAM-MANIFEST.json +246 -0
  29. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/README.md +218 -0
  30. package/templates/.claude/skills/feature-adr/references/agentic-qe/{brutal-honesty-review.md → qe-ref-brutal-honesty-review/REFERENCE.md} +14 -1
  31. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/assessment-rubrics.md +295 -0
  32. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/review-template.md +102 -0
  33. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/schemas/output.json +291 -0
  34. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-code.sh +179 -0
  35. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-tests.sh +223 -0
  36. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/validate-config.json +34 -0
  37. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/REFERENCE.md +758 -0
  38. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  39. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/schemas/output.json +74 -0
  40. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/scripts/validate-config.json +25 -0
  41. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/REFERENCE.md +226 -0
  42. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -0
  43. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/schemas/output.json +568 -0
  44. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/scripts/validate-config.json +25 -0
  45. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/01-flag-detection.md +57 -0
  46. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/02-core-agents.md +29 -0
  47. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/03-batch1-results.md +15 -0
  48. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/04-conditional-agents.md +23 -0
  49. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/05-decision-synthesis.md +29 -0
  50. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/06-report-generation.md +18 -0
  51. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/07-learning-persistence.md +29 -0
  52. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/08-final-output.md +18 -0
  53. package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-coverage-analysis.md → qe-ref-qe-coverage-analysis/REFERENCE.md} +42 -3
  54. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -0
  55. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/schemas/output.json +286 -0
  56. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/scripts/validate-config.json +42 -0
  57. package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-requirements-validation.md → qe-ref-qe-requirements-validation/REFERENCE.md} +13 -3
  58. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -0
  59. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/schemas/output.json +587 -0
  60. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/scripts/validate-config.json +37 -0
  61. package/templates/.claude/skills/feature-adr/references/agentic-qe/{regression-testing.md → qe-ref-regression-testing/REFERENCE.md} +30 -49
  62. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/evals/regression-testing.yaml +504 -0
  63. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/schemas/output.json +311 -0
  64. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/scripts/validate-config.json +50 -0
  65. package/templates/.claude/skills/feature-adr/references/agentic-qe/{risk-based-testing.md → qe-ref-risk-based-testing/REFERENCE.md} +23 -52
  66. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/evals/risk-based-testing.yaml +141 -0
  67. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/schemas/output.json +480 -0
  68. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/scripts/validate-config.json +25 -0
  69. package/templates/.claude/skills/feature-adr/references/agentic-qe/{shift-left-testing.md → qe-ref-shift-left-testing/REFERENCE.md} +33 -88
  70. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/evals/shift-left-testing.yaml +145 -0
  71. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/schemas/output.json +459 -0
  72. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/scripts/validate-config.json +25 -0
  73. package/templates/CLAUDE.md +3 -1
  74. package/templates/docs/feature-adr/04-admin-guide.md +1 -1
  75. package/templates/docs/improvement-directions.md +3 -3
  76. package/templates/docs/keysarium/02-admin-guide.md +2 -2
  77. package/templates/docs/keysarium/03-user-guide.md +3 -3
  78. package/templates/docs/keysarium/05-architecture.md +9 -8
  79. package/templates/docs/keysarium/06-user-flows.md +4 -4
  80. package/templates/lib/platform-templates/copilot.md +1 -1
  81. package/templates/lib/platform-templates/opencode.md +1 -1
  82. package/templates/.claude/skills/feature-adr/references/agentic-qe/enterprise-integration-testing.md +0 -111
  83. package/templates/.claude/skills/feature-adr/references/agentic-qe/qcsd-ideation-swarm.md +0 -126
@@ -6,7 +6,7 @@
6
6
 
7
7
  Adapted from [agentic-qe qcsd-ideation-swarm](https://github.com/proffesor-for-testing/agentic-qe) (Tier 3: Verified).
8
8
 
9
- > Load: `references/agentic-qe/qcsd-ideation-swarm.md`
9
+ > Load: `references/agentic-qe/qe-ref-qcsd-ideation-swarm/REFERENCE.md`
10
10
 
11
11
  ## When
12
12
 
@@ -13,7 +13,7 @@ Always runs, and ALWAYS writes `features/<slug>/06_implementation_plan.md` — e
13
13
 
14
14
  ## Model
15
15
 
16
- sonnet (analytical decomposition) + code-goal-planner SPARC-GOAP methodology
16
+ Use the planning model selected by the active feature-ADR routing policy, distinct from the coding model, with code-goal-planner SPARC-GOAP methodology.
17
17
 
18
18
  ## Input
19
19
 
@@ -25,7 +25,7 @@ sonnet (analytical decomposition) + code-goal-planner SPARC-GOAP methodology
25
25
 
26
26
  ## Protocol
27
27
 
28
- > Load: `references/agentic-qe/code-goal-planner.md` for SPARC-GOAP methodology.
28
+ When the active planner route selects Claude Sonnet and the project agent is available in Claude Code, dispatch `Agent({ subagent_type: 'code-goal-planner', description: 'SPARC-GOAP plan', prompt: '<requirements, ADR decisions, quality risks, repository evidence, requested milestones and checks>' })`. Provide the actual feature paths and constraints in the prompt. Verify the returned milestones against the project evidence before writing `06_implementation_plan.md`; the agent's answer is a proposal, not a completed artifact. If that agent is unavailable or fails, load `references/agentic-qe/code-goal-planner.md` and apply the same methodology with the selected planner model. In Codex, use that reference path directly. Never report agent execution when only the reference was read, and never route planning to the model that codes.
29
29
 
30
30
  ### 0. Apply SPARC-GOAP Goal State Analysis
31
31
 
@@ -249,7 +249,7 @@ produced blockers. Non-blocking: empty result or error → proceed with the stan
249
249
 
250
250
  ### 3. Code Review via Brutal Honesty Review (M+)
251
251
 
252
- > Load: `references/agentic-qe/brutal-honesty-review.md`
252
+ > Load: `references/agentic-qe/qe-ref-brutal-honesty-review/REFERENCE.md`
253
253
 
254
254
  Apply the **brutal-honesty-review** protocol from agentic-qe (Tier 2: Validated).
255
255
 
@@ -28,11 +28,11 @@ sonnet (analytical fleet coordination — multiple parallel agents)
28
28
  ### 1. Fleet Assembly
29
29
 
30
30
  > Load agent protocols:
31
- > - Agent 1: `references/agentic-qe/qe-requirements-validation.md`
32
- > - Agent 2: `references/agentic-qe/risk-based-testing.md`
33
- > - Agent 3: `references/agentic-qe/enterprise-integration-testing.md`
34
- > - Agent 4: `references/agentic-qe/regression-testing.md`
35
- > - Shared: `references/agentic-qe/qe-coverage-analysis.md`
31
+ > - Agent 1: `references/agentic-qe/qe-ref-qe-requirements-validation/REFERENCE.md`
32
+ > - Agent 2: `references/agentic-qe/qe-ref-risk-based-testing/REFERENCE.md`
33
+ > - Agent 3: `references/agentic-qe/qe-ref-enterprise-integration-testing/REFERENCE.md`
34
+ > - Agent 4: `references/agentic-qe/qe-ref-regression-testing/REFERENCE.md`
35
+ > - Shared: `references/agentic-qe/qe-ref-qe-coverage-analysis/REFERENCE.md`
36
36
 
37
37
  Spawn a QE fleet of 4 parallel assessment agents:
38
38
 
@@ -100,7 +100,7 @@ Any UNMITIGATED critical risk (score ≥ 20) = GAP.
100
100
 
101
101
  ### 4. Integration Check (Agent 3)
102
102
 
103
- > Protocol from: `enterprise-integration-testing` (Tier 3, condensed)
103
+ > Protocol from: `enterprise-integration-testing` (pinned upstream protocol)
104
104
 
105
105
  Apply the **enterprise-integration-testing** hierarchical testing strategy:
106
106
 
@@ -251,17 +251,17 @@ Gaps requiring attention:
251
251
  ## Direct Mode (`--full-qe`)
252
252
 
253
253
  When `{AGENTIC_QE_MODE}` = `direct` (activated via `--full-qe` flag), Step 9
254
- uses full agentic-qe protocols for the same 4 core agents. No additional agents
255
- are added — the same fleet runs with deeper methodology from the full skill files.
254
+ uses the same four pinned full protocols as Reference Mode. No additional agents
255
+ are added; the installed aqe runtime adds its memory and fleet services.
256
256
 
257
257
  ### What changes
258
258
 
259
259
  | Agent | Reference Mode | Direct Mode (`--full-qe`) |
260
260
  |-------|---------------|---------------------------|
261
- | Agent 1 | Condensed qe-requirements-validation | Full SMART + BDD + sprint coverage protocol |
262
- | Agent 2 | Condensed risk-based-testing | Full 5×5 matrix + ML-enhanced + dynamic reassessment |
263
- | Agent 3 | Condensed enterprise-integration | Full hierarchical fleet + QCSD flags |
264
- | Agent 4 | Condensed regression-testing | Full change-based + historical + time-budget strategies |
261
+ | Agent 1 | Pinned qe-requirements-validation protocol | Same protocol; aqe runtime services |
262
+ | Agent 2 | Pinned risk-based-testing protocol | Same protocol; aqe runtime services |
263
+ | Agent 3 | Pinned enterprise-integration protocol | Same protocol; aqe fleet services |
264
+ | Agent 4 | Pinned regression-testing protocol | Same protocol; aqe runtime services |
265
265
 
266
266
  ## Pattern Memory Loop (Direct Modes)
267
267
 
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Agentic QE Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  # Agentic QE Skills Integration
2
2
 
3
- Skills from [agentic-qe](https://github.com/proffesor-for-testing/agentic-qe) integrated into the feature-adr pipeline.
3
+ Reference material from [agentic-qe](https://github.com/proffesor-for-testing/agentic-qe) integrated into the feature-ADR pipeline. Eight core skills are vendored from commit `0a6de058575cbe292afe220df105cc74120f7674` (MIT; see `LICENSE.agentic-qe`). The remaining reference files are Keysarium's older adapted copies.
4
4
 
5
5
  ## Installation (for Direct Mode)
6
6
 
@@ -51,7 +51,7 @@ Without installation, all core skills work in Reference Mode (no setup needed).
51
51
  ## Source Repository
52
52
 
53
53
  - Repository: https://github.com/proffesor-for-testing/agentic-qe
54
- - Skills path: `assets/skills/`
54
+ - Pinned skills path: `.claude/skills/`
55
55
  - Agents path: `.claude/agents/goal/`
56
56
  - Total skills in repo: 77+
57
57
  - Skills integrated: 15 (9 core + 6 extended)
@@ -79,13 +79,11 @@ Without installation, all core skills work in Reference Mode (no setup needed).
79
79
 
80
80
  ### Reference Mode (default, no setup)
81
81
 
82
- Skills are stored as condensed copies in `references/agentic-qe/`.
83
- Feature-adr modules read the skill instructions and apply their methodology
84
- within the feature-adr checkpoint framework.
82
+ The eight core skills listed below include their pinned upstream `SKILL.md`, output schemas, evals, and supporting files. Feature-ADR modules load those instructions from their own directories and apply the methodology within the feature-ADR checkpoint framework. Five skills also carry clearly marked Keysarium additions. The other reference files remain adapted copies.
85
83
 
86
84
  - Works out of the box
87
- - 15 files, ~50KB total
88
85
  - Covers all core pipeline steps
86
+ - No `aqe` executable, MCP tools, pattern memory, or fleet runtime is installed by these reference files
89
87
 
90
88
  ### Direct Mode (`--full-qe`, requires installation)
91
89
 
@@ -95,7 +93,7 @@ When `--full-qe` flag is used and agentic-qe is installed:
95
93
  2. Sets `{AGENTIC_QE_MODE}` = `direct`
96
94
  3. Modules load full skill files from agentic-qe package for the same 9 core skills
97
95
  4. Full QCSD swarm protocols with all agents + DDD mapping
98
- 5. No additional skills — same agents, deeper protocols
96
+ 5. The same pinned core protocols can use the installed runtime's CLI, MCP tools, memory and fleet agents when those capabilities are verified
99
97
 
100
98
  **When to use:**
101
99
  - L/XL tier features needing deeper QE methodology
@@ -123,16 +121,22 @@ Everything from `--full-qe` PLUS 6 additional skills:
123
121
 
124
122
  ## Files in this directory
125
123
 
126
- ### Core (always loaded)
127
- - `shift-left-testing.md` — Full copy (Tier 3)
128
- - `qcsd-ideation-swarm.md` — Condensed from ~77KB (Tier 3)
124
+ ### Core (loaded by the corresponding module)
125
+ - `qe-ref-shift-left-testing/REFERENCE.md` — pinned upstream plus Keysarium addition
126
+ - `qe-ref-qcsd-ideation-swarm/REFERENCE.md` — pinned upstream plus Keysarium addition
129
127
  - `code-goal-planner.md` — Full copy (Agent)
130
- - `brutal-honesty-review.md` — Full copy (Tier 2)
131
- - `qe-requirements-validation.md` — Full copy, 254 lines (Tier 3)
132
- - `risk-based-testing.md` — Full copy, 212 lines (Tier 3)
133
- - `enterprise-integration-testing.md` — Condensed from 735 lines (Tier 3)
134
- - `regression-testing.md` — Full copy, 233 lines (Tier 3)
135
- - `qe-coverage-analysis.md` — Full copy, 193 lines (Tier 3)
128
+ - `qe-ref-brutal-honesty-review/REFERENCE.md` — pinned upstream
129
+ - `qe-ref-qe-requirements-validation/REFERENCE.md` — pinned upstream
130
+ - `qe-ref-risk-based-testing/REFERENCE.md` — pinned upstream plus Keysarium addition
131
+ - `qe-ref-enterprise-integration-testing/REFERENCE.md` — pinned upstream plus Keysarium addition
132
+ - `qe-ref-regression-testing/REFERENCE.md` — pinned upstream plus Keysarium addition
133
+ - `qe-ref-qe-coverage-analysis/REFERENCE.md` — pinned upstream
134
+
135
+ Each vendored skill keeps its auxiliary files under the same directory, so its frontmatter paths such as `schemas/output.json` resolve from the skill root. `run-history.json` is excluded because it records upstream run history rather than the skill contract.
136
+
137
+ The `qe-ref-` directory prefix marks these as bundled references and keeps them distinct from separately installed skills with the same names. `UPSTREAM-MANIFEST.json` maps each local path to its original upstream path and hash.
138
+
139
+ The upstream `brutal-honesty-review/scripts/*.sh` files are bundled as reference utilities and are not run by Keysarium. They use simple text heuristics and, in one case, invoke the consumer project's `npm test`; their output is not a feature-ADR gate verdict. `assess-tests.sh` has a known upstream early-exit at its first `((found_count++))` under `set -e`; keep its verdict out of the gate. The JSON schemas are available for machine checks, but the pipeline does not yet claim that it runs every upstream eval automatically.
136
140
 
137
141
  ### Extended (loaded in Direct Mode)
138
142
  - `chaos-engineering-resilience.md` — Full copy, 164 lines (Tier 3)
@@ -0,0 +1,246 @@
1
+ {
2
+ "source": "https://github.com/proffesor-for-testing/agentic-qe",
3
+ "commit": "0a6de058575cbe292afe220df105cc74120f7674",
4
+ "license": "MIT",
5
+ "excluded": [
6
+ "qe-coverage-analysis/run-history.json"
7
+ ],
8
+ "files": [
9
+ {
10
+ "path": "qe-ref-enterprise-integration-testing/REFERENCE.md",
11
+ "sha256": "77cb3880c7750c010c449dcfb5d27491cef0162a8bc069e02d0540601a664425",
12
+ "upstreamBodySha256": "131e613be41919f3545a29d346c8133738765b30e9206633d41c0e8ea406c8b2",
13
+ "upstreamPath": ".claude/skills/enterprise-integration-testing/SKILL.md",
14
+ "upstreamFrontmatterSha256": "b89a5492c7d3b421669673156b5f56bd91bd6c9da50fd2d86fd05075fec09fa7"
15
+ },
16
+ {
17
+ "path": "qe-ref-enterprise-integration-testing/evals/enterprise-integration-testing.yaml",
18
+ "sha256": "f7287d1e453569bc5414005a73383880c4333ba539ec679a3241772c34bac68a",
19
+ "upstreamPath": ".claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml"
20
+ },
21
+ {
22
+ "path": "qe-ref-enterprise-integration-testing/schemas/output.json",
23
+ "sha256": "837e7a27bfc139d2bedeb5c1a7854ef7078a34900f4aae1b73bf776e6d6c8727",
24
+ "upstreamPath": ".claude/skills/enterprise-integration-testing/schemas/output.json"
25
+ },
26
+ {
27
+ "path": "qe-ref-enterprise-integration-testing/scripts/validate-config.json",
28
+ "sha256": "db45ee1e7912fce0321efcbad152a88ae4e656c03404dd6bae54302ecca6a3a1",
29
+ "upstreamPath": ".claude/skills/enterprise-integration-testing/scripts/validate-config.json"
30
+ },
31
+ {
32
+ "path": "qe-ref-qcsd-ideation-swarm/REFERENCE.md",
33
+ "sha256": "4f9958206be90609a06e5709d486d71cccfcf79799ef450278b15e26af8c9227",
34
+ "upstreamBodySha256": "2dd6197fd5786b988441c7b183b1df20e5156370bfbd85ed2facea21f6f7fe0b",
35
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/SKILL.md",
36
+ "upstreamFrontmatterSha256": "b08428be3d2d38693b411132db807d0902cf07420a1b7dee51b6763d2e7bdab3"
37
+ },
38
+ {
39
+ "path": "qe-ref-qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml",
40
+ "sha256": "1820e848888ea413a6f8a2cd399901605618bbc170b80ef11c5549e182491b5a",
41
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml"
42
+ },
43
+ {
44
+ "path": "qe-ref-qcsd-ideation-swarm/schemas/output.json",
45
+ "sha256": "79c5c37538313a06dc294dfef0176286b29a7a26e9ab952cfe42d21c48c7b1a3",
46
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/schemas/output.json"
47
+ },
48
+ {
49
+ "path": "qe-ref-qcsd-ideation-swarm/scripts/validate-config.json",
50
+ "sha256": "626c135503831060c9ef0c13003ef3e2ea3a396f67787d0cf7b17d37a9afe160",
51
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/scripts/validate-config.json"
52
+ },
53
+ {
54
+ "path": "qe-ref-qcsd-ideation-swarm/steps/01-flag-detection.md",
55
+ "sha256": "68a9771fd2ae18716ef4265b0b15a4df4a4f5e2a24a8794da78cc2f784444ba0",
56
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/steps/01-flag-detection.md"
57
+ },
58
+ {
59
+ "path": "qe-ref-qcsd-ideation-swarm/steps/02-core-agents.md",
60
+ "sha256": "512308d211773383249c485402aa7c36f550dad2fc7a6a73b19ca80162347138",
61
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/steps/02-core-agents.md"
62
+ },
63
+ {
64
+ "path": "qe-ref-qcsd-ideation-swarm/steps/03-batch1-results.md",
65
+ "sha256": "ddaf64b2bff27081954577b97968f2ce181c41d3f2386364a2de0b9ec311cd5b",
66
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/steps/03-batch1-results.md"
67
+ },
68
+ {
69
+ "path": "qe-ref-qcsd-ideation-swarm/steps/04-conditional-agents.md",
70
+ "sha256": "752b00367d4b5cd75fa17cd96cf9c268e032fba47e0d5806aa3bf6539d773f36",
71
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/steps/04-conditional-agents.md"
72
+ },
73
+ {
74
+ "path": "qe-ref-qcsd-ideation-swarm/steps/05-decision-synthesis.md",
75
+ "sha256": "0f87a1997d38803f2ce181e6506e5053b317c461f2718949841790ccc89b76c4",
76
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/steps/05-decision-synthesis.md"
77
+ },
78
+ {
79
+ "path": "qe-ref-qcsd-ideation-swarm/steps/06-report-generation.md",
80
+ "sha256": "27ecb7146d1f80806651ff9566065cd5c680f32979ef6a0ea4576360a66fb229",
81
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/steps/06-report-generation.md"
82
+ },
83
+ {
84
+ "path": "qe-ref-qcsd-ideation-swarm/steps/07-learning-persistence.md",
85
+ "sha256": "dac7068b81298b58db63ef64a41961b17c70dcb72b1da64c186b31564cb1f2ea",
86
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/steps/07-learning-persistence.md"
87
+ },
88
+ {
89
+ "path": "qe-ref-qcsd-ideation-swarm/steps/08-final-output.md",
90
+ "sha256": "b45df9c32aafbb5382fb86620a2c019294ab5bcdf510c3209b17c4470bf5fff5",
91
+ "upstreamPath": ".claude/skills/qcsd-ideation-swarm/steps/08-final-output.md"
92
+ },
93
+ {
94
+ "path": "qe-ref-qe-coverage-analysis/REFERENCE.md",
95
+ "sha256": "1d97eae9c6b2220a170f1ba50ae66b79bfbe9bd1fb0e09953daaab51cd24396c",
96
+ "upstreamBodySha256": "199ffd11a6ff114900b5f4a4dfbf6dbd9899be4b530b7575fd6ec931dae56bb4",
97
+ "upstreamPath": ".claude/skills/qe-coverage-analysis/SKILL.md",
98
+ "upstreamFrontmatterSha256": "dbc89c60ee705dc7f2df88f939606ea5b012aedb1874e8331cee7a8f83524b8b"
99
+ },
100
+ {
101
+ "path": "qe-ref-qe-coverage-analysis/evals/qe-coverage-analysis.yaml",
102
+ "sha256": "43a46034f5121cc4288eb3ea1d4b366f52d19208244e85547c6cfd6342f67900",
103
+ "upstreamPath": ".claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml"
104
+ },
105
+ {
106
+ "path": "qe-ref-qe-coverage-analysis/schemas/output.json",
107
+ "sha256": "dc6093a03d68b0ac2a5be95dc4eb1f5617d58d74cb09839ac13c8ab3bed7d7f2",
108
+ "upstreamPath": ".claude/skills/qe-coverage-analysis/schemas/output.json"
109
+ },
110
+ {
111
+ "path": "qe-ref-qe-coverage-analysis/scripts/validate-config.json",
112
+ "sha256": "ee48023424cb990194a7bbbd0fa3175057e3b5db36deffedaabd2e36881f5c8e",
113
+ "upstreamPath": ".claude/skills/qe-coverage-analysis/scripts/validate-config.json"
114
+ },
115
+ {
116
+ "path": "qe-ref-qe-requirements-validation/REFERENCE.md",
117
+ "sha256": "e2af956e3097a36ac8f796d660a4199cb58857ee65c8db2a8de3b1a2381e4fe8",
118
+ "upstreamBodySha256": "050bc55a746b8341589bf2600cf939d0f3a3b1f3e588aa5aafc0ffd11b1f981c",
119
+ "upstreamPath": ".claude/skills/qe-requirements-validation/SKILL.md",
120
+ "upstreamFrontmatterSha256": "45895cb98e7a8ffaa0306250f68ed875124bbb7294cb895ac183b5fb20def20d"
121
+ },
122
+ {
123
+ "path": "qe-ref-qe-requirements-validation/evals/qe-requirements-validation.yaml",
124
+ "sha256": "6d2f778cf100e518376256510646de9a04a7b95507df7366eaecfbdae4295ee8",
125
+ "upstreamPath": ".claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml"
126
+ },
127
+ {
128
+ "path": "qe-ref-qe-requirements-validation/schemas/output.json",
129
+ "sha256": "3267c56bdf01e0bc796cd52802e0d3639956575b5befb306d5d2548abe7fb1f4",
130
+ "upstreamPath": ".claude/skills/qe-requirements-validation/schemas/output.json"
131
+ },
132
+ {
133
+ "path": "qe-ref-qe-requirements-validation/scripts/validate-config.json",
134
+ "sha256": "654ecc8427172a16f287df7e2309b0a8901609096bf4d52a907820e79c65f792",
135
+ "upstreamPath": ".claude/skills/qe-requirements-validation/scripts/validate-config.json"
136
+ },
137
+ {
138
+ "path": "qe-ref-brutal-honesty-review/README.md",
139
+ "sha256": "2a026b4af50b21456e50424fbfa089cb983fbbaa0c68024c8c17c695bea25a57",
140
+ "upstreamPath": ".claude/skills/brutal-honesty-review/README.md"
141
+ },
142
+ {
143
+ "path": "qe-ref-brutal-honesty-review/REFERENCE.md",
144
+ "sha256": "22bb4f512ec3d20caea2f113b76dd3680d99184d2f32dfc8c4ce6f7b901b5921",
145
+ "upstreamBodySha256": "5a261a712c8435090f40ecef63012d64edfcdd2df0a60a5e46a2c371990466db",
146
+ "upstreamPath": ".claude/skills/brutal-honesty-review/SKILL.md",
147
+ "upstreamFrontmatterSha256": "5dfb2f11c45c478d77762eead8c274e6b86b6e91b60cd98b5248307d346eaec2"
148
+ },
149
+ {
150
+ "path": "qe-ref-brutal-honesty-review/resources/assessment-rubrics.md",
151
+ "sha256": "dac09c91c765e2211799cc230738fb72a966f47511edb872306a906e49640cbe",
152
+ "upstreamPath": ".claude/skills/brutal-honesty-review/resources/assessment-rubrics.md"
153
+ },
154
+ {
155
+ "path": "qe-ref-brutal-honesty-review/resources/review-template.md",
156
+ "sha256": "95182c8605b1d821360257e1c5dbac4300bda333d861785de417cbb84090b25b",
157
+ "upstreamPath": ".claude/skills/brutal-honesty-review/resources/review-template.md"
158
+ },
159
+ {
160
+ "path": "qe-ref-brutal-honesty-review/schemas/output.json",
161
+ "sha256": "b8c0c2c823ff8a48c6bd7d62036ac5e3ce9c71f198abd9051692564d3645eed9",
162
+ "upstreamPath": ".claude/skills/brutal-honesty-review/schemas/output.json"
163
+ },
164
+ {
165
+ "path": "qe-ref-brutal-honesty-review/scripts/assess-code.sh",
166
+ "sha256": "7e9722c1533f1b7d1a9d11a7add13ac12a2a5f0acfc0ed2cdede2bcf0dab788f",
167
+ "upstreamPath": ".claude/skills/brutal-honesty-review/scripts/assess-code.sh"
168
+ },
169
+ {
170
+ "path": "qe-ref-brutal-honesty-review/scripts/assess-tests.sh",
171
+ "sha256": "afa5acc685c9621075596058761ace9b72242abdefc088c6bbfbf25ad1978b6c",
172
+ "upstreamPath": ".claude/skills/brutal-honesty-review/scripts/assess-tests.sh"
173
+ },
174
+ {
175
+ "path": "qe-ref-brutal-honesty-review/scripts/validate-config.json",
176
+ "sha256": "7418284839f89735d01f50eefdb488b013e0076f6003a67683062429c14984c6",
177
+ "upstreamPath": ".claude/skills/brutal-honesty-review/scripts/validate-config.json"
178
+ },
179
+ {
180
+ "path": "qe-ref-shift-left-testing/REFERENCE.md",
181
+ "sha256": "3e60dccf6dc39d0745770941cab492f3080b786ec82e1b36ace5a4fca99bcb66",
182
+ "upstreamBodySha256": "5c23ab40a117e34f017c9ae10f7356227e8070593628148535e359492029ca51",
183
+ "upstreamPath": ".claude/skills/shift-left-testing/SKILL.md",
184
+ "upstreamFrontmatterSha256": "c68d3e1279ef411dfe7e601e5dff94665d8dfd5054b8d6ab9f7acc5427d01ef1"
185
+ },
186
+ {
187
+ "path": "qe-ref-shift-left-testing/evals/shift-left-testing.yaml",
188
+ "sha256": "bd78f3a8f4c2efac6357e39db73349fb324d94d657dcde97a02ae79ae4a44a3e",
189
+ "upstreamPath": ".claude/skills/shift-left-testing/evals/shift-left-testing.yaml"
190
+ },
191
+ {
192
+ "path": "qe-ref-shift-left-testing/schemas/output.json",
193
+ "sha256": "1f1c26b303ea08b1e864e0ad48ec71a588b25704e7f21459539363c88f406166",
194
+ "upstreamPath": ".claude/skills/shift-left-testing/schemas/output.json"
195
+ },
196
+ {
197
+ "path": "qe-ref-shift-left-testing/scripts/validate-config.json",
198
+ "sha256": "ba8aab0c04f21731b63dda53fa5c64bbc2a892e6f13c76b99f58864f5bba2956",
199
+ "upstreamPath": ".claude/skills/shift-left-testing/scripts/validate-config.json"
200
+ },
201
+ {
202
+ "path": "qe-ref-risk-based-testing/REFERENCE.md",
203
+ "sha256": "369447d4903cd1265f78e8ed69be3f085a901f5015c79fa20d218497147837a7",
204
+ "upstreamBodySha256": "22ee476e13268a23f7e6c641d2f2f37ed2b7cfda0456367a1159cf2fe698821f",
205
+ "upstreamPath": ".claude/skills/risk-based-testing/SKILL.md",
206
+ "upstreamFrontmatterSha256": "120a81584210e8895f4ae90860f9ba83d4f931057f955707626c00a62fcef3fe"
207
+ },
208
+ {
209
+ "path": "qe-ref-risk-based-testing/evals/risk-based-testing.yaml",
210
+ "sha256": "eaa33701c0728c741b06169e1ee54ba3edd0aa034213624b2ac33f3911c91e8e",
211
+ "upstreamPath": ".claude/skills/risk-based-testing/evals/risk-based-testing.yaml"
212
+ },
213
+ {
214
+ "path": "qe-ref-risk-based-testing/schemas/output.json",
215
+ "sha256": "c5437704333f64c35d13421d4b2a84f2c84658f0bafba653cbfa4acd8e0aa73a",
216
+ "upstreamPath": ".claude/skills/risk-based-testing/schemas/output.json"
217
+ },
218
+ {
219
+ "path": "qe-ref-risk-based-testing/scripts/validate-config.json",
220
+ "sha256": "c6f9f14da0875db2b14b48c8bc53c631af907a15f65a07e34053268efc58f7b2",
221
+ "upstreamPath": ".claude/skills/risk-based-testing/scripts/validate-config.json"
222
+ },
223
+ {
224
+ "path": "qe-ref-regression-testing/REFERENCE.md",
225
+ "sha256": "b66f58f233a0d8e11efc995dd0d588aabfadc0ab489bd9a223b3b77f46371406",
226
+ "upstreamBodySha256": "4ae8e621bfac77c18accaaa27d33f43206c299b77a69e5a0c93149e1bcf3cd78",
227
+ "upstreamPath": ".claude/skills/regression-testing/SKILL.md",
228
+ "upstreamFrontmatterSha256": "c0745ae4125ede985b785574e929845c8ca97ab0b83e38e3c963a2ba11ff1d29"
229
+ },
230
+ {
231
+ "path": "qe-ref-regression-testing/evals/regression-testing.yaml",
232
+ "sha256": "186f58281db454d32d15806271c986ca894f38350585ee3fa68a65b736f4c989",
233
+ "upstreamPath": ".claude/skills/regression-testing/evals/regression-testing.yaml"
234
+ },
235
+ {
236
+ "path": "qe-ref-regression-testing/schemas/output.json",
237
+ "sha256": "11aa506b771c1078b30c57f2e706abd69efb141b00c62b8d29f7bf6866f30d11",
238
+ "upstreamPath": ".claude/skills/regression-testing/schemas/output.json"
239
+ },
240
+ {
241
+ "path": "qe-ref-regression-testing/scripts/validate-config.json",
242
+ "sha256": "16dd3267fd849d3543388edb31fcc4fee435f4f5eca55646cfba12bb41ed5ab9",
243
+ "upstreamPath": ".claude/skills/regression-testing/scripts/validate-config.json"
244
+ }
245
+ ]
246
+ }
@@ -0,0 +1,218 @@
1
+ # Brutal Honesty Review Skill
2
+
3
+ ## Overview
4
+
5
+ A QE skill that delivers unvarnished technical criticism combining three legendary personas:
6
+ - **Linus Torvalds**: Surgical technical precision
7
+ - **Gordon Ramsay**: Standards-driven quality assessment
8
+ - **James Bach**: BS detection in testing practices
9
+
10
+ ## Purpose
11
+
12
+ Unlike diplomatic reviews, this skill eliminates ambiguity about technical standards. It **dissects why something is wrong, explains the correct approach, and has zero patience for repeated mistakes or sloppy thinking**.
13
+
14
+ ## When to Use
15
+
16
+ ✅ **Appropriate**:
17
+ - Senior engineers wanting unfiltered feedback
18
+ - Repeated architectural mistakes
19
+ - Critical bugs requiring immediate attention
20
+ - Evaluating vendor claims/certifications
21
+ - Teams explicitly requesting no-BS feedback
22
+
23
+ ❌ **Inappropriate**:
24
+ - Junior developers' first contributions
25
+ - Demoralized teams
26
+ - Public forums (avoid humiliation)
27
+ - When psychological safety is low
28
+
29
+ ## Three Modes
30
+
31
+ ### 1. Linus Mode (Technical Precision)
32
+ Focus on code correctness, performance, concurrency, and architecture.
33
+
34
+ **Example**:
35
+ > "This is completely broken. You're holding the lock during I/O, which means every thread serializes. Did you even test under load? The correct approach is..."
36
+
37
+ ### 2. Ramsay Mode (Standards-Driven Quality)
38
+ Compare reality against clear excellence model using concrete metrics.
39
+
40
+ **Example**:
41
+ > "Look at this! 12 tests and 10 are just checking if variables exist. Where's the business logic coverage? This is RAW. Don't merge it."
42
+
43
+ ### 3. Bach Mode (BS Detection)
44
+ Question certifications, best practices, and vendor hype.
45
+
46
+ **Example**:
47
+ > "This certification teaches scripts, not thinking. Does it help testers find bugs faster? No. It helps the cert body make money."
48
+
49
+ ## Quick Start
50
+
51
+ ### Using the Skill
52
+
53
+ Invoke the skill when you need brutal honesty:
54
+
55
+ ```markdown
56
+ Use brutal-honesty-review skill in Linus mode to review this code:
57
+ [paste code]
58
+ ```
59
+
60
+ ### Using Assessment Scripts
61
+
62
+ ```bash
63
+ # Assess code quality (Linus Mode)
64
+ ./scripts/assess-code.sh src/myfile.js
65
+
66
+ # Assess test quality (Ramsay Mode)
67
+ ./scripts/assess-tests.sh tests/
68
+ ```
69
+
70
+ ## Files Included
71
+
72
+ ```
73
+ brutal-honesty-review/
74
+ ├── SKILL.md # Main skill instructions
75
+ ├── README.md # This file
76
+ ├── resources/
77
+ │ ├── review-template.md # Template for structured reviews
78
+ │ └── assessment-rubrics.md # Scoring rubrics for all modes
79
+ └── scripts/
80
+ ├── assess-code.sh # Automated code quality check
81
+ └── assess-tests.sh # Automated test quality check
82
+ ```
83
+
84
+ ## Assessment Rubrics
85
+
86
+ ### Code Quality (Linus Mode)
87
+
88
+ | Criteria | Failing | Passing | Excellent |
89
+ |----------|---------|---------|-----------|
90
+ | Correctness | Wrong logic | Works in tested cases | Proven across edge cases |
91
+ | Performance | O(n²) where O(n) exists | Acceptable | Optimal + profiled |
92
+ | Error Handling | Crashes | Returns errors | Graceful degradation |
93
+ | Concurrency | Race conditions | Thread-safe | Lock-free/proven |
94
+ | Testability | Can't unit test | Mockable | Self-testing |
95
+ | Maintainability | "Clever" code | Clear | Self-documenting |
96
+
97
+ **Threshold**: Minimum "Passing" on ALL to merge.
98
+
99
+ ### Test Quality (Ramsay Mode)
100
+
101
+ | Criteria | Raw | Acceptable | Michelin Star |
102
+ |----------|-----|------------|---------------|
103
+ | Coverage | <50% | 80%+ | 95%+ + mutation |
104
+ | Edge Cases | Happy path only | Common failures | Boundary analysis |
105
+ | Clarity | Unclear names | Clear names | Self-documenting |
106
+ | Speed | Minutes | <10s | <1s, parallel |
107
+ | Stability | Flaky (>1%) | Stable | Deterministic |
108
+ | Isolation | Dependent | Independent | Pure, stateless |
109
+
110
+ **Threshold**: Minimum "Acceptable" on ALL to merge.
111
+
112
+ ### BS Detection (Bach Mode)
113
+
114
+ Red flags:
115
+ - Cargo cult practices (no context)
116
+ - Certification theater (filters thinkers)
117
+ - Vendor lock-in (solves own problem)
118
+ - False automation (still needs humans)
119
+ - Checkbox quality (compliance, not outcomes)
120
+ - Hype cycle (10x claims without proof)
121
+
122
+ **Green flag test**: "Does this help testers/developers do better work in THIS context?"
123
+
124
+ ## Examples
125
+
126
+ ### Example 1: Linus Mode - Concurrency Bug
127
+
128
+ **Problem**: Holding DB connection during HTTP call
129
+
130
+ **Brutal Honesty**:
131
+ > "This is completely broken. You're holding a database connection open while waiting for an HTTP request. Under load, you'll exhaust the connection pool in seconds. Did you test with >1 user? The correct approach: 1) Fetch data, 2) Close connection, 3) Make HTTP call."
132
+
133
+ ### Example 2: Ramsay Mode - Weak Tests
134
+
135
+ **Problem**: 15 tests, all happy path
136
+
137
+ **Brutal Honesty**:
138
+ > "Look at this test suite. 15 tests, 14 are happy path. Where's validation? Where are edge cases? This is RAW. You're testing if code runs, not if it's correct. You have 35% coverage. Production needs 80%+. Don't merge this."
139
+
140
+ ### Example 3: Bach Mode - Certification Theater
141
+
142
+ **Problem**: Required ISTQB certification
143
+
144
+ **Brutal Honesty**:
145
+ > "ISTQB tests if you memorized terminology, not if you can test software. Real skills: finding bugs, designing strategies, communicating risk. ISTQB tests: definitions, model names, checkbox thinking. If it helped, ISTQB-certified teams would ship higher quality. They don't."
146
+
147
+ ## Calibration Guide
148
+
149
+ ### Harshness Levels
150
+
151
+ **Level 1 - Direct**: For experienced engineers
152
+ > "This approach is flawed because..."
153
+
154
+ **Level 2 - Harsh**: For repeated mistakes
155
+ > "We've discussed this pattern three times. Why is it back?"
156
+
157
+ **Level 3 - Brutal**: For critical issues or willful ignorance
158
+ > "This is negligent. You're exposing user data because..."
159
+
160
+ ### Context Matters
161
+
162
+ Before being brutal, verify:
163
+ 1. **Audience maturity**: Can they handle directness?
164
+ 2. **Relationship capital**: Have you earned harsh feedback rights?
165
+ 3. **Actionability**: Can they actually fix this?
166
+ 4. **Intent**: Helping or venting?
167
+
168
+ ## Philosophy
169
+
170
+ ### Why Brutal Honesty Works
171
+
172
+ 1. **Eliminates Ambiguity**: No confusion about technical standards
173
+ 2. **Scales Teaching**: Public technical breakdown teaches entire team
174
+ 3. **Cuts Through BS**: Exposes cargo cult practices and vendor hype
175
+
176
+ ### The Costs
177
+
178
+ 1. **Relationship Damage**: Harsh criticism without trust destroys collaboration
179
+ 2. **Chills Participation**: Fear stops newcomers from contributing
180
+ 3. **Burnout**: Constant harshness is exhausting
181
+
182
+ ### The Contract
183
+
184
+ Before using brutal honesty, establish explicit contract:
185
+
186
+ > "I'm going to give unfiltered technical feedback. This will be direct, possibly harsh. Goal is clarity, not cruelty. I'll explain: 1) What's wrong, 2) Why, 3) What correct looks like, 4) How to fix. Want diplomatic instead?"
187
+
188
+ **Get explicit consent first.**
189
+
190
+ ## Integration with Agentic QE Fleet
191
+
192
+ This skill extends the QE skill set:
193
+
194
+ - **Complements**: `code-review-quality`, `context-driven-testing`
195
+ - **Contrasts with**: Diplomatic, constructive review approaches
196
+ - **Use when**: Technical precision and BS-cutting are priorities
197
+ - **Avoid when**: Building confidence or psychological safety
198
+
199
+ ## Related Skills
200
+
201
+ - `code-review-quality` - Diplomatic code review
202
+ - `context-driven-testing` - Foundation for BS detection
203
+ - `tdd-london-chicago` - Systematic quality approach
204
+ - `exploratory-testing-advanced` - Critical thinking in testing
205
+
206
+ ## License
207
+
208
+ MIT - Part of Agentic QE Fleet
209
+
210
+ ## Contributing
211
+
212
+ Found this too harsh? Good. Found this too soft? You're Linus Torvalds.
213
+
214
+ Submit issues if the skill produces ineffective criticism (not actionable, personal attacks, wrong context).
215
+
216
+ ---
217
+
218
+ **Remember**: Brutal honesty is a tool, not a personality. Use it when it helps, not when it harms.