agent-work-loop 0.6.47 → 0.6.48

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 (44) hide show
  1. package/dist/{brief-SGMFXOY2.js → brief-ODMUS5B3.js} +4 -4
  2. package/dist/{changelog-VNJ4EQ74.js → changelog-P35RSRT3.js} +4 -4
  3. package/dist/{chunk-FK3Q7UY2.js → chunk-2NETKDCV.js} +2 -2
  4. package/dist/{chunk-SFTVZFTQ.js → chunk-AVIUMBJZ.js} +3 -3
  5. package/dist/{chunk-MLTY3EE6.js → chunk-FLVRMRHX.js} +1 -1
  6. package/dist/{chunk-PUINOFOR.js → chunk-FPNV5L3Y.js} +3 -3
  7. package/dist/{chunk-YW64OU6W.js → chunk-HW2OSIB3.js} +1 -1
  8. package/dist/{chunk-SJG22DAK.js → chunk-IPNBHVGX.js} +30 -1
  9. package/dist/{chunk-ZRKOZQKP.js → chunk-ITZ52UYF.js} +4 -4
  10. package/dist/{chunk-NCS2EPDP.js → chunk-IUXE7EG3.js} +4 -4
  11. package/dist/{chunk-5HXSUU6Y.js → chunk-JY3DXRXV.js} +8 -8
  12. package/dist/{chunk-R4UNIGE5.js → chunk-KKFXZ3NV.js} +6 -6
  13. package/dist/{chunk-EHJYX57P.js → chunk-OQJIRLKN.js} +1 -1
  14. package/dist/{chunk-VVZOIFL4.js → chunk-RTALSPLK.js} +1 -1
  15. package/dist/{chunk-VE2GVNNS.js → chunk-RTZLAXTZ.js} +16 -5
  16. package/dist/{chunk-IVEV5L7P.js → chunk-TCIRO4GU.js} +1 -1
  17. package/dist/{chunk-R5JAYYQ6.js → chunk-UFVGXPJB.js} +4 -4
  18. package/dist/cli.js +44 -42
  19. package/dist/{commit-GPQATPEA.js → commit-7ONX22OG.js} +25 -7
  20. package/dist/{config-QTEKLFZP.js → config-KNSNSKU7.js} +2 -2
  21. package/dist/{doctor-3XCI22NM.js → doctor-UYO4Z6VC.js} +7 -7
  22. package/dist/{evolve-N3S32P5I.js → evolve-KSA5W6F3.js} +6 -6
  23. package/dist/{feedback-log-UCNJ2GVT.js → feedback-log-BIIFYX6D.js} +4 -4
  24. package/dist/{gotchas-PDG2ZZFQ.js → gotchas-US2HUCK2.js} +6 -6
  25. package/dist/{hold-recheck-UNAILFN5.js → hold-recheck-NYW2AGYK.js} +5 -5
  26. package/dist/{init-3B4ZRGWY.js → init-PEKMQY7D.js} +1 -1
  27. package/dist/{lane-5CU25EAJ.js → lane-647Q33RO.js} +14 -14
  28. package/dist/{loop-summary-CODZMRUY.js → loop-summary-BRRJ6V2U.js} +5 -5
  29. package/dist/{metrics-ZR7BPATB.js → metrics-C3UUN5U5.js} +3 -3
  30. package/dist/{record-TSB22DIO.js → record-MBGID3SX.js} +4 -4
  31. package/dist/{remove-SGQHBPW3.js → remove-46IZDWJ7.js} +14 -14
  32. package/dist/{review-RT7EPECQ.js → review-XBOUKZTN.js} +12 -12
  33. package/dist/{rules-QLUXNSCN.js → rules-JKR4DO6F.js} +7 -7
  34. package/dist/{state-6IIH7SW2.js → state-QVDADIXS.js} +3 -3
  35. package/dist/{status-2LPWVCHT.js → status-BJ4B6NKL.js} +5 -5
  36. package/dist/{update-CKGPHO5B.js → update-UXULNKWR.js} +1 -1
  37. package/dist/{verify-34G2WAQ4.js → verify-7KWUZCN7.js} +9 -9
  38. package/dist/{version-check-ZVQZAJ5X.js → version-check-Y3KBDUQ2.js} +4 -4
  39. package/dist/{work-XO5RGFTG.js → work-T5S4FNFZ.js} +13 -13
  40. package/engine/skills/claude/awl-pipeline/SKILL.md +1 -0
  41. package/engine/skills/claude/awl-pipeline-exec/SKILL.md +7 -4
  42. package/engine/skills/claude/awl-pipeline-review/SKILL.md +6 -3
  43. package/engine/version.json +1 -1
  44. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  computeUpdateAvailable,
4
4
  readCachedLatestVersion,
5
5
  version
