plumbbob 0.8.14 → 0.8.18

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 (85) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +6 -0
  3. package/dist/lib/agents.js +1 -1
  4. package/dist/lib/check.js +9 -6
  5. package/dist/verbs/finish.js +4 -2
  6. package/node_modules/checkride/CHANGELOG.md +234 -0
  7. package/node_modules/checkride/README.md +134 -31
  8. package/node_modules/checkride/dist/adapters.d.ts +50 -1
  9. package/node_modules/checkride/dist/adapters.d.ts.map +1 -1
  10. package/node_modules/checkride/dist/adapters.js +123 -7
  11. package/node_modules/checkride/dist/adapters.js.map +1 -1
  12. package/node_modules/checkride/dist/agent-setup/hook.d.ts.map +1 -1
  13. package/node_modules/checkride/dist/agent-setup/hook.js +15 -1
  14. package/node_modules/checkride/dist/agent-setup/hook.js.map +1 -1
  15. package/node_modules/checkride/dist/agent-setup/index.d.ts +0 -1
  16. package/node_modules/checkride/dist/agent-setup/index.d.ts.map +1 -1
  17. package/node_modules/checkride/dist/agent-setup/index.js.map +1 -1
  18. package/node_modules/checkride/dist/baseline/fallow.d.ts +64 -0
  19. package/node_modules/checkride/dist/baseline/fallow.d.ts.map +1 -0
  20. package/node_modules/checkride/dist/baseline/fallow.js +256 -0
  21. package/node_modules/checkride/dist/baseline/fallow.js.map +1 -0
  22. package/node_modules/checkride/dist/baseline/fingerprint.d.ts +4 -6
  23. package/node_modules/checkride/dist/baseline/fingerprint.d.ts.map +1 -1
  24. package/node_modules/checkride/dist/baseline/fingerprint.js +9 -4
  25. package/node_modules/checkride/dist/baseline/fingerprint.js.map +1 -1
  26. package/node_modules/checkride/dist/baseline/index.d.ts +4 -5
  27. package/node_modules/checkride/dist/baseline/index.d.ts.map +1 -1
  28. package/node_modules/checkride/dist/baseline/index.js +2 -2
  29. package/node_modules/checkride/dist/baseline/index.js.map +1 -1
  30. package/node_modules/checkride/dist/{baseline/command.d.ts → baseline-command.d.ts} +11 -9
  31. package/node_modules/checkride/dist/baseline-command.d.ts.map +1 -0
  32. package/node_modules/checkride/dist/{baseline/command.js → baseline-command.js} +9 -7
  33. package/node_modules/checkride/dist/baseline-command.js.map +1 -0
  34. package/node_modules/checkride/dist/cli.d.ts.map +1 -1
  35. package/node_modules/checkride/dist/cli.js +95 -8
  36. package/node_modules/checkride/dist/cli.js.map +1 -1
  37. package/node_modules/checkride/dist/config.d.ts +37 -12
  38. package/node_modules/checkride/dist/config.d.ts.map +1 -1
  39. package/node_modules/checkride/dist/config.js +268 -60
  40. package/node_modules/checkride/dist/config.js.map +1 -1
  41. package/node_modules/checkride/dist/digest/digest.d.ts +0 -6
  42. package/node_modules/checkride/dist/digest/digest.d.ts.map +1 -1
  43. package/node_modules/checkride/dist/digest/digest.js +3 -3
  44. package/node_modules/checkride/dist/digest/digest.js.map +1 -1
  45. package/node_modules/checkride/dist/digest/index.d.ts +1 -2
  46. package/node_modules/checkride/dist/digest/index.d.ts.map +1 -1
  47. package/node_modules/checkride/dist/digest/index.js +1 -1
  48. package/node_modules/checkride/dist/digest/index.js.map +1 -1
  49. package/node_modules/checkride/dist/doctor.d.ts +14 -1
  50. package/node_modules/checkride/dist/doctor.d.ts.map +1 -1
  51. package/node_modules/checkride/dist/doctor.js +124 -55
  52. package/node_modules/checkride/dist/doctor.js.map +1 -1
  53. package/node_modules/checkride/dist/init.d.ts +6 -0
  54. package/node_modules/checkride/dist/init.d.ts.map +1 -1
  55. package/node_modules/checkride/dist/init.js +347 -121
  56. package/node_modules/checkride/dist/init.js.map +1 -1
  57. package/node_modules/checkride/dist/links.d.ts.map +1 -1
  58. package/node_modules/checkride/dist/links.js +8 -9
  59. package/node_modules/checkride/dist/links.js.map +1 -1
  60. package/node_modules/checkride/dist/orchestrator.d.ts +56 -1
  61. package/node_modules/checkride/dist/orchestrator.d.ts.map +1 -1
  62. package/node_modules/checkride/dist/orchestrator.js +506 -138
  63. package/node_modules/checkride/dist/orchestrator.js.map +1 -1
  64. package/node_modules/checkride/dist/pack.d.ts +76 -0
  65. package/node_modules/checkride/dist/pack.d.ts.map +1 -0
  66. package/node_modules/checkride/dist/pack.js +217 -0
  67. package/node_modules/checkride/dist/pack.js.map +1 -0
  68. package/node_modules/checkride/dist/pm/translate.d.ts +18 -10
  69. package/node_modules/checkride/dist/pm/translate.d.ts.map +1 -1
  70. package/node_modules/checkride/dist/pm/translate.js +27 -13
  71. package/node_modules/checkride/dist/pm/translate.js.map +1 -1
  72. package/node_modules/checkride/dist/smoke.d.ts +86 -0
  73. package/node_modules/checkride/dist/smoke.d.ts.map +1 -0
  74. package/node_modules/checkride/dist/smoke.js +346 -0
  75. package/node_modules/checkride/dist/smoke.js.map +1 -0
  76. package/node_modules/checkride/dist/snippets.d.ts +215 -0
  77. package/node_modules/checkride/dist/snippets.d.ts.map +1 -0
  78. package/node_modules/checkride/dist/snippets.js +360 -0
  79. package/node_modules/checkride/dist/snippets.js.map +1 -0
  80. package/node_modules/checkride/package.json +4 -2
  81. package/node_modules/checkride/schema/checkride.config.schema.json +11 -6
  82. package/package.json +4 -3
  83. package/skills/pb-finish/SKILL.md +15 -2
  84. package/node_modules/checkride/dist/baseline/command.d.ts.map +0 -1
  85. package/node_modules/checkride/dist/baseline/command.js.map +0 -1
