agent-work-loop 0.6.43 → 0.6.45

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 (50) hide show
  1. package/README.md +3 -3
  2. package/dist/{brief-GOGJDLY7.js → brief-SGMFXOY2.js} +5 -5
  3. package/dist/{changelog-NLYZTB44.js → changelog-VNJ4EQ74.js} +5 -5
  4. package/dist/{chunk-SKLSWS5J.js → chunk-5MXSJD3C.js} +2 -2
  5. package/dist/{chunk-I5SS6HFR.js → chunk-DQF7RF37.js} +11 -11
  6. package/dist/{chunk-MBEY33YA.js → chunk-EHJYX57P.js} +2 -2
  7. package/dist/{chunk-UNAASSQ4.js → chunk-FGHILN3D.js} +6 -0
  8. package/dist/{chunk-QVP5DUND.js → chunk-FK3Q7UY2.js} +3 -3
  9. package/dist/{chunk-TQUXHTN5.js → chunk-HAUTKVB5.js} +4 -4
  10. package/dist/{chunk-JQV65R3M.js → chunk-IA32FVBA.js} +6 -7
  11. package/dist/{chunk-I5WWLNA6.js → chunk-ISLNBWKV.js} +13 -13
  12. package/dist/{chunk-SOUTYYY4.js → chunk-IVEV5L7P.js} +2 -2
  13. package/dist/{chunk-JR6MKCC4.js → chunk-MLTY3EE6.js} +62 -3
  14. package/dist/{chunk-OVLA5DET.js → chunk-PUINOFOR.js} +5 -7
  15. package/dist/{chunk-YC23SNVC.js → chunk-QKKMA2VT.js} +5 -5
  16. package/dist/{chunk-7CPPZX6X.js → chunk-SJG22DAK.js} +27 -6
  17. package/dist/{chunk-UJ6CK5HC.js → chunk-VE2GVNNS.js} +2 -2
  18. package/dist/{chunk-I3WXYD5C.js → chunk-VVZOIFL4.js} +1 -1
  19. package/dist/{chunk-E6MULIMV.js → chunk-ZRKOZQKP.js} +5 -5
  20. package/dist/cli.js +58 -46
  21. package/dist/{commit-BKN3ZJI7.js → commit-GPQATPEA.js} +6 -6
  22. package/dist/{config-DX3WL2JT.js → config-QTEKLFZP.js} +3 -3
  23. package/dist/{doctor-TBRNCTDS.js → doctor-TMMIO4CE.js} +8 -8
  24. package/dist/{evolve-EMGWWWY3.js → evolve-N3S32P5I.js} +7 -7
  25. package/dist/{feedback-ZAAM5VYL.js → feedback-log-UCNJ2GVT.js} +11 -11
  26. package/dist/{gotchas-6ZWHP5Z6.js → gotchas-PDG2ZZFQ.js} +7 -7
  27. package/dist/{hold-recheck-K7DV64KW.js → hold-recheck-UNAILFN5.js} +6 -17
  28. package/dist/{init-3X6NVQQW.js → init-3B4ZRGWY.js} +2 -2
  29. package/dist/lane-24GAVVR6.js +39 -0
  30. package/dist/{loop-summary-CD6EIAHZ.js → loop-summary-CODZMRUY.js} +6 -6
  31. package/dist/{metrics-VVXCH6TR.js → metrics-ZR7BPATB.js} +4 -4
  32. package/dist/{record-AC7LPU36.js → record-TSB22DIO.js} +5 -5
  33. package/dist/{remove-C64QRELY.js → remove-J7B32U75.js} +16 -16
  34. package/dist/{review-VCVPT3P6.js → review-EM5Q2ZJX.js} +15 -15
  35. package/dist/{rules-2DIFP7K2.js → rules-QLUXNSCN.js} +8 -8
  36. package/dist/{state-UIHEGC5P.js → state-6IIH7SW2.js} +4 -4
  37. package/dist/status-2LPWVCHT.js +29 -0
  38. package/dist/{update-KCQWDQDF.js → update-CKGPHO5B.js} +2 -2
  39. package/dist/{verify-Y36JFAA7.js → verify-VWKIBPZD.js} +10 -10
  40. package/dist/version-check-3BZXXAQD.js +14 -0
  41. package/dist/{work-HHTQTJZW.js → work-PEJN55JB.js} +14 -14
  42. package/engine/skills/claude/awl-loop/reference.md +1 -1
  43. package/engine/skills/claude/awl-pipeline/SKILL.md +1 -1
  44. package/engine/templates/block-publish.mjs +20 -2
  45. package/engine/templates/pre-push.sample +8 -2
  46. package/engine/version.json +1 -1
  47. package/package.json +1 -1
  48. package/dist/lane-QPZE7KYI.js +0 -41
  49. package/dist/status-2PUVZCFI.js +0 -40
  50. package/dist/version-check-XLXT7NSG.js +0 -14
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  computeDurationMs
3
- } from "./chunk-SOUTYYY4.js";
3
+ } from "./chunk-IVEV5L7P.js";
4
4
  import {
5
5
  computeCoverage,
6
6
  readRecords
7
- } from "./chunk-QVP5DUND.js";
7
+ } from "./chunk-FK3Q7UY2.js";
8
8
  import {
9
9
  loadState
10
- } from "./chunk-UJ6CK5HC.js";
10
+ } from "./chunk-VE2GVNNS.js";
11
11
  import {
12
12
  requireConfig
13
- } from "./chunk-JR6MKCC4.js";
13
+ } from "./chunk-MLTY3EE6.js";
14
14
  import {
15
15
  caps,
16
16
  generationsDir,
@@ -19,7 +19,7 @@ import {
19
19
  lockFile,
20
20
  makeColors,
21
21
  signal
22
- } from "./chunk-UNAASSQ4.js";
22
+ } from "./chunk-FGHILN3D.js";
23
23
 
