critical-gate 2.4.3 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -217,8 +217,8 @@ Critical Gate has one analysis core and multiple surfaces:
217
217
  - **Codex hook**: repair-oriented stop hook for agent workflows.
218
218
  - **VS Code extension**: Activity Bar dashboard, status bar state, Problems diagnostics, full report
219
219
  output, evidence navigation, and repair-copy actions.
220
- - **Agent onboarding**: `npx critical-gate init-agent` and the VS Code initialization command add a
221
- managed Critical Gate section to `AGENTS.md` while preserving existing repository instructions.
220
+ - **Project onboarding**: `npx critical-gate init --install` adds repository setup, package scripts,
221
+ observe-only policy, evidence exports, advisory CI, and managed agent instructions.
222
222
 
223
223
  The CLI remains the source of truth. The editor and CI surfaces consume CLI output rather than
224
224
  reimplementing detector logic.
@@ -267,6 +267,17 @@ npm install -D critical-gate
267
267
  npx critical-gate check --task "Add signup validation" --base main
268
268
  ```
269
269
 
270
+ Initialize observe-only dogfood setup in an existing repository:
271
+
272
+ ```bash
273
+ npx critical-gate init --install
274
+ ```
275
+
276
+ Use `npx critical-gate init` without `--install` to write setup files only. The initializer detects
277
+ npm, pnpm, bun, or yarn from lockfiles, adds `gate`, `gate:base`, `gate:sarif`, and `gate:evidence`
278
+ package scripts, writes `.critical-gate.json`, creates durable evidence docs, adds an advisory
279
+ GitHub SARIF workflow, and updates `AGENTS.md`.
280
+
270
281
  Common output formats:
271
282
 
272
283
  ```bash
@@ -393,7 +404,7 @@ Install the Marketplace extension:
393
404
  The extension adds:
394
405
 
395
406
  - `Critical Gate` Activity Bar view with the `Gate Runs` dashboard.
396
- - `Run Gate`, `Show Report`, `Clear`, and `Settings` actions.
407
+ - `Initialize`, `Run Gate`, `Show Report`, `Clear`, and `Settings` actions.
397
408
  - Latest run decision, changed files, findings, Diff Cost Score, and recent runs.
398
409
  - Problems diagnostics mapped from findings.
399
410
  - Evidence navigation and repair-copy actions.
@@ -415,6 +426,15 @@ The CI workflow publishes coverage and deterministic evaluation reports as GitHu
415
426
  [docs/evaluation-strategy.md](docs/evaluation-strategy.md) for artifact paths, thresholds, and the
416
427
  current limits of the internal evaluation corpus.
417
428
 
429
+ Dogfood evidence labels from adopted repositories can be aggregated locally with:
430
+
431
+ ```bash
432
+ pnpm dogfood:aggregate
433
+ ```
434
+
435
+ This writes a Markdown summary to [docs/dogfood-evidence-summary.md](docs/dogfood-evidence-summary.md)
436
+ and a JSON artifact under `artifacts/dogfood/evidence-summary.json`.
437
+
418
438
  ## Development
419
439
 
420
440
  Useful commands:
@@ -455,6 +475,8 @@ Branch and commit conventions for this repository:
455
475
  - [docs/codex-integration.md](docs/codex-integration.md): Codex hook and repair-loop guidance.
456
476
  - [docs/dogfood-evidence-plan.md](docs/dogfood-evidence-plan.md): real-repository dogfood automation,
457
477
  repair-loop metrics, and screenshot proof plan.
478
+ - [docs/dogfood-evidence-summary.md](docs/dogfood-evidence-summary.md): latest aggregate summary from
479
+ human-labeled dogfood evidence reports.
458
480
  - [docs/dogfood-mv-ft-2026-06-19.md](docs/dogfood-mv-ft-2026-06-19.md): mv-ft dogfood
459
481
  evidence, misses, fixes, and current evaluation baseline.
460
482
  - [docs/versioning-policy.md](docs/versioning-policy.md): release and versioning policy.
@@ -54,4 +54,19 @@ export declare function parseInitAgentArgs(args: string[]): {
54
54
  ok: false;
55
55
  error: string;
56
56
  };
57
+ export declare function parseInitProjectArgs(args: string[]): {
58
+ ok: true;
59
+ options: {
60
+ mode: "observe";
61
+ install: boolean;
62
+ packageManager?: "bun" | "pnpm" | "npm" | "yarn";
63
+ version?: string;
64
+ skipAgent: boolean;
65
+ skipWorkflow: boolean;
66
+ force: boolean;
67
+ };
68
+ } | {
69
+ ok: false;
70
+ error: string;
71
+ };
57
72
  //# sourceMappingURL=args.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,WAAW,GAElB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,YAAY,CAAC;CACvB,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CA2FJ;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAWjE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EAAE,EACd,YAAY,EAAE,MAAM,EAAE,GAEpB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAqBJ;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAC/C;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAqCJ;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAChD;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE;QACP,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;QACxC,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAuCJ;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAC9C;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE;QACP,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAcJ;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAC7C;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAuBJ"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,WAAW,GAElB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,YAAY,CAAC;CACvB,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CA2FJ;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAYjE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EAAE,EACd,YAAY,EAAE,MAAM,EAAE,GAEpB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAqBJ;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAC/C;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAqCJ;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAChD;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE;QACP,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;QACxC,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAuCJ;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAC9C;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE;QACP,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAcJ;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAC7C;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAuBJ;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAC/C;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE;QACP,IAAI,EAAE,SAAS,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;QACjD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,OAAO,CAAC;QACtB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAyEJ"}
package/dist/cli/args.js CHANGED
@@ -86,6 +86,7 @@ export function isCommandName(value) {
86
86
  value === "teach" ||
87
87
  value === "snapshot-api" ||
88
88
  value === "install-hooks" ||
89
+ value === "init" ||
89
90
  value === "init-policy" ||
90
91
  value === "init-agent");
91
92
  }
@@ -196,6 +197,61 @@ export function parseInitAgentArgs(args) {
196
197
  }
197
198
  return { ok: true, options };
198
199
  }
