agent-work-loop 0.6.31 → 0.6.34

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 (47) hide show
  1. package/README.md +6 -0
  2. package/dist/{brief-ZZSQ6RQS.js → brief-2UCDBAB6.js} +5 -5
  3. package/dist/{changelog-JWLVVHZL.js → changelog-AICBEFUV.js} +5 -5
  4. package/dist/{chunk-SV4D72NX.js → chunk-3R52QFNQ.js} +2 -2
  5. package/dist/{chunk-Q7V3WVKT.js → chunk-4Q4FDZXN.js} +4 -4
  6. package/dist/{chunk-RNZCRXE3.js → chunk-EPVWUYXP.js} +5 -5
  7. package/dist/{chunk-2DAP3QBU.js → chunk-N5QEEXCO.js} +231 -129
  8. package/dist/{chunk-7NOHUUXV.js → chunk-O7V4DHPZ.js} +73 -12
  9. package/dist/{chunk-DIRYW77S.js → chunk-QFHXKTV6.js} +5 -5
  10. package/dist/{chunk-RRQYSRRT.js → chunk-RG6FT7I2.js} +5 -5
  11. package/dist/{chunk-3UPF7LZT.js → chunk-SDNJULFU.js} +5 -5
  12. package/dist/{chunk-45X7T64Y.js → chunk-SUF5ISJM.js} +63 -20
  13. package/dist/{chunk-JPFGMDQ4.js → chunk-SZQNXMYU.js} +62 -42
  14. package/dist/{chunk-22SUY5RE.js → chunk-TUV6NSTM.js} +6 -6
  15. package/dist/{chunk-77EZYCLF.js → chunk-VKLSQMAW.js} +2 -2
  16. package/dist/{chunk-5APWNDRG.js → chunk-VR74OBHK.js} +2 -2
  17. package/dist/{chunk-TTZY2GLK.js → chunk-W2AMCPKI.js} +1 -1
  18. package/dist/{chunk-Z3QCPOOA.js → chunk-WL674RWY.js} +2 -2
  19. package/dist/{chunk-YP4VCWPV.js → chunk-WPZK7LJU.js} +3 -3
  20. package/dist/cli.js +122 -51
  21. package/dist/{commit-3UZE7XJM.js → commit-PQE62KLZ.js} +6 -6
  22. package/dist/{config-DAD4LIWR.js → config-LHWI2J4M.js} +3 -3
  23. package/dist/{doctor-AW65MZKN.js → doctor-MEYI2ROW.js} +8 -8
  24. package/dist/{evolve-K4WKRA6U.js → evolve-KSUWIZCY.js} +7 -7
  25. package/dist/{feedback-3C33YHKF.js → feedback-633KAKEZ.js} +5 -5
  26. package/dist/{gotchas-IGEQILOO.js → gotchas-R236D2U2.js} +7 -7
  27. package/dist/{hold-recheck-THSJKF5G.js → hold-recheck-7D47ITAP.js} +16 -16
  28. package/dist/{init-MRJEU7IR.js → init-U7F6ECXI.js} +12 -2
  29. package/dist/lane-2OZBXFKL.js +41 -0
  30. package/dist/{loop-summary-MPEKQ2EC.js → loop-summary-HBADJTOZ.js} +6 -6
  31. package/dist/{metrics-64WBBQQX.js → metrics-WI2GOPGG.js} +4 -4
  32. package/dist/{record-GAWMF7KL.js → record-CEEEHNNF.js} +5 -5
  33. package/dist/{remove-ELP4MFVE.js → remove-GWSIRW36.js} +25 -15
  34. package/dist/{review-A5Q7NSOD.js → review-F6Y2TD5B.js} +13 -13
  35. package/dist/{rules-BEQT7YVN.js → rules-A7YTU3HV.js} +8 -8
  36. package/dist/{state-RDKIOU25.js → state-KHZNSJRS.js} +4 -4
  37. package/dist/status-HU3RLDSB.js +40 -0
  38. package/dist/{update-7RQQJ2TH.js → update-7BLNEJ52.js} +5 -5
  39. package/dist/{verify-UUJ6KD37.js → verify-WJNFIF4Y.js} +10 -10
  40. package/dist/version-check-DFNWGNLY.js +14 -0
  41. package/dist/work-LDPAHEPH.js +60 -0
  42. package/engine/version.json +1 -1
  43. package/package.json +1 -1
  44. package/dist/lane-ZQVD7EDE.js +0 -41
  45. package/dist/status-FP73XOZS.js +0 -40
  46. package/dist/version-check-H2T3WW3I.js +0 -14
  47. package/dist/work-HWJSUWBR.js +0 -50
package/dist/cli.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  computeUpdateAvailable,
4
4
  readCachedLatestVersion,
