agent-work-loop 0.6.22 → 0.6.25

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 +89 -20
  2. package/dist/{brief-Z3JKXEUP.js → brief-LZ6JC5V5.js} +5 -5
  3. package/dist/{changelog-R7BNBF2C.js → changelog-ZCPSFDX3.js} +5 -5
  4. package/dist/{chunk-X5LMP5J7.js → chunk-4MWV4RBI.js} +4 -4
  5. package/dist/{chunk-TKPHC32G.js → chunk-57EWVAZO.js} +4 -4
  6. package/dist/{chunk-UOPWVM2H.js → chunk-5TFILHLH.js} +2 -2
  7. package/dist/{chunk-I77CXOEX.js → chunk-6MG6CQBD.js} +3 -3
  8. package/dist/{chunk-CCMG377E.js → chunk-7KIVLJG3.js} +6 -6
  9. package/dist/{chunk-BUWGQVHT.js → chunk-ELQ4VANN.js} +1 -1
  10. package/dist/{chunk-LMWAVN7B.js → chunk-F7Z3S5LD.js} +8 -8
  11. package/dist/{chunk-O7GRZZPJ.js → chunk-FBRW7KKY.js} +5 -5
  12. package/dist/{chunk-VU6IPRRM.js → chunk-JQN653ZS.js} +2 -2
  13. package/dist/{chunk-ZLTOL3D3.js → chunk-MJT6UANJ.js} +2 -2
  14. package/dist/{chunk-7SYRDDTX.js → chunk-OTN2QONN.js} +11 -2
  15. package/dist/{chunk-C7TN3LM3.js → chunk-QLUBNGHR.js} +13 -8
  16. package/dist/{chunk-FBEUJR2P.js → chunk-R2RZC5NQ.js} +5 -5
  17. package/dist/{chunk-4OCSYHYB.js → chunk-SBX6LOQE.js} +2 -2
  18. package/dist/{chunk-F5LHXBH7.js → chunk-WRNCUSNU.js} +2 -2
  19. package/dist/{chunk-6E7XEQOH.js → chunk-ZYXKMNHC.js} +1 -1
  20. package/dist/cli.js +89 -52
  21. package/dist/{commit-APXIVOSD.js → commit-4XEKMCJF.js} +6 -6
  22. package/dist/{config-TFMW7O4T.js → config-BZDCXBQ5.js} +3 -3
  23. package/dist/{doctor-BU6HWXE4.js → doctor-ST67JMQ6.js} +8 -8
  24. package/dist/{evolve-NNQX2A43.js → evolve-ZBSIUZXP.js} +7 -7
  25. package/dist/{feedback-KAXNFMUY.js → feedback-HVNBFJBW.js} +5 -5
  26. package/dist/{gotchas-CW4KZDEF.js → gotchas-642PZ5AQ.js} +7 -7
  27. package/dist/{hold-recheck-SLI7NDLU.js → hold-recheck-N3UCEIXL.js} +16 -16
  28. package/dist/{init-UDM5AXKI.js → init-2FPJSD64.js} +2 -2
  29. package/dist/lane-7AB53N4M.js +41 -0
  30. package/dist/{loop-summary-XAI6KOGB.js → loop-summary-22VD3BDL.js} +6 -6
  31. package/dist/{metrics-WLRZZRTK.js → metrics-4OT2R3GT.js} +4 -4
  32. package/dist/{record-UKDIUJ5T.js → record-CJONXDR2.js} +5 -5
  33. package/dist/{review-NTZ3HY3N.js → review-L52UGCIJ.js} +13 -13
  34. package/dist/{rules-4VDP5LZW.js → rules-U7UCVU5O.js} +8 -8
  35. package/dist/{state-XM7NZ2HA.js → state-3G4XAB6P.js} +4 -4
  36. package/dist/status-7V4W52VA.js +40 -0
  37. package/dist/{uninstall-MOHJDMQH.js → uninstall-M7Z6SO7L.js} +15 -15
  38. package/dist/{update-AYTBYAHI.js → update-LQBVQIXW.js} +2 -2
  39. package/dist/{verify-6YF5FXWM.js → verify-PYZXB67X.js} +10 -10
  40. package/dist/version-check-QQDDSBU7.js +14 -0
  41. package/dist/{work-6MMIQMUC.js → work-VTHTF4AQ.js} +14 -14
  42. package/engine/skills/claude/awl-pipeline/SKILL.md +6 -0
  43. package/engine/version.json +1 -1
  44. package/package.json +2 -2
  45. package/dist/lane-MIVLTDEU.js +0 -41
  46. package/dist/status-I3MQOCQM.js +0 -40
  47. package/dist/version-check-G27JYMTZ.js +0 -14
