@dzhechkov/p-replicator 1.5.10 → 1.5.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dzhechkov/p-replicator",
3
- "version": "1.5.10",
3
+ "version": "1.5.13",
4
4
  "description": "P-Replicator — Claude Code toolkit for AI-assisted product development (Vibe Coding). Full /replicate pipeline, 10 modular skills (194K+ chars), /harvest knowledge extraction, swarm agents, quality gates, security patterns, cross-project learning.",
5
5
  "main": "src/cli.js",
6
6
  "bin": {
@@ -1,6 +1,20 @@
1
1
  ---
2
2
  name: brutal-honesty-review
3
- description: Unvarnished technical criticism combining Linus Torvalds precision, Gordon Ramsay standards, and James Bach BS-detection. Use when code or tests need harsh reality checks, certification schemes smell fishy, or technical decisions lack rigor. No sugar-coating, just surgical truth about what is broken and why.
3
+ description: "Unvarnished technical criticism combining Linus Torvalds' precision, Gordon Ramsay's standards, and James Bach's BS-detection. Use when code/tests need harsh reality checks, certification schemes smell fishy, or technical decisions lack rigor. No sugar-coating, just surgical truth about what's broken and why."
4
+ category: quality-review
5
+ priority: high
6
+ tokenEstimate: 1200
7
+ agents: [qe-code-reviewer, qe-quality-gate, qe-security-auditor]
8
+ implementation_status: optimized
9
+ optimization_version: 1.0
10
+ last_optimized: 2025-12-03
11
+ dependencies: []
12
+ quick_reference_card: true
13
+ tags: [code-review, honesty, critical-thinking, technical-criticism, quality]
14
+ trust_tier: 2
15
+ validation:
16
+ schema_path: schemas/output.json
17
+ validator_path: scripts/validate-config.json
4
18
  ---
5
19
 
6
20
  # Brutal Honesty Review
@@ -24,6 +38,9 @@ When brutal honesty is needed:
24
38
  - Level 3 (Brutal): "This is negligent. You're exposing user data because..."
25
39
 
26
40
  **DO NOT USE FOR:** Junior devs' first PRs, demoralized teams, public forums, low psychological safety
41
+
42
+ ## Minimum Findings Enforcement
43
+ All brutal honesty reviews enforce a minimum of 3 weighted findings (CRITICAL=3, HIGH=2, MEDIUM=1, LOW=0.5). If the initial review finds fewer, escalate to deeper analysis. Brutally honest reviewers should ALWAYS find something -- if you can't, explain exactly why with evidence.
27
44
  </default_to_action>
28
45
 
29
46
  ## Quick Reference Card
@@ -0,0 +1,61 @@
1
+ skill: brutal-honesty-review
2
+ version: 1.0.0
3
+ description: >
4
+ Evaluation suite for the brutal-honesty-review skill. Tests that the three
5
+ reviewer modes (Linus precision, Ramsay standards, Bach BS-detection) produce
6
+ unvarnished, specific, evidence-backed criticism — and that they do NOT
7
+ sugar-coat genuine defects or fabricate findings on clean code.
8
+
9
+ models_to_test:
10
+ - claude-3.5-sonnet
11
+ - claude-3-haiku
12
+
13
+ mcp_integration:
14
+ enabled: true
15
+ namespace: skill-validation
16
+ query_patterns: true
17
+ track_outcomes: true
18
+ store_patterns: true
19
+ target_agents:
20
+ - qe-learning-coordinator
21
+ - qe-code-reviewer
22
+
23
+ learning:
24
+ store_success_patterns: true
25
+ store_failure_patterns: true
26
+ pattern_ttl_days: 90
27
+ min_confidence_to_store: 0.7
28
+
29
+ result_format:
30
+ json_output: true
31
+ include_timing: true
32
+ include_token_usage: true
33
+
34
+ scenarios:
35
+ - id: BHR-1
36
+ name: Real defect — must be called out specifically
37
+ input: >
38
+ Code with a genuine bug (e.g. an unhandled null path, a SQL string
39
+ concatenation, a swallowed exception).
40
+ expect:
41
+ - The review names the exact defect with file/line, not vague "could be better".
42
+ - At least one mode (Linus/Ramsay/Bach) flags it as a real problem.
43
+ - A concrete fix or direction is given, not just criticism.
44
+
45
+ - id: BHR-2
46
+ name: Clean code — no fabricated findings
47
+ input: A small, correct, well-tested function with no real issues.
48
+ expect:
49
+ - The review does NOT invent severe findings to appear thorough.
50
+ - If it nitpicks, it labels them as nits, not blockers.
51
+
52
+ - id: BHR-3
53
+ name: Certification/claim smell test
54
+ input: A README claiming "100% coverage" or "fully secure" without evidence.
55
+ expect:
56
+ - Bach BS-detection mode challenges the unsubstantiated claim.
57
+ - Asks for the evidence behind the claim.
58
+
59
+ pass_criteria:
60
+ - Findings are specific (cite location) and evidence-backed.
61
+ - No sugar-coating of real defects; no fabrication on clean code.
@@ -0,0 +1,292 @@
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
+ "minimum": 1,
28
+ "maximum": 3
29
+ },
30
+ "output": {
31
+ "type": "object",
32
+ "required": ["summary", "reviewFindings", "codeQuality"],
33
+ "properties": {
34
+ "summary": {
35
+ "type": "string",
36
+ "minLength": 50,
37
+ "maxLength": 3000,
38
+ "description": "Brutally honest executive summary"
39
+ },
40
+ "reviewFindings": {
41
+ "type": "array",
42
+ "items": {
43
+ "$ref": "#/$defs/reviewFinding"
44
+ },
45
+ "minItems": 1,
46
+ "maxItems": 200,
47
+ "description": "Detailed findings with no sugar-coating"
48
+ },
49
+ "codeQuality": {
50
+ "$ref": "#/$defs/codeQuality"
51
+ },
52
+ "severity": {
53
+ "$ref": "#/$defs/severityBreakdown"
54
+ },
55
+ "recommendations": {
56
+ "type": "array",
57
+ "items": {
58
+ "$ref": "#/$defs/recommendation"
59
+ },
60
+ "maxItems": 100,
61
+ "description": "Actionable improvement recommendations"
62
+ },
63
+ "technicalDebt": {
64
+ "$ref": "#/$defs/technicalDebt"
65
+ },
66
+ "readabilityScore": {
67
+ "type": "number",
68
+ "minimum": 0,
69
+ "maximum": 100
70
+ },
71
+ "maintainabilityScore": {
72
+ "type": "number",
73
+ "minimum": 0,
74
+ "maximum": 100
75
+ },
76
+ "verdict": {
77
+ "type": "string",
78
+ "enum": ["ship-it", "needs-work", "major-issues", "do-not-merge", "rewrite-needed"],
79
+ "description": "Final honest verdict"
80
+ },
81
+ "metrics": {
82
+ "$ref": "#/$defs/metrics"
83
+ }
84
+ }
85
+ },
86
+ "metadata": {
87
+ "$ref": "#/$defs/metadata"
88
+ },
89
+ "validation": {
90
+ "$ref": "#/$defs/validationResult"
91
+ },
92
+ "learning": {
93
+ "$ref": "#/$defs/learningData"
94
+ }
95
+ },
96
+ "$defs": {
97
+ "reviewFinding": {
98
+ "type": "object",
99
+ "required": ["id", "title", "severity", "category", "honestAssessment"],
100
+ "properties": {
101
+ "id": {
102
+ "type": "string",
103
+ "pattern": "^REV-\\d{3,6}$"
104
+ },
105
+ "title": {
106
+ "type": "string",
107
+ "minLength": 10,
108
+ "maxLength": 200
109
+ },
110
+ "description": {
111
+ "type": "string",
112
+ "maxLength": 2000
113
+ },
114
+ "severity": {
115
+ "type": "string",
116
+ "enum": ["critical", "high", "medium", "low", "nitpick"]
117
+ },
118
+ "category": {
119
+ "type": "string",
120
+ "enum": ["architecture", "design", "implementation", "performance", "security", "maintainability", "readability", "testing", "documentation", "naming"]
121
+ },
122
+ "honestAssessment": {
123
+ "type": "string",
124
+ "minLength": 20,
125
+ "maxLength": 2000,
126
+ "description": "Brutally honest assessment with no softening"
127
+ },
128
+ "location": {
129
+ "type": "object",
130
+ "properties": {
131
+ "file": { "type": "string" },
132
+ "line": { "type": "integer", "minimum": 1 },
133
+ "endLine": { "type": "integer", "minimum": 1 },
134
+ "function": { "type": "string" }
135
+ }
136
+ },
137
+ "codeSnippet": {
138
+ "type": "string",
139
+ "maxLength": 5000
140
+ },
141
+ "suggestedFix": {
142
+ "type": "string",
143
+ "maxLength": 5000
144
+ },
145
+ "effort": {
146
+ "type": "string",
147
+ "enum": ["trivial", "low", "medium", "high", "major"]
148
+ },
149
+ "blocking": {
150
+ "type": "boolean",
151
+ "description": "Whether this blocks merging"
152
+ }
153
+ }
154
+ },
155
+ "codeQuality": {
156
+ "type": "object",
157
+ "required": ["overallScore", "grade"],
158
+ "properties": {
159
+ "overallScore": {
160
+ "type": "number",
161
+ "minimum": 0,
162
+ "maximum": 100
163
+ },
164
+ "grade": {
165
+ "type": "string",
166
+ "pattern": "^[A-F][+-]?$"
167
+ },
168
+ "dimensions": {
169
+ "type": "object",
170
+ "properties": {
171
+ "correctness": { "type": "number", "minimum": 0, "maximum": 100 },
172
+ "readability": { "type": "number", "minimum": 0, "maximum": 100 },
173
+ "maintainability": { "type": "number", "minimum": 0, "maximum": 100 },
174
+ "performance": { "type": "number", "minimum": 0, "maximum": 100 },
175
+ "security": { "type": "number", "minimum": 0, "maximum": 100 },
176
+ "testability": { "type": "number", "minimum": 0, "maximum": 100 }
177
+ }
178
+ },
179
+ "strengths": {
180
+ "type": "array",
181
+ "items": { "type": "string" }
182
+ },
183
+ "weaknesses": {
184
+ "type": "array",
185
+ "items": { "type": "string" }
186
+ }
187
+ }
188
+ },
189
+ "severityBreakdown": {
190
+ "type": "object",
191
+ "properties": {
192
+ "critical": { "type": "integer", "minimum": 0 },
193
+ "high": { "type": "integer", "minimum": 0 },
194
+ "medium": { "type": "integer", "minimum": 0 },
195
+ "low": { "type": "integer", "minimum": 0 },
196
+ "nitpick": { "type": "integer", "minimum": 0 },
197
+ "blocking": { "type": "integer", "minimum": 0 }
198
+ }
199
+ },
200
+ "recommendation": {
201
+ "type": "object",
202
+ "required": ["id", "title", "priority", "impact"],
203
+ "properties": {
204
+ "id": {
205
+ "type": "string",
206
+ "pattern": "^REC-\\d{3,6}$"
207
+ },
208
+ "title": {
209
+ "type": "string",
210
+ "maxLength": 200
211
+ },
212
+ "description": {
213
+ "type": "string",
214
+ "maxLength": 2000
215
+ },
216
+ "priority": {
217
+ "type": "string",
218
+ "enum": ["critical", "high", "medium", "low"]
219
+ },
220
+ "impact": {
221
+ "type": "string",
222
+ "enum": ["transformative", "significant", "moderate", "minor"]
223
+ },
224
+ "relatedFindings": {
225
+ "type": "array",
226
+ "items": { "type": "string" }
227
+ },
228
+ "effort": {
229
+ "type": "string",
230
+ "enum": ["trivial", "low", "medium", "high", "major"]
231
+ },
232
+ "codeExample": {
233
+ "type": "string",
234
+ "maxLength": 5000
235
+ }
236
+ }
237
+ },
238
+ "technicalDebt": {
239
+ "type": "object",
240
+ "properties": {
241
+ "totalDebtHours": { "type": "number", "minimum": 0 },
242
+ "debtRatio": { "type": "number", "minimum": 0, "maximum": 100 },
243
+ "categories": {
244
+ "type": "array",
245
+ "items": {
246
+ "type": "object",
247
+ "properties": {
248
+ "category": { "type": "string" },
249
+ "hours": { "type": "number" },
250
+ "priority": { "type": "string" }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ },
256
+ "metrics": {
257
+ "type": "object",
258
+ "properties": {
259
+ "filesReviewed": { "type": "integer", "minimum": 0 },
260
+ "linesReviewed": { "type": "integer", "minimum": 0 },
261
+ "totalFindings": { "type": "integer", "minimum": 0 },
262
+ "blockingIssues": { "type": "integer", "minimum": 0 },
263
+ "suggestedFixes": { "type": "integer", "minimum": 0 }
264
+ }
265
+ },
266
+ "metadata": {
267
+ "type": "object",
268
+ "properties": {
269
+ "executionTimeMs": { "type": "integer", "minimum": 0 },
270
+ "toolsUsed": { "type": "array", "items": { "type": "string" } },
271
+ "agentId": { "type": "string", "pattern": "^qe-[a-z][a-z0-9-]*$" },
272
+ "reviewScope": { "type": "string" },
273
+ "reviewType": { "type": "string", "enum": ["full", "incremental", "focused"] }
274
+ }
275
+ },
276
+ "validationResult": {
277
+ "type": "object",
278
+ "properties": {
279
+ "schemaValid": { "type": "boolean" },
280
+ "contentValid": { "type": "boolean" },
281
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 }
282
+ }
283
+ },
284
+ "learningData": {
285
+ "type": "object",
286
+ "properties": {
287
+ "patternsDetected": { "type": "array", "items": { "type": "string" } },
288
+ "reward": { "type": "number", "minimum": 0, "maximum": 1 }
289
+ }
290
+ }
291
+ }
292
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "skillName": "brutal-honesty-review",
3
+ "skillVersion": "1.0.0",
4
+ "requiredTools": [
5
+ "jq"
6
+ ],
7
+ "optionalTools": [],
8
+ "schemaPath": "schemas/output.json",
9
+ "requiredFields": [
10
+ "skillName",
11
+ "status",
12
+ "output",
13
+ "output.summary",
14
+ "output.reviewFindings",
15
+ "output.codeQuality"
16
+ ],
17
+ "requiredNonEmptyFields": [],
18
+ "mustContainTerms": [
19
+ "review",
20
+ "code"
21
+ ],
22
+ "mustNotContainTerms": [
23
+ "TODO",
24
+ "FIXME"
25
+ ],
26
+ "enumValidations": {
27
+ ".status": [
28
+ "success",
29
+ "partial",
30
+ "failed",
31
+ "skipped"
32
+ ]
33
+ }
34
+ }