@@ -12,6 +12,17 @@
12
12
  */
13
13
  /** The aggregate-report schema version written to `.check/summary.json`. */
14
14
  export declare const SCHEMA_VERSION = 1;
15
+ /**
16
+ * A check's scheduling order. Numbers form a single ascending line — equal
17
+ * values run together as one concurrent wave, decimals sequence steps within a
18
+ * wave (`1` before `1.1`), a barrier sits between distinct values. The five
19
+ * keywords place a check relative to that line: `'first'`/`'last'` before/after
20
+ * everything, `'single'` exclusively on its own (after the numeric line, before
21
+ * `'last'`), and `'middle'`/`'any'` unordered in the main group. Effective order
22
+ * resolves config `order` ?? `Adapter.order` ?? `Slot.order` ?? `'any'`.
23
+ */
24
+ export type OrderString = 'first' | 'last' | 'middle' | 'single' | 'any';
25
+ export type Order = number | OrderString;
15
26
  /** A role in the pipeline. */
16
27
  export type Slot = {
17
28
  /** Stable slot name, e.g. `'lint'`. Used by `--only`/`--skip` and the report. */
@@ -22,6 +33,11 @@ export type Slot = {
22
33
  * entry opts you in — see `resolveChecks`/`selectChecks`).
23
34
  */
24
35
  optIn?: boolean;
36
+ /**
37
+ * Default scheduling order for this slot — the lowest-precedence source, which
38
+ * config and adapter overrides beat. Omitted means `'any'` (the main group).
39
+ */
40
+ order?: Order;
25
41
  };
26
42
  /** A concrete tool that can fill a slot. */
