@doidor/agentrig 0.9.0 → 0.11.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 (95) hide show
  1. package/README.md +88 -33
  2. package/dist/agent/copilot.js +46 -5
  3. package/dist/agent/copilot.js.map +1 -1
  4. package/dist/cli.js +44 -6
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/compile.js +3 -0
  7. package/dist/commands/compile.js.map +1 -1
  8. package/dist/commands/doctor.js +115 -8
  9. package/dist/commands/doctor.js.map +1 -1
  10. package/dist/commands/eval-dynamic.js +316 -0
  11. package/dist/commands/eval-dynamic.js.map +1 -0
  12. package/dist/commands/eval-scaffold.js +173 -0
  13. package/dist/commands/eval-scaffold.js.map +1 -0
  14. package/dist/commands/eval.js +184 -55
  15. package/dist/commands/eval.js.map +1 -1
  16. package/dist/commands/fix.js +52 -0
  17. package/dist/commands/fix.js.map +1 -0
  18. package/dist/commands/update.js +182 -16
  19. package/dist/commands/update.js.map +1 -1
  20. package/dist/core/audit.js +269 -9
  21. package/dist/core/audit.js.map +1 -1
  22. package/dist/core/compile.js +5 -1
  23. package/dist/core/compile.js.map +1 -1
  24. package/dist/core/fix.js +108 -0
  25. package/dist/core/fix.js.map +1 -0
  26. package/dist/core/install.js +50 -4
  27. package/dist/core/install.js.map +1 -1
  28. package/dist/core/markers.js +85 -0
  29. package/dist/core/markers.js.map +1 -0
  30. package/dist/core/model-family.js +31 -0
  31. package/dist/core/model-family.js.map +1 -0
  32. package/dist/core/scenario-runner.js +298 -0
  33. package/dist/core/scenario-runner.js.map +1 -0
  34. package/dist/core/state.js +11 -0
  35. package/dist/core/state.js.map +1 -1
  36. package/dist/core/validate.js +129 -0
  37. package/dist/core/validate.js.map +1 -0
  38. package/dist/prompts/index.js +121 -30
  39. package/dist/prompts/index.js.map +1 -1
  40. package/knowledge/PRINCIPLES.md +2 -2
  41. package/knowledge/manifest.json +16 -1
  42. package/knowledge/templates/AGENTS.md +8 -7
  43. package/knowledge/templates/agents/README.md +4 -4
  44. package/knowledge/templates/agents/developer.yml +1 -1
  45. package/knowledge/templates/agents/judge.yml +1 -1
  46. package/knowledge/templates/agents/reviewer.yml +1 -1
  47. package/knowledge/templates/agents/triager.yml +5 -4
  48. package/knowledge/templates/dashboard/dashboard.mjs +12 -5
  49. package/knowledge/templates/eval/RUBRIC.md +87 -64
  50. package/knowledge/templates/eval/axes.json +25 -25
  51. package/knowledge/templates/eval/calibration/README.md +54 -0
  52. package/knowledge/templates/eval/calibration/review/seed-correct.yml +43 -0
  53. package/knowledge/templates/eval/calibration/run/seed-correct.yml +35 -0
  54. package/knowledge/templates/eval/calibration/run/seed-no-verify.yml +34 -0
  55. package/knowledge/templates/eval/checks.json +92 -14
  56. package/knowledge/templates/eval/scenarios/add-small-feature/README.md +17 -0
  57. package/knowledge/templates/eval/scenarios/add-small-feature/fixture/SPEC.md +25 -0
  58. package/knowledge/templates/eval/scenarios/add-small-feature/fixture/package.json +9 -0
  59. package/knowledge/templates/eval/scenarios/add-small-feature/fixture/src/slugify.js +5 -0
  60. package/knowledge/templates/eval/scenarios/add-small-feature/fixture/tests/feature.test.js +31 -0
  61. package/knowledge/templates/eval/scenarios/add-small-feature/judge_brief.md +25 -0
  62. package/knowledge/templates/eval/scenarios/add-small-feature/oracle.yml +41 -0
  63. package/knowledge/templates/eval/scenarios/add-small-feature/prompt.md +17 -0
  64. package/knowledge/templates/eval/scenarios/add-small-feature/scenario.yml +22 -0
  65. package/knowledge/templates/eval/scenarios/fix-failing-test/README.md +18 -0
  66. package/knowledge/templates/eval/scenarios/fix-failing-test/fixture/package.json +9 -0
  67. package/knowledge/templates/eval/scenarios/fix-failing-test/fixture/src/math.js +13 -0
  68. package/knowledge/templates/eval/scenarios/fix-failing-test/fixture/tests/add.test.js +7 -0
  69. package/knowledge/templates/eval/scenarios/fix-failing-test/fixture/tests/divide.test.js +11 -0
  70. package/knowledge/templates/eval/scenarios/fix-failing-test/fixture/tests/multiply.test.js +7 -0
  71. package/knowledge/templates/eval/scenarios/fix-failing-test/judge_brief.md +20 -0
  72. package/knowledge/templates/eval/scenarios/fix-failing-test/oracle.yml +33 -0
  73. package/knowledge/templates/eval/scenarios/fix-failing-test/prompt.md +12 -0
  74. package/knowledge/templates/eval/scenarios/fix-failing-test/scenario.yml +23 -0
  75. package/knowledge/templates/eval/scenarios/review-catches-bug/README.md +17 -0
  76. package/knowledge/templates/eval/scenarios/review-catches-bug/fixture/baseline/package.json +6 -0
  77. package/knowledge/templates/eval/scenarios/review-catches-bug/fixture/baseline/src/format.js +4 -0
  78. package/knowledge/templates/eval/scenarios/review-catches-bug/fixture/baseline/src/pagination.js +7 -0
  79. package/knowledge/templates/eval/scenarios/review-catches-bug/fixture/change/src/format.js +6 -0
  80. package/knowledge/templates/eval/scenarios/review-catches-bug/fixture/change/src/pagination.js +7 -0
  81. package/knowledge/templates/eval/scenarios/review-catches-bug/judge_brief.md +38 -0
  82. package/knowledge/templates/eval/scenarios/review-catches-bug/oracle.yml +29 -0
  83. package/knowledge/templates/eval/scenarios/review-catches-bug/prompt.md +33 -0
  84. package/knowledge/templates/eval/scenarios/review-catches-bug/scenario.yml +23 -0
  85. package/knowledge/templates/eval/score.mjs +368 -42
  86. package/knowledge/templates/eval/static-audit.mjs +228 -17
  87. package/knowledge/templates/harness/state-machine.yml +18 -12
  88. package/knowledge/templates/skills/harness-eval/SKILL.md +59 -54
  89. package/knowledge/templates/skills/log-gotcha/SKILL.md +68 -0
  90. package/knowledge/templates/skills/self-verify/SKILL.md +32 -8
  91. package/package.json +4 -3
  92. package/knowledge/templates/eval/scenarios/README.md +0 -24
  93. package/knowledge/templates/eval/scenarios/add-small-feature.md +0 -28
  94. package/knowledge/templates/eval/scenarios/fix-failing-test.md +0 -27
  95. 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
 
