agent-work-loop 0.6.25 → 0.6.27

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 (52) hide show
  1. package/README.md +17 -0
  2. package/dist/{brief-LZ6JC5V5.js → brief-TQND6XIK.js} +5 -5
  3. package/dist/{changelog-ZCPSFDX3.js → changelog-J4LP6ZJI.js} +5 -5
  4. package/dist/{chunk-5TFILHLH.js → chunk-CLWQEWEG.js} +4 -4
  5. package/dist/{chunk-57EWVAZO.js → chunk-DGPZEEFJ.js} +7 -7
  6. package/dist/{chunk-QLUBNGHR.js → chunk-DR7OZZ4N.js} +5 -5
  7. package/dist/{chunk-R2RZC5NQ.js → chunk-GKKWXRQA.js} +9 -9
  8. package/dist/{chunk-4MWV4RBI.js → chunk-H4EMS47F.js} +7 -7
  9. package/dist/{chunk-7KIVLJG3.js → chunk-J7EKKHVW.js} +8 -8
  10. package/dist/{chunk-6MG6CQBD.js → chunk-JXFQHNHV.js} +6 -6
  11. package/dist/{chunk-ZYXKMNHC.js → chunk-KJG2ULS4.js} +1 -1
  12. package/dist/{chunk-MJT6UANJ.js → chunk-KNBSZQGN.js} +5 -5
  13. package/dist/{chunk-OTN2QONN.js → chunk-M4H4VNN6.js} +5 -9
  14. package/dist/{chunk-JQN653ZS.js → chunk-MCNUMMKK.js} +2 -2
  15. package/dist/{chunk-FBRW7KKY.js → chunk-MLD2GOVM.js} +7 -7
  16. package/dist/{chunk-WRNCUSNU.js → chunk-OSKS2YRU.js} +7 -7
  17. package/dist/{chunk-F7Z3S5LD.js → chunk-PFXDX4JF.js} +11 -11
  18. package/dist/{chunk-ELQ4VANN.js → chunk-PIOV3MQT.js} +52 -14
  19. package/dist/{chunk-SBX6LOQE.js → chunk-UB4RLTLJ.js} +6 -6
  20. package/dist/cli.js +43 -43
  21. package/dist/{commit-4XEKMCJF.js → commit-2WWILQRB.js} +6 -6
  22. package/dist/{config-BZDCXBQ5.js → config-XMM3V7MT.js} +3 -3
  23. package/dist/{doctor-ST67JMQ6.js → doctor-HZEAQNY7.js} +8 -8
  24. package/dist/{evolve-ZBSIUZXP.js → evolve-EQ3N6F6M.js} +7 -7
  25. package/dist/{feedback-HVNBFJBW.js → feedback-4FT67LSI.js} +8 -8
  26. package/dist/{gotchas-642PZ5AQ.js → gotchas-QJBUVYJV.js} +11 -11
  27. package/dist/{hold-recheck-N3UCEIXL.js → hold-recheck-L3DAS3MV.js} +18 -18
  28. package/dist/{init-2FPJSD64.js → init-PTTYGP2D.js} +6 -2
  29. package/dist/lane-WINQEOEW.js +41 -0
  30. package/dist/{loop-summary-22VD3BDL.js → loop-summary-OSYJB57M.js} +10 -10
  31. package/dist/{metrics-4OT2R3GT.js → metrics-BC7ZUCGU.js} +4 -4
  32. package/dist/{record-CJONXDR2.js → record-CKR6G6UZ.js} +5 -5
  33. package/dist/{review-L52UGCIJ.js → review-UJH6C7F4.js} +16 -16
  34. package/dist/{rules-U7UCVU5O.js → rules-E52GU3GA.js} +8 -8
  35. package/dist/{state-3G4XAB6P.js → state-X7DLLBOD.js} +4 -4
  36. package/dist/status-NGSQ4XK3.js +40 -0
  37. package/dist/{uninstall-M7Z6SO7L.js → uninstall-JECZJNRJ.js} +17 -17
  38. package/dist/{update-LQBVQIXW.js → update-GA6I4AMF.js} +6 -6
  39. package/dist/{verify-PYZXB67X.js → verify-KKQ2OQMO.js} +10 -10
  40. package/dist/version-check-7XE232L3.js +14 -0
  41. package/dist/{work-VTHTF4AQ.js → work-3SONYYYB.js} +14 -14
  42. package/engine/skills/claude/awl-loop/SKILL.md +3 -1
  43. package/engine/skills/claude/awl-pipeline/SKILL.md +5 -1
  44. package/engine/skills/claude/awl-pipeline-exec/SKILL.md +4 -1
  45. package/engine/skills/claude/awl-pipeline-plan/SKILL.md +4 -1
  46. package/engine/skills/claude/awl-pipeline-review/SKILL.md +4 -1
  47. package/engine/skills/codex/AGENTS.awl.md +2 -0
  48. package/engine/version.json +1 -1
  49. package/package.json +1 -1
  50. package/dist/lane-7AB53N4M.js +0 -41
  51. package/dist/status-7V4W52VA.js +0 -40
  52. package/dist/version-check-QQDDSBU7.js +0 -14
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  loadGotchaList
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";
3
+ } from "./chunk-DR7OZZ4N.js";
4
+ import "./chunk-OSKS2YRU.js";
5
+ import "./chunk-JXFQHNHV.js";
6
+ import "./chunk-UB4RLTLJ.js";
7
+ import "./chunk-CLWQEWEG.js";
8
+ import "./chunk-PIOV3MQT.js";
9
9
  import {
10
10
  caps,
11
- card,
12
- makeColors
13
- } from "./chunk-OTN2QONN.js";
11
+ makeColors,
12
+ sectionBox
13
+ } from "./chunk-M4H4VNN6.js";
14
14
 