24
24
  // src/commands/evolve.ts
25
25
  import fs from "fs";
package/dist/cli.js CHANGED
@@ -3,9 +3,10 @@ import {
3
3
  computeUpdateAvailable,
4
4
  readCachedLatestVersion,
5
5
  version
6
- } from "./chunk-SKLSWS5J.js";
6
+ } from "./chunk-5MXSJD3C.js";
7
7
  import {
8
8
  caps,
9
+ engineDir,
9
10
  gradient,
10
11
  installedEngineVersion,
11
12
  makeColors,
@@ -14,9 +15,10 @@ import {
14
15
  sectionBox,
15
16
  signal,
16
17
  visibleWidth
17
- } from "./chunk-UNAASSQ4.js";
18
+ } from "./chunk-FGHILN3D.js";
18
19
 
19
20
  // src/program.ts
21
+ import os from "os";
20
22
  import { Command } from "commander";
21
23
  var BANNER = `
22
24
  [ AGENT WORK LOOP v${version} ]
@@ -107,7 +109,7 @@ function renderExamplesCard(c) {
107
109
  examples: [
108
110
  { cmd: "awl brief --today", note: "\uC624\uB298 \uD558\uB8E8 \uC694\uC57D" },
109
111
  { 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" },
112
+ { cmd: "awl feedback-log --severity high", note: "awl \uC790\uCCB4\uC5D0 \uB300\uD55C \uD53C\uB4DC\uBC31, \uC2EC\uAC01\uB3C4 \uD544\uD130" },
111
113
  { cmd: "awl changelog --workitem WI-01", note: "\uADF8 \uC6CC\uD06C\uC544\uC774\uD15C\uC758 \uBCC0\uACBD \uC774\uB825" }
112
114
  ]
113
115
  }
@@ -154,11 +156,16 @@ ${renderGettingStartedCard(c)}
154
156
 
155
157
  ${color.dim("\uC608\uC2DC\uB294 awl --examples \uB85C \uBD05\uB2C8\uB2E4.")}`;
156
158
  }