6
- } from "./chunk-YW64OU6W.js";
6
+ } from "./chunk-HW2OSIB3.js";
7
7
  import {
8
8
  caps,
9
9
  engineDir,
@@ -302,14 +302,14 @@ ${renderSkillsHelpFooter(caps())}
302
302
  ` : ""
303
303
  ).option("--examples", "\uC790\uC8FC \uC4F0\uB294 \uBA85\uB839 \uC608\uC2DC\uB97C \uBCF4\uC5EC\uC90D\uB2C8\uB2E4").option("--skills", "awl-loop/awl-pipeline \uC2A4\uD0AC\uC744 \uBD80\uC5F0\uC124\uBA85\uD569\uB2C8\uB2E4").showHelpAfterError();
304
304
  program.command("init").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 Agent Work Loop \uB97C \uC124\uC815\uD569\uB2C8\uB2E4").option("--yes", "\uC9C8\uBB38 \uC5C6\uC774 \uC790\uB3D9 \uAC10\uC9C0\uB41C \uAC12\uC73C\uB85C \uC9C4\uD589\uD569\uB2C8\uB2E4 (\uBE44\uB300\uD654\uD615)").action(async (opts) => {
305
- const { runInit } = await import("./init-3B4ZRGWY.js");
305
+ const { runInit } = await import("./init-PEKMQY7D.js");
306
306
  await runInit({ yes: opts.yes === true });
307
307
  });
308
308
  program.command("status").description("\uC9C0\uAE08 \uC5B4\uB514\uAE4C\uC9C0 \uC654\uB294\uC9C0 \uD55C\uB208\uC5D0 \uBD05\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--pipeline", ".tasks \uB808\uC778(plan/exec/review)\uC758 workitem \uC0C1\uD0DC\uB97C \uBC30\uC9C0\uB85C \uBD05\uB2C8\uB2E4").option(
309
309
  "--archive",
310
310
  "(--pipeline\uACFC \uD568\uAED8) \uC720\uC608 \uAE30\uAC04(3\uC77C) \uC9C0\uB09C \uC644\uB8CC workitem\uC744 .tasks/archive/ \uB85C \uBCF4\uAD00\uD569\uB2C8\uB2E4"
311
311
  ).action(async (opts) => {
312
- const { runStatus } = await import("./status-2LPWVCHT.js");
312
+ const { runStatus } = await import("./status-BJ4B6NKL.js");
313
313
  await runStatus({
314
314
  json: opts.json === true,
315
315
  pipeline: opts.pipeline === true,
@@ -317,15 +317,15 @@ ${renderSkillsHelpFooter(caps())}
317
317
  });
318
318
  });
319
319
  program.command("brief").description("KST \uC624\uB298(\uB610\uB294 --date)\uC758 \uC9C4\uD589\uBD84\uC744 \uBAA8\uC544 \uB0C5\uB2C8\uB2E4(\uC2A4\uD0AC \uC18C\uBE44\uC6A9 --json)").option("--today", "\uC624\uB298(KST) \uAE30\uC900\uC73C\uB85C \uBAA8\uC74D\uB2C8\uB2E4(\uAE30\uBCF8)").option("--date <YYYY-MM-DD>", "KST \uAE30\uC900 \uD2B9\uC815 \uB0A0\uC9DC\uB85C \uBAA8\uC74D\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
320
- const { runBrief } = await import("./brief-SGMFXOY2.js");
320
+ const { runBrief } = await import("./brief-ODMUS5B3.js");
321
321
  await runBrief({ today: opts.today === true, date: opts.date, json: opts.json === true });
322
322
  });
323
323
  program.command("doctor").description("\uC124\uCE58\uC640 \uD658\uACBD\uC744 \uC810\uAC80\uD569\uB2C8\uB2E4 (\uC544\uBB34\uAC83\uB3C4 \uACE0\uCE58\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
324
- const { runDoctor } = await import("./doctor-3XCI22NM.js");
324
+ const { runDoctor } = await import("./doctor-UYO4Z6VC.js");
325
325
  await runDoctor({ json: opts.json === true });
326
326
  });
327
327
  program.command("version-check").description("\uBC84\uC804 \uBD88\uC77C\uCE58\uB97C \uAC80\uC0AC\uD569\uB2C8\uB2E4 (package/engine/\uD504\uB85C\uC81D\uD2B8/\uC2A4\uD0AC)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
328
- const { runVersionCheck } = await import("./version-check-ZVQZAJ5X.js");
328
+ const { runVersionCheck } = await import("./version-check-Y3KBDUQ2.js");
329
329
  await runVersionCheck({ json: opts.json === true });
330
330
  });
331
331
  program.command("update").description(
@@ -334,12 +334,12 @@ ${renderSkillsHelpFooter(caps())}
334
334
  "-l, --local",
335
335
  "\uB4F1\uB85D\uB41C \uD504\uB85C\uC81D\uD2B8 \uC804\uBD80\uC758 \uB85C\uCEEC \uC2A4\uD0AC\uC744 \uC9C0\uAE08 \uC124\uCE58\uB41C \uC5D4\uC9C4\uC5D0 \uB9DE\uCDB0 \uC7AC\uB3D9\uAE30\uD654\uD569\uB2C8\uB2E4"
336
336
  ).option("-a, --all", "\uC804\uC5ED\uACFC \uB4F1\uB85D\uB41C \uD504\uB85C\uC81D\uD2B8 \uB85C\uCEEC\uC744 \uBAA8\uB450 \uAC31\uC2E0\uD569\uB2C8\uB2E4").action(async (opts) => {
337
- const { runUpdate } = await import("./update-CKGPHO5B.js");
337
+ const { runUpdate } = await import("./update-UXULNKWR.js");
338
338
  runUpdate(opts);
339
339
  });
340
340
  program.command("remove").description("awl \uC774 \uC190\uB304 \uD754\uC801\uC744 \uC9C0\uC6C1\uB2C8\uB2E4 (\uAE30\uBCF8\uC740 \uB4DC\uB77C\uC774\uB7F0 \u2014 --yes \uC5C6\uC774\uB294 \uC0AD\uC81C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4)").option("--yes", "\uC2E4\uC81C\uB85C \uC0AD\uC81C\uD569\uB2C8\uB2E4 (\uAE30\uBCF8\uC740 \uB4DC\uB77C\uC774\uB7F0)").option("--project", "\uC774 \uD504\uB85C\uC81D\uD2B8 \uB85C\uCEEC\uB9CC \uC815\uB9AC\uD569\uB2C8\uB2E4 (\uAE30\uBCF8\uAC12)").option("--global", "\uC804\uC5ED(~/.awl)\uB9CC \uC815\uB9AC\uD569\uB2C8\uB2E4 \u2014 \uB2E4\uB978 \uD504\uB85C\uC81D\uD2B8\uC758 \uD559\uC2B5\uB3C4 \uD568\uAED8 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4").option("--all", "\uD504\uB85C\uC81D\uD2B8 \uB85C\uCEEC + \uC804\uC5ED\uC744 \uBAA8\uB450 \uC815\uB9AC\uD569\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(
341
341
  async (opts) => {
342
- const { runRemove } = await import("./remove-SGQHBPW3.js");
342
+ const { runRemove } = await import("./remove-46IZDWJ7.js");
343
343
  await runRemove({
344
344
  yes: opts.yes === true,
345
345
  project: opts.project === true,
@@ -351,22 +351,22 @@ ${renderSkillsHelpFooter(caps())}
351
351
  );
352
352
  const config = program.command("config").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC124\uC815\uC744 \uBD05\uB2C8\uB2E4 (TTY \uBA74 \uC218\uC815\uB3C4)");
353
353
  config.action(async () => {
354
- const { runConfig } = await import("./config-QTEKLFZP.js");
354
+ const { runConfig } = await import("./config-KNSNSKU7.js");
355
355
  await runConfig();
356
356
  });
357
357
  config.command("set [key] [value]").description("\uC124\uC815 \uAC12\uC744 \uBC14\uAFC9\uB2C8\uB2E4 (\uD0A4 \uC0DD\uB7B5 \uC2DC \uBAA9\uB85D, cmd \uB294 \uC2E4\uC81C\uB85C \uC2E4\uD589\uD574 \uBD05\uB2C8\uB2E4)").option("--force", "\uAC80\uC99D\uC5D0 \uC2E4\uD328\uD574\uB3C4 \uC800\uC7A5\uD569\uB2C8\uB2E4").action(
358
358
  async (key, value, opts) => {
359
- const { runConfigSet } = await import("./config-QTEKLFZP.js");
359
+ const { runConfigSet } = await import("./config-KNSNSKU7.js");
360
360
  await runConfigSet(key, value, { force: opts.force === true });
361
361
  }
362
362
  );
363
363
  const work = program.command("work").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uAD00\uB9AC\uD569\uB2C8\uB2E4");
364
364
  work.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
365
- const { runWorkList } = await import("./work-XO5RGFTG.js");
365
+ const { runWorkList } = await import("./work-T5S4FNFZ.js");
366
366
  runWorkList({ json: opts.json === true });
367
367
  });
368
368
  work.command("list").description("\uB4F1\uB85D\uB41C \uC6CC\uD06C\uC544\uC774\uD15C \uBAA9\uB85D\uACFC \uC9C4\uD589 \uC0C1\uD669\uC744 \uBD05\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
369
- const { runWorkList } = await import("./work-XO5RGFTG.js");
369
+ const { runWorkList } = await import("./work-T5S4FNFZ.js");
370
370
  runWorkList({ json: opts.json === true });
371
371
  });
372
372
  work.command("new <id> [description]").description("\uC0C8 \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uB9CC\uB4E4\uACE0 \uC804\uD658\uD569\uB2C8\uB2E4 (\uD604\uC7AC \uC6CC\uD06C\uC544\uC774\uD15C\uC740 \uBCF4\uAD00\uB429\uB2C8\uB2E4)").option("--worktree [branch]", "\uACA9\uB9AC\uB41C git worktree \uB97C \uB9CC\uB4E4\uC5B4 \uADF8 \uC548\uC5D0\uC11C \uC2DC\uC791\uD569\uB2C8\uB2E4").option("--skip-baseline", "\uAC80\uC99D \uBCA0\uC774\uC2A4\uB77C\uC778 \uCEA1\uCC98\uB97C \uAC74\uB108\uB701\uB2C8\uB2E4 (\uB290\uB9B0 \uD504\uB85C\uC81D\uD2B8\uC6A9)").option(
@@ -374,7 +374,7 @@ ${renderSkillsHelpFooter(caps())}
374
374
  "records(~/.awl)\uB97C \uC774 \uC6CC\uD06C\uC544\uC774\uD15C \uC804\uC6A9 AWL_HOME \uC73C\uB85C \uACA9\uB9AC\uD569\uB2C8\uB2E4 (\uBCD1\uB82C \uC138\uC158\uC6A9)"
375
375
  ).option("--experiment <json>", '\uC2E4\uD5D8 \uCF00\uC774\uC2A4 \uBA54\uD0C0 JSON (\uC608: {"model":"lite","mode":"loop"})').action(
376
376
  async (id, description, opts) => {
377
- const { runWorkNew } = await import("./work-XO5RGFTG.js");
377
+ const { runWorkNew } = await import("./work-T5S4FNFZ.js");
378
378
  const parsedExp = parseExperimentOption(opts.experiment);
379
379
  if (!parsedExp.ok) {
380
380
  process.stderr.write(`
@@ -386,52 +386,52 @@ ${renderSkillsHelpFooter(caps())}
386
386
  }