5
5
  version
6
- } from "./chunk-SV4D72NX.js";
6
+ } from "./chunk-3R52QFNQ.js";
7
7
  import {
8
8
  caps,
9
9
  gradient,
@@ -14,14 +14,13 @@ import {
14
14
  sectionBox,
15
15
  signal,
16
16
  visibleWidth
17
- } from "./chunk-45X7T64Y.js";
17
+ } from "./chunk-SUF5ISJM.js";
18
18
 
19
19
  // src/program.ts
20
20
  import { Command } from "commander";
21
21
  var BANNER = `
22
- [ AGENT WORK LOOP ]
22
+ [ AGENT WORK LOOP v${version} ]
23
23
 
24
- \uD55C \uBC88\uB9CC \uC2E4\uD328\uD558\uB294 \uB3C4\uAD6C \uC785\uB2C8\uB2E4. (\uB450\uBC88 \uC2E4\uD328 \uC5C6\uC74C)
25
24
  \uD310\uB2E8\uC740 Claude Code\uB098 Codex\uAC00 \uD558\uACE0,
26
25
  awl\uC740 \uD30C\uC77C\uACFC \uC0C1\uD0DC\uB9CC \uAD00\uB9AC\uD569\uB2C8\uB2E4.`;
27
26
  var GETTING_STARTED = [
@@ -42,16 +41,88 @@ function renderGettingStartedCard(c) {
42
41
  }
43
42
  function renderExamplesCard(c) {
44
43
  const t = makeTokens(c);
45
- const examples = [
46
- { cmd: "awl commit AC-01 --start", note: "\uAD6C\uD604 \uC2DC\uC791 \uC2DC \uBCA0\uC774\uC2A4\uB77C\uC778\uBD80\uD130 \uC7A1\uB294\uB2E4" },
47
- { cmd: 'awl commit AC-01 -m "\uC644\uB8CC \uC870\uAC74 \uC124\uBA85"', note: "<criterion> \uC790\uB9AC\uC5D4 \uC644\uB8CC\uC870\uAC74 ID(AC-01)" },
48
- { cmd: "awl review AC-01..AC-03", note: "<range> \uC790\uB9AC\uC5D4 \uC644\uB8CC\uC870\uAC74 \uBC94\uC704" },
49
- { cmd: "awl status --pipeline", note: "[options] \uC790\uB9AC\uC5D4 --json/--pipeline \uAC19\uC740 \uD50C\uB798\uADF8" }
44
+ const groups = [
45
+ {
46
+ label: "\uC2DC\uC791\xB7\uC810\uAC80",
47
+ examples: [
48
+ { cmd: "awl init --yes", note: "\uAC10\uC9C0\uB41C \uAC12\uC73C\uB85C \uC790\uB3D9 \uC124\uC815" },
49
+ { cmd: "awl status --pipeline", note: "[options] \uC790\uB9AC\uC5D4 --json/--pipeline \uAC19\uC740 \uD50C\uB798\uADF8" },
50
+ { cmd: "awl doctor --json", note: "\uC124\uCE58\xB7\uD658\uACBD \uC810\uAC80 \uACB0\uACFC\uB97C JSON\uC73C\uB85C" },
51
+ { cmd: "awl version-check --json", note: "\uC124\uCE58 \uBC84\uC804\uACFC npm \uCD5C\uC2E0 \uBC84\uC804 \uBE44\uAD50" }
52
+ ]
53
+ },
54
+ {
55
+ label: "\uC644\uB8CC\uC870\uAC74 \uAC8C\uC774\uD2B8",
56
+ examples: [
57
+ { cmd: "awl commit AC-01 --start", note: "\uAD6C\uD604 \uC2DC\uC791 \uC2DC \uBCA0\uC774\uC2A4\uB77C\uC778\uBD80\uD130 \uC7A1\uB294\uB2E4" },
58
+ {
59
+ cmd: 'awl commit AC-01 -m "\uC644\uB8CC \uC870\uAC74 \uC124\uBA85"',
60
+ note: "<criterion> \uC790\uB9AC\uC5D4 \uC644\uB8CC\uC870\uAC74 ID(AC-01)"
61
+ },
62
+ { cmd: "awl review AC-01..AC-03", note: "<range> \uC790\uB9AC\uC5D4 \uC644\uB8CC\uC870\uAC74 \uBC94\uC704" }
63
+ ]
64
+ },
65
+ {
66
+ label: "\uC6CC\uD06C\uC544\uC774\uD15C\xB7\uB808\uC778",
67
+ examples: [
68
+ {
69
+ cmd: 'awl work new WI-01 "\uC5EC\uBC31 \uC2DC\uC2A4\uD15C \uCD94\uAC00" --worktree',
70
+ note: "\uACA9\uB9AC \uC6CC\uD06C\uD2B8\uB9AC\uB85C \uC0C8 \uC6CC\uD06C\uC544\uC774\uD15C \uC2DC\uC791"
71
+ },
72
+ { cmd: "awl work list --json", note: "\uD604\uC7AC+\uBCF4\uAD00\uB41C \uC6CC\uD06C\uC544\uC774\uD15C \uC804\uBD80" },
73
+ { cmd: "awl work done WI-01", note: "\uC644\uB8CC \uCC98\uB9AC + \uC0C1\uD0DC \uC2A4\uB0C5\uC0F7 \uD68C\uC218" },
74
+ { cmd: "awl lane new my-lane", note: "\uACA9\uB9AC \uB808\uC778(worktree+\uC804\uC6A9 home) \uC0DD\uC131" },
75
+ { cmd: "awl lane ls --json", note: "\uB808\uC778 \uBAA9\uB85D" },
76
+ { cmd: "awl lane rm my-lane", note: "\uBBF8\uBA38\uC9C0 \uCEE4\uBC0B \uC788\uC73C\uBA74 --force \uC5C6\uC774 \uAC70\uBD80" }
77
+ ]
78
+ },
79
+ {
80
+ label: "\uAE30\uB85D\xB7\uADDC\uCE59\xB7\uAD50\uD6C8",
81
+ examples: [
82
+ {
83
+ cmd: "awl records --type narrative --workitem WI-01 --json",
84
+ note: "\uAE30\uB85D \uC885\uB958\xB7\uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uD544\uD130"
85
+ },
86
+ { cmd: "awl gotchas --json", note: "\uC544\uC9C1 \uADDC\uCE59 \uC548 \uB41C \uAD50\uD6C8 \uBAA9\uB85D" },
87
+ {
88
+ cmd: 'awl rules promote G-001 --applies "..." --counter "..."',
89
+ note: "\uBC18\uBCF5\uB418\uB294 \uAD50\uD6C8\uC744 \uADDC\uCE59\uC73C\uB85C \uC2B9\uACA9"
90
+ },
91
+ {
92
+ cmd: "awl loop-summary --workitems WI-01,WI-02",
93
+ note: "\uC5EC\uB7EC \uC6CC\uD06C\uC544\uC774\uD15C \uBC30\uCE58 \uC694\uC57D"
94
+ }
95
+ ]
96
+ },
97
+ {
98
+ label: "\uC124\uC815\xB7\uAD00\uB9AC",
99
+ examples: [
100
+ { cmd: 'awl config set verify.lint.cmd "biome check ."', note: "\uAC80\uC99D \uBA85\uB839\uC5B4 \uC9C1\uC811 \uC9C0\uC815" },
101
+ { cmd: "awl update --all", note: "\uB4F1\uB85D\uB41C \uBAA8\uB4E0 \uD504\uB85C\uC81D\uD2B8 \uC2A4\uD0AC \uB3D9\uAE30\uD654" },
102
+ { cmd: "awl remove --project", note: "\uB85C\uCEEC\uB9CC \uC2A4\uCE94(\uB4DC\uB77C\uC774\uB7F0 \uAE30\uBCF8, --yes \uB85C \uC2E4\uD589)" }
103
+ ]
104
+ },
105
+ {
106
+ label: "\uADF8 \uC678 \uC870\uD68C",
107
+ examples: [
108
+ { cmd: "awl brief --today", note: "\uC624\uB298 \uD558\uB8E8 \uC694\uC57D" },
109
+ { cmd: "awl metrics --compare", note: "\uC138\uB300 \uAC04 \uBE44\uAD50" },
110
+ { cmd: "awl feedback --severity high", note: "awl \uC790\uCCB4\uC5D0 \uB300\uD55C \uD53C\uB4DC\uBC31, \uC2EC\uAC01\uB3C4 \uD544\uD130" },
111
+ { cmd: "awl changelog --workitem WI-01", note: "\uADF8 \uC6CC\uD06C\uC544\uC774\uD15C\uC758 \uBCC0\uACBD \uC774\uB825" }
112
+ ]
113
+ }
50
114
  ];
51
- const cmdWidth = Math.max(...examples.map((e) => visibleWidth(e.cmd)));
52
- const lines = examples.map(
53
- (e) => `${t.accent(padVisible(e.cmd, cmdWidth))} ${t.muted(`# ${e.note}`)}`
54
- );
115
+ const lines = [];
116
+ groups.forEach((group, i) => {
117
+ if (i > 0) {
118
+ lines.push("");
119
+ }
120
+ lines.push(t.muted(group.label));
121
+ const cmdWidth = Math.max(...group.examples.map((e) => visibleWidth(e.cmd)));
122
+ for (const e of group.examples) {
123
+ lines.push(` ${t.accent(padVisible(e.cmd, cmdWidth))} ${t.muted(`# ${e.note}`)}`);
124
+ }
125
+ });
55
126
  return sectionBox("\uC608\uC2DC", lines, c);
56
127
  }
57
128
  var DENSE_AWL = `
@@ -151,14 +222,14 @@ function buildProgram() {
151
222
  program.name("awl").version(versionString(), "-v, --version", "\uBC84\uC804\uC744 \uCD9C\uB825\uD569\uB2C8\uB2E4").helpOption("-h, --help", "\uB3C4\uC6C0\uB9D0\uC744 \uCD9C\uB825\uD569\uB2C8\uB2E4").addHelpText("beforeAll", (ctx) => ctx.command === program ? `${renderBanner()}
152
223
  ` : "").option("--examples", "\uC790\uC8FC \uC4F0\uB294 \uBA85\uB839 \uC608\uC2DC\uB97C \uBCF4\uC5EC\uC90D\uB2C8\uB2E4").showHelpAfterError();
153
224
  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) => {
154
- const { runInit } = await import("./init-MRJEU7IR.js");
225
+ const { runInit } = await import("./init-U7F6ECXI.js");
155
226
  await runInit({ yes: opts.yes === true });
156
227
  });
157
228
  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(
158
229
  "--archive",
159
230
  "(--pipeline\uACFC \uD568\uAED8) \uC720\uC608 \uAE30\uAC04(3\uC77C) \uC9C0\uB09C \uC644\uB8CC workitem\uC744 .tasks/archive/ \uB85C \uBCF4\uAD00\uD569\uB2C8\uB2E4"
160
231
  ).action(async (opts) => {
161
- const { runStatus } = await import("./status-FP73XOZS.js");
232
+ const { runStatus } = await import("./status-HU3RLDSB.js");
162
233
  await runStatus({
163
234
  json: opts.json === true,
164
235
  pipeline: opts.pipeline === true,
@@ -166,15 +237,15 @@ function buildProgram() {
166
237
  });
167
238
  });
168
239
  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) => {
169
- const { runBrief } = await import("./brief-ZZSQ6RQS.js");
240
+ const { runBrief } = await import("./brief-2UCDBAB6.js");
170
241
  await runBrief({ today: opts.today === true, date: opts.date, json: opts.json === true });
171
242
  });
172
243
  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) => {
173
- const { runDoctor } = await import("./doctor-AW65MZKN.js");
244
+ const { runDoctor } = await import("./doctor-MEYI2ROW.js");
174
245
  await runDoctor({ json: opts.json === true });
175
246
  });
176
247
  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) => {
177
- const { runVersionCheck } = await import("./version-check-H2T3WW3I.js");
248
+ const { runVersionCheck } = await import("./version-check-DFNWGNLY.js");
178
249
  await runVersionCheck({ json: opts.json === true });
179
250
  });
180
251
  program.command("update").description(
@@ -183,12 +254,12 @@ function buildProgram() {
183
254
  "-l, --local",
184
255
  "\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"
185
256
  ).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) => {
186
- const { runUpdate } = await import("./update-7RQQJ2TH.js");
257
+ const { runUpdate } = await import("./update-7BLNEJ52.js");
187
258
  runUpdate(opts);
188
259
  });
189
260
  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(
190
261
  async (opts) => {
191
- const { runRemove } = await import("./remove-ELP4MFVE.js");
262
+ const { runRemove } = await import("./remove-GWSIRW36.js");
192
263
  await runRemove({
193
264
  yes: opts.yes === true,
194
265
  project: opts.project === true,
@@ -200,22 +271,22 @@ function buildProgram() {
200
271
  );
201
272
  const config = program.command("config").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC124\uC815\uC744 \uBD05\uB2C8\uB2E4 (TTY \uBA74 \uC218\uC815\uB3C4)");
202
273
  config.action(async () => {
203
- const { runConfig } = await import("./config-DAD4LIWR.js");
274
+ const { runConfig } = await import("./config-LHWI2J4M.js");
204
275
  await runConfig();
205
276
  });
206
277
  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(
207
278
  async (key, value, opts) => {
208
- const { runConfigSet } = await import("./config-DAD4LIWR.js");
279
+ const { runConfigSet } = await import("./config-LHWI2J4M.js");
209
280
  await runConfigSet(key, value, { force: opts.force === true });
210
281
  }
211
282
  );
212
283
  const work = program.command("work").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uAD00\uB9AC\uD569\uB2C8\uB2E4");
213
284
  work.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
214
- const { runWorkList } = await import("./work-HWJSUWBR.js");
285
+ const { runWorkList } = await import("./work-LDPAHEPH.js");
215
286
  runWorkList({ json: opts.json === true });
216
287
  });
217
288
  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) => {
218
- const { runWorkList } = await import("./work-HWJSUWBR.js");
289
+ const { runWorkList } = await import("./work-LDPAHEPH.js");
219
290
  runWorkList({ json: opts.json === true });
220
291
  });
221
292
  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(
@@ -223,7 +294,7 @@ function buildProgram() {
223
294
  "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)"
224
295
  ).option("--experiment <json>", '\uC2E4\uD5D8 \uCF00\uC774\uC2A4 \uBA54\uD0C0 JSON (\uC608: {"model":"lite","mode":"loop"})').action(
225
296
  async (id, description, opts) => {
226
- const { runWorkNew } = await import("./work-HWJSUWBR.js");
297
+ const { runWorkNew } = await import("./work-LDPAHEPH.js");
227
298
  const parsedExp = parseExperimentOption(opts.experiment);
228
299
  if (!parsedExp.ok) {
229
300
  process.stderr.write(`
@@ -235,52 +306,52 @@ function buildProgram() {
235
306
  }
236
307
  );
237
308
  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) => {
238
- const { runWorkSwitch } = await import("./work-HWJSUWBR.js");
309
+ const { runWorkSwitch } = await import("./work-LDPAHEPH.js");
239
310
  await runWorkSwitch(id);
240
311
  });
