@mrciphersmith/keryx 0.2.71 → 0.2.72
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 +4296 -2223
- package/package.json +1 -1
- package/src/gdskills/bundled/rules/core/code-review-learned-profile.mdc +81 -0
- package/src/gdskills/bundled/rules/core/jobs-documentation.mdc +1 -1
- package/src/gdskills/bundled/rules/core/review-strict-profile.mdc +8 -4
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.codex.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.cursor.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.opencode.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/context-collector/SKILL.zed.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/context-collector/orchestrator-prompt.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.codex.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.cursor.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.opencode.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/feature-analyzer/SKILL.zed.md +3 -3
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/feature-dev/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/flow-orchestrator/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.codex.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.cursor.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.opencode.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-documenter/SKILL.zed.md +1 -1
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.codex.md +972 -509
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.cursor.md +972 -509
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.md +943 -513
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.opencode.md +972 -509
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/SKILL.zed.md +972 -509
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/input-contract.schema.json +38 -28
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/orchestrator-prompt.md +98 -66
- package/src/gdskills/bundled/skills/orchestration/job-orchestrator/output-contract.schema.json +27 -5
- package/src/gdskills/bundled/skills/orchestration/task-implementer/input-contract.schema.json +1 -1
- package/src/gdskills/bundled/skills/review/code-ai-review/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.codex.md +252 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.cursor.md +252 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.md +243 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.opencode.md +252 -0
- package/src/gdskills/bundled/skills/review/code-learned-review/SKILL.zed.md +252 -0
- package/src/gdskills/bundled/skills/review/code-mobx-store-review/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/code-style-review/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-architecture/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-backend/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-clean-code/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-core-boundaries/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-flow-graph/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-frontend/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-frontend-conventions/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-highload/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-logic/SKILL.md +2 -2
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +10 -10
- package/src/gdskills/bundled/skills/review/review-performance/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-pr-feedback/SKILL.md +36 -17
- package/src/gdskills/bundled/skills/review/review-security-code/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-style/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-testing-practices/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/review/review-verifier/SKILL.md +1 -1
- package/src/gdskills/bundled/skills/shared/git-merge-base.md +1 -1
- package/src/gdskills/bundled/rules/core/code-review-b091-profile.mdc +0 -48
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.codex.md +0 -209
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.cursor.md +0 -209
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.md +0 -208
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.opencode.md +0 -209
- package/src/gdskills/bundled/skills/review/code-b091-review/SKILL.zed.md +0 -209
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-learned-review
|
|
3
|
+
description: "Reviews the current branch against conventions this project learned from its own pull-request comments, recorded in a local project skill. Ships with an empty checklist: the content comes from `keryx review learn`, never from the tool. Use when: a project has a learned review skill and wants its own accumulated conventions applied."
|
|
4
|
+
triggers:
|
|
5
|
+
- "learned review"
|
|
6
|
+
- "review with our conventions"
|
|
7
|
+
- "review using what we learned"
|
|
8
|
+
metadata:
|
|
9
|
+
author: "keryx"
|
|
10
|
+
version: "2.0.0"
|
|
11
|
+
category: "review"
|
|
12
|
+
compatible_harnesses: "cursor,codex,zed,opencode"
|
|
13
|
+
license: "MIT"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Learned Code Review (current branch only)
|
|
17
|
+
|
|
18
|
+
## What this skill is, and what it is not
|
|
19
|
+
|
|
20
|
+
This skill carries **no review conventions of its own**. It is a mechanism with
|
|
21
|
+
an empty checklist, and the checklist is filled in by the project that installs
|
|
22
|
+
it.
|
|
23
|
+
|
|
24
|
+
What it applies is a **project skill** under
|
|
25
|
+
`.metaproject/project-skills/<module>/<skill>/SKILL.md`, whose `Review Lessons`,
|
|
26
|
+
`Review Checklist` and `Anti-patterns` sections were written from pull-request
|
|
27
|
+
comments left by the people that project named. Point a second project at
|
|
28
|
+
different reviewers and its learned skill diverges from the first. That is the
|
|
29
|
+
intended behaviour: there is no single correct checklist, and shipping one would
|
|
30
|
+
mean shipping one team's opinions to everybody.
|
|
31
|
+
|
|
32
|
+
If this project has no learned skill yet, **say so and stop**. An empty learned
|
|
33
|
+
review is not a generic review; use `review-orchestrator` for that.
|
|
34
|
+
|
|
35
|
+
## Workflow
|
|
36
|
+
|
|
37
|
+
Copy this checklist and track progress:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Learned Review Progress:
|
|
41
|
+
- [ ] Step 1: Read .metaproject/review-learning.config.json — which skill is this project's?
|
|
42
|
+
- [ ] Step 2: Read that project skill; if it has no lessons, stop and say so
|
|
43
|
+
- [ ] Step 3: Determine parent branch and calculate merge-base
|
|
44
|
+
- [ ] Step 4: Collect git diff (committed + local changes)
|
|
45
|
+
- [ ] Step 5: Apply the learned checklist, lesson by lesson
|
|
46
|
+
- [ ] Step 6: Report each finding with the learned lesson it rests on
|
|
47
|
+
- [ ] Step 7: Feed new pull-request comments back with `keryx review learn`
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Mandatory rules
|
|
51
|
+
|
|
52
|
+
1. **Default scope (no commit hash/range given)**: the review covers **all**
|
|
53
|
+
changes on the current branch from the merge-base with its parent branch —
|
|
54
|
+
committed (`BASE_SHA..HEAD`) and local uncommitted (staged/unstaged/untracked).
|
|
55
|
+
2. **Explicit commit hash/range**: review only the requested range; do not add
|
|
56
|
+
local uncommitted changes unless asked separately.
|
|
57
|
+
3. **The checklist is the project's, not this file's**: every finding cites a
|
|
58
|
+
line in the project skill named by
|
|
59
|
+
`.metaproject/review-learning.config.json`. A finding with nothing behind it
|
|
60
|
+
there is a generic finding and belongs to the reviewer that owns it —
|
|
61
|
+
`review-logic`, `review-architecture`, `review-security-code`.
|
|
62
|
+
4. **Result**: a detailed report with an explanation per finding and a concrete
|
|
63
|
+
fix (a minimal patch where the fix is obvious).
|
|
64
|
+
|
|
65
|
+
## Where the checklist comes from
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# 1. Which local skill does this project teach, from which repository,
|
|
69
|
+
# and whose comments count?
|
|
70
|
+
cat .metaproject/review-learning.config.json
|
|
71
|
+
|
|
72
|
+
# 2. The comments themselves, collected once per round and kept on disk.
|
|
73
|
+
keryx review comments collect --repo <owner/repo> --pr <n> --sha <head-sha>
|
|
74
|
+
|
|
75
|
+
# 3. The join: configured authors only, read from the record above, never
|
|
76
|
+
# re-fetched. Writes a proposal and changes nothing.
|
|
77
|
+
keryx review learn --pr <n>
|
|
78
|
+
|
|
79
|
+
# 4. The only writer. Bumps the skill version, appends to skill-changelog.md,
|
|
80
|
+
# and refuses any target outside .metaproject/project-skills/.
|
|
81
|
+
keryx skills learn apply .metaproject/data/gdskills/proposals/<id>.json
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
An author the config does not name contributes nothing — their text reaches no
|
|
85
|
+
proposal and no `SKILL.md`. A project with no config file does not learn, and
|
|
86
|
+
that is a supported state rather than an error.
|
|
87
|
+
|
|
88
|
+
## Determining the parent ref (deterministic — the branch parent, not the upstream)
|
|
89
|
+
|
|
90
|
+
Use the first variant that exists:
|
|
91
|
+
|
|
92
|
+
1. `origin/main`
|
|
93
|
+
2. `origin/master`
|
|
94
|
+
3. `main`
|
|
95
|
+
4. `master`
|
|
96
|
+
5. `@{upstream}` **only when it is not the current feature branch**
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
|
100
|
+
UPSTREAM_REF="$(git rev-parse --abbrev-ref --symbolic-full-name @{upstream} 2>/dev/null || true)"
|
|
101
|
+
|
|
102
|
+
PARENT=""
|
|
103
|
+
if git rev-parse --verify -q "origin/main" >/dev/null; then
|
|
104
|
+
PARENT="origin/main"
|
|
105
|
+
elif git rev-parse --verify -q "origin/master" >/dev/null; then
|
|
106
|
+
PARENT="origin/master"
|
|
107
|
+
elif git rev-parse --verify -q "main" >/dev/null; then
|
|
108
|
+
PARENT="main"
|
|
109
|
+
elif git rev-parse --verify -q "master" >/dev/null; then
|
|
110
|
+
PARENT="master"
|
|
111
|
+
elif [ -n "$UPSTREAM_REF" ] && [ "$UPSTREAM_REF" != "$BRANCH" ] && [ "$UPSTREAM_REF" != "origin/$BRANCH" ]; then
|
|
112
|
+
PARENT="@{upstream}"
|
|
113
|
+
else
|
|
114
|
+
echo "Cannot determine parent ref" >&2
|
|
115
|
+
exit 1
|
|
116
|
+
fi
|
|
117
|
+
|
|
118
|
+
BASE_SHA="$(git merge-base HEAD "$PARENT")"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Commands to assemble the review slice
|
|
122
|
+
|
|
123
|
+
### A) Default mode (no hash/range from the user)
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
git status
|
|
127
|
+
|
|
128
|
+
# The committed part of the branch
|
|
129
|
+
git log --oneline "${BASE_SHA}..HEAD"
|
|
130
|
+
git diff --stat "${BASE_SHA}..HEAD"
|
|
131
|
+
git diff --name-status "${BASE_SHA}..HEAD"
|
|
132
|
+
git diff "${BASE_SHA}..HEAD"
|
|
133
|
+
|
|
134
|
+
# The full current slice from merge-base to the working tree:
|
|
135
|
+
# commits + staged + unstaged
|
|
136
|
+
# (untracked files via git status / git ls-files)
|
|
137
|
+
git diff --stat "${BASE_SHA}"
|
|
138
|
+
git diff --name-status "${BASE_SHA}"
|
|
139
|
+
git diff "${BASE_SHA}"
|
|
140
|
+
git ls-files --others --exclude-standard
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### B) Explicit hash/range mode
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
git show --stat --name-status --patch <COMMIT_SHA>
|
|
147
|
+
git log --oneline <FROM_SHA>..<TO_SHA>
|
|
148
|
+
git diff --stat <FROM_SHA>..<TO_SHA>
|
|
149
|
+
git diff --name-status <FROM_SHA>..<TO_SHA>
|
|
150
|
+
git diff <FROM_SHA>..<TO_SHA>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## How to review
|
|
154
|
+
|
|
155
|
+
Work the learned checklist one lesson at a time against the diff. For each
|
|
156
|
+
lesson in the project skill, ask whether the diff contains the situation the
|
|
157
|
+
lesson describes, and record the answer either way — a lesson that never matches
|
|
158
|
+
anything is a lesson worth retiring, and only a review that checked it can say
|
|
159
|
+
so.
|
|
160
|
+
|
|
161
|
+
Three rules govern the application, and they are the same three whatever the
|
|
162
|
+
lessons say:
|
|
163
|
+
|
|
164
|
+
- **A lesson is evidence, not authority.** It records that somebody objected to
|
|
165
|
+
something once. If the diff has a reason the objection does not apply here, the
|
|
166
|
+
reason wins and the finding is not raised.
|
|
167
|
+
- **Do not generalise a lesson past its text.** A lesson about one function is
|
|
168
|
+
about that shape of function. Widening it into a rule about a layer, a module
|
|
169
|
+
or a language is inventing a convention the project never agreed to.
|
|
170
|
+
- **Do not attribute.** The record says a comment was left. Reporting a finding
|
|
171
|
+
as what a particular person would want turns a checklist back into a persona,
|
|
172
|
+
which is the defect this skill exists to remove.
|
|
173
|
+
|
|
174
|
+
## Output format
|
|
175
|
+
|
|
176
|
+
```markdown
|
|
177
|
+
## Verdict
|
|
178
|
+
|
|
179
|
+
<APPROVE / APPROVE WITH SUGGESTIONS / REQUEST CHANGES / COMMENT> + the 1-3 most
|
|
180
|
+
important points.
|
|
181
|
+
|
|
182
|
+
## Review scope (current branch only)
|
|
183
|
+
|
|
184
|
+
- Branch: `<BRANCH>`
|
|
185
|
+
- Parent ref: `<PARENT>`
|
|
186
|
+
- Merge-base: `<BASE_SHA>`
|
|
187
|
+
- Scope mode: `<default-with-uncommitted | explicit-hash-range>`
|
|
188
|
+
- Commits (merge-base..HEAD): <N>
|
|
189
|
+
- Changed files: <list or count>
|
|
190
|
+
|
|
191
|
+
## Learned checklist applied
|
|
192
|
+
|
|
193
|
+
- Project skill: `<module>/<skill>` version `<x.y.z>`
|
|
194
|
+
- Lessons checked: <N>
|
|
195
|
+
- Lessons that matched: <N>
|
|
196
|
+
|
|
197
|
+
## Findings
|
|
198
|
+
|
|
199
|
+
<findings, grouped by the learned lesson each rests on>
|
|
200
|
+
|
|
201
|
+
## Findings with no learned lesson behind them
|
|
202
|
+
|
|
203
|
+
<either empty, or listed separately and routed to the reviewer that owns them>
|
|
204
|
+
|
|
205
|
+
## Suggested fixes (patches)
|
|
206
|
+
|
|
207
|
+
<minimal unified diffs for the obvious ones>
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Required shape of each finding
|
|
211
|
+
|
|
212
|
+
- **Severity**: `blocker` / `major` / `minor`
|
|
213
|
+
- **Learned lesson**: the line from the project skill this rests on
|
|
214
|
+
- **Location**: file path + the relevant hunk from the diff
|
|
215
|
+
- **Problem**: what is wrong
|
|
216
|
+
- **Why it matters**: correctness / testability / conventions / maintainability
|
|
217
|
+
- **Suggested fix**: what specifically to do, without widening scope
|
|
218
|
+
- **Optional patch**: a unified diff when the fix is simple
|
|
219
|
+
|
|
220
|
+
Example patch block:
|
|
221
|
+
|
|
222
|
+
```diff
|
|
223
|
+
diff --git a/path/file.ts b/path/file.ts
|
|
224
|
+
index 0000000..1111111 100644
|
|
225
|
+
--- a/path/file.ts
|
|
226
|
+
+++ b/path/file.ts
|
|
227
|
+
@@ -1,3 +1,3 @@
|
|
228
|
+
-const x = 1;
|
|
229
|
+
+const x = 2;
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Job Context Awareness
|
|
233
|
+
|
|
234
|
+
When dispatched by `job-orchestrator` as part of a job pipeline, the prompt MAY
|
|
235
|
+
include:
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
JOB_NAME: <job-name>
|
|
239
|
+
CONTEXT_PATH: .metaproject/jobs/<job-name>/ai/context.md
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
If provided and the file exists, read the context document before starting the
|
|
243
|
+
review. Use it to:
|
|
244
|
+
|
|
245
|
+
- Understand which libraries and patterns were intentionally chosen for the
|
|
246
|
+
implementation
|
|
247
|
+
- Avoid flagging correct library usage as issues
|
|
248
|
+
- Provide more accurate findings by understanding the project's architectural
|
|
249
|
+
decisions
|
|
250
|
+
|
|
251
|
+
If the file does not exist or is not provided, proceed normally — context is
|
|
252
|
+
optional and non-blocking.
|
|
@@ -237,7 +237,7 @@ This skill covers **MobX store and state logic** — targeted review of store in
|
|
|
237
237
|
| Store structure, actions, computed, reactions, async runInAction | ✅ YES | — |
|
|
238
238
|
| View↔Store boundary violations | ✅ YES | — |
|
|
239
239
|
| General code quality, readability, tests | ❌ NO | `code-ai-review` |
|
|
240
|
-
|
|
|
240
|
+
| Learned-convention enforcement | ❌ NO | `code-learned-review` |
|
|
241
241
|
| Naming/style/architecture patterns outside stores | ❌ NO | `code-style-review` |
|
|
242
242
|
|
|
243
243
|
---
|
|
@@ -146,7 +146,7 @@ This skill covers **code style and architecture patterns** — naming, organizat
|
|
|
146
146
|
| Naming conventions, file organization, import order | ✅ YES | — |
|
|
147
147
|
| TypeScript patterns, component/hook structure | ✅ YES | — |
|
|
148
148
|
| Architecture pattern compliance | ✅ YES | — |
|
|
149
|
-
| Logic correctness, type safety deep dives | ❌ NO | `code-ai-review` or `code-
|
|
149
|
+
| Logic correctness, type safety deep dives | ❌ NO | `code-ai-review` or `code-learned-review` |
|
|
150
150
|
| MobX store internals | ❌ NO | `code-mobx-store-review` |
|
|
151
151
|
|
|
152
152
|
---
|
|
@@ -211,7 +211,7 @@ Focus on **SRP** and **DIP** — the two most commonly violated in practice.
|
|
|
211
211
|
|
|
212
212
|
## Orchestrated Review Contract
|
|
213
213
|
|
|
214
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
214
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
215
215
|
|
|
216
216
|
---
|
|
217
217
|
|
|
@@ -230,7 +230,7 @@ is, and a condition that cannot name one is not a `blocker`.
|
|
|
230
230
|
|
|
231
231
|
## Orchestrated Review Contract
|
|
232
232
|
|
|
233
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
233
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
234
234
|
|
|
235
235
|
---
|
|
236
236
|
|
|
@@ -367,7 +367,7 @@ Flags:
|
|
|
367
367
|
|
|
368
368
|
## Orchestrated Review Contract
|
|
369
369
|
|
|
370
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
370
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
371
371
|
|
|
372
372
|
---
|
|
373
373
|
|
|
@@ -69,7 +69,7 @@ boundary is the trigger-and-outcome test.
|
|
|
69
69
|
|
|
70
70
|
## Orchestrated Review Contract
|
|
71
71
|
|
|
72
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
72
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
73
73
|
|
|
74
74
|
---
|
|
75
75
|
|
|
@@ -95,7 +95,7 @@ boundary is the trigger-and-outcome test.
|
|
|
95
95
|
|
|
96
96
|
## Orchestrated Review Contract
|
|
97
97
|
|
|
98
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
98
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
99
99
|
|
|
100
100
|
---
|
|
101
101
|
|
|
@@ -630,7 +630,7 @@ If the file does not exist or is not provided, proceed normally — context is o
|
|
|
630
630
|
|
|
631
631
|
## Orchestrated Review Contract
|
|
632
632
|
|
|
633
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
633
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
634
634
|
|
|
635
635
|
---
|
|
636
636
|
|
|
@@ -120,7 +120,7 @@ boundary is the trigger-and-outcome test.
|
|
|
120
120
|
|
|
121
121
|
## Orchestrated Review Contract
|
|
122
122
|
|
|
123
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
123
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
124
124
|
|
|
125
125
|
---
|
|
126
126
|
|
|
@@ -406,7 +406,7 @@ Flags:
|
|
|
406
406
|
|
|
407
407
|
## Orchestrated Review Contract
|
|
408
408
|
|
|
409
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
409
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
410
410
|
|
|
411
411
|
---
|
|
412
412
|
|
|
@@ -26,7 +26,7 @@ license: "MIT"
|
|
|
26
26
|
# Review Logic
|
|
27
27
|
|
|
28
28
|
Specialized reviewer for **logic correctness and algorithmic soundness**.
|
|
29
|
-
Inherits from the original `code-ai-review` + `code-
|
|
29
|
+
Inherits from the original `code-ai-review` + `code-learned-review` correctness phases
|
|
30
30
|
and unifies them into a single focused pass.
|
|
31
31
|
|
|
32
32
|
This reviewer does not care about formatting, naming, or architecture opinions.
|
|
@@ -174,7 +174,7 @@ Do not review unrelated files.
|
|
|
174
174
|
|
|
175
175
|
## Orchestrated Review Contract
|
|
176
176
|
|
|
177
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
177
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
178
178
|
|
|
179
179
|
---
|
|
180
180
|
|
|
@@ -28,7 +28,7 @@ triggers:
|
|
|
28
28
|
- "review --flow-graph"
|
|
29
29
|
- "review --legacy-profiles"
|
|
30
30
|
- "review --code-ai"
|
|
31
|
-
- "review --
|
|
31
|
+
- "review --learned"
|
|
32
32
|
- "review --code-style"
|
|
33
33
|
- "review --mobx-store"
|
|
34
34
|
metadata:
|
|
@@ -153,7 +153,7 @@ which of its inputs were recovered and which were never written down.
|
|
|
153
153
|
|
|
154
154
|
| Field | Type | Required | Description |
|
|
155
155
|
|-------|------|----------|-------------|
|
|
156
|
-
| `flags` | string[] | no | One or more of: `--frontend`, `--backend`, `--architecture`, `--security`, `--performance`, `--style`, `--clean-code`, `--highload`, `--project-conventions`, `--frontend-conventions`, `--testing-practices`, `--core-boundaries`, `--flow-graph`, `--legacy-profiles`, `--code-ai`, `--
|
|
156
|
+
| `flags` | string[] | no | One or more of: `--frontend`, `--backend`, `--architecture`, `--security`, `--performance`, `--style`, `--clean-code`, `--highload`, `--project-conventions`, `--frontend-conventions`, `--testing-practices`, `--core-boundaries`, `--flow-graph`, `--legacy-profiles`, `--code-ai`, `--learned`, `--code-style`, `--mobx-store`, `--verify`, `--all` |
|
|
157
157
|
| `path` | string | no | File or directory path to review (e.g., `src/stores/`, `src/components/UserCard.tsx`). Activates **path mode** — reviews the files at this path directly, not a git diff. |
|
|
158
158
|
| `commit_range` | string | no | Explicit commit hash or range (e.g., `abc123..HEAD`). Overrides merge-base detection. Ignored in path mode. |
|
|
159
159
|
| `issue_url` | string | no | GitHub issue or task URL. If provided, Stage 1 gate checks spec compliance before dispatching reviewers. |
|
|
@@ -420,7 +420,7 @@ not ask for our reasoning and is reading between other tasks.
|
|
|
420
420
|
|
|
421
421
|
## Review Context Pack
|
|
422
422
|
|
|
423
|
-
Before routing reviewers, build a compact `review_context` object. This is the shared source of truth for all sub-agents and must follow `skills/review-orchestrator/review-context.schema.json`.
|
|
423
|
+
Before routing reviewers, build a compact `review_context` object. This is the shared source of truth for all sub-agents and must follow `skills/review/review-orchestrator/review-context.schema.json`.
|
|
424
424
|
|
|
425
425
|
Required content:
|
|
426
426
|
- Request: raw user request, flags, review mode, explicit paths or commit range.
|
|
@@ -817,9 +817,9 @@ Legacy/profile reviewers are specialized review profiles that predate the review
|
|
|
817
817
|
|
|
818
818
|
| Trigger | Reviewers appended |
|
|
819
819
|
|---|---|
|
|
820
|
-
| `--legacy-profiles` | `code-ai-review` + `code-
|
|
820
|
+
| `--legacy-profiles` | `code-ai-review` + `code-learned-review` + `code-style-review` + `code-mobx-store-review` when MobX/store files are present |
|
|
821
821
|
| `--code-ai` | `code-ai-review` |
|
|
822
|
-
| `--
|
|
822
|
+
| `--learned` | `code-learned-review` |
|
|
823
823
|
| `--code-style` | `code-style-review` |
|
|
824
824
|
| `--mobx-store` | `code-mobx-store-review` |
|
|
825
825
|
| `*.store.ts`, `makeObservable`, `observable`, `computed`, `action.bound` | suggest `code-mobx-store-review` as optional profile reviewer |
|
|
@@ -839,13 +839,13 @@ Review Plan Preview must include an `Optional legacy/profile reviewers` group an
|
|
|
839
839
|
```text
|
|
840
840
|
Optional legacy/profile reviewers:
|
|
841
841
|
- code-ai-review: available via --code-ai or --legacy-profiles
|
|
842
|
-
- code-
|
|
842
|
+
- code-learned-review: available via --learned or --legacy-profiles
|
|
843
843
|
- code-style-review: available via --code-style or --legacy-profiles
|
|
844
844
|
- code-mobx-store-review: auto-suggest when *.store.ts or MobX patterns are present; available via --mobx-store or --legacy-profiles
|
|
845
845
|
|
|
846
846
|
Skipped reviewers:
|
|
847
847
|
- code-ai-review: profile reviewer, not selected unless --code-ai/--legacy-profiles
|
|
848
|
-
- code-
|
|
848
|
+
- code-learned-review: profile reviewer, not selected unless --learned/--legacy-profiles
|
|
849
849
|
- code-style-review: legacy style profile, not selected unless --code-style/--legacy-profiles
|
|
850
850
|
- code-mobx-store-review: not selected unless --mobx-store/--legacy-profiles or MobX store files are detected
|
|
851
851
|
```
|
|
@@ -989,7 +989,7 @@ Runtime rules:
|
|
|
989
989
|
|
|
990
990
|
Do not use vague fallback messages such as "running through available agent types" without naming which reviewers used fallback and why.
|
|
991
991
|
|
|
992
|
-
Pass each sub-reviewer a payload matching `skills/review-orchestrator/reviewer-input.schema.json`:
|
|
992
|
+
Pass each sub-reviewer a payload matching `skills/review/review-orchestrator/reviewer-input.schema.json`:
|
|
993
993
|
|
|
994
994
|
```yaml
|
|
995
995
|
review_context: <bounded context pack>
|
|
@@ -1012,7 +1012,7 @@ target_path: <resolved path or file list>
|
|
|
1012
1012
|
file_contents: <bounded file contents relevant to this reviewer>
|
|
1013
1013
|
```
|
|
1014
1014
|
|
|
1015
|
-
Each reviewer must return a `REVIEW_RESULT` object matching `skills/review-orchestrator/reviewer-finding.schema.json`, followed by a concise markdown summary. The orchestrator must reject or normalize free-form reports before consolidation.
|
|
1015
|
+
Each reviewer must return a `REVIEW_RESULT` object matching `skills/review/review-orchestrator/reviewer-finding.schema.json`, followed by a concise markdown summary. The orchestrator must reject or normalize free-form reports before consolidation.
|
|
1016
1016
|
|
|
1017
1017
|
**Important for path mode:** instruct each reviewer to check the **entire file**, not just changes. The scope report should say "Path: `<TARGET_PATH>`" instead of a branch/merge-base.
|
|
1018
1018
|
|
|
@@ -1034,7 +1034,7 @@ Each reviewer must return a `REVIEW_RESULT` object matching `skills/review-orche
|
|
|
1034
1034
|
| Test / e2e conventions | NO | `review-testing-practices` |
|
|
1035
1035
|
| Shared core boundary rules | NO | `review-core-boundaries` |
|
|
1036
1036
|
| Shared flow/graph abstraction contracts | NO | `review-flow-graph` |
|
|
1037
|
-
| Legacy/profile review profiles | NO | `code-ai-review`, `code-
|
|
1037
|
+
| Legacy/profile review profiles | NO | `code-ai-review`, `code-learned-review`, `code-style-review`, `code-mobx-store-review` |
|
|
1038
1038
|
|
|
1039
1039
|
---
|
|
1040
1040
|
|
|
@@ -368,7 +368,7 @@ If the file does not exist or is not provided, proceed normally — context is o
|
|
|
368
368
|
|
|
369
369
|
## Orchestrated Review Contract
|
|
370
370
|
|
|
371
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
371
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
372
372
|
|
|
373
373
|
---
|
|
374
374
|
|
|
@@ -41,7 +41,7 @@ review-pr-feedback Progress:
|
|
|
41
41
|
- [ ] Step 4: Group comments by author
|
|
42
42
|
- [ ] Step 5: Classify comment types (blocker intent / suggestion / question / nitpick)
|
|
43
43
|
- [ ] Step 6: Explain each comment + suggest concrete fix with code example
|
|
44
|
-
- [ ] Step 7:
|
|
44
|
+
- [ ] Step 7: Comments from configured learning authors — offer a learning proposal (with user consent)
|
|
45
45
|
- [ ] Step 8: Emit structured report with action items checklist
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -183,20 +183,39 @@ If confidence is Low, state both interpretations and ask the user which one appl
|
|
|
183
183
|
|
|
184
184
|
---
|
|
185
185
|
|
|
186
|
-
## Step 7:
|
|
187
|
-
|
|
188
|
-
**Detection
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
186
|
+
## Step 7: Feed the comments back into the project's learned skill
|
|
187
|
+
|
|
188
|
+
**Detection is configuration, not judgement.** Which authors teach this project is
|
|
189
|
+
declared in `.metaproject/review-learning.config.json`, alongside the local skill
|
|
190
|
+
to teach and the repository to read. Do not decide that an author is senior,
|
|
191
|
+
authoritative, or worth learning from — the file decides, and an author it does
|
|
192
|
+
not name contributes nothing.
|
|
193
|
+
|
|
194
|
+
If the file is absent, this project does not learn. Say nothing about it and skip
|
|
195
|
+
this step; absence is a supported state, not a misconfiguration.
|
|
196
|
+
|
|
197
|
+
If the file is present and names at least one author who commented on this PR:
|
|
198
|
+
|
|
199
|
+
1. Notify the user: "This PR has comments from `<login>`, a configured learning
|
|
200
|
+
source for `<module>/<skill>`."
|
|
201
|
+
2. **NEVER apply a proposal without explicit user consent.**
|
|
202
|
+
3. Ask: "Should I turn those comments into a learning proposal for
|
|
203
|
+
`<module>/<skill>`?"
|
|
204
|
+
4. If the user agrees, run the two commands. The first writes a proposal and
|
|
205
|
+
changes nothing; the second is the only writer:
|
|
206
|
+
```bash
|
|
207
|
+
keryx review learn --pr <n>
|
|
208
|
+
keryx skills learn apply .metaproject/data/gdskills/proposals/<id>.json
|
|
209
|
+
```
|
|
210
|
+
5. Present the proposal's lessons before applying. `learn` reads the record
|
|
211
|
+
`keryx review comments collect` already wrote and never re-fetches, so the
|
|
212
|
+
proposal shows exactly what would be written.
|
|
213
|
+
|
|
214
|
+
**The target is the project skill, never a rule file.** `.metaproject/rules/core/`
|
|
215
|
+
holds shipped templates that `keryx update` overwrites with force, and
|
|
216
|
+
`applyLearningProposal` refuses any target outside
|
|
217
|
+
`.metaproject/project-skills/` — a lesson written anywhere else is lost on the
|
|
218
|
+
next update, or refused outright.
|
|
200
219
|
|
|
201
220
|
---
|
|
202
221
|
|
|
@@ -318,7 +337,7 @@ If provided and the file exists, read it before fetching PR comments. If absent,
|
|
|
318
337
|
|
|
319
338
|
| Rationalization | Why it is wrong |
|
|
320
339
|
|----------------|-----------------|
|
|
321
|
-
| "I'll
|
|
340
|
+
| "I'll write these comments into a rule file without asking" | NEVER apply a learning proposal unsupervised, and never target a rule file — `keryx skills learn apply` refuses anything outside `.metaproject/project-skills/` |
|
|
322
341
|
| "The reviewer's question is just curiosity, not a real concern" | Questions often hide concerns; classify carefully |
|
|
323
342
|
| "I'll skip the 'praise' comments — they're not actionable" | Positive patterns help developers understand what to repeat |
|
|
324
343
|
| "Confidence High for an ambiguous comment" | Low confidence is honest; false confidence leads to wrong fixes |
|
|
@@ -327,7 +346,7 @@ If provided and the file exists, read it before fetching PR comments. If absent,
|
|
|
327
346
|
|
|
328
347
|
## Orchestrated Review Contract
|
|
329
348
|
|
|
330
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
349
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
331
350
|
|
|
332
351
|
---
|
|
333
352
|
|
|
@@ -373,7 +373,7 @@ If the file does not exist or is not provided, proceed normally — context is o
|
|
|
373
373
|
|
|
374
374
|
## Orchestrated Review Contract
|
|
375
375
|
|
|
376
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
376
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
377
377
|
|
|
378
378
|
---
|
|
379
379
|
|
|
@@ -229,7 +229,7 @@ boundary is the trigger-and-outcome test.
|
|
|
229
229
|
|
|
230
230
|
## Orchestrated Review Contract
|
|
231
231
|
|
|
232
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
232
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
233
233
|
|
|
234
234
|
---
|
|
235
235
|
|
|
@@ -109,7 +109,7 @@ boundary is the trigger-and-outcome test.
|
|
|
109
109
|
|
|
110
110
|
## Orchestrated Review Contract
|
|
111
111
|
|
|
112
|
-
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
112
|
+
When dispatched by `review-orchestrator`, follow the provided `reviewer-input.schema.json` payload. Return a `REVIEW_RESULT` object compatible with `skills/review/review-orchestrator/reviewer-finding.schema.json`, then a concise markdown summary. Keep findings evidence-based, include concrete `suggested_fix` for every blocker/major, and return `NEEDS_CONTEXT` instead of guessing when required context is missing.
|
|
113
113
|
|
|
114
114
|
---
|
|
115
115
|
|
|
@@ -201,7 +201,7 @@ STATUS: DONE | NEEDS_CONTEXT | BLOCKED
|
|
|
201
201
|
There is no `DONE_WITH_CONCERNS`: a verifier has no concerns of its own.
|
|
202
202
|
|
|
203
203
|
Return one object conforming to
|
|
204
|
-
`skills/review-orchestrator/verification-claim.schema.json`:
|
|
204
|
+
`skills/review/review-orchestrator/verification-claim.schema.json`:
|
|
205
205
|
|
|
206
206
|
````text
|
|
207
207
|
```json keryx:verifications
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Purpose
|
|
4
4
|
Reusable bash script for determining the review scope (merge-base) for review skills.
|
|
5
|
-
Used by: code-ai-review, code-
|
|
5
|
+
Used by: code-ai-review, code-learned-review, code-mobx-store-review, code-style-review.
|
|
6
6
|
|
|
7
7
|
## Script
|
|
8
8
|
|