@mrciphersmith/keryx 0.3.120 → 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.
Files changed (39) hide show
  1. package/dist/cli.js +8511 -7282
  2. package/dist/core.js +954 -791
  3. package/package.json +1 -1
  4. package/src/gdskills/bundled/install-manifest.json +2 -1
  5. package/src/gdskills/bundled/rules/core/session-plan-bridge.mdc +1 -1
  6. package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +4 -4
  7. package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +8 -17
  8. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.detail.md +70 -0
  9. package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +36 -73
  10. package/src/gdskills/bundled/skills/orchestration/task-implementer/SKILL.md +1 -1
  11. package/src/gdskills/bundled/skills/orchestration/task-implementer/input-contract.schema.json +17 -2
  12. package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +6 -11
  13. package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +6 -11
  14. package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +6 -11
  15. package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +5 -10
  16. package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +5 -10
  17. package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +6 -11
  18. package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +5 -10
  19. package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +6 -11
  20. package/src/gdskills/bundled/skills/review/review-jev-comments/SKILL.md +4 -9
  21. package/src/gdskills/bundled/skills/review/review-jev-contract/SKILL.md +4 -9
  22. package/src/gdskills/bundled/skills/review/review-jev-docs/SKILL.md +4 -9
  23. package/src/gdskills/bundled/skills/review/review-jev-risk/SKILL.md +4 -9
  24. package/src/gdskills/bundled/skills/review/review-jev-rules/SKILL.md +4 -9
  25. package/src/gdskills/bundled/skills/review/review-jev-scenarios/SKILL.md +4 -9
  26. package/src/gdskills/bundled/skills/review/review-layout/SKILL.md +8 -9
  27. package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +6 -11
  28. package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.detail.md +25 -2
  29. package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +34 -44
  30. package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-input.schema.json +1 -1
  31. package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +6 -11
  32. package/src/gdskills/bundled/skills/review/review-pr-contract/SKILL.md +2 -2
  33. package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +8 -10
  34. package/src/gdskills/bundled/skills/review/review-premise/SKILL.md +180 -0
  35. package/src/gdskills/bundled/skills/review/review-regression/SKILL.md +3 -3
  36. package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +6 -11
  37. package/src/gdskills/bundled/skills/review/review-style/SKILL.md +6 -11
  38. package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +2 -2
  39. package/src/gdskills/contracts/review-finding.schema.json +63 -0
@@ -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. It runs no command unless its payload's `allowed_tools` says `run-tests`.
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
- name the input, call, or condition that reaches the code, you have an
88
- observation, not a finding. Report it as `info` and say what would settle it.
89
- 2. **Never flag the theoretical.** The path you describe must exist in the code
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
@@ -17,7 +17,7 @@ license: "MIT"
17
17
 
18
18
  ## Purpose
19
19
 
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`.
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).
21
21
 
22
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.
23
23
 
@@ -55,15 +55,10 @@ This skill consolidates what was previously split between `code-style-review` (f
55
55
 
56
56
  ### Shared laws (every reviewer)
57
57
 
58
- 1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
59
- name the input, call, or condition that reaches the code, you have an
60
- observation, not a finding. Report it as `info` and say what would settle it.
61
- 2. **Never flag the theoretical.** The path you describe must exist in the code
62
- under review. Do not report a safe API because it could be misused, or a
63
- pattern because it is often wrong elsewhere.
64
- 3. **One finding per class, not one per occurrence.** When the same shape appears
65
- at several sites, report it once and list every site. Ten findings that are one
66
- 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.
67
62
 
68
63
  Severity levels are defined once, in `review-orchestrator/SKILL.md` →
69
64
  **Severity (canonical)**. This reviewer does not restate them: `blocker` is the
@@ -98,7 +93,7 @@ See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
98
93
 
99
94
  Run the script from that file to determine `MERGE_BASE` (`BASE_SHA`) and `SCOPE` before proceeding.
100
95
 
101
- **Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text: a read-only child has no shell, so run no git command and never rebuild the diff. Only with none supplied, collect it:
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:
102
97
  ```bash
103
98
  git diff --name-status "${BASE_SHA}" && git diff "${BASE_SHA}" && git ls-files --others --exclude-standard
104
99
  # explicit range: <FROM_SHA>..<TO_SHA> in place of "${BASE_SHA}"
@@ -26,7 +26,7 @@ license: "MIT"
26
26
 
27
27
  Reviewer for frontend repository conventions that are more specific than generic React/MobX
