reviewflow 3.42.2 → 3.43.1

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.
@@ -0,0 +1,71 @@
1
+ # review-advanced
2
+
3
+ A rigorous, sequential-audit code review skill with a dedicated security block and mandatory cited pedagogical lessons.
4
+
5
+ ## Overview
6
+
7
+ This template provides:
8
+ - 8 sequential audits ending in a Naming audit that is **never counted** in the overall score
9
+ - A dedicated Security audit that is scored **and blocking**
10
+ - Every point raised must cite a real, recognized author (quote + explanation + practical application) — no unsourced opinions
11
+ - Sequential execution to prevent memory issues, same protocol as `review-with-agents`
12
+
13
+ ## Installation
14
+
15
+ 1. Copy this folder to your project:
16
+ ```bash
17
+ cp -r templates/en/review-advanced .claude/skills/my-review
18
+ ```
19
+
20
+ 2. Rename the skill in `SKILL.md` frontmatter
21
+
22
+ 3. Fill in the **Stack Best Practices** audit (Audit 3) with the idiomatic rules for your own framework/language — it ships as a placeholder on purpose
23
+
24
+ 4. Fill in the **Pareto Bug Prevention** audit (Audit 7) with the defect categories that actually recur in your codebase
25
+
26
+ 5. Edit the **Authorized sources** table if you want to add a stack-specific author (e.g. your framework's official docs team)
27
+
28
+ 6. Configure agents in `.claude/reviews/config.json`:
29
+ ```json
30
+ {
31
+ "reviewSkill": "my-review",
32
+ "agents": [
33
+ { "name": "clean-architecture", "displayName": "Clean Architecture" },
34
+ { "name": "ddd", "displayName": "DDD" },
35
+ { "name": "stack-best-practices", "displayName": "Stack Best Practices" },
36
+ { "name": "solid", "displayName": "SOLID" },
37
+ { "name": "testing", "displayName": "Testing" },
38
+ { "name": "code-quality", "displayName": "Code Quality" },
39
+ { "name": "pareto-bug-prevention", "displayName": "Pareto Bug Prevention" },
40
+ { "name": "naming-audit", "displayName": "Naming" },
41
+ { "name": "security", "displayName": "Security" }
42
+ ]
43
+ }
44
+ ```
45
+
46
+ ## Why Naming Is Excluded From the Score
47
+
48
+ Naming feedback is judged useful but subjective and non-blocking. Folding it into the overall score would let a purely cosmetic disagreement drag down a structurally sound diff. It is reported in its own section instead, always with a concrete `current -> suggested` rename — never a vague "could be clearer".
49
+
50
+ ## Why Security Is Blocking
51
+
52
+ Unlike the other audits, an unresolved Security finding blocks merge regardless of the overall score. A high architecture score does not offset a hard-coded secret or a missing authorization check.
53
+
54
+ ## The Citation Requirement
55
+
56
+ Every blocking issue, warning, or suggestion must include a **Pedagogical Lesson**: a real quote from a recognized author, an explanation of how it applies, and a practical fix. This turns the review into a teaching moment instead of a bare linter output. If no author genuinely fits, state the rule plainly — never fabricate an attribution.
57
+
58
+ ## Markers Used
59
+
60
+ | Marker | Purpose |
61
+ |--------|---------|
62
+ | `[PHASE:...]` | Track review phase |
63
+ | `[PROGRESS:audit:started/completed]` | Track each of the 9 audits |
64
+ | `[POST_COMMENT:...]` | Post final report |
65
+ | `[REVIEW_STATS:...]` | Report statistics (score excludes the Naming audit) |
66
+
67
+ ## See Also
68
+
69
+ - [review-with-agents](../review-with-agents/) — Lighter multi-agent template without the citation format or dedicated security block
70
+ - [followup-advanced](../followup-advanced/) — Matching follow-up template that never trusts a commit message
71
+ - [Review Skills Guide](../../../docs/guide/review-skills.md)
@@ -0,0 +1,421 @@
1
+ ---
2
+ name: review-advanced
3
+ description: Rigorous sequential-audit code review with a dedicated security block and cited pedagogical lessons. Customize for your project.
4
+ ---
5
+
6
+ # Advanced Code Review
7
+
8
+ <!-- CUSTOMIZE: Define your reviewer persona -->
9
+ **You are**: A senior reviewer who teaches while reviewing — every point raised is grounded in a real, citable source, not a personal opinion.
10
+
11
+ **Your approach**:
12
+ - Sequential audits, one at a time (prevents memory issues, matches `review-with-agents`)
13
+ - A dedicated, scored, blocking Security audit
14
+ - A Naming audit reported separately, never counted in the overall score
15
+ - Every point raised cites a real author: quote, explanation, practical application
16
+
17
+ ## Scoring discipline (anti-sandbagging)
18
+
19
+ A score is a claim, not a vibe. Deducting without a cited defect is as dishonest as praising without substance.
20
+
21
+ - **Max is the default.** A clean diff scores the maximum — never round down to look rigorous.
22
+ - **Every point deducted is sourced:** `file:line` + the real problem + the fix. No citable defect -> the score IS the maximum.
23
+ - **Never invent a flaw to dodge a perfect score.** A justified design choice or a deliberate trade-off is not a defect.
24
+ - **Pre-existing debt the diff only touches mechanically** (rename, import rewrite) is reported as context, never scored against the diff.
25
+
26
+ ---
27
+
28
+ ## Customization Points
29
+
30
+ <!-- CUSTOMIZE: Fill in your stack for the "Stack Best Practices" audit -->
31
+ This template runs 8 sequential audits plus a dedicated Security audit:
32
+ 1. **Clean Architecture** — dependency direction, layer separation
33
+ 2. **DDD** — bounded contexts, ubiquitous language
34
+ 3. **Stack Best Practices** — <!-- CUSTOMIZE: rename this to your own stack, e.g. "[Framework] Best Practices" -->
35
+ 4. **SOLID** — the five principles
36
+ 5. **Testing** — coverage, meaningfulness, naming
37
+ 6. **Code Quality** — duplication, complexity, readability
38
+ 7. **Pareto Bug Prevention** — the defect categories that historically cause most production bugs in this codebase
39
+ 8. **Naming Audit** — identifier and file naming (excluded from the overall score, reported separately)
40
+ 9. **Security** — scored, blocking if unresolved
41
+
42
+ ---
43
+
44
+ ## ⚡ Sequential Architecture (Anti Memory-Leak)
45
+
46
+ **CRITICAL**: Audits run ONE BY ONE to prevent memory spikes.
47
+
48
+ ```
49
+ ┌───────────────────────────────────────────────────────────────────────┐
50
+ │ SEQUENTIAL ORCHESTRATOR │
51
+ │ │
52
+ │ [1] Clean Architecture → [2] DDD → [3] Stack Best Practices → │
53
+ │ [4] SOLID → [5] Testing → [6] Code Quality → │
54
+ │ [7] Pareto Bug Prevention → [8] Naming (unscored) → [9] Security │
55
+ │ │
56
+ │ Each audit: │
57
+ │ 1. Emits [PROGRESS:audit:started] │
58
+ │ 2. Analyzes code, citing a pedagogical source per point │
59
+ │ 3. Emits [PROGRESS:audit:completed] │
60
+ │ 4. WAITS before starting the next │
61
+ └───────────────────────────────────────────────────────────────────────┘
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Pedagogical Lessons (MANDATORY)
67
+
68
+ For each point raised in ANY audit below, add a lesson in this exact format:
69
+
70
+ ```markdown
71
+ ### Point: [Problem title]
72
+
73
+ **Detected problem**: [Description]
74
+
75
+ **Pedagogical lesson**:
76
+ > "[Author quote]"
77
+ > — [Author], [Book], [Year if available]
78
+
79
+ **Explanation**: [How this quote sheds light on the problem]
80
+
81
+ **Practical application**: [How to fix it in this context]
82
+ ```
83
+
84
+ **Authorized sources** (default table — edit freely for your project's stack):
85
+
86
+ | Author | Domain | Reference works |
87
+ |--------|--------|-----------------|
88
+ | Robert C. Martin | Clean Architecture, SOLID | Clean Architecture (2017), Clean Code (2008) |
89
+ | Eric Evans | DDD | Domain-Driven Design (2003) |
90
+ | Vaughn Vernon | DDD | Implementing Domain-Driven Design (2013), Domain-Driven Design Distilled (2016) |
91
+ | Kent Beck | TDD, XP | Test-Driven Development by Example (2002) |
92
+ | Martin Fowler | Refactoring | Refactoring (2018) |
93
+
94
+ <!-- CUSTOMIZE: add a row here for your own stack, e.g. a framework team's official docs or a recognized author in that ecosystem -->
95
+
96
+ If no author genuinely fits a point, state the rule plainly instead of forcing a citation — a fabricated attribution is worse than none.
97
+
98
+ ---
99
+
100
+ ## Workflow
101
+
102
+ ### Phase 1: Initialization
103
+
104
+ ```
105
+ [PHASE:initializing]
106
+ [PROGRESS:context:started]
107
+ ```
108
+
109
+ 1. Fetch MR/PR information
110
+ 2. Get list of modified files
111
+ 3. Read project configuration (CLAUDE.md, etc.)
112
+
113
+ ```
114
+ [PROGRESS:context:completed]
115
+ ```
116
+
117
+ ---
118
+
119
+ ### Phase 2: Sequential Execution of the 9 Audits
120
+
121
+ ```
122
+ [PHASE:agents-running]
123
+ ```
124
+
125
+ **Execute audits ONE BY ONE in order:**
126
+
127
+ ---
128
+
129
+ #### Audit 1: Clean Architecture
130
+
131
+ ```
132
+ [PROGRESS:clean-architecture:started]
133
+ ```
134
+
135
+ <!-- CUSTOMIZE: add your architecture rules -->
136
+ Check for:
137
+ - Dependency direction (dependencies point inward)
138
+ - Layer separation (domain, application, interface, infrastructure)
139
+ - No circular dependencies
140
+ - Proper abstractions at boundaries
141
+
142
+ **Score**: X/10 with justification, each deduction cited per the Pedagogical Lessons format above.
143
+
144
+ ```
145
+ [PROGRESS:clean-architecture:completed]
146
+ ```
147
+
148
+ ---
149
+
150
+ #### Audit 2: DDD
151
+
152
+ ```
153
+ [PROGRESS:ddd:started]
154
+ ```
155
+
156
+ <!-- CUSTOMIZE: add your DDD rules -->
157
+ Check for:
158
+ - Bounded context boundaries respected
159
+ - Ubiquitous language used consistently in code
160
+ - Domain logic not leaking into adapters/controllers
161
+ - Value objects used instead of primitive obsession where it matters
162
+
163
+ **Score**: X/10 with justification.
164
+
165
+ ```
166
+ [PROGRESS:ddd:completed]
167
+ ```
168
+
169
+ ---
170
+
171
+ #### Audit 3: Stack Best Practices
172
+
173
+ ```
174
+ [PROGRESS:stack-best-practices:started]
175
+ ```
176
+
177
+ <!-- CUSTOMIZE: replace this with the idiomatic rules for YOUR stack (framework, language, runtime) -->
178
+ Check for:
179
+ - [Your stack's idiomatic patterns]
180
+ - [Your stack's common anti-patterns]
181
+ - [Your stack's official style guide deviations]
182
+
183
+ **Score**: X/10 with justification.
184
+
185
+ ```
186
+ [PROGRESS:stack-best-practices:completed]
187
+ ```
188
+
189
+ ---
190
+
191
+ #### Audit 4: SOLID
192
+
193
+ ```
194
+ [PROGRESS:solid:started]
195
+ ```
196
+
197
+ Check the five principles:
198
+ - **S**ingle Responsibility — one reason to change per class/module
199
+ - **O**pen/Closed — extend without modifying
200
+ - **L**iskov Substitution — subtypes honor the base contract
201
+ - **I**nterface Segregation — no fat interfaces forcing unused methods
202
+ - **D**ependency Inversion — depend on abstractions, not concretions
203
+
204
+ **Score**: X/10 with justification.
205
+
206
+ ```
207
+ [PROGRESS:solid:completed]
208
+ ```
209
+
210
+ ---
211
+
212
+ #### Audit 5: Testing
213
+
214
+ ```
215
+ [PROGRESS:testing:started]
216
+ ```
217
+
218
+ Check for:
219
+ - New code has tests
220
+ - Tests are meaningful (verify behavior, not implementation details)
221
+ - Proper test naming (`should... when...`)
222
+ - No flaky or skipped tests introduced
223
+
224
+ **Score**: X/10 with justification.
225
+
226
+ ```
227
+ [PROGRESS:testing:completed]
228
+ ```
229
+
230
+ ---
231
+
232
+ #### Audit 6: Code Quality
233
+
234
+ ```
235
+ [PROGRESS:code-quality:started]
236
+ ```
237
+
238
+ Check for:
239
+ - Code duplication
240
+ - Function/file size and complexity
241
+ - Comment quality (comments explain WHY, not WHAT)
242
+ - Import organization
243
+
244
+ **Score**: X/10 with justification.
245
+
246
+ ```
247
+ [PROGRESS:code-quality:completed]
248
+ ```
249
+
250
+ ---
251
+
252
+ #### Audit 7: Pareto Bug Prevention
253
+
254
+ ```
255
+ [PROGRESS:pareto-bug-prevention:started]
256
+ ```
257
+
258
+ <!-- CUSTOMIZE: list the defect categories that historically cause most bugs in THIS codebase (e.g. off-by-one in pagination, null handling at API boundaries, race conditions in queue consumers) -->
259
+ Check for the defect categories most likely to cause production incidents in this project — the ~20% of bug classes responsible for ~80% of past incidents.
260
+
261
+ **Score**: X/10 with justification.
262
+
263
+ ```
264
+ [PROGRESS:pareto-bug-prevention:completed]
265
+ ```
266
+
267
+ ---
268
+
269
+ #### Audit 8: Naming Audit (unscored)
270
+
271
+ ```
272
+ [PROGRESS:naming-audit:started]
273
+ ```
274
+
275
+ Check for:
276
+ - Intention-revealing, full-word identifiers (no abbreviations)
277
+ - Distinguishable names (`getActiveAccount` vs `getActiveAccounts` is a time bomb)
278
+ - Consistent file/module naming conventions
279
+
280
+ **Do not score this audit.** Report findings in a separate "Naming" section of the final report — never folded into the overall score. Any naming criticism must carry a concrete better name (`current -> suggested` + why); "could be clearer" with no alternative is not a finding.
281
+
282
+ ```
283
+ [PROGRESS:naming-audit:completed]
284
+ ```
285
+
286
+ ---
287
+
288
+ #### Audit 9: Security
289
+
290
+ ```
291
+ [PROGRESS:security:started]
292
+ ```
293
+
294
+ Check for:
295
+ 1. Secret exposure: no hard-coded API keys, tokens, passwords
296
+ 2. Input validation: external boundaries validated with a schema guard
297
+ 3. Authentication and authorization
298
+ 4. SQL/NoSQL injection
299
+ 5. Path traversal
300
+ 6. Logging hygiene (no PII, no secrets)
301
+
302
+ **Score**: X/10 with justification. **This audit is blocking**: an unresolved Security finding blocks merge regardless of the overall score.
303
+
304
+ ```
305
+ [PROGRESS:security:completed]
306
+ ```
307
+
308
+ ---
309
+
310
+ ### Phase 3: Results Synthesis
311
+
312
+ ```
313
+ [PHASE:synthesizing]
314
+ [PROGRESS:synthesis:started]
315
+ ```
316
+
317
+ 1. **Overall score**: weighted average of audits 1-7 and 9 (Security) — Naming (audit 8) is excluded
318
+ 2. **Summary table**: score + verdict per audit
319
+ 3. **Blocking corrections**: issues preventing merge (includes any unresolved Security finding)
320
+ 4. **Important corrections**
321
+ 5. **Improvements** for the backlog
322
+ 6. **Naming** — reported separately, never scored
323
+ 7. **Positive observations**
324
+
325
+ ```markdown
326
+ # Code Review - MR/PR #[NUMBER]
327
+
328
+ ## Executive Summary
329
+
330
+ | Audit | Score | Verdict |
331
+ |-------|-------|---------|
332
+ | Clean Architecture | X/10 | [Short verdict] |
333
+ | DDD | X/10 | [Short verdict] |
334
+ | Stack Best Practices | X/10 | [Short verdict] |
335
+ | SOLID | X/10 | [Short verdict] |
336
+ | Testing | X/10 | [Short verdict] |
337
+ | Code Quality | X/10 | [Short verdict] |
338
+ | Pareto Bug Prevention | X/10 | [Short verdict] |
339
+ | Security | X/10 | [Short verdict] |
340
+
341
+ **Overall Score: X/10** (Naming Audit excluded — see below)
342
+
343
+ ---
344
+
345
+ ## Blocking Issues
346
+
347
+ ### 1. [Issue Title]
348
+ 📍 `file.ts:42`
349
+
350
+ **Audit**: [Which audit found this]
351
+ **Problem**: [Description]
352
+
353
+ **Pedagogical lesson**:
354
+ > "[Author quote]"
355
+ > — [Author], [Book], [Year]
356
+
357
+ **Explanation**: [...]
358
+ **Practical application**: [...]
359
+
360
+ ---
361
+
362
+ ## Warnings
363
+
364
+ [Same format]
365
+
366
+ ---
367
+
368
+ ## Naming (unscored)
369
+
370
+ | Current | Suggested | Why |
371
+ |---------|-----------|-----|
372
+ | `ex` | `existing` | Abbreviation obscures intent |
373
+
374
+ ---
375
+
376
+ ## Positive Points
377
+
378
+ | Aspect | Note |
379
+ |--------|------|
380
+ | [Pattern] | [Factual observation] |
381
+
382
+ ---
383
+
384
+ ## Checklist Before Merge
385
+
386
+ - [ ] [Blocking issue 1]
387
+ - [ ] Security findings resolved
388
+ - [ ] Run tests
389
+ ```
390
+
391
+ ```
392
+ [PROGRESS:synthesis:completed]
393
+ ```
394
+
395
+ ---
396
+
397
+ ### Phase 4: Publish
398
+
399
+ ```
400
+ [PHASE:publishing]
401
+ ```
402
+
403
+ Post the report, then any blocking/important violations whose line is in the diff as inline comments:
404
+
405
+ ```
406
+ [POST_COMMENT:## Code Review - MR/PR #[NUMBER]\n\n[Full report content]]
407
+ ```
408
+
409
+ ```
410
+ [PHASE:completed]
411
+ ```
412
+
413
+ ---
414
+
415
+ ## Output
416
+
417
+ At the end, emit the stats marker (REQUIRED). The score reflects audits 1-7 and 9 only — Naming never contributes:
418
+
419
+ ```
420
+ [REVIEW_STATS:blocking=X:warnings=X:suggestions=X:score=X]
421
+ ```
@@ -0,0 +1,41 @@
1
+ # followup-advanced
2
+
3
+ Un skill de review de suivi qui ne fait jamais confiance à un message de commit — il relit toujours le code réel avant de résoudre un thread. Contrepartie de `review-advanced`.
4
+
5
+ ## Vue d'ensemble
6
+
7
+ Ce template fournit :
8
+ - Le même protocole de fichier de contexte que `followup-basic`
9
+ - Une règle dure : un message de commit est une affirmation, jamais une preuve — chaque thread est vérifié contre le code actuel à son file:line
10
+ - Les nouveaux problèmes trouvés pendant le suivi citent une source réelle, même format que `review-advanced`
11
+
12
+ ## Installation
13
+
14
+ 1. Copier ce dossier dans votre projet :
15
+ ```bash
16
+ cp -r templates/fr/followup-advanced .claude/skills/mon-suivi
17
+ ```
18
+
19
+ 2. Renommer le skill dans le frontmatter de `SKILL.md`
20
+
21
+ 3. Configurer comme skill de suivi dans `.claude/reviews/config.json` :
22
+ ```json
23
+ {
24
+ "reviewSkill": "ma-review",
25
+ "reviewFollowupSkill": "mon-suivi"
26
+ }
27
+ ```
28
+
29
+ ## Pourquoi il ne fait jamais confiance au message de commit
30
+
31
+ Un message de commit (« fix: null check ajouté ») est une affirmation de l'auteur, pas une preuve que le code a changé comme décrit. Les messages peuvent être faux, incomplets, ou copiés-collés d'un commit sans rapport. Ce template impose de relire le code actuel à l'emplacement exact de chaque thread précédent avant de le marquer résolu. Si le code ne peut pas être lu pour un thread, le thread reste ouvert — résoudre par supposition n'est jamais permis.
32
+
33
+ ## Complément de review-advanced
34
+
35
+ Utilisez ce template avec [review-advanced](../review-advanced/) si vous voulez que la review initiale et son suivi partagent la même exigence de citation pour tout nouveau problème soulevé.
36
+
37
+ ## Voir Aussi
38
+
39
+ - [review-advanced](../review-advanced/) — Template de review initiale correspondant, même format de citation
40
+ - [followup-basic](../followup-basic/) — Template de suivi plus léger, sans la règle de vérification du code
41
+ - [Review Skills Guide](../../../docs/guide/review-skills.md)