@@ -178,26 +213,46 @@ All best practices are plain text under [`knowledge/`](knowledge/). Edit `PRINCI
178
213
  templates, or `checks.json`, then propagate to any repo:
179
214
 
180
215
  ```bash
181
- agentrig update # re-sync the latest canonical artifacts, reconciling local customizations
216
+ agentrig update # re-sync the latest canonical artifacts, reconciling local customizations
217
+ agentrig update --diff # preview drift classified 🔴 broken / 🟡 stale / 🟢 enhancement / ⚪ mixed
218
+ agentrig update --auto-fix # repair deterministic A1 failures (broken YAML / unknown model id) from canonical
182
219
  ```
183
220
 
184
- `update` refreshes AgentRig-owned files in place and asks the agent to merge changes into files you
185
- customize (like `AGENTS.md`), preserving your repo-specific facts.
221
+ `update` refreshes AgentRig-owned files in place, asks the agent to merge changes into files you
222
+ customize (like `AGENTS.md`), validates the result (YAML + model ids), and records every
223
+ preserved-file decision in `.agentrig/state.json` so the next update doesn't re-nag.
186
224
 
187
225
  ## Commands
188
226
 
189
227
  | Command | Description |
190
228
  |---------|-------------|
191
229
  | `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
- | `agentrig compile [path]` | Project AGENTS.md + rules into every agent surface (local + remote) |
193
- | `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) |
230
+ | `agentrig compile [path]` | Project AGENTS.md + rules into every agent surface (local + remote); re-populates auto-maintained marker blocks (e.g. `AGENTRIG:skills-inventory`) |
231
+ | `agentrig update [path] [--diff] [--auto-fix]` | Re-sync the latest best practices (re-compiles surfaces). `--diff` classifies preserved-file drift (🔴 broken / 🟡 stale / 🟢 enhancement / ⚪ mixed); `--auto-fix` runs `fix` after the refresh |
232
+ | `agentrig fix [path] [--dry-run]` | Deterministically repair the install: restore broken YAML from canonical, replace unknown model ids with `auto`. No agent needed; `.bak` files are written before each change |
233
+ | `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
234
  | `agentrig dashboard [path] [--html [file]] [--no-tasks] [--json]` | Roster, live GitHub tasks, score, evals |
