@doidor/agentrig 0.9.0 → 0.10.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.
Files changed (77) hide show
  1. package/README.md +62 -27
  2. package/dist/agent/copilot.js +46 -5
  3. package/dist/agent/copilot.js.map +1 -1
  4. package/dist/cli.js +30 -5
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/doctor.js +53 -8
  7. package/dist/commands/doctor.js.map +1 -1
  8. package/dist/commands/eval-dynamic.js +316 -0
  9. package/dist/commands/eval-dynamic.js.map +1 -0
  10. package/dist/commands/eval-scaffold.js +173 -0
  11. package/dist/commands/eval-scaffold.js.map +1 -0
  12. package/dist/commands/eval.js +184 -55
  13. package/dist/commands/eval.js.map +1 -1
  14. package/dist/core/audit.js +237 -9
  15. package/dist/core/audit.js.map +1 -1
  16. package/dist/core/model-family.js +31 -0
  17. package/dist/core/model-family.js.map +1 -0
  18. package/dist/core/scenario-runner.js +298 -0
  19. package/dist/core/scenario-runner.js.map +1 -0
  20. package/dist/prompts/index.js +121 -30
  21. package/dist/prompts/index.js.map +1 -1
  22. package/knowledge/PRINCIPLES.md +2 -2
  23. package/knowledge/manifest.json +16 -1
  24. package/knowledge/templates/AGENTS.md +7 -6
  25. package/knowledge/templates/agents/README.md +4 -4
  26. package/knowledge/templates/agents/developer.yml +1 -1
  27. package/knowledge/templates/agents/judge.yml +1 -1
  28. package/knowledge/templates/agents/reviewer.yml +1 -1
  29. package/knowledge/templates/agents/triager.yml +5 -4
  30. package/knowledge/templates/dashboard/dashboard.mjs +12 -5
  31. package/knowledge/templates/eval/RUBRIC.md +87 -64
  32. package/knowledge/templates/eval/axes.json +25 -25
  33. package/knowledge/templates/eval/calibration/README.md +54 -0
  34. package/knowledge/templates/eval/calibration/review/seed-correct.yml +43 -0
  35. package/knowledge/templates/eval/calibration/run/seed-correct.yml +35 -0
  36. package/knowledge/templates/eval/calibration/run/seed-no-verify.yml +34 -0
  37. package/knowledge/templates/eval/checks.json +88 -11
  38. package/knowledge/templates/eval/scenarios/add-small-feature/README.md +17 -0
  39. package/knowledge/templates/eval/scenarios/add-small-feature/fixture/SPEC.md +25 -0
  40. package/knowledge/templates/eval/scenarios/add-small-feature/fixture/package.json +9 -0
  41. package/knowledge/templates/eval/scenarios/add-small-feature/fixture/src/slugify.js +5 -0
  42. package/knowledge/templates/eval/scenarios/add-small-feature/fixture/tests/feature.test.js +31 -0
  43. package/knowledge/templates/eval/scenarios/add-small-feature/judge_brief.md +25 -0
  44. package/knowledge/templates/eval/scenarios/add-small-feature/oracle.yml +41 -0
  45. package/knowledge/templates/eval/scenarios/add-small-feature/prompt.md +17 -0
  46. package/knowledge/templates/eval/scenarios/add-small-feature/scenario.yml +22 -0
  47. package/knowledge/templates/eval/scenarios/fix-failing-test/README.md +18 -0
  48. package/knowledge/templates/eval/scenarios/fix-failing-test/fixture/package.json +9 -0
  49. package/knowledge/templates/eval/scenarios/fix-failing-test/fixture/src/math.js +13 -0
  50. package/knowledge/templates/eval/scenarios/fix-failing-test/fixture/tests/add.test.js +7 -0
  51. package/knowledge/templates/eval/scenarios/fix-failing-test/fixture/tests/divide.test.js +11 -0
  52. package/knowledge/templates/eval/scenarios/fix-failing-test/fixture/tests/multiply.test.js +7 -0
  53. package/knowledge/templates/eval/scenarios/fix-failing-test/judge_brief.md +20 -0
  54. package/knowledge/templates/eval/scenarios/fix-failing-test/oracle.yml +33 -0
  55. package/knowledge/templates/eval/scenarios/fix-failing-test/prompt.md +12 -0
  56. package/knowledge/templates/eval/scenarios/fix-failing-test/scenario.yml +23 -0
  57. package/knowledge/templates/eval/scenarios/review-catches-bug/README.md +17 -0
  58. package/knowledge/templates/eval/scenarios/review-catches-bug/fixture/baseline/package.json +6 -0
  59. package/knowledge/templates/eval/scenarios/review-catches-bug/fixture/baseline/src/format.js +4 -0
  60. package/knowledge/templates/eval/scenarios/review-catches-bug/fixture/baseline/src/pagination.js +7 -0
  61. package/knowledge/templates/eval/scenarios/review-catches-bug/fixture/change/src/format.js +6 -0
  62. package/knowledge/templates/eval/scenarios/review-catches-bug/fixture/change/src/pagination.js +7 -0
  63. package/knowledge/templates/eval/scenarios/review-catches-bug/judge_brief.md +38 -0
  64. package/knowledge/templates/eval/scenarios/review-catches-bug/oracle.yml +29 -0
  65. package/knowledge/templates/eval/scenarios/review-catches-bug/prompt.md +33 -0
  66. package/knowledge/templates/eval/scenarios/review-catches-bug/scenario.yml +23 -0
  67. package/knowledge/templates/eval/score.mjs +368 -42
  68. package/knowledge/templates/eval/static-audit.mjs +204 -17
  69. package/knowledge/templates/harness/state-machine.yml +18 -12
  70. package/knowledge/templates/skills/harness-eval/SKILL.md +59 -54
  71. package/knowledge/templates/skills/log-gotcha/SKILL.md +68 -0
  72. package/knowledge/templates/skills/self-verify/SKILL.md +32 -8
  73. package/package.json +4 -3
  74. package/knowledge/templates/eval/scenarios/README.md +0 -24
  75. package/knowledge/templates/eval/scenarios/add-small-feature.md +0 -28
  76. package/knowledge/templates/eval/scenarios/fix-failing-test.md +0 -27
  77. package/knowledge/templates/eval/scenarios/review-catches-bug.md +0 -30