15
15
  // src/commands/gotchas.ts
16
16
  function loadGotchas() {
@@ -19,13 +19,13 @@ function loadGotchas() {
19
19
  function renderGotchas(gotchas, c) {
20
20
  const color = makeColors(c.color);
21
21
  if (gotchas.length === 0) {
22
- return card("\uD568\uC815", ["\uD568\uC815\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."], c);
22
+ return sectionBox("\uD568\uC815", ["\uD568\uC815\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."], c);
23
23
  }
24
24
  const out = [];
25
25
  for (const g of gotchas) {
26
26
  out.push(`${color.dim("\xB7")} ${g.lesson || "(\uC694\uC57D \uC5C6\uC74C)"}`);
27
27
  }
28
- return card(`\uD568\uC815 ${gotchas.length}\uAC1C \xB7 \uC544\uC9C1 \uADDC\uCE59 \uC544\uB2D8`, out, c);
28
+ return sectionBox(`\uD568\uC815 ${gotchas.length}\uAC1C \xB7 \uC544\uC9C1 \uADDC\uCE59 \uC544\uB2D8`, out, c);
29
29
  }
30
30
  function runGotchas(opts) {
31
31
  const gotchas = loadGotchas();
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  pipelineLanes
3
- } from "./chunk-R2RZC5NQ.js";
4
- import "./chunk-4MWV4RBI.js";
5
- import "./chunk-F7Z3S5LD.js";
3
+ } from "./chunk-GKKWXRQA.js";
4
+ import "./chunk-H4EMS47F.js";
5
+ import "./chunk-PFXDX4JF.js";
6
6
  import "./chunk-D5OINC3G.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";
7
+ import "./chunk-MLD2GOVM.js";
8
+ import "./chunk-KJG2ULS4.js";
9
+ import "./chunk-J7EKKHVW.js";
10
+ import "./chunk-DGPZEEFJ.js";
11
+ import "./chunk-MCNUMMKK.js";
12
+ import "./chunk-KNBSZQGN.js";
13
+ import "./chunk-DR7OZZ4N.js";
14
+ import "./chunk-OSKS2YRU.js";
15
+ import "./chunk-JXFQHNHV.js";
16
+ import "./chunk-UB4RLTLJ.js";
17
17
  import {
18
18
  resolveProjectRoot
19
- } from "./chunk-5TFILHLH.js";
20
- import "./chunk-ELQ4VANN.js";
19
+ } from "./chunk-CLWQEWEG.js";
20
+ import "./chunk-PIOV3MQT.js";
21
21
  import {
22
22
  caps,
23
- card,
24
23
  makeColors,
24
+ sectionBox,
25
25
  signal
26
- } from "./chunk-OTN2QONN.js";
26
+ } from "./chunk-M4H4VNN6.js";
27
27
 
28
28
  // src/commands/hold-recheck.ts
29
29
  import fs from "fs";
@@ -123,7 +123,7 @@ async function runHoldRecheck(opts) {
123
123
  const why = k.reason === "no-condition" ? "\uD328\uD134 \uC5C6\uC74C(\uC804\uB7B5\uBB38\uC11C \uB4F1)" : `\uB300\uAE30: ${(k.waitingOn ?? []).join(", ")}`;
124
124
  lines.push(`${signal(c, "warn")} ${color.dim(k.name)} hold \uC720\uC9C0 ${color.dim(`(${why})`)}`);
125
125
  }