241
312
  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) => {
242
- const { runWorkAbandon } = await import("./work-HWJSUWBR.js");
313
+ const { runWorkAbandon } = await import("./work-LDPAHEPH.js");
243
314
  runWorkAbandon(id);
244
315
  });
245
316
  work.command("done <id>").description(
246
317
  "\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)"
247
318
  ).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) => {
248
- const { runWorkDone } = await import("./work-HWJSUWBR.js");
319
+ const { runWorkDone } = await import("./work-LDPAHEPH.js");
249
320
  await runWorkDone(id, { force: opts.force === true });
250
321
  });
251
322
  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)");
252
323
  lane.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
253
- const { runLaneList } = await import("./lane-ZQVD7EDE.js");
324
+ const { runLaneList } = await import("./lane-2OZBXFKL.js");
254
325
  await runLaneList({ json: opts.json === true });
255
326
  });
256
327
  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) => {
257
- const { runLaneNew } = await import("./lane-ZQVD7EDE.js");
328
+ const { runLaneNew } = await import("./lane-2OZBXFKL.js");
258
329
  await runLaneNew(name, description);
259
330
  });
260
331
  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) => {
261
- const { runLaneList } = await import("./lane-ZQVD7EDE.js");
332
+ const { runLaneList } = await import("./lane-2OZBXFKL.js");
262
333
  await runLaneList({ json: opts.json === true });
263
334
  });
