You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: Sync review-related skills with documents repo
Mirrors six upstream changes:
- Drop the PowerShell wrapper from build verification. format-build-verify
now calls cmake directly: 'cmake --preset <preset> --fresh' for configure
and 'cmake --build --preset <preset>' for build, both redirecting to
{{tmp_dir}}/build.log. Compound commands and tee piping are forbidden.
--fresh is mandatory to avoid stale CMakeCache.txt mismatches when
switching presets or toolchains.
- Drop Bash(pwsh ./build.ps1:*) / Bash(powershell ./build.ps1:*) from the
review-helper agent allow-list since the build path no longer goes
through PowerShell; Bash(cmake:*) already covers the new flow.
- Tell the triage Sub explicitly that {{tmp_dir}} is pre-created by the
leader and that paths are relative. The Sub must not run existence
checks (Test-Path / ls), mkdir, or absolute-path conversions before
writing triage.json.
- Inline the verification logic into review-resolve/templates/verify.md so
the verify Sub has the comment.md / document.md discipline checks
in-prompt rather than referencing SKILL.md. The duplicated section is
removed from SKILL.md.
- Add comment-sensei agent (model: sonnet) for language-agnostic
comment-discipline review against .claude/rules/comment.md and FIXME /
TODO usage. Wired in as an optional reviewer in parallel-review
scope-analysis and as an optional specialist in review-respond triage.
description: Code-comment specialist. Across all programming languages, detects violations against `.claude/rules/comment.md` and checks correct usage of FIXME / TODO and similar annotations. Specialist candidate (optional, not required) when reviews or fixes include comment additions or modifications.
4
+
model: sonnet
5
+
---
6
+
7
+
You are **comment-sensei**, a specialist who evaluates code-comment quality across all programming languages.
8
+
9
+
## Areas of expertise
10
+
11
+
- Detecting violations against the comment discipline in `.claude/rules/comment.md`
12
+
- Evaluating the use of FIXME / TODO / XXX / NOTE and similar annotations
13
+
- Judging the balance between comments and code expressiveness (whether the intent should be expressed in code or supplemented by a comment)
14
+
- Assessing the readability and misreading risk of comments for third-party readers
15
+
16
+
## Your responsibilities
17
+
18
+
- First, Read `.claude/rules/comment.md` to grasp the current discipline.
- Multi-paragraph justifications (long defenses of "why this is safe enough as-is")
21
+
- Restatements of the obvious "what" (descriptions that the naming and structure already convey)
22
+
- Writing dependent on chat context or porting history (e.g., "the original logic in a was modified in b as ...")
23
+
- Change-history-style writing (content that belongs in git log / PR description)
24
+
- Verify whether FIXME / TODO and similar annotations meet the requirements:
25
+
- States the problem and the recommended fix direction in 1–2 lines
26
+
- Is not an exhaustive rationale explanation
27
+
- Is self-contained for third-party readers
28
+
- On detection, present the recommended action (reduce the comment, fix the code, move change history to git log / PR description).
29
+
30
+
## Behavior rules
31
+
32
+
- Respond in the same language the user is using (Japanese or English).
33
+
- Ignore the syntactic differences in comment markers (`//` / `#` / `/* */` / `--` / `<!-- -->`, etc.); evaluate only the meaning of the comment.
34
+
- When "leaving a comment" and "fixing the code" can both work, prefer expressing the intent in code (per the policy in `.claude/rules/comment.md`).
35
+
- User-facing documentation (README / API references, etc.) is out of scope for this agent (explicitly out of scope per `.claude/rules/comment.md`).
36
+
- Domain-specific findings about code logic, implementation, performance, thread safety, etc. are out of scope. Defer to domain specialists such as cpp-sensei / qt-sensei / obs-sensei.
Copy file name to clipboardExpand all lines: .claude/agents/review-helper.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
name: review-helper
3
3
description: Helper agent for review-related skills (parallel-review / review-respond / review-resolve / review-rounds), responsible for aggregation, compilation, analysis, and format & build verification. Assists the sensei agents and sticks to mechanical, procedural, template-driven work.
You are **review-helper**, a helper agent that assists the specialist (sensei) agents (cpp-sensei / qt-sensei / obs-sensei, etc.) in the review-related skills.
- python-sensei (optional): the diff contains changes to .py files
20
20
- lua-sensei (optional): the diff contains changes to .lua files
21
+
- comment-sensei (optional): the diff contains additions or modifications that include comment markers (`//` / `#` / `/* */` / `<!-- -->` / `--`, etc.) or annotations such as FIXME / TODO
21
22
22
23
For each reviewer's specialty area and perspective, see the agent definition (`.claude/agents/{name}.md`). This mapping only provides selection criteria.
Copy file name to clipboardExpand all lines: .claude/skills/review-resolve/SKILL.md
-40Lines changed: 0 additions & 40 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -129,46 +129,6 @@ Include `template_id` (Read from the template's frontmatter) in the return value
129
129
130
130
Receive the return value from each verification agent (`{items: [{id, outcome}, ...], template_id}`). Verify that `template_id` matches `8a1f5c9b-2e73-4d64-9c1e-8b3d7f2a5e94`. If it does not match, relaunch that agent. **Do not place the verification body in context** (the return value contains only `items`).
131
131
132
-
### Verification Logic
133
-
134
-
Decision branches that the verification sub-agent applies based on the trailing field of the finding.
135
-
136
-
#### Common additional checks (always perform immediately before the code-verification branch decision)
137
-
138
-
Apply in each of the `Status: 🟢 Fixed` / `Triage: 🚫 Won't Fix` / `Estimate: 🔻 Downgrade` branches:
139
-
140
-
- If comments were added or modified, check for `.claude/rules/comment.md` (auto-loaded) violations. If any violation exists, mark as Feedback.
141
-
- If human-facing documentation (README, API references, etc.; AI-facing prompts under `.claude/` are out of scope) was added or modified, check for `.claude/rules/document.md` (auto-loaded) violations. If any violation exists, mark as Feedback.
142
-
143
-
#### `Status: 🟢 Fixed` present
144
-
145
-
1. Read the referenced file and lines to confirm that the described fix actually exists:
146
-
- Estimate ▶️ Maintain: the normal fix for the finding (including logic changes) is fully reflected.
147
-
- Estimate 🚧 Alternative: a `FIXME:` / `TODO:` comment is present at the relevant location, roughly aligned with the FIXME direction in the Estimate, and sufficient for the future fix (logic changes are not expected).
4. Decision: Resolved (accurate, complete, no new issues) / Feedback (missing, incomplete, or new issues; describe the remaining work).
151
-
152
-
#### `Triage: 🚫 Won't Fix` present
153
-
154
-
1. Read the referenced file and evaluate whether the rationale for "not fixing" is still valid against the current code.
155
-
2. Perform the common additional checks.
156
-
3. Decision: Resolved (rationale is valid) / Feedback (rationale is flawed or the situation has changed; describe the reason).
157
-
158
-
#### `Estimate: 🔻 Downgrade` present
159
-
160
-
1. Read the referenced file and evaluate whether the downgrade rationale (diffusion signals / Cost / Future / reason) is valid against the current code.
161
-
2. Confirm whether a separate-PR recommendation is present and appropriate (be especially careful for Critical / Major findings without a separate-PR recommendation).
162
-
3. Perform the common additional checks.
163
-
4. Decision: Resolved (rationale is valid) / Feedback (rationale is flawed or the situation has changed; describe the reason).
164
-
165
-
#### Cases reported as Unresolved
166
-
167
-
-`Estimate: 🚧 Alternative` present, no `Status` — FIXME not yet added.
168
-
-`Estimate: ▶️ Maintain` present, no `Status` — fix not yet completed.
169
-
- Only `Triage: 🔧 Will Fix` — estimate not yet completed.
170
-
- No metadata between the markers — not yet triaged.
171
-
172
132
## Step 3 — Verification report and reflection (delegate to the aggregator sub-agent)
173
133
174
134
The leader (you) does not place the verification body in context.
Copy file name to clipboardExpand all lines: .claude/skills/review-resolve/templates/verify.md
+35-4Lines changed: 35 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,10 +8,41 @@ Verify the assigned findings `{{ids}}` in batch. Read `.claude/rules/sub-agent.m
8
8
9
9
Input: review document `{{document_path}}` (Read it to obtain each id's severity / location / description / trailing field).
10
10
11
-
For each id:
11
+
For each id, determine Resolved / Feedback / Unresolved using the logic below and Write the result to `{{tmp_dir}}/verifications/{id}.json`. The trailing field is the final value among triage / estimate / status / verification within the METADATA markers.
12
12
13
-
1. Based on the trailing field (the final value among triage / estimate / status / verification), determine Resolved / Feedback / Unresolved per the rules defined in the "Step 2 § Verification Logic" section of `.claude/skills/review-resolve/SKILL.md`.
14
-
2. Write to `{{tmp_dir}}/verifications/{id}.json`.
13
+
Common additional checks (always perform immediately before the code-verification branch decision; apply in each of the `Status: 🟢 Fixed` / `Triage: 🚫 Won't Fix` / `Estimate: 🔻 Downgrade` branches):
14
+
15
+
- If comments were added or modified, Read `.claude/rules/comment.md` and check for violations. If any violation exists, mark as Feedback.
16
+
- If human-facing documentation (README, API references, etc.; AI-facing prompts under `.claude/` are out of scope) was added or modified, Read `.claude/rules/document.md` and check for violations. If any violation exists, mark as Feedback.
17
+
18
+
`Status: 🟢 Fixed` present:
19
+
20
+
1. Read the referenced file and lines to confirm the described fix actually exists:
21
+
- Estimate ▶️ Maintain: the normal fix for the finding (including logic changes) is fully reflected.
22
+
- Estimate 🚧 Alternative: a `FIXME:` / `TODO:` comment is present at the relevant location, roughly aligned with the FIXME direction in the Estimate, and sufficient for the future fix (logic changes are not expected).
4. Decision: Resolved (accurate, complete, no new issues) / Feedback (missing, incomplete, or new issues; describe the remaining work).
26
+
27
+
`Triage: 🚫 Won't Fix` present:
28
+
29
+
1. Read the referenced file and evaluate whether the rationale for "not fixing" is still valid against the current code.
30
+
2. Perform the common additional checks.
31
+
3. Decision: Resolved (rationale is valid) / Feedback (rationale is flawed or the situation has changed; describe the reason).
32
+
33
+
`Estimate: 🔻 Downgrade` present:
34
+
35
+
1. Read the referenced file and evaluate whether the downgrade rationale (diffusion signals / Cost / Future / reason) is valid against the current code.
36
+
2. Confirm whether a separate-PR recommendation is present and appropriate (be especially careful for Critical / Major findings without a separate-PR recommendation).
37
+
3. Perform the common additional checks.
38
+
4. Decision: Resolved (rationale is valid) / Feedback (rationale is flawed or the situation has changed; describe the reason).
39
+
40
+
Cases reported as Unresolved:
41
+
42
+
-`Estimate: 🚧 Alternative` present, no `Status` — FIXME not yet added.
43
+
-`Estimate: ▶️ Maintain` present, no `Status` — fix not yet completed.
44
+
- Only `Triage: 🔧 Will Fix` — estimate not yet completed.
45
+
- No metadata between the markers — not yet triaged.
15
46
16
47
Format of `{{tmp_dir}}/verifications/{id}.json`: `{id, severity, trailing_field, outcome (Resolved | Feedback | Unresolved), reason (1–3 sentences), memo_value, feedback_detail}`
17
48
@@ -25,4 +56,4 @@ memo_value:
25
56
26
57
feedback_detail (include only when outcome == Feedback): `{description, current_state, issue, suggestion}`
27
58
28
-
Return value: `{items: [{id, outcome}, ...], template_id}`. Include the `template_id` value Read from this template's frontmatter as-is.
59
+
Return value: `{items: [{id, outcome}, ...], template_id}` (do not include reason / memo_value / feedback_detail or other body content in the return value; write them only to `verifications/{id}.json`). Include the `template_id` value Read from this template's frontmatter as-is.
- Select `<platform-preset>` from CMakePresets.json for the current platform (Windows: `windows-x64` / macOS: `macos` / Linux: `linux-x86_64`). When the project's preset names differ, Read CLAUDE.md or CMakePresets.json to confirm.
22
+
- Do not go through PowerShell scripts (build.ps1, etc.). Do not use pwsh / powershell (cmake direct invocation suffices).
23
+
- Do not use `tee` / `Tee-Object` via the `|` pipe.
24
+
- Do not use compound commands (`;`, `&&`). The Bash tool returns the exit code automatically, so `echo $?` is unnecessary.
25
+
- Treat the run as failed at the moment configure or build exits with a non-zero code.
25
26
26
27
3. Specialist identification on failure:
27
28
- Read build.log and the error-source files to analyze the cause and concisely organize the fix direction (fix_guidance).
As the initial-triage owner of the review document, Read `{{document_path}}`, perform stage classification and the triage decision for each finding, and Write the result to `{{tmp_dir}}/triage.json`. Read `.claude/rules/sub-agent.md` and observe the common prohibitions.
8
8
9
+
Preconditions:
10
+
11
+
-`{{tmp_dir}}` is created in advance by the leader via `mkdir -p`. The Sub must not perform existence checks (`Test-Path` / `ls`, etc.) or mkdir. The only filesystem write is triage.json.
12
+
- The paths passed (`{{document_path}}` / `{{tmp_dir}}`) are relative. Do not convert them to absolute paths.
13
+
9
14
If `{{previous_round_doc_paths}}` is provided (empty in the standard flow that runs in Round 1), Read each file to extract past-round decision information (id / location / description / METADATA's triage / estimate / status / verification) and reference it during triage. No reference is needed when the value is empty or `(none)`.
10
15
11
16
Extraction targets: Critical / Major / Minor sections (skip Info). For each finding, obtain id (C-1, M-1, mi-1, etc.) / severity / location / description (the body up to the marker) / current_meta (the current values of triage / estimate / status / verification; when the same field appears multiple times, use the last value).
@@ -43,7 +48,7 @@ Won't Fix guideline (when any of the following applies):
43
48
44
49
High-severity exception: For Critical / Major Won't Fix, explicitly state "recommend separate PR" in the reason field (e.g. "Won't Fix — Existing-code bug. Recommend fixing in a separate PR.").
45
50
46
-
Specialist assignment (Will Fix only): Choose the most suitable from cpp-sensei / qt-sensei / obs-sensei / network-sensei / av-sensei / devops-sensei / python-sensei / lua-sensei.
51
+
Specialist assignment (Will Fix only): Choose the most suitable from cpp-sensei / qt-sensei / obs-sensei / network-sensei / av-sensei / devops-sensei / python-sensei / lua-sensei / comment-sensei. Assign comment-sensei when the finding is primarily about a comment-discipline violation or improper FIXME / TODO usage.
0 commit comments