@caddis/cli 0.4.9 → 0.4.10
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/bundles/antigravity-plugin/agents/code-reviewer.md +2 -2
- package/bundles/antigravity-plugin/plugin.json +1 -1
- package/bundles/antigravity-plugin/scripts/enforcement_inventory.py +1 -1
- package/bundles/antigravity-plugin/scripts/oss_review.py +10 -2
- package/bundles/antigravity-plugin/skills/cross-review/SKILL.md +5 -2
- package/bundles/antigravity-plugin/skills/spawn-session/SKILL.md +2 -2
- package/bundles/manifest.json +2 -2
- package/package.json +1 -1
|
@@ -31,7 +31,7 @@ You are a principal engineer doing a focused code review. You read the change an
|
|
|
31
31
|
## Return format (always end with this)
|
|
32
32
|
```
|
|
33
33
|
review:
|
|
34
|
-
verdict:
|
|
34
|
+
verdict: CLEAN | BLOCKING
|
|
35
35
|
blocking:
|
|
36
36
|
- file: <path:line> issue: <what> fix: <concrete suggestion>
|
|
37
37
|
should_fix:
|
|
@@ -40,7 +40,7 @@ review:
|
|
|
40
40
|
- file: <path:line> note: <what>
|
|
41
41
|
good: <one line on what's done well, if anything>
|
|
42
42
|
```
|
|
43
|
-
`verdict:
|
|
43
|
+
`verdict: CLEAN` requires an empty `blocking` list. Be specific with `file:line`. Do not fix; report.
|
|
44
44
|
|
|
45
45
|
**Then, as the very last line of your output (nothing after it), emit the machine verdict:**
|
|
46
46
|
`REVIEW: CLEAN` (empty `blocking` list) or `REVIEW: BLOCKING` (one or more blocking items). Automated
|
|
@@ -10,7 +10,7 @@ model change, context pressure, a cheaper lane, or a distracted session — and
|
|
|
10
10
|
guarantees, which is worse than reading as advice.
|
|
11
11
|
|
|
12
12
|
The things that actually held under pressure were the ones with exit codes: pytest,
|
|
13
|
-
validate_pool, the hooks, oss_review's exit
|
|
13
|
+
validate_pool, the hooks, oss_review's exit 4.
|
|
14
14
|
|
|
15
15
|
So this script measures the ratio of rules that a machine can fail on, to rules that only a
|
|
16
16
|
model can choose to honour. That number is the health metric for the plugin. It is expected to
|
|
@@ -53,10 +53,18 @@ import urllib.error
|
|
|
53
53
|
import urllib.request
|
|
54
54
|
from pathlib import Path
|
|
55
55
|
|
|
56
|
+
# ONE SCALE ACROSS caddis (see claude-harness/README.md):
|
|
57
|
+
# 0 clean · 1 blocked · 2 advisory note · 3 could not run · 4 malformed
|
|
58
|
+
# ERROR moved 2 -> 4 on 2026-09-09. It sat on 2, which caddis_gate uses for "proceed, this is
|
|
59
|
+
# worth saying" — the exact opposite, and in the dangerous direction: a caller treating 2 as
|
|
60
|
+
# advisory silently accepts a review that never ran. That is the 2026-08-10 shape, where a stale
|
|
61
|
+
# copy of this file returned CLEAN on a database write path nobody had reviewed.
|
|
62
|
+
# 2 is left FREE here. This tool has no advisory verdict; a slot that means one thing everywhere
|
|
63
|
+
# is worth more than a slot reused for something else.
|
|
56
64
|
EXIT_CLEAN = 0
|
|
57
65
|
EXIT_BLOCKING = 1
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
EXIT_CONFIG = 3 # could not run: no key, no provider, bad configuration
|
|
67
|
+
EXIT_ERROR = 4 # ran, produced nothing usable: no verdict line, transport failure, unsplittable file
|
|
60
68
|
|
|
61
69
|
# Provider presets — the SINGLE place a renamed model id or moved endpoint is edited. Adding a new
|
|
62
70
|
# provider (Qwen, a local vLLM, …) is one new row. Callers can always bypass this via env/flags.
|
|
@@ -81,7 +81,7 @@ writes. This line used to prefix the flag itself, which turned that into a doubl
|
|
|
81
81
|
Optional: `--base-url <url>`, `--model <id>` (env always overrides the preset).
|
|
82
82
|
|
|
83
83
|
**A large diff is batched, not refused.** Over `REVIEW_MAX_DIFF_CHARS` (default 60,000) the tool splits
|
|
84
|
-
on whole-file boundaries and reviews each batch, and the verdict is CLEAN only if every batch is. Exit
|
|
84
|
+
on whole-file boundaries and reviews each batch, and the verdict is CLEAN only if every batch is. Exit **4**
|
|
85
85
|
now means the narrower case — a **single file** too big to split, or more batches than the cap. When you
|
|
86
86
|
see it, the fix is usually to review that one file separately, not to narrow `--range`; don't raise
|
|
87
87
|
`--max-diff-chars` blind.
|
|
@@ -102,7 +102,10 @@ as a diff that silently is not read. Name a provider explicitly only when you ha
|
|
|
102
102
|
|
|
103
103
|
## Rules
|
|
104
104
|
- Read-only second opinion — the tool never edits, commits, or pushes. YOU apply fixes in the main thread.
|
|
105
|
-
- Treat exit
|
|
105
|
+
- Treat exit **3 or 4** as blocking-unknown, never as approval (the tool is fail-closed by
|
|
106
|
+
design). 3 = could not run, 4 = ran and produced nothing usable. **Exit 2 is not
|
|
107
|
+
emitted by this tool** — across caddis 2 always means an advisory note, and a review
|
|
108
|
+
has no advisory verdict.
|
|
106
109
|
- A different vendor means a different style; weigh its findings on merit, don't cargo-cult them.
|
|
107
110
|
- **Never use `find`, `Get-ChildItem -Recurse`, or any other filesystem-wide search to locate
|
|
108
111
|
`oss_review.py`.** Check only the two paths above. On Git Bash under Windows, `find /` (or any
|
|
@@ -348,7 +348,7 @@ immediately.
|
|
|
348
348
|
|
|
349
349
|
| Verdict | Condition | You write |
|
|
350
350
|
|---|---|---|
|
|
351
|
-
| **
|
|
351
|
+
| **ACCEPT** | every answer correct, citations check out | a short go-ahead naming the first task |
|
|
352
352
|
| **ACCEPT WITH CORRECTIONS** | broadly right; one or two facts stale or a citation wrong | the corrections, each with the file that proves it |
|
|
353
353
|
| **REJECT** | a settled decision misremembered, a withdrawn figure quoted, or a hazard misunderstood | an instruction to re-read named sections and re-answer. **Do not let it start work** |
|
|
354
354
|
|
|
@@ -383,7 +383,7 @@ Round 1's verdict sets round 2's size:
|
|
|
383
383
|
|
|
384
384
|
| Round 1 | Round 2 task |
|
|
385
385
|
|---|---|
|
|
386
|
-
|
|
|
386
|
+
| ACCEPT | a normal next item; review the outcome |
|
|
387
387
|
| ACCEPT WITH CORRECTIONS | a **small, reversible** item that writes nothing permanent; review closely |
|
|
388
388
|
| REJECT | no task — re-read and re-answer |
|
|
389
389
|
|
package/bundles/manifest.json
CHANGED
package/package.json
CHANGED