264
335
  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) => {
265
- const { runLaneRemove } = await import("./lane-ZQVD7EDE.js");
336
+ const { runLaneRemove } = await import("./lane-2OZBXFKL.js");
266
337
  await runLaneRemove(name, { force: opts.force === true });
267
338
  });
268
339
  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) => {
269
- const { runRecords } = await import("./record-GAWMF7KL.js");
340
+ const { runRecords } = await import("./record-CEEEHNNF.js");
270
341
  runRecords({ type: opts.type, workitem: opts.workitem, json: opts.json === true });
271
342
  });
272
343
  const rules = program.command("rules").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC801\uC6A9\uB418\uB294 \uADDC\uCE59\uC744 \uBD05\uB2C8\uB2E4").enablePositionalOptions();
273
344
  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) => {
274
- const { runRules } = await import("./rules-BEQT7YVN.js");
345
+ const { runRules } = await import("./rules-A7YTU3HV.js");
275
346
  runRules({ scope: opts.scope, json: opts.json === true });
276
347
  });
277
348
  rules.command("edit").description("$EDITOR \uB85C \uADDC\uCE59 \uD30C\uC77C\uC744 \uC5FD\uB2C8\uB2E4").action(async () => {
278
- const { runRules } = await import("./rules-BEQT7YVN.js");
349
+ const { runRules } = await import("./rules-A7YTU3HV.js");
279
350
  runRules({ edit: true });
280
351
  });
