@mrciphersmith/keryx 0.3.119 → 0.3.121
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/dist/cli.js +9730 -5314
- package/dist/core.js +1162 -812
- package/package.json +1 -1
- package/src/gdskills/bundled/install-manifest.json +2 -1
- package/src/gdskills/bundled/rules/core/session-plan-bridge.mdc +1 -1
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +4 -4
- package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +47 -59
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.detail.md +70 -0
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +42 -79
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/orchestrator-prompt.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +12 -18
- package/src/gdskills/bundled/skills/orchestration/task-implementer/input-contract.schema.json +25 -2
- package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json +19 -0
- package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +6 -11
- package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +6 -11
- package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +6 -11
- package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +5 -10
- package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +5 -10
- package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +8 -17
- package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +8 -15
- package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +6 -11
- package/src/gdskills/bundled/skills/review/review-jev-comments/SKILL.md +4 -9
- package/src/gdskills/bundled/skills/review/review-jev-contract/SKILL.md +4 -9
- package/src/gdskills/bundled/skills/review/review-jev-docs/SKILL.md +4 -9
- package/src/gdskills/bundled/skills/review/review-jev-risk/SKILL.md +4 -9
- package/src/gdskills/bundled/skills/review/review-jev-rules/SKILL.md +4 -9
- package/src/gdskills/bundled/skills/review/review-jev-scenarios/SKILL.md +4 -9
- package/src/gdskills/bundled/skills/review/review-layout/SKILL.md +8 -9
- package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +7 -12
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.detail.md +39 -2
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +49 -92
- package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-finding.schema.json +13 -0
- package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-input.schema.json +38 -0
- package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +6 -11
- package/src/gdskills/bundled/skills/review/review-pr-contract/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +8 -10
- package/src/gdskills/bundled/skills/review/review-premise/SKILL.md +180 -0
- package/src/gdskills/bundled/skills/review/review-regression/SKILL.md +4 -4
- package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +6 -11
- package/src/gdskills/bundled/skills/review/review-style/SKILL.md +6 -11
- package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +2 -2
- package/src/gdskills/contracts/review-finding.schema.json +88 -0
|
@@ -98,11 +98,13 @@ For a description-based task, omit `issue_number` and issue references in commit
|
|
|
98
98
|
|
|
99
99
|
```
|
|
100
100
|
FIX_CONTEXT:
|
|
101
|
-
review_feedback: structured findings from reviewer (file, line, severity, message)
|
|
101
|
+
review_feedback: structured findings from reviewer (id, file, line, severity, message, suggested_fix); the one statement of the premise fields (flow 459): `premise_verdict` on each item review-premise judged, and `premise_answer: "uphold"` on a held one (challenged, owner-decision) the operator upheld; an item with a held `premise_verdict` and no `premise_answer: "uphold"` is refused, not fixed
|
|
102
102
|
original_task_ids: the tasks that introduced the findings (array)
|
|
103
103
|
iteration: fix iteration number, 1..3 — the same repair bound as 5.4
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
+
**A reviewer's `suggested_fix` is a hypothesis, not an instruction.** Per finding: reproduce it first — a test or probe that fails on the current head (red); check the suggested fix against the plan's state × event matrix (`plan.md`, when it has one) and every caller the change reaches; then fix and show the probe green. A finding that does not reproduce is reported, not fixed. Record each divergence in `notes`: `suggested_fix diverged: <id> — <what you did instead and why>` or `did not reproduce: <id>`.
|
|
107
|
+
|
|
106
108
|
**1.4 Validate the request against the contract:**
|
|
107
109
|
|
|
108
110
|
Write the request you were handed to a file and run:
|
|
@@ -143,7 +145,7 @@ git -C "<codebase_path>" rev-parse --abbrev-ref HEAD # must equal <branch>
|
|
|
143
145
|
|
|
144
146
|
**1.5 TDD Check (if `test_case_specs` is present):**
|
|
145
147
|
|
|
146
|
-
If the task object contains `test_case_specs` (provided by `tests-creator
|
|
148
|
+
If the task object contains `test_case_specs` (provided by `tests-creator`, or in a fix round the reviewers' red probes):
|
|
147
149
|
1. Read each test file listed in `test_case_specs.test_files`
|
|
148
150
|
2. Run the tests using `test_case_specs.run_command` — confirm they FAIL
|
|
149
151
|
3. If tests pass already → report `DONE_WITH_CONCERNS` (tests may not be testing the right thing)
|
|
@@ -427,6 +429,7 @@ Write full JSON to `<JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json`:
|
|
|
427
429
|
"skill_drift": "<none | stale: <module>/<skill> — <what diverged> | missing: <module> should have a project-skill>",
|
|
428
430
|
"noticed_not_touched": [{ "what": "<problem>", "where": "<path|symbol>" }],
|
|
429
431
|
"assumptions": ["<what you assumed where the task did not say>"],
|
|
432
|
+
"behavior_changes": [{ "description": "<what now behaves differently>", "user_visible": true, "needs_operator": true, "alternatives": ["<option you did not take>"] }],
|
|
430
433
|
"not_touched": [{ "path": "src/path/file.ts", "reason": "<why left alone>" }],
|
|
431
434
|
"notes": "<any warnings, blockers, or additional context>"
|
|
432
435
|
}
|
|
@@ -434,23 +437,14 @@ Write full JSON to `<JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json`:
|
|
|
434
437
|
|
|
435
438
|
Set `skill_drift` from Phase 2.0b: if the project-skill you used was not `fresh`, or the code you wrote diverged from what a skill documents, name the skill and the divergence. The orchestrator uses this to decide whether to trigger `skills learn` (do NOT run `learn` yourself — it is a mutating step the orchestrator dispatches; see `rules/core/skill-lifecycle.mdc`).
|
|
436
439
|
|
|
437
|
-
|
|
438
|
-
reader to skim all three. Omit one rather than pad it. The trio is adapted (MIT;
|
|
439
|
-
see THIRD_PARTY_NOTICES.md) as contract fields rather than a free-text template; the bars below are ours.
|
|
440
|
+
Four of those fields have a bar, and a field that collects noise trains the reader to skim all of them. Omit one rather than pad it. The first three are adapted (MIT; see THIRD_PARTY_NOTICES.md) as contract fields rather than a free-text template; the bars below are ours.
|
|
440
441
|
|
|
441
|
-
- `assumptions` — what you assumed where the task was silent AND acted on. If
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
- `
|
|
445
|
-
follow-up task could be written from it alone, with `where` it lives. Not a
|
|
446
|
-
dumping ground for every smell seen in passing, and not style opinion.
|
|
447
|
-
- `not_touched` — of the files this task was aimed at (`target_files`), the ones
|
|
448
|
-
absent from `files_modified`/`files_created`/`files_deleted`, each with why.
|
|
449
|
-
It answers that one question and no other: a reader subtracts those lists and
|
|
450
|
-
this one from `target_files`, and flags the remainder as an unexplained omission.
|
|
442
|
+
- `assumptions` — what you assumed where the task was silent AND acted on. If the assumption being wrong would not change a line you wrote, it is a hedge, not an assumption; leave it out.
|
|
443
|
+
- `noticed_not_touched` — a problem in code you actually read, stated so a follow-up task could be written from it alone, with `where` it lives. Not a dumping ground for every smell seen in passing, and not style opinion.
|
|
444
|
+
- `not_touched` — of the files this task was aimed at (`target_files`), the ones absent from `files_modified`/`files_created`/`files_deleted`, each with why. It answers that one question and no other: a reader subtracts those lists and this one from `target_files`, and flags the remainder as an unexplained omission.
|
|
445
|
+
- `behavior_changes` — behavior you chose where the task and the plan's state × event matrix did not decide it. **Every user-visible tradeoff goes here with `user_visible: true, needs_operator: true`** and the `alternatives` you rejected: message wording, where an error appears, which state resets or survives a switch, retry or reload. Never only in `assumptions`, `notes` or a journal line — the orchestrator asks the operator before it accepts a result carrying one, and a tradeoff it cannot see is accepted unasked.
|
|
451
446
|
|
|
452
|
-
Then check the shape and record the file — two commands, both of which refuse
|
|
453
|
-
rather than warn:
|
|
447
|
+
Then check the shape and record the file — two commands, both of which refuse rather than warn:
|
|
454
448
|
|
|
455
449
|
```bash
|
|
456
450
|
keryx skills contracts validate <JOBS_ROOT>/<JOB_NAME>/results/<task_id>.json \
|
|
@@ -489,7 +483,7 @@ The step's own status is the orchestrator's to write (`keryx job step <JOB_NAME>
|
|
|
489
483
|
|
|
490
484
|
Return a compact STATUS response following `rules/core/subagent-status-protocol.md`.
|
|
491
485
|
**Do NOT include the full JSON block inline** — the orchestrator reads the result file when it needs details.
|
|
492
|
-
The inline response must contain only: STATUS line + Completed bullets + Files changed + Verification summary.
|
|
486
|
+
The inline response must contain only: STATUS line + Completed bullets + Files changed + Verification summary + a `## Behavior changes` list (each entry's description, `user_visible`, `needs_operator`, alternatives) whenever `behavior_changes` is non-empty — a flow dispatch writes no result file, so this list is the only copy the orchestrator reads. Any `needs_operator: true` entry makes the status at best `DONE_WITH_CONCERNS`, never `DONE`.
|
|
493
487
|
|
|
494
488
|
**Status classification:**
|
|
495
489
|
- `success` → `STATUS: DONE`, or `DONE_WITH_CONCERNS` when work that cleared the
|
package/src/gdskills/bundled/skills/orchestration/task-implementer/input-contract.schema.json
CHANGED
|
@@ -149,6 +149,14 @@
|
|
|
149
149
|
"additionalProperties": false,
|
|
150
150
|
"required": ["file", "severity", "message"],
|
|
151
151
|
"properties": {
|
|
152
|
+
"id": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"description": "The finding's id in the review package, cited back in the result's `notes` when the fix diverged from `suggested_fix` or the finding did not reproduce"
|
|
155
|
+
},
|
|
156
|
+
"suggested_fix": {
|
|
157
|
+
"type": "string",
|
|
158
|
+
"description": "The reviewer's proposed fix. A hypothesis, not an instruction: SKILL.md 1.3 reproduces the finding first and checks this against the plan's state × event matrix before applying anything"
|
|
159
|
+
},
|
|
152
160
|
"file": {
|
|
153
161
|
"type": "string",
|
|
154
162
|
"description": "File path where the issue was found"
|
|
@@ -170,10 +178,25 @@
|
|
|
170
178
|
"type": "string",
|
|
171
179
|
"description": "Which review skill found this",
|
|
172
180
|
"examples": ["code-ai-review", "code-learned-review", "code-style-review"]
|
|
181
|
+
},
|
|
182
|
+
"premise_verdict": {
|
|
183
|
+
"type": "string",
|
|
184
|
+
"enum": ["upheld", "downgraded", "challenged", "owner-decision"],
|
|
185
|
+
"description": "What review-premise found, when it judged this finding (flow 459). `challenged` and `owner-decision` HOLD the finding: such an item is valid only with `premise_answer: uphold`, so a held finding that reached a fixer without the operator's answer fails this contract instead of being fixed."
|
|
186
|
+
},
|
|
187
|
+
"premise_answer": {
|
|
188
|
+
"type": "string",
|
|
189
|
+
"enum": ["uphold"],
|
|
190
|
+
"description": "The operator's answer to a held finding, recorded with `keryx review decide-premise` (or the `review_decide_premise` card). Only `uphold` returns a finding to the fix; a dismissed one is never dispatched."
|
|
173
191
|
}
|
|
174
|
-
}
|
|
192
|
+
},
|
|
193
|
+
"if": {
|
|
194
|
+
"required": ["premise_verdict"],
|
|
195
|
+
"properties": { "premise_verdict": { "enum": ["challenged", "owner-decision"] } }
|
|
196
|
+
},
|
|
197
|
+
"then": { "required": ["premise_answer"] }
|
|
175
198
|
},
|
|
176
|
-
"description": "Structured findings from review skills"
|
|
199
|
+
"description": "Structured findings from review skills, to fix. Never carries a finding held by review-premise (verdict challenged or owner-decision) until the operator upholds it with `keryx review decide-premise`; the caller filters held findings out before dispatch, and an item that names a held verdict without `premise_answer: uphold` is refused by this contract."
|
|
177
200
|
},
|
|
178
201
|
"original_task_ids": {
|
|
179
202
|
"type": "array",
|
package/src/gdskills/bundled/skills/orchestration/task-implementer/output-contract.schema.json
CHANGED
|
@@ -65,6 +65,25 @@
|
|
|
65
65
|
"description": "What was assumed where the task did not say. A wrong assumption is the usual cause of a rejected result, so these are the first thing a reviewer should check. Read only by a human — nothing in the result or the request can confirm an assumption, so this is deliberately an array of sentences rather than a structure that would imply a check nobody performs.",
|
|
66
66
|
"items": { "type": "string", "minLength": 1 }
|
|
67
67
|
},
|
|
68
|
+
"behavior_changes": {
|
|
69
|
+
"type": "array",
|
|
70
|
+
"description": "Behavior the implementer chose where the task and the plan's state × event matrix did not decide it. Every user-visible tradeoff (message wording, error placement, which state resets or survives) is listed with `user_visible: true, needs_operator: true`; flow-orchestrator Phase 2 asks the operator before accepting a result carrying such an entry, so a tradeoff recorded only in `assumptions` or `notes` is one nobody decided.",
|
|
71
|
+
"items": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"required": ["description", "user_visible", "needs_operator"],
|
|
75
|
+
"properties": {
|
|
76
|
+
"description": { "type": "string", "minLength": 1, "description": "What now behaves differently, stated as the user or caller would observe it" },
|
|
77
|
+
"user_visible": { "type": "boolean", "description": "A user of the product can see the difference" },
|
|
78
|
+
"needs_operator": { "type": "boolean", "description": "The choice is a product decision the operator must confirm before the result is accepted" },
|
|
79
|
+
"alternatives": {
|
|
80
|
+
"type": "array",
|
|
81
|
+
"description": "The options not taken, so the operator chooses between real alternatives rather than approving the one shown",
|
|
82
|
+
"items": { "type": "string", "minLength": 1 }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
68
87
|
"not_touched": {
|
|
69
88
|
"type": "array",
|
|
70
89
|
"description": "Files a reader would expect in `files_modified` and will not find there, each with the reason. `path` is a separate field because this is machine-checkable: a reader holding the request can subtract `files_modified`/`files_created`/`files_deleted` and this list from `task.target_files` and flag whatever is left as an unexplained omission.",
|
|
@@ -26,7 +26,7 @@ license: "MIT"
|
|
|
26
26
|
|
|
27
27
|
Specialized reviewer for **architectural patterns and structural decisions**.
|
|
28
28
|
Reviews only changes introduced in the current branch (merge-base to HEAD).
|
|
29
|
-
Focuses exclusively on verifiable structural violations — not style opinions or hypothetical concerns. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs.
|
|
29
|
+
Focuses exclusively on verifiable structural violations — not style opinions or hypothetical concerns. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs. It runs no command unless its payload's `allowed_tools` says `run-tests`, except the read-only `git log`, `git blame` and `git show` where its host gives a read-only child git (keryx shell does not: there the payload supplies the history).
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
@@ -66,7 +66,7 @@ See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
|
66
66
|
Review scope: **changes introduced in the current branch since merge-base only**.
|
|
67
67
|
Do not review pre-existing architectural problems unless they are directly touched by the diff.
|
|
68
68
|
|
|
69
|
-
**Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text
|
|
69
|
+
**Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text and never rebuild the diff. A choice's history (law 4) is read with `git log`, `git blame` and `git show` only where the host gives a read-only child git; on keryx shell a read-only child has no shell and no git tool, so read the `git log -L`/`git blame` excerpts the payload supplies, or say the history was not read. Only with none supplied, collect it:
|
|
70
70
|
```bash
|
|
71
71
|
git diff --name-status "${BASE_SHA}" && git diff "${BASE_SHA}" && git ls-files --others --exclude-standard
|
|
72
72
|
# explicit range: <FROM_SHA>..<TO_SHA> in place of "${BASE_SHA}"
|
|
@@ -269,15 +269,10 @@ if the concern is purely readability it belongs to `review-style`.
|
|
|
269
269
|
|
|
270
270
|
### Shared laws (every reviewer)
|
|
271
271
|
|
|
272
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
277
|
-
pattern because it is often wrong elsewhere.
|
|
278
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
279
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
280
|
-
finding hide the other nine problems.
|
|
272
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
273
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
274
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
275
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
281
276
|
|
|
282
277
|
Severity levels are defined once, in `review-orchestrator/SKILL.md` →
|
|
283
278
|
**Severity (canonical)**. This reviewer does not restate them: `blocker` is the
|
|
@@ -26,7 +26,7 @@ license: "MIT"
|
|
|
26
26
|
|
|
27
27
|
Focused backend reviewer covering NestJS patterns, REST API design, database access patterns,
|
|
28
28
|
and TypeScript correctness for service-layer code. This skill does NOT duplicate security or
|
|
29
|
-
performance checks — those belong to `review-security-code` and `review-performance`. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs.
|
|
29
|
+
performance checks — those belong to `review-security-code` and `review-performance`. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs. It runs no command unless its payload's `allowed_tools` says `run-tests`, except the read-only `git log`, `git blame` and `git show` where its host gives a read-only child git (keryx shell does not: there the payload supplies the history).
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
@@ -65,7 +65,7 @@ Run that script to determine `BASE_SHA` before collecting the diff.
|
|
|
65
65
|
|
|
66
66
|
Only review files changed in scope. Do not comment on legacy code outside the diff.
|
|
67
67
|
|
|
68
|
-
**Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text
|
|
68
|
+
**Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text and never rebuild the diff. A choice's history (law 4) is read with `git log`, `git blame` and `git show` only where the host gives a read-only child git; on keryx shell a read-only child has no shell and no git tool, so read the `git log -L`/`git blame` excerpts the payload supplies, or say the history was not read. Only with none supplied, collect it:
|
|
69
69
|
```bash
|
|
70
70
|
git diff --name-status "${BASE_SHA}" && git diff "${BASE_SHA}" && git ls-files --others --exclude-standard
|
|
71
71
|
# explicit range: <FROM_SHA>..<TO_SHA> in place of "${BASE_SHA}"
|
|
@@ -187,15 +187,10 @@ git diff --name-status "${BASE_SHA}" && git diff "${BASE_SHA}" && git ls-files -
|
|
|
187
187
|
|
|
188
188
|
### Shared laws (every reviewer)
|
|
189
189
|
|
|
190
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
195
|
-
pattern because it is often wrong elsewhere.
|
|
196
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
197
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
198
|
-
finding hide the other nine problems.
|
|
190
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
191
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
192
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
193
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
199
194
|
|
|
200
195
|
Severity levels are defined once, in `review-orchestrator/SKILL.md` →
|
|
201
196
|
**Severity (canonical)**. This reviewer does not restate them: `blocker` is the
|
|
@@ -27,7 +27,7 @@ license: "MIT"
|
|
|
27
27
|
# Review: Clean Code + SOLID
|
|
28
28
|
|
|
29
29
|
Specialized reviewer for **Clean Code principles** (Robert C. Martin) and **SOLID** at the
|
|
30
|
-
function and class level. Focuses on code in the current branch diff only. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs.
|
|
30
|
+
function and class level. Focuses on code in the current branch diff only. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs. It runs no command unless its payload's `allowed_tools` says `run-tests`, except the read-only `git log`, `git blame` and `git show` where its host gives a read-only child git (keryx shell does not: there the payload supplies the history).
|
|
31
31
|
|
|
32
32
|
The goal is not stylistic nitpicking — every finding here points to a concrete
|
|
33
33
|
maintainability, readability, or extensibility problem that will cause friction
|
|
@@ -71,7 +71,7 @@ Review scope: **only code introduced or modified in this branch since merge-base
|
|
|
71
71
|
Pre-existing problems in unchanged lines are out of scope unless a change directly
|
|
72
72
|
worsens them.
|
|
73
73
|
|
|
74
|
-
**Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text
|
|
74
|
+
**Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text and never rebuild the diff. A choice's history (law 4) is read with `git log`, `git blame` and `git show` only where the host gives a read-only child git; on keryx shell a read-only child has no shell and no git tool, so read the `git log -L`/`git blame` excerpts the payload supplies, or say the history was not read. Only with none supplied, collect it:
|
|
75
75
|
```bash
|
|
76
76
|
git diff --name-status "${BASE_SHA}" && git diff "${BASE_SHA}" && git ls-files --others --exclude-standard
|
|
77
77
|
# explicit range: <FROM_SHA>..<TO_SHA> in place of "${BASE_SHA}"
|
|
@@ -83,15 +83,10 @@ git diff --name-status "${BASE_SHA}" && git diff "${BASE_SHA}" && git ls-files -
|
|
|
83
83
|
|
|
84
84
|
### Shared laws (every reviewer)
|
|
85
85
|
|
|
86
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
91
|
-
pattern because it is often wrong elsewhere.
|
|
92
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
93
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
94
|
-
finding hide the other nine problems.
|
|
86
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
87
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
88
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
89
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
95
90
|
|
|
96
91
|
Severity levels are defined once, in `review-orchestrator/SKILL.md` →
|
|
97
92
|
**Severity (canonical)**. This reviewer does not restate them: `blocker` is the
|
|
@@ -24,7 +24,7 @@ license: "MIT"
|
|
|
24
24
|
# Review — Core Boundaries
|
|
25
25
|
|
|
26
26
|
Reviewer for shared infrastructure modules. A core module should provide stable foundations
|
|
27
|
-
used by feature modules; it should not accumulate feature-specific behaviour. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs.
|
|
27
|
+
used by feature modules; it should not accumulate feature-specific behaviour. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs. It runs no command unless its payload's `allowed_tools` says `run-tests`, except the read-only `git log`, `git blame` and `git show` where its host gives a read-only child git (keryx shell does not: there the payload supplies the history).
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
@@ -58,15 +58,10 @@ If a more specific module reviewer also applies, run both.
|
|
|
58
58
|
|
|
59
59
|
### Shared laws (every reviewer)
|
|
60
60
|
|
|
61
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
66
|
-
pattern because it is often wrong elsewhere.
|
|
67
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
68
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
69
|
-
finding hide the other nine problems.
|
|
61
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
62
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
63
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
64
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
70
65
|
|
|
71
66
|
Severity levels are defined once, in `review-orchestrator/SKILL.md` →
|
|
72
67
|
**Severity (canonical)**. This reviewer does not restate them: `blocker` is the
|
|
@@ -24,7 +24,7 @@ license: "MIT"
|
|
|
24
24
|
# Review — Flow Graph Abstractions
|
|
25
25
|
|
|
26
26
|
Reviewer for reusable ReactFlow/graph integration layers. Use it when a repository has a shared
|
|
27
|
-
graph surface consumed by domain modules. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs.
|
|
27
|
+
graph surface consumed by domain modules. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs. It runs no command unless its payload's `allowed_tools` says `run-tests`, except the read-only `git log`, `git blame` and `git show` where its host gives a read-only child git (keryx shell does not: there the payload supplies the history).
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
@@ -83,15 +83,10 @@ baseline.
|
|
|
83
83
|
|
|
84
84
|
### Shared laws (every reviewer)
|
|
85
85
|
|
|
86
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
91
|
-
pattern because it is often wrong elsewhere.
|
|
92
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
93
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
94
|
-
finding hide the other nine problems.
|
|
86
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
87
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
88
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
89
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
95
90
|
|
|
96
91
|
Severity levels are defined once, in `review-orchestrator/SKILL.md` →
|
|
97
92
|
**Severity (canonical)**. This reviewer does not restate them: `blocker` is the
|
|
@@ -2,18 +2,14 @@
|
|
|
2
2
|
name: review-frontend
|
|
3
3
|
model_tier: standard
|
|
4
4
|
description: "Use when a frontend review is requested, checking React component patterns, MobX state management (observer, actions, computed, reactions, lifecycle), View-Store boundaries, and TypeScript safety in changed frontend code. NOT for backend patterns, security vulnerabilities, performance bottlenecks, or cross-layer architecture."
|
|
5
|
-
triggers:
|
|
6
|
-
- "frontend review"
|
|
7
|
-
- "component review"
|
|
8
|
-
- "ui review"
|
|
9
|
-
- "review React"
|
|
10
|
-
- "review components"
|
|
5
|
+
triggers: ["frontend review", "component review", "ui review", "review React", "review components"]
|
|
11
6
|
metadata:
|
|
12
7
|
author: "MrCipherSmith"
|
|
13
8
|
version: "1.1.0"
|
|
14
9
|
category: "review"
|
|
15
10
|
compatible_harnesses: "cursor,codex,zed,opencode,claude"
|
|
16
11
|
stack_requires: "react,mobx"
|
|
12
|
+
overlap_group: "frontend"
|
|
17
13
|
license: "MIT"
|
|
18
14
|
---
|
|
19
15
|
|
|
@@ -21,7 +17,7 @@ license: "MIT"
|
|
|
21
17
|
|
|
22
18
|
## Purpose
|
|
23
19
|
|
|
24
|
-
Validates frontend-specific patterns in the changed code of the current branch. Covers React component correctness (observer wrapping, MVVM boundary, useEffect misuse, accessibility basics, key props), full MobX store patterns (structure, member ordering, accessibility modifiers, observable collections, reactions, async actions, bidirectional sync, lifecycle, API placement), and TypeScript safety. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs.
|
|
20
|
+
Validates frontend-specific patterns in the changed code of the current branch. Covers React component correctness (observer wrapping, MVVM boundary, useEffect misuse, accessibility basics, key props), full MobX store patterns (structure, member ordering, accessibility modifiers, observable collections, reactions, async actions, bidirectional sync, lifecycle, API placement), and TypeScript safety. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs. It runs no command unless its payload's `allowed_tools` says `run-tests`, except the read-only `git log`, `git blame` and `git show` where its host gives a read-only child git (keryx shell does not: there the payload supplies the history).
|
|
25
21
|
|
|
26
22
|
This skill consolidates what was previously split between `code-style-review` (frontend parts) and `code-mobx-store-review`. It supersedes both for frontend changes.
|
|
27
23
|
|
|
@@ -59,15 +55,10 @@ This skill consolidates what was previously split between `code-style-review` (f
|
|
|
59
55
|
|
|
60
56
|
### Shared laws (every reviewer)
|
|
61
57
|
|
|
62
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
67
|
-
pattern because it is often wrong elsewhere.
|
|
68
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
69
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
70
|
-
finding hide the other nine problems.
|
|
58
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
59
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
60
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
61
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
71
62
|
|
|
72
63
|
Severity levels are defined once, in `review-orchestrator/SKILL.md` →
|
|
73
64
|
**Severity (canonical)**. This reviewer does not restate them: `blocker` is the
|
|
@@ -102,7 +93,7 @@ See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
|
102
93
|
|
|
103
94
|
Run the script from that file to determine `MERGE_BASE` (`BASE_SHA`) and `SCOPE` before proceeding.
|
|
104
95
|
|
|
105
|
-
**Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text
|
|
96
|
+
**Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text and never rebuild the diff. A choice's history (law 4) is read with `git log`, `git blame` and `git show` only where the host gives a read-only child git; on keryx shell a read-only child has no shell and no git tool, so read the `git log -L`/`git blame` excerpts the payload supplies, or say the history was not read. Only with none supplied, collect it:
|
|
106
97
|
```bash
|
|
107
98
|
git diff --name-status "${BASE_SHA}" && git diff "${BASE_SHA}" && git ls-files --others --exclude-standard
|
|
108
99
|
# explicit range: <FROM_SHA>..<TO_SHA> in place of "${BASE_SHA}"
|
|
@@ -11,16 +11,14 @@ description: |
|
|
|
11
11
|
NOT for: generic React and MobX correctness with no local rule behind it
|
|
12
12
|
(review-frontend), what the CSS actually renders (review-layout), or naming and
|
|
13
13
|
readability as a matter of taste (review-style).
|
|
14
|
-
triggers:
|
|
15
|
-
- "frontend conventions"
|
|
16
|
-
- "local frontend rules"
|
|
17
|
-
- "CLAUDE frontend"
|
|
18
|
-
- "review frontend conventions"
|
|
14
|
+
triggers: ["frontend conventions", "local frontend rules", "CLAUDE frontend", "review frontend conventions"]
|
|
19
15
|
metadata:
|
|
20
16
|
author: "MrCipherSmith"
|
|
21
17
|
version: "1.0.0"
|
|
22
18
|
category: "review"
|
|
23
19
|
stack_requires: "react,mobx"
|
|
20
|
+
overlap_group: "frontend"
|
|
21
|
+
overlap_rank: "generic"
|
|
24
22
|
license: "MIT"
|
|
25
23
|
---
|
|
26
24
|
|
|
@@ -28,7 +26,7 @@ license: "MIT"
|
|
|
28
26
|
|
|
29
27
|
Reviewer for frontend repository conventions that are more specific than generic React/MobX
|
|
30
28
|
correctness. Use it alongside `review-frontend`, `review-style`, `review-performance`, and
|
|
31
|
-
`review-logic`. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs.
|
|
29
|
+
`review-logic`. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs. It runs no command unless its payload's `allowed_tools` says `run-tests`, except the read-only `git log`, `git blame` and `git show` where its host gives a read-only child git (keryx shell does not: there the payload supplies the history).
|
|
32
30
|
|
|
33
31
|
Before reviewing, read the nearest project guide files if they exist: root `CLAUDE.md`,
|
|
34
32
|
`AGENTS.md`, `.junie/guidelines.md`, `ARCHITECTURE.md`, and module-level `CLAUDE.md` files.
|
|
@@ -109,15 +107,10 @@ project-specific guide was found.
|
|
|
109
107
|
|
|
110
108
|
### Shared laws (every reviewer)
|
|
111
109
|
|
|
112
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
117
|
-
pattern because it is often wrong elsewhere.
|
|
118
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
119
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
120
|
-
finding hide the other nine problems.
|
|
110
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
111
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
112
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
113
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
121
114
|
|
|
122
115
|
Severity levels are defined once, in `review-orchestrator/SKILL.md` →
|
|
123
116
|
**Severity (canonical)**. This reviewer does not restate them: `blocker` is the
|
|
@@ -28,7 +28,7 @@ license: "MIT"
|
|
|
28
28
|
|
|
29
29
|
Specialized reviewer for **code that will run under significant concurrent load**.
|
|
30
30
|
Focuses on correctness under concurrency, resource contention, back-pressure, failure
|
|
31
|
-
modes at scale, and distributed systems invariants — not general performance profiling. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs.
|
|
31
|
+
modes at scale, and distributed systems invariants — not general performance profiling. Its inputs are the reviewer payload only; session memory and earlier conversation are not inputs. It runs no command unless its payload's `allowed_tools` says `run-tests`, except the read-only `git log`, `git blame` and `git show` where its host gives a read-only child git (keryx shell does not: there the payload supplies the history).
|
|
32
32
|
|
|
33
33
|
Reviews only changes introduced in the current branch (merge-base to HEAD).
|
|
34
34
|
|
|
@@ -71,7 +71,7 @@ See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
|
|
|
71
71
|
Review scope: **changes introduced in the current branch since merge-base only**.
|
|
72
72
|
Pre-existing problems in unchanged lines are out of scope unless the diff makes them worse.
|
|
73
73
|
|
|
74
|
-
**Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text
|
|
74
|
+
**Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text and never rebuild the diff. A choice's history (law 4) is read with `git log`, `git blame` and `git show` only where the host gives a read-only child git; on keryx shell a read-only child has no shell and no git tool, so read the `git log -L`/`git blame` excerpts the payload supplies, or say the history was not read. Only with none supplied, collect it:
|
|
75
75
|
```bash
|
|
76
76
|
git diff --name-status "${BASE_SHA}" && git diff "${BASE_SHA}" && git ls-files --others --exclude-standard
|
|
77
77
|
# explicit range: <FROM_SHA>..<TO_SHA> in place of "${BASE_SHA}"
|
|
@@ -83,15 +83,10 @@ git diff --name-status "${BASE_SHA}" && git diff "${BASE_SHA}" && git ls-files -
|
|
|
83
83
|
|
|
84
84
|
### Shared laws (every reviewer)
|
|
85
85
|
|
|
86
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
91
|
-
pattern because it is often wrong elsewhere.
|
|
92
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
93
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
94
|
-
finding hide the other nine problems.
|
|
86
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
87
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
88
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
89
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
95
90
|
|
|
96
91
|
Severity levels are defined once, in `review-orchestrator/SKILL.md` →
|
|
97
92
|
**Severity (canonical)**. This reviewer does not restate them: `blocker` is the
|
|
@@ -157,15 +157,10 @@ Before trusting a run's findings:
|
|
|
157
157
|
|
|
158
158
|
### Shared laws (every reviewer)
|
|
159
159
|
|
|
160
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
165
|
-
pattern because it is often wrong elsewhere.
|
|
166
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
167
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
168
|
-
finding hide the other nine problems.
|
|
160
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
161
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
162
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
163
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
169
164
|
|
|
170
165
|
Severity levels are defined once, in `review-orchestrator/SKILL.md` →
|
|
171
166
|
**Severity (canonical)**. This reviewer does not restate them: it emits only
|
|
@@ -136,15 +136,10 @@ object (`sites`, `enumeration_method`) — never a bare label.
|
|
|
136
136
|
|
|
137
137
|
### Shared laws (every reviewer)
|
|
138
138
|
|
|
139
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
144
|
-
pattern because it is often wrong elsewhere.
|
|
145
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
146
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
147
|
-
finding hide the other nine problems.
|
|
139
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
140
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
141
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
142
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
148
143
|
|
|
149
144
|
This reviewer satisfies all three by construction: `evidence` always names the
|
|
150
145
|
matched artefacts/facts and the claim text (never an unreproducible claim); a
|
|
@@ -162,15 +162,10 @@ Before trusting a run's findings:
|
|
|
162
162
|
|
|
163
163
|
### Shared laws (every reviewer)
|
|
164
164
|
|
|
165
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
170
|
-
pattern because it is often wrong elsewhere.
|
|
171
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
172
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
173
|
-
finding hide the other nine problems.
|
|
165
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
166
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
167
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
168
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
174
169
|
|
|
175
170
|
Severity levels are defined once, in `review-orchestrator/SKILL.md` →
|
|
176
171
|
**Severity (canonical)**. This reviewer does not restate them — it only ever
|
|
@@ -131,15 +131,10 @@ Gate, same dedup, same Wave C verification.
|
|
|
131
131
|
|
|
132
132
|
### Shared laws (every reviewer)
|
|
133
133
|
|
|
134
|
-
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
under review. Do not report a safe API because it could be misused, or a
|
|
139
|
-
pattern because it is often wrong elsewhere.
|
|
140
|
-
3. **One finding per class, not one per occurrence.** When the same shape appears
|
|
141
|
-
at several sites, report it once and list every site. Ten findings that are one
|
|
142
|
-
finding hide the other nine problems.
|
|
134
|
+
1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot name the input, call, or condition that reaches the code, you have an observation, not a finding. Report it as `info` and say what would settle it.
|
|
135
|
+
2. **Never flag the theoretical.** The path you describe must exist in the code under review. Do not report a safe API because it could be misused, or a pattern because it is often wrong elsewhere.
|
|
136
|
+
3. **One finding per class, not one per occurrence.** When the same shape appears at several sites, report it once and list every site. Ten findings that are one finding hide the other nine problems.
|
|
137
|
+
4. **A deliberate choice is not a defect until its reason is read and shown wrong.** An explicit override, suppression or exemption, a comment or commit giving a reason, or a sibling doing the same is a decision: read its reason (the comment, `git log -L` or `git blame`, the sibling) before you report it, and report it only when you can show that reason wrong. A project rule is checked against accepted platform practice and its known exceptions before a deviation from it is reported.
|
|
143
138
|
|
|
144
139
|
This reviewer satisfies all three by construction: `evidence` always names the
|
|
145
140
|
hunk location, quotes the changed line, and states every dimension's
|