200
+ export function parseInitProjectArgs(args) {
201
+ const options = {
202
+ mode: "observe",
203
+ install: false,
204
+ skipAgent: false,
205
+ skipWorkflow: false,
206
+ force: false
207
+ };
208
+ for (let index = 0; index < args.length; index += 1) {
209
+ const arg = args[index];
210
+ if (arg === "--install") {
211
+ options.install = true;
212
+ continue;
213
+ }
214
+ if (arg === "--skip-agent") {
215
+ options.skipAgent = true;
216
+ continue;
217
+ }
218
+ if (arg === "--skip-workflow") {
219
+ options.skipWorkflow = true;
220
+ continue;
221
+ }
222
+ if (arg === "--force") {
223
+ options.force = true;
224
+ continue;
225
+ }
226
+ if (arg !== "--mode" && arg !== "--package-manager" && arg !== "--version") {
227
+ return { ok: false, error: `Unknown option: ${arg}.` };
228
+ }
229
+ const value = args[index + 1];
230
+ if (value === undefined || value.startsWith("--")) {
231
+ return { ok: false, error: `Missing value for ${arg}.` };
232
+ }
233
+ if (arg === "--mode") {
234
+ if (value !== "observe") {
235
+ return { ok: false, error: "Invalid --mode value. Expected observe." };
236
+ }
237
+ options.mode = value;
238
+ }
239
+ else if (arg === "--package-manager") {
240
+ if (value !== "bun" && value !== "pnpm" && value !== "npm" && value !== "yarn") {
241
+ return {
242
+ ok: false,
243
+ error: "Invalid --package-manager value. Expected bun, pnpm, npm, or yarn."
244
+ };
245
+ }
246
+ options.packageManager = value;
247
+ }
248
+ else {
249
+ options.version = value;
250
+ }
251
+ index += 1;
252
+ }
253
+ return { ok: true, options };
254
+ }
199
255
  function isReportFormat(value) {
200
256
  return (value === "json" ||
201
257
  value === "markdown" ||
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,cAAc,CAC5B,IAAc,EACd,OAAoB;IAUpB,MAAM,OAAO,GAA0B;QACrC,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,KAAK;KACd,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IACE,GAAG,KAAK,QAAQ;YAChB,GAAG,KAAK,QAAQ;YAChB,GAAG,KAAK,UAAU;YAClB,GAAG,KAAK,UAAU;YAClB,GAAG,KAAK,WAAW,EACnB,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAE9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,GAAG,GAAG,EAAE,CAAC;YAC3D,CAAC;YAED,KAAK,IAAI,CAAC,CAAC;YAEX,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;YACvB,CAAC;iBAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;YACvB,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,gFAAgF;qBACxF,CAAC;gBACJ,CAAC;gBAED,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YACzB,CAAC;iBAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,6DAA6D;qBACrE,CAAC;gBACJ,CAAC;gBAED,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YACzB,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YACzB,CAAC;YAED,SAAS;QACX,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAG,EAAE,EAAE,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnE,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,GAAG,wCAAwC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;QAChE,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;IAChE,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,UAAU;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,CACL,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,cAAc;QACxB,KAAK,KAAK,eAAe;QACzB,KAAK,KAAK,aAAa;QACvB,KAAK,KAAK,YAAY,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAAc,EACd,YAAsB;IAUtB,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAG,GAAG,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,GAAG,GAAG,EAAE,CAAC;QAC3D,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAc;IAYjD,MAAM,OAAO,GAGT;QACF,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAG,GAAG,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,GAAG,GAAG,EAAE,CAAC;QAC3D,CAAC;QAED,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAC3B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QACzB,CAAC;QAED,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACP,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC9E;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAc;IAalD,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,KAA0C;QAChD,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAG,GAAG,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,GAAG,GAAG,EAAE,CAAC;QAC3D,CAAC;QAED,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACtE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8DAA8D,EAAE,CAAC;YAC9F,CAAC;YAED,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAWhD,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAG,GAAG,EAAE,CAAC;QACzD,CAAC;QAED,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAc;IAW/C,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,mBAAmB;KACzB,CAAC;IAEF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAG,GAAG,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAE9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,GAAG,GAAG,EAAE,CAAC;QAC3D,CAAC;QAED,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;QACpB,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,CACL,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,YAAY,CACvB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { ExitCode, type CliIo } from "./types.js";
2
2
  export declare function runSnapshotApiCommand(args: string[], io: CliIo): ExitCode;
3
3
  export declare function runInstallHooksCommand(args: string[], io: CliIo): ExitCode;
4
4
  export declare function runInitPolicyCommand(args: string[], io: CliIo): ExitCode;
5
+ export declare function runInitProjectCommand(args: string[], io: CliIo): ExitCode;
5
6
  export declare function runInitAgentCommand(args: string[], io: CliIo): ExitCode;
6
7
  export declare function runAcceptCommand(args: string[], io: CliIo): ExitCode;
7
8
  export declare function runTeachCommand(args: string[], io: CliIo): ExitCode;
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CA6BzE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CA8B1E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CAqBxE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CAyBvE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CA4CpE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CAwDnE"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CA6BzE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CA8B1E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CAqBxE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CAqCzE;AAWD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CAyBvE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CA4CpE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,QAAQ,CAwDnE"}
@@ -1,7 +1,8 @@
1
1
  import { join } from "node:path";
2
2
  import { CRITICAL_GATE_CONFIG_FILE, buildApiSurfaceSnapshot, createDefaultPolicyConfig, getApiSnapshotOutputPath, getConfiguredPublicApiEntrypoints, initAgentInstructions, loadCriticalGateConfig, updateCriticalGateConfig } from "../index.js";
3
- import { parseFlagArgs, parseInitAgentArgs, parseInitPolicyArgs, parseInstallHooksArgs, parseSnapshotApiArgs } from "./args.js";
3
+ import { parseFlagArgs, parseInitAgentArgs, parseInitProjectArgs, parseInitPolicyArgs, parseInstallHooksArgs, parseSnapshotApiArgs } from "./args.js";
4
4
  import { renderGitHookScript } from "./git-hooks.js";
5
+ import { initProject } from "./init-project.js";
5
6
  import { ExitCode } from "./types.js";
6
7
  export function runSnapshotApiCommand(args, io) {
7
8
  const parsed = parseSnapshotApiArgs(args);
@@ -67,6 +68,44 @@ export function runInitPolicyCommand(args, io) {
67
68
  io.stdout(`Wrote reviewable Critical Gate policy to ${path}.`);
68
69
  return ExitCode.Pass;
69
70
  }
71
+ export function runInitProjectCommand(args, io) {
72
+ const parsed = parseInitProjectArgs(args);
73
+ if (!parsed.ok) {
74
+ io.stderr(parsed.error);
75
+ io.stderr("Run critical-gate init --help for usage.");
76
+ return ExitCode.UsageError;
77
+ }
78
+ const result = initProject(parsed.options, io);
79
+ if (!parsed.options.skipAgent) {
80
+ const agentResult = initAgentInstructions({
81
+ root: result.root,
82
+ cliCommand: "npx critical-gate",
83
+ io
84
+ });
85
+ if (agentResult.updated) {
86
+ result.written.push(relativeProjectPath(result.root, agentResult.path));
87
+ }
88
+ else {
89
+ result.skipped.push(relativeProjectPath(result.root, agentResult.path));
90
+ }
91
+ }
92
+ io.stdout([
93
+ "Critical Gate initialized in observe-only mode.",
94
+ `Project: ${result.root}`,
95
+ `Package manager: ${result.packageManager.name}`,
96
+ `Dependency install: ${result.installed ? "yes" : "no"}`,
97
+ `Written: ${result.written.length === 0 ? "none" : result.written.join(", ")}`,
98
+ `Skipped existing files: ${result.skipped.length === 0 ? "none" : result.skipped.join(", ")}`
99
+ ].join("\n"));
100
+ return ExitCode.Pass;
101
+ }
102
+ function relativeProjectPath(root, path) {
103
+ const normalizedRoot = root.replaceAll("\\", "/");
104
+ const normalizedPath = path.replaceAll("\\", "/");
105
+ return normalizedPath.startsWith(normalizedRoot)
106
+ ? normalizedPath.slice(normalizedRoot.length + 1)
107
+ : normalizedPath;
108
+ }
70
109
  export function runInitAgentCommand(args, io) {
71
110
  const parsed = parseInitAgentArgs(args);
72
111
  if (!parsed.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type CommandName = "check" | "hook" | "accept" | "teach" | "snapshot-api" | "install-hooks" | "init-policy" | "init-agent";
1
+ export type CommandName = "check" | "hook" | "accept" | "teach" | "snapshot-api" | "install-hooks" | "init" | "init-policy" | "init-agent";
2
2
  export declare function getHelpText(): string;
3
3
  export declare function getCommandHelpText(command: CommandName): string;
4
4
  //# sourceMappingURL=help.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,MAAM,GACN,QAAQ,GACR,OAAO,GACP,cAAc,GACd,eAAe,GACf,aAAa,GACb,YAAY,CAAC;AAEjB,wBAAgB,WAAW,IAAI,MAAM,CAiBpC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA8B/D"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,MAAM,GACN,QAAQ,GACR,OAAO,GACP,cAAc,GACd,eAAe,GACf,MAAM,GACN,aAAa,GACb,YAAY,CAAC;AAEjB,wBAAgB,WAAW,IAAI,MAAM,CAkBpC;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAkC/D"}
package/dist/cli/help.js CHANGED
@@ -10,6 +10,7 @@ export function getHelpText() {
10
10
  " critical-gate teach --id <id> --when-changed <glob> --allow <glob[,glob]> --reason <text>",
11
11
  " critical-gate snapshot-api [--entrypoint <path>] [--output <path>]",
12
12
  " critical-gate install-hooks [--hook pre-commit|pre-push|all] [--cli <command>] [--force]",
13
+ " critical-gate init [--mode observe] [--install] [--package-manager bun|pnpm|npm|yarn] [--version <npm-version>] [--skip-agent] [--skip-workflow] [--force]",
13
14
  " critical-gate init-policy [--force]",
14
15
  " critical-gate init-agent [--cli <command>]",
15
16
  " critical-gate --version",
@@ -33,6 +34,9 @@ export function getCommandHelpText(command) {
33
34
  if (command === "install-hooks") {
34
35
  return getInstallHooksHelpText();
35
36
  }
37
+ if (command === "init") {
38
+ return getInitHelpText();
39
+ }
36
40
  if (command === "init-policy") {
37
41
  return getInitPolicyHelpText();
38
42
  }
@@ -41,6 +45,26 @@ export function getCommandHelpText(command) {
41
45
  }
42
46
  return getCheckHelpText();
43
47
  }
48
+ function getInitHelpText() {
49
+ return [
50
+ "critical-gate init",
51
+ "",
52
+ "Initializes Critical Gate in observe-only mode for an existing repository.",
53
+ "",
54
+ "Options:",
55
+ " --mode observe Roll out as evidence collection without hard blocking",
56
+ " --install Add critical-gate as a dev dependency",
57
+ " --package-manager <name> bun, pnpm, npm, or yarn; detected from lockfiles by default",
58
+ " --version <npm-version> Package/action version to install and write; defaults to the CLI version",
59
+ " --skip-agent Do not create or update AGENTS.md",
60
+ " --skip-workflow Do not add the advisory GitHub SARIF workflow",
61
+ " --force Overwrite generated setup files that already exist",
62
+ "",
63
+ "Generated setup includes package scripts, observe-only policy, evidence export workflow,",
64
+ "dogfood evidence docs, advisory GitHub workflow, and managed agent instructions.",
65
+ ""
66
+ ].join("\n");
67
+ }
44
68
  function getCheckHelpText() {
45
69
  return [
46
70
  "critical-gate check",
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { CliIo } from "./types.js";
2
+ export type InitPackageManagerName = "bun" | "pnpm" | "npm" | "yarn";
3
+ export interface InitProjectOptions {
4
+ install: boolean;
5
+ packageManager?: InitPackageManagerName;
6
+ version?: string;
7
+ skipAgent: boolean;
8
+ skipWorkflow: boolean;
9
+ force: boolean;
10
+ }
11
+ export interface InitProjectResult {
12
+ root: string;
13
+ packageManager: InitPackageManager;
14
+ installed: boolean;
15
+ written: string[];
16
+ skipped: string[];
17
+ }
18
+ interface InitPackageManager {
19
+ name: InitPackageManagerName;
20
+ command: string;
21
+ addDev: string[];
22
+ run: string;
23
+ }
24
+ export declare function initProject(options: InitProjectOptions, io: CliIo): InitProjectResult;
25
+ export declare function detectPackageManager(root: string, io: Pick<CliIo, "exists">): InitPackageManager;
26
+ export declare function packageManagerByName(name: string): InitPackageManager;
27
+ export {};
28
+ //# sourceMappingURL=init-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-project.d.ts","sourceRoot":"","sources":["../../src/cli/init-project.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAErE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,kBAAkB,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAmBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,KAAK,GAAG,iBAAiB,CAsFrF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,kBAAkB,CAchG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAkBrE"}
@@ -0,0 +1,552 @@
1
+ import { execFileSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { basename, join } from "node:path";
4
+ import { CRITICAL_GATE_CONFIG_FILE } from "../config/index.js";
5
+ import { CRITICAL_GATE_VERSION } from "../version.js";
6
+ const detectorIds = [
7
+ "dependency",
8
+ "test-weakening",
9
+ "config-change",
10
+ "secret-path",
11
+ "api-surface",
12
+ "intent-verification",
13
+ "blast-radius",
14
+ "scope",
15
+ "rewrite",
16
+ "repository-intelligence",
17
+ "expected-companions",
18
+ "utility-reinvention",
19
+ "existing-solution",
20
+ "pattern-violation"
21
+ ];
22
+ export function initProject(options, io) {
23
+ const root = io.getRoot?.() ?? io.readDiff().root;
24
+ const packageJsonPath = join(root, "package.json");
25
+ const packageManager = options.packageManager === undefined
26
+ ? detectPackageManager(root, io)
27
+ : packageManagerByName(options.packageManager);
28
+ const written = [];
29
+ const skipped = [];
30
+ const now = io.now();
31
+ if (!exists(packageJsonPath, io)) {
32
+ writeJson(packageJsonPath, {
33
+ name: slugify(basename(root)) || "critical-gate-project",
34
+ version: "0.1.0",
35
+ private: true,
36
+ scripts: {}
37
+ }, io);
38
+ written.push("package.json");
39
+ }
40
+ if (options.install) {
41
+ installCriticalGate(packageManager, options.version ?? CRITICAL_GATE_VERSION, root);
42
+ }
43
+ const packageJson = readPackageJson(packageJsonPath, root, io);
44
+ writeJson(packageJsonPath, withPackageScripts(packageJson), io);
45
+ written.push("package.json");
46
+ writeFileIfAllowed(join(root, CRITICAL_GATE_CONFIG_FILE), `${JSON.stringify(createObserveOnlyPolicy(packageJson, now), null, 2)}\n`, options.force, io, written, skipped);
47
+ writeFileIfAllowed(join(root, "scripts", "critical-gate-evidence.mjs"), evidenceExporterSource, options.force, io, written, skipped);
48
+ writeFileIfAllowed(join(root, "docs", "critical-gate-dogfood.md"), dogfoodJournalSource(packageManager), options.force, io, written, skipped);
49
+ writeFileIfAllowed(join(root, "docs", "critical-gate-evidence", "README.md"), evidenceIndexSource, options.force, io, written, skipped);
50
+ if (!options.skipWorkflow) {
51
+ writeFileIfAllowed(join(root, ".github", "workflows", "critical-gate.yml"), githubWorkflowSource(options.version ?? CRITICAL_GATE_VERSION), options.force, io, written, skipped);
52
+ }
53
+ updateGitignore(root, io, written);
54
+ return {
55
+ root,
56
+ packageManager,
57
+ installed: options.install,
58
+ written: [...new Set(written.map((path) => relativeProjectPath(root, path)))],
59
+ skipped: [...new Set(skipped.map((path) => relativeProjectPath(root, path)))]
60
+ };
61
+ }
62
+ export function detectPackageManager(root, io) {
63
+ if (exists(join(root, "bun.lock"), io) || exists(join(root, "bun.lockb"), io)) {
64
+ return packageManagerByName("bun");
65
+ }
66
+ if (exists(join(root, "pnpm-lock.yaml"), io)) {
67
+ return packageManagerByName("pnpm");
68
+ }
69
+ if (exists(join(root, "yarn.lock"), io)) {
70
+ return packageManagerByName("yarn");
71
+ }
72
+ return packageManagerByName("npm");
73
+ }
74
+ export function packageManagerByName(name) {
75
+ if (name === "bun") {
76
+ return { name, command: "bun", addDev: ["add", "-d"], run: "bun run" };
77
+ }
78
+ if (name === "pnpm") {
79
+ return { name, command: "pnpm", addDev: ["add", "-D"], run: "pnpm run" };
80
+ }
81
+ if (name === "npm") {
82
+ return { name, command: "npm", addDev: ["install", "-D"], run: "npm run" };
83
+ }
84
+ if (name === "yarn") {
85
+ return { name, command: "yarn", addDev: ["add", "-D"], run: "yarn" };
86
+ }
87
+ throw new Error(`Unsupported package manager: ${name}`);
88
+ }
89
+ function installCriticalGate(packageManager, version, root) {
90
+ const packageName = version === "latest" ? "critical-gate" : `critical-gate@${version}`;
91
+ execFileSync(packageManager.command, [...getAddDevArgs(packageManager, root), packageName], {
92
+ cwd: root,
93
+ stdio: "inherit",
94
+ shell: process.platform === "win32"
95
+ });
96
+ }
97
+ function getAddDevArgs(packageManager, root) {
98
+ if (packageManager.name === "pnpm" && existsSync(join(root, "pnpm-workspace.yaml"))) {
99
+ return [...packageManager.addDev, "-w"];
100
+ }
101
+ return packageManager.addDev;
102
+ }
103
+ function withPackageScripts(packageJson) {
104
+ return {
105
+ ...packageJson,
106
+ scripts: {
107
+ ...readRecord(packageJson.scripts),
108
+ gate: "critical-gate check --format markdown --fail-on blocker",
109
+ "gate:base": "critical-gate check --base main --format markdown --fail-on blocker",
110
+ "gate:sarif": "critical-gate check --format sarif --output critical-gate.sarif --fail-on blocker",
111
+ "gate:evidence": "node scripts/critical-gate-evidence.mjs"
112
+ }
113
+ };
114
+ }
115
+ function createObserveOnlyPolicy(packageJson, now) {
116
+ return {
117
+ frameworkPacks: detectFrameworkPacks(packageJson),
118
+ policy: {
119
+ failOn: "blocker",
120
+ detectorOverrides: detectorIds.map((detector) => ({
121
+ detector,
122
+ mode: "observation",
123
+ reason: "Phase 1 dogfood rollout: collect evidence and calibrate findings before enforcement."
124
+ })),
125
+ allowedSupportFiles: [
126
+ {
127
+ id: "critical-gate-dogfood-docs",
128
+ whenChanged: CRITICAL_GATE_CONFIG_FILE,
129
+ allow: [
130
+ "docs/critical-gate-dogfood.md",
131
+ "docs/critical-gate-evidence/**",
132
+ "AGENTS.md",
133
+ "package.json",
134
+ "package-lock.json",
135
+ "npm-shrinkwrap.json",
136
+ "pnpm-lock.yaml",
137
+ "yarn.lock",
138
+ "bun.lock",
139
+ "bun.lockb"
140
+ ],
141
+ reason: "Critical Gate rollout changes include package wiring, agent workflow notes, and dogfood evidence.",
142
+ createdAt: now.toISOString()
143
+ },
144
+ {
145
+ id: "workflow-operational-docs",
146
+ whenChanged: ".github/workflows/**",
147
+ allow: ["docs/**/*.md", "README.md", "AGENTS.md"],
148
+ reason: "Workflow changes may include operational documentation.",
149
+ createdAt: now.toISOString()
150
+ }
151
+ ]
152
+ },
153
+ learning: {
154
+ acceptedFindings: [],
155
+ expectedSupportFiles: []
156
+ }
157
+ };
158
+ }
159
+ function detectFrameworkPacks(packageJson) {
160
+ const dependencies = {
161
+ ...readRecord(packageJson.dependencies),
162
+ ...readRecord(packageJson.devDependencies),
163
+ ...readRecord(packageJson.peerDependencies)
164
+ };
165
+ return ["astro", "vite", "next", "react", "vue", "svelte"].filter((name) => dependencies[name] !== undefined);
166
+ }
167
+ function updateGitignore(root, io, written) {
168
+ const path = join(root, ".gitignore");
169
+ const additions = [
170
+ ".critical-gate/cache/",
171
+ "critical-gate.json",
172
+ "critical-gate.md",
173
+ "critical-gate.sarif",
174
+ "critical-gate-pr-comment.md"
175
+ ];
176
+ const existing = exists(path, io) ? readFile(path, io) : "";
177
+ const lines = existing.split(/\r?\n/u);
178
+ const missing = additions.filter((line) => !lines.includes(line));
179
+ if (missing.length === 0) {
180
+ return;
181
+ }
182
+ io.writeFile(path, `${existing.trimEnd()}\n${missing.join("\n")}\n`);
183
+ written.push(path);
184
+ }
185
+ function writeFileIfAllowed(path, content, force, io, written, skipped) {
186
+ if (exists(path, io) && !force) {
187
+ skipped.push(path);
188
+ return;
189
+ }
190
+ io.writeFile(path, content);
191
+ written.push(path);
192
+ }
193
+ function readPackageJson(path, root, io) {
194
+ if (exists(path, io)) {
195
+ return JSON.parse(readFile(path, io));
196
+ }
197
+ return {
198
+ name: slugify(basename(root)) || "critical-gate-project",
199
+ version: "0.1.0",
200
+ private: true,
201
+ scripts: {}
202
+ };
203
+ }
204
+ function writeJson(path, value, io) {
205
+ io.writeFile(path, `${JSON.stringify(value, null, 2)}\n`);
206
+ }
207
+ function exists(path, io) {
208
+ return io.exists?.(path) === true;
209
+ }
210
+ function readFile(path, io) {
211
+ if (io.readFile === undefined) {
212
+ throw new Error(`Cannot read ${path}.`);
213
+ }
214
+ return io.readFile(path);
215
+ }
216
+ function readRecord(value) {
217
+ return typeof value === "object" && value !== null && !Array.isArray(value)
218
+ ? value
219
+ : {};
220
+ }
221
+ function relativeProjectPath(root, path) {
222
+ const normalizedRoot = root.replaceAll("\\", "/");
223
+ const normalizedPath = path.replaceAll("\\", "/");
224
+ return normalizedPath.startsWith(normalizedRoot)
225
+ ? normalizedPath.slice(normalizedRoot.length + 1)
226
+ : normalizedPath;
227
+ }
228
+ function slugify(value) {
229
+ return value
230
+ .toLowerCase()
231
+ .replace(/[^a-z0-9]+/gu, "-")
232
+ .replace(/^-|-$/gu, "");
233
+ }
234
+ const evidenceExporterSource = `#!/usr/bin/env node
235
+ import { spawnSync } from "node:child_process";
236
+ import { copyFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
237
+ import { join } from "node:path";
238
+
239
+ const root = process.cwd();
240
+ const args = parseArgs(process.argv.slice(2));
241
+
242
+ if (args.task === undefined || args.task.trim().length === 0) {
243
+ console.error('Usage: npm run gate:evidence -- --task "Describe the completed task"');
244
+ process.exit(2);
245
+ }
246
+
247
+ if (!hasMeaningfulDiff()) {
248
+ console.log("Critical Gate evidence skipped: no working-tree diff to analyze.");
249
+ process.exit(0);
250
+ }
251
+
252
+ const now = new Date();
253
+ const day = now.toISOString().slice(0, 10);
254
+ const time = now.toISOString().slice(11, 19).replaceAll(":", "");
255
+ const slug = slugify(args.task);
256
+ const evidenceRoot = join(root, "docs", "critical-gate-evidence");
257
+ const runDir = join(evidenceRoot, day);
258
+ const basename = \`\${time}-\${slug}\`;
259
+ const markdownPath = join(runDir, \`\${basename}.md\`);
260
+ const jsonPath = join(runDir, \`\${basename}.json\`);
261
+ const tempDir = join(root, ".critical-gate", "cache", "evidence");
262
+ const tempMarkdownPath = join(tempDir, \`\${basename}.md\`);
263
+ const tempJsonPath = join(tempDir, \`\${basename}.json\`);
264
+ const indexPath = join(evidenceRoot, "README.md");
265
+
266
+ mkdirSync(runDir, { recursive: true });
267
+ mkdirSync(tempDir, { recursive: true });
268
+
269
+ const commonArgs = ["check", "--task", args.task, "--fail-on", "blocker"];
270
+
271
+ if (args.base !== undefined) {
272
+ commonArgs.push("--base", args.base);
273
+ }
274
+
275
+ if (args.staged) {
276
+ commonArgs.push("--staged");
277
+ }
278
+
279
+ const markdown = runCriticalGate([
280
+ ...commonArgs,
281
+ "--format",
282
+ "markdown",
283
+ "--output",
284
+ tempMarkdownPath
285
+ ]);
286
+ const json = runCriticalGate([...commonArgs, "--format", "json", "--output", tempJsonPath]);
287
+
288
+ copyFileSync(tempMarkdownPath, markdownPath);
289
+ copyFileSync(tempJsonPath, jsonPath);
290
+
291
+ const report = readJsonReport(jsonPath);
292
+
293
+ updateIndex(indexPath, {
294
+ day,
295
+ task: args.task,
296
+ markdownFile: relativeForMarkdown(evidenceRoot, markdownPath),
297
+ jsonFile: relativeForMarkdown(evidenceRoot, jsonPath),
298
+ decision: report?.summary?.decision ?? "unknown",
299
+ findings: report?.summary?.findingCount ?? "unknown",
300
+ coherence: formatScore(report?.summary?.diffCoherenceScore),
301
+ scope: formatScore(report?.summary?.scopeExpansionScore)
302
+ });
303
+
304
+ console.log("Critical Gate evidence exported:");
305
+ console.log(\`- Markdown: \${markdownPath}\`);
306
+ console.log(\`- JSON: \${jsonPath}\`);
307
+
308
+ process.exit(Math.max(markdown.status ?? 0, json.status ?? 0));
309
+
310
+ function parseArgs(argv) {
311
+ const parsed = {
312
+ staged: false
313
+ };
314
+
315
+ for (let index = 0; index < argv.length; index += 1) {
316
+ const arg = argv[index];
317
+
318
+ if (arg === "--staged") {
319
+ parsed.staged = true;
320
+ continue;
321
+ }
322
+
323
+ if (arg !== "--task" && arg !== "--base") {
324
+ console.error(\`Unknown option: \${arg}\`);
325
+ process.exit(2);
326
+ }
327
+
328
+ const value = argv[index + 1];
329
+
330
+ if (value === undefined || value.startsWith("--")) {
331
+ console.error(\`Missing value for \${arg}.\`);
332
+ process.exit(2);
333
+ }
334
+
335
+ if (arg === "--task") {
336
+ parsed.task = value;
337
+ } else {
338
+ parsed.base = value;
339
+ }
340
+
341
+ index += 1;
342
+ }
343
+
344
+ return parsed;
345
+ }
346
+
347
+ function runCriticalGate(commandArgs) {
348
+ const result = spawnSync("critical-gate", commandArgs, {
349
+ cwd: root,
350
+ encoding: "utf8",
351
+ shell: process.platform === "win32",
352
+ stdio: ["ignore", "pipe", "pipe"]
353
+ });
354
+
355
+ if (result.error !== undefined) {
356
+ console.error(result.error.message);
357
+ process.exit(3);
358
+ }
359
+
360
+ if (result.stdout.length > 0) {
361
+ process.stdout.write(result.stdout);
362
+ }
363
+
364
+ if (result.stderr.length > 0) {
365
+ process.stderr.write(result.stderr);
366
+ }
367
+
368
+ return result;
369
+ }
370
+
371
+ function hasMeaningfulDiff() {
372
+ const tracked = spawnSync("git", ["diff", "--quiet", "HEAD", "--"], {
373
+ cwd: root,
374
+ stdio: "ignore"
375
+ });
376
+
377
+ if (tracked.status !== 0) {
378
+ return true;
379
+ }
380
+
381
+ const untracked = spawnSync("git", ["ls-files", "--others", "--exclude-standard"], {
382
+ cwd: root,
383
+ encoding: "utf8",
384
+ stdio: ["ignore", "pipe", "ignore"]
385
+ });
386
+
387
+ return untracked.stdout.trim().length > 0;
388
+ }
389
+
390
+ function readJsonReport(path) {
391
+ try {
392
+ return JSON.parse(readFileSync(path, "utf8"));
393
+ } catch {
394
+ return undefined;
395
+ }
396
+ }
397
+
398
+ function updateIndex(path, entry) {
399
+ const header = [
400
+ "# Critical Gate Evidence",
401
+ "",
402
+ "Timestamped reports from observe-only dogfooding runs.",
403
+ "",
404
+ "| Date | Decision | Findings | Coherence | Scope | Task | Reports |",
405
+ "| --- | --- | ---: | ---: | ---: | --- | --- |"
406
+ ].join("\\n");
407
+ const existing = existsSync(path) ? readFileSync(path, "utf8") : \`\${header}\\n\`;
408
+ const line = [
409
+ \`| \${entry.day}\`,
410
+ entry.decision,
411
+ entry.findings,
412
+ entry.coherence,
413
+ entry.scope,
414
+ escapeCell(entry.task),
415
+ \`[md](\${entry.markdownFile}) / [json](\${entry.jsonFile}) |\`
416
+ ].join(" | ");
417
+
418
+ if (existing.includes(line)) {
419
+ return;
420
+ }
421
+
422
+ writeFileSync(path, \`\${existing.trimEnd()}\\n\${line}\\n\`);
423
+ }
424
+
425
+ function relativeForMarkdown(fromDir, filePath) {
426
+ return filePath.slice(fromDir.length + 1).replaceAll("\\\\", "/");
427
+ }
428
+
429
+ function slugify(value) {
430
+ return value
431
+ .toLowerCase()
432
+ .replace(/[^a-z0-9]+/g, "-")
433
+ .replace(/^-|-$/g, "")
434
+ .slice(0, 80);
435
+ }
436
+
437
+ function escapeCell(value) {
438
+ return value.replaceAll("|", "\\\\|").replace(/\\s+/g, " ").trim();
439
+ }
440
+
441
+ function formatScore(score) {
442
+ if (score === undefined || score === null) {
443
+ return "unknown";
444
+ }
445
+
446
+ if (typeof score === "number" || typeof score === "string") {
447
+ return score;
448
+ }
449
+
450
+ if (typeof score.value === "number" || typeof score.value === "string") {
451
+ return score.value;
452
+ }
453
+
454
+ if (typeof score.score === "number" || typeof score.score === "string") {
455
+ return score.score;
456
+ }
457
+
458
+ return "unknown";
459
+ }
460
+ `;
461
+ function dogfoodJournalSource(packageManager) {
462
+ return `# Critical Gate Dogfood Journal
463
+
464
+ Critical Gate is adopted in observe-only mode for this repository.
465
+
466
+ The goal is to collect evidence from real AI-agent tasks before enabling local hooks or hard CI
467
+ blocking. After each agent task with a meaningful diff, export durable evidence:
468
+
469
+ \`\`\`bash
470
+ ${packageManager.run} gate:evidence -- --task "Describe the completed task"
471
+ \`\`\`
472
+
473
+ This writes timestamped Markdown and JSON reports under \`docs/critical-gate-evidence/\`.
474
+
475
+ ## Metrics
476
+
477
+ | Metric | Count |
478
+ | --- | ---: |
479
+ | Tasks analyzed | 0 |
480
+ | Useful findings | 0 |
481
+ | False positives | 0 |
482
+ | Missed findings | 0 |
483
+ | Exported evidence reports | 0 |
484
+
485
+ ## Log Template
486
+
487
+ \`\`\`md
488
+ ## YYYY-MM-DD
489
+
490
+ Task:
491
+
492
+ Finding:
493
+
494
+ Result:
495
+
496
+ Status:
497
+ Useful / False positive / Missed / Clean
498
+
499
+ Follow-up:
500
+ \`\`\`
501
+ `;
502
+ }
503
+ const evidenceIndexSource = `# Critical Gate Evidence
504
+
505
+ Timestamped reports from observe-only dogfooding runs.
506
+
507
+ | Date | Decision | Findings | Coherence | Scope | Task | Reports |
508
+ | --- | --- | ---: | ---: | ---: | --- | --- |
509
+ `;
510
+ function githubWorkflowSource(version) {
511
+ const actionVersion = version === "latest" ? "latest" : version.replace(/^[~^]/u, "");
512
+ return `name: Critical Gate
513
+
514
+ on:
515
+ pull_request:
516
+
517
+ permissions:
518
+ actions: read
519
+ contents: read
520
+ pull-requests: read
521
+ security-events: write
522
+
523
+ jobs:
524
+ critical-gate:
525
+ name: Advisory diff integrity
526
+ runs-on: ubuntu-latest
527
+
528
+ steps:
529
+ - name: Checkout
530
+ uses: actions/checkout@v6
531
+ with:
532
+ fetch-depth: 0
533
+
534
+ - name: Run Critical Gate
535
+ id: critical-gate
536
+ uses: criticaldeveloper/critical-gate@v2
537
+ continue-on-error: true
538
+ with:
539
+ version: "${actionVersion}"
540
+ task: \${{ github.event.pull_request.title }}
541
+ base: \${{ github.event.pull_request.base.sha }}
542
+ format: sarif
543
+ output: critical-gate.sarif
544
+
545
+ - name: Upload Critical Gate SARIF
546
+ if: always() && hashFiles('critical-gate.sarif') != ''
547
+ uses: github/codeql-action/upload-sarif@v4
548
+ with:
549
+ sarif_file: critical-gate.sarif
550
+ `;
551
+ }
552
+ //# sourceMappingURL=init-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-project.js","sourceRoot":"","sources":["../../src/cli/init-project.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/cli/io.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,SAAS,EAAE,KAYvB,CAAC"}
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/cli/io.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,SAAS,EAAE,KAgBvB,CAAC"}
package/dist/cli/io.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { execFileSync } from "node:child_process";
1
2
  import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
3
  import { getApiSnapshotOutputDirectory, readGitDiff } from "../index.js";
3
4
  export const defaultIo = {
@@ -8,6 +9,9 @@ export const defaultIo = {
8
9
  writeFileSync(path, content, "utf8");
9
10
  },
10
11
  now: () => new Date(),
12
+ getRoot: () => execFileSync("git", ["rev-parse", "--show-toplevel"], {
13
+ encoding: "utf8"
14
+ }).trim(),
11
15
  exists: (path) => existsSync(path),
12
16
  readFile: (path) => readFileSync(path, "utf8"),
13
17
  chmodFile: (path, mode) => chmodSync(path, mode),
@@ -1 +1 @@
1
- {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/cli/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExF,OAAO,EAAE,6BAA6B,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGzE,MAAM,CAAC,MAAM,SAAS,GAAU;IAC9B,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IACzC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3C,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QAC3B,SAAS,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;IACrB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;IAC9C,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IAChD,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;CAClF,CAAC"}
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/cli/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExF,OAAO,EAAE,6BAA6B,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGzE,MAAM,CAAC,MAAM,SAAS,GAAU;IAC9B,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IACzC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3C,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QAC3B,SAAS,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;IACrB,OAAO,EAAE,GAAG,EAAE,CACZ,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;QACpD,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC,IAAI,EAAE;IACX,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;IAC9C,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IAChD,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;CAClF,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { ExitCode, type CliIo } from "./types.js";
2
- export declare const CLI_VERSION = "2.4.3";
2
+ export declare const CLI_VERSION = "2.5.0";
3
3
  export declare function main(argv?: string[], io?: CliIo): ExitCode;
4
4
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,WAAW,UAAwB,CAAC;AAEjD,wBAAgB,IAAI,CAAC,IAAI,WAAwB,EAAE,EAAE,QAAY,GAAG,QAAQ,CAQ3E"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,WAAW,UAAwB,CAAC;AAEjD,wBAAgB,IAAI,CAAC,IAAI,WAAwB,EAAE,EAAE,QAAY,GAAG,QAAQ,CAQ3E"}
package/dist/cli/main.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { renderReport } from "../index.js";
2
2
  import { CRITICAL_GATE_VERSION } from "../version.js";
3
3
  import { parseCheckArgs, isCommandName } from "./args.js";
4
- import { runAcceptCommand, runInitAgentCommand, runInitPolicyCommand, runInstallHooksCommand, runSnapshotApiCommand, runTeachCommand } from "./commands.js";
4
+ import { runAcceptCommand, runInitAgentCommand, runInitPolicyCommand, runInitProjectCommand, runInstallHooksCommand, runSnapshotApiCommand, runTeachCommand } from "./commands.js";
5
5
  import { getCommandHelpText, getHelpText } from "./help.js";
6
6
  import { defaultIo } from "./io.js";
7
7
  import { createGateResult } from "./result.js";
@@ -48,6 +48,9 @@ function runCli(argv, io) {
48
48
  if (command === "install-hooks") {
49
49
  return runInstallHooksCommand(args, io);
50
50
  }
51
+ if (command === "init") {
52
+ return runInitProjectCommand(args, io);
53
+ }
51
54
  if (command === "init-policy") {
52
55
  return runInitPolicyCommand(args, io);
53
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export interface CliIo {
21
21
  writeFile: (path: string, content: string) => void;
22
22
  chmodFile?: (path: string, mode: number) => void;
23
23
  now: () => Date;
24
+ getRoot?: () => string;
24
25
  readDiff: (baseRef?: string, options?: {
25
26
  staged?: boolean;
26
27
  }) => GitDiffResult;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,eAAO,MAAM,QAAQ;;;;;CAKX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,aAAa,CAAC;IAC9E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,eAAO,MAAM,QAAQ;;;;;CAKX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,aAAa,CAAC;IAC9E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-patterns.d.ts","sourceRoot":"","sources":["../../src/frameworks/path-patterns.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMzE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASpD"}
1
+ {"version":3,"file":"path-patterns.d.ts","sourceRoot":"","sources":["../../src/frameworks/path-patterns.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CASzE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -1,16 +1,27 @@
1
1
  export function matchesPathPattern(pattern, path) {
2
- if (pattern === path) {
2
+ const normalizedPattern = normalizePath(pattern);
3
+ const normalizedPath = normalizePath(path);
4
+ if (normalizedPattern === normalizedPath) {
3
5
  return true;
4
6
  }
5
- return globToRegExp(pattern).test(path);
7
+ return globToRegExp(normalizedPattern).test(normalizedPath);
6
8
  }
7
9
  export function globToRegExp(pattern) {
10
+ return new RegExp(`^${globToRegExpSource(normalizePath(pattern))}$`);
11
+ }
12
+ function globToRegExpSource(pattern) {
13
+ if (pattern.endsWith("/**")) {
14
+ return `${globToRegExpSource(pattern.slice(0, -3))}(?:/.*)?`;
15
+ }
8
16
  const escaped = pattern
9
17
  .replaceAll(/[.+?^${}()|[\]\\]/g, "\\$&")
10
18
  .replaceAll("**/", "\0")
11
19
  .replaceAll("**", ".*")
12
20
  .replaceAll("*", "[^/]*")
13
21
  .replaceAll("\0", "(?:.*/)?");
14
- return new RegExp(`^${escaped}$`);
22
+ return escaped;
23
+ }
24
+ function normalizePath(path) {
25
+ return path.replaceAll("\\", "/").replace(/\/+/g, "/").replace(/\/$/u, "");
15
26
  }
16
27
  //# sourceMappingURL=path-patterns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-patterns.js","sourceRoot":"","sources":["../../src/frameworks/path-patterns.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,IAAY;IAC9D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,OAAO,GAAG,OAAO;SACpB,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC;SACxC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;SACtB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEhC,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"path-patterns.js","sourceRoot":"","sources":["../../src/frameworks/path-patterns.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,IAAY;IAC9D,MAAM,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAE3C,IAAI,iBAAiB,KAAK,cAAc,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,YAAY,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,IAAI,MAAM,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,OAAO;SACpB,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC;SACxC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;SACtB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEhC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const CRITICAL_GATE_VERSION = "2.4.3";
1
+ export declare const CRITICAL_GATE_VERSION = "2.5.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const CRITICAL_GATE_VERSION = "2.4.3";
1
+ export const CRITICAL_GATE_VERSION = "2.5.0";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "critical-gate",
3
- "version": "2.4.3",
3
+ "version": "2.5.0",
4
4
  "description": "Repository-aware diff integrity gate for AI-generated code changes.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -66,6 +66,7 @@
66
66
  "test": "vitest run",
67
67
  "coverage": "vitest run --coverage",
68
68
  "evaluate": "pnpm build && node scripts/evaluate-fixtures.mjs",
69
+ "dogfood:aggregate": "node scripts/aggregate-dogfood-evidence.mjs",
69
70
  "dogfood:plan": "node scripts/dogfood-runner.mjs plan",
70
71
  "dogfood:render": "node scripts/render-dogfood-report.mjs",
71
72
  "dogfood:screenshots": "node scripts/capture-dogfood-screenshots.mjs",