@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.
- package/.dz-manifest.json +214 -54
- package/README.md +29 -6
- package/README.ru.md +17 -0
- package/package.json +3 -3
- package/sbom.json +455 -55
- package/src/cli.js +32 -2
- package/src/commands/doctor.js +25 -1
- package/src/commands/init.js +56 -12
- package/src/commands/update.js +30 -3
- package/src/utils.js +7 -0
- package/templates/.agents/skills/casarium/SKILL.md +29 -0
- package/templates/.claude/agents/code-goal-planner.md +447 -0
- package/templates/.claude/commands/casarium.md +3 -1
- package/templates/.claude/commands/cjm-prototype.md +2 -2
- package/templates/.claude/commands/research.md +4 -1
- package/templates/.claude/rules/checkpoint-protocol.md +2 -1
- package/templates/.claude/rules/research-quality.md +11 -6
- package/templates/.claude/shards/phase-2-research.shard.md +12 -8
- package/templates/.claude/shards/phase-25-cjm.shard.md +5 -3
- package/templates/.claude/skills/feature-adr/SKILL.md +17 -15
- package/templates/.claude/skills/feature-adr/modules/03-adr.md +1 -1
- package/templates/.claude/skills/feature-adr/modules/03.5-ideation-swarm.md +1 -1
- package/templates/.claude/skills/feature-adr/modules/06-implementation-plan.md +2 -2
- package/templates/.claude/skills/feature-adr/modules/08-qe.md +1 -1
- package/templates/.claude/skills/feature-adr/modules/09-fleet-qe.md +12 -12
- package/templates/.claude/skills/feature-adr/references/agentic-qe/LICENSE.agentic-qe +21 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/README.md +20 -16
- package/templates/.claude/skills/feature-adr/references/agentic-qe/UPSTREAM-MANIFEST.json +246 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/README.md +218 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/{brutal-honesty-review.md → qe-ref-brutal-honesty-review/REFERENCE.md} +14 -1
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/assessment-rubrics.md +295 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/review-template.md +102 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/schemas/output.json +291 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-code.sh +179 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-tests.sh +223 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/validate-config.json +34 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/REFERENCE.md +758 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/schemas/output.json +74 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/scripts/validate-config.json +25 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/REFERENCE.md +226 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/schemas/output.json +568 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/scripts/validate-config.json +25 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/01-flag-detection.md +57 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/02-core-agents.md +29 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/03-batch1-results.md +15 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/04-conditional-agents.md +23 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/05-decision-synthesis.md +29 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/06-report-generation.md +18 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/07-learning-persistence.md +29 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/08-final-output.md +18 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-coverage-analysis.md → qe-ref-qe-coverage-analysis/REFERENCE.md} +42 -3
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/schemas/output.json +286 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/scripts/validate-config.json +42 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-requirements-validation.md → qe-ref-qe-requirements-validation/REFERENCE.md} +13 -3
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/schemas/output.json +587 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/scripts/validate-config.json +37 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/{regression-testing.md → qe-ref-regression-testing/REFERENCE.md} +30 -49
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/evals/regression-testing.yaml +504 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/schemas/output.json +311 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/scripts/validate-config.json +50 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/{risk-based-testing.md → qe-ref-risk-based-testing/REFERENCE.md} +23 -52
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/evals/risk-based-testing.yaml +141 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/schemas/output.json +480 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/scripts/validate-config.json +25 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/{shift-left-testing.md → qe-ref-shift-left-testing/REFERENCE.md} +33 -88
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/evals/shift-left-testing.yaml +145 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/schemas/output.json +459 -0
- package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/scripts/validate-config.json +25 -0
- package/templates/CLAUDE.md +3 -1
- package/templates/docs/feature-adr/04-admin-guide.md +1 -1
- package/templates/docs/improvement-directions.md +3 -3
- package/templates/docs/keysarium/02-admin-guide.md +2 -2
- package/templates/docs/keysarium/03-user-guide.md +3 -3
- package/templates/docs/keysarium/05-architecture.md +9 -8
- package/templates/docs/keysarium/06-user-flows.md +4 -4
- package/templates/lib/platform-templates/copilot.md +1 -1
- package/templates/lib/platform-templates/opencode.md +1 -1
- package/templates/.claude/skills/feature-adr/references/agentic-qe/enterprise-integration-testing.md +0 -111
- 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
|
-
|
|
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
|
-
|
|
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` (
|
|
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
|
|
255
|
-
are added
|
|
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 |
|
|
262
|
-
| Agent 2 |
|
|
263
|
-
| Agent 3 |
|
|
264
|
-
| Agent 4 |
|
|
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
|
-
|
|
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
|
-
-
|
|
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
|
-
|
|
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.
|
|
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 (
|
|
127
|
-
- `shift-left-testing.md` —
|
|
128
|
-
- `qcsd-ideation-swarm.md` —
|
|
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` —
|
|
131
|
-
- `qe-requirements-validation.md` —
|
|
132
|
-
- `risk-based-testing.md` —
|
|
133
|
-
- `enterprise-integration-testing.md` —
|
|
134
|
-
- `regression-testing.md` —
|
|
135
|
-
- `qe-coverage-analysis.md` —
|
|
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.
|