plumbbob 0.9.3 → 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.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +92 -89
- package/dist/cli-core.js +25 -8
- package/dist/cli.js +1 -1
- package/dist/lib/agents.js +26 -26
- package/dist/lib/buildlog.js +11 -11
- package/dist/lib/buildlogsync.js +8 -8
- package/dist/lib/check.js +55 -22
- package/dist/lib/commitbody.js +72 -0
- package/dist/lib/commitmsg.js +7 -7
- package/dist/lib/git.js +44 -15
- package/dist/lib/intent.js +21 -20
- package/dist/lib/latch.js +19 -19
- package/dist/lib/orient.js +36 -17
- package/dist/lib/reentry.js +70 -0
- package/dist/lib/settings.js +16 -16
- package/dist/lib/sidecar.js +54 -54
- package/dist/lib/templates.js +1 -1
- package/dist/verbs/agent.js +27 -27
- package/dist/verbs/build.js +9 -9
- package/dist/verbs/check.js +6 -6
- package/dist/verbs/checkpoint.js +48 -47
- package/dist/verbs/doctor.js +31 -30
- package/dist/verbs/finish.js +28 -41
- package/dist/verbs/handoff.js +9 -8
- package/dist/verbs/init.js +9 -9
- package/dist/verbs/park.js +3 -3
- package/dist/verbs/recover.js +297 -0
- package/dist/verbs/revert.js +13 -13
- package/dist/verbs/spike.js +25 -19
- package/dist/verbs/start.js +49 -19
- package/dist/verbs/status.js +8 -8
- package/dist/verbs/turn.js +16 -16
- package/dist/verbs/use.js +4 -4
- package/hooks/post-edit.sh +4 -4
- package/hooks/pre-bash-commit.sh +3 -3
- package/node_modules/checkride/.claude-plugin/plugin.json +11 -0
- package/node_modules/checkride/CHANGELOG.md +1404 -0
- package/node_modules/checkride/LICENSE +201 -21
- package/node_modules/checkride/README.md +197 -38
- package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.d.ts +15 -0
- package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.d.ts.map +1 -0
- package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.js +17 -0
- package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.js.map +1 -0
- package/node_modules/checkride/dist/adapters.d.ts +30 -10
- package/node_modules/checkride/dist/adapters.d.ts.map +1 -1
- package/node_modules/checkride/dist/adapters.js +62 -23
- package/node_modules/checkride/dist/adapters.js.map +1 -1
- package/node_modules/checkride/dist/agent-setup/claude.d.ts +88 -0
- package/node_modules/checkride/dist/agent-setup/claude.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/claude.js +305 -0
- package/node_modules/checkride/dist/agent-setup/claude.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/command.d.ts +43 -0
- package/node_modules/checkride/dist/agent-setup/command.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/command.js +77 -0
- package/node_modules/checkride/dist/agent-setup/command.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/cursor.d.ts +69 -0
- package/node_modules/checkride/dist/agent-setup/cursor.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/cursor.js +247 -0
- package/node_modules/checkride/dist/agent-setup/cursor.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/files.d.ts +50 -0
- package/node_modules/checkride/dist/agent-setup/files.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/files.js +80 -0
- package/node_modules/checkride/dist/agent-setup/files.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/harness.d.ts +101 -0
- package/node_modules/checkride/dist/agent-setup/harness.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/harness.js +93 -0
- package/node_modules/checkride/dist/agent-setup/harness.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/hook.d.ts +45 -52
- package/node_modules/checkride/dist/agent-setup/hook.d.ts.map +1 -1
- package/node_modules/checkride/dist/agent-setup/hook.js +64 -95
- package/node_modules/checkride/dist/agent-setup/hook.js.map +1 -1
- package/node_modules/checkride/dist/agent-setup/index.d.ts +10 -4
- package/node_modules/checkride/dist/agent-setup/index.d.ts.map +1 -1
- package/node_modules/checkride/dist/agent-setup/index.js +9 -4
- package/node_modules/checkride/dist/agent-setup/index.js.map +1 -1
- package/node_modules/checkride/dist/agent-setup/scripts.d.ts +81 -0
- package/node_modules/checkride/dist/agent-setup/scripts.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/scripts.js +604 -0
- package/node_modules/checkride/dist/agent-setup/scripts.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/skills.d.ts +31 -0
- package/node_modules/checkride/dist/agent-setup/skills.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/skills.js +56 -0
- package/node_modules/checkride/dist/agent-setup/skills.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/configured.d.ts +30 -0
- package/node_modules/checkride/dist/artifacts/configured.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/configured.js +45 -0
- package/node_modules/checkride/dist/artifacts/configured.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/format.d.ts +33 -0
- package/node_modules/checkride/dist/artifacts/format.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/format.js +56 -0
- package/node_modules/checkride/dist/artifacts/format.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/freshness.d.ts +32 -0
- package/node_modules/checkride/dist/artifacts/freshness.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/freshness.js +37 -0
- package/node_modules/checkride/dist/artifacts/freshness.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/index.d.ts +22 -0
- package/node_modules/checkride/dist/artifacts/index.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/index.js +19 -0
- package/node_modules/checkride/dist/artifacts/index.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/json.d.ts +31 -0
- package/node_modules/checkride/dist/artifacts/json.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/json.js +47 -0
- package/node_modules/checkride/dist/artifacts/json.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/raw.d.ts +60 -0
- package/node_modules/checkride/dist/artifacts/raw.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/raw.js +91 -0
- package/node_modules/checkride/dist/artifacts/raw.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/summary.d.ts +69 -0
- package/node_modules/checkride/dist/artifacts/summary.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/summary.js +108 -0
- package/node_modules/checkride/dist/artifacts/summary.js.map +1 -0
- package/node_modules/checkride/dist/atomic.d.ts +16 -1
- package/node_modules/checkride/dist/atomic.d.ts.map +1 -1
- package/node_modules/checkride/dist/atomic.js +25 -3
- package/node_modules/checkride/dist/atomic.js.map +1 -1
- package/node_modules/checkride/dist/baseline/fallow.d.ts +9 -5
- package/node_modules/checkride/dist/baseline/fallow.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/fallow.js +163 -60
- package/node_modules/checkride/dist/baseline/fallow.js.map +1 -1
- package/node_modules/checkride/dist/baseline/fingerprint.d.ts +20 -11
- package/node_modules/checkride/dist/baseline/fingerprint.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/fingerprint.js +73 -23
- package/node_modules/checkride/dist/baseline/fingerprint.js.map +1 -1
- package/node_modules/checkride/dist/baseline/history.d.ts +98 -0
- package/node_modules/checkride/dist/baseline/history.d.ts.map +1 -0
- package/node_modules/checkride/dist/baseline/history.js +232 -0
- package/node_modules/checkride/dist/baseline/history.js.map +1 -0
- package/node_modules/checkride/dist/baseline/index.d.ts +7 -5
- package/node_modules/checkride/dist/baseline/index.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/index.js +5 -4
- package/node_modules/checkride/dist/baseline/index.js.map +1 -1
- package/node_modules/checkride/dist/baseline/store.d.ts +41 -10
- package/node_modules/checkride/dist/baseline/store.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/store.js +65 -24
- package/node_modules/checkride/dist/baseline/store.js.map +1 -1
- package/node_modules/checkride/dist/baseline-command.d.ts +5 -5
- package/node_modules/checkride/dist/baseline-command.js +7 -7
- package/node_modules/checkride/dist/baseline-command.js.map +1 -1
- package/node_modules/checkride/dist/cli.d.ts +21 -4
- package/node_modules/checkride/dist/cli.d.ts.map +1 -1
- package/node_modules/checkride/dist/cli.js +350 -36
- package/node_modules/checkride/dist/cli.js.map +1 -1
- package/node_modules/checkride/dist/config.d.ts +114 -9
- package/node_modules/checkride/dist/config.d.ts.map +1 -1
- package/node_modules/checkride/dist/config.js +142 -23
- package/node_modules/checkride/dist/config.js.map +1 -1
- package/node_modules/checkride/dist/digest/digest.d.ts +5 -5
- package/node_modules/checkride/dist/digest/digest.js +6 -6
- package/node_modules/checkride/dist/digest/index.d.ts +2 -2
- package/node_modules/checkride/dist/digest/index.js +2 -2
- package/node_modules/checkride/dist/doctor.d.ts +27 -6
- package/node_modules/checkride/dist/doctor.d.ts.map +1 -1
- package/node_modules/checkride/dist/doctor.js +231 -27
- package/node_modules/checkride/dist/doctor.js.map +1 -1
- package/node_modules/checkride/dist/gate.d.ts +180 -0
- package/node_modules/checkride/dist/gate.d.ts.map +1 -0
- package/node_modules/checkride/dist/gate.js +617 -0
- package/node_modules/checkride/dist/gate.js.map +1 -0
- package/node_modules/checkride/dist/init.d.ts +79 -12
- package/node_modules/checkride/dist/init.d.ts.map +1 -1
- package/node_modules/checkride/dist/init.js +385 -81
- package/node_modules/checkride/dist/init.js.map +1 -1
- package/node_modules/checkride/dist/json.d.ts +21 -0
- package/node_modules/checkride/dist/json.d.ts.map +1 -0
- package/node_modules/checkride/dist/json.js +21 -0
- package/node_modules/checkride/dist/json.js.map +1 -0
- package/node_modules/checkride/dist/links.d.ts +31 -5
- package/node_modules/checkride/dist/links.d.ts.map +1 -1
- package/node_modules/checkride/dist/links.js +141 -32
- package/node_modules/checkride/dist/links.js.map +1 -1
- package/node_modules/checkride/dist/node-pin.d.ts +129 -0
- package/node_modules/checkride/dist/node-pin.d.ts.map +1 -0
- package/node_modules/checkride/dist/node-pin.js +211 -0
- package/node_modules/checkride/dist/node-pin.js.map +1 -0
- package/node_modules/checkride/dist/orchestrator.d.ts +53 -10
- package/node_modules/checkride/dist/orchestrator.d.ts.map +1 -1
- package/node_modules/checkride/dist/orchestrator.js +312 -113
- package/node_modules/checkride/dist/orchestrator.js.map +1 -1
- package/node_modules/checkride/dist/pack.d.ts +8 -9
- package/node_modules/checkride/dist/pack.d.ts.map +1 -1
- package/node_modules/checkride/dist/pack.js +53 -17
- package/node_modules/checkride/dist/pack.js.map +1 -1
- package/node_modules/checkride/dist/pm/detect.d.ts +6 -1
- package/node_modules/checkride/dist/pm/detect.d.ts.map +1 -1
- package/node_modules/checkride/dist/pm/detect.js +6 -1
- package/node_modules/checkride/dist/pm/detect.js.map +1 -1
- package/node_modules/checkride/dist/pm/index.d.ts +7 -2
- package/node_modules/checkride/dist/pm/index.d.ts.map +1 -1
- package/node_modules/checkride/dist/pm/index.js +6 -2
- package/node_modules/checkride/dist/pm/index.js.map +1 -1
- package/node_modules/checkride/dist/pm/launch.d.ts +72 -0
- package/node_modules/checkride/dist/pm/launch.d.ts.map +1 -0
- package/node_modules/checkride/dist/pm/launch.js +108 -0
- package/node_modules/checkride/dist/pm/launch.js.map +1 -0
- package/node_modules/checkride/dist/pm/tools.d.ts +73 -0
- package/node_modules/checkride/dist/pm/tools.d.ts.map +1 -0
- package/node_modules/checkride/dist/pm/tools.js +124 -0
- package/node_modules/checkride/dist/pm/tools.js.map +1 -0
- package/node_modules/checkride/dist/pm/translate.d.ts +35 -9
- package/node_modules/checkride/dist/pm/translate.d.ts.map +1 -1
- package/node_modules/checkride/dist/pm/translate.js +78 -18
- package/node_modules/checkride/dist/pm/translate.js.map +1 -1
- package/node_modules/checkride/dist/proc.d.ts +30 -0
- package/node_modules/checkride/dist/proc.d.ts.map +1 -0
- package/node_modules/checkride/dist/proc.js +42 -0
- package/node_modules/checkride/dist/proc.js.map +1 -0
- package/node_modules/checkride/dist/qa/cli.d.ts +20 -0
- package/node_modules/checkride/dist/qa/cli.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/cli.js +24 -0
- package/node_modules/checkride/dist/qa/cli.js.map +1 -0
- package/node_modules/checkride/dist/qa/dead.d.ts +39 -0
- package/node_modules/checkride/dist/qa/dead.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/dead.js +88 -0
- package/node_modules/checkride/dist/qa/dead.js.map +1 -0
- package/node_modules/checkride/dist/qa/dupes.d.ts +45 -0
- package/node_modules/checkride/dist/qa/dupes.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/dupes.js +62 -0
- package/node_modules/checkride/dist/qa/dupes.js.map +1 -0
- package/node_modules/checkride/dist/qa/health.d.ts +85 -0
- package/node_modules/checkride/dist/qa/health.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/health.js +109 -0
- package/node_modules/checkride/dist/qa/health.js.map +1 -0
- package/node_modules/checkride/dist/qa/index.d.ts +23 -0
- package/node_modules/checkride/dist/qa/index.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/index.js +22 -0
- package/node_modules/checkride/dist/qa/index.js.map +1 -0
- package/node_modules/checkride/dist/qa/mutation.d.ts +80 -0
- package/node_modules/checkride/dist/qa/mutation.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/mutation.js +195 -0
- package/node_modules/checkride/dist/qa/mutation.js.map +1 -0
- package/node_modules/checkride/dist/qa/qa.d.ts +71 -0
- package/node_modules/checkride/dist/qa/qa.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/qa.js +158 -0
- package/node_modules/checkride/dist/qa/qa.js.map +1 -0
- package/node_modules/checkride/dist/qa/read.d.ts +40 -0
- package/node_modules/checkride/dist/qa/read.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/read.js +47 -0
- package/node_modules/checkride/dist/qa/read.js.map +1 -0
- package/node_modules/checkride/dist/qa/render.d.ts +26 -0
- package/node_modules/checkride/dist/qa/render.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/render.js +310 -0
- package/node_modules/checkride/dist/qa/render.js.map +1 -0
- package/node_modules/checkride/dist/recover.d.ts +48 -0
- package/node_modules/checkride/dist/recover.d.ts.map +1 -0
- package/node_modules/checkride/dist/recover.js +220 -0
- package/node_modules/checkride/dist/recover.js.map +1 -0
- package/node_modules/checkride/dist/security.d.ts +45 -0
- package/node_modules/checkride/dist/security.d.ts.map +1 -0
- package/node_modules/checkride/dist/security.js +86 -0
- package/node_modules/checkride/dist/security.js.map +1 -0
- package/node_modules/checkride/dist/smoke.d.ts +6 -6
- package/node_modules/checkride/dist/smoke.js +6 -6
- package/node_modules/checkride/dist/snippets.d.ts +27 -30
- package/node_modules/checkride/dist/snippets.d.ts.map +1 -1
- package/node_modules/checkride/dist/snippets.js +26 -30
- package/node_modules/checkride/dist/snippets.js.map +1 -1
- package/node_modules/checkride/dist/tool-json.d.ts +33 -0
- package/node_modules/checkride/dist/tool-json.d.ts.map +1 -0
- package/node_modules/checkride/dist/tool-json.js +58 -0
- package/node_modules/checkride/dist/tool-json.js.map +1 -0
- package/node_modules/checkride/dist/triage/cli.d.ts +21 -0
- package/node_modules/checkride/dist/triage/cli.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/cli.js +26 -0
- package/node_modules/checkride/dist/triage/cli.js.map +1 -0
- package/node_modules/checkride/dist/triage/doctor-fold.d.ts +51 -0
- package/node_modules/checkride/dist/triage/doctor-fold.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/doctor-fold.js +88 -0
- package/node_modules/checkride/dist/triage/doctor-fold.js.map +1 -0
- package/node_modules/checkride/dist/triage/env.d.ts +54 -0
- package/node_modules/checkride/dist/triage/env.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/env.js +81 -0
- package/node_modules/checkride/dist/triage/env.js.map +1 -0
- package/node_modules/checkride/dist/triage/gate.d.ts +61 -0
- package/node_modules/checkride/dist/triage/gate.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/gate.js +121 -0
- package/node_modules/checkride/dist/triage/gate.js.map +1 -0
- package/node_modules/checkride/dist/triage/index.d.ts +22 -0
- package/node_modules/checkride/dist/triage/index.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/index.js +20 -0
- package/node_modules/checkride/dist/triage/index.js.map +1 -0
- package/node_modules/checkride/dist/triage/render.d.ts +19 -0
- package/node_modules/checkride/dist/triage/render.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/render.js +419 -0
- package/node_modules/checkride/dist/triage/render.js.map +1 -0
- package/node_modules/checkride/dist/triage/triage.d.ts +83 -0
- package/node_modules/checkride/dist/triage/triage.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/triage.js +131 -0
- package/node_modules/checkride/dist/triage/triage.js.map +1 -0
- package/node_modules/checkride/package.json +18 -15
- package/node_modules/checkride/schema/checkride.config.schema.json +70 -5
- package/node_modules/checkride/schema/checkride.summary.schema.json +1 -1
- package/node_modules/checkride/skills/check/SKILL.md +265 -0
- package/node_modules/checkride/skills/qa/SKILL.md +231 -0
- package/node_modules/checkride/templates/shared/cspell.json +1 -0
- package/node_modules/checkride/templates/shared/oxlintrc.json +1 -1
- package/node_modules/checkride/templates/shared/styles/Repo/Drift.yml +41 -0
- package/node_modules/checkride/templates/shared/styles/Repo/Latin.yml +14 -0
- package/node_modules/checkride/templates/shared/styles/Repo/LyHyphen.yml +28 -0
- package/node_modules/checkride/templates/shared/styles/Repo/Minted.yml +33 -0
- package/node_modules/checkride/templates/shared/styles/Repo/ThereIs.yml +16 -0
- package/node_modules/checkride/templates/shared/styles/Repo/Weasel.yml +26 -0
- package/node_modules/checkride/templates/shared/vale.ini +34 -0
- package/package.json +10 -9
- package/skills/build/SKILL.md +85 -76
- package/skills/doctor/SKILL.md +11 -11
- package/skills/finish/SKILL.md +21 -18
- package/skills/harvest/SKILL.md +13 -11
- package/skills/park/SKILL.md +10 -10
- package/skills/plan/SKILL.md +69 -59
- package/skills/recover/SKILL.md +28 -0
- package/skills/refine/SKILL.md +21 -18
- package/skills/revert/SKILL.md +6 -6
- package/skills/spike/SKILL.md +9 -9
- package/skills/status/SKILL.md +5 -5
- package/skills/step/SKILL.md +20 -15
- package/skills/verify/SKILL.md +56 -46
- package/templates/build-log.md +7 -7
- package/templates/intent.md +52 -41
- package/templates/spike-report.md +10 -10
|
@@ -2,17 +2,31 @@
|
|
|
2
2
|
* Configuration: load `checkride.config.json`, detect installed tools, and
|
|
3
3
|
* resolve each slot to an adapter (or a skip reason).
|
|
4
4
|
*
|
|
5
|
-
* Resolution rule per slot
|
|
5
|
+
* Resolution rule per slot:
|
|
6
6
|
* 1. config entry wins — string picks an adapter; `false` disables the slot;
|
|
7
7
|
* `{ use, ...overrides }` picks an adapter with overrides; `{ command, args }`
|
|
8
8
|
* is a custom check needing no adapter.
|
|
9
9
|
* 2. otherwise detection — the first registry adapter for the slot whose
|
|
10
|
-
* `detect` files exist (or whose `detect` is empty,
|
|
10
|
+
* `detect` files exist (or whose `detect` is empty, that is, always available).
|
|
11
11
|
* 3. otherwise the slot is skipped (skipped ≠ failed).
|
|
12
12
|
*/
|
|
13
13
|
import type { Adapter, Order, Slot } from './adapters.js';
|
|
14
|
+
/**
|
|
15
|
+
* A comment for whoever reads the config next — never rendered, never reported.
|
|
16
|
+
*
|
|
17
|
+
* JSON has no comments, so the only place a "why is this check here" note could
|
|
18
|
+
* previously live was `description`, which is the *user-facing* string the run
|
|
19
|
+
* prints beside every check. Overloading it made the status output carry
|
|
20
|
+
* paragraphs meant for maintainers. `note` is the other half of that split: it
|
|
21
|
+
* is validated (a typo surfaces as a config error rather than silence) and then
|
|
22
|
+
* deliberately dropped — it is never copied onto an `Adapter`, so no code path
|
|
23
|
+
* can reach it from the CLI output or `.check/summary.json`.
|
|
24
|
+
*/
|
|
25
|
+
type Noted = {
|
|
26
|
+
note?: string;
|
|
27
|
+
};
|
|
14
28
|
/** A custom check: a bare command, no adapter required. */
|
|
15
|
-
export type CustomCheck = {
|
|
29
|
+
export type CustomCheck = Noted & {
|
|
16
30
|
command: string;
|
|
17
31
|
args?: string[];
|
|
18
32
|
description?: string;
|
|
@@ -39,9 +53,15 @@ export type CustomCheck = {
|
|
|
39
53
|
* default order).
|
|
40
54
|
*/
|
|
41
55
|
order?: Order;
|
|
56
|
+
/**
|
|
57
|
+
* `true` holds this check out of the default run — a slow or full-sweep-only
|
|
58
|
+
* custom check runs only under `--all`/`--include <name>`. Absent → runs by
|
|
59
|
+
* default like any custom check. See {@link UseConfig.optIn}.
|
|
60
|
+
*/
|
|
61
|
+
optIn?: boolean;
|
|
42
62
|
};
|
|
43
63
|
/** Pick an adapter by name, with optional field overrides. */
|
|
44
|
-
export type UseConfig = {
|
|
64
|
+
export type UseConfig = Noted & {
|
|
45
65
|
use: string;
|
|
46
66
|
command?: string;
|
|
47
67
|
args?: string[];
|
|
@@ -52,11 +72,47 @@ export type UseConfig = {
|
|
|
52
72
|
timeout?: number;
|
|
53
73
|
/** Scheduling order override, beating the adapter's and slot's defaults (see `Order`). */
|
|
54
74
|
order?: Order;
|
|
75
|
+
/**
|
|
76
|
+
* Links built-in only: extra directory names to skip while walking for
|
|
77
|
+
* markdown, on top of the built-in exclude set (for example `docs`, `research`,
|
|
78
|
+
* `.ridgeline`). Ignored by every other slot.
|
|
79
|
+
*/
|
|
80
|
+
exclude?: string[];
|
|
81
|
+
/**
|
|
82
|
+
* Links built-in only: regex sources for link targets to treat as always
|
|
83
|
+
* valid — deliberately illustrative links that never resolve on disk. Each is
|
|
84
|
+
* compiled at config load; a bad pattern is a friendly config error. Ignored
|
|
85
|
+
* by every other slot.
|
|
86
|
+
*/
|
|
87
|
+
allowlist?: string[];
|
|
88
|
+
/**
|
|
89
|
+
* `attw` slot only: append `--profile <name>` (for example `esm-only`) to the attw
|
|
90
|
+
* invocation — a shortcut for retyping the full `args`. Ignored by every other
|
|
91
|
+
* slot. If `args` is also overridden, the flag is appended to those args.
|
|
92
|
+
*/
|
|
93
|
+
profile?: string;
|
|
94
|
+
/**
|
|
95
|
+
* `prose` slot only: repo-relative directory of hand-written voice exemplars.
|
|
96
|
+
* Naming it does two things: the check fails when the directory is missing or
|
|
97
|
+
* empty (an anchor text the config points at must exist), and `agent-setup`
|
|
98
|
+
* adds a stanza section telling writing sessions to read and imitate the
|
|
99
|
+
* exemplars — never edit them. Ignored by every other slot.
|
|
100
|
+
*/
|
|
101
|
+
exemplars?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Override the slot's opt-in status. `true` configures the slot *without*
|
|
104
|
+
* opting it into the default run — the escape hatch from "naming a slot opts
|
|
105
|
+
* it in": run it only with `--all`/`--include <slot>`. Handy for a slot you
|
|
106
|
+
* want configured (for example `attw` with a profile) but reserved for the full
|
|
107
|
+
* sweep. `false` forces the slot into the default run. Absent → the slot's
|
|
108
|
+
* catalogue default (see {@link ResolvedCheck.explicit}).
|
|
109
|
+
*/
|
|
110
|
+
optIn?: boolean;
|
|
55
111
|
};
|
|
56
112
|
/** Per-slot config: adapter name, `false` to disable, an override, or a custom check. */
|
|
57
113
|
export type SlotConfig = string | false | UseConfig | CustomCheck;
|
|
58
114
|
/** Shape of `checkride.config.json`. */
|
|
59
|
-
export type CheckrideConfig = {
|
|
115
|
+
export type CheckrideConfig = Noted & {
|
|
60
116
|
/** URL of the JSON Schema for this file, for editor validation. Ignored by the runner. */
|
|
61
117
|
$schema?: string;
|
|
62
118
|
/**
|
|
@@ -74,6 +130,52 @@ export type CheckrideConfig = {
|
|
|
74
130
|
* disables the cap.
|
|
75
131
|
*/
|
|
76
132
|
timeout?: number;
|
|
133
|
+
/** What the stop gate runs, when the full check is too slow to pay per turn. */
|
|
134
|
+
gate?: GateProfile;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* A narrower run for the stop-gate hook than for `check` itself.
|
|
138
|
+
*
|
|
139
|
+
* The gate fires on every turn that touched a file, and a full pipeline is
|
|
140
|
+
* minutes in a large repo. Paid on every edit, that is enough friction that the
|
|
141
|
+
* rational response is to turn the gate off — which loses the guarantee
|
|
142
|
+
* entirely. A profile is the middle: a fast gate per turn, with the full check
|
|
143
|
+
* still binding wherever it already is (a commit hook, CI).
|
|
144
|
+
*
|
|
145
|
+
* **A narrowed gate must say so, every time.** Its green means less than a full
|
|
146
|
+
* green, and a green that quietly means less is the vacuous pass this whole
|
|
147
|
+
* contract exists to prevent — the same failure as a red that means nothing,
|
|
148
|
+
* inverted. `../gate.ts` puts the profile in the verdict rather than leaving the
|
|
149
|
+
* reader to infer it from a slot count.
|
|
150
|
+
*/
|
|
151
|
+
export type GateProfile = Noted & {
|
|
152
|
+
/** Run only these slots. */
|
|
153
|
+
only?: string[];
|
|
154
|
+
/** Run everything but these. */
|
|
155
|
+
skip?: string[];
|
|
156
|
+
/** Affected-only mode, as `--changed`. */
|
|
157
|
+
changed?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* A repo-owned script the generated stop-hook gate runs *before* checkride,
|
|
160
|
+
* and the one supported seam for wrapping the gate.
|
|
161
|
+
*
|
|
162
|
+
* checkride owns the generated hook scripts and overwrites them on every
|
|
163
|
+
* refresh, so a repo with something to say before the gate had nowhere to say
|
|
164
|
+
* it: editing the script lost the edit, and re-pointing the harness config lost
|
|
165
|
+
* it to the next `hooks add`. Naming the script *here* survives both, because
|
|
166
|
+
* every write re-reads this file — which is the whole reason this is a config
|
|
167
|
+
* key and not a `hooks add` flag.
|
|
168
|
+
*
|
|
169
|
+
* Path is relative to the repo root. Its exit code is read in the gate's own
|
|
170
|
+
* vocabulary, so there is one meaning per code across the whole system: **0**
|
|
171
|
+
* runs the gate, **2** blocks the turn, and anything else stands the gate down.
|
|
172
|
+
* Either non-zero branch uses the script's stdout as the message, and neither
|
|
173
|
+
* runs checkride at all.
|
|
174
|
+
*
|
|
175
|
+
* It does *not* narrow what the gate runs, so it is not part of the profile
|
|
176
|
+
* clause a narrowed verdict carries — see {@link GateProfile} above.
|
|
177
|
+
*/
|
|
178
|
+
preflight?: string;
|
|
77
179
|
};
|
|
78
180
|
/**
|
|
79
181
|
* The version-pinned URL of the published config schema, for the `$schema`
|
|
@@ -96,7 +198,9 @@ export type ResolvedCheck = {
|
|
|
96
198
|
/**
|
|
97
199
|
* True when `checks` names this slot explicitly (a non-`false` config entry).
|
|
98
200
|
* An explicit entry opts an otherwise opt-in slot into the default run — so
|
|
99
|
-
* `"format": "prettier"` runs without `--include` (see `selectChecks`).
|
|
201
|
+
* `"format": "prettier"` runs without `--include` (see `selectChecks`). A
|
|
202
|
+
* config `optIn: true` clears this (configure-without-opting-in): the slot is
|
|
203
|
+
* marked opt-in and left out of the default run despite being named.
|
|
100
204
|
*/
|
|
101
205
|
explicit?: boolean;
|
|
102
206
|
/**
|
|
@@ -114,12 +218,12 @@ export type ResolvedCheck = {
|
|
|
114
218
|
export declare function loadConfig(cwd: string): CheckrideConfig | null;
|
|
115
219
|
/**
|
|
116
220
|
* Resolve every catalogue slot (in SLOTS order) to an adapter or a skip reason,
|
|
117
|
-
* fold in the config-only custom checks (config key order), then sort into
|
|
221
|
+
* fold in the config-only custom checks (config key order), then sort into the
|
|
118
222
|
* group sequence: firsts, the numeric line ascending (`'any'`/`'middle'` at 0),
|
|
119
223
|
* singles, lasts. The natural order — catalogue before customs — is the stable
|
|
120
224
|
* within-group tie-break, so within any group catalogue members keep SLOTS order
|
|
121
|
-
* and precede customs, which keep config-key order.
|
|
122
|
-
*
|
|
225
|
+
* and precede customs, which keep config-key order. The orchestrator's wave
|
|
226
|
+
* scheduler waves on the same effective `order`.
|
|
123
227
|
*/
|
|
124
228
|
export declare function resolveChecks(input: {
|
|
125
229
|
slots: readonly Slot[];
|
|
@@ -136,4 +240,5 @@ export declare function resolveChecks(input: {
|
|
|
136
240
|
deps: ReadonlySet<string>;
|
|
137
241
|
};
|
|
138
242
|
}): ResolvedCheck[];
|
|
243
|
+
export {};
|
|
139
244
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
* Configuration: load `checkride.config.json`, detect installed tools, and
|
|
3
3
|
* resolve each slot to an adapter (or a skip reason).
|
|
4
4
|
*
|
|
5
|
-
* Resolution rule per slot
|
|
5
|
+
* Resolution rule per slot:
|
|
6
6
|
* 1. config entry wins — string picks an adapter; `false` disables the slot;
|
|
7
7
|
* `{ use, ...overrides }` picks an adapter with overrides; `{ command, args }`
|
|
8
8
|
* is a custom check needing no adapter.
|
|
9
9
|
* 2. otherwise detection — the first registry adapter for the slot whose
|
|
10
|
-
* `detect` files exist (or whose `detect` is empty,
|
|
10
|
+
* `detect` files exist (or whose `detect` is empty, that is, always available).
|
|
11
11
|
* 3. otherwise the slot is skipped (skipped ≠ failed).
|
|
12
12
|
*/
|
|
13
13
|
import { existsSync, readFileSync } from 'node:fs';
|
|
14
14
|
import { createRequire } from 'node:module';
|
|
15
15
|
import { join, relative } from 'node:path';
|
|
16
|
+
import { isRecord } from './json.js';
|
|
16
17
|
/**
|
|
17
18
|
* The version-pinned URL of the published config schema, for the `$schema`
|
|
18
19
|
* pointer `init` writes into generated configs. The `v<version>` git tag must
|
|
@@ -22,9 +23,6 @@ export function configSchemaUrl(version) {
|
|
|
22
23
|
return `https://raw.githubusercontent.com/robmclarty/checkride/v${version}/schema/checkride.config.schema.json`;
|
|
23
24
|
}
|
|
24
25
|
const CONFIG_FILE = 'checkride.config.json';
|
|
25
|
-
function isPlainObject(v) {
|
|
26
|
-
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
27
|
-
}
|
|
28
26
|
/**
|
|
29
27
|
* Recursive deep-merge with local-wins semantics: plain objects merge key by
|
|
30
28
|
* key; arrays, scalars, and type mismatches from `over` replace `base` (arrays
|
|
@@ -34,7 +32,7 @@ function deepMerge(base, over) {
|
|
|
34
32
|
const out = { ...base };
|
|
35
33
|
for (const [k, v] of Object.entries(over)) {
|
|
36
34
|
const b = out[k];
|
|
37
|
-
out[k] =
|
|
35
|
+
out[k] = isRecord(b) && isRecord(v) ? deepMerge(b, v) : v;
|
|
38
36
|
}
|
|
39
37
|
return out;
|
|
40
38
|
}
|
|
@@ -61,6 +59,91 @@ function readOrder(entry, context) {
|
|
|
61
59
|
}
|
|
62
60
|
return entry.order;
|
|
63
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Read (and validate) a config entry's `optIn` override. Returns `undefined`
|
|
64
|
+
* when absent (defer to the slot's catalogue default); throws the friendly error
|
|
65
|
+
* on a non-boolean. `context` names the offending check.
|
|
66
|
+
*/
|
|
67
|
+
function readOptIn(entry, context) {
|
|
68
|
+
if (entry.optIn === undefined)
|
|
69
|
+
return undefined;
|
|
70
|
+
if (typeof entry.optIn !== 'boolean') {
|
|
71
|
+
invalidConfig(`'${context}' optIn must be a boolean (got ${JSON.stringify(entry.optIn)})`);
|
|
72
|
+
}
|
|
73
|
+
return entry.optIn;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Validate a config entry's `note` and discard it. Nothing consumes the value —
|
|
77
|
+
* that is the whole point of {@link Noted} — but a `note` that is not a string
|
|
78
|
+
* is a mistake worth naming, and validating here is what keeps "it never
|
|
79
|
+
* renders" from also meaning "it is never checked". `context` names the
|
|
80
|
+
* offending check.
|
|
81
|
+
*/
|
|
82
|
+
function checkNote(entry, context) {
|
|
83
|
+
if (entry.note !== undefined && typeof entry.note !== 'string') {
|
|
84
|
+
invalidConfig(`'${context}' note must be a string (got ${JSON.stringify(entry.note)})`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/** True for an array whose every element is a string. */
|
|
88
|
+
function isStringArray(v) {
|
|
89
|
+
return Array.isArray(v) && v.every((e) => typeof e === 'string');
|
|
90
|
+
}
|
|
91
|
+
/** True when `src` compiles as a regular expression. */
|
|
92
|
+
function isRegexSource(src) {
|
|
93
|
+
try {
|
|
94
|
+
return new RegExp(src) instanceof RegExp;
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Validate and carry the links built-in's `exclude`/`allowlist` options off a
|
|
102
|
+
* config entry, each spread only when present. `exclude` must be a string array;
|
|
103
|
+
* `allowlist` must be a string array of compilable regexes (a bad pattern is a
|
|
104
|
+
* friendly config error, so the check never crashes on it). Meaningful only to
|
|
105
|
+
* the `links` slot — other slots ignore the fields, and the JSON schema scopes
|
|
106
|
+
* autocomplete — but validated wherever they appear so a typo surfaces as a
|
|
107
|
+
* config error, not silence. `context` names the check in any error.
|
|
108
|
+
*/
|
|
109
|
+
function carriedLinksOptions(src, context) {
|
|
110
|
+
const out = {};
|
|
111
|
+
if (src.exclude !== undefined) {
|
|
112
|
+
if (!isStringArray(src.exclude))
|
|
113
|
+
invalidConfig(`'${context}' exclude must be an array of strings`);
|
|
114
|
+
out.exclude = src.exclude;
|
|
115
|
+
}
|
|
116
|
+
if (src.allowlist !== undefined) {
|
|
117
|
+
if (!isStringArray(src.allowlist))
|
|
118
|
+
invalidConfig(`'${context}' allowlist must be an array of strings`);
|
|
119
|
+
const bad = src.allowlist.find((p) => !isRegexSource(p));
|
|
120
|
+
if (bad !== undefined) {
|
|
121
|
+
invalidConfig(`'${context}' allowlist entry ${JSON.stringify(bad)} is not a valid regular expression`);
|
|
122
|
+
}
|
|
123
|
+
out.allowlist = src.allowlist;
|
|
124
|
+
}
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Apply a config entry's `optIn` override to a resolved check. Config states the
|
|
129
|
+
* effective opt-in status directly, beating the slot's catalogue default:
|
|
130
|
+
* `true` marks the check opt-in *and* clears `explicit`, so naming a slot
|
|
131
|
+
* configures it without opting it into the default run (reach it with
|
|
132
|
+
* `--all`/`--include`); `false` forces it into the default run. Absent, or a
|
|
133
|
+
* non-object entry (a bare adapter name / `false`) that cannot carry the field,
|
|
134
|
+
* leaves resolution's slot-derived `optIn`/`explicit` untouched. `context` names
|
|
135
|
+
* the check in any error.
|
|
136
|
+
*/
|
|
137
|
+
function applyOptIn(check, entry, context) {
|
|
138
|
+
if (!(entry && typeof entry === 'object'))
|
|
139
|
+
return check;
|
|
140
|
+
const optIn = readOptIn(entry, context);
|
|
141
|
+
if (optIn === undefined)
|
|
142
|
+
return check;
|
|
143
|
+
// optIn:true clears explicit (configured, but not auto-opted-in); optIn:false
|
|
144
|
+
// forces the slot in and leaves the resolved `explicit` as it stands.
|
|
145
|
+
return optIn ? { ...check, optIn, explicit: false } : { ...check, optIn };
|
|
146
|
+
}
|
|
64
147
|
/**
|
|
65
148
|
* Read, parse, and fully resolve a config file's `extends` chain into a single
|
|
66
149
|
* merged object. `stack` holds the absolute paths currently being resolved, so
|
|
@@ -78,7 +161,7 @@ function parseConfigJson(absPath, label) {
|
|
|
78
161
|
const reason = err instanceof Error ? err.message : String(err);
|
|
79
162
|
invalidConfig(label === CONFIG_FILE ? reason : `${reason} (in ${label})`, err);
|
|
80
163
|
}
|
|
81
|
-
if (!
|
|
164
|
+
if (!isRecord(raw))
|
|
82
165
|
invalidConfig(`${label} is not a JSON object`);
|
|
83
166
|
return raw;
|
|
84
167
|
}
|
|
@@ -130,7 +213,7 @@ export function loadConfig(cwd) {
|
|
|
130
213
|
* can fill several slots under one name — `fallow` fills `dead`, `dupes`, and
|
|
131
214
|
* `health` — so `"dupes": "fallow"` must resolve to the dupes adapter, not the
|
|
132
215
|
* first `fallow` in the registry. Falls back to a name-only match so naming a
|
|
133
|
-
* cross-slot adapter (
|
|
216
|
+
* cross-slot adapter (for example reusing `oxlint` in a custom slot) still works.
|
|
134
217
|
*/
|
|
135
218
|
function byName(name, adapters, slot) {
|
|
136
219
|
return (adapters.find((a) => a.name === name && a.slot === slot) ??
|
|
@@ -162,7 +245,7 @@ function depSignal(a, manifest) {
|
|
|
162
245
|
}
|
|
163
246
|
/**
|
|
164
247
|
* Which of an adapter's detection signals fires — named for the doctor report —
|
|
165
|
-
* or `null` when none does
|
|
248
|
+
* or `null` when none does. Precedence: a present `detect` file, then
|
|
166
249
|
* `detectScript` (`scripts.<name>`), then a `detectDeps` package in
|
|
167
250
|
* dependencies/devDependencies. An adapter with no signals at all (empty
|
|
168
251
|
* `detect`, no `detectScript`/`detectDeps` — a built-in, `publint`, `attw`,
|
|
@@ -189,7 +272,7 @@ function detectAdapter(slot, adapters, fileExists, manifest) {
|
|
|
189
272
|
}
|
|
190
273
|
/**
|
|
191
274
|
* Why nothing filled `slot` on the detection path. When the slot's adapter gates
|
|
192
|
-
* on a package script (`detectScript`,
|
|
275
|
+
* on a package script (`detectScript`, for example `build`), name the missing script so
|
|
193
276
|
* an opted-in-but-scriptless slot stands down with a clear reason; otherwise the
|
|
194
277
|
* generic no-tool message.
|
|
195
278
|
*/
|
|
@@ -198,11 +281,11 @@ function undetectedReason(slot, adapters) {
|
|
|
198
281
|
return scripted ? `no '${scripted.detectScript}' script in package.json` : 'no tool detected for slot';
|
|
199
282
|
}
|
|
200
283
|
/**
|
|
201
|
-
* A slot whose adapter is gated on a package script (`detectScript`,
|
|
284
|
+
* A slot whose adapter is gated on a package script (`detectScript`, for example `build`
|
|
202
285
|
* → `scripts.build`) stands down as a skip — never a red check — when that script
|
|
203
286
|
* is absent, however the adapter was selected. Detection already filters the
|
|
204
287
|
* auto-detect path; this also covers an explicit config entry, so a shared preset
|
|
205
|
-
* that names `build` is safe on a repo that has no build script
|
|
288
|
+
* that names `build` is safe on a repo that has no build script.
|
|
206
289
|
*/
|
|
207
290
|
function standDownIfScriptless(check, manifest) {
|
|
208
291
|
const script = check.adapter?.detectScript;
|
|
@@ -226,15 +309,46 @@ function carriedOverrides(src, slot) {
|
|
|
226
309
|
...(order !== undefined ? { order } : {}),
|
|
227
310
|
};
|
|
228
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* Append attw's `--profile <name>` from the `profile` config shortcut. A no-op
|
|
314
|
+
* on any other slot (the field is documented as attw-only). `profile` must be a
|
|
315
|
+
* string; `context` names the check in the error.
|
|
316
|
+
*/
|
|
317
|
+
function applyProfile(adapter, profile, context) {
|
|
318
|
+
if (profile === undefined)
|
|
319
|
+
return adapter;
|
|
320
|
+
if (typeof profile !== 'string')
|
|
321
|
+
invalidConfig(`'${context}' profile must be a string`);
|
|
322
|
+
if (adapter.slot !== 'attw')
|
|
323
|
+
return adapter;
|
|
324
|
+
return { ...adapter, args: [...adapter.args, '--profile', profile] };
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Carry the `prose` slot's `exemplars` directory onto its adapter. A no-op on
|
|
328
|
+
* any other slot (the field is documented as prose-only). `exemplars` must be a
|
|
329
|
+
* string; `context` names the check in the error. Presence on disk is asserted
|
|
330
|
+
* at run time by the orchestrator, never here — see `missingExemplarsOutcome`.
|
|
331
|
+
*/
|
|
332
|
+
function applyExemplars(adapter, exemplars, context) {
|
|
333
|
+
if (exemplars === undefined)
|
|
334
|
+
return adapter;
|
|
335
|
+
if (typeof exemplars !== 'string')
|
|
336
|
+
invalidConfig(`'${context}' exemplars must be a string`);
|
|
337
|
+
if (adapter.slot !== 'prose')
|
|
338
|
+
return adapter;
|
|
339
|
+
return { ...adapter, exemplars };
|
|
340
|
+
}
|
|
229
341
|
function applyOverrides(base, o) {
|
|
230
|
-
|
|
342
|
+
const merged = {
|
|
231
343
|
...base,
|
|
232
344
|
...(o.command !== undefined ? { command: o.command } : {}),
|
|
233
345
|
...(o.args !== undefined ? { args: o.args } : {}),
|
|
234
346
|
...(o.outputFile !== undefined ? { outputFile: o.outputFile } : {}),
|
|
235
347
|
...(o.description !== undefined ? { description: o.description } : {}),
|
|
236
348
|
...carriedOverrides(o, base.slot),
|
|
349
|
+
...carriedLinksOptions(o, base.slot),
|
|
237
350
|
};
|
|
351
|
+
return applyExemplars(applyProfile(merged, o.profile, base.slot), o.exemplars, base.slot);
|
|
238
352
|
}
|
|
239
353
|
function customAdapter(slot, c) {
|
|
240
354
|
return {
|
|
@@ -249,7 +363,7 @@ function customAdapter(slot, c) {
|
|
|
249
363
|
devDeps: {},
|
|
250
364
|
};
|
|
251
365
|
}
|
|
252
|
-
/** Resolve a check's effective order: adapter (config-overridden) `order` ?? slot `order` ?? `'any'
|
|
366
|
+
/** Resolve a check's effective order: adapter (config-overridden) `order` ?? slot `order` ?? `'any'`. */
|
|
253
367
|
function effectiveOrder(slot, adapter) {
|
|
254
368
|
return adapter?.order ?? slot.order ?? 'any';
|
|
255
369
|
}
|
|
@@ -280,6 +394,7 @@ function skipped(slot, reason, explicit = false) {
|
|
|
280
394
|
* neither, so the caller falls through to detection.
|
|
281
395
|
*/
|
|
282
396
|
function resolveObjectEntry(slot, entry, adapters, explicit) {
|
|
397
|
+
checkNote(entry, slot.name);
|
|
283
398
|
if ('use' in entry) {
|
|
284
399
|
const base = byName(entry.use, adapters, slot.name);
|
|
285
400
|
return base
|
|
@@ -319,13 +434,15 @@ function resolveOne(slot, entry, adapters, fileExists, manifest) {
|
|
|
319
434
|
return skipped(slot, 'disabled in checkride.config.json');
|
|
320
435
|
}
|
|
321
436
|
const resolved = resolveConfigOrDetect(slot, entry, adapters, fileExists, manifest, explicit);
|
|
437
|
+
// Config may override the slot's opt-in default (configure-without-opting-in).
|
|
438
|
+
const overridden = applyOptIn(resolved, entry, slot.name);
|
|
322
439
|
// A script-gated adapter (build) stands down — never red — when its script is
|
|
323
|
-
// absent, even when config named it explicitly
|
|
324
|
-
return standDownIfScriptless(
|
|
440
|
+
// absent, even when config named it explicitly.
|
|
441
|
+
return standDownIfScriptless(overridden, manifest);
|
|
325
442
|
}
|
|
326
443
|
/**
|
|
327
444
|
* Resolve a config-only custom check (an object with `command`, keyed by a name
|
|
328
|
-
* not in the catalogue —
|
|
445
|
+
* not in the catalogue — for example a project's `"licenses"` check), or `null` when
|
|
329
446
|
* `entry` is not such a check. Its effective order rides on the resolved check
|
|
330
447
|
* (config `order` ?? `'any'`). A custom check with `detect` files stands down
|
|
331
448
|
* (skipped, not failed) when none of them are present.
|
|
@@ -333,13 +450,15 @@ function resolveOne(slot, entry, adapters, fileExists, manifest) {
|
|
|
333
450
|
function customCheckEntry(name, entry, fileExists) {
|
|
334
451
|
if (!(entry && typeof entry === 'object' && !('use' in entry) && 'command' in entry))
|
|
335
452
|
return null;
|
|
453
|
+
checkNote(entry, name);
|
|
336
454
|
const detect = entry.detect ?? [];
|
|
337
455
|
if (detect.length > 0 && !detect.some((f) => fileExists(f))) {
|
|
338
456
|
// No adapter carries the order on a skip, so pin it on the synthetic slot.
|
|
339
457
|
const order = readOrder(entry, name);
|
|
340
458
|
return skipped(order !== undefined ? { name, order } : { name }, 'no detect file present');
|
|
341
459
|
}
|
|
342
|
-
|
|
460
|
+
// A custom check with `optIn: true` is held out of the default run (full-sweep only).
|
|
461
|
+
return applyOptIn(active({ name }, customAdapter(name, entry)), entry, name);
|
|
343
462
|
}
|
|
344
463
|
/**
|
|
345
464
|
* Resolve every config-only custom check (config key order preserved), skipping
|
|
@@ -357,7 +476,7 @@ function foldCustomChecks(checks, catalogueNames, fileExists) {
|
|
|
357
476
|
}
|
|
358
477
|
return customs;
|
|
359
478
|
}
|
|
360
|
-
/** Group rank in
|
|
479
|
+
/** Group rank in the scheduling sequence: firsts (0), the numeric line incl. `'any'`/`'middle'` (1), singles (2), lasts (3). */
|
|
361
480
|
function groupRank(order) {
|
|
362
481
|
if (order === 'first')
|
|
363
482
|
return 0;
|
|
@@ -367,18 +486,18 @@ function groupRank(order) {
|
|
|
367
486
|
return 3;
|
|
368
487
|
return 1; // a number, or 'any'/'middle' — the main line
|
|
369
488
|
}
|
|
370
|
-
/** Position on the numeric line; `'any'`/`'middle'` sit at 0 (
|
|
489
|
+
/** Position on the numeric line; `'any'`/`'middle'` sit at 0 (the conservative placement). */
|
|
371
490
|
function lineValue(order) {
|
|
372
491
|
return typeof order === 'number' ? order : 0;
|
|
373
492
|
}
|
|
374
493
|
/**
|
|
375
494
|
* Resolve every catalogue slot (in SLOTS order) to an adapter or a skip reason,
|
|
376
|
-
* fold in the config-only custom checks (config key order), then sort into
|
|
495
|
+
* fold in the config-only custom checks (config key order), then sort into the
|
|
377
496
|
* group sequence: firsts, the numeric line ascending (`'any'`/`'middle'` at 0),
|
|
378
497
|
* singles, lasts. The natural order — catalogue before customs — is the stable
|
|
379
498
|
* within-group tie-break, so within any group catalogue members keep SLOTS order
|
|
380
|
-
* and precede customs, which keep config-key order.
|
|
381
|
-
*
|
|
499
|
+
* and precede customs, which keep config-key order. The orchestrator's wave
|
|
500
|
+
* scheduler waves on the same effective `order`.
|
|
382
501
|
*/
|
|
383
502
|
export function resolveChecks(input) {
|
|
384
503
|
const cwd = input.cwd ?? process.cwd();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Token-bounded failure digest
|
|
2
|
+
* Token-bounded failure digest.
|
|
3
3
|
*
|
|
4
4
|
* After a run, `--digest` writes a capped Markdown excerpt of the *failing*
|
|
5
5
|
* slots to `.check/digest.md` so an agent working through a big red repo spends
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
* per slot, a total byte budget) and never normalizes — each section points
|
|
9
9
|
* back at the authoritative raw file, which this module never touches.
|
|
10
10
|
*
|
|
11
|
-
* It reuses
|
|
12
|
-
* findings (render the first N of the same items); a slot whose adapter
|
|
13
|
-
* extractor falls back to a tail of its raw text
|
|
11
|
+
* It reuses the baseline module's per-adapter fingerprint extractors to list a
|
|
12
|
+
* slot's findings (render the first N of the same items); a slot whose adapter
|
|
13
|
+
* has no extractor falls back to a tail of its raw text. A green run has nothing
|
|
14
14
|
* to digest, so {@link writeDigest} removes any stale `.check/digest.md` — the
|
|
15
15
|
* file's presence always means "this run had failures".
|
|
16
16
|
*
|
|
17
|
-
* The `../digest` barrel (`index.ts`) is this module's only public surface
|
|
17
|
+
* The `../digest` barrel (`index.ts`) is this module's only public surface;
|
|
18
18
|
* siblings import from there, never from this file directly.
|
|
19
19
|
*/
|
|
20
20
|
import type { CheckRun, SummaryCheck } from '../orchestrator.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Token-bounded failure digest
|
|
2
|
+
* Token-bounded failure digest.
|
|
3
3
|
*
|
|
4
4
|
* After a run, `--digest` writes a capped Markdown excerpt of the *failing*
|
|
5
5
|
* slots to `.check/digest.md` so an agent working through a big red repo spends
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
* per slot, a total byte budget) and never normalizes — each section points
|
|
9
9
|
* back at the authoritative raw file, which this module never touches.
|
|
10
10
|
*
|
|
11
|
-
* It reuses
|
|
12
|
-
* findings (render the first N of the same items); a slot whose adapter
|
|
13
|
-
* extractor falls back to a tail of its raw text
|
|
11
|
+
* It reuses the baseline module's per-adapter fingerprint extractors to list a
|
|
12
|
+
* slot's findings (render the first N of the same items); a slot whose adapter
|
|
13
|
+
* has no extractor falls back to a tail of its raw text. A green run has nothing
|
|
14
14
|
* to digest, so {@link writeDigest} removes any stale `.check/digest.md` — the
|
|
15
15
|
* file's presence always means "this run had failures".
|
|
16
16
|
*
|
|
17
|
-
* The `../digest` barrel (`index.ts`) is this module's only public surface
|
|
17
|
+
* The `../digest` barrel (`index.ts`) is this module's only public surface;
|
|
18
18
|
* siblings import from there, never from this file directly.
|
|
19
19
|
*/
|
|
20
20
|
import { rm } from 'node:fs/promises';
|
|
@@ -25,7 +25,7 @@ import { fingerprint } from '../baseline/index.js';
|
|
|
25
25
|
export const DIGEST_FILE = 'digest.md';
|
|
26
26
|
/**
|
|
27
27
|
* Conservative defaults: ~10 findings a slot and an 8 KB ceiling keep even a
|
|
28
|
-
* fully
|
|
28
|
+
* fully red repo's digest to roughly two thousand tokens — small enough to read
|
|
29
29
|
* in one gulp, with the raw files a click away for the rest.
|
|
30
30
|
*/
|
|
31
31
|
const DEFAULT_BUDGET = { maxItemsPerSlot: 10, maxBytes: 8000 };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Digest module — the token-bounded failure excerpt
|
|
3
|
-
* the module's only public surface
|
|
2
|
+
* Digest module — the token-bounded failure excerpt. This barrel is
|
|
3
|
+
* the module's only public surface: siblings import from `../digest`, never
|
|
4
4
|
* from `./digest.js` directly.
|
|
5
5
|
*/
|
|
6
6
|
export { buildDigest, DIGEST_FILE, writeDigest } from './digest.js';
|