28
28
  correctness. Use it alongside `review-frontend`, `review-style`, `review-performance`, and
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`.
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).
30
30
 
31
31
  Before reviewing, read the nearest project guide files if they exist: root `CLAUDE.md`,
32
32
  `AGENTS.md`, `.junie/guidelines.md`, `ARCHITECTURE.md`, and module-level `CLAUDE.md` files.
@@ -107,15 +107,10 @@ project-specific guide was found.
107
107
 
108
108
  ### Shared laws (every reviewer)
109
109
 
110
- 1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
111
- name the input, call, or condition that reaches the code, you have an
112
- observation, not a finding. Report it as `info` and say what would settle it.
113
- 2. **Never flag the theoretical.** The path you describe must exist in the code
114
- under review. Do not report a safe API because it could be misused, or a
115
- pattern because it is often wrong elsewhere.
116
- 3. **One finding per class, not one per occurrence.** When the same shape appears
117
- at several sites, report it once and list every site. Ten findings that are one
118
- 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.
119
114
 
120
115
  Severity levels are defined once, in `review-orchestrator/SKILL.md` →
121
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. It runs no command unless its payload's `allowed_tools` says `run-tests`.
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: a read-only child has no shell, so run no git command and never rebuild the diff. Only with none supplied, collect it:
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
- name the input, call, or condition that reaches the code, you have an
88
- observation, not a finding. Report it as `info` and say what would settle it.
89
- 2. **Never flag the theoretical.** The path you describe must exist in the code
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
- name the input, call, or condition that reaches the code, you have an
162
- observation, not a finding. Report it as `info` and say what would settle it.
163
- 2. **Never flag the theoretical.** The path you describe must exist in the code
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
- name the input, call, or condition that reaches the code, you have an
141
- observation, not a finding. Report it as `info` and say what would settle it.
142
- 2. **Never flag the theoretical.** The path you describe must exist in the code
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
- name the input, call, or condition that reaches the code, you have an
167
- observation, not a finding. Report it as `info` and say what would settle it.
168
- 2. **Never flag the theoretical.** The path you describe must exist in the code
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
- name the input, call, or condition that reaches the code, you have an
136
- observation, not a finding. Report it as `info` and say what would settle it.
137
- 2. **Never flag the theoretical.** The path you describe must exist in the code
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
@@ -205,15 +205,10 @@ other reviewer's: same Quality Gate, same dedup, same Wave C verification.
205
205
 
206
206
  ### Shared laws (every reviewer)
207
207
 
208
- 1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
209
- name the input, call, or condition that reaches the code, you have an
210
- observation, not a finding. Report it as `info` and say what would settle it.
211
- 2. **Never flag the theoretical.** The path you describe must exist in the code
212
- under review. Do not report a safe API because it could be misused, or a
213
- pattern because it is often wrong elsewhere.
214
- 3. **One finding per class, not one per occurrence.** When the same shape appears
215
- at several sites, report it once and list every site. Ten findings that are one
216
- finding hide the other nine problems.
208
+ 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.
209
+ 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.
210
+ 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.
211
+ 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.
217
212
 
218
213
  This reviewer already satisfies all three by construction: `evidence` always
219
214
  names the hunk and quotes it (never an unreproducible claim), a finding is
@@ -129,15 +129,10 @@ same dedup, same Wave C verification.
129
129
 
130
130
  ### Shared laws (every reviewer)
131
131
 
132
- 1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
133
- name the input, call, or condition that reaches the code, you have an
134
- 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
136
- under review. Do not report a safe API because it could be misused, or a
137
- pattern because it is often wrong elsewhere.
138
- 3. **One finding per class, not one per occurrence.** When the same shape appears
139
- at several sites, report it once and list every site. Ten findings that are one
140
- finding hide the other nine problems.
132
+ 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.
133
+ 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.
134
+ 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.
135
+ 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.
141
136
 
142
137
  This reviewer satisfies all three by construction: severity is fixed at
143
138
  `minor` — never higher — and `evidence` always names the scenario's linked
@@ -119,6 +119,10 @@ name instead.
119
119
  LTR is toward the end in RTL. State both.
120
120
  - [ ] A physical gradient, shadow, or transform in a component that otherwise uses
121
121
  logical properties does **not** flip. Name the direction it points in each.
122
+ - [ ] Some surfaces usually do **not** mirror, by platform practice (Material Bidirectionality,
123
+ Apple HIG): media playback controls and their progress or seek bar, numbers, code, phone
124
+ numbers. A forced `dir="ltr"` there is usually deliberate: read its signals (law 4) before
125
+ reporting. An event timeline, calendar row or chart axis often does mirror; judge by the product.
122
126
  - [ ] Text length differs by locale. A component sized by its own labels renders
123
127
  **different geometry for identical data** across locales. Measure with the
124
128
  longest real translation in the catalog, never the English one.
@@ -146,15 +150,10 @@ name instead.
146
150
 
147
151
  ### Shared laws (every reviewer)
148
152
 
149
- 1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
150
- name the input, call, or condition that reaches the code, you have an
151
- observation, not a finding. Report it as `info` and say what would settle it.
152
- 2. **Never flag the theoretical.** The path you describe must exist in the code
153
- under review. Do not report a safe API because it could be misused, or a
154
- pattern because it is often wrong elsewhere.
155
- 3. **One finding per class, not one per occurrence.** When the same shape appears
156
- at several sites, report it once and list every site. Ten findings that are one
157
- finding hide the other nine problems.
153
+ 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.
154
+ 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.
155
+ 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.
156
+ 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.
158
157
 
159
158
  Severity levels are defined once, in `review-orchestrator/SKILL.md` →
160
159
  **Severity (canonical)**. This reviewer keeps no rubric of its own; below is only
@@ -27,7 +27,7 @@ license: "MIT"
27
27
 
28
28
  Specialized reviewer for **logic correctness and algorithmic soundness**.
29
29
  Inherits from the original `code-ai-review` + `code-learned-review` correctness phases
30
- and unifies them into a single focused pass. 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`.
30
+ and unifies them into a single focused pass. 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
  This reviewer does not care about formatting, naming, or architecture opinions.