126
- process.stdout.write(`${card("hold \uC7AC\uC810\uAC80", lines, c)}
126
+ process.stdout.write(`${sectionBox("hold \uC7AC\uC810\uAC80", lines, c)}
127
127
  `);
128
128
  }
129
129
  export {
@@ -12,6 +12,7 @@ import {
12
12
  detectVerify,
13
13
  detectWorkspacePackages,
14
14
  ensureGitignore,
15
+ excludeRegisteredProjects,
15
16
  installClaudeSkill,
16
17
  installCodexSkill,
17
18
  installSafetyHook,
@@ -21,6 +22,7 @@ import {
21
22
  promptNumber,
22
23
  promptVerifyLocation,
23
24
  registerProject,
25
+ registeredProjectPaths,
24
26
  renderNonTtyNotice,
25
27
  renderResult,
26
28
  resolveProjectChoice,
@@ -36,8 +38,8 @@ import {
36
38
  writeConfig,
37
39
  writeSkillsVersionStamp,
38
40
  writeState
39
- } from "./chunk-ELQ4VANN.js";
40
- import "./chunk-OTN2QONN.js";
41
+ } from "./chunk-PIOV3MQT.js";
42
+ import "./chunk-M4H4VNN6.js";
41
43
  export {
42
44
  LANG_OPTIONS,
43
45
  LANG_VALUES,
@@ -52,6 +54,7 @@ export {
52
54
  detectVerify,
53
55
  detectWorkspacePackages,
54
56
  ensureGitignore,
57
+ excludeRegisteredProjects,
55
58
  installClaudeSkill,
56
59
  installCodexSkill,
57
60
  installSafetyHook,
@@ -61,6 +64,7 @@ export {
61
64
  promptNumber,
62
65
  promptVerifyLocation,
63
66
  registerProject,
67
+ registeredProjectPaths,
64
68
  renderNonTtyNotice,
65
69
  renderResult,
66
70
  resolveProjectChoice,
@@ -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-H4EMS47F.js";
14
+ import "./chunk-PFXDX4JF.js";
15
+ import "./chunk-D5OINC3G.js";
16
+ import "./chunk-MLD2GOVM.js";
17
+ import "./chunk-KJG2ULS4.js";
18
+ import "./chunk-J7EKKHVW.js";
19
+ import "./chunk-DGPZEEFJ.js";
20
+ import "./chunk-MCNUMMKK.js";
21
+ import "./chunk-KNBSZQGN.js";
22
+ import "./chunk-DR7OZZ4N.js";
23
+ import "./chunk-OSKS2YRU.js";
24
+ import "./chunk-JXFQHNHV.js";
25
+ import "./chunk-UB4RLTLJ.js";
26
+ import "./chunk-CLWQEWEG.js";
27
+ import "./chunk-PIOV3MQT.js";
28
+ import "./chunk-M4H4VNN6.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-WRNCUSNU.js";
9
+ } from "./chunk-OSKS2YRU.js";
10
10
  import {
11
11
  collectDeferred,
12
12
  readRecords
13
- } from "./chunk-6MG6CQBD.js";
13
+ } from "./chunk-JXFQHNHV.js";
14
14
  import {
15
15
  loadState
16
- } from "./chunk-SBX6LOQE.js";
16
+ } from "./chunk-UB4RLTLJ.js";
17
17
  import {
18
18
  requireConfig
19
- } from "./chunk-5TFILHLH.js";
20
- import "./chunk-ELQ4VANN.js";
19
+ } from "./chunk-CLWQEWEG.js";
20
+ import "./chunk-PIOV3MQT.js";
21
21
  import {
22
22
  caps,
23
- card,
24
23
  makeColors,
25
- padEndDisplay
26
- } from "./chunk-OTN2QONN.js";
24
+ padEndDisplay,
25
+ sectionBox
26
+ } from "./chunk-M4H4VNN6.js";
27
27
 
28
28
  // src/commands/loop-summary.ts
29
29
  function gateAuto(rec) {
@@ -142,7 +142,7 @@ function renderLoopSummary(summary, c) {
142
142
  return ln;
143
143
  });
144
144
  const title = summary.workitem ? `\uC791\uC5C5 \uC644\uB8CC \uC694\uC57D \xB7 ${summary.workitem}` : "\uC791\uC5C5 \uC644\uB8CC \uC694\uC57D";
145
- return card(title, styled, c);
145
+ return sectionBox(title, styled, c);
146
146
  }
147
147
  function summaryToJson(summary) {
148
148
  if (!summary.hasRecords) {
@@ -248,7 +248,7 @@ function renderAggregateLoopSummary(agg, c) {
248
248
  }
249
249
  return ln;
250
250
  });
251
- return card(`\uC804\uCCB4 \uC9D1\uACC4 \xB7 \uC6CC\uD06C\uC544\uC774\uD15C ${agg.count}\uAC1C`, styled, c);
251
+ return sectionBox(`\uC804\uCCB4 \uC9D1\uACC4 \xB7 \uC6CC\uD06C\uC544\uC774\uD15C ${agg.count}\uAC1C`, styled, c);
252
252
  }
253
253
  function resolveBatchWorkitems(opts, generations) {
254
254
  if (opts.workitems && opts.workitems.length > 0) {
@@ -8,10 +8,10 @@ import {
8
8
  renderMetrics,
9
9
  renderMetricsCaveat,
10
10
  runMetrics
11
- } from "./chunk-WRNCUSNU.js";
12
- import "./chunk-5TFILHLH.js";
13
- import "./chunk-ELQ4VANN.js";
14
- import "./chunk-OTN2QONN.js";
11
+ } from "./chunk-OSKS2YRU.js";
12
+ import "./chunk-CLWQEWEG.js";
13
+ import "./chunk-PIOV3MQT.js";
14
+ import "./chunk-M4H4VNN6.js";
15
15
  export {
16
16
  computeDurationMs,
17
17
  experimentKey,
@@ -29,11 +29,11 @@ import {
29
29
  runRecords,
30
30
  selectMonthFiles,
31
31
  shouldDefer
32
- } from "./chunk-6MG6CQBD.js";
33
- import "./chunk-SBX6LOQE.js";
34
- import "./chunk-5TFILHLH.js";
35
- import "./chunk-ELQ4VANN.js";
36
- import "./chunk-OTN2QONN.js";
32
+ } from "./chunk-JXFQHNHV.js";
33
+ import "./chunk-UB4RLTLJ.js";
34
+ import "./chunk-CLWQEWEG.js";
35
+ import "./chunk-PIOV3MQT.js";
36
+ import "./chunk-M4H4VNN6.js";
37
37
  export {
38
38
  AWL_FEEDBACK_AREAS,
39
39
  AWL_FEEDBACK_SEVERITIES,
@@ -1,30 +1,30 @@
1
1
  import {
2
2
  runVerifyChecks
3
- } from "./chunk-FBRW7KKY.js";
4
- import "./chunk-ZYXKMNHC.js";
5
- import "./chunk-7KIVLJG3.js";
6
- import "./chunk-57EWVAZO.js";
7
- import "./chunk-JQN653ZS.js";
3
+ } from "./chunk-MLD2GOVM.js";
4
+ import "./chunk-KJG2ULS4.js";
5
+ import "./chunk-J7EKKHVW.js";
6
+ import "./chunk-DGPZEEFJ.js";
7
+ import "./chunk-MCNUMMKK.js";
8
8
  import {
9
9
  filterRules,
10
10
  loadRules
11
- } from "./chunk-MJT6UANJ.js";
12
- import "./chunk-QLUBNGHR.js";
13
- import "./chunk-WRNCUSNU.js";
14
- import "./chunk-6MG6CQBD.js";
11
+ } from "./chunk-KNBSZQGN.js";
12
+ import "./chunk-DR7OZZ4N.js";
13
+ import "./chunk-OSKS2YRU.js";
14
+ import "./chunk-JXFQHNHV.js";
15
15
  import {
16
16
  loadState
17
- } from "./chunk-SBX6LOQE.js";
17
+ } from "./chunk-UB4RLTLJ.js";
18
18
  import {
19
19
  requireConfig,
20
20
  run
21
- } from "./chunk-5TFILHLH.js";
22
- import "./chunk-ELQ4VANN.js";
21
+ } from "./chunk-CLWQEWEG.js";
22
+ import "./chunk-PIOV3MQT.js";
23
23
  import {
24
24
  caps,
25
- card,
26
- makeColors
27
- } from "./chunk-OTN2QONN.js";
25
+ makeColors,
26
+ sectionBox
27
+ } from "./chunk-M4H4VNN6.js";
28
28
 
29
29
  // src/commands/review.ts
30
30
  import crypto from "crypto";
@@ -96,7 +96,7 @@ function renderReview(bundle, range, c) {
96
96
  `\uD310\uC815\uC744 \uBC1B\uC73C\uBA74 awl record review --json '{"reviewId":"${bundle.reviewId}",...}' \uB85C \uAE30\uB85D\uD558\uC138\uC694.`
97
97
  )
98
98
  );
99
- return card(`\uB9AC\uBDF0 \uC790\uB8CC \xB7 ${range}`, out, c);
99
+ return sectionBox(`\uB9AC\uBDF0 \uC790\uB8CC \xB7 ${range}`, out, c);
100
100
  }
101
101
  async function runReview(range, opts) {
102
102
  const { projectRoot, config } = requireConfig();
@@ -10,14 +10,14 @@ import {
10
10
  runRulesPromote,
11
11
  suggestLinter,
12
12
  validatePromoteOpts
13
- } from "./chunk-MJT6UANJ.js";
14
- import "./chunk-QLUBNGHR.js";
15
- import "./chunk-WRNCUSNU.js";
16
- import "./chunk-6MG6CQBD.js";
17
- import "./chunk-SBX6LOQE.js";
18
- import "./chunk-5TFILHLH.js";
19
- import "./chunk-ELQ4VANN.js";
20
- import "./chunk-OTN2QONN.js";
13
+ } from "./chunk-KNBSZQGN.js";
14
+ import "./chunk-DR7OZZ4N.js";
15
+ import "./chunk-OSKS2YRU.js";
16
+ import "./chunk-JXFQHNHV.js";
17
+ import "./chunk-UB4RLTLJ.js";
18
+ import "./chunk-CLWQEWEG.js";
19
+ import "./chunk-PIOV3MQT.js";
20
+ import "./chunk-M4H4VNN6.js";
21
21
  export {
22
22
  RULE_LOAD_LIMIT,
23
23
  activeRulesDir,
@@ -14,10 +14,10 @@ import {
14
14
  stateLockFile,
15
15
  statePath,
16
16
  writeState
17
- } from "./chunk-SBX6LOQE.js";
18
- import "./chunk-5TFILHLH.js";
19
- import "./chunk-ELQ4VANN.js";
20
- import "./chunk-OTN2QONN.js";
17
+ } from "./chunk-UB4RLTLJ.js";
18
+ import "./chunk-CLWQEWEG.js";
19
+ import "./chunk-PIOV3MQT.js";
20
+ import "./chunk-M4H4VNN6.js";
21
21
  export {
22
22
  acquireStateLock,
23
23
  applyVerificationAttempts,
@@ -0,0 +1,40 @@
1
+ import {
2
+ buildStatus,
3
+ checkMissingAcCommits,
4
+ classifyAncestorExit,
5
+ collectPipelineLaneGroups,
6
+ markerBaseName,
7
+ pipelineLanes,
8
+ readDirNames,
9
+ renderPipelineGroups,
10
+ renderStatus,
11
+ runStatus
12
+ } from "./chunk-GKKWXRQA.js";
13
+ import "./chunk-H4EMS47F.js";
14
+ import "./chunk-PFXDX4JF.js";
15
+ import "./chunk-D5OINC3G.js";
16
+ import "./chunk-MLD2GOVM.js";
17
+ import "./chunk-KJG2ULS4.js";
18
+ import "./chunk-J7EKKHVW.js";
19
+ import "./chunk-DGPZEEFJ.js";
20
+ import "./chunk-MCNUMMKK.js";
21
+ import "./chunk-KNBSZQGN.js";
22
+ import "./chunk-DR7OZZ4N.js";
23
+ import "./chunk-OSKS2YRU.js";
24
+ import "./chunk-JXFQHNHV.js";
25
+ import "./chunk-UB4RLTLJ.js";
26
+ import "./chunk-CLWQEWEG.js";
27
+ import "./chunk-PIOV3MQT.js";
28
+ import "./chunk-M4H4VNN6.js";
29
+ export {
30
+ buildStatus,
31
+ checkMissingAcCommits,
32
+ classifyAncestorExit,
33
+ collectPipelineLaneGroups,
34
+ markerBaseName,
35
+ pipelineLanes,
36
+ readDirNames,
37
+ renderPipelineGroups,
38
+ renderStatus,
39
+ runStatus
40
+ };
@@ -4,31 +4,30 @@ import {
4
4
  laneBranchMap,
5
5
  unmergedCommitCount,
6
6
  worktreeUntracked
7
- } from "./chunk-4MWV4RBI.js";
7
+ } from "./chunk-H4EMS47F.js";
8
8
  import {
9
9
  removeGitWorktree,
10
10
  worktreeDirtyTracked
11
- } from "./chunk-F7Z3S5LD.js";
11
+ } from "./chunk-PFXDX4JF.js";
12
12
  import "./chunk-D5OINC3G.js";
13
- import "./chunk-FBRW7KKY.js";
14
- import "./chunk-ZYXKMNHC.js";
15
- import "./chunk-7KIVLJG3.js";
16
- import "./chunk-57EWVAZO.js";
17
- import "./chunk-JQN653ZS.js";
18
- import "./chunk-MJT6UANJ.js";
19
- import "./chunk-QLUBNGHR.js";
20
- import "./chunk-WRNCUSNU.js";
21
- import "./chunk-6MG6CQBD.js";
22
- import "./chunk-SBX6LOQE.js";
13
+ import "./chunk-MLD2GOVM.js";
14
+ import "./chunk-KJG2ULS4.js";
15
+ import "./chunk-J7EKKHVW.js";
16
+ import "./chunk-DGPZEEFJ.js";
17
+ import "./chunk-MCNUMMKK.js";
18
+ import "./chunk-KNBSZQGN.js";
19
+ import "./chunk-DR7OZZ4N.js";
20
+ import "./chunk-OSKS2YRU.js";
21
+ import "./chunk-JXFQHNHV.js";
22
+ import "./chunk-UB4RLTLJ.js";
23
23
  import {
24
24
  resolveProjectRoot
25
- } from "./chunk-5TFILHLH.js";
25
+ } from "./chunk-CLWQEWEG.js";
26
26
  import {
27
27
  packageEngineDir
28
- } from "./chunk-ELQ4VANN.js";
28
+ } from "./chunk-PIOV3MQT.js";
29
29
  import {
30
30
  caps,
31
- card,
32
31
  engineDir,
33
32
  globalRoot,
34
33
  gotchasDir,
@@ -39,9 +38,10 @@ import {
39
38
  projectsFile,
40
39
  recordsDir,
41
40
  rulesDir,
41
+ sectionBox,
42
42
  signal,
43
43
  templatesDir
44
- } from "./chunk-OTN2QONN.js";
44
+ } from "./chunk-M4H4VNN6.js";
45
45
 
46
46
  // src/commands/uninstall.ts
47
47
  import fs from "fs";
@@ -401,7 +401,7 @@ function renderPlan(scope, project, lanes, global, otherProjects, lockStatuses,
401
401
  "npm \uD328\uD0A4\uC9C0 \uC790\uCCB4\uB294 \uC774 \uBA85\uB839\uC73C\uB85C \uC9C0\uC6B0\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uD544\uC694\uD558\uBA74 npm uninstall -g agent-work-loop \uB97C \uC9C1\uC811 \uC2E4\uD589\uD558\uC138\uC694."
402
402
  )
403
403
  );
404
- return card("awl uninstall \u2014 \uB4DC\uB77C\uC774\uB7F0(dry run)", lines, c, 40);
404
+ return sectionBox("awl uninstall \u2014 \uB4DC\uB77C\uC774\uB7F0(dry run)", lines, c, 40);
405
405
  }
406
406
  async function runUninstall(opts) {
407
407
  const root = requireRoot();
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  packageEngineDir
3
- } from "./chunk-ELQ4VANN.js";
3
+ } from "./chunk-PIOV3MQT.js";
4
4
  import {
5
5
  caps,
6
- card,
7
6
  engineDir,
8
7
  installedEngineVersion,
9
8
  makeSymbols,
9
+ sectionBox,
10
10
  signal
11
- } from "./chunk-OTN2QONN.js";
11
+ } from "./chunk-M4H4VNN6.js";
12
12
 
13
13
  // src/commands/update.ts
14
14
  import fs from "fs";
@@ -28,7 +28,7 @@ function runUpdate() {
28
28
  if (!result.updated) {
29
29
  process.stdout.write(
30
30
  `
31
- ${card("\uC5D4\uC9C4 \uD15C\uD50C\uB9BF", [`${signal(c, "warn")} ~/.awl \uC5D0 \uC124\uCE58\uB41C \uC5D4\uC9C4\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.`, `${s.lastBranch} awl init \uC744 \uBA3C\uC800 \uC2E4\uD589\uD558\uC138\uC694.`], c)}
31
+ ${sectionBox("\uC5D4\uC9C4 \uD15C\uD50C\uB9BF", [`${signal(c, "warn")} ~/.awl \uC5D0 \uC124\uCE58\uB41C \uC5D4\uC9C4\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.`, `${s.lastBranch} awl init \uC744 \uBA3C\uC800 \uC2E4\uD589\uD558\uC138\uC694.`], c)}
32
32
  `
33
33
  );
34
34
  return;
@@ -36,14 +36,14 @@ ${card("\uC5D4\uC9C4 \uD15C\uD50C\uB9BF", [`${signal(c, "warn")} ~/.awl \uC5D0 \
36
36
  if (result.fromVersion === result.toVersion) {
37
37
  process.stdout.write(
38
38
  `
39
- ${card("\uC5D4\uC9C4 \uD15C\uD50C\uB9BF", [`${signal(c, "ok")} \uC774\uBBF8 \uCD5C\uC2E0\uC785\uB2C8\uB2E4.`, `${s.lastBranch} Engine Template: v${result.toVersion}`], c)}
39
+ ${sectionBox("\uC5D4\uC9C4 \uD15C\uD50C\uB9BF", [`${signal(c, "ok")} \uC774\uBBF8 \uCD5C\uC2E0\uC785\uB2C8\uB2E4.`, `${s.lastBranch} Engine Template: v${result.toVersion}`], c)}
40
40
  `
41
41
  );
42
42
  return;
43
43
  }
44
44
  process.stdout.write(
45
45
  `
46
- ${card(
46
+ ${sectionBox(
47
47
  "\uC5D4\uC9C4 \uD15C\uD50C\uB9BF",
48
48
  [
49
49
  `${signal(c, "ok")} \uC5D4\uC9C4\uC744 \uAC31\uC2E0\uD588\uC2B5\uB2C8\uB2E4.`,
@@ -11,16 +11,16 @@ import {
11
11
  substituteRelatedCmd,
12
12
  verifyBaselinePath,
13
13
  writeVerifyBaseline
14
- } from "./chunk-FBRW7KKY.js";
15
- import "./chunk-ZYXKMNHC.js";
16
- import "./chunk-7KIVLJG3.js";
17
- import "./chunk-57EWVAZO.js";
18
- import "./chunk-JQN653ZS.js";
19
- import "./chunk-6MG6CQBD.js";
20
- import "./chunk-SBX6LOQE.js";
21
- import "./chunk-5TFILHLH.js";
22
- import "./chunk-ELQ4VANN.js";
23
- import "./chunk-OTN2QONN.js";
14
+ } from "./chunk-MLD2GOVM.js";
15
+ import "./chunk-KJG2ULS4.js";
16
+ import "./chunk-J7EKKHVW.js";
17
+ import "./chunk-DGPZEEFJ.js";
18
+ import "./chunk-MCNUMMKK.js";
19
+ import "./chunk-JXFQHNHV.js";
20
+ import "./chunk-UB4RLTLJ.js";
21
+ import "./chunk-CLWQEWEG.js";
22
+ import "./chunk-PIOV3MQT.js";
23
+ import "./chunk-M4H4VNN6.js";
24
24
  export {
25
25
  buildVerifyBaseline,
26
26
  compareSinceBaseline,
@@ -0,0 +1,14 @@
1
+ import {
2
+ gatherVersionInputs,
3
+ renderVersionCheck,
4
+ runVersionCheck
5
+ } from "./chunk-DGPZEEFJ.js";
6
+ import "./chunk-MCNUMMKK.js";
7
+ import "./chunk-CLWQEWEG.js";
8
+ import "./chunk-PIOV3MQT.js";
9
+ import "./chunk-M4H4VNN6.js";
10
+ export {
11
+ gatherVersionInputs,
12
+ renderVersionCheck,
13
+ runVersionCheck
14
+ };
@@ -15,21 +15,21 @@ import {
15
15
  summarizeWorkitems,
16
16
  withCostAtStart,
17
17
  worktreeDirtyTracked
18
- } from "./chunk-F7Z3S5LD.js";
18
+ } from "./chunk-PFXDX4JF.js";
19
19
  import "./chunk-D5OINC3G.js";
20
- import "./chunk-FBRW7KKY.js";
21
- import "./chunk-ZYXKMNHC.js";
22
- import "./chunk-7KIVLJG3.js";
23
- import "./chunk-57EWVAZO.js";
24
- import "./chunk-JQN653ZS.js";
25
- import "./chunk-MJT6UANJ.js";
26
- import "./chunk-QLUBNGHR.js";
27
- import "./chunk-WRNCUSNU.js";
28
- import "./chunk-6MG6CQBD.js";
29
- import "./chunk-SBX6LOQE.js";
30
- import "./chunk-5TFILHLH.js";
31
- import "./chunk-ELQ4VANN.js";
32
- import "./chunk-OTN2QONN.js";
20
+ import "./chunk-MLD2GOVM.js";
21
+ import "./chunk-KJG2ULS4.js";
22
+ import "./chunk-J7EKKHVW.js";
23
+ import "./chunk-DGPZEEFJ.js";
24
+ import "./chunk-MCNUMMKK.js";
25
+ import "./chunk-KNBSZQGN.js";
26
+ import "./chunk-DR7OZZ4N.js";
27
+ import "./chunk-OSKS2YRU.js";
28
+ import "./chunk-JXFQHNHV.js";
29
+ import "./chunk-UB4RLTLJ.js";
30
+ import "./chunk-CLWQEWEG.js";
31
+ import "./chunk-PIOV3MQT.js";
32
+ import "./chunk-M4H4VNN6.js";
33
33
  export {
34
34
  abandonWorkitem,
35
35
  createWorkitem,
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  name: awl-loop
3
- description: 목표를 완료 조건으로 번역하고, 게이트에서 도구를 호출해 멈추고, 자율 루프로 구현하며, 같은 실패를 두 번 하지 않게 기록한다. 트리거 — "/awl-loop", "이 기능 구현하자", "다음 기능 가자", 완료 조건 없는 목표 서술문이 도착했을 때. 다음에는 발동하지 않는다 — 단순 질문 답변, 완료 조건이 이미 정해진 한 줄 수정, awl 자체 명령 실행만 요청.
3
+ description: |
4
+ "/awl-loop 목표" — 목표를 완료 조건으로 번역, 게이트 승인 후 자율 루프로 구현·기록.
5
+ 트리거: 완료조건 없는 목표 서술문("이 기능 구현하자" 등) · 미발동: 단순 질문·한줄수정·awl 명령 실행.
4
6
  ---
5
7
 
6
8
  # awl-loop
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: awl-pipeline
3
- description: 오케스트레이터 세션(mode A). `/awl-pipeline <lane> <mode>` 하나가 plan 역할로 진입하며 exec·review를 백그라운드 LLM CLI 에이전트로 스폰해 한 레인의 파이프라인을 무인으로 돌린다. 사람은 목표만 던진다. 트리거 — "/awl-pipeline". 발동 안 함 — 단일 역할 세션(awl-pipeline-plan/exec/review 직접 기동), awl 명령 실행만, 일반 질문.
3
+ description: |
4
+ "/awl-pipeline <lane> <mode>" — lane 임의명(생략 시 자동 레인), mode --gh/--gm/--gl
5
+ (gate-high/medium/low 축약, 낮을수록 자율). exec·review 스폰해 무인 진행.
6
+ 트리거: "/awl-pipeline" · 미발동: 단일 역할 세션 직접 기동, awl 명령 실행만.
4
7
  ---
5
8
 
6
9
  # awl-pipeline — 오케스트레이터 세션 (mode A: 던지면 돈다)
@@ -31,6 +34,7 @@ awl은 스폰하지 않는다 — 스킬 설치와 records 데이터만 awl 몫
31
34
  cwd가 **이미 `.awl-worktrees/*` 안**(어떤 레인의 워크트리)이면 자동 레인을 만들지 말고 그 cwd를 그대로 레인으로 쓴다. 레인 워크트리 안에서 또 레인을 파면 `.awl-worktrees`가 중첩돼 회수가 꼬인다. 이 가드는 "인자 없음"·"mode-only"에만 건다 — 명시적 `<name>`·`.`은 사람이 정한 것이라 그대로 따른다.
32
35
 
33
36
  ## 부트스트랩 (진입 시 1회)
37
+ - `awl version-check --json`을 호출한다(awl-loop와 같은 이유 — 옛날 스킬과 새 CLI가 섞이면 예측 못 할 동작이 난다). 불일치(`ok:false`)가 있으면 각 `hint`를 사람에게 보여주고 계속할지 묻는다(강제 차단은 아니다). `updateAvailable`이 있으면 `mismatches`와 다르게 취급한다 — "설치가 깨졌나"가 아니라 "npm에 새 배포가 나왔나"이므로 정보로만 한 줄 보여주고 계속할지 묻지 않는다. 이 체크는 사이클마다가 아니라 파이프라인 세션 진입 시 1회다.
34
38
  - 위 "인자"에서 정한 레인 워크트리가 준비됐는지 `awl lane ls`로 확인한다. 이름 레인(`<name>`)인데 없으면 `awl lane new <name>`으로 만든다. `.`(cwd)와 자동 레인은 워크트리가 이미 정해졌다.
35
39
  - 그 워크트리에 `.tasks/{plan,exec,review}`·`.tasks/README.md`·워처가 있는지 본다(레인 스킬 설치가 부트스트랩한다). 없으면 plan 역할 부트스트랩으로 만든다.
36
40
  - 대상 레인의 `.tasks/`가 gitignore인지 확인한다.
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: awl-pipeline-exec
3
- description: exec 세션 기본 프롬프트. cwd `.tasks/plan`의 신규 일감과 `.tasks/review`의 피드백을 이벤트 워처로 감지해 무인 자율 구현한다. 구현 코어는 반드시 /awl-loop(게이트는 자율 승인). 핸드오프를 `.tasks/exec/<name>.md`에 남긴다. 트리거 — "/awl-pipeline-exec". 발동 안 함 — 일감 작성(plan 몫), 검증(review 몫).
3
+ description: |
4
+ "/awl-pipeline-exec" — .tasks/plan 신규 일감·.tasks/review 피드백을 워처로 감지해
5
+ /awl-loop(게이트 자율승인)로 무인 구현, .tasks/exec/<name>.md에 핸드오프.
6
+ 미발동: 일감 작성(plan 몫)·검증(review 몫).
4
7
  ---
5
8
 
6
9
  # awl-pipeline-exec — exec 세션 (무인 자율 구현)
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: awl-pipeline-plan
3
- description: plan 세션 기본 프롬프트. 사람이 준 목표를 cwd `.tasks/plan/<name>.md` 일감 문서로 구조화한다. exec 세션이 /awl-loop로 자율 구현할 수 있게 완료 조건·범위·제외·검증 힌트를 명시한다. 트리거 — "/awl-pipeline-plan". 발동 안 함 — 직접 구현(exec 몫), 검증(review 몫), 일반 질문.
3
+ description: |
4
+ "/awl-pipeline-plan" — 사람 목표를 .tasks/plan/<name>.md 일감 문서(완료조건·범위·
5
+ 검증힌트)로 구조화, exec가 /awl-loop로 구현할 수 있게 한다.
6
+ 미발동: 직접 구현(exec 몫)·검증(review 몫)·일반 질문.
4
7
  ---
5
8
 
6
9
  # awl-pipeline-plan — plan 세션 (사람 주도 일감 작성)