package/README.md CHANGED
@@ -108,48 +108,83 @@ the generated files. Commit them so remote agents (and teammates' tools) pick th
108
108
  This is a first-class feature, not an afterthought — and it's **repo-specific and runnable by you**.
109
109
  The eval kit installs into your repo (`.agentrig/eval/`) and is tailored to it during `init`, so you
110
110
  can measure whether AgentRig actually helps *here*. `agentrig eval` **defaults to the full agentic,
111
- harness-on run**; add `--static` for the fast no-model audit. Two layers:
111
+ harness-on run**; add `--static` for the fast no-model audit. Three layers, each making a different
112
+ **bounded** claim:
112
113
 
113
- - **Static audit (deterministic, no model).** Maps each principle to a structural check in
114
- `.agentrig/eval/checks.json`, scored `0 / 0.5 / 1.0`, producing a **Harness Score**.
114
+ - **Layer A1 — install completeness** (deterministic, no model). Every canonical artifact present
115
+ where the manifest says it should be. This is what CI gates on.
116
+
117
+ - **Layer A2 — quality probes** (deterministic, no model). Cheap content sanity: parseable YAML,
118
+ no unfilled `{{PLACEHOLDER}}` in `AGENTS.md`, every skill carries the required frontmatter,
119
+ developer/reviewer use **different model families** (not just different ids), `axes.json` has an
120
+ issue code per axis. Diagnostic — surfaces drift without failing the build.
115
121
 
116
122
  ```bash
117
- agentrig eval --static # or: node .agentrig/eval/static-audit.mjs
118
- agentrig eval --static --min 80 # CI gate: non-zero exit below 80%
123
+ agentrig eval --static # both A1 and A2; prints sections separately
124
+ agentrig eval --static --min 80 # CI gate on A1 (Install Completeness)
119
125
  ```
120
126
 
121
- - **Dynamic behavioral eval (agentic, independent judge the default).** Runs benchmark scenarios
122
- (`.agentrig/eval/scenarios/*.md`) through the harness and scores the results with an **independent
123
- judge model**. Scoring is rigorous: a registry (`axes.json`) of bounded **issue codes per axis**,
124
- strict `0/0.5/1.0` tiers, mandatory evidence, confidence-gated rollups recomputed from the axis
125
- data, and three **lifecycle rubrics** (`spec` / `run` / `review`). `score.mjs` validates everything
126
- and never lets a judge invent codes. Runs are sandboxed (no push, no PR, no merge).
127
+ - **Layer B — dynamic behavioral eval** (agentic, **isolated** producer + judge, fixture-based).
128
+ For each scenario in `.agentrig/eval/scenarios/*/`:
129
+ 1. Seed a throwaway worktree from `scenarios/<id>/fixture/`.
130
+ 2. Producer model runs `prompt.md` in the worktree.
131
+ 3. **Deterministic oracle** (`scenarios/<id>/oracle.yml`) scores hard axes (correctness, tests,
132
+ scope, regression_risk) by running commands and inspecting the diff. No LLM.
133
+ 4. **Judge model** — a *different family* from the producer — runs in its own cwd with
134
+ `prompt.md` + `diff.patch` + `transcript.md` + `oracle.json`. It does NOT see the producer's
135
+ worktree or reasoning trace. It writes scores to a JSON file the orchestrator validates.
136
+ 5. `score.mjs save` enforces tier (`0`/`0.5`/`1.0`), issue code, evidence, **veto axes**
137
+ (correctness, gate_compliance — cosmetics can never paper over a real regression), and
138
+ **producer/judge family divergence** (override is recorded so reviewers can spot it).
127
139
 
128
140
  ```bash
129
- agentrig eval # the default: full agentic, harness-on run
130
- agentrig eval --dynamic --scenario add-small-feature --timeout 60
131
- agentrig eval --rubric # print exactly what's measured (axes, codes, scenarios)
141
+ agentrig eval --dynamic # defaults: developer.yml + reviewer.yml models
142
+ agentrig eval --dynamic --producer-model claude-sonnet-4.6 --judge-model gpt-5.5 # explicit override
143
+ agentrig eval --dynamic --scenario fix-failing-test --n 5
144
+ agentrig eval --rubric # print rubric (axes, codes, scenarios) without running
132
145
  node .agentrig/eval/score.mjs report
133
146
  ```
134
147
 
135
- **What's being evaluated?** The rubric lives in `.agentrig/eval/RUBRIC.md` and the machine-readable
136
- registry in `.agentrig/eval/axes.json`; scenarios are in `.agentrig/eval/scenarios/`. Run
137
- `agentrig eval --rubric` to print the rubric types, every axis and its issue codes, and the
138
- installed scenarios.
148
+ By default, the producer model is read from `.agentrig/agents/developer.yml` and the judge from
149
+ `.agentrig/agents/reviewer.yml` the install-completeness audit already enforces these come
150
+ from different model families. Override with explicit flags or `AGENTRIG_PRODUCER_MODEL` /
151
+ `AGENTRIG_JUDGE_MODEL` env vars.
139
152
 
140
- ### Does the harness actually help? (harness lift)
153
+ ### Does the harness actually help? (statistical harness lift)
141
154
 
142
- Prove the harness earns its keep in *your* repo by running a scenario **with** and **without** it:
155
+ Prove the harness earns its keep in *your* repo by running each scenario **with** and **without**
156
+ it, **with multiple paired trials** (single-trial deltas are coin flips):
143
157
 
144
158
  ```bash
145
- agentrig eval --dynamic --scenario <id> --variant harness # harness ON
146
- agentrig eval --dynamic --scenario <id> --variant baseline # bare agent, no AGENTS.md/rules/skills
159
+ agentrig eval --dynamic --scenario <id> --variant harness --n 5
160
+ agentrig eval --dynamic --scenario <id> --variant baseline --n 5
147
161
  node .agentrig/eval/score.mjs compare --scenario <id> --baseline baseline
148
162
  ```
149
163
 
150
- `compare --baseline` prints the per-axis and aggregate **delta** with a `HELPS`/`HURTS` verdict so
151
- you can see, and track over time, whether installing AgentRig measurably improves agent behavior here
152
- (and whether each rule/skill/prompt change is a real improvement or a regression).
164
+ `compare --baseline` pairs trial *i* of harness with trial *i* of baseline, computes the **median
165
+ delta** and a **binomial sign-test p-value**, and prints one of three verdicts:
166
+
167
+ - **HELPS** — p < 0.05 and median > 0.05 (the harness measurably improves behavior here)
168
+ - **HURTS** — p < 0.05 and median < -0.05 (regression — investigate before merging the change)
169
+ - **INCONCLUSIVE** — n < 3, p ≥ 0.05, or effect smaller than ±0.05 (need more trials)
170
+
171
+ A "HELPS" verdict on a real fixture, in a different model family than the judge, is the only thing
172
+ that justifies the line "AgentRig improved agent behavior on this repo." Anything less is honest
173
+ **inconclusive**.
174
+
175
+ ### Calibrating the judge
176
+
177
+ A lazy judge that returns 1.0 on every axis passes every save validation but tells you nothing.
178
+ `.agentrig/eval/calibration/` ships hand-labeled rubric instances; `score.mjs calibrate` runs the
179
+ judge over them and reports % within ±0.5 tier + signed bias. `agentrig doctor` flags any judge
180
+ below **80% agreement**. See `.agentrig/eval/calibration/README.md` for the format.
181
+
182
+ ### Scope honesty
183
+
184
+ The static audit verifies install completeness, not "is this harness good." The dynamic eval, with
185
+ a calibrated judge and ≥5 paired trials, gives you a statistical signal of behavior change between
186
+ variants — but it's still measuring agent + model behavior on synthetic fixtures, not your real
187
+ PR workload. Treat green checks as evidence, not certainty.
153
188
 
154
189
  ## Dashboard
155
190
 
@@ -160,7 +195,7 @@ CLI:
160
195
  - **Agent roster** — every role and the model it runs on.
161
196
  - **Live GitHub tasks** — open issues/PRs carrying each harness label, grouped by workflow state and
162
197
  showing assignees, fetched via the `gh` CLI (degrades gracefully when `gh` is absent/unauthed).
163
- - **Harness Score** — the latest static-audit score and any weak principles.
198
+ - **Install Completeness + Quality Probes** — the latest static-audit scores and any weak principles.
164
199
  - **Evals** — the latest dynamic-eval summary.
165
200
  - **Limits** — the hard caps from the state machine.
166
201
 
@@ -191,7 +226,7 @@ customize (like `AGENTS.md`), preserving your repo-specific facts.
191
226
  | `agentrig init [path]` | Investigate + install a tailored harness, then compile surfaces. **Non-destructive by default** — preserves existing AGENTS.md / .mcp.json / .agents/rules; `--force` to overwrite |
192
227
  | `agentrig compile [path]` | Project AGENTS.md + rules into every agent surface (local + remote) |
193
228
  | `agentrig update [path]` | Re-sync the latest best practices (re-compiles surfaces) |
194
- | `agentrig eval [path] [--static\|--rubric] [--scenario id] [--variant name]` | Evaluate the harness (default: agentic; `--rubric` shows what's measured) |
229
+ | `agentrig eval [path] [--static\|--rubric] [--scenario id] [--variant name] [--n trials] [--producer-model id] [--judge-model id]` | Evaluate the harness (default: agentic; `--static` for the cheap CI-safe audit; `--rubric` shows what's measured) |
195
230
  | `agentrig dashboard [path] [--html [file]] [--no-tasks] [--json]` | Roster, live GitHub tasks, score, evals |
196
231
  | `agentrig doctor [path] [--json]` | Health check (installed? agent reachable? score?) |
197
232
 
@@ -37,6 +37,37 @@ export class CopilotProvider {
37
37
  await client.stop().catch(() => undefined);
38
38
  }
39
39
  }
40
+ async validateModel(modelId) {
41
+ const client = new CopilotClient({
42
+ logLevel: "none",
43
+ env: { ...process.env, NODE_NO_WARNINGS: "1" },
44
+ });
45
+ try {
46
+ await client.start();
47
+ const models = await client.listModels();
48
+ const ids = models.map((m) => m.id);
49
+ if (ids.includes(modelId))
50
+ return { ok: true };
51
+ // "did you mean…" — same family by prefix, sorted alphabetically.
52
+ const prefix = modelId.split(/[-.]/)[0].toLowerCase();
53
+ const near = ids.filter((id) => id.toLowerCase().startsWith(prefix)).sort();
54
+ return {
55
+ ok: false,
56
+ available: ids.sort(),
57
+ detail: near.length
58
+ ? `Did you mean: ${near.slice(0, 5).join(", ")}?`
59
+ : `Available: ${ids.slice(0, 8).join(", ")}${ids.length > 8 ? ", …" : ""}`,
60
+ };
61
+ }
62
+ catch (err) {
63
+ // If the listing call itself fails (offline, auth issue), don't block — let
64
+ // startConversation surface the real error.
65
+ return { ok: true, detail: `validateModel skipped: ${err.message}` };
66
+ }
67
+ finally {
68
+ await client.stop().catch(() => undefined);
69
+ }
70
+ }
40
71
  async startConversation(options) {
41
72
  const client = new CopilotClient({
42
73
  workingDirectory: options.cwd,
@@ -44,11 +75,21 @@ export class CopilotProvider {
44
75
  env: { ...process.env, NODE_NO_WARNINGS: "1" },
45
76
  });
46
77
  await client.start();
47
- const session = await client.createSession({
48
- ...(options.model ? { model: options.model } : {}),
49
- onPermissionRequest: approveAll,
50
- ...(options.systemMessage ? { systemMessage: { content: options.systemMessage } } : {}),
51
- });
78
+ // From here on, if anything throws (typically createSession failing because the model id is
79
+ // unknown for this account), we MUST stop the client — otherwise its child runtime keeps the
80
+ // event loop alive and `agentrig eval --dynamic` hangs after the report prints.
81
+ let session;
82
+ try {
83
+ session = await client.createSession({
84
+ ...(options.model ? { model: options.model } : {}),
85
+ onPermissionRequest: approveAll,
86
+ ...(options.systemMessage ? { systemMessage: { content: options.systemMessage } } : {}),
87
+ });
88
+ }
89
+ catch (err) {
90
+ await client.stop().catch(() => undefined);
91
+ throw err;
92
+ }
52
93
  const emit = options.onEvent;
53
94
  if (emit) {
54
95
  session.on("assistant.intent", (event) => {
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/agent/copilot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/agent/copilot.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -15,6 +15,9 @@ const BOOLEAN_FLAGS = new Set([
15
15
  "static",
16
16
  "dynamic",
17
17
  "rubric",
18
+ "scaffold",
19
+ "allow-same-family",
20
+ "include-bundled",
18
21
  "json",
19
22
  "no-tasks",
20
23
  "verbose",
@@ -69,16 +72,25 @@ ${color.bold("Commands:")}
69
72
  eval [path] Evaluate the harness itself (defaults to the full agentic, harness-on run)
70
73
  --static fast deterministic structural audit, no model (use in CI)
71
74
  --rubric print what's evaluated (rubric axes, issue codes, scenarios)
72
- --scenario <id> run one scenario only (e.g. fix-failing-test)
73
- --variant <name> label this run (default 'harness'; use 'baseline' for harness-OFF)
74
- --timeout <min> absolute cap per agent turn (default 45)
75
+ --scaffold generate repo-specific scenarios via an agent turn, using the
76
+ bundled generic scenarios as templates (--scaffold-count N, default 2)
77
+ --include-bundled include the generic 'bundled' template scenarios in the run
78
+ (default: only repo-specific scenarios run)
79
+ --scenario <id> run one scenario only (e.g. fix-failing-test)
80
+ --variant <name> label this run (default 'harness'; 'baseline' = harness OFF)
81
+ --producer-model <id> producer model (default: developer.yml model)
82
+ --judge-model <id> judge model (default: reviewer.yml model — different family)
83
+ --allow-same-family override the producer/judge family check (recorded in results)
84
+ --n <int> trials per scenario (default 1 single, 5 in baseline mode)
85
+ --seed <int> reproducibility seed (passed through where supported)
86
+ --timeout <min> absolute cap per agent turn (default 45)
75
87
  doctor [path] Quick health check (installed? agent reachable? score?)
76
88
  dashboard [path] Show agent roster, live GitHub tasks, harness score, and evals
77
89
  --html [file] write a self-contained HTML dashboard
78
90
  --no-tasks skip live GitHub lookups (offline)
79
91
 
80
92
  ${color.bold("Options:")}
81
- --model <id> Model to use for agentic steps (e.g. claude-sonnet-4.5, gpt-5)
93
+ --model <id> Model to use for agentic steps (e.g. claude-sonnet-4.6, gpt-5.5)
82
94
  --dry-run Show what would happen without writing or calling the model
83
95
  --force (init) overwrite existing user files (off by default; init is non-destructive)
84
96
  --skip-agent Install/update the canonical harness without the agentic steps
@@ -139,7 +151,15 @@ async function main() {
139
151
  mode,
140
152
  json: Boolean(flags.json),
141
153
  rubric: Boolean(flags.rubric),
154
+ scaffold: Boolean(flags.scaffold),
155
+ ...(flags["scaffold-count"] != null ? { scaffoldCount: Number(flags["scaffold-count"]) } : {}),
156
+ ...(flags["include-bundled"] ? { includeBundled: true } : {}),
142
157
  ...(model ? { model } : {}),
158
+ ...(typeof flags["producer-model"] === "string" ? { producerModel: flags["producer-model"] } : {}),
159
+ ...(typeof flags["judge-model"] === "string" ? { judgeModel: flags["judge-model"] } : {}),
160
+ ...(flags["allow-same-family"] ? { allowSameFamily: true } : {}),
161
+ ...(flags.n != null ? { trials: Number(flags.n) } : {}),
162
+ ...(flags.seed != null ? { seed: Number(flags.seed) } : {}),
143
163
  ...(flags.min != null ? { min: Number(flags.min) } : {}),
144
164
  ...(typeof flags.scenario === "string" ? { scenario: flags.scenario } : {}),
145
165
  ...(typeof flags.variant === "string" ? { variant: flags.variant } : {}),
@@ -170,5 +190,10 @@ async function main() {
170
190
  return 1;
171
191
  }
172
192
  }
173
- main().then((code) => process.exit(code));
193
+ // Setting process.exitCode (instead of calling process.exit immediately) lets pending
194
+ // stdout writes drain when output is piped to another process — required because the
195
+ // JSON audit report can exceed the macOS pipe buffer and would otherwise be truncated.
196
+ main().then((code) => {
197
+ process.exitCode = code;
198
+ });
174
199
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,36 @@
1
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
1
2
  import { auditHarness } from "../core/audit.js";
2
3
  import { readState, isInstalled } from "../core/state.js";
3
4
  import { validateSetupSteps } from "../core/setupsteps.js";
4
5
  import { color, log } from "../core/logger.js";
5
6
  import { getProvider } from "../agent/index.js";
7
+ import { join } from "../core/fsutil.js";
8
+ /** Aggregate calibration results per judge (mirror of score.mjs calibrate --report). Returns
9
+ * the worst judge (lowest agreement) so doctor can decide whether to flag a warning. */
10
+ function summarizeCalibration(repoRoot) {
11
+ const dir = join(repoRoot, ".agentrig/eval/calibration/results");
12
+ if (!existsSync(dir))
13
+ return [];
14
+ const byJudge = new Map();
15
+ for (const f of readdirSync(dir).filter((f) => f.endsWith(".json"))) {
16
+ try {
17
+ const rec = JSON.parse(readFileSync(join(dir, f), "utf8"));
18
+ const j = rec.judgeModel ?? "unknown";
19
+ const acc = byJudge.get(j) ?? { agreementSum: 0, biasSum: 0, n: 0 };
20
+ acc.agreementSum += rec.agreement ?? 0;
21
+ acc.biasSum += rec.bias ?? 0;
22
+ acc.n += 1;
23
+ byJudge.set(j, acc);
24
+ }
25
+ catch { /* skip */ }
26
+ }
27
+ return [...byJudge.entries()].map(([judge, v]) => ({
28
+ judge,
29
+ n: v.n,
30
+ agreement: v.n ? v.agreementSum / v.n : 0,
31
+ bias: v.n ? v.biasSum / v.n : 0,
32
+ }));
33
+ }
6
34
  /** Quick health check: is a harness installed, is the agent reachable, and what is the score. */
7
35
  export async function doctorCommand(repoRoot, options) {
8
36
  const installed = isInstalled(repoRoot);
@@ -11,30 +39,47 @@ export async function doctorCommand(repoRoot, options) {
11
39
  const setup = validateSetupSteps(repoRoot);
12
40
  const provider = getProvider();
13
41
  const pre = await provider.preflight();
42
+ const calibration = summarizeCalibration(repoRoot);
43
+ // Worst judge below 80% agreement = a real concern (P5 gate). Missing calibration = warning only.
44
+ const CALIB_THRESHOLD = 0.8;
45
+ const worstJudge = calibration.sort((a, b) => a.agreement - b.agreement)[0] ?? null;
46
+ const calibrationOk = !worstJudge || worstJudge.agreement >= CALIB_THRESHOLD;
14
47
  if (options.json) {
15
48
  console.log(JSON.stringify({
16
49
  installed,
17
50
  knowledgeVersion: state?.knowledgeVersion ?? null,
18
- harnessScore: report.harnessScore,
51
+ installCompleteness: report.harnessScore,
52
+ qualityProbes: report.qualityScore,
19
53
  setupSteps: setup,
20
54
  agent: { provider: provider.name, ...pre },
55
+ calibration: { threshold: CALIB_THRESHOLD, judges: calibration, ok: calibrationOk },
21
56
  }, null, 2));
22
- return installed && pre.ok ? 0 : 1;
57
+ return installed && pre.ok && calibrationOk ? 0 : 1;
23
58
  }
24
59
  log.info(color.bold("AgentRig — doctor\n"));
25
- log.info(` harness installed : ${installed ? color.green("yes") : color.red("no")}`);
60
+ log.info(` harness installed : ${installed ? color.green("yes") : color.red("no")}`);
26
61
  if (state)
27
- log.info(` knowledge version : ${state.knowledgeVersion}`);
28
- log.info(` harness score : ${report.harnessScore}%`);
62
+ log.info(` knowledge version : ${state.knowledgeVersion}`);
63
+ log.info(` install completeness : ${report.harnessScore}%`);
64
+ log.info(` quality probes : ${report.qualityScore}%`);
29
65
  const setupStatus = !setup.present
30
66
  ? color.dim("not present")
31
67
  : setup.ok
32
68
  ? color.green(setup.warnings.length ? `valid (${setup.warnings.length} warning)` : "valid")
33
69
  : color.red(`${setup.errors.length} error(s)`);
34
- log.info(` setup-steps.yml : ${setupStatus}`);
35
- log.info(` agent (${provider.name}) : ${pre.ok ? color.green(pre.detail) : color.red(pre.detail)}`);
70
+ log.info(` setup-steps.yml : ${setupStatus}`);
71
+ log.info(` agent (${provider.name}) : ${pre.ok ? color.green(pre.detail) : color.red(pre.detail)}`);
72
+ if (calibration.length === 0) {
73
+ log.info(` judge calibration : ${color.dim("no calibration runs yet (see .agentrig/eval/calibration/README.md)")}`);
74
+ }
75
+ else {
76
+ for (const c of calibration.sort((a, b) => a.agreement - b.agreement)) {
77
+ const mark = c.agreement >= CALIB_THRESHOLD ? color.green("ok") : color.red(`below ${CALIB_THRESHOLD * 100}% threshold`);
78
+ log.info(` judge ${c.judge.padEnd(15)} : ${(c.agreement * 100).toFixed(1)}% agreement, bias ${c.bias.toFixed(2)} ${mark}`);
79
+ }
80
+ }
36
81
  if (!installed)
37
82
  log.info(color.dim("\n Run `agentrig init` to install a harness."));
38
- return installed && pre.ok ? 0 : 1;
83
+ return installed && pre.ok && calibrationOk ? 0 : 1;
39
84
  }
40
85
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}