package/dist/cli.js CHANGED
@@ -3,30 +3,59 @@ import {
3
3
  computeUpdateAvailable,
4
4
  readCachedLatestVersion,
5
5
  version
6
- } from "./chunk-VU6IPRRM.js";
6
+ } from "./chunk-JQN653ZS.js";
7
7
  import {
8
8
  caps,
9
+ card,
9
10
  gradient,
10
11
  installedEngineVersion,
11
12
  makeColors,
12
13
  makeSymbols,
14
+ makeTokens,
13
15
  signal,
14
16
  visibleWidth
15
- } from "./chunk-7SYRDDTX.js";
17
+ } from "./chunk-OTN2QONN.js";
16
18
 
17
19
  // src/program.ts
18
20
  import { Command } from "commander";
19
- var BANNER = `Agent Work Loop
21
+ var BANNER = `
22
+ [ AGENT WORK LOOP ]
20
23
 
21
- \uAC19\uC740 \uC2E4\uD328\uB97C \uB450 \uBC88 \uD558\uC9C0 \uC54A\uAC8C \uB9CC\uB4DC\uB294 \uB3C4\uAD6C\uC785\uB2C8\uB2E4.
22
- awl \uC790\uCCB4\uB294 \uD310\uB2E8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uD30C\uC77C\uACFC \uC0C1\uD0DC\uB9CC \uAD00\uB9AC\uD569\uB2C8\uB2E4.
23
- \uD310\uB2E8\uC740 Claude Code \uB098 Codex \uAC00 \uD569\uB2C8\uB2E4.
24
-
25
- \uC2DC\uC791\uD558\uAE30:
26
- 1. awl init \uC774 \uD504\uB85C\uC81D\uD2B8\uB97C \uC124\uC815\uD569\uB2C8\uB2E4
27
- 2. awl status \uC9C0\uAE08 \uC5B4\uB514\uAE4C\uC9C0 \uC654\uB294\uC9C0 \uBD05\uB2C8\uB2E4
28
- 3. awl doctor \uC124\uCE58\uC640 \uD658\uACBD\uC744 \uC810\uAC80\uD569\uB2C8\uB2E4`;
29
- var DENSE_AWL = `\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557
24
+ \uD55C \uBC88\uB9CC \uC2E4\uD328\uD558\uB294 \uB3C4\uAD6C \uC785\uB2C8\uB2E4. (\uB450\uBC88 \uC2E4\uD328 \uC5C6\uC74C)
25
+ \uD310\uB2E8\uC740 Claude Code\uB098 Codex\uAC00 \uD558\uACE0,
26
+ awl\uC740 \uD30C\uC77C\uACFC \uC0C1\uD0DC\uB9CC \uAD00\uB9AC\uD569\uB2C8\uB2E4.`;
27
+ var GETTING_STARTED = [
28
+ { cmd: "awl init", desc: "\uC774 \uD504\uB85C\uC81D\uD2B8\uB97C \uC124\uC815\uD569\uB2C8\uB2E4" },
29
+ { cmd: "awl status", desc: "\uC9C0\uAE08 \uC5B4\uB514\uAE4C\uC9C0 \uC654\uB294\uC9C0 \uBD05\uB2C8\uB2E4" },
30
+ { cmd: "awl doctor", desc: "\uC124\uCE58\uC640 \uD658\uACBD\uC744 \uC810\uAC80\uD569\uB2C8\uB2E4" }
31
+ ];
32
+ function padVisible(s, width) {
33
+ return s + " ".repeat(Math.max(0, width - visibleWidth(s)));
34
+ }
35
+ function renderGettingStartedCard(c) {
36
+ const t = makeTokens(c);
37
+ const cmdWidth = Math.max(...GETTING_STARTED.map((g) => visibleWidth(g.cmd)));
38
+ const lines = GETTING_STARTED.map(
39
+ (g, i) => `${i + 1}. ${t.accent(padVisible(g.cmd, cmdWidth))} ${g.desc}`
40
+ );
41
+ return card("\uC2DC\uC791\uD558\uAE30", lines, c);
42
+ }
43
+ function renderExamplesCard(c) {
44
+ 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" }
50
+ ];
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
+ );
55
+ return card("\uC608\uC2DC", lines, c);
56
+ }
57
+ var DENSE_AWL = `
58
+ \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557
30
59
  \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551