196
- | `agentrig doctor [path] [--json]` | Health check (installed? agent reachable? score?) |
235
+ | `agentrig doctor [path] [--json]` | Health check (installed? agent reachable? score? **validation findings**? **linked-checkout vs npm latest**?) |
197
236
 
198
237
  Common options: `--model <id>`, `--dry-run`, `--skip-agent`, `--force` (init only), `--verbose`.
199
238
  Set `AGENTRIG_PROVIDER` to choose the agent backend (default `copilot`).
200
239
 
240
+ ### Self-healing the install
241
+
242
+ `agentrig update` now refuses to leave a broken install in place. After the refresh + reconcile, it
243
+ runs two deterministic validators and exits non-zero if either fails:
244
+
245
+ - **YAML validation** parses every `.agentrig/**/*.yml` (using `parseAllDocuments` so multi-doc
246
+ scenarios are tolerated). A `state-machine.yml` that doesn't parse blocks the update.
247
+ - **Model-ID validation** matches every `.agentrig/agents/*.yml`'s `model:` against the Copilot SDK
248
+ registry (live, when reachable) or a curated allowlist (offline fallback), with "did you mean…"
249
+ suggestions for typos and stale ids.
250
+
251
+ Run `agentrig update --auto-fix` (or `agentrig fix` standalone) to repair both classes from
252
+ canonical without an agent. Decisions are recorded in `.agentrig/state.json` under `reconciled[]`,
253
+ so the next `update` skips re-prompting on files you've consciously diverged on — unless canonical
254
+ has drifted past the hash that was recorded at decision time.
255
+
201
256
  ## Requirements
202
257
 
203
258
  - Node.js ≥ 22 (Node 20 is EOL; tested on the current LTS lines, 22 and 24).
@@ -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
@@ -7,14 +7,19 @@ import { evalCommand } from "./commands/eval.js";
7
7
  import { doctorCommand } from "./commands/doctor.js";
8
8
  import { dashboardCommand } from "./commands/dashboard.js";
9
9
  import { compileCommand } from "./commands/compile.js";
10
+ import { fixCommand } from "./commands/fix.js";
10
11
  import pkg from "./version.js";