387
387
  );
388
388
  work.command("switch <id>").description("\uB2E4\uB978 \uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uC804\uD658\uD569\uB2C8\uB2E4 (\uD604\uC7AC \uC6CC\uD06C\uC544\uC774\uD15C\uC740 \uBCF4\uAD00\uB429\uB2C8\uB2E4)").action(async (id) => {
389
- const { runWorkSwitch } = await import("./work-XO5RGFTG.js");
389
+ const { runWorkSwitch } = await import("./work-T5S4FNFZ.js");
390
390
  await runWorkSwitch(id);
391
391
  });
392
392
  work.command("abandon <id>").description("\uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uC911\uB2E8 \uCC98\uB9AC\uD569\uB2C8\uB2E4 (\uC0AD\uC81C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4, \uAE30\uB85D\uC740 \uB0A8\uC2B5\uB2C8\uB2E4)").action(async (id) => {
393
- const { runWorkAbandon } = await import("./work-XO5RGFTG.js");
393
+ const { runWorkAbandon } = await import("./work-T5S4FNFZ.js");
394
394
  runWorkAbandon(id);
395
395
  });
396
396
  work.command("done <id>").description(
397
397
  "\uC644\uB8CC\uB41C \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uC815\uB9AC\uD569\uB2C8\uB2E4 (\uC6CC\uD06C\uD2B8\uB9AC \uC81C\uAC70 + \uC0C1\uD0DC \uC2A4\uB0C5\uC0F7 \uD68C\uC218, \uAE30\uB85D\uC740 \uB0A8\uC2B5\uB2C8\uB2E4)"
398
398
  ).option("--force", "\uC815\uB9AC\uB418\uC9C0 \uC54A\uC740 \uBCC0\uACBD\uC774 \uC788\uC5B4\uB3C4 \uC6CC\uD06C\uD2B8\uB9AC\uB97C \uC81C\uAC70\uD569\uB2C8\uB2E4").action(async (id, opts) => {
399
- const { runWorkDone } = await import("./work-XO5RGFTG.js");
399
+ const { runWorkDone } = await import("./work-T5S4FNFZ.js");
400
400
  await runWorkDone(id, { force: opts.force === true });
401
401
  });
402
402
  const lane = program.command("lane").description("\uACA9\uB9AC \uB808\uC778(worktree)\uC73C\uB85C \uD30C\uC774\uD504\uB77C\uC778\uC744 \uBCD1\uB82C \uC2E4\uD589\uD569\uB2C8\uB2E4 (\uB808\uC778 \uC0DD\uC131\xB7\uC870\uD68C\xB7\uC815\uB9AC)");
403
403
  lane.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
404
- const { runLaneList } = await import("./lane-5CU25EAJ.js");
404
+ const { runLaneList } = await import("./lane-647Q33RO.js");
405
405
  await runLaneList({ json: opts.json === true });
406
406
  });
407
407
  lane.command("new <name> [description]").description("\uACA9\uB9AC \uB808\uC778\uC744 \uB9CC\uB4ED\uB2C8\uB2E4 (worktree + \uC804\uC6A9 AWL_HOME + \uC2A4\uD0AC \uC7AC\uC124\uCE58 + \uAE30\uB3D9 \uC548\uB0B4)").action(async (name, description) => {
408
- const { runLaneNew } = await import("./lane-5CU25EAJ.js");
408
+ const { runLaneNew } = await import("./lane-647Q33RO.js");
409
409
  await runLaneNew(name, description);
410
410
  });
411
411
  lane.command("ls").description("\uD604\uC874 \uB808\uC778\uC744 \uC774\uB984\xB7\uACBD\uB85C\xB7\uBE0C\uB79C\uCE58\uC640 \uD568\uAED8 \uB098\uC5F4\uD569\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
412
- const { runLaneList } = await import("./lane-5CU25EAJ.js");
412
+ const { runLaneList } = await import("./lane-647Q33RO.js");
413
413
  await runLaneList({ json: opts.json === true });
414
414
  });
415
415
  lane.command("rm <name>").description("\uB808\uC778\uC758 \uC6CC\uD06C\uD2B8\uB9AC\uB97C \uD68C\uC218\uD558\uACE0 \uB514\uB809\uD1A0\uB9AC\uB97C \uC81C\uAC70\uD569\uB2C8\uB2E4").option("--force", "\uCEE4\uBC0B\uB418\uC9C0 \uC54A\uC740 \uBCC0\uACBD\uC774 \uC788\uC5B4\uB3C4 \uC81C\uAC70\uD569\uB2C8\uB2E4").action(async (name, opts) => {
416
- const { runLaneRemove } = await import("./lane-5CU25EAJ.js");
416
+ const { runLaneRemove } = await import("./lane-647Q33RO.js");
417
417
  await runLaneRemove(name, { force: opts.force === true });
418
418
  });