27
43
  export type Adapter = {
@@ -33,6 +49,19 @@ export type Adapter = {
33
49
  description: string;
34
50
  /** Config files whose presence activates this adapter. `[]` = always available. */
35
51
  detect: string[];
52
+ /**
53
+ * Detection by package script: the slot is available when `scripts.<name>`
54
+ * exists in package.json. `build` uses `scripts.build` — an opted-in `build`
55
+ * on a repo with no build script stands down as a skip, never a red check (D18).
56
+ */
57
+ detectScript?: string;
58
+ /**
59
+ * Backup detection signal: the slot activates when a `detect` file exists OR
60
+ * one of these packages appears in dependencies/devDependencies. Populated only
61
+ * on adapters whose tool runs correctly with zero config (D18), so a repo that
62
+ * installed the tool but never wrote its config file still opts in.
63
+ */
64
+ detectDeps?: string[];
36
65
  /** Command to spawn (usually `'pnpm'`). Ignored when `builtin` is set. */
37
66
  command: string;
38
67
  /** Arguments to the command. Ignored when `builtin` is set. */
@@ -47,10 +76,30 @@ export type Adapter = {
47
76
  timeout?: number;
48
77
  /** In-process check id (e.g. `'links'`); when set, the orchestrator runs it directly. */
49
78
  builtin?: string;
79
+ /**
80
+ * When set, checkride derives this adapter's pass/fail from its parsed JSON
81
+ * output instead of its process exit code. Only `'fallow'` today: fallow's
82
+ * exit code doesn't reliably gate (combined mode and `dupes` exit 0 even with
83
+ * findings), so the verdict is read from the report's issue count — see
84
+ * `baseline/fallow.ts`. The exit code is still recorded in the report.
85
+ */
86
+ gate?: 'fallow';
87
+ /**
88
+ * Scheduling order override for this adapter, beating the slot's default (used
89
+ * when one slot carries adapters that schedule differently). Omitted defers to
90
+ * the slot.
91
+ */
92
+ order?: Order;
50
93
  /** Pinned versions `init` writes into package.json. */
51
94
  devDeps: Record<string, string>;
52
95
  };
53
- /** Pipeline order. Cheapest first so `--bail` fails fast. */
96
+ /**
97
+ * Pipeline catalogue in cheapest-first order — the within-wave tie-break and the
98
+ * full `--bail` sequence. Most slots take the default `'any'` wave; `mutation`
99
+ * runs exclusively (`'single'`) because stryker saturates every core, `build`
100
+ * runs in wave 10, and the artifact checks (`publint`/`attw`) share wave 20 so
101
+ * the build precedes them. See `config.ts` for how effective order resolves and sorts.
102
+ */
54
103
  export declare const SLOTS: readonly Slot[];
55
104
  /**
56
105
  * Adapter registry. The FIRST adapter for a slot is its blessed default: it
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG;IACjB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG;IACpB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oIAAoI;IACpI,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAchC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAkPtC,CAAC"}
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AACzE,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG;IACjB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG;IACpB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oIAAoI;IACpI,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAoBhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EA0VtC,CAAC"}
@@ -12,21 +12,33 @@
12
12
  */
13
13
  /** The aggregate-report schema version written to `.check/summary.json`. */
14
14
  export const SCHEMA_VERSION = 1;
15
- /** Pipeline order. Cheapest first so `--bail` fails fast. */
15
+ /**
16
+ * Pipeline catalogue in cheapest-first order — the within-wave tie-break and the
17
+ * full `--bail` sequence. Most slots take the default `'any'` wave; `mutation`
18
+ * runs exclusively (`'single'`) because stryker saturates every core, `build`
19
+ * runs in wave 10, and the artifact checks (`publint`/`attw`) share wave 20 so
20
+ * the build precedes them. See `config.ts` for how effective order resolves and sorts.
21
+ */
16
22
  export const SLOTS = [
17
23
  { name: 'types' },
18
24
  { name: 'format', optIn: true },
19
25
  { name: 'lint' },
20
26
  { name: 'struct' },
21
27
  { name: 'dead' },
28
+ { name: 'dupes', optIn: true },
29
+ { name: 'health', optIn: true },
22
30
  { name: 'test' },
23
31
  { name: 'docs' },
24
32
  { name: 'links' },
25
33
  { name: 'spell' },
26
- { name: 'mutation', optIn: true },
34
+ { name: 'mutation', optIn: true, order: 'single' },
27
35
  { name: 'security', optIn: true },
28
- { name: 'publint', optIn: true },
29
- { name: 'attw', optIn: true },
36
+ { name: 'build', optIn: true, order: 10 },
37
+ { name: 'publint', optIn: true, order: 20 },
38
+ { name: 'attw', optIn: true, order: 20 },
39
+ { name: 'pack', optIn: true, order: 20 },
40
+ { name: 'smoke', optIn: true, order: 20 },
41
+ { name: 'snippets', optIn: true },
30
42
  ];
31
43
  /**
32
44
  * Adapter registry. The FIRST adapter for a slot is its blessed default: it
@@ -63,6 +75,7 @@ export const ADAPTERS = [
63
75
  'prettier.config.mjs',
64
76
  'prettier.config.ts',
65
77
  ],
78
+ detectDeps: ['prettier'],
66
79
  command: 'pnpm',
67
80
  args: ['exec', 'prettier', '--check', '.'],
68
81
  outputFile: null,
@@ -85,6 +98,7 @@ export const ADAPTERS = [
85
98
  slot: 'lint',
86
99
  description: 'Oxlint with tsgolint type-aware rules',
87
100
  detect: ['.oxlintrc.json'],
101
+ detectDeps: ['oxlint'],
88
102
  command: 'pnpm',
89
103
  args: ['exec', 'oxlint', '--type-aware', '--format=json'],
90
104
  outputFile: 'lint.json',
@@ -134,30 +148,58 @@ export const ADAPTERS = [
134
148
  {
135
149
  name: 'fallow',
136
150
  slot: 'dead',
137
- description: 'Fallow: dead code, cycles, duplication, boundaries, complexity',
151
+ description: 'Fallow: unused code, cycles, and boundary violations (dead-code)',
138
152
  detect: ['fallow.toml'],
139
153
  command: 'pnpm',
140
- args: ['exec', 'fallow', '--format', 'json'],
154
+ // Per-analysis subcommand, not combined `fallow`: only the subcommands emit a
155
+ // single-kind report, and checkride reads the issue count out of it to gate
156
+ // (fallow's own exit code is unreliable — see `gate` and `baseline/fallow.ts`).
157
+ args: ['exec', 'fallow', 'dead-code', '--format', 'json', '--quiet'],
141
158
  outputFile: 'dead.json',
159
+ gate: 'fallow',
142
160
  fixArgs: ['exec', 'fallow', 'fix'],
143
- devDeps: { fallow: '2.48.0' },
161
+ devDeps: { fallow: '3.5.0' },
144
162
  },
145
163
  {
146
164
  name: 'knip',
147
165
  slot: 'dead',
148
166
  description: 'Knip: unused files, exports, and dependencies',
149
167
  detect: ['knip.json', 'knip.jsonc', '.knip.json', 'knip.config.ts', 'knip.config.js'],
168
+ detectDeps: ['knip'],
150
169
  command: 'pnpm',
151
170
  args: ['exec', 'knip', '--reporter', 'json'],
152
171
  outputFile: 'dead.json',
153
172
  fixArgs: ['exec', 'knip', '--fix'],
154
173
  devDeps: { knip: '5.64.0' },
155
174
  },
175
+ {
176
+ name: 'fallow',
177
+ slot: 'dupes',
178
+ description: 'Fallow: code duplication (clones)',
179
+ detect: ['fallow.toml'],
180
+ command: 'pnpm',
181
+ args: ['exec', 'fallow', 'dupes', '--format', 'json', '--quiet'],
182
+ outputFile: 'dupes.json',
183
+ gate: 'fallow',
184
+ devDeps: { fallow: '3.5.0' },
185
+ },
186
+ {
187
+ name: 'fallow',
188
+ slot: 'health',
189
+ description: 'Fallow: complexity & maintainability (health)',
190
+ detect: ['fallow.toml'],
191
+ command: 'pnpm',
192
+ args: ['exec', 'fallow', 'health', '--format', 'json', '--quiet'],
193
+ outputFile: 'health.json',
194
+ gate: 'fallow',
195
+ devDeps: { fallow: '3.5.0' },
196
+ },
156
197
  {
157
198
  name: 'vitest',
158
199
  slot: 'test',
159
200
  description: 'Vitest tests with coverage',
160
201
  detect: ['vitest.config.ts', 'vitest.config.js', 'vitest.config.mjs', 'vitest.config.mts'],
202
+ detectDeps: ['vitest'],
161
203
  command: 'pnpm',
162
204
  args: [
163
205
  'exec', 'vitest', 'run',
@@ -227,6 +269,7 @@ export const ADAPTERS = [
227
269
  'cspell.config.cjs',
228
270
  'cspell.config.mjs',
229
271
  ],
272
+ detectDeps: ['cspell'],
230
273
  command: 'pnpm',
231
274
  args: ['exec', 'cspell', '--no-progress', '--no-summary', '--reporter=default'],
232
275
  outputFile: null,
@@ -239,6 +282,10 @@ export const ADAPTERS = [
239
282
  detect: ['stryker.config.mjs', 'stryker.config.json', 'stryker.conf.json', 'stryker.conf.js'],
240
283
  command: 'pnpm',
241
284
  args: ['exec', 'stryker', 'run'],
285
+ // Ships uncapped (`0`). A real mutation run legitimately takes 15–20 min, past
286
+ // the 600s default cap; `mutation` is opt-in and never in the definition-of-done
287
+ // gate the cap protects, so it runs to completion rather than tripping a timeout.
288
+ timeout: 0,
242
289
  outputFile: null,
243
290
  devDeps: {
244
291
  '@stryker-mutator/core': '9.6.1',
@@ -255,6 +302,18 @@ export const ADAPTERS = [
255
302
  outputFile: 'security.json',
256
303
  devDeps: {},
257
304
  },
305
+ {
306
+ name: 'build',
307
+ slot: 'build',
308
+ description: "Build the package (runs the consumer's build script)",
309
+ // No config file to detect — availability rides on `scripts.build` (D13/D18).
310
+ detect: [],
311
+ detectScript: 'build',
312
+ command: 'pnpm',
313
+ args: ['run', 'build'],
314
+ outputFile: null,
315
+ devDeps: {},
316
+ },
258
317
  {
259
318
  name: 'publint',
260
319
  slot: 'publint',
@@ -275,5 +334,62 @@ export const ADAPTERS = [
275
334
  outputFile: 'attw.json',
276
335
  devDeps: { '@arethetypeswrong/cli': '0.18.4' },
277
336
  },
337
+ {
338
+ name: 'pack',
339
+ slot: 'pack',
340
+ description: 'Pack dry-run: the tarball ships the required files and none of the forbidden ones',
341
+ detect: [],
342
+ // `command`/`args` are the availability signature (`isAvailableUnder` gates
343
+ // pack to npm/pnpm, mirroring the pnpm-only `security` slot; D10). The real
344
+ // per-PM invocation — including the manager-specific ignore-scripts flag —
345
+ // lives in `pack.ts`'s `packInvocation`, since this is a built-in.
346
+ command: 'pnpm',
347
+ args: ['pack', '--dry-run', '--json'],
348
+ outputFile: 'pack.json',
349
+ builtin: 'pack',
350
+ devDeps: {},
351
+ },
352
+ {
353
+ name: 'smoke',
354
+ slot: 'smoke',
355
+ description: 'Smoke import: the built package loads and its declared value exports are live',
356
+ detect: [],
357
+ // Built-in liveness probe (D9). Like `links`, it spawns a plain `node` — no
358
+ // package manager, no checked tool — so it is available under every PM. The
359
+ // real work (enumerate `exports`, scan the dist `.d.ts`, spawn the probe)
360
+ // lives in `smoke.ts`.
361
+ command: 'node',
362
+ args: [],
363
+ outputFile: 'smoke.json',
364
+ builtin: 'smoke',
365
+ devDeps: {},
366
+ },
367
+ {
368
+ name: 'snippets',
369
+ slot: 'snippets',
370
+ description: 'Doc snippet typecheck: tagged fences typecheck against package source',
371
+ detect: [],
372
+ // Built-in (D16); `command`/`args` are the availability signature only — the
373
+ // real invocation (translated per PM) and the src-mode `paths` derivation
374
+ // (Q1) live in `snippets.ts`. First adapter for the slot, so it is the
375
+ // blessed default (config names `snippets-dist` to opt into the other mode).
376
+ command: 'pnpm',
377
+ args: ['exec', 'tsc', '--noEmit', '-p', '.check/doc-snippets/tsconfig.json'],
378
+ outputFile: 'snippets.json',
379
+ builtin: 'snippets',
380
+ devDeps: {},
381
+ },
382
+ {
383
+ name: 'snippets-dist',
384
+ slot: 'snippets',
385
+ description: 'Doc snippet typecheck: tagged fences typecheck against built .d.ts',
386
+ detect: [],
387
+ command: 'pnpm',
388
+ args: ['exec', 'tsc', '--noEmit', '-p', '.check/doc-snippets/tsconfig.json'],
389
+ outputFile: 'snippets.json',
390
+ builtin: 'snippets-dist',
391
+ order: 20,
392
+ devDeps: {},
393
+ },
278
394
  ];
279
395
  //# sourceMappingURL=adapters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/agent-setup/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAS5D,wFAAwF;AACxF,KAAK,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,uFAAuF;AACvF,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrE,oFAAoF;AACpF,KAAK,cAAc,GAAG;IAAE,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAO7G;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAI1D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAcvF;AAUD,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhE;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,EAAE,CAAC,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC,cAAc,CAAC,CAazB"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/agent-setup/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAS5D,wFAAwF;AACxF,KAAK,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,uFAAuF;AACvF,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrE,oFAAoF;AACpF,KAAK,cAAc,GAAG;IAAE,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAO7G;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAI1D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAcvF;AAwBD,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhE;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,EAAE,CAAC,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC,cAAc,CAAC,CAazB"}
@@ -69,6 +69,20 @@ async function readIfExists(path) {
69
69
  return null;
70
70
  }
71
71
  }
72
+ /**
73
+ * Parse an existing settings file, naming the file on malformed JSON so a
74
+ * consumer sees `invalid .claude/settings.json: <reason>` instead of a bare
75
+ * `SyntaxError` stack (mirrors `invalidConfig` in `config.ts`).
76
+ */
77
+ function parseSettings(raw) {
78
+ try {
79
+ return JSON.parse(raw);
80
+ }
81
+ catch (err) {
82
+ const reason = err instanceof Error ? err.message : String(err);
83
+ throw new Error(`invalid ${CLAUDE_SETTINGS_FILE}: ${reason}`, { cause: err });
84
+ }
85
+ }
72
86
  /**
73
87
  * Write or refresh the Stop hook in `cwd/.claude/settings.json` for the detected
74
88
  * (or provided) package manager, preserving any other settings. Returns whether
@@ -79,7 +93,7 @@ export async function writeStopHook(cwd, opts = {}) {
79
93
  const path = join(cwd, CLAUDE_SETTINGS_FILE);
80
94
  const pm = opts.pm ?? detectPackageManager({ cwd });
81
95
  const raw = await readIfExists(path);
82
- const settings = raw ? JSON.parse(raw) : {};
96
+ const settings = raw ? parseSettings(raw) : {};
83
97
  const next = applyStopHook(settings, stopHookCommand(pm));
84
98
  const nextRaw = `${JSON.stringify(next, null, 2)}\n`;
85
99
  const changed = raw !== nextRaw;
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/agent-setup/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/agent-setup/hook.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,5 @@
3
3
  * module's only public surface (C2): siblings import from `../agent-setup`,
4
4
  * never from `./hook.js` directly.
5
5
  */
6
- export type { StopHookResult } from './hook.js';
7
6
  export { applyStopHook, CLAUDE_SETTINGS_FILE, stopHookCommand, writeStopHook } from './hook.js';
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-setup/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-setup/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-setup/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-setup/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Fallow (v7) report parsing, gating, and fingerprinting.
3
+ *
4
+ * Fallow fills three slots — `dead` (dead-code), `dupes` (duplication), and
5
+ * `health` (complexity) — and checkride owns the pass/fail *verdict* for all
6
+ * three by parsing fallow's JSON, rather than trusting its process exit code.
7
+ * That is deliberate: fallow 3.5.0's exit code does NOT reliably gate. Verified
8
+ * against fallow 3.5.0:
9
+ * - `fallow --format json --fail-on-issues` (combined) exits 0 with issues.
10
+ * - `fallow dupes --format json` exits 0 no matter how much duplication (its
11
+ * `--threshold` defaults to `0` = "no limit").
12
+ * - only `fallow dead-code`/`health` with `--fail-on-issues` exit 1 on findings.
13
+ * Keying pass/fail off the exit code (as the orchestrator does for every other
14
+ * adapter) therefore let a green ✔ hide real findings. checkride reads the
15
+ * authoritative issue count out of the JSON instead, so every fallow slot gates
16
+ * uniformly — and an *unrecognized* schema fails loudly rather than passing
17
+ * silently (the count can't be trusted, so the slot can't be green).
18
+ *
19
+ * The JSON is fallow's `schema_version: 7` shape (fallow >= 3.5; fallow 2.x was
20
+ * schema 4 with a different layout and is no longer supported). Each analysis
21
+ * kind has its own layout, so parsing dispatches on the top-level `kind`.
22
+ */
23
+ import type { Fingerprint } from './fingerprint.js';
24
+ /**
25
+ * Fallow's fingerprint extractor (baseline part 1), for the extractor registry.
26
+ * Returns the finding keys for a recognized, readable report and an empty set
27
+ * for anything else — the "never throw, empty on malformed" contract every
28
+ * extractor honours. The *gating* verdict (`fallowVerdict`) is where an
29
+ * unreadable report becomes a failure; capture and masking only need the keys.
30
+ */
31
+ export declare function fallowFindings(raw: string): Fingerprint;
32
+ /** The verdict for one fallow slot: pass/fail plus the baseline bookkeeping. */
33
+ export type FallowVerdict = {
34
+ /** Slot verdict after baseline masking. */
35
+ ok: boolean;
36
+ /** Current findings the baseline grandfathered (the `baselined` count). */
37
+ baselined: number;
38
+ /** Sorted current findings the baseline does NOT cover. */
39
+ newKeys: string[];
40
+ /** All current findings — fed to the ratchet's observed map. */
41
+ findings: Fingerprint;
42
+ /**
43
+ * True only when the report parsed to a recognized schema. The ratchet must
44
+ * not prune a slot's baseline from an *unreadable* run (findings unknown, not
45
+ * "all fixed"), so an unobserved slot is preserved untouched.
46
+ */
47
+ observed: boolean;
48
+ /** A one-line failure explanation for the console, or `null` when green. */
49
+ reason: string | null;
50
+ };
51
+ /**
52
+ * Decide a fallow slot's verdict from its raw JSON and (optionally) the slot's
53
+ * grandfathered keys. `baselineKeys === null` means no baseline is active (a
54
+ * plain run or a `checkride baseline` capture): the verdict is simply whether
55
+ * fallow found anything. With a baseline, findings are masked — the slot passes
56
+ * when every current finding is grandfathered and fails on any new one.
57
+ *
58
+ * A report that parses to *fewer* fingerprints than its issue count has findings
59
+ * that can't be individually grandfathered; a baseline must never mask such a
60
+ * slot to green, so it stays at the raw findings-based verdict. Correctness over
61
+ * precision: better to keep re-surfacing a finding than to silently pass one.
62
+ */
63
+ export declare function fallowVerdict(raw: string, baselineKeys: readonly string[] | null): FallowVerdict;
64
+ //# sourceMappingURL=fallow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallow.d.ts","sourceRoot":"","sources":["../../src/baseline/fallow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAmMpD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAGvD;AAED,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,EAAE,EAAE,OAAO,CAAC;IACZ,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gEAAgE;IAChE,QAAQ,EAAE,WAAW,CAAC;IACtB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,aAAa,CAuBhG"}