@mrciphersmith/keryx 0.3.86 → 0.3.87
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 +1693 -663
- package/dist/core.js +5 -1
- package/package.json +1 -1
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.detail.md +16 -0
- package/src/gdskills/bundled/skills/review/review-orchestrator/SKILL.md +13 -14
- package/src/gdskills/bundled/skills/review/review-orchestrator/reviewer-input.schema.json +9 -1
package/dist/core.js
CHANGED
|
@@ -10852,7 +10852,7 @@ var init_skill_length_ceilings = __esm(() => {
|
|
|
10852
10852
|
"review/review-jev-scenarios": 187,
|
|
10853
10853
|
"review/review-layout": 238,
|
|
10854
10854
|
"review/review-logic": 377,
|
|
10855
|
-
"review/review-orchestrator":
|
|
10855
|
+
"review/review-orchestrator": 1614,
|
|
10856
10856
|
"review/review-performance": 374,
|
|
10857
10857
|
"review/review-pr-feedback": 895,
|
|
10858
10858
|
"review/review-regression": 216,
|
|
@@ -25505,6 +25505,10 @@ function dispatchErrors(value) {
|
|
|
25505
25505
|
errors.push(`${role}: missing or shared execution identity`);
|
|
25506
25506
|
if (text(run.executionId))
|
|
25507
25507
|
executions.add(run.executionId);
|
|
25508
|
+
if (run.status === "not-run") {
|
|
25509
|
+
errors.push(`${role}: not run${text(run.notRunReason) ? ` (${run.notRunReason})` : ""}; a reviewer that did not run is never a clean pass`);
|
|
25510
|
+
continue;
|
|
25511
|
+
}
|
|
25508
25512
|
if (run.status !== "complete" || run.scopeComplete !== true)
|
|
25509
25513
|
errors.push(`${role}: reviewer scope is incomplete`);
|
|
25510
25514
|
if (!text(run.rawEvidence))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrciphersmith/keryx",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.87",
|
|
4
4
|
"description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -657,3 +657,19 @@ State what made the original claim wrong, in one sentence, and if the same
|
|
|
657
657
|
reasoning error has now happened twice in one review, say that too. A reviewer
|
|
658
658
|
that names its own recurring error is calibrating; one that quietly drops a
|
|
659
659
|
finding is hiding a result.
|
|
660
|
+
|
|
661
|
+
## Job Context Awareness
|
|
662
|
+
|
|
663
|
+
When dispatched by `job-orchestrator` or called with an explicit context path, the prompt MAY include:
|
|
664
|
+
|
|
665
|
+
```
|
|
666
|
+
JOB_NAME: <job-name>
|
|
667
|
+
CONTEXT_PATH: .metaproject/jobs/<job-name>/ai/context.md
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
If provided and the file exists, read the context document **before** running scope detection.
|
|
671
|
+
Use it to understand:
|
|
672
|
+
- Intentionally chosen libraries and patterns (do not flag as issues)
|
|
673
|
+
- Architectural decisions already agreed upon, and acceptance criteria driving the Stage 1 spec compliance gate
|
|
674
|
+
|
|
675
|
+
If absent, proceed normally — context is optional and non-blocking.
|
|
@@ -13,7 +13,7 @@ triggers:
|
|
|
13
13
|
- "review --legacy-profiles"
|
|
14
14
|
metadata:
|
|
15
15
|
author: "MrCipherSmith"
|
|
16
|
-
version: "1.
|
|
16
|
+
version: "1.11.0"
|
|
17
17
|
category: "review"
|
|
18
18
|
compatible_harnesses: "cursor,codex,zed,opencode,claude"
|
|
19
19
|
license: "MIT"
|
|
@@ -77,6 +77,17 @@ Publish this checklist with `plan_set` under the ids `step-0`…`step-14` once,
|
|
|
77
77
|
- A reply is a result only if it starts with a `STATUS:` line and carries a `REVIEW_RESULT` block matching `reviewer-finding.schema.json`; anything else is `BLOCKED`.
|
|
78
78
|
- The model comes from `keryx review tier` (Step 6).
|
|
79
79
|
|
|
80
|
+
## Shell host (keryx shell, or any host with no file-reading subagent) — mandatory
|
|
81
|
+
|
|
82
|
+
A reviewer on this host cannot open a path: its file tool reads inside its working directory only, and a pointer it cannot follow becomes a round spent on a refusal. So the pointer rule above does not apply; the TEXT travels in the prompt, in slices small enough to finish.
|
|
83
|
+
|
|
84
|
+
1. **Slice first.** `keryx review slice --ref <base> --out <dir>` after `keryx review scope`. It writes `slice-NN.diff` files of at most 150000 bytes each and a `manifest.json`; ledgers (csv, lockfiles, snapshots, generated files) are listed under `omissions` with a reason — list them in the report as not reviewed, never as clean.
|
|
85
|
+
2. **Slice text in the prompt.** Each reviewer's prompt holds the content of the slices assigned to it (the file bodies, not their paths), plus the `slices` ids in its reviewer-input.
|
|
86
|
+
3. **Check before dispatch.** `keryx review dispatch-check --payload <file> --manifest <dir>/manifest.json` for the wave; exit 1 means a payload names no slice, is over the ceiling, or breaks `reviewer-input.schema.json`. Fix it; do not dispatch around it.
|
|
87
|
+
4. **One batch.** Dispatch the whole wave — up to 10 reviewers — in one message, not one at a time.
|
|
88
|
+
5. **Incomplete means retry once, then Not run.** On `INCOMPLETE` or `BLOCKED`, `keryx review retry-plan --manifest <dir>/manifest.json --result <result.json>` decides: it cuts the assigned slices in half and names the one retry, and after that prints the `- **Not run:** …` line to paste into the report. An unfinished reviewer is never counted as a clean pass.
|
|
89
|
+
6. **Machine artifacts by direct write.** Save slices, payloads and results by redirection or `keryx ctx run --raw -- <command>`; the summarized form of `keryx ctx run` drops the bytes a later step parses.
|
|
90
|
+
|
|
80
91
|
## Control
|
|
81
92
|
|
|
82
93
|
- **Profiles.** The default is read-only: one round, no edits. `--fix` hands the findings to `flow-orchestrator` or `task-implementer`; the orchestrator never edits code. Control returns to this main session after each hand-off, which loads this skill again (never the implementer, which would nest); each re-review counts toward the ceiling (it adds 1 to the count).
|
|
@@ -1568,19 +1579,7 @@ and name unchecked commits. Do not duplicate findings; cite extended ones.
|
|
|
1568
1579
|
|
|
1569
1580
|
## Job Context Awareness
|
|
1570
1581
|
|
|
1571
|
-
When
|
|
1572
|
-
|
|
1573
|
-
```
|
|
1574
|
-
JOB_NAME: <job-name>
|
|
1575
|
-
CONTEXT_PATH: .metaproject/jobs/<job-name>/ai/context.md
|
|
1576
|
-
```
|
|
1577
|
-
|
|
1578
|
-
If provided and the file exists, read the context document **before** running scope detection.
|
|
1579
|
-
Use it to understand:
|
|
1580
|
-
- Intentionally chosen libraries and patterns (do not flag as issues)
|
|
1581
|
-
- Architectural decisions already agreed upon, and acceptance criteria driving the Stage 1 spec compliance gate
|
|
1582
|
-
|
|
1583
|
-
If absent, proceed normally — context is optional and non-blocking.
|
|
1582
|
+
When a prompt carries `JOB_NAME` and `CONTEXT_PATH`, read that context document before scope detection (`SKILL.detail.md` § "Job Context Awareness"). It is optional and non-blocking.
|
|
1584
1583
|
|
|
1585
1584
|
---
|
|
1586
1585
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"string",
|
|
23
23
|
"null"
|
|
24
24
|
],
|
|
25
|
-
"description": "Absolute path of the reviewer's registered `<path>/SKILL.md`, set for every reviewer from the `project` half of `keryx review reviewers --json` and omitted for a bundled one. The file is the reviewer's definition: it overrides the built-in definition of a same-named agent type, whichever runtime branch dispatches it. A path that does not exist makes the reviewer BLOCKED, never substituted. Optional
|
|
25
|
+
"description": "Absolute path of the reviewer's registered `<path>/SKILL.md`, set for every reviewer from the `project` half of `keryx review reviewers --json` and omitted for a bundled one. The file is the reviewer's definition: it overrides the built-in definition of a same-named agent type, whichever runtime branch dispatches it. A path that does not exist makes the reviewer BLOCKED, never substituted. Optional. `keryx review dispatch-check --payload <file>` validates a payload against this schema and refuses a `diff` scope that names no slice or whose assigned bytes exceed the ceiling."
|
|
26
26
|
},
|
|
27
27
|
"scope_mode": {
|
|
28
28
|
"type": "string",
|
|
@@ -31,6 +31,14 @@
|
|
|
31
31
|
"path"
|
|
32
32
|
]
|
|
33
33
|
},
|
|
34
|
+
"slices": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"description": "Slice ids (or manifest-relative paths) from `keryx review slice` that this reviewer is assigned. A `diff` scope names its slices here or carries a `diff` that fits the slice ceiling; `keryx review dispatch-check` refuses a payload that does neither.",
|
|
37
|
+
"items": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1
|
|
40
|
+
}
|
|
41
|
+
},
|
|
34
42
|
"context_doc": {
|
|
35
43
|
"type": [
|
|
36
44
|
"string",
|