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.
- package/CHANGELOG.md +20 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/modules/platform-integration/usecases/guardDiffSize.usecase.d.ts.map +1 -1
- package/dist/modules/platform-integration/usecases/guardDiffSize.usecase.js +6 -3
- package/dist/modules/platform-integration/usecases/guardDiffSize.usecase.js.map +1 -1
- package/dist/tests/units/dashboard/dashboardLoadingRace.test.d.ts +9 -0
- package/dist/tests/units/dashboard/dashboardLoadingRace.test.d.ts.map +1 -0
- package/dist/tests/units/dashboard/dashboardLoadingRace.test.js +59 -0
- package/dist/tests/units/dashboard/dashboardLoadingRace.test.js.map +1 -0
- package/dist/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.js +4 -3
- package/dist/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.js.map +1 -1
- package/package.json +1 -1
- package/templates/en/followup-advanced/README.md +51 -0
- package/templates/en/followup-advanced/SKILL.md +389 -0
- package/templates/en/review-advanced/README.md +71 -0
- package/templates/en/review-advanced/SKILL.md +421 -0
- package/templates/fr/followup-advanced/README.md +41 -0
- package/templates/fr/followup-advanced/SKILL.md +389 -0
- package/templates/fr/review-advanced/README.md +62 -0
- package/templates/fr/review-advanced/SKILL.md +421 -0
|
@@ -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)
|