419
419
  program.command("records").description("\uC313\uC778 \uAE30\uB85D\uC744 \uBD05\uB2C8\uB2E4").option("--type <type>", "\uD0C0\uC785\uC73C\uB85C \uAC70\uB985\uB2C8\uB2E4 (attempt, blocked \uB4F1)").option("--workitem <id>", "\uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uAC70\uB985\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
420
- const { runRecords } = await import("./record-TSB22DIO.js");
420
+ const { runRecords } = await import("./record-MBGID3SX.js");
421
421
  runRecords({ type: opts.type, workitem: opts.workitem, json: opts.json === true });
422
422
  });
423
423
  const rules = program.command("rules").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC801\uC6A9\uB418\uB294 \uADDC\uCE59\uC744 \uBD05\uB2C8\uB2E4").enablePositionalOptions();
424
424
  rules.option("--scope <scope>", "\uBC94\uC704\uB85C \uAC70\uB985\uB2C8\uB2E4 (implement \uB4F1)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
425
- const { runRules } = await import("./rules-QLUXNSCN.js");
425
+ const { runRules } = await import("./rules-JKR4DO6F.js");
426
426
  runRules({ scope: opts.scope, json: opts.json === true });
427
427
  });
428
428
  rules.command("edit").description("$EDITOR \uB85C \uADDC\uCE59 \uD30C\uC77C\uC744 \uC5FD\uB2C8\uB2E4").action(async () => {
429
- const { runRules } = await import("./rules-QLUXNSCN.js");
429
+ const { runRules } = await import("./rules-JKR4DO6F.js");
430
430
  runRules({ edit: true });
431
431
  });