31
60
  \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2551
32
61
  \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2551
@@ -42,11 +71,14 @@ function renderBanner(c = caps()) {
42
71
  const copyLines = BANNER.split("\n");
43
72
  const markWidth = Math.max(...markLines.map(visibleWidth));
44
73
  const rowCount = Math.max(markLines.length, copyLines.length);
45
- return Array.from({ length: rowCount }, (_, i) => {
74
+ const header = Array.from({ length: rowCount }, (_, i) => {
46
75
  const mark = markLines[i] ?? "";
47
76
  const copy = copyLines[i] ?? "";
48
77
  return `${mark}${" ".repeat(Math.max(0, markWidth - visibleWidth(mark)) + 4)}${copy}`.trimEnd();
49
78
  }).join("\n");
79
+ return `${header}
80
+
81
+ ${renderGettingStartedCard(c)}`;
50
82
  }
51
83
  function versionString(c = caps()) {
52
84
  const color = makeColors(c.color);
@@ -114,16 +146,21 @@ function parseWorkitemsOption(input) {
114
146
  function buildProgram() {
115
147
  const program = new Command();
116
148
  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()}
117
- ` : "").showHelpAfterError();
149
+ ` : "").addHelpText(
150
+ "afterAll",
151
+ (ctx) => ctx.command === program ? `
152
+ ${renderExamplesCard(caps())}
153
+ ` : ""
154
+ ).showHelpAfterError();
118
155
  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) => {
119
- const { runInit } = await import("./init-UDM5AXKI.js");
156
+ const { runInit } = await import("./init-2FPJSD64.js");
120
157
  await runInit({ yes: opts.yes === true });
121
158
  });
122
159
  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(
123
160
  "--archive",
124
161
  "(--pipeline\uACFC \uD568\uAED8) \uC720\uC608 \uAE30\uAC04(3\uC77C) \uC9C0\uB09C \uC644\uB8CC workitem\uC744 .tasks/archive/ \uB85C \uBCF4\uAD00\uD569\uB2C8\uB2E4"
125
162
  ).action(async (opts) => {
126
- const { runStatus } = await import("./status-I3MQOCQM.js");
163
+ const { runStatus } = await import("./status-7V4W52VA.js");
127
164
  await runStatus({
128
165
  json: opts.json === true,
129
166
  pipeline: opts.pipeline === true,
@@ -131,24 +168,24 @@ function buildProgram() {
131
168
  });
132
169
  });
133
170
  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) => {
134
- const { runBrief } = await import("./brief-Z3JKXEUP.js");
171
+ const { runBrief } = await import("./brief-LZ6JC5V5.js");
135
172
  await runBrief({ today: opts.today === true, date: opts.date, json: opts.json === true });
136
173
  });
137
174
  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) => {
138
- const { runDoctor } = await import("./doctor-BU6HWXE4.js");
175
+ const { runDoctor } = await import("./doctor-ST67JMQ6.js");
139
176
  await runDoctor({ json: opts.json === true });
140
177
  });
141
178
  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) => {
142
- const { runVersionCheck } = await import("./version-check-G27JYMTZ.js");
179
+ const { runVersionCheck } = await import("./version-check-QQDDSBU7.js");
143
180
  await runVersionCheck({ json: opts.json === true });
144
181
  });
145
182
  program.command("update").description("\uC124\uCE58\uB41C \uC5D4\uC9C4(~/.awl/engine)\uC744 \uAC31\uC2E0\uD569\uB2C8\uB2E4").action(async () => {
146
- const { runUpdate } = await import("./update-AYTBYAHI.js");
183
+ const { runUpdate } = await import("./update-LQBVQIXW.js");
147
184
  runUpdate();
148
185
  });