159
+ function displayHomePath(p) {
160
+ const home = os.homedir();
161
+ return p.startsWith(home) ? `~${p.slice(home.length)}` : p;
162
+ }
157
163
  function versionString(c = caps()) {
158
164
  const color = makeColors(c.color);
159
165
  const s = makeSymbols(c);
160
166
  const engineVer = installedEngineVersion();
161
- const heading = `awl v${version}`;
167
+ const enginePath = displayHomePath(engineDir());
168
+ const heading = `awl v${version} ${color.dim("(\uC124\uCE58\uB41C npm \uD328\uD0A4\uC9C0 \uBC84\uC804 \u2014 CLI \uBCF8\uCCB4)")}`;
162
169
  let base;
163
170
  if (engineVer === null) {
164
171
  base = [
@@ -169,7 +176,10 @@ function versionString(c = caps()) {
169
176
  ` ${color.dim("'awl init'\uC744 \uC2E4\uD589\uD558\uC5EC \uD15C\uD50C\uB9BF\uC744 \uC124\uCE58\uD558\uC138\uC694.")}`
170
177
  ].join("\n");
171
178
  } else {
172
- const template = ` ${s.lastBranch} Engine Template: v${engineVer}`;
179
+ const template = [
180
+ ` ${s.lastBranch} Engine Template: v${engineVer} ${color.dim(`(${enginePath} \uC5D0 \uBCF5\uC0AC\uB41C \uC5D4\uC9C4 \uBC84\uC804)`)}`,
181
+ ` ${color.dim("\uD328\uD0A4\uC9C0 \uC124\uCE58 \uD6C4, \uD30C\uC77C \uAD00\uB9AC\uB97C \uC704\uD574 \uC804\uC5ED\uC5D0 \uC5D4\uC9C4 \uD15C\uD50C\uB9BF \uD615\uD0DC\uB85C \uBCF5\uC0AC\uBCF8\uC744 \uB9CC\uB4ED\uB2C8\uB2E4.")}`
182
+ ].join("\n");
173
183
  if (engineVer === version) {
174
184
  base = `${heading}
175
185
  ${template}`;
@@ -179,7 +189,7 @@ ${template}`;
179
189
  template,
180
190
  "",
181
191
  ` ${signal(c, "warn")} \uBC84\uC804 \uBD88\uC77C\uCE58 \uAC10\uC9C0!`,
182
- " CLI \uBCF8\uCCB4\uC640 \uD648 \uB514\uB809\uD1A0\uB9AC(~/.awl/engine)\uC758 \uC2A4\uD0AC \uD15C\uD50C\uB9BF \uBC84\uC804\uC774 \uB2E4\uB985\uB2C8\uB2E4.",
192
+ ` CLI \uBCF8\uCCB4\uC640 ${enginePath} \uC758 \uC5D4\uC9C4 \uD15C\uD50C\uB9BF \uBC84\uC804\uC774 \uB2E4\uB985\uB2C8\uB2E4.`,
183
193
  ` ${color.dim("\uD574\uACB0\uD558\uB824\uBA74 awl update \uB85C \uC5D4\uC9C4\uC744 \uAC31\uC2E0\uD558\uC138\uC694.")}`
184
194
  ].join("\n");
185
195
  }
@@ -222,14 +232,14 @@ function buildProgram() {
222
232
  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()}
223
233
  ` : "").option("--examples", "\uC790\uC8FC \uC4F0\uB294 \uBA85\uB839 \uC608\uC2DC\uB97C \uBCF4\uC5EC\uC90D\uB2C8\uB2E4").showHelpAfterError();
224
234
  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) => {
225
- const { runInit } = await import("./init-3X6NVQQW.js");
235
+ const { runInit } = await import("./init-3B4ZRGWY.js");
226
236
  await runInit({ yes: opts.yes === true });
227
237
  });
228
238
  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(
229
239
  "--archive",
230
240
  "(--pipeline\uACFC \uD568\uAED8) \uC720\uC608 \uAE30\uAC04(3\uC77C) \uC9C0\uB09C \uC644\uB8CC workitem\uC744 .tasks/archive/ \uB85C \uBCF4\uAD00\uD569\uB2C8\uB2E4"
231
241
  ).action(async (opts) => {
232
- const { runStatus } = await import("./status-2PUVZCFI.js");
242
+ const { runStatus } = await import("./status-2LPWVCHT.js");
233
243
  await runStatus({
234
244
  json: opts.json === true,
235
245
  pipeline: opts.pipeline === true,
@@ -237,15 +247,15 @@ function buildProgram() {
237
247
  });
238
248
  });
239
249
  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) => {
240
- const { runBrief } = await import("./brief-GOGJDLY7.js");
250
+ const { runBrief } = await import("./brief-SGMFXOY2.js");
241
251
  await runBrief({ today: opts.today === true, date: opts.date, json: opts.json === true });
242
252
  });
243
253
  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) => {
244
- const { runDoctor } = await import("./doctor-TBRNCTDS.js");
254
+ const { runDoctor } = await import("./doctor-TMMIO4CE.js");
245
255
  await runDoctor({ json: opts.json === true });
246
256
  });
