review-council 1.8.1 → 1.9.0
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/README.md +52 -0
- package/dist/consensus/deduper.d.ts +1 -1
- package/dist/consensus/deduper.js +644 -7
- package/dist/consensus/deduper.js.map +1 -1
- package/dist/consensus/parser.js +81 -0
- package/dist/consensus/parser.js.map +1 -1
- package/dist/converge/attempt-budget.d.ts +57 -0
- package/dist/converge/attempt-budget.js +578 -0
- package/dist/converge/attempt-budget.js.map +1 -0
- package/dist/index.js +110 -23
- package/dist/index.js.map +1 -1
- package/dist/output/progress.d.ts +51 -0
- package/dist/output/progress.js +113 -0
- package/dist/output/progress.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -153,6 +153,52 @@ rcl roles show <name> # Show system prompt and details for a role
|
|
|
153
153
|
|
|
154
154
|
---
|
|
155
155
|
|
|
156
|
+
### `rcl converge-attempt`
|
|
157
|
+
|
|
158
|
+
Machine-enforced safety guard used by the generated `rcl-converge` skill.
|
|
159
|
+
Each call atomically and durably consumes one per-target attempt under the
|
|
160
|
+
repository's common Git directory, so the budget survives sessions, linked
|
|
161
|
+
worktrees, and abrupt system restarts.
|
|
162
|
+
New targets default to seven attempts, but an explicit invocation can set any
|
|
163
|
+
positive cap with `--max-attempts`. Omitting the flag on resume preserves the
|
|
164
|
+
persisted cap. At the boundary, RCL refuses before provider calls and directs
|
|
165
|
+
the workflow to ask the user; an approved continuation explicitly supplies a
|
|
166
|
+
higher cap.
|
|
167
|
+
|
|
168
|
+
At the skill level, `--max-attempts N` controls this machine launch budget.
|
|
169
|
+
The pre-existing `--max-rounds N` flag retains its original meaning as a
|
|
170
|
+
separate evidence-round limit (1–7), so existing invocations do not silently
|
|
171
|
+
change behavior.
|
|
172
|
+
|
|
173
|
+
Exit code 2 means the configured cap was exhausted and explicit continuation
|
|
174
|
+
approval is required. Exit code 3 means attempt accounting itself failed
|
|
175
|
+
(state, lock, Git, filesystem, or another infrastructure error); increasing
|
|
176
|
+
the cap is not the remedy. With `--json`, failures are emitted as structured
|
|
177
|
+
JSON on stderr. If the attempt is durably recorded but final lock release
|
|
178
|
+
fails, the claim still succeeds with a warning so retrying cannot spend a
|
|
179
|
+
second slot for the same intended launch.
|
|
180
|
+
|
|
181
|
+
The short accounting mutex is fully written as a private owner file and then
|
|
182
|
+
published with an exclusive hard link, which cannot replace an existing file
|
|
183
|
+
or legacy directory. State contents and, where supported, their directory
|
|
184
|
+
entry are synced before a claim succeeds. A dead owner is isolated through a
|
|
185
|
+
token-scoped hard-link tombstone before another claimant can proceed; inode
|
|
186
|
+
checks make that tombstone safe to remove after reclamation. Invalid or legacy
|
|
187
|
+
ownerless locks fail closed, and timeout errors include the manual recovery
|
|
188
|
+
path. When upgrading,
|
|
189
|
+
an evidence ledger seeds only its highest recorded round: historical failed or
|
|
190
|
+
missing-report launches cannot be reconstructed, while every claim after the
|
|
191
|
+
machine state is created is counted exactly. The state remains a same-user
|
|
192
|
+
local safety mechanism, not a tamper-proof store: deliberately deleting
|
|
193
|
+
`.git/rcl-converge-attempts` is an explicit policy bypass.
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
rcl converge-attempt --target owner-repo-123 # default/persisted cap
|
|
197
|
+
rcl converge-attempt --target owner-repo-123 --max-attempts 10 # explicit override
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
156
202
|
## Config File
|
|
157
203
|
|
|
158
204
|
Place `.review-council.yml` in your project root (or any parent directory). All fields are optional.
|
|
@@ -225,6 +271,12 @@ spec: SPEC.md
|
|
|
225
271
|
|
|
226
272
|
Supported config file names: `.review-council.yml`, `.review-council.yaml`, `.review-council.json`, `review-council.config.js`.
|
|
227
273
|
|
|
274
|
+
Before dispatch, RCL prints the expanded reviewer × chunk call count,
|
|
275
|
+
concurrency, wave count, timeout, and timeout-bound queue estimate. Interactive
|
|
276
|
+
runs update the spinner; redirected runs emit periodic heartbeat and bounded
|
|
277
|
+
completion lines with status counters, so a long queue is distinguishable from
|
|
278
|
+
a hung process.
|
|
279
|
+
|
|
228
280
|
---
|
|
229
281
|
|
|
230
282
|
## How Consensus Works
|
|
@@ -38,4 +38,4 @@ export declare function hasOpposingSentiment(a: Finding, b: Finding, specificOnl
|
|
|
38
38
|
*/
|
|
39
39
|
export declare function conceptSimilarity(a: Finding, b: Finding): number;
|
|
40
40
|
export declare function linesOverlap(a: Finding, b: Finding, window: number): boolean;
|
|
41
|
-
export declare function deduplicateFindings(reviews: ModelReview[], jaccardThreshold?: number, lineWindow?: number): DeduplicatedGroup[];
|
|
41
|
+
export declare function deduplicateFindings(reviews: ModelReview[], jaccardThreshold?: number, lineWindow?: number, minConsensusScore?: number): DeduplicatedGroup[];
|