149
186
  program.command("uninstall").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(
150
187
  async (opts) => {
151
- const { runUninstall } = await import("./uninstall-MOHJDMQH.js");
188
+ const { runUninstall } = await import("./uninstall-M7Z6SO7L.js");
152
189
  await runUninstall({
153
190
  yes: opts.yes === true,
154
191
  project: opts.project === true,
@@ -160,22 +197,22 @@ function buildProgram() {
160
197
  );
161
198
  const config = program.command("config").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC124\uC815\uC744 \uBD05\uB2C8\uB2E4 (TTY \uBA74 \uC218\uC815\uB3C4)");
162
199
  config.action(async () => {
163
- const { runConfig } = await import("./config-TFMW7O4T.js");
200
+ const { runConfig } = await import("./config-BZDCXBQ5.js");
164
201
  await runConfig();
165
202
  });
166
203
  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(
167
204
  async (key, value, opts) => {
168
- const { runConfigSet } = await import("./config-TFMW7O4T.js");
205
+ const { runConfigSet } = await import("./config-BZDCXBQ5.js");
169
206
  await runConfigSet(key, value, { force: opts.force === true });
170
207
  }
171
208
  );
172
209
  const work = program.command("work").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uAD00\uB9AC\uD569\uB2C8\uB2E4");
173
210
  work.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
174
- const { runWorkList } = await import("./work-6MMIQMUC.js");
211
+ const { runWorkList } = await import("./work-VTHTF4AQ.js");
175
212
  runWorkList({ json: opts.json === true });
176
213
  });
177
214
  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) => {
178
- const { runWorkList } = await import("./work-6MMIQMUC.js");
215
+ const { runWorkList } = await import("./work-VTHTF4AQ.js");
179
216
  runWorkList({ json: opts.json === true });
180
217
  });