247
257
  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) => {
248
- const { runVersionCheck } = await import("./version-check-XLXT7NSG.js");
258
+ const { runVersionCheck } = await import("./version-check-3BZXXAQD.js");
249
259
  await runVersionCheck({ json: opts.json === true });
250
260
  });
251
261
  program.command("update").description(
@@ -254,12 +264,12 @@ function buildProgram() {
254
264
  "-l, --local",
255
265
  "\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"
256
266
  ).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) => {
257
- const { runUpdate } = await import("./update-KCQWDQDF.js");
267
+ const { runUpdate } = await import("./update-CKGPHO5B.js");
258
268
  runUpdate(opts);
259
269
  });
260
270
  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(
261
271
  async (opts) => {
262
- const { runRemove } = await import("./remove-C64QRELY.js");
272
+ const { runRemove } = await import("./remove-J7B32U75.js");
263
273
  await runRemove({
264
274
  yes: opts.yes === true,
265
275
  project: opts.project === true,
@@ -271,22 +281,22 @@ function buildProgram() {
271
281
  );
272
282
  const config = program.command("config").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC124\uC815\uC744 \uBD05\uB2C8\uB2E4 (TTY \uBA74 \uC218\uC815\uB3C4)");
273
283
  config.action(async () => {
274
- const { runConfig } = await import("./config-DX3WL2JT.js");
284
+ const { runConfig } = await import("./config-QTEKLFZP.js");
275
285
  await runConfig();
276
286
  });
277
287
  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(
278
288
  async (key, value, opts) => {
279
- const { runConfigSet } = await import("./config-DX3WL2JT.js");
289
+ const { runConfigSet } = await import("./config-QTEKLFZP.js");
280
290
  await runConfigSet(key, value, { force: opts.force === true });
281
291
  }
282
292
  );
283
293
  const work = program.command("work").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uAD00\uB9AC\uD569\uB2C8\uB2E4");
284
294
  work.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
285
- const { runWorkList } = await import("./work-HHTQTJZW.js");
295
+ const { runWorkList } = await import("./work-PEJN55JB.js");
286
296
  runWorkList({ json: opts.json === true });
287
297
  });
288
298
  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) => {
289
- const { runWorkList } = await import("./work-HHTQTJZW.js");
299
+ const { runWorkList } = await import("./work-PEJN55JB.js");
290
300
  runWorkList({ json: opts.json === true });
291
301
  });