11
12
  const BOOLEAN_FLAGS = new Set([
12
13
  "dry-run",
13
14
  "diff",
14
15
  "skip-agent",
16
+ "auto-fix",
15
17
  "static",
16
18
  "dynamic",
17
19
  "rubric",
20
+ "scaffold",
21
+ "allow-same-family",
22
+ "include-bundled",
18
23
  "json",
19
24
  "no-tasks",
20
25
  "verbose",
@@ -62,23 +67,37 @@ ${color.bold("Commands:")}
62
67
  skills, wiki entries, etc. are preserved.
63
68
  --force overwrite existing user content with the canonical templates
64
69
  update [path] Re-sync the latest best practices into an existing harness
65
- --diff show how your preserved files differ from canonical
70
+ --diff show how your preserved files differ from canonical
71
+ --auto-fix after refresh, restore broken YAML & invalid model ids from
72
+ canonical (deterministic, no agent required)
66
73
  compile [path] Project AGENTS.md + rules into every agent surface (local + remote):
67
74
  copilot-instructions, .github/instructions, CLAUDE.md, .cursor/rules,
68
75
  MCP, and copilot-setup-steps.yml
76
+ fix [path] Deterministically repair the install: restore broken YAML from canonical,
77
+ replace unknown model ids with a safe fallback. No agent needed.
78
+ --dry-run show what would change without writing
69
79
  eval [path] Evaluate the harness itself (defaults to the full agentic, harness-on run)
70
80
  --static fast deterministic structural audit, no model (use in CI)
71
81
  --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)
82
+ --scaffold generate repo-specific scenarios via an agent turn, using the
83
+ bundled generic scenarios as templates (--scaffold-count N, default 2)
84
+ --include-bundled include the generic 'bundled' template scenarios in the run
85
+ (default: only repo-specific scenarios run)
86
+ --scenario <id> run one scenario only (e.g. fix-failing-test)
87
+ --variant <name> label this run (default 'harness'; 'baseline' = harness OFF)
88
+ --producer-model <id> producer model (default: developer.yml model)
89
+ --judge-model <id> judge model (default: reviewer.yml model — different family)
90
+ --allow-same-family override the producer/judge family check (recorded in results)
91
+ --n <int> trials per scenario (default 1 single, 5 in baseline mode)
92
+ --seed <int> reproducibility seed (passed through where supported)
93
+ --timeout <min> absolute cap per agent turn (default 45)
75
94
  doctor [path] Quick health check (installed? agent reachable? score?)
76
95
  dashboard [path] Show agent roster, live GitHub tasks, harness score, and evals
77
96
  --html [file] write a self-contained HTML dashboard
78
97
  --no-tasks skip live GitHub lookups (offline)
79
98
 
80
99
  ${color.bold("Options:")}
81
- --model <id> Model to use for agentic steps (e.g. claude-sonnet-4.5, gpt-5)
100
+ --model <id> Model to use for agentic steps (e.g. claude-sonnet-4.6, gpt-5.5)
82
101
  --dry-run Show what would happen without writing or calling the model
83
102
  --force (init) overwrite existing user files (off by default; init is non-destructive)
84
103
  --skip-agent Install/update the canonical harness without the agentic steps
@@ -128,6 +147,7 @@ async function main() {
128
147
  return await updateCommand(repoRoot, {
129
148
  dryRun: Boolean(flags["dry-run"]),
130
149
  diff: Boolean(flags.diff),
150
+ autoFix: Boolean(flags["auto-fix"]),
131
151
  ...(model ? { model } : {}),
132
152
  verbose: Boolean(flags.verbose),
133
153
  skipAgent: Boolean(flags["skip-agent"]),
@@ -139,7 +159,15 @@ async function main() {
139
159
  mode,
140
160
  json: Boolean(flags.json),
141
161
  rubric: Boolean(flags.rubric),
162
+ scaffold: Boolean(flags.scaffold),
163
+ ...(flags["scaffold-count"] != null ? { scaffoldCount: Number(flags["scaffold-count"]) } : {}),
164
+ ...(flags["include-bundled"] ? { includeBundled: true } : {}),
142
165
  ...(model ? { model } : {}),
166
+ ...(typeof flags["producer-model"] === "string" ? { producerModel: flags["producer-model"] } : {}),
167
+ ...(typeof flags["judge-model"] === "string" ? { judgeModel: flags["judge-model"] } : {}),
168
+ ...(flags["allow-same-family"] ? { allowSameFamily: true } : {}),
169
+ ...(flags.n != null ? { trials: Number(flags.n) } : {}),
170
+ ...(flags.seed != null ? { seed: Number(flags.seed) } : {}),
143
171
  ...(flags.min != null ? { min: Number(flags.min) } : {}),
144
172
  ...(typeof flags.scenario === "string" ? { scenario: flags.scenario } : {}),
145
173
  ...(typeof flags.variant === "string" ? { variant: flags.variant } : {}),
@@ -151,6 +179,11 @@ async function main() {
151
179
  return await doctorCommand(repoRoot, { json: Boolean(flags.json) });
152
180
  case "compile":
153
181
  return compileCommand(repoRoot, { json: Boolean(flags.json) });
182
+ case "fix":
183
+ return fixCommand(repoRoot, {
184
+ dryRun: Boolean(flags["dry-run"]),
185
+ json: Boolean(flags.json),
186
+ });
154
187
  case "dashboard":
155
188
  return dashboardCommand(repoRoot, {
156
189
  json: Boolean(flags.json),
@@ -170,5 +203,10 @@ async function main() {
170
203
  return 1;
171
204
  }
172
205
  }
173
- main().then((code) => process.exit(code));
206
+ // Setting process.exitCode (instead of calling process.exit immediately) lets pending
207
+ // stdout writes drain when output is piped to another process — required because the
208
+ // JSON audit report can exceed the macOS pipe buffer and would otherwise be truncated.
209
+ main().then((code) => {
210
+ process.exitCode = code;
211
+ });
174
212
  //# 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":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,GAAG,MAAM,cAAc,CAAC;AAQ/B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,SAAS;IACT,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,MAAM;IACN,UAAU;IACV,SAAS;IACT,KAAK;IACL,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEH,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,KAAK,GAAqC,EAAE,CAAC;IACnD,IAAI,OAA2B,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACnB,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3E,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAChD,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;EAEpC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;EAEpB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;EAqBvB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;EAetB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;;;EAG1B,KAAK,CAAC,GAAG,CAAC,mGAAmG,CAAC,EAAE,CAAC;AAEnH,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAExE,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,WAAW,CAAC,QAAQ,EAAE;oBACjC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACjC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;oBACvB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC/B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBACvC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC5B,CAAC,CAAC;YACL,KAAK,QAAQ;gBACX,OAAO,MAAM,aAAa,CAAC,QAAQ,EAAE;oBACnC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACjC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACzB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC/B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;iBACxC,CAAC,CAAC;YACL,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,gGAAgG;gBAChG,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;gBACjD,OAAO,MAAM,WAAW,CAAC,QAAQ,EAAE;oBACjC,IAAI;oBACJ,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACzB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC7B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxD,GAAG,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3E,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3E,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;iBAChC,CAAC,CAAC;YACL,CAAC;YACD,KAAK,QAAQ;gBACX,OAAO,MAAM,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtE,KAAK,SAAS;gBACZ,OAAO,cAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,KAAK,WAAW;gBACd,OAAO,gBAAgB,CAAC,QAAQ,EAAE;oBAChC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBACnC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpD,CAAC,CAAC;YACL;gBACE,GAAG,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACzB,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,9 @@ export function compileCommand(repoRoot, options) {
15
15
  return setup.ok ? 0 : 1;
16
16
  }
17
17
  log.info(color.bold("AgentRig — compiling agent surfaces\n"));
18
+ if (result.markers.updated.length) {
19
+ log.ok(`AGENTS.md: refreshed marker block${result.markers.updated.length === 1 ? "" : "s"} — ${result.markers.updated.join(", ")}`);
20
+ }
18
21
  for (const p of result.generated)
19
22
  log.info(` ${color.green("✚")} ${p}`);
20
23
  for (const s of result.skipped)
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAM/C,sGAAsG;AACtG,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAuB;IACtE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnF,GAAG,CAAC,EAAE,CAAC,eAAe,MAAM,CAAC,SAAS,CAAC,MAAM,oCAAoC,CAAC,CAAC;IACnF,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC,CAAC;IACxG,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,qBAAqB,CAAC,KAA4C;IAChF,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO;IAC3B,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,EAAE,CAAC,8CAA8C,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM;QAAE,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACzE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ;QAAE,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC,CAAC;AACrG,CAAC"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,65 @@
1
+ import { existsSync, readdirSync, readFileSync, realpathSync } from "node:fs";
2
+ import { spawnSync } from "node:child_process";
1
3
  import { auditHarness } from "../core/audit.js";
2
4
  import { readState, isInstalled } from "../core/state.js";
3
5
  import { validateSetupSteps } from "../core/setupsteps.js";
6
+ import { runValidation } from "../core/validate.js";
4
7
  import { color, log } from "../core/logger.js";
5
8
  import { getProvider } from "../agent/index.js";
9
+ import { join } from "../core/fsutil.js";
10
+ import pkg from "../version.js";
11
+ /** Aggregate calibration results per judge (mirror of score.mjs calibrate --report). Returns
12
+ * the worst judge (lowest agreement) so doctor can decide whether to flag a warning. */
13
+ function summarizeCalibration(repoRoot) {
14
+ const dir = join(repoRoot, ".agentrig/eval/calibration/results");
15
+ if (!existsSync(dir))
16
+ return [];
17
+ const byJudge = new Map();
18
+ for (const f of readdirSync(dir).filter((f) => f.endsWith(".json"))) {
19
+ try {
20
+ const rec = JSON.parse(readFileSync(join(dir, f), "utf8"));
21
+ const j = rec.judgeModel ?? "unknown";
22
+ const acc = byJudge.get(j) ?? { agreementSum: 0, biasSum: 0, n: 0 };
23
+ acc.agreementSum += rec.agreement ?? 0;
24
+ acc.biasSum += rec.bias ?? 0;
25
+ acc.n += 1;
26
+ byJudge.set(j, acc);
27
+ }
28
+ catch { /* skip */ }
29
+ }
30
+ return [...byJudge.entries()].map(([judge, v]) => ({
31
+ judge,
32
+ n: v.n,
33
+ agreement: v.n ? v.agreementSum / v.n : 0,
34
+ bias: v.n ? v.biasSum / v.n : 0,
35
+ }));
36
+ }
37
+ /**
38
+ * Detect when the global `agentrig` binary resolves to a development checkout (typically via
39
+ * `npm link` or `npm install -g <local-path>`). When linked, the CLI shipped on npm may already
40
+ * be ahead — and the user's `agentrig --version` looks "current" only because they're running
41
+ * their own working copy. We surface both the realpath and the latest npm version so they can
42
+ * decide whether to `npm install -g @doidor/agentrig@latest`.
43
+ */
44
+ function detectInstallProvenance() {
45
+ const argv1 = process.argv[1] ?? "";
46
+ let real = argv1;
47
+ try {
48
+ real = realpathSync(argv1);
49
+ }
50
+ catch { /* ignore */ }
51
+ // A registry install lives under <prefix>/lib/node_modules/<scope>/<name>/…
52
+ // A linked install resolves to a path WITHOUT a `node_modules/<scope>/<name>` ancestor.
53
+ const source = /[\\/]node_modules[\\/]@?[^\\/]+[\\/][^\\/]+[\\/]/.test(real)
54
+ ? "registry"
55
+ : argv1
56
+ ? "linked-checkout"
57
+ : "unknown";
58
+ // Best-effort latest-version probe (3s timeout). Offline / unreachable → null, no harm.
59
+ const res = spawnSync("npm", ["view", "@doidor/agentrig", "version"], { encoding: "utf8", timeout: 3000 });
60
+ const npmLatest = res.status === 0 ? res.stdout.trim() : null;
61
+ return { argv1, realpath: real, source, npmLatest, current: pkg.version };
62
+ }
6
63
  /** Quick health check: is a harness installed, is the agent reachable, and what is the score. */
7
64
  export async function doctorCommand(repoRoot, options) {
8
65
  const installed = isInstalled(repoRoot);
@@ -11,30 +68,80 @@ export async function doctorCommand(repoRoot, options) {
11
68
  const setup = validateSetupSteps(repoRoot);
12
69
  const provider = getProvider();
13
70
  const pre = await provider.preflight();
71
+ const calibration = summarizeCalibration(repoRoot);
72
+ const provenance = detectInstallProvenance();
73
+ // Validation (broken YAML / unknown model ids). These are FATAL — a doctor that returns 0 on
74
+ // a broken install gives the operator a false sense of safety.
75
+ const validation = installed ? runValidation(repoRoot) : { yaml: [], models: [], hasBlockers: false };
76
+ // Worst judge below 80% agreement = a real concern (P5 gate). Missing calibration = warning only.
77
+ const CALIB_THRESHOLD = 0.8;
78
+ const worstJudge = calibration.sort((a, b) => a.agreement - b.agreement)[0] ?? null;
79
+ const calibrationOk = !worstJudge || worstJudge.agreement >= CALIB_THRESHOLD;
80
+ const versionStale = provenance.npmLatest && provenance.npmLatest !== provenance.current;
14
81
  if (options.json) {
15
82
  console.log(JSON.stringify({
16
83
  installed,
17
84
  knowledgeVersion: state?.knowledgeVersion ?? null,
18
- harnessScore: report.harnessScore,
85
+ installCompleteness: report.harnessScore,
86
+ qualityProbes: report.qualityScore,
19
87
  setupSteps: setup,
20
88
  agent: { provider: provider.name, ...pre },
89
+ calibration: { threshold: CALIB_THRESHOLD, judges: calibration, ok: calibrationOk },
90
+ install: provenance,
91
+ validation,
21
92
  }, null, 2));
22
- return installed && pre.ok ? 0 : 1;
93
+ return installed && pre.ok && calibrationOk && !validation.hasBlockers ? 0 : 1;
23
94
  }
24
95
  log.info(color.bold("AgentRig — doctor\n"));
25
- log.info(` harness installed : ${installed ? color.green("yes") : color.red("no")}`);
96
+ log.info(` harness installed : ${installed ? color.green("yes") : color.red("no")}`);
26
97
  if (state)
27
- log.info(` knowledge version : ${state.knowledgeVersion}`);
28
- log.info(` harness score : ${report.harnessScore}%`);
98
+ log.info(` knowledge version : ${state.knowledgeVersion}`);
99
+ log.info(` install completeness : ${report.harnessScore}%`);
100
+ log.info(` quality probes : ${report.qualityScore}%`);
29
101
  const setupStatus = !setup.present
30
102
  ? color.dim("not present")
31
103
  : setup.ok
32
104
  ? color.green(setup.warnings.length ? `valid (${setup.warnings.length} warning)` : "valid")
33
105
  : 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)}`);
106
+ log.info(` setup-steps.yml : ${setupStatus}`);
107
+ log.info(` agent (${provider.name}) : ${pre.ok ? color.green(pre.detail) : color.red(pre.detail)}`);
108
+ // Validation hard-failures bubble up under their own heading.
109
+ if (validation.yaml.length || validation.models.length) {
110
+ log.info("");
111
+ log.info(color.bold(" Validation"));
112
+ for (const y of validation.yaml)
113
+ log.info(` ${color.red("✗")} ${y.path}: invalid YAML — ${y.error.split("\n")[0]}`);
114
+ for (const m of validation.models) {
115
+ const hint = m.suggestions.length ? ` ${color.dim(`did you mean: ${m.suggestions.join(", ")}?`)}` : "";
116
+ log.info(` ${color.red("✗")} ${m.path}: unknown model "${m.value}"${hint}`);
117
+ }
118
+ log.info(color.dim(" Run `agentrig fix` to repair these deterministically from canonical."));
119
+ }
120
+ // Install provenance + version freshness.
121
+ log.info("");
122
+ log.info(color.bold(" Install"));
123
+ log.info(` agentrig version : ${provenance.current}${versionStale ? color.yellow(` (npm latest: ${provenance.npmLatest})`) : color.green(" (latest)")}`);
124
+ if (provenance.source === "linked-checkout") {
125
+ log.info(` install source : ${color.yellow("linked checkout")} ${color.dim(`→ ${provenance.realpath}`)}`);
126
+ log.info(color.dim(" Your `agentrig` binary points to a local dev checkout. Run `npm install -g @doidor/agentrig@latest` to switch back to the published version."));
127
+ }
128
+ else if (provenance.source === "registry") {
129
+ log.info(` install source : ${color.green("npm registry")} ${color.dim(`→ ${provenance.realpath}`)}`);
130
+ }
131
+ else {
132
+ log.info(` install source : ${color.dim("unknown")}`);
133
+ }
134
+ if (calibration.length === 0) {
135
+ log.info(` judge calibration : ${color.dim("no calibration runs yet (see .agentrig/eval/calibration/README.md)")}`);
136
+ }
137
+ else {
138
+ for (const c of calibration.sort((a, b) => a.agreement - b.agreement)) {
139
+ const mark = c.agreement >= CALIB_THRESHOLD ? color.green("ok") : color.red(`below ${CALIB_THRESHOLD * 100}% threshold`);
140
+ log.info(` judge ${c.judge.padEnd(15)} : ${(c.agreement * 100).toFixed(1)}% agreement, bias ${c.bias.toFixed(2)} ${mark}`);
141
+ }
142
+ }
36
143
  if (!installed)
37
144
  log.info(color.dim("\n Run `agentrig init` to install a harness."));
38
- return installed && pre.ok ? 0 : 1;
145
+ return installed && pre.ok && calibrationOk && !validation.hasBlockers ? 0 : 1;
39
146
  }
40
147
  //# 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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"}