181
218
  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(
@@ -183,7 +220,7 @@ function buildProgram() {
183
220
  "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)"
184
221
  ).option("--experiment <json>", '\uC2E4\uD5D8 \uCF00\uC774\uC2A4 \uBA54\uD0C0 JSON (\uC608: {"model":"lite","mode":"loop"})').action(
185
222
  async (id, description, opts) => {
186
- const { runWorkNew } = await import("./work-6MMIQMUC.js");
223
+ const { runWorkNew } = await import("./work-VTHTF4AQ.js");
187
224
  const parsedExp = parseExperimentOption(opts.experiment);
188
225
  if (!parsedExp.ok) {
189
226
  process.stderr.write(`
@@ -195,52 +232,52 @@ function buildProgram() {
195
232
  }
196
233
  );
197
234
  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) => {
198
- const { runWorkSwitch } = await import("./work-6MMIQMUC.js");
235
+ const { runWorkSwitch } = await import("./work-VTHTF4AQ.js");
199
236
  await runWorkSwitch(id);
200
237
  });
201
238
  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) => {
202
- const { runWorkAbandon } = await import("./work-6MMIQMUC.js");
239
+ const { runWorkAbandon } = await import("./work-VTHTF4AQ.js");
203
240
  runWorkAbandon(id);
204
241
  });
205
242
  work.command("done <id>").description(
206
243
  "\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)"
207
244
  ).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) => {
208
- const { runWorkDone } = await import("./work-6MMIQMUC.js");
245
+ const { runWorkDone } = await import("./work-VTHTF4AQ.js");
209
246
  await runWorkDone(id, { force: opts.force === true });
210
247
  });
211
248
  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)");
212
249
  lane.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
213
- const { runLaneList } = await import("./lane-MIVLTDEU.js");
250
+ const { runLaneList } = await import("./lane-7AB53N4M.js");
214
251
  await runLaneList({ json: opts.json === true });
215
252
  });
216
253
  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) => {
217
- const { runLaneNew } = await import("./lane-MIVLTDEU.js");
254
+ const { runLaneNew } = await import("./lane-7AB53N4M.js");
218
255
  await runLaneNew(name, description);
219
256
  });
220
257
  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) => {
221
- const { runLaneList } = await import("./lane-MIVLTDEU.js");
258
+ const { runLaneList } = await import("./lane-7AB53N4M.js");
222
259
  await runLaneList({ json: opts.json === true });
223
260
  });
224
261
  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) => {
225
- const { runLaneRemove } = await import("./lane-MIVLTDEU.js");
262
+ const { runLaneRemove } = await import("./lane-7AB53N4M.js");
226
263
  await runLaneRemove(name, { force: opts.force === true });
227
264
  });
228
265
  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) => {
229
- const { runRecords } = await import("./record-UKDIUJ5T.js");
266
+ const { runRecords } = await import("./record-CJONXDR2.js");
230
267
  runRecords({ type: opts.type, workitem: opts.workitem, json: opts.json === true });
231
268
  });
232
269
  const rules = program.command("rules").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC801\uC6A9\uB418\uB294 \uADDC\uCE59\uC744 \uBD05\uB2C8\uB2E4").enablePositionalOptions();
233
270
  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) => {
234
- const { runRules } = await import("./rules-4VDP5LZW.js");
271
+ const { runRules } = await import("./rules-U7UCVU5O.js");
235
272
  runRules({ scope: opts.scope, json: opts.json === true });
236
273
  });
237
274
  rules.command("edit").description("$EDITOR \uB85C \uADDC\uCE59 \uD30C\uC77C\uC744 \uC5FD\uB2C8\uB2E4").action(async () => {
238
- const { runRules } = await import("./rules-4VDP5LZW.js");
275
+ const { runRules } = await import("./rules-U7UCVU5O.js");
239
276
  runRules({ edit: true });
240
277
  });
241
278
  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(
242
279
  async (gotchaId, opts) => {
243
- const { runRulesPromote } = await import("./rules-4VDP5LZW.js");
280
+ const { runRulesPromote } = await import("./rules-U7UCVU5O.js");
244
281
  runRulesPromote(gotchaId, {
245
282
  applies: opts.applies,
246
283
  counter: opts.counter,
@@ -249,16 +286,16 @@ function buildProgram() {
249
286
  }
250
287
  );
251
288
  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) => {
252
- const { runGotchas } = await import("./gotchas-CW4KZDEF.js");
289
+ const { runGotchas } = await import("./gotchas-642PZ5AQ.js");
253
290
  runGotchas({ json: opts.json === true });
254
291
  });
255
292
  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) => {
256
- const { runMetrics } = await import("./metrics-WLRZZRTK.js");
293
+ const { runMetrics } = await import("./metrics-4OT2R3GT.js");
257
294
  runMetrics({ json: opts.json === true, compare: opts.compare === true });
258
295
  });
259
296
  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(
260
297
  async (opts) => {
261
- const { runLoopSummary } = await import("./loop-summary-XAI6KOGB.js");
298
+ const { runLoopSummary } = await import("./loop-summary-22VD3BDL.js");
262
299
  runLoopSummary({
263
300
  workitem: opts.workitem,
264
301
  workitems: parseWorkitemsOption(opts.workitems),
@@ -268,7 +305,7 @@ function buildProgram() {
268
305
  }
269
306
  );
270
307
  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) => {
271
- const { runFeedback } = await import("./feedback-KAXNFMUY.js");
308
+ const { runFeedback } = await import("./feedback-HVNBFJBW.js");
272
309
  runFeedback({
273
310
  json: opts.json === true,
274
311
  area: opts.area,
@@ -277,12 +314,12 @@ function buildProgram() {
277
314
  });
278
315
  });
279
316
  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) => {
280
- const { runChangelogDraft } = await import("./changelog-R7BNBF2C.js");
317
+ const { runChangelogDraft } = await import("./changelog-ZCPSFDX3.js");
281
318
  runChangelogDraft({ workitem: opts.workitem, json: opts.json === true });
282
319
  });
283
320
  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(
284
321
  async (criterion, opts) => {
285
- const { runCommit } = await import("./commit-APXIVOSD.js");
322
+ const { runCommit } = await import("./commit-4XEKMCJF.js");
286
323
  await runCommit(criterion, {
287
324
  start: opts.start,
288
325
  message: opts.message,
@@ -292,12 +329,12 @@ function buildProgram() {
292
329
  }
293
330
  );
294
331
  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) => {
295
- const { runReview } = await import("./review-NTZ3HY3N.js");
332
+ const { runReview } = await import("./review-L52UGCIJ.js");
296
333
  await runReview(range, { json: opts.json === true, base: opts.base });
297
334
  });
298
335
  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(
299
336
  async (type, opts) => {
300
- const { runRecord } = await import("./record-UKDIUJ5T.js");
337
+ const { runRecord } = await import("./record-CJONXDR2.js");
301
338
  await runRecord(type, {
302
339
  json: opts.json,
303
340
  file: opts.file,
@@ -311,7 +348,7 @@ function buildProgram() {
311
348
  "\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)"
312
349
  ).action(
313
350
  async (opts) => {
314
- const { runVerify } = await import("./verify-6YF5FXWM.js");
351
+ const { runVerify } = await import("./verify-PYZXB67X.js");
315
352
  await runVerify({
316
353
  json: opts.json === true,
317
354
  bail: opts.bail === true,
@@ -322,17 +359,17 @@ function buildProgram() {
322
359
  }
323
360
  );
324
361
  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) => {
325
- const { runHoldRecheck } = await import("./hold-recheck-SLI7NDLU.js");
362
+ const { runHoldRecheck } = await import("./hold-recheck-N3UCEIXL.js");
326
363
  await runHoldRecheck({ json: opts.json === true });
327
364
  });
328
365
  const state = program.command("state", { hidden: true }).description("\uB8E8\uD504 \uC0C1\uD0DC\uB97C \uC77D\uACE0 \uC501\uB2C8\uB2E4");
329
366
  state.command("get").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
330
- const { runStateGet } = await import("./state-XM7NZ2HA.js");
367
+ const { runStateGet } = await import("./state-3G4XAB6P.js");
331
368
  runStateGet({ json: opts.json === true });
332
369
  });
333
370
  state.command("set").requiredOption("--json <patch>", "\uBD80\uBD84 \uAC31\uC2E0 (JSON \uBB38\uC790\uC5F4)").action(async (opts) => {
334
- const { runStateSet } = await import("./state-XM7NZ2HA.js");
335
- const { hasApprovedGate1 } = await import("./record-UKDIUJ5T.js");
371
+ const { runStateSet } = await import("./state-3G4XAB6P.js");
372
+ const { hasApprovedGate1 } = await import("./record-CJONXDR2.js");
336
373
  runStateSet(opts.json, {
337
374
  // phase:'loop' 로의 전이는 이 워크아이템에 "승인된" 게이트1 레코드가 있을
338
375
  // 때만 허용한다(0.6.3, 적대검증 발견). 예전엔 gate:1 레코드의 존재만 봐서
@@ -343,7 +380,7 @@ function buildProgram() {
343
380
  });
344
381
  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(
345
382
  async (opts) => {
346
- const m = await import("./evolve-NNQX2A43.js");
383
+ const m = await import("./evolve-ZBSIUZXP.js");
347
384
  if (opts.collect && opts.record) {
348
385
  process.stderr.write("\n --collect \uC640 --record \uB294 \uB3D9\uC2DC\uC5D0 \uC4F8 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
349
386
  process.exit(1);
@@ -362,7 +399,7 @@ function buildProgram() {
362
399
  }
363
400
  );
364
401
  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) => {
365
- const m = await import("./record-UKDIUJ5T.js");
402
+ const m = await import("./record-CJONXDR2.js");
366
403
  m.runDeferSummary({ json: opts.json === true, workitem: opts.workitem });
367
404
  });
368
405
  program.action((_opts, command) => {
@@ -1,28 +1,28 @@
1
1
  import {
2
2
  protectedFilesMessage
3
- } from "./chunk-6E7XEQOH.js";
3
+ } from "./chunk-ZYXKMNHC.js";
4
4
  import {
5
5
  hasApprovedGate1
6
- } from "./chunk-I77CXOEX.js";
6
+ } from "./chunk-6MG6CQBD.js";
7
7
  import {
8
8
  getCriterion,
9
9
  loadState,
10
10
  setCriterion,
11
11
  writeState
12
- } from "./chunk-4OCSYHYB.js";
12
+ } from "./chunk-SBX6LOQE.js";
13
13
  import {
14
14
  loadConfig,
15
15
  resolveProjectRoot,
16
16
  run
17
- } from "./chunk-UOPWVM2H.js";
18
- import "./chunk-BUWGQVHT.js";
17
+ } from "./chunk-5TFILHLH.js";
18
+ import "./chunk-ELQ4VANN.js";
19
19
  import {
20
20
  caps,
21
21
  feedback,
22
22
  makeColors,
23
23
  makeTokens,
24
24
  signal
25
- } from "./chunk-7SYRDDTX.js";
25
+ } from "./chunk-OTN2QONN.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-UOPWVM2H.js";
17
- import "./chunk-BUWGQVHT.js";
18
- import "./chunk-7SYRDDTX.js";
16
+ } from "./chunk-5TFILHLH.js";
17
+ import "./chunk-ELQ4VANN.js";
18
+ import "./chunk-OTN2QONN.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-CCMG377E.js";
12
- import "./chunk-TKPHC32G.js";
13
- import "./chunk-VU6IPRRM.js";
14
- import "./chunk-I77CXOEX.js";
15
- import "./chunk-4OCSYHYB.js";
16
- import "./chunk-UOPWVM2H.js";
17
- import "./chunk-BUWGQVHT.js";
18
- import "./chunk-7SYRDDTX.js";
11
+ } from "./chunk-7KIVLJG3.js";
12
+ import "./chunk-57EWVAZO.js";
13
+ import "./chunk-JQN653ZS.js";
14
+ import "./chunk-6MG6CQBD.js";
15
+ import "./chunk-SBX6LOQE.js";
16
+ import "./chunk-5TFILHLH.js";
17
+ import "./chunk-ELQ4VANN.js";
18
+ import "./chunk-OTN2QONN.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-C7TN3LM3.js";
17
- import "./chunk-F5LHXBH7.js";
18
- import "./chunk-I77CXOEX.js";
19
- import "./chunk-4OCSYHYB.js";
20
- import "./chunk-UOPWVM2H.js";
21
- import "./chunk-BUWGQVHT.js";
22
- import "./chunk-7SYRDDTX.js";
16
+ } from "./chunk-QLUBNGHR.js";
17
+ import "./chunk-WRNCUSNU.js";
18
+ import "./chunk-6MG6CQBD.js";
19
+ import "./chunk-SBX6LOQE.js";
20
+ import "./chunk-5TFILHLH.js";
21
+ import "./chunk-ELQ4VANN.js";
22
+ import "./chunk-OTN2QONN.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-I77CXOEX.js";
4
- import "./chunk-4OCSYHYB.js";
5
- import "./chunk-UOPWVM2H.js";
6
- import "./chunk-BUWGQVHT.js";
3
+ } from "./chunk-6MG6CQBD.js";
4
+ import "./chunk-SBX6LOQE.js";
5
+ import "./chunk-5TFILHLH.js";
6
+ import "./chunk-ELQ4VANN.js";
7
7
  import {
8
8
  caps,
9
9
  card,
10
10
  makeColors,
11
11
  signal
12
- } from "./chunk-7SYRDDTX.js";
12
+ } from "./chunk-OTN2QONN.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-C7TN3LM3.js";
4
- import "./chunk-F5LHXBH7.js";
5
- import "./chunk-I77CXOEX.js";
6
- import "./chunk-4OCSYHYB.js";
7
- import "./chunk-UOPWVM2H.js";
8
- import "./chunk-BUWGQVHT.js";
3
+ } from "./chunk-QLUBNGHR.js";
4
+ import "./chunk-WRNCUSNU.js";
5
+ import "./chunk-6MG6CQBD.js";
6
+ import "./chunk-SBX6LOQE.js";
7
+ import "./chunk-5TFILHLH.js";
8
+ import "./chunk-ELQ4VANN.js";
9
9
  import {
10
10
  caps,
11
11
  card,
12
12
  makeColors
13
- } from "./chunk-7SYRDDTX.js";
13
+ } from "./chunk-OTN2QONN.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-FBEUJR2P.js";
4
- import "./chunk-X5LMP5J7.js";
5
- import "./chunk-LMWAVN7B.js";
3
+ } from "./chunk-R2RZC5NQ.js";
4
+ import "./chunk-4MWV4RBI.js";
5
+ import "./chunk-F7Z3S5LD.js";
6
6
  import "./chunk-D5OINC3G.js";
7
- import "./chunk-O7GRZZPJ.js";
8
- import "./chunk-6E7XEQOH.js";
9
- import "./chunk-CCMG377E.js";
10
- import "./chunk-TKPHC32G.js";
11
- import "./chunk-VU6IPRRM.js";
12
- import "./chunk-ZLTOL3D3.js";
13
- import "./chunk-C7TN3LM3.js";
14
- import "./chunk-F5LHXBH7.js";
15
- import "./chunk-I77CXOEX.js";
16
- import "./chunk-4OCSYHYB.js";
7
+ import "./chunk-FBRW7KKY.js";
8
+ import "./chunk-ZYXKMNHC.js";
9
+ import "./chunk-7KIVLJG3.js";
10
+ import "./chunk-57EWVAZO.js";
11
+ import "./chunk-JQN653ZS.js";
12
+ import "./chunk-MJT6UANJ.js";
13
+ import "./chunk-QLUBNGHR.js";
14
+ import "./chunk-WRNCUSNU.js";
15
+ import "./chunk-6MG6CQBD.js";
16
+ import "./chunk-SBX6LOQE.js";
17
17
  import {
18
18
  resolveProjectRoot
19
- } from "./chunk-UOPWVM2H.js";
20
- import "./chunk-BUWGQVHT.js";
19
+ } from "./chunk-5TFILHLH.js";
20
+ import "./chunk-ELQ4VANN.js";
21
21
  import {
22
22
  caps,
23
23
  card,
24
24
  makeColors,
25
25
  signal
26
- } from "./chunk-7SYRDDTX.js";
26
+ } from "./chunk-OTN2QONN.js";
27
27
 
28
28
  // src/commands/hold-recheck.ts
29
29
  import fs from "fs";
@@ -36,8 +36,8 @@ import {
36
36
  writeConfig,
37
37
  writeSkillsVersionStamp,
38
38
  writeState
39
- } from "./chunk-BUWGQVHT.js";
40
- import "./chunk-7SYRDDTX.js";
39
+ } from "./chunk-ELQ4VANN.js";
40
+ import "./chunk-OTN2QONN.js";
41
41
  export {
42
42
  LANG_OPTIONS,
43
43
  LANG_VALUES,
@@ -0,0 +1,41 @@
1
+ import {
2
+ WORKTREES_DIR,
3
+ branchOf,
4
+ collectLanes,
5
+ laneBranchMap,
6
+ parseWorktreeBranches,
7
+ renderLaneList,
8
+ runLaneList,
9
+ runLaneNew,
10
+ runLaneRemove,
11
+ unmergedCommitCount,
12
+ worktreeUntracked
13
+ } from "./chunk-4MWV4RBI.js";
14
+ import "./chunk-F7Z3S5LD.js";
15
+ import "./chunk-D5OINC3G.js";
16
+ import "./chunk-FBRW7KKY.js";
17
+ import "./chunk-ZYXKMNHC.js";
18
+ import "./chunk-7KIVLJG3.js";
19
+ import "./chunk-57EWVAZO.js";
20
+ import "./chunk-JQN653ZS.js";
21
+ import "./chunk-MJT6UANJ.js";
22
+ import "./chunk-QLUBNGHR.js";
23
+ import "./chunk-WRNCUSNU.js";
24
+ import "./chunk-6MG6CQBD.js";
25
+ import "./chunk-SBX6LOQE.js";
26
+ import "./chunk-5TFILHLH.js";
27
+ import "./chunk-ELQ4VANN.js";
28
+ import "./chunk-OTN2QONN.js";
29
+ export {
30
+ WORKTREES_DIR,
31
+ branchOf,
32
+ collectLanes,
33
+ laneBranchMap,
34
+ parseWorktreeBranches,
35
+ renderLaneList,
36
+ runLaneList,
37
+ runLaneNew,
38
+ runLaneRemove,
39
+ unmergedCommitCount,
40
+ worktreeUntracked
41
+ };
@@ -6,24 +6,24 @@ import {
6
6
  computeDurationMs,
7
7
  fmtDuration,
8
8
  loadGenerations
9
- } from "./chunk-F5LHXBH7.js";
9
+ } from "./chunk-WRNCUSNU.js";
10
10
  import {
11
11
  collectDeferred,
12
12
  readRecords
13
- } from "./chunk-I77CXOEX.js";
13
+ } from "./chunk-6MG6CQBD.js";
14
14
  import {
15
15
  loadState
16
- } from "./chunk-4OCSYHYB.js";
16
+ } from "./chunk-SBX6LOQE.js";
17
17
  import {
18
18
  requireConfig
19
- } from "./chunk-UOPWVM2H.js";
20
- import "./chunk-BUWGQVHT.js";
19
+ } from "./chunk-5TFILHLH.js";
20
+ import "./chunk-ELQ4VANN.js";
21
21
  import {
22
22
  caps,
23
23
  card,
24
24
  makeColors,
25
25
  padEndDisplay
26
- } from "./chunk-7SYRDDTX.js";
26
+ } from "./chunk-OTN2QONN.js";
27
27
 
28
28
  // src/commands/loop-summary.ts
29
29
  function gateAuto(rec) {