281
352
  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(
282
353
  async (gotchaId, opts) => {
283
- const { runRulesPromote } = await import("./rules-BEQT7YVN.js");
354
+ const { runRulesPromote } = await import("./rules-A7YTU3HV.js");
284
355
  runRulesPromote(gotchaId, {
285
356
  applies: opts.applies,
286
357
  counter: opts.counter,
@@ -289,16 +360,16 @@ function buildProgram() {
289
360
  }
290
361
  );
291
362
  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) => {
292
- const { runGotchas } = await import("./gotchas-IGEQILOO.js");
363
+ const { runGotchas } = await import("./gotchas-R236D2U2.js");
293
364
  runGotchas({ json: opts.json === true });
294
365
  });
295
366
  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) => {
296
- const { runMetrics } = await import("./metrics-64WBBQQX.js");
367
+ const { runMetrics } = await import("./metrics-WI2GOPGG.js");
297
368
  runMetrics({ json: opts.json === true, compare: opts.compare === true });
298
369
  });
299
370
  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(
300
371
  async (opts) => {
301
- const { runLoopSummary } = await import("./loop-summary-MPEKQ2EC.js");
372
+ const { runLoopSummary } = await import("./loop-summary-HBADJTOZ.js");
302
373
  runLoopSummary({
303
374
  workitem: opts.workitem,
304
375
  workitems: parseWorkitemsOption(opts.workitems),
@@ -308,7 +379,7 @@ function buildProgram() {
308
379
  }
309
380
  );
310
381
  program.command("feedback").description("awl \uB3C4\uAD6C \uC790\uCCB4 \uD53C\uB4DC\uBC31\uC744 area \uBCC4\uB85C \uBB36\uC5B4 \uBD05\uB2C8\uB2E4 (\uD574\uBC95\uC740 \uC81C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4)").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) => {
311
- const { runFeedback } = await import("./feedback-3C33YHKF.js");
382
+ const { runFeedback } = await import("./feedback-633KAKEZ.js");
312
383
  runFeedback({
313
384
  json: opts.json === true,
314
385
  area: opts.area,
@@ -317,12 +388,12 @@ function buildProgram() {
317
388
  });
318
389
  });
319
390
  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) => {
320
- const { runChangelogDraft } = await import("./changelog-JWLVVHZL.js");
391
+ const { runChangelogDraft } = await import("./changelog-AICBEFUV.js");
321
392
  runChangelogDraft({ workitem: opts.workitem, json: opts.json === true });
322
393
  });