33
33
  Every finding must describe an observable, reproducible defect or a spec gap.
@@ -69,7 +69,7 @@ See shared script: `.metaproject/skills/gdskills/shared/git-merge-base.md`
69
69
  Review scope: **changes introduced in the current branch since merge-base only**.
70
70
  Do not review unrelated files.
71
71
 
72
- **Supplied text first.** When the payload carries `slices`, `context_files`, `diff` or `file_contents`, review exactly that text: a read-only child has no shell, so run no git command and never rebuild the diff. Only with none supplied, collect it:
72
+ **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:
73
73
  ```bash
74
74
  git diff --name-status "${BASE_SHA}" && git diff "${BASE_SHA}" && git ls-files --others --exclude-standard
75
75
  # explicit range: <FROM_SHA>..<TO_SHA> in place of "${BASE_SHA}"
@@ -260,15 +260,10 @@ conditions land under that rubric, not a second rubric.
260
260
 
261
261
  ### Shared laws (every reviewer)
262
262
 
263
- 1. **A claim of runtime harm with no reproducible path is `info`.** If you cannot
264
- name the input, call, or condition that reaches the code, you have an
265
- observation, not a finding. Report it as `info` and say what would settle it.
266
- 2. **Never flag the theoretical.** The path you describe must exist in the code
267
- under review. Do not report a safe API because it could be misused, or a
268
- pattern because it is often wrong elsewhere.
269
- 3. **One finding per class, not one per occurrence.** When the same shape appears
270
- at several sites, report it once and list every site. Ten findings that are one
271
- finding hide the other nine problems.
263
+ 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.
264
+ 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.
265
+ 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.
266
+ 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.
272
267
 
273
268
  Severity levels are defined once, in `review-orchestrator/SKILL.md` →
274
269
  **Severity (canonical)**. This reviewer does not restate them: `blocker` is the
@@ -651,7 +651,7 @@ certifies the flow is the one that checked the least.
651
651
 
652
652
  ## Readiness — the checklist behind `completed` and behind publishing
653
653
 
654
- `keryx review readiness <review-id-or-path> [--json]` reads the package and prints ten items, READY or NOT READY, each with the evidence and the command that repairs it. It writes nothing, and exits non-zero when the verdict is NOT READY. Only item 9 reaches GitHub (the PR's own file list); the TUI and `review status` read the package alone.
654
+ `keryx review readiness <review-id-or-path> [--json]` reads the package and prints eleven items, READY or NOT READY, each with the evidence and the command that repairs it. It writes nothing, and exits non-zero when the verdict is NOT READY. Only item 9 reaches GitHub (the PR's own file list); the TUI and `review status` read the package alone.
655
655
 
656
656
  1. `files-covered` — every changed file is in a wave or carries a recorded waiver.
657
657
  2. `blast-radius` — no file the blast radius cut is left unreviewed. A cut radius writes `chunks.json`; run `keryx review chunks plan`, `estimate`, `next`/`record`, `merge`. In an unattended run every wave runs without a question, up to the 25-pass ceiling; in an interactive run the operator is asked once: in keryx shell call `review_chunks_answer` (a card, never a terminal); elsewhere the operator runs `keryx review chunks estimate --package <dir> --answer yes --quote "<their words>"` in their terminal; unattended, record Not run.
@@ -663,8 +663,9 @@ certifies the flow is the one that checked the least.
663
663
  8. `report-names` — pending mutation candidates and parity warnings are named in the report.
664
664
  9. `pr-files` — the changed-file count equals the PR's own file list. A recount more than 3x the recorded scope is refused: it came from the wrong base. Recount with `keryx review blast-radius --package <ref> --changed <the PR's files>`.