432
432
  rules.command("promote <gotchaId>").description("\uAD50\uD6C8\uC744 \uADDC\uCE59\uC73C\uB85C \uC2B9\uACA9\uD569\uB2C8\uB2E4 (applies/counter \uD544\uC218, \uC0AC\uB78C\uC774 \uC2E4\uD589)").option("--applies <cond>", "\uC801\uC6A9 \uC870\uAC74 (\uD544\uC218)").option("--counter <cond>", "\uBC18\uC99D \uC870\uAC74 (\uD544\uC218)").option("--rule-scope <scope>", "\uB85C\uB4DC \uB2E8\uACC4 (audit/criteria/implement/commit/review)").action(
433
433
  async (gotchaId, opts) => {
434
- const { runRulesPromote } = await import("./rules-QLUXNSCN.js");
434
+ const { runRulesPromote } = await import("./rules-JKR4DO6F.js");
435
435
  runRulesPromote(gotchaId, {
436
436
  applies: opts.applies,
437
437
  counter: opts.counter,
@@ -440,16 +440,16 @@ ${renderSkillsHelpFooter(caps())}
440
440
  }
441
441
  );
442
442
  program.command("gotchas").description("\uC544\uC9C1 \uADDC\uCE59\uC774 \uB418\uC9C0 \uC54A\uC740 \uD568\uC815\uC744 \uBD05\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
443
- const { runGotchas } = await import("./gotchas-PDG2ZZFQ.js");
443
+ const { runGotchas } = await import("./gotchas-US2HUCK2.js");
444
444
  runGotchas({ json: opts.json === true });
445
445
  });
446
446
  program.command("metrics").description("\uC6CC\uD06C\uC544\uC774\uD15C(\uC138\uB300)\uBCC4 \uD504\uB85D\uC2DC \uC9C0\uD45C \uCD94\uC138\uB97C \uBD05\uB2C8\uB2E4 (\uD1A0\uD070 \uC9C1\uC811 \uCE21\uC815 \uC544\uB2D8)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--compare", "\uC2E4\uD5D8 \uCF00\uC774\uC2A4(experiment model/mode/taskType)\uBCC4\uB85C \uC9C0\uD45C\uB97C \uBE44\uAD50\uD569\uB2C8\uB2E4").action(async (opts) => {
447
- const { runMetrics } = await import("./metrics-ZR7BPATB.js");
447
+ const { runMetrics } = await import("./metrics-C3UUN5U5.js");
448
448
  runMetrics({ json: opts.json === true, compare: opts.compare === true });
449
449
  });
450
450
  program.command("loop-summary").description("\uB8E8\uD504/\uD30C\uC774\uD504\uB77C\uC778 \uC644\uB8CC\uB97C 4\uB80C\uC988(\uAC1C\uC785\xB7\uD488\uC9C8\xB7\uD6A8\uC728\xB7\uC0B0\uCD9C)\uB85C \uC694\uC57D\uD569\uB2C8\uB2E4").option("--workitem <id>", "\uB300\uC0C1 \uC6CC\uD06C\uC544\uC774\uD15C (\uAE30\uBCF8: \uD604\uC7AC)").option("--workitems <ids>", "\uBC30\uCE58 \uBAA8\uB4DC: \uCF64\uB9C8\uB85C \uAD6C\uBD84\uD55C \uC6CC\uD06C\uC544\uC774\uD15C \uBAA9\uB85D").option("--since <iso>", "\uBC30\uCE58 \uBAA8\uB4DC: \uC774 \uC2DC\uAC01(ISO) \uC774\uD6C4 \uC644\uB8CC\uB41C \uC6CC\uD06C\uC544\uC774\uD15C \uC804\uBD80").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(
451
451
  async (opts) => {
452
- const { runLoopSummary } = await import("./loop-summary-CODZMRUY.js");
452
+ const { runLoopSummary } = await import("./loop-summary-BRRJ6V2U.js");
453
453
  runLoopSummary({
454
454
  workitem: opts.workitem,
455
455
  workitems: parseWorkitemsOption(opts.workitems),
@@ -461,7 +461,7 @@ ${renderSkillsHelpFooter(caps())}
461
461
  program.command("feedback-log").description(
462
462
  "awl \uB3C4\uAD6C \uC790\uCCB4\uC5D0 \uB0A8\uACA8\uC9C4 \uD53C\uB4DC\uBC31 \uAE30\uB85D(awl-feedback)\uC744 area \uBCC4\uB85C \uBB36\uC5B4 \uAC80\uD1A0\uD569\uB2C8\uB2E4 (\uD574\uBC95\uC740 \uC81C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4)"
463
463
  ).option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--area <area>", "area \uB85C \uAC70\uB985\uB2C8\uB2E4 (commit, gate, verify \uB4F1)").option("--severity <sev>", "severity \uB85C \uAC70\uB985\uB2C8\uB2E4 (high/medium/low)").option("--since <date>", "\uC774 ISO \uB0A0\uC9DC \uC774\uD6C4 \uC218\uC9D1\uBD84\uB9CC \uBD05\uB2C8\uB2E4 (\uC608: 2026-07-01)").action(async (opts) => {
464
- const { runFeedbackLog } = await import("./feedback-log-UCNJ2GVT.js");
464
+ const { runFeedbackLog } = await import("./feedback-log-BIIFYX6D.js");
465
465
  runFeedbackLog({
466
466
  json: opts.json === true,
467
467
  area: opts.area,
@@ -470,27 +470,28 @@ ${renderSkillsHelpFooter(caps())}
470
470
  });
471
471
  });
472
472
  program.command("changelog").description("Gate 2 \uC2B9\uC778 \uB4A4 CHANGELOG.md\uC5D0 \uC62E\uAE38 \uCD08\uC548\uC744 \uB9CC\uB4ED\uB2C8\uB2E4 (\uD30C\uC77C\uC740 \uC4F0\uC9C0 \uC54A\uC74C)").option("--workitem <id>", "\uB300\uC0C1 \uC6CC\uD06C\uC544\uC774\uD15C (\uAE30\uBCF8: \uD604\uC7AC)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
473
- const { runChangelogDraft } = await import("./changelog-VNJ4EQ74.js");
473
+ const { runChangelogDraft } = await import("./changelog-P35RSRT3.js");
474
474
  runChangelogDraft({ workitem: opts.workitem, json: opts.json === true });
475
475
  });
476
- program.command("commit <criterion>").description("\uC644\uB8CC \uC870\uAC74 \uC791\uC5C5\uC744 \uACA9\uB9AC \uCEE4\uBC0B\uD569\uB2C8\uB2E4 (\uB0B4 \uBCC0\uACBD\uB9CC)").option("--start", "\uBCA0\uC774\uC2A4\uB77C\uC778\uC744 \uC7A1\uC2B5\uB2C8\uB2E4 (\uC791\uC5C5 \uC2DC\uC791 \uC2DC)").option("-m, --message <msg>", "\uCEE4\uBC0B \uBA54\uC2DC\uC9C0").option("--base <ref>", "\uBCA0\uC774\uC2A4 \uB4DC\uB9AC\uD504\uD2B8\uB97C \uD655\uC778\uD560 \uAE30\uC900 \uBE0C\uB79C\uCE58").option("--force", "\uBCF4\uD638 \uD30C\uC77C \uBCC0\uACBD \uAC80\uC0AC\uB97C \uC0AC\uB78C\uC774 \uD655\uC778\uD558\uACE0 \uC6B0\uD68C\uD569\uB2C8\uB2E4").action(
476
+ program.command("commit <criterion>").description("\uC644\uB8CC \uC870\uAC74 \uC791\uC5C5\uC744 \uACA9\uB9AC \uCEE4\uBC0B\uD569\uB2C8\uB2E4 (\uB0B4 \uBCC0\uACBD\uB9CC)").option("--start", "\uBCA0\uC774\uC2A4\uB77C\uC778\uC744 \uC7A1\uC2B5\uB2C8\uB2E4 (\uC791\uC5C5 \uC2DC\uC791 \uC2DC)").option("-m, --message <msg>", "\uCEE4\uBC0B \uBA54\uC2DC\uC9C0").option("--base <ref>", "\uBCA0\uC774\uC2A4 \uB4DC\uB9AC\uD504\uD2B8\uB97C \uD655\uC778\uD560 \uAE30\uC900 \uBE0C\uB79C\uCE58").option("--force", "\uBCF4\uD638 \uD30C\uC77C \uBCC0\uACBD \uAC80\uC0AC\uB97C \uC0AC\uB78C\uC774 \uD655\uC778\uD558\uACE0 \uC6B0\uD68C\uD569\uB2C8\uB2E4").option("--files <paths...>", "\uC774 \uD30C\uC77C\uB4E4\uB9CC \uCEE4\uBC0B \uB300\uC0C1\uC73C\uB85C \uC881\uD799\uB2C8\uB2E4(\uC548\uC804\uC7A5\uCE58)").action(
477
477
  async (criterion, opts) => {
478
- const { runCommit } = await import("./commit-GPQATPEA.js");
478
+ const { runCommit } = await import("./commit-7ONX22OG.js");
479
479
  await runCommit(criterion, {
480
480
  start: opts.start,
481
481
  message: opts.message,
482
482
  base: opts.base,
483
- force: opts.force
483
+ force: opts.force,
484
+ files: opts.files
484
485
  });
485
486
  }
486
487
  );
487
488
  program.command("review <range>").description("\uB9AC\uBDF0\uC5B4\uC5D0\uAC8C \uB118\uAE38 \uC790\uB8CC\uB97C \uC870\uB9BD\uD569\uB2C8\uB2E4 (provenance \uD3EC\uD568)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--base <ref>", "diff \uAE30\uC900 (\uAE30\uBCF8\uC740 \uC644\uB8CC \uC870\uAC74 baseline)").action(async (range, opts) => {
488
- const { runReview } = await import("./review-RT7EPECQ.js");
489
+ const { runReview } = await import("./review-XBOUKZTN.js");
489
490
  await runReview(range, { json: opts.json === true, base: opts.base });
490
491
  });
491
492
  program.command("record <type>", { hidden: true }).description("\uAD6C\uC870\uD654\uB41C \uAE30\uB85D\uC744 \uB0A8\uAE41\uB2C8\uB2E4").option("--json <data>", "\uAE30\uB85D\uD560 \uB370\uC774\uD130 (JSON \uBB38\uC790\uC5F4)").option("--file <path>", "\uB370\uC774\uD130 \uD30C\uC77C \uACBD\uB85C (\uD070 \uB370\uC774\uD130\uC6A9)").option("--diff", "git diff \uB97C \uCEA1\uCC98\uD574 \uCCA8\uBD80\uD569\uB2C8\uB2E4 (blocked)").option("--workitem <id>", "\uC774 \uAE30\uB85D\uB9CC \uB2E4\uB978 \uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uB0A8\uAE41\uB2C8\uB2E4(\uAE30\uBCF8\uC740 \uD604\uC7AC \uC6CC\uD06C\uC544\uC774\uD15C)").action(
492
493
  async (type, opts) => {
493
- const { runRecord } = await import("./record-TSB22DIO.js");
494
+ const { runRecord } = await import("./record-MBGID3SX.js");
494
495
  await runRecord(type, {
495
496
  json: opts.json,
496
497
  file: opts.file,
@@ -504,7 +505,7 @@ ${renderSkillsHelpFooter(caps())}
504
505
  "\uBCC0\uACBD\uB41C \uD30C\uC77C\uC5D0 \uAD00\uB828\uB41C \uD14C\uC2A4\uD2B8\uB9CC \uC2E4\uD589\uD569\uB2C8\uB2E4(relatedCmd \uD544\uC694, \uC5C6\uC73C\uBA74 \uC804\uCCB4 \uD14C\uC2A4\uD2B8\uB85C \uD3F4\uBC31)"
505
506
  ).action(
506
507
  async (opts) => {
507
- const { runVerify } = await import("./verify-34G2WAQ4.js");
508
+ const { runVerify } = await import("./verify-7KWUZCN7.js");
508
509
  await runVerify({
509
510
  json: opts.json === true,
510
511
  bail: opts.bail === true,
@@ -515,18 +516,19 @@ ${renderSkillsHelpFooter(caps())}
515
516
  }
516
517
  );
517
518
  program.command("hold-recheck", { hidden: true }).description(".tasks/plan \uC758 \uC758\uC874\uD615 hold \uB97C \uC7AC\uC810\uAC80\uD574 \uCC29\uC9C0+\uD569\uACA9\uD55C \uC758\uC874\uC774\uBA74 \uC790\uB3D9 un-hold \uD569\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
518
- const { runHoldRecheck } = await import("./hold-recheck-UNAILFN5.js");
519
+ const { runHoldRecheck } = await import("./hold-recheck-NYW2AGYK.js");
519
520
  await runHoldRecheck({ json: opts.json === true });
520
521
  });
521
522
  const state = program.command("state", { hidden: true }).description("\uB8E8\uD504 \uC0C1\uD0DC\uB97C \uC77D\uACE0 \uC501\uB2C8\uB2E4");
522
523
  state.command("get").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
523
- const { runStateGet } = await import("./state-6IIH7SW2.js");
524
+ const { runStateGet } = await import("./state-QVDADIXS.js");
524
525
  runStateGet({ json: opts.json === true });
525
526
  });
526
- state.command("set").requiredOption("--json <patch>", "\uBD80\uBD84 \uAC31\uC2E0 (JSON \uBB38\uC790\uC5F4)").action(async (opts) => {
527
- const { runStateSet } = await import("./state-6IIH7SW2.js");
528
- const { hasApprovedGate1 } = await import("./record-TSB22DIO.js");
527
+ state.command("set").requiredOption("--json <patch>", "\uBD80\uBD84 \uAC31\uC2E0 (JSON \uBB38\uC790\uC5F4)").option("--workitem <id>", "\uD65C\uC131 \uC6CC\uD06C\uC544\uC774\uD15C \uC77C\uCE58 \uAC00\uB4DC(\uBD88\uC77C\uCE58 \uC2DC \uAC31\uC2E0 \uAC70\uBD80)").action(async (opts) => {
528
+ const { runStateSet } = await import("./state-QVDADIXS.js");
529
+ const { hasApprovedGate1 } = await import("./record-MBGID3SX.js");
529
530
  runStateSet(opts.json, {
531
+ workitem: opts.workitem,
530
532
  // phase:'loop' 로의 전이는 이 워크아이템에 "승인된" 게이트1 레코드가 있을
531
533
  // 때만 허용한다(0.6.3, 적대검증 발견). 예전엔 gate:1 레코드의 존재만 봐서
532
534
  // (decision 무관) 사람이 REJECT 한 계획도 루프에 진입할 수 있었다.
@@ -536,7 +538,7 @@ ${renderSkillsHelpFooter(caps())}
536
538
  });
537
539
  program.command("evolve", { hidden: true }).description("\uAE30\uB85D\uC744 \uBAA8\uC544 \uAD50\uD6C8\uC73C\uB85C, \uAD50\uD6C8\uC744 \uADDC\uCE59\uC73C\uB85C \uC787\uC2B5\uB2C8\uB2E4").option("--collect", "\uC774\uBC88 \uC6CC\uD06C\uC544\uC774\uD15C\uC758 \uAE30\uB85D\uC744 \uBAA8\uC544 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--record", "\uAD50\uD6C8\uC744 gotchas \uC5D0 \uAE30\uB85D\uD569\uB2C8\uB2E4 (--json \uC73C\uB85C \uB370\uC774\uD130)").option("--json [data]", "collect: \uCD9C\uB825 \uD50C\uB798\uADF8 / record: \uAD50\uD6C8 \uB370\uC774\uD130(JSON \uBB38\uC790\uC5F4)").option("--workitem <wi>", "\uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uAC70\uB985\uB2C8\uB2E4 (--collect)").option("--from <YYYY-MM>", "\uAE30\uAC04 \uC2DC\uC791 \uC6D4\uB85C \uC77D\uAE30\uB97C \uC881\uD799\uB2C8\uB2E4 (--collect, \uC5C6\uC73C\uBA74 \uC804\uB7C9)").option("--to <YYYY-MM>", "\uAE30\uAC04 \uB05D \uC6D4 (--collect)").action(
538
540
  async (opts) => {
539
- const m = await import("./evolve-N3S32P5I.js");
541
+ const m = await import("./evolve-KSA5W6F3.js");
540
542
  if (opts.collect && opts.record) {
541
543
  process.stderr.write("\n --collect \uC640 --record \uB294 \uB3D9\uC2DC\uC5D0 \uC4F8 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
542
544
  process.exit(1);
@@ -555,7 +557,7 @@ ${renderSkillsHelpFooter(caps())}
555
557
  }
556
558
  );
557
559
  program.command("defer-summary", { hidden: true }).description("\uBCF4\uB958\uD55C \uC911\uC694 \uD56D\uBAA9(\uC0AC\uB78C \uCD5C\uC885 \uD655\uC778 \uD56D\uBAA9)\uC744 \uCD5C\uC885 \uC694\uC57D\uD569\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--workitem <wi>", "\uC6CC\uD06C\uC544\uC774\uD15C \uC9C0\uC815(\uC5C6\uC73C\uBA74 \uD604\uC7AC)").action(async (opts) => {
558
- const m = await import("./record-TSB22DIO.js");
560
+ const m = await import("./record-MBGID3SX.js");
559
561
  m.runDeferSummary({ json: opts.json === true, workitem: opts.workitem });
560
562
  });
561
563
  program.action((opts, command) => {
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  protectedFilesMessage
3
- } from "./chunk-VVZOIFL4.js";
3
+ } from "./chunk-RTALSPLK.js";
4
4
  import {
5
5
  hasApprovedGate1
6
- } from "./chunk-FK3Q7UY2.js";
6
+ } from "./chunk-2NETKDCV.js";
7
7
  import {
8
8
  getCriterion,
9
9
  loadState,
10
10
  setCriterion,
11
11
  writeState
12
- } from "./chunk-VE2GVNNS.js";
12
+ } from "./chunk-RTZLAXTZ.js";
13
13
  import {
14
14
  loadConfig,
15
15
  resolveProjectRoot,
16
16
  run
17
- } from "./chunk-MLTY3EE6.js";
18
- import "./chunk-SJG22DAK.js";
17
+ } from "./chunk-FLVRMRHX.js";
18
+ import "./chunk-IPNBHVGX.js";
19
19
  import {
20
20
  caps,
21
21
  feedback,
@@ -79,7 +79,7 @@ async function startBaseline(cwd, ac) {
79
79
  await pinBaselineRef(cwd, ac, snapshot);
80
80
  return { snapshot, head, untracked };
81
81
  }
82
- async function isolatedCommit(cwd, ac, message, snapshot, untrackedAtStart = [], expectedHead) {
82
+ async function isolatedCommit(cwd, ac, message, snapshot, untrackedAtStart = [], expectedHead, files) {
83
83
  const empty = { stagedFiles: [], excludedFiles: [], extraFiles: [] };
84
84
  if (expectedHead !== void 0) {
85
85
  const currentHead = (await git(["rev-parse", "HEAD"], cwd)).stdout.trim();
@@ -137,6 +137,23 @@ ${added.stderr.trim()}`,
137
137
  }
138
138
  }
139
139
  const stagedFiles = await namesZ(["diff", "--cached", "--name-only"], cwd);
140
+ if (files !== void 0) {
141
+ const allowedFiles = new Set(
142
+ files.map((file) => path.relative(cwd, path.resolve(cwd, file)).split(path.sep).join("/"))
143
+ );
144
+ const unexpectedFiles = stagedFiles.filter((file) => !allowedFiles.has(file));
145
+ if (unexpectedFiles.length > 0) {
146
+ await git(["reset", "-q"], cwd);
147
+ return {
148
+ committed: false,
149
+ reason: `--files \uC548\uC804\uC7A5\uCE58\uAC00 \uCEE4\uBC0B\uC744 \uC911\uB2E8\uD588\uC2B5\uB2C8\uB2E4. \uBA85\uC2DC\uD558\uC9C0 \uC54A\uC740 \uBCC0\uACBD\uC774 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4: ${unexpectedFiles.join(", ")}`,
150
+ selfCheckOk: false,
151
+ stagedFiles,
152
+ excludedFiles: [],
153
+ extraFiles: []
154
+ };
155
+ }
156
+ }
140
157
  const excludedFiles = [
141
158
  ...await namesZ(["diff", "--name-only"], cwd),
142
159
  ...nowUntracked.filter((f) => untrackedAtStart.includes(f))
@@ -328,7 +345,8 @@ async function runCommit(ac, opts) {
328
345
  opts.message,
329
346
  snapshot,
330
347
  untrackedAtStart,
331
- expectedHead
348
+ expectedHead,
349
+ opts.files
332
350
  );
333
351
  process.stdout.write("\n");
334
352
  if (outcome.stagedFiles.length > 0) {
@@ -16,8 +16,8 @@ import {
16
16
  runConfig,
17
17
  runConfigSet,
18
18
  validateConfig
19
- } from "./chunk-MLTY3EE6.js";
20
- import "./chunk-SJG22DAK.js";
19
+ } from "./chunk-FLVRMRHX.js";
20
+ import "./chunk-IPNBHVGX.js";
21
21
  import "./chunk-FGHILN3D.js";
22
22
  export {
23
23
  DEFAULT_FEEDBACK_PATH,
@@ -8,13 +8,13 @@ import {
8
8
  gitHasCommits,
9
9
  renderText,
10
10
  runDoctor
11
- } from "./chunk-R4UNIGE5.js";
12
- import "./chunk-FK3Q7UY2.js";
13
- import "./chunk-VE2GVNNS.js";
14
- import "./chunk-SFTVZFTQ.js";
15
- import "./chunk-YW64OU6W.js";
16
- import "./chunk-MLTY3EE6.js";
17
- import "./chunk-SJG22DAK.js";
11
+ } from "./chunk-KKFXZ3NV.js";
12
+ import "./chunk-2NETKDCV.js";
13
+ import "./chunk-RTZLAXTZ.js";
14
+ import "./chunk-AVIUMBJZ.js";
15
+ import "./chunk-HW2OSIB3.js";
16
+ import "./chunk-FLVRMRHX.js";
17
+ import "./chunk-IPNBHVGX.js";
18
18
  import "./chunk-FGHILN3D.js";
19
19
  export {
20
20
  collectChecks,
@@ -13,12 +13,12 @@ import {
13
13
  runEvolveCollect,
14
14
  runEvolveRecord,
15
15
  writeGeneration
16
- } from "./chunk-ZRKOZQKP.js";
17
- import "./chunk-IVEV5L7P.js";
18
- import "./chunk-FK3Q7UY2.js";
19
- import "./chunk-VE2GVNNS.js";
20
- import "./chunk-MLTY3EE6.js";
21
- import "./chunk-SJG22DAK.js";
16
+ } from "./chunk-ITZ52UYF.js";
17
+ import "./chunk-TCIRO4GU.js";
18
+ import "./chunk-2NETKDCV.js";
19
+ import "./chunk-RTZLAXTZ.js";
20
+ import "./chunk-FLVRMRHX.js";
21
+ import "./chunk-IPNBHVGX.js";
22
22
  import "./chunk-FGHILN3D.js";
23
23
  export {
24
24
  GOTCHA_RELATION_TYPES,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  readRecords
3
- } from "./chunk-FK3Q7UY2.js";
4
- import "./chunk-VE2GVNNS.js";
5
- import "./chunk-MLTY3EE6.js";
6
- import "./chunk-SJG22DAK.js";
3
+ } from "./chunk-2NETKDCV.js";
4
+ import "./chunk-RTZLAXTZ.js";
5
+ import "./chunk-FLVRMRHX.js";
6
+ import "./chunk-IPNBHVGX.js";
7
7
  import {
8
8
  caps,
9
9
  makeColors,
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  loadGotchaList
3
- } from "./chunk-ZRKOZQKP.js";
4
- import "./chunk-IVEV5L7P.js";
5
- import "./chunk-FK3Q7UY2.js";
6
- import "./chunk-VE2GVNNS.js";
7
- import "./chunk-MLTY3EE6.js";
8
- import "./chunk-SJG22DAK.js";
3
+ } from "./chunk-ITZ52UYF.js";
4
+ import "./chunk-TCIRO4GU.js";
5
+ import "./chunk-2NETKDCV.js";
6
+ import "./chunk-RTZLAXTZ.js";
7
+ import "./chunk-FLVRMRHX.js";
8
+ import "./chunk-IPNBHVGX.js";
9
9
  import {
10
10
  caps,
11
11
  makeColors,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  pipelineLanes
3
- } from "./chunk-PUINOFOR.js";
4
- import "./chunk-FK3Q7UY2.js";
5
- import "./chunk-VE2GVNNS.js";
3
+ } from "./chunk-FPNV5L3Y.js";
4
+ import "./chunk-2NETKDCV.js";
5
+ import "./chunk-RTZLAXTZ.js";
6
6
  import {
7
7
  resolveProjectRoot
8
- } from "./chunk-MLTY3EE6.js";
9
- import "./chunk-SJG22DAK.js";
8
+ } from "./chunk-FLVRMRHX.js";
9
+ import "./chunk-IPNBHVGX.js";
10
10
  import {
11
11
  caps,
12
12
  makeColors,
@@ -45,7 +45,7 @@ import {
45
45
  writeConfig,
46
46
  writeSkillsVersionStamp,
47
47
  writeState
48
- } from "./chunk-SJG22DAK.js";
48
+ } from "./chunk-IPNBHVGX.js";
49
49
  import "./chunk-FGHILN3D.js";
50
50
  export {
51
51
  LANG_OPTIONS,
@@ -9,21 +9,21 @@ import {
9
9
  runLaneRemove,
10
10
  unmergedCommitCount,
11
11
  worktreeUntracked
12
- } from "./chunk-R5JAYYQ6.js";
13
- import "./chunk-5HXSUU6Y.js";
12
+ } from "./chunk-UFVGXPJB.js";
13
+ import "./chunk-JY3DXRXV.js";
14
14
  import "./chunk-D5OINC3G.js";
15
- import "./chunk-EHJYX57P.js";
16
- import "./chunk-ZRKOZQKP.js";
17
- import "./chunk-IVEV5L7P.js";
18
- import "./chunk-NCS2EPDP.js";
19
- import "./chunk-VVZOIFL4.js";
20
- import "./chunk-R4UNIGE5.js";
21
- import "./chunk-FK3Q7UY2.js";
22
- import "./chunk-VE2GVNNS.js";
23
- import "./chunk-SFTVZFTQ.js";
24
- import "./chunk-YW64OU6W.js";
25
- import "./chunk-MLTY3EE6.js";
26
- import "./chunk-SJG22DAK.js";
15
+ import "./chunk-OQJIRLKN.js";
16
+ import "./chunk-ITZ52UYF.js";
17
+ import "./chunk-TCIRO4GU.js";
18
+ import "./chunk-IUXE7EG3.js";
19
+ import "./chunk-RTALSPLK.js";
20
+ import "./chunk-KKFXZ3NV.js";
21
+ import "./chunk-2NETKDCV.js";
22
+ import "./chunk-RTZLAXTZ.js";
23
+ import "./chunk-AVIUMBJZ.js";
24
+ import "./chunk-HW2OSIB3.js";
25
+ import "./chunk-FLVRMRHX.js";
26
+ import "./chunk-IPNBHVGX.js";
27
27
  import "./chunk-FGHILN3D.js";
28
28
  export {
29
29
  branchOf,
@@ -6,21 +6,21 @@ import {
6
6
  computeDurationMs,
7
7
  fmtDuration,
8
8
  loadGenerations
9
- } from "./chunk-IVEV5L7P.js";
9
+ } from "./chunk-TCIRO4GU.js";
10
10
  import {
11
11
  collectDeferred,
12
12
  readRecords
13
- } from "./chunk-FK3Q7UY2.js";
13
+ } from "./chunk-2NETKDCV.js";
14
14
  import {
15
15
  loadState
16
- } from "./chunk-VE2GVNNS.js";
16
+ } from "./chunk-RTZLAXTZ.js";
17
17
  import {
18
18
  loadConfig,
19
19
  multiProjectFooter,
20
20
  requireConfig,
21
21
  resolveProjectScope
22
- } from "./chunk-MLTY3EE6.js";
23
- import "./chunk-SJG22DAK.js";
22
+ } from "./chunk-FLVRMRHX.js";
23
+ import "./chunk-IPNBHVGX.js";
24
24
  import {
25
25
  caps,
26
26
  makeColors,
@@ -8,9 +8,9 @@ import {
8
8
  renderMetrics,
9
9
  renderMetricsCaveat,
10
10
  runMetrics
11
- } from "./chunk-IVEV5L7P.js";
12
- import "./chunk-MLTY3EE6.js";
13
- import "./chunk-SJG22DAK.js";
11
+ } from "./chunk-TCIRO4GU.js";
12
+ import "./chunk-FLVRMRHX.js";
13
+ import "./chunk-IPNBHVGX.js";
14
14
  import "./chunk-FGHILN3D.js";
15
15
  export {
16
16
  computeDurationMs,
@@ -29,10 +29,10 @@ import {
29
29
  runRecords,
30
30
  selectMonthFiles,
31
31
  shouldDefer
32
- } from "./chunk-FK3Q7UY2.js";
33
- import "./chunk-VE2GVNNS.js";
34
- import "./chunk-MLTY3EE6.js";
35
- import "./chunk-SJG22DAK.js";
32
+ } from "./chunk-2NETKDCV.js";
33
+ import "./chunk-RTZLAXTZ.js";
34
+ import "./chunk-FLVRMRHX.js";
35
+ import "./chunk-IPNBHVGX.js";
36
36
  import "./chunk-FGHILN3D.js";
37
37
  export {
38
38
  AWL_FEEDBACK_AREAS,
@@ -4,28 +4,28 @@ import {
4
4
  laneBranchMap,
5
5
  unmergedCommitCount,
6
6
  worktreeUntracked
7
- } from "./chunk-R5JAYYQ6.js";
7
+ } from "./chunk-UFVGXPJB.js";
8
8
  import {
9
9
  removeGitWorktree,
10
10
  worktreeDirtyTracked
11
- } from "./chunk-5HXSUU6Y.js";
11
+ } from "./chunk-JY3DXRXV.js";
12
12
  import "./chunk-D5OINC3G.js";
13
- import "./chunk-EHJYX57P.js";
14
- import "./chunk-ZRKOZQKP.js";
15
- import "./chunk-IVEV5L7P.js";
16
- import "./chunk-NCS2EPDP.js";
17
- import "./chunk-VVZOIFL4.js";
18
- import "./chunk-R4UNIGE5.js";
19
- import "./chunk-FK3Q7UY2.js";
20
- import "./chunk-VE2GVNNS.js";
21
- import "./chunk-SFTVZFTQ.js";
22
- import "./chunk-YW64OU6W.js";
13
+ import "./chunk-OQJIRLKN.js";
14
+ import "./chunk-ITZ52UYF.js";
15
+ import "./chunk-TCIRO4GU.js";
16
+ import "./chunk-IUXE7EG3.js";
17
+ import "./chunk-RTALSPLK.js";
18
+ import "./chunk-KKFXZ3NV.js";
19
+ import "./chunk-2NETKDCV.js";
20
+ import "./chunk-RTZLAXTZ.js";
21
+ import "./chunk-AVIUMBJZ.js";
22
+ import "./chunk-HW2OSIB3.js";
23
23
  import {
24
24
  resolveProjectRoot
25
- } from "./chunk-MLTY3EE6.js";
25
+ } from "./chunk-FLVRMRHX.js";
26
26
  import {
27
27
  packageEngineDir
28
- } from "./chunk-SJG22DAK.js";
28
+ } from "./chunk-IPNBHVGX.js";
29
29
  import {
30
30
  WORKTREES_DIR,
31
31
  caps,