323
394
  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(
324
395
  async (criterion, opts) => {
325
- const { runCommit } = await import("./commit-3UZE7XJM.js");
396
+ const { runCommit } = await import("./commit-PQE62KLZ.js");
326
397
  await runCommit(criterion, {
327
398
  start: opts.start,
328
399
  message: opts.message,
@@ -332,12 +403,12 @@ function buildProgram() {
332
403
  }
333
404
  );
334
405
  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) => {
335
- const { runReview } = await import("./review-A5Q7NSOD.js");
406
+ const { runReview } = await import("./review-F6Y2TD5B.js");
336
407
  await runReview(range, { json: opts.json === true, base: opts.base });
337
408
  });
338
409
  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(
339
410
  async (type, opts) => {
340
- const { runRecord } = await import("./record-GAWMF7KL.js");
411
+ const { runRecord } = await import("./record-CEEEHNNF.js");
341
412
  await runRecord(type, {
342
413
  json: opts.json,
343
414
  file: opts.file,
@@ -351,7 +422,7 @@ function buildProgram() {
351
422
  "\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)"
352
423
  ).action(
353
424
  async (opts) => {
354
- const { runVerify } = await import("./verify-UUJ6KD37.js");
425
+ const { runVerify } = await import("./verify-WJNFIF4Y.js");
355
426
  await runVerify({
356
427
  json: opts.json === true,
357
428
  bail: opts.bail === true,
@@ -362,17 +433,17 @@ function buildProgram() {
362
433
  }
363
434
  );
364
435
  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) => {
365
- const { runHoldRecheck } = await import("./hold-recheck-THSJKF5G.js");
436
+ const { runHoldRecheck } = await import("./hold-recheck-7D47ITAP.js");
366
437
  await runHoldRecheck({ json: opts.json === true });
367
438
  });
368
439
  const state = program.command("state", { hidden: true }).description("\uB8E8\uD504 \uC0C1\uD0DC\uB97C \uC77D\uACE0 \uC501\uB2C8\uB2E4");
369
440
  state.command("get").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
370
- const { runStateGet } = await import("./state-RDKIOU25.js");
441
+ const { runStateGet } = await import("./state-KHZNSJRS.js");
371
442
  runStateGet({ json: opts.json === true });
372
443
  });
373
444
  state.command("set").requiredOption("--json <patch>", "\uBD80\uBD84 \uAC31\uC2E0 (JSON \uBB38\uC790\uC5F4)").action(async (opts) => {
374
- const { runStateSet } = await import("./state-RDKIOU25.js");
375
- const { hasApprovedGate1 } = await import("./record-GAWMF7KL.js");
445
+ const { runStateSet } = await import("./state-KHZNSJRS.js");
446
+ const { hasApprovedGate1 } = await import("./record-CEEEHNNF.js");
376
447
  runStateSet(opts.json, {
377
448
  // phase:'loop' 로의 전이는 이 워크아이템에 "승인된" 게이트1 레코드가 있을
378
449
  // 때만 허용한다(0.6.3, 적대검증 발견). 예전엔 gate:1 레코드의 존재만 봐서
@@ -383,7 +454,7 @@ function buildProgram() {
383
454
  });
384
455
  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(
385
456
  async (opts) => {
386
- const m = await import("./evolve-K4WKRA6U.js");
457
+ const m = await import("./evolve-KSUWIZCY.js");
387
458
  if (opts.collect && opts.record) {
388
459
  process.stderr.write("\n --collect \uC640 --record \uB294 \uB3D9\uC2DC\uC5D0 \uC4F8 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
389
460
  process.exit(1);
@@ -402,7 +473,7 @@ function buildProgram() {
402
473
  }
403
474
  );
404
475
  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) => {
405
- const m = await import("./record-GAWMF7KL.js");
476
+ const m = await import("./record-CEEEHNNF.js");
406
477
  m.runDeferSummary({ json: opts.json === true, workitem: opts.workitem });
407
478
  });
408
479
  program.action((opts, command) => {
@@ -1,28 +1,28 @@
1
1
  import {
2
2
  protectedFilesMessage
3
- } from "./chunk-TTZY2GLK.js";
3
+ } from "./chunk-W2AMCPKI.js";
4
4
  import {
5
5
  hasApprovedGate1
6
- } from "./chunk-YP4VCWPV.js";
6
+ } from "./chunk-WPZK7LJU.js";
7
7
  import {
8
8
  getCriterion,
9
9
  loadState,
10
10
  setCriterion,
11
11
  writeState
12
- } from "./chunk-77EZYCLF.js";
12
+ } from "./chunk-VKLSQMAW.js";
13
13
  import {
14
14
  loadConfig,
15
15
  resolveProjectRoot,
16
16
  run
17
- } from "./chunk-JPFGMDQ4.js";
18
- import "./chunk-2DAP3QBU.js";
17
+ } from "./chunk-SZQNXMYU.js";
18
+ import "./chunk-N5QEEXCO.js";
19
19
  import {
20
20
  caps,
21
21
  feedback,
22
22
  makeColors,
23
23
  makeTokens,
24
24
  signal
25
- } from "./chunk-45X7T64Y.js";
25
+ } from "./chunk-SUF5ISJM.js";
26
26
 
27
27
  // src/commands/commit.ts
28
28
  import fs from "fs";
@@ -13,9 +13,9 @@ import {
13
13
  runConfig,
14
14
  runConfigSet,
15
15
  validateConfig
16
- } from "./chunk-JPFGMDQ4.js";
17
- import "./chunk-2DAP3QBU.js";
18
- import "./chunk-45X7T64Y.js";
16
+ } from "./chunk-SZQNXMYU.js";
17
+ import "./chunk-N5QEEXCO.js";
18
+ import "./chunk-SUF5ISJM.js";
19
19
  export {
20
20
  KNOWN_LANGUAGES,
21
21
  KNOWN_NAMING_CONVENTIONS,
@@ -8,14 +8,14 @@ import {
8
8
  gitHasCommits,
9
9
  renderText,
10
10
  runDoctor
11
- } from "./chunk-22SUY5RE.js";
12
- import "./chunk-Q7V3WVKT.js";
13
- import "./chunk-SV4D72NX.js";
14
- import "./chunk-YP4VCWPV.js";
15
- import "./chunk-77EZYCLF.js";
16
- import "./chunk-JPFGMDQ4.js";
17
- import "./chunk-2DAP3QBU.js";
18
- import "./chunk-45X7T64Y.js";
11
+ } from "./chunk-TUV6NSTM.js";
12
+ import "./chunk-4Q4FDZXN.js";
13
+ import "./chunk-3R52QFNQ.js";
14
+ import "./chunk-WPZK7LJU.js";
15
+ import "./chunk-VKLSQMAW.js";
16
+ import "./chunk-SZQNXMYU.js";
17
+ import "./chunk-N5QEEXCO.js";
18
+ import "./chunk-SUF5ISJM.js";
19
19
  export {
20
20
  collectChecks,
21
21
  computeFileSizeOutliers,
@@ -13,13 +13,13 @@ import {
13
13
  runEvolveCollect,
14
14
  runEvolveRecord,
15
15
  writeGeneration
16
- } from "./chunk-DIRYW77S.js";
17
- import "./chunk-5APWNDRG.js";
18
- import "./chunk-YP4VCWPV.js";
19
- import "./chunk-77EZYCLF.js";
20
- import "./chunk-JPFGMDQ4.js";
21
- import "./chunk-2DAP3QBU.js";
22
- import "./chunk-45X7T64Y.js";
16
+ } from "./chunk-QFHXKTV6.js";
17
+ import "./chunk-VR74OBHK.js";
18
+ import "./chunk-WPZK7LJU.js";
19
+ import "./chunk-VKLSQMAW.js";
20
+ import "./chunk-SZQNXMYU.js";
21
+ import "./chunk-N5QEEXCO.js";
22
+ import "./chunk-SUF5ISJM.js";
23
23
  export {
24
24
  GOTCHA_RELATION_TYPES,
25
25
  acquireLock,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  readRecords
3
- } from "./chunk-YP4VCWPV.js";
4
- import "./chunk-77EZYCLF.js";
5
- import "./chunk-JPFGMDQ4.js";
6
- import "./chunk-2DAP3QBU.js";
3
+ } from "./chunk-WPZK7LJU.js";
4
+ import "./chunk-VKLSQMAW.js";
5
+ import "./chunk-SZQNXMYU.js";
6
+ import "./chunk-N5QEEXCO.js";
7
7
  import {
8
8
  caps,
9
9
  makeColors,
10
10
  sectionBox,
11
11
  signal
12
- } from "./chunk-45X7T64Y.js";
12
+ } from "./chunk-SUF5ISJM.js";
13
13
 
14
14
  // src/commands/feedback.ts
15
15
  var SEVERITY_RANK = { high: 0, medium: 1, low: 2 };
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  loadGotchaList
3
- } from "./chunk-DIRYW77S.js";
4
- import "./chunk-5APWNDRG.js";
5
- import "./chunk-YP4VCWPV.js";
6
- import "./chunk-77EZYCLF.js";
7
- import "./chunk-JPFGMDQ4.js";
8
- import "./chunk-2DAP3QBU.js";
3
+ } from "./chunk-QFHXKTV6.js";
4
+ import "./chunk-VR74OBHK.js";
5
+ import "./chunk-WPZK7LJU.js";
6
+ import "./chunk-VKLSQMAW.js";
7
+ import "./chunk-SZQNXMYU.js";
8
+ import "./chunk-N5QEEXCO.js";
9
9
  import {
10
10
  caps,
11
11
  makeColors,
12
12
  sectionBox
13
- } from "./chunk-45X7T64Y.js";
13
+ } from "./chunk-SUF5ISJM.js";
14
14
 