292
302
  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(
@@ -294,7 +304,7 @@ function buildProgram() {
294
304
  "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)"
295
305
  ).option("--experiment <json>", '\uC2E4\uD5D8 \uCF00\uC774\uC2A4 \uBA54\uD0C0 JSON (\uC608: {"model":"lite","mode":"loop"})').action(
296
306
  async (id, description, opts) => {
297
- const { runWorkNew } = await import("./work-HHTQTJZW.js");
307
+ const { runWorkNew } = await import("./work-PEJN55JB.js");
298
308
  const parsedExp = parseExperimentOption(opts.experiment);
299
309
  if (!parsedExp.ok) {
300
310
  process.stderr.write(`
@@ -306,52 +316,52 @@ function buildProgram() {
306
316
  }
307
317
  );
308
318
  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) => {
309
- const { runWorkSwitch } = await import("./work-HHTQTJZW.js");
319
+ const { runWorkSwitch } = await import("./work-PEJN55JB.js");
310
320
  await runWorkSwitch(id);
311
321
  });
312
322
  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) => {
313
- const { runWorkAbandon } = await import("./work-HHTQTJZW.js");
323
+ const { runWorkAbandon } = await import("./work-PEJN55JB.js");
314
324
  runWorkAbandon(id);
315
325
  });
316
326
  work.command("done <id>").description(
317
327
  "\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)"
318
328
  ).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) => {
319
- const { runWorkDone } = await import("./work-HHTQTJZW.js");
329
+ const { runWorkDone } = await import("./work-PEJN55JB.js");
320
330
  await runWorkDone(id, { force: opts.force === true });
321
331
  });
322
332
  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)");
323
333
  lane.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
324
- const { runLaneList } = await import("./lane-QPZE7KYI.js");
334
+ const { runLaneList } = await import("./lane-24GAVVR6.js");
325
335
  await runLaneList({ json: opts.json === true });
326
336
  });
327
337
  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) => {
328
- const { runLaneNew } = await import("./lane-QPZE7KYI.js");
338
+ const { runLaneNew } = await import("./lane-24GAVVR6.js");
329
339
  await runLaneNew(name, description);
330
340
  });
331
341
  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) => {
332
- const { runLaneList } = await import("./lane-QPZE7KYI.js");
342
+ const { runLaneList } = await import("./lane-24GAVVR6.js");
333
343
  await runLaneList({ json: opts.json === true });
334
344
  });
335
345
  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) => {
336
- const { runLaneRemove } = await import("./lane-QPZE7KYI.js");
346
+ const { runLaneRemove } = await import("./lane-24GAVVR6.js");
337
347
  await runLaneRemove(name, { force: opts.force === true });
338
348
  });
339
349
  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) => {
340
- const { runRecords } = await import("./record-AC7LPU36.js");
350
+ const { runRecords } = await import("./record-TSB22DIO.js");
341
351
  runRecords({ type: opts.type, workitem: opts.workitem, json: opts.json === true });
342
352
  });
343
353
  const rules = program.command("rules").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC801\uC6A9\uB418\uB294 \uADDC\uCE59\uC744 \uBD05\uB2C8\uB2E4").enablePositionalOptions();
344
354
  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) => {
345
- const { runRules } = await import("./rules-2DIFP7K2.js");
355
+ const { runRules } = await import("./rules-QLUXNSCN.js");
346
356
  runRules({ scope: opts.scope, json: opts.json === true });
347
357
  });
348
358
  rules.command("edit").description("$EDITOR \uB85C \uADDC\uCE59 \uD30C\uC77C\uC744 \uC5FD\uB2C8\uB2E4").action(async () => {
349
- const { runRules } = await import("./rules-2DIFP7K2.js");
359
+ const { runRules } = await import("./rules-QLUXNSCN.js");
350
360
  runRules({ edit: true });
351
361
  });
352
362
  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(
353
363
  async (gotchaId, opts) => {
354
- const { runRulesPromote } = await import("./rules-2DIFP7K2.js");
364
+ const { runRulesPromote } = await import("./rules-QLUXNSCN.js");
355
365
  runRulesPromote(gotchaId, {
356
366
  applies: opts.applies,
357
367
  counter: opts.counter,
@@ -360,16 +370,16 @@ function buildProgram() {
360
370
  }
361
371
  );
362
372
  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) => {
363
- const { runGotchas } = await import("./gotchas-6ZWHP5Z6.js");
373
+ const { runGotchas } = await import("./gotchas-PDG2ZZFQ.js");
364
374
  runGotchas({ json: opts.json === true });
365
375
  });
366
376
  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) => {
367
- const { runMetrics } = await import("./metrics-VVXCH6TR.js");
377
+ const { runMetrics } = await import("./metrics-ZR7BPATB.js");
368
378
  runMetrics({ json: opts.json === true, compare: opts.compare === true });
369
379
  });
370
380
  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(
371
381
  async (opts) => {
372
- const { runLoopSummary } = await import("./loop-summary-CD6EIAHZ.js");
382
+ const { runLoopSummary } = await import("./loop-summary-CODZMRUY.js");
373
383
  runLoopSummary({
374
384
  workitem: opts.workitem,
375
385
  workitems: parseWorkitemsOption(opts.workitems),
@@ -378,9 +388,11 @@ function buildProgram() {
378
388
  });
379
389
  }
380
390
  );
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) => {
382
- const { runFeedback } = await import("./feedback-ZAAM5VYL.js");
383
- runFeedback({
391
+ program.command("feedback-log").description(
392
+ "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)"
393
+ ).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) => {
394
+ const { runFeedbackLog } = await import("./feedback-log-UCNJ2GVT.js");
395
+ runFeedbackLog({
384
396
  json: opts.json === true,
385
397
  area: opts.area,
386
398
  severity: opts.severity,
@@ -388,12 +400,12 @@ function buildProgram() {
388
400
  });
389
401
  });
390
402
  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) => {
391
- const { runChangelogDraft } = await import("./changelog-NLYZTB44.js");
403
+ const { runChangelogDraft } = await import("./changelog-VNJ4EQ74.js");
392
404
  runChangelogDraft({ workitem: opts.workitem, json: opts.json === true });
393
405
  });
394
406
  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(
395
407
  async (criterion, opts) => {
396
- const { runCommit } = await import("./commit-BKN3ZJI7.js");
408
+ const { runCommit } = await import("./commit-GPQATPEA.js");
397
409
  await runCommit(criterion, {
398
410
  start: opts.start,
399
411
  message: opts.message,
@@ -403,12 +415,12 @@ function buildProgram() {
403
415
  }
404
416
  );
405
417
  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) => {
406
- const { runReview } = await import("./review-VCVPT3P6.js");
418
+ const { runReview } = await import("./review-EM5Q2ZJX.js");
407
419
  await runReview(range, { json: opts.json === true, base: opts.base });
408
420
  });
409
421
  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(
410
422
  async (type, opts) => {
411
- const { runRecord } = await import("./record-AC7LPU36.js");
423
+ const { runRecord } = await import("./record-TSB22DIO.js");
412
424
  await runRecord(type, {
413
425
  json: opts.json,
414
426
  file: opts.file,
@@ -422,7 +434,7 @@ function buildProgram() {
422
434
  "\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)"
423
435
  ).action(
424
436
  async (opts) => {
425
- const { runVerify } = await import("./verify-Y36JFAA7.js");
437
+ const { runVerify } = await import("./verify-VWKIBPZD.js");
426
438
  await runVerify({
427
439
  json: opts.json === true,
428
440
  bail: opts.bail === true,
@@ -433,17 +445,17 @@ function buildProgram() {
433
445
  }
434
446
  );
435
447
  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) => {
436
- const { runHoldRecheck } = await import("./hold-recheck-K7DV64KW.js");
448
+ const { runHoldRecheck } = await import("./hold-recheck-UNAILFN5.js");
437
449
  await runHoldRecheck({ json: opts.json === true });
438
450
  });
439
451
  const state = program.command("state", { hidden: true }).description("\uB8E8\uD504 \uC0C1\uD0DC\uB97C \uC77D\uACE0 \uC501\uB2C8\uB2E4");
440
452
  state.command("get").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
441
- const { runStateGet } = await import("./state-UIHEGC5P.js");
453
+ const { runStateGet } = await import("./state-6IIH7SW2.js");
442
454
  runStateGet({ json: opts.json === true });
443
455
  });
444
456
  state.command("set").requiredOption("--json <patch>", "\uBD80\uBD84 \uAC31\uC2E0 (JSON \uBB38\uC790\uC5F4)").action(async (opts) => {
445
- const { runStateSet } = await import("./state-UIHEGC5P.js");
446
- const { hasApprovedGate1 } = await import("./record-AC7LPU36.js");
457
+ const { runStateSet } = await import("./state-6IIH7SW2.js");
458
+ const { hasApprovedGate1 } = await import("./record-TSB22DIO.js");
447
459
  runStateSet(opts.json, {
448
460
  // phase:'loop' 로의 전이는 이 워크아이템에 "승인된" 게이트1 레코드가 있을
449
461
  // 때만 허용한다(0.6.3, 적대검증 발견). 예전엔 gate:1 레코드의 존재만 봐서
@@ -454,7 +466,7 @@ function buildProgram() {
454
466
  });
455
467
  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(
456
468
  async (opts) => {
457
- const m = await import("./evolve-EMGWWWY3.js");
469
+ const m = await import("./evolve-N3S32P5I.js");
458
470
  if (opts.collect && opts.record) {
459
471
  process.stderr.write("\n --collect \uC640 --record \uB294 \uB3D9\uC2DC\uC5D0 \uC4F8 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
460
472
  process.exit(1);
@@ -473,7 +485,7 @@ function buildProgram() {
473
485
  }
474
486
  );
475
487
  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) => {
476
- const m = await import("./record-AC7LPU36.js");
488
+ const m = await import("./record-TSB22DIO.js");
477
489
  m.runDeferSummary({ json: opts.json === true, workitem: opts.workitem });
478
490
  });
479
491
  program.action((opts, command) => {
@@ -1,28 +1,28 @@
1
1
  import {
2
2
  protectedFilesMessage
3
- } from "./chunk-I3WXYD5C.js";
3
+ } from "./chunk-VVZOIFL4.js";
4
4
  import {
5
5
  hasApprovedGate1
6
- } from "./chunk-QVP5DUND.js";
6
+ } from "./chunk-FK3Q7UY2.js";
7
7
  import {
8
8
  getCriterion,
9
9
  loadState,
10
10
  setCriterion,
11
11
  writeState
12
- } from "./chunk-UJ6CK5HC.js";
12
+ } from "./chunk-VE2GVNNS.js";
13
13
  import {
14
14
  loadConfig,
15
15
  resolveProjectRoot,
16
16
  run
17
- } from "./chunk-JR6MKCC4.js";
18
- import "./chunk-7CPPZX6X.js";
17
+ } from "./chunk-MLTY3EE6.js";
18
+ import "./chunk-SJG22DAK.js";
19
19
  import {
20
20
  caps,
21
21
  feedback,
22
22
  makeColors,
23
23
  makeTokens,
24
24
  signal
25
- } from "./chunk-UNAASSQ4.js";
25
+ } from "./chunk-FGHILN3D.js";
26
26
 
27
27
  // src/commands/commit.ts
28
28
  import fs from "fs";
@@ -16,9 +16,9 @@ import {
16
16
  runConfig,
17
17
  runConfigSet,
18
18
  validateConfig
19
- } from "./chunk-JR6MKCC4.js";
20
- import "./chunk-7CPPZX6X.js";
21
- import "./chunk-UNAASSQ4.js";
19
+ } from "./chunk-MLTY3EE6.js";
20
+ import "./chunk-SJG22DAK.js";
21
+ import "./chunk-FGHILN3D.js";
22
22
  export {
23
23
  DEFAULT_FEEDBACK_PATH,
24
24
  KNOWN_LANGUAGES,
@@ -8,14 +8,14 @@ import {
8
8
  gitHasCommits,
9
9
  renderText,
10
10
  runDoctor
11
- } from "./chunk-I5SS6HFR.js";
12
- import "./chunk-TQUXHTN5.js";
13
- import "./chunk-SKLSWS5J.js";
14
- import "./chunk-QVP5DUND.js";
15
- import "./chunk-UJ6CK5HC.js";
16
- import "./chunk-JR6MKCC4.js";
17
- import "./chunk-7CPPZX6X.js";
18
- import "./chunk-UNAASSQ4.js";
11
+ } from "./chunk-DQF7RF37.js";
12
+ import "./chunk-FK3Q7UY2.js";
13
+ import "./chunk-VE2GVNNS.js";
14
+ import "./chunk-HAUTKVB5.js";
15
+ import "./chunk-5MXSJD3C.js";
16
+ import "./chunk-MLTY3EE6.js";
17
+ import "./chunk-SJG22DAK.js";
18
+ import "./chunk-FGHILN3D.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-E6MULIMV.js";
17
- import "./chunk-SOUTYYY4.js";
18
- import "./chunk-QVP5DUND.js";
19
- import "./chunk-UJ6CK5HC.js";
20
- import "./chunk-JR6MKCC4.js";
21
- import "./chunk-7CPPZX6X.js";
22
- import "./chunk-UNAASSQ4.js";
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";
22
+ import "./chunk-FGHILN3D.js";
23
23
  export {
24
24
  GOTCHA_RELATION_TYPES,
25
25
  acquireLock,
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  readRecords
3
- } from "./chunk-QVP5DUND.js";
4
- import "./chunk-UJ6CK5HC.js";
5
- import "./chunk-JR6MKCC4.js";
6
- import "./chunk-7CPPZX6X.js";
3
+ } from "./chunk-FK3Q7UY2.js";
4
+ import "./chunk-VE2GVNNS.js";
5
+ import "./chunk-MLTY3EE6.js";
6
+ import "./chunk-SJG22DAK.js";
7
7
  import {
8
8
  caps,
9
9
  makeColors,
10
10
  sectionBox,
11
11
  signal
12
- } from "./chunk-UNAASSQ4.js";
12
+ } from "./chunk-FGHILN3D.js";
13
13
 
14
- // src/commands/feedback.ts
14
+ // src/commands/feedback-log.ts
15
15
  var SEVERITY_RANK = { high: 0, medium: 1, low: 2 };
16
16
  function loadAwlFeedback(filter = {}) {
17
17
  let records = readRecords().filter((r) => r.type === "awl-feedback");
@@ -60,7 +60,7 @@ function buildFeedbackReport(records) {
60
60
  const prioritized = Object.entries(areas).filter(([, g]) => g.count >= 2).sort(([, a], [, b]) => b.count - a.count).map(([area]) => area);
61
61
  return { collectedFrom: workitems.size, areas, prioritized };
62
62
  }
63
- function renderFeedback(report, c) {
63
+ function renderFeedbackLog(report, c) {
64
64
  const color = makeColors(c.color);
65
65
  const entries = Object.entries(report.areas).sort(([, a], [, b]) => b.count - a.count);
66
66
  if (entries.length === 0) {
@@ -98,7 +98,7 @@ function renderFeedback(report, c) {
98
98
  }
99
99
  return sectionBox(`awl \uC790\uCCB4 \uD53C\uB4DC\uBC31 \xB7 \uC6CC\uD06C\uC544\uC774\uD15C ${report.collectedFrom}\uAC1C\uC5D0\uC11C \uC218\uC9D1`, out, c);
100
100
  }
101
- function runFeedback(opts) {
101
+ function runFeedbackLog(opts) {
102
102
  if (isInvalidSince(opts.since)) {
103
103
  process.stderr.write(
104
104
  `
@@ -113,13 +113,13 @@ function runFeedback(opts) {
113
113
  `);
114
114
  return;
115
115
  }
116
- process.stdout.write(`${renderFeedback(report, caps())}
116
+ process.stdout.write(`${renderFeedbackLog(report, caps())}
117
117
  `);
118
118
  }
119
119
  export {
120
120
  buildFeedbackReport,
121
121
  isInvalidSince,
122
122
  loadAwlFeedback,
123
- renderFeedback,
124
- runFeedback
123
+ renderFeedbackLog,
124
+ runFeedbackLog
125
125
  };
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  loadGotchaList
3
- } from "./chunk-E6MULIMV.js";
4
- import "./chunk-SOUTYYY4.js";
5
- import "./chunk-QVP5DUND.js";
6
- import "./chunk-UJ6CK5HC.js";
7
- import "./chunk-JR6MKCC4.js";
8
- import "./chunk-7CPPZX6X.js";
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";
9
9
  import {
10
10
  caps,
11
11
  makeColors,
12
12
  sectionBox
13
- } from "./chunk-UNAASSQ4.js";
13
+ } from "./chunk-FGHILN3D.js";
14
14
 
15
15
  // src/commands/gotchas.ts
16
16
  function loadGotchas() {
@@ -1,29 +1,18 @@
1
1
  import {
2
2
  pipelineLanes
3
- } from "./chunk-OVLA5DET.js";
4
- import "./chunk-JQV65R3M.js";
5
- import "./chunk-I5WWLNA6.js";
6
- import "./chunk-D5OINC3G.js";
7
- import "./chunk-YC23SNVC.js";
8
- import "./chunk-I3WXYD5C.js";
9
- import "./chunk-I5SS6HFR.js";
10
- import "./chunk-TQUXHTN5.js";
11
- import "./chunk-SKLSWS5J.js";
12
- import "./chunk-MBEY33YA.js";
13
- import "./chunk-E6MULIMV.js";
14
- import "./chunk-SOUTYYY4.js";
15
- import "./chunk-QVP5DUND.js";
16
- import "./chunk-UJ6CK5HC.js";
3
+ } from "./chunk-PUINOFOR.js";
4
+ import "./chunk-FK3Q7UY2.js";
5
+ import "./chunk-VE2GVNNS.js";
17
6
  import {
18
7
  resolveProjectRoot
19
- } from "./chunk-JR6MKCC4.js";
20
- import "./chunk-7CPPZX6X.js";
8
+ } from "./chunk-MLTY3EE6.js";
9
+ import "./chunk-SJG22DAK.js";
21
10
  import {
22
11
  caps,
23
12
  makeColors,
24
13
  sectionBox,
25
14
  signal
26
- } from "./chunk-UNAASSQ4.js";
15
+ } from "./chunk-FGHILN3D.js";
27
16
 
28
17
  // src/commands/hold-recheck.ts
29
18
  import fs from "fs";
@@ -45,8 +45,8 @@ import {
45
45
  writeConfig,
46
46
  writeSkillsVersionStamp,
47
47
  writeState
48
- } from "./chunk-7CPPZX6X.js";
49
- import "./chunk-UNAASSQ4.js";
48
+ } from "./chunk-SJG22DAK.js";
49
+ import "./chunk-FGHILN3D.js";
50
50
  export {
51
51
  LANG_OPTIONS,
52
52
  LANG_VALUES,