665
665
  10. `memory-outside-stage` — the orchestrator read memory only in its memory stage ("Clean context" above). Outside keryx shell it reads "not observable on this host" unless this session's keryx calls carry the caller token `keryx review start` printed.
666
+ 11. `premise-decisions` — every finding `review-premise` held (`challenged` or `owner-decision`) has an operator decision: in keryx shell the card `review_decide_premise`; elsewhere the operator runs `keryx review decide-premise --package <dir> --finding <global_id> --answer uphold|dismiss --reason "<why>"` in their terminal (SKILL.md "Wave D"). Not waivable: each held finding needs its own answer, and `review_waive_readiness` / `--waive` refuse this item.
666
667
 
667
- `keryx review complete` refuses status `completed` while any item fails. A failing item is waived only by the operator. In keryx shell call `review_waive_readiness` for the item: the operator answers it as a card, the waiver is recorded with the card text and the time, and then you run `keryx review complete`. Never send the operator to a terminal. Outside keryx shell the operator runs `keryx review complete --waive <item> "<their own words>"` in a terminal, repeatable. Unattended, record the item as Not run. `keryx review publish` is held by the same checklist. Publishing is the operator's decision too: in keryx shell call `review_publish` (a card shows the target and the body; never send the operator to a terminal). A not-ready package goes to GitHub only as a partial review (`review_publish` with `partial: true`, or `keryx review publish --partial`), which puts a "Partial review" header on the post and never approves. The shell guard stops a publish command that runs through the keryx shell; a publisher outside it (CI, another agent, a script file) is not stopped, and that limit is named, not hidden.
668
+ `keryx review complete` refuses status `completed` while any item fails. A failing item other than `premise-decisions` is waived only by the operator. In keryx shell call `review_waive_readiness` for the item: the operator answers it as a card, the waiver is recorded with the card text and the time, and then you run `keryx review complete`. Never send the operator to a terminal. Outside keryx shell the operator runs `keryx review complete --waive <item> "<their own words>"` in a terminal, repeatable. Unattended, record the item as Not run. `keryx review publish` is held by the same checklist. Publishing is the operator's decision too: in keryx shell call `review_publish` (a card shows the target and the body; never send the operator to a terminal). A not-ready package goes to GitHub only as a partial review (`review_publish` with `partial: true`, or `keryx review publish --partial`), which puts a "Partial review" header on the post and never approves. The shell guard stops a publish command that runs through the keryx shell; a publisher outside it (CI, another agent, a script file) is not stopped, and that limit is named, not hidden.
668
669
 
669
670
  ## Fix rounds — dispositions, regressions, withdrawal
670
671
 
@@ -917,3 +918,25 @@ Default budget guidance:
917
918
  | medium | <= 20 files or <= 2,000 changed lines | `light` | per-domain filtered diff |
918
919
  | large | > 20 files or > 2,000 changed lines | ask `full` | staged waves by domain |
919
920
  | high-risk | auth/API/core/security/data migrations | ask `full` | staged waves, verifier included |
921
+
922
+ ## Everything written to GitHub is brief
923
+
924
+ One rule, applied to every outward surface: **PR bodies, PR comments, review
925
+ replies, issue comments, and commit messages going to a PR.**
926
+
927
+ - Lead with the conclusion. No preamble, no restating the question, no apology,
928
+ no summary of the flow.
929
+ - Say what changed and where. **Link, do not paste.**
930
+ - The reasoning, the evidence, the rejected alternatives and the round history live
931
+ in the flow package — `journal.md`, `context.md`, the review artifacts — which is
932
+ durable, searchable, and costs a reader nothing to skip.
933
+ - A GitHub artifact that needs more than a short paragraph is a signal that the
934
+ detail belongs in the flow with a link out, **not** that the paragraph should
935
+ grow.
936
+ - No orchestrator-written PR comment or reply exceeds two sentences without
937
+ carrying a link to the artifact holding the detail. The reply pass enforces
938
+ this; for anything else you write outward, hold yourself to it.
939
+
940
+ This is deliberately asymmetric: **verbose in the flow, terse on GitHub.** The
941
+ flow is written for whoever resumes the work; GitHub is read by someone who did
942
+ not ask for our reasoning and is reading between other tasks.