15
15
  // src/commands/gotchas.ts
16
16
  function loadGotchas() {
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  pipelineLanes
3
- } from "./chunk-RNZCRXE3.js";
4
- import "./chunk-3UPF7LZT.js";
5
- import "./chunk-7NOHUUXV.js";
3
+ } from "./chunk-EPVWUYXP.js";
4
+ import "./chunk-SDNJULFU.js";
5
+ import "./chunk-O7V4DHPZ.js";
6
6
  import "./chunk-D5OINC3G.js";
7
- import "./chunk-RRQYSRRT.js";
8
- import "./chunk-TTZY2GLK.js";
9
- import "./chunk-22SUY5RE.js";
10
- import "./chunk-Q7V3WVKT.js";
11
- import "./chunk-SV4D72NX.js";
12
- import "./chunk-Z3QCPOOA.js";
13
- import "./chunk-DIRYW77S.js";
14
- import "./chunk-5APWNDRG.js";
15
- import "./chunk-YP4VCWPV.js";
16
- import "./chunk-77EZYCLF.js";
7
+ import "./chunk-RG6FT7I2.js";
8
+ import "./chunk-W2AMCPKI.js";
9
+ import "./chunk-TUV6NSTM.js";
10
+ import "./chunk-4Q4FDZXN.js";
11
+ import "./chunk-3R52QFNQ.js";
12
+ import "./chunk-WL674RWY.js";
13
+ import "./chunk-QFHXKTV6.js";
14
+ import "./chunk-VR74OBHK.js";
15
+ import "./chunk-WPZK7LJU.js";
16
+ import "./chunk-VKLSQMAW.js";
17
17
  import {
18
18
  resolveProjectRoot
19
- } from "./chunk-JPFGMDQ4.js";
20
- import "./chunk-2DAP3QBU.js";
19
+ } from "./chunk-SZQNXMYU.js";
20
+ import "./chunk-N5QEEXCO.js";
21
21
  import {
22
22
  caps,
23
23
  makeColors,
24
24
  sectionBox,
25
25
  signal
26
- } from "./chunk-45X7T64Y.js";
26
+ } from "./chunk-SUF5ISJM.js";
27
27
 
28
28
  // src/commands/hold-recheck.ts
29
29
  import fs from "fs";