agent-work-loop 0.6.44 → 0.6.46
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.
- package/README.md +3 -3
- package/dist/{brief-I2EQVY3F.js → brief-SGMFXOY2.js} +3 -3
- package/dist/{changelog-UBIZQHQO.js → changelog-VNJ4EQ74.js} +3 -3
- package/dist/{chunk-2FQ5HCDI.js → chunk-AGFQC2UO.js} +7 -7
- package/dist/{chunk-L4VWHK4D.js → chunk-DA27NBCS.js} +5 -5
- package/dist/{chunk-236TTTK3.js → chunk-EHJYX57P.js} +1 -1
- package/dist/{chunk-4BUPV5VU.js → chunk-FK3Q7UY2.js} +2 -2
- package/dist/{chunk-GYXIREXZ.js → chunk-IVEV5L7P.js} +1 -1
- package/dist/{chunk-SNWJWX5K.js → chunk-MLTY3EE6.js} +60 -1
- package/dist/{chunk-3LPCP55B.js → chunk-PUINOFOR.js} +3 -3
- package/dist/{chunk-LBZNBCAY.js → chunk-SSSOO2GH.js} +4 -4
- package/dist/{chunk-WOH6WML7.js → chunk-VE2GVNNS.js} +1 -1
- package/dist/{chunk-K2JV27JR.js → chunk-VVZOIFL4.js} +1 -1
- package/dist/{chunk-O7PUNJVM.js → chunk-WWZIKKHP.js} +4 -4
- package/dist/{chunk-3N3QH4PK.js → chunk-XWMS6Z5E.js} +2 -2
- package/dist/{chunk-DNDODLP2.js → chunk-ZEX5ZF6C.js} +1 -1
- package/dist/{chunk-SKJZSRVR.js → chunk-ZRKOZQKP.js} +4 -4
- package/dist/cli.js +123 -46
- package/dist/{commit-I5ULIUHW.js → commit-GPQATPEA.js} +4 -4
- package/dist/{config-6VD46H24.js → config-QTEKLFZP.js} +1 -1
- package/dist/{doctor-QQLQOP3Y.js → doctor-JNUZJC6Z.js} +6 -6
- package/dist/{evolve-MXGX33GB.js → evolve-N3S32P5I.js} +5 -5
- package/dist/{feedback-K3P6667T.js → feedback-log-UCNJ2GVT.js} +9 -9
- package/dist/{gotchas-HF5Q2MOA.js → gotchas-PDG2ZZFQ.js} +5 -5
- package/dist/{hold-recheck-CBSGGRBM.js → hold-recheck-UNAILFN5.js} +4 -4
- package/dist/{lane-BJ2NJYAH.js → lane-ETMPPVXP.js} +13 -13
- package/dist/{loop-summary-RZQBTKVY.js → loop-summary-CODZMRUY.js} +4 -4
- package/dist/{metrics-6SZQAG3C.js → metrics-ZR7BPATB.js} +2 -2
- package/dist/{record-UU4WPT2Z.js → record-TSB22DIO.js} +3 -3
- package/dist/{remove-UOAMHEUC.js → remove-VJ7VBKTZ.js} +13 -13
- package/dist/{review-DXSGXZLX.js → review-CGALGS5X.js} +11 -11
- package/dist/{rules-QDAC6BUX.js → rules-QLUXNSCN.js} +6 -6
- package/dist/{state-DZC7JVEK.js → state-6IIH7SW2.js} +2 -2
- package/dist/{status-ZZEF4NYL.js → status-2LPWVCHT.js} +4 -4
- package/dist/{verify-LOTTWOHB.js → verify-7NQ3DOFY.js} +8 -8
- package/dist/{version-check-SILVRBMJ.js → version-check-5BX3SO7G.js} +3 -3
- package/dist/{work-RCV5H7TL.js → work-3YHL3P6U.js} +12 -12
- package/engine/skills/claude/awl-loop/reference.md +1 -1
- package/engine/skills/claude/awl-pipeline/SKILL.md +1 -1
- package/engine/templates/block-publish.mjs +20 -2
- package/engine/templates/pre-push.sample +8 -2
- package/engine/version.json +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
computeUpdateAvailable,
|
|
4
4
|
readCachedLatestVersion,
|
|
5
5
|
version
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZEX5ZF6C.js";
|
|
7
7
|
import {
|
|
8
8
|
caps,
|
|
9
9
|
engineDir,
|
|
@@ -26,19 +26,25 @@ var BANNER = `
|
|
|
26
26
|
\uD310\uB2E8\uC740 Claude Code\uB098 Codex\uAC00 \uD558\uACE0,
|
|
27
27
|
awl\uC740 \uD30C\uC77C\uACFC \uC0C1\uD0DC\uB9CC \uAD00\uB9AC\uD569\uB2C8\uB2E4.`;
|
|
28
28
|
var GETTING_STARTED = [
|
|
29
|
-
{ cmd: "awl init", desc: "\
|
|
30
|
-
{ cmd: "awl
|
|
31
|
-
{
|
|
29
|
+
{ label: "1", cmd: "awl init", desc: "\uC791\uC5C5 \uC911\uC778 \uD504\uB85C\uC81D\uD2B8\uC5D0 awl \uD658\uACBD\uC744 \uC124\uC815\uD569\uB2C8\uB2E4." },
|
|
30
|
+
{ label: "2-1", cmd: "/awl-loop <\uBAA9\uD45C>", desc: "\uBAA9\uD45C\uB97C \uC644\uC218\uD560 \uB54C\uAE4C\uC9C0 \uB2E8\uC77C \uB8E8\uD504\uB97C \uC2E4\uD589\uD569\uB2C8\uB2E4." },
|
|
31
|
+
{
|
|
32
|
+
label: "2-2",
|
|
33
|
+
cmd: "/awl-pipeline <lane\uBA85> <mode>",
|
|
34
|
+
desc: "\uB808\uC778 \uB2E8\uC704\uB85C exec\xB7review \uC138\uC158\uC744 \uBB34\uC778 \uC2E4\uD589\uD569\uB2C8\uB2E4."
|
|
35
|
+
}
|
|
32
36
|
];
|
|
33
37
|
function padVisible(s, width) {
|
|
34
38
|
return s + " ".repeat(Math.max(0, width - visibleWidth(s)));
|
|
35
39
|
}
|
|
36
40
|
function renderGettingStartedCard(c) {
|
|
37
41
|
const t = makeTokens(c);
|
|
42
|
+
const prefixWidth = Math.max(...GETTING_STARTED.map((g) => `${g.label}.`.length));
|
|
38
43
|
const cmdWidth = Math.max(...GETTING_STARTED.map((g) => visibleWidth(g.cmd)));
|
|
39
44
|
const lines = GETTING_STARTED.map(
|
|
40
|
-
(g
|
|
45
|
+
(g) => `${`${g.label}.`.padEnd(prefixWidth)} ${t.accent(padVisible(g.cmd, cmdWidth))} ${g.desc}`
|
|
41
46
|
);
|
|
47
|
+
lines.push(t.muted("*2-1 \uD639\uC740 2-2\uB97C \uC2E4\uD589\uD558\uBA74 \uBC14\uB85C \uC2DC\uC791\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."));
|
|
42
48
|
return sectionBox("\uC2DC\uC791\uD558\uAE30", lines, c);
|
|
43
49
|
}
|
|
44
50
|
function renderExamplesCard(c) {
|
|
@@ -109,7 +115,7 @@ function renderExamplesCard(c) {
|
|
|
109
115
|
examples: [
|
|
110
116
|
{ cmd: "awl brief --today", note: "\uC624\uB298 \uD558\uB8E8 \uC694\uC57D" },
|
|
111
117
|
{ cmd: "awl metrics --compare", note: "\uC138\uB300 \uAC04 \uBE44\uAD50" },
|
|
112
|
-
{ cmd: "awl feedback --severity high", note: "awl \uC790\uCCB4\uC5D0 \uB300\uD55C \uD53C\uB4DC\uBC31, \uC2EC\uAC01\uB3C4 \uD544\uD130" },
|
|
118
|
+
{ cmd: "awl feedback-log --severity high", note: "awl \uC790\uCCB4\uC5D0 \uB300\uD55C \uD53C\uB4DC\uBC31, \uC2EC\uAC01\uB3C4 \uD544\uD130" },
|
|
113
119
|
{ cmd: "awl changelog --workitem WI-01", note: "\uADF8 \uC6CC\uD06C\uC544\uC774\uD15C\uC758 \uBCC0\uACBD \uC774\uB825" }
|
|
114
120
|
]
|
|
115
121
|
}
|
|
@@ -127,6 +133,65 @@ function renderExamplesCard(c) {
|
|
|
127
133
|
});
|
|
128
134
|
return sectionBox("\uC608\uC2DC", lines, c);
|
|
129
135
|
}
|
|
136
|
+
function renderSkillsCard(c) {
|
|
137
|
+
const t = makeTokens(c);
|
|
138
|
+
const lines = [
|
|
139
|
+
t.muted("\uBC18\uB4DC\uC2DC Claude Code \uAC19\uC740 LLM \uC548\uC5D0\uC11C \uC2E4\uD589\uD558\uC138\uC694 \u2014 awl \uD63C\uC790\uC11C\uB294 \uD310\uB2E8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."),
|
|
140
|
+
"",
|
|
141
|
+
t.muted("/awl-loop <\uBAA9\uD45C>"),
|
|
142
|
+
" \uBAA9\uD45C\uB97C \uC644\uB8CC \uC870\uAC74\uC73C\uB85C \uBC88\uC5ED\uD558\uACE0, \uAC8C\uC774\uD2B8 \uC2B9\uC778 \uD6C4 \uD55C \uC138\uC158\uC774 \uCC98\uC74C\uBD80\uD130 \uB05D\uAE4C\uC9C0 \uC9C1\uC811",
|
|
143
|
+
" \uC790\uC728 \uB8E8\uD504\uB85C \uAD6C\uD604\uD569\uB2C8\uB2E4. \uC6CC\uD06C\uC544\uC774\uD15C \uD558\uB098\uB97C \uD55C \uC138\uC158\uC774 \uAD00\uD1B5\uD569\uB2C8\uB2E4.",
|
|
144
|
+
"",
|
|
145
|
+
t.muted("/awl-pipeline <lane\uBA85> <mode>"),
|
|
146
|
+
" \uB808\uC778(lane) \uB2E8\uC704\uB85C \uBB34\uC778 \uD30C\uC774\uD504\uB77C\uC778\uC744 \uB3CC\uB9BD\uB2C8\uB2E4. \uC624\uCF00\uC2A4\uD2B8\uB808\uC774\uD130 \uC138\uC158\uC740 \uBAA9\uD45C\uB97C",
|
|
147
|
+
" \uC77C\uAC10\uC73C\uB85C \uC62E\uACA8 \uB808\uC778 \uD050\uC5D0 \uB123\uAE30\uB9CC \uD558\uACE0, exec\xB7review\uB294 \uAC01\uAC01 \uBCC4\uB3C4 \uBC31\uADF8\uB77C\uC6B4\uB4DC",
|
|
148
|
+
" \uC138\uC158\uC73C\uB85C \uC2A4\uD3F0\uB3FC \uADF8 \uB808\uC778 \uC548\uC5D0\uC11C \uAD6C\uD604\xB7\uAC80\uC99D\uC744 \uC9C4\uD589\uD569\uB2C8\uB2E4.",
|
|
149
|
+
"",
|
|
150
|
+
t.muted("\uB808\uC778(lane)\uC774\uB780"),
|
|
151
|
+
" .awl-worktrees/<lane\uBA85> \uACA9\uB9AC \uC6CC\uD06C\uD2B8\uB9AC \uD558\uB098\uC5D0 \uB300\uC751\uD558\uB294 \uC791\uC5C5 \uB2E8\uC704\uC785\uB2C8\uB2E4.",
|
|
152
|
+
" \uB808\uC778\uBA85\uC744 \uC0DD\uB7B5\uD558\uBA74 unknown-lane-<N>\uC774 \uC790\uB3D9 \uC0DD\uC131\uB3FC cwd\uC640 \uC11E\uC774\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",
|
|
153
|
+
" (\uB2E8, cwd\uAC00 \uC774\uBBF8 \uB2E4\uB978 \uB808\uC778 \uC6CC\uD06C\uD2B8\uB9AC \uC548\uC774\uBA74 \uADF8 \uB808\uC778\uC744 \uADF8\uB300\uB85C \uC501\uB2C8\uB2E4).",
|
|
154
|
+
"",
|
|
155
|
+
t.muted("\uD30C\uC774\uD504\uB77C\uC778 \uAD6C\uC870 (\uAC04\uB7B5)"),
|
|
156
|
+
" plan(\uC624\uCF00\uC2A4\uD2B8\uB808\uC774\uD130) \u2192 exec\xB7review \uC2A4\uD3F0(\uB808\uC778\uBCC4) \u2192 \uC218\uC9D1\xB7\uAC8C\uC774\uD2B8 \u2192 \uC0C1\uD0DC \uD45C\uC2DC.",
|
|
157
|
+
" exec\xB7review\uAC00 \uD544\uC694\uC2DC \uC2A4\uD3F0\uD558\uB294 \uC870\uC0AC\xB7\uAC80\uC99D\uC6A9 \uC11C\uBE0C\uC5D0\uC774\uC804\uD2B8\uB294 \uB354 \uC7AC\uC704\uC784\uD558\uC9C0",
|
|
158
|
+
" \uC54A\uACE0, \uC2A4\uD3F0\uB41C exec\xB7review \uC790\uC2E0\uB3C4 \uC2A4\uC2A4\uB85C \uC7AC\uAC1C\uD558\uC9C0 \uBABB\uD574 \uC624\uCF00\uC2A4\uD2B8\uB808\uC774\uD130\uAC00",
|
|
159
|
+
" \uC720\uD734 \uC2E0\uD638\uB97C \uBC1B\uC744 \uB54C\uB9C8\uB2E4 \uB2E4\uC2DC \uAE68\uC6C1\uB2C8\uB2E4.",
|
|
160
|
+
"",
|
|
161
|
+
t.muted("<mode> \u2014 \uAC8C\uC774\uD2B8 \uBC00\uB3C4 (\uB192\uC744\uC218\uB85D \uC0AC\uB78C \uAC1C\uC785\uC774 \uB9CE\uC2B5\uB2C8\uB2E4, \uAE30\uBCF8\uC740 gate-high)")
|
|
162
|
+
];
|
|
163
|
+
const modes = [
|
|
164
|
+
{ flag: "--gh, --gate-high", desc: "(\uAE30\uBCF8\uAC12) \uAC8C\uC774\uD2B8\uB9C8\uB2E4 \uC0AC\uB78C\uC5D0\uAC8C \uC2B9\uC778\uBC1B\uC2B5\uB2C8\uB2E4 \u2014 \uAC1C\uC785 \uCD5C\uB300" },
|
|
165
|
+
{
|
|
166
|
+
flag: "--gm, --gate-medium",
|
|
167
|
+
desc: "\uAC8C\uC774\uD2B8\uB97C \uC790\uB3D9 \uC2B9\uC778\uD558\uB418 \uC2EC\uAC01 \uD56D\uBAA9\uB9CC \uBAA8\uC544 \uBCF4\uACE0\uD569\uB2C8\uB2E4 \u2014 \uAC1C\uC785 \uC911\uAC04"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
flag: "--gl, --gate-low",
|
|
171
|
+
desc: "\uAC8C\uC774\uD2B8\uB97C \uC804\uBD80 \uC790\uB3D9 \uC2B9\uC778\uD558\uACE0 \uB05D\uAE4C\uC9C0 \uC790\uC728\uB85C \uC9C4\uD589\uD569\uB2C8\uB2E4 \u2014 \uAC1C\uC785 \uCD5C\uC18C"
|
|
172
|
+
}
|
|
173
|
+
];
|
|
174
|
+
const flagWidth = Math.max(...modes.map((m) => visibleWidth(m.flag)));
|
|
175
|
+
for (const m of modes) {
|
|
176
|
+
lines.push(` ${t.accent(padVisible(m.flag, flagWidth))} ${m.desc}`);
|
|
177
|
+
}
|
|
178
|
+
return sectionBox("\uC2A4\uD0AC", lines, c);
|
|
179
|
+
}
|
|
180
|
+
function renderSkillsHelpFooter(c) {
|
|
181
|
+
const t = makeTokens(c);
|
|
182
|
+
const color = makeColors(c.color);
|
|
183
|
+
const lines = [
|
|
184
|
+
t.muted("\uBC18\uB4DC\uC2DC Claude Code \uAC19\uC740 LLM \uC548\uC5D0\uC11C \uC2E4\uD589\uD558\uC138\uC694 \u2014 awl \uD63C\uC790\uC11C\uB294 \uD310\uB2E8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."),
|
|
185
|
+
"",
|
|
186
|
+
` ${t.accent("/awl-loop <\uBAA9\uD45C>")}`,
|
|
187
|
+
" \uB2E8\uC77C \uC138\uC158\uC774 \uBAA9\uD45C \uD558\uB098\uB97C \uC644\uB8CC \uC870\uAC74 \u2192 \uAC8C\uC774\uD2B8 \u2192 \uAD6C\uD604\uAE4C\uC9C0 \uC9C1\uC811 \uAD00\uD1B5\uD569\uB2C8\uB2E4.",
|
|
188
|
+
` ${t.accent("/awl-pipeline <lane\uBA85> <mode>")}`,
|
|
189
|
+
" \uB808\uC778\uBCC4\uB85C exec\xB7review \uC138\uC158\uC744 \uC2A4\uD3F0\uD574 \uBB34\uC778 \uD30C\uC774\uD504\uB77C\uC778\uC744 \uB3CC\uB9BD\uB2C8\uB2E4.",
|
|
190
|
+
"",
|
|
191
|
+
color.dim("\uB808\uC778\xB7\uD30C\uC774\uD504\uB77C\uC778 \uAD6C\uC870\xB7<mode> \uAC8C\uC774\uD2B8 \uBC00\uB3C4(--gh/--gm/--gl)\uB294 awl --skills \uB85C \uBD05\uB2C8\uB2E4.")
|
|
192
|
+
];
|
|
193
|
+
return sectionBox("skills \uBD80\uC5F0\uC124\uBA85", lines, c);
|
|
194
|
+
}
|
|
130
195
|
var DENSE_AWL = `
|
|
131
196
|
\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557
|
|
132
197
|
\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551
|
|
@@ -154,7 +219,7 @@ function renderBanner(c = caps()) {
|
|
|
154
219
|
|
|
155
220
|
${renderGettingStartedCard(c)}
|
|
156
221
|
|
|
157
|
-
${color.dim("\uC608\uC2DC\uB294 awl --examples \uB85C \uBD05\uB2C8\uB2E4.")}`;
|
|
222
|
+
${color.dim("\uC608\uC2DC\uB294 awl --examples \uB85C, \uC2A4\uD0AC \uC124\uBA85\uC740 awl --skills \uB85C \uBD05\uB2C8\uB2E4.")}`;
|
|
158
223
|
}
|
|
159
224
|
function displayHomePath(p) {
|
|
160
225
|
const home = os.homedir();
|
|
@@ -230,7 +295,12 @@ function parseWorkitemsOption(input) {
|
|
|
230
295
|
function buildProgram() {
|
|
231
296
|
const program = new Command();
|
|
232
297
|
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()}
|
|
233
|
-
` : "").
|
|
298
|
+
` : "").addHelpText(
|
|
299
|
+
"after",
|
|
300
|
+
(ctx) => ctx.command === program ? `
|
|
301
|
+
${renderSkillsHelpFooter(caps())}
|
|
302
|
+
` : ""
|
|
303
|
+
).option("--examples", "\uC790\uC8FC \uC4F0\uB294 \uBA85\uB839 \uC608\uC2DC\uB97C \uBCF4\uC5EC\uC90D\uB2C8\uB2E4").option("--skills", "awl-loop/awl-pipeline \uC2A4\uD0AC\uC744 \uBD80\uC5F0\uC124\uBA85\uD569\uB2C8\uB2E4").showHelpAfterError();
|
|
234
304
|
program.command("init").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 Agent Work Loop \uB97C \uC124\uC815\uD569\uB2C8\uB2E4").option("--yes", "\uC9C8\uBB38 \uC5C6\uC774 \uC790\uB3D9 \uAC10\uC9C0\uB41C \uAC12\uC73C\uB85C \uC9C4\uD589\uD569\uB2C8\uB2E4 (\uBE44\uB300\uD654\uD615)").action(async (opts) => {
|
|
235
305
|
const { runInit } = await import("./init-3B4ZRGWY.js");
|
|
236
306
|
await runInit({ yes: opts.yes === true });
|
|
@@ -239,7 +309,7 @@ function buildProgram() {
|
|
|
239
309
|
"--archive",
|
|
240
310
|
"(--pipeline\uACFC \uD568\uAED8) \uC720\uC608 \uAE30\uAC04(3\uC77C) \uC9C0\uB09C \uC644\uB8CC workitem\uC744 .tasks/archive/ \uB85C \uBCF4\uAD00\uD569\uB2C8\uB2E4"
|
|
241
311
|
).action(async (opts) => {
|
|
242
|
-
const { runStatus } = await import("./status-
|
|
312
|
+
const { runStatus } = await import("./status-2LPWVCHT.js");
|
|
243
313
|
await runStatus({
|
|
244
314
|
json: opts.json === true,
|
|
245
315
|
pipeline: opts.pipeline === true,
|
|
@@ -247,15 +317,15 @@ function buildProgram() {
|
|
|
247
317
|
});
|
|
248
318
|
});
|
|
249
319
|
program.command("brief").description("KST \uC624\uB298(\uB610\uB294 --date)\uC758 \uC9C4\uD589\uBD84\uC744 \uBAA8\uC544 \uB0C5\uB2C8\uB2E4(\uC2A4\uD0AC \uC18C\uBE44\uC6A9 --json)").option("--today", "\uC624\uB298(KST) \uAE30\uC900\uC73C\uB85C \uBAA8\uC74D\uB2C8\uB2E4(\uAE30\uBCF8)").option("--date <YYYY-MM-DD>", "KST \uAE30\uC900 \uD2B9\uC815 \uB0A0\uC9DC\uB85C \uBAA8\uC74D\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
250
|
-
const { runBrief } = await import("./brief-
|
|
320
|
+
const { runBrief } = await import("./brief-SGMFXOY2.js");
|
|
251
321
|
await runBrief({ today: opts.today === true, date: opts.date, json: opts.json === true });
|
|
252
322
|
});
|
|
253
323
|
program.command("doctor").description("\uC124\uCE58\uC640 \uD658\uACBD\uC744 \uC810\uAC80\uD569\uB2C8\uB2E4 (\uC544\uBB34\uAC83\uB3C4 \uACE0\uCE58\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
254
|
-
const { runDoctor } = await import("./doctor-
|
|
324
|
+
const { runDoctor } = await import("./doctor-JNUZJC6Z.js");
|
|
255
325
|
await runDoctor({ json: opts.json === true });
|
|
256
326
|
});
|
|
257
327
|
program.command("version-check").description("\uBC84\uC804 \uBD88\uC77C\uCE58\uB97C \uAC80\uC0AC\uD569\uB2C8\uB2E4 (package/engine/\uD504\uB85C\uC81D\uD2B8/\uC2A4\uD0AC)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
258
|
-
const { runVersionCheck } = await import("./version-check-
|
|
328
|
+
const { runVersionCheck } = await import("./version-check-5BX3SO7G.js");
|
|
259
329
|
await runVersionCheck({ json: opts.json === true });
|
|
260
330
|
});
|
|
261
331
|
program.command("update").description(
|
|
@@ -269,7 +339,7 @@ function buildProgram() {
|
|
|
269
339
|
});
|
|
270
340
|
program.command("remove").description("awl \uC774 \uC190\uB304 \uD754\uC801\uC744 \uC9C0\uC6C1\uB2C8\uB2E4 (\uAE30\uBCF8\uC740 \uB4DC\uB77C\uC774\uB7F0 \u2014 --yes \uC5C6\uC774\uB294 \uC0AD\uC81C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4)").option("--yes", "\uC2E4\uC81C\uB85C \uC0AD\uC81C\uD569\uB2C8\uB2E4 (\uAE30\uBCF8\uC740 \uB4DC\uB77C\uC774\uB7F0)").option("--project", "\uC774 \uD504\uB85C\uC81D\uD2B8 \uB85C\uCEEC\uB9CC \uC815\uB9AC\uD569\uB2C8\uB2E4 (\uAE30\uBCF8\uAC12)").option("--global", "\uC804\uC5ED(~/.awl)\uB9CC \uC815\uB9AC\uD569\uB2C8\uB2E4 \u2014 \uB2E4\uB978 \uD504\uB85C\uC81D\uD2B8\uC758 \uD559\uC2B5\uB3C4 \uD568\uAED8 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4").option("--all", "\uD504\uB85C\uC81D\uD2B8 \uB85C\uCEEC + \uC804\uC5ED\uC744 \uBAA8\uB450 \uC815\uB9AC\uD569\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(
|
|
271
341
|
async (opts) => {
|
|
272
|
-
const { runRemove } = await import("./remove-
|
|
342
|
+
const { runRemove } = await import("./remove-VJ7VBKTZ.js");
|
|
273
343
|
await runRemove({
|
|
274
344
|
yes: opts.yes === true,
|
|
275
345
|
project: opts.project === true,
|
|
@@ -281,22 +351,22 @@ function buildProgram() {
|
|
|
281
351
|
);
|
|
282
352
|
const config = program.command("config").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC124\uC815\uC744 \uBD05\uB2C8\uB2E4 (TTY \uBA74 \uC218\uC815\uB3C4)");
|
|
283
353
|
config.action(async () => {
|
|
284
|
-
const { runConfig } = await import("./config-
|
|
354
|
+
const { runConfig } = await import("./config-QTEKLFZP.js");
|
|
285
355
|
await runConfig();
|
|
286
356
|
});
|
|
287
357
|
config.command("set [key] [value]").description("\uC124\uC815 \uAC12\uC744 \uBC14\uAFC9\uB2C8\uB2E4 (\uD0A4 \uC0DD\uB7B5 \uC2DC \uBAA9\uB85D, cmd \uB294 \uC2E4\uC81C\uB85C \uC2E4\uD589\uD574 \uBD05\uB2C8\uB2E4)").option("--force", "\uAC80\uC99D\uC5D0 \uC2E4\uD328\uD574\uB3C4 \uC800\uC7A5\uD569\uB2C8\uB2E4").action(
|
|
288
358
|
async (key, value, opts) => {
|
|
289
|
-
const { runConfigSet } = await import("./config-
|
|
359
|
+
const { runConfigSet } = await import("./config-QTEKLFZP.js");
|
|
290
360
|
await runConfigSet(key, value, { force: opts.force === true });
|
|
291
361
|
}
|
|
292
362
|
);
|
|
293
363
|
const work = program.command("work").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uAD00\uB9AC\uD569\uB2C8\uB2E4");
|
|
294
364
|
work.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
295
|
-
const { runWorkList } = await import("./work-
|
|
365
|
+
const { runWorkList } = await import("./work-3YHL3P6U.js");
|
|
296
366
|
runWorkList({ json: opts.json === true });
|
|
297
367
|
});
|
|
298
368
|
work.command("list").description("\uB4F1\uB85D\uB41C \uC6CC\uD06C\uC544\uC774\uD15C \uBAA9\uB85D\uACFC \uC9C4\uD589 \uC0C1\uD669\uC744 \uBD05\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
299
|
-
const { runWorkList } = await import("./work-
|
|
369
|
+
const { runWorkList } = await import("./work-3YHL3P6U.js");
|
|
300
370
|
runWorkList({ json: opts.json === true });
|
|
301
371
|
});
|
|
302
372
|
work.command("new <id> [description]").description("\uC0C8 \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uB9CC\uB4E4\uACE0 \uC804\uD658\uD569\uB2C8\uB2E4 (\uD604\uC7AC \uC6CC\uD06C\uC544\uC774\uD15C\uC740 \uBCF4\uAD00\uB429\uB2C8\uB2E4)").option("--worktree [branch]", "\uACA9\uB9AC\uB41C git worktree \uB97C \uB9CC\uB4E4\uC5B4 \uADF8 \uC548\uC5D0\uC11C \uC2DC\uC791\uD569\uB2C8\uB2E4").option("--skip-baseline", "\uAC80\uC99D \uBCA0\uC774\uC2A4\uB77C\uC778 \uCEA1\uCC98\uB97C \uAC74\uB108\uB701\uB2C8\uB2E4 (\uB290\uB9B0 \uD504\uB85C\uC81D\uD2B8\uC6A9)").option(
|
|
@@ -304,7 +374,7 @@ function buildProgram() {
|
|
|
304
374
|
"records(~/.awl)\uB97C \uC774 \uC6CC\uD06C\uC544\uC774\uD15C \uC804\uC6A9 AWL_HOME \uC73C\uB85C \uACA9\uB9AC\uD569\uB2C8\uB2E4 (\uBCD1\uB82C \uC138\uC158\uC6A9)"
|
|
305
375
|
).option("--experiment <json>", '\uC2E4\uD5D8 \uCF00\uC774\uC2A4 \uBA54\uD0C0 JSON (\uC608: {"model":"lite","mode":"loop"})').action(
|
|
306
376
|
async (id, description, opts) => {
|
|
307
|
-
const { runWorkNew } = await import("./work-
|
|
377
|
+
const { runWorkNew } = await import("./work-3YHL3P6U.js");
|
|
308
378
|
const parsedExp = parseExperimentOption(opts.experiment);
|
|
309
379
|
if (!parsedExp.ok) {
|
|
310
380
|
process.stderr.write(`
|
|
@@ -316,52 +386,52 @@ function buildProgram() {
|
|
|
316
386
|
}
|
|
317
387
|
);
|
|
318
388
|
work.command("switch <id>").description("\uB2E4\uB978 \uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uC804\uD658\uD569\uB2C8\uB2E4 (\uD604\uC7AC \uC6CC\uD06C\uC544\uC774\uD15C\uC740 \uBCF4\uAD00\uB429\uB2C8\uB2E4)").action(async (id) => {
|
|
319
|
-
const { runWorkSwitch } = await import("./work-
|
|
389
|
+
const { runWorkSwitch } = await import("./work-3YHL3P6U.js");
|
|
320
390
|
await runWorkSwitch(id);
|
|
321
391
|
});
|
|
322
392
|
work.command("abandon <id>").description("\uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uC911\uB2E8 \uCC98\uB9AC\uD569\uB2C8\uB2E4 (\uC0AD\uC81C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4, \uAE30\uB85D\uC740 \uB0A8\uC2B5\uB2C8\uB2E4)").action(async (id) => {
|
|
323
|
-
const { runWorkAbandon } = await import("./work-
|
|
393
|
+
const { runWorkAbandon } = await import("./work-3YHL3P6U.js");
|
|
324
394
|
runWorkAbandon(id);
|
|
325
395
|
});
|
|
326
396
|
work.command("done <id>").description(
|
|
327
397
|
"\uC644\uB8CC\uB41C \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uC815\uB9AC\uD569\uB2C8\uB2E4 (\uC6CC\uD06C\uD2B8\uB9AC \uC81C\uAC70 + \uC0C1\uD0DC \uC2A4\uB0C5\uC0F7 \uD68C\uC218, \uAE30\uB85D\uC740 \uB0A8\uC2B5\uB2C8\uB2E4)"
|
|
328
398
|
).option("--force", "\uC815\uB9AC\uB418\uC9C0 \uC54A\uC740 \uBCC0\uACBD\uC774 \uC788\uC5B4\uB3C4 \uC6CC\uD06C\uD2B8\uB9AC\uB97C \uC81C\uAC70\uD569\uB2C8\uB2E4").action(async (id, opts) => {
|
|
329
|
-
const { runWorkDone } = await import("./work-
|
|
399
|
+
const { runWorkDone } = await import("./work-3YHL3P6U.js");
|
|
330
400
|
await runWorkDone(id, { force: opts.force === true });
|
|
331
401
|
});
|
|
332
402
|
const lane = program.command("lane").description("\uACA9\uB9AC \uB808\uC778(worktree)\uC73C\uB85C \uD30C\uC774\uD504\uB77C\uC778\uC744 \uBCD1\uB82C \uC2E4\uD589\uD569\uB2C8\uB2E4 (\uB808\uC778 \uC0DD\uC131\xB7\uC870\uD68C\xB7\uC815\uB9AC)");
|
|
333
403
|
lane.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
334
|
-
const { runLaneList } = await import("./lane-
|
|
404
|
+
const { runLaneList } = await import("./lane-ETMPPVXP.js");
|
|
335
405
|
await runLaneList({ json: opts.json === true });
|
|
336
406
|
});
|
|
337
407
|
lane.command("new <name> [description]").description("\uACA9\uB9AC \uB808\uC778\uC744 \uB9CC\uB4ED\uB2C8\uB2E4 (worktree + \uC804\uC6A9 AWL_HOME + \uC2A4\uD0AC \uC7AC\uC124\uCE58 + \uAE30\uB3D9 \uC548\uB0B4)").action(async (name, description) => {
|
|
338
|
-
const { runLaneNew } = await import("./lane-
|
|
408
|
+
const { runLaneNew } = await import("./lane-ETMPPVXP.js");
|
|
339
409
|
await runLaneNew(name, description);
|
|
340
410
|
});
|
|
341
411
|
lane.command("ls").description("\uD604\uC874 \uB808\uC778\uC744 \uC774\uB984\xB7\uACBD\uB85C\xB7\uBE0C\uB79C\uCE58\uC640 \uD568\uAED8 \uB098\uC5F4\uD569\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
342
|
-
const { runLaneList } = await import("./lane-
|
|
412
|
+
const { runLaneList } = await import("./lane-ETMPPVXP.js");
|
|
343
413
|
await runLaneList({ json: opts.json === true });
|
|
344
414
|
});
|
|
345
415
|
lane.command("rm <name>").description("\uB808\uC778\uC758 \uC6CC\uD06C\uD2B8\uB9AC\uB97C \uD68C\uC218\uD558\uACE0 \uB514\uB809\uD1A0\uB9AC\uB97C \uC81C\uAC70\uD569\uB2C8\uB2E4").option("--force", "\uCEE4\uBC0B\uB418\uC9C0 \uC54A\uC740 \uBCC0\uACBD\uC774 \uC788\uC5B4\uB3C4 \uC81C\uAC70\uD569\uB2C8\uB2E4").action(async (name, opts) => {
|
|
346
|
-
const { runLaneRemove } = await import("./lane-
|
|
416
|
+
const { runLaneRemove } = await import("./lane-ETMPPVXP.js");
|
|
347
417
|
await runLaneRemove(name, { force: opts.force === true });
|
|
348
418
|
});
|
|
349
419
|
program.command("records").description("\uC313\uC778 \uAE30\uB85D\uC744 \uBD05\uB2C8\uB2E4").option("--type <type>", "\uD0C0\uC785\uC73C\uB85C \uAC70\uB985\uB2C8\uB2E4 (attempt, blocked \uB4F1)").option("--workitem <id>", "\uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uAC70\uB985\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
350
|
-
const { runRecords } = await import("./record-
|
|
420
|
+
const { runRecords } = await import("./record-TSB22DIO.js");
|
|
351
421
|
runRecords({ type: opts.type, workitem: opts.workitem, json: opts.json === true });
|
|
352
422
|
});
|
|
353
423
|
const rules = program.command("rules").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC801\uC6A9\uB418\uB294 \uADDC\uCE59\uC744 \uBD05\uB2C8\uB2E4").enablePositionalOptions();
|
|
354
424
|
rules.option("--scope <scope>", "\uBC94\uC704\uB85C \uAC70\uB985\uB2C8\uB2E4 (implement \uB4F1)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
355
|
-
const { runRules } = await import("./rules-
|
|
425
|
+
const { runRules } = await import("./rules-QLUXNSCN.js");
|
|
356
426
|
runRules({ scope: opts.scope, json: opts.json === true });
|
|
357
427
|
});
|
|
358
428
|
rules.command("edit").description("$EDITOR \uB85C \uADDC\uCE59 \uD30C\uC77C\uC744 \uC5FD\uB2C8\uB2E4").action(async () => {
|
|
359
|
-
const { runRules } = await import("./rules-
|
|
429
|
+
const { runRules } = await import("./rules-QLUXNSCN.js");
|
|
360
430
|
runRules({ edit: true });
|
|
361
431
|
});
|
|
362
432
|
rules.command("promote <gotchaId>").description("\uAD50\uD6C8\uC744 \uADDC\uCE59\uC73C\uB85C \uC2B9\uACA9\uD569\uB2C8\uB2E4 (applies/counter \uD544\uC218, \uC0AC\uB78C\uC774 \uC2E4\uD589)").option("--applies <cond>", "\uC801\uC6A9 \uC870\uAC74 (\uD544\uC218)").option("--counter <cond>", "\uBC18\uC99D \uC870\uAC74 (\uD544\uC218)").option("--rule-scope <scope>", "\uB85C\uB4DC \uB2E8\uACC4 (audit/criteria/implement/commit/review)").action(
|
|
363
433
|
async (gotchaId, opts) => {
|
|
364
|
-
const { runRulesPromote } = await import("./rules-
|
|
434
|
+
const { runRulesPromote } = await import("./rules-QLUXNSCN.js");
|
|
365
435
|
runRulesPromote(gotchaId, {
|
|
366
436
|
applies: opts.applies,
|
|
367
437
|
counter: opts.counter,
|
|
@@ -370,16 +440,16 @@ function buildProgram() {
|
|
|
370
440
|
}
|
|
371
441
|
);
|
|
372
442
|
program.command("gotchas").description("\uC544\uC9C1 \uADDC\uCE59\uC774 \uB418\uC9C0 \uC54A\uC740 \uD568\uC815\uC744 \uBD05\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
373
|
-
const { runGotchas } = await import("./gotchas-
|
|
443
|
+
const { runGotchas } = await import("./gotchas-PDG2ZZFQ.js");
|
|
374
444
|
runGotchas({ json: opts.json === true });
|
|
375
445
|
});
|
|
376
446
|
program.command("metrics").description("\uC6CC\uD06C\uC544\uC774\uD15C(\uC138\uB300)\uBCC4 \uD504\uB85D\uC2DC \uC9C0\uD45C \uCD94\uC138\uB97C \uBD05\uB2C8\uB2E4 (\uD1A0\uD070 \uC9C1\uC811 \uCE21\uC815 \uC544\uB2D8)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--compare", "\uC2E4\uD5D8 \uCF00\uC774\uC2A4(experiment model/mode/taskType)\uBCC4\uB85C \uC9C0\uD45C\uB97C \uBE44\uAD50\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
377
|
-
const { runMetrics } = await import("./metrics-
|
|
447
|
+
const { runMetrics } = await import("./metrics-ZR7BPATB.js");
|
|
378
448
|
runMetrics({ json: opts.json === true, compare: opts.compare === true });
|
|
379
449
|
});
|
|
380
450
|
program.command("loop-summary").description("\uB8E8\uD504/\uD30C\uC774\uD504\uB77C\uC778 \uC644\uB8CC\uB97C 4\uB80C\uC988(\uAC1C\uC785\xB7\uD488\uC9C8\xB7\uD6A8\uC728\xB7\uC0B0\uCD9C)\uB85C \uC694\uC57D\uD569\uB2C8\uB2E4").option("--workitem <id>", "\uB300\uC0C1 \uC6CC\uD06C\uC544\uC774\uD15C (\uAE30\uBCF8: \uD604\uC7AC)").option("--workitems <ids>", "\uBC30\uCE58 \uBAA8\uB4DC: \uCF64\uB9C8\uB85C \uAD6C\uBD84\uD55C \uC6CC\uD06C\uC544\uC774\uD15C \uBAA9\uB85D").option("--since <iso>", "\uBC30\uCE58 \uBAA8\uB4DC: \uC774 \uC2DC\uAC01(ISO) \uC774\uD6C4 \uC644\uB8CC\uB41C \uC6CC\uD06C\uC544\uC774\uD15C \uC804\uBD80").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(
|
|
381
451
|
async (opts) => {
|
|
382
|
-
const { runLoopSummary } = await import("./loop-summary-
|
|
452
|
+
const { runLoopSummary } = await import("./loop-summary-CODZMRUY.js");
|
|
383
453
|
runLoopSummary({
|
|
384
454
|
workitem: opts.workitem,
|
|
385
455
|
workitems: parseWorkitemsOption(opts.workitems),
|
|
@@ -388,9 +458,11 @@ function buildProgram() {
|
|
|
388
458
|
});
|
|
389
459
|
}
|
|
390
460
|
);
|
|
391
|
-
program.command("feedback").description(
|
|
392
|
-
|
|
393
|
-
|
|
461
|
+
program.command("feedback-log").description(
|
|
462
|
+
"awl \uB3C4\uAD6C \uC790\uCCB4\uC5D0 \uB0A8\uACA8\uC9C4 \uD53C\uB4DC\uBC31 \uAE30\uB85D(awl-feedback)\uC744 area \uBCC4\uB85C \uBB36\uC5B4 \uAC80\uD1A0\uD569\uB2C8\uB2E4 (\uD574\uBC95\uC740 \uC81C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4)"
|
|
463
|
+
).option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--area <area>", "area \uB85C \uAC70\uB985\uB2C8\uB2E4 (commit, gate, verify \uB4F1)").option("--severity <sev>", "severity \uB85C \uAC70\uB985\uB2C8\uB2E4 (high/medium/low)").option("--since <date>", "\uC774 ISO \uB0A0\uC9DC \uC774\uD6C4 \uC218\uC9D1\uBD84\uB9CC \uBD05\uB2C8\uB2E4 (\uC608: 2026-07-01)").action(async (opts) => {
|
|
464
|
+
const { runFeedbackLog } = await import("./feedback-log-UCNJ2GVT.js");
|
|
465
|
+
runFeedbackLog({
|
|
394
466
|
json: opts.json === true,
|
|
395
467
|
area: opts.area,
|
|
396
468
|
severity: opts.severity,
|
|
@@ -398,12 +470,12 @@ function buildProgram() {
|
|
|
398
470
|
});
|
|
399
471
|
});
|
|
400
472
|
program.command("changelog").description("Gate 2 \uC2B9\uC778 \uB4A4 CHANGELOG.md\uC5D0 \uC62E\uAE38 \uCD08\uC548\uC744 \uB9CC\uB4ED\uB2C8\uB2E4 (\uD30C\uC77C\uC740 \uC4F0\uC9C0 \uC54A\uC74C)").option("--workitem <id>", "\uB300\uC0C1 \uC6CC\uD06C\uC544\uC774\uD15C (\uAE30\uBCF8: \uD604\uC7AC)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
401
|
-
const { runChangelogDraft } = await import("./changelog-
|
|
473
|
+
const { runChangelogDraft } = await import("./changelog-VNJ4EQ74.js");
|
|
402
474
|
runChangelogDraft({ workitem: opts.workitem, json: opts.json === true });
|
|
403
475
|
});
|
|
404
476
|
program.command("commit <criterion>").description("\uC644\uB8CC \uC870\uAC74 \uC791\uC5C5\uC744 \uACA9\uB9AC \uCEE4\uBC0B\uD569\uB2C8\uB2E4 (\uB0B4 \uBCC0\uACBD\uB9CC)").option("--start", "\uBCA0\uC774\uC2A4\uB77C\uC778\uC744 \uC7A1\uC2B5\uB2C8\uB2E4 (\uC791\uC5C5 \uC2DC\uC791 \uC2DC)").option("-m, --message <msg>", "\uCEE4\uBC0B \uBA54\uC2DC\uC9C0").option("--base <ref>", "\uBCA0\uC774\uC2A4 \uB4DC\uB9AC\uD504\uD2B8\uB97C \uD655\uC778\uD560 \uAE30\uC900 \uBE0C\uB79C\uCE58").option("--force", "\uBCF4\uD638 \uD30C\uC77C \uBCC0\uACBD \uAC80\uC0AC\uB97C \uC0AC\uB78C\uC774 \uD655\uC778\uD558\uACE0 \uC6B0\uD68C\uD569\uB2C8\uB2E4").action(
|
|
405
477
|
async (criterion, opts) => {
|
|
406
|
-
const { runCommit } = await import("./commit-
|
|
478
|
+
const { runCommit } = await import("./commit-GPQATPEA.js");
|
|
407
479
|
await runCommit(criterion, {
|
|
408
480
|
start: opts.start,
|
|
409
481
|
message: opts.message,
|
|
@@ -413,12 +485,12 @@ function buildProgram() {
|
|
|
413
485
|
}
|
|
414
486
|
);
|
|
415
487
|
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) => {
|
|
416
|
-
const { runReview } = await import("./review-
|
|
488
|
+
const { runReview } = await import("./review-CGALGS5X.js");
|
|
417
489
|
await runReview(range, { json: opts.json === true, base: opts.base });
|
|
418
490
|
});
|
|
419
491
|
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(
|
|
420
492
|
async (type, opts) => {
|
|
421
|
-
const { runRecord } = await import("./record-
|
|
493
|
+
const { runRecord } = await import("./record-TSB22DIO.js");
|
|
422
494
|
await runRecord(type, {
|
|
423
495
|
json: opts.json,
|
|
424
496
|
file: opts.file,
|
|
@@ -432,7 +504,7 @@ function buildProgram() {
|
|
|
432
504
|
"\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)"
|
|
433
505
|
).action(
|
|
434
506
|
async (opts) => {
|
|
435
|
-
const { runVerify } = await import("./verify-
|
|
507
|
+
const { runVerify } = await import("./verify-7NQ3DOFY.js");
|
|
436
508
|
await runVerify({
|
|
437
509
|
json: opts.json === true,
|
|
438
510
|
bail: opts.bail === true,
|
|
@@ -443,17 +515,17 @@ function buildProgram() {
|
|
|
443
515
|
}
|
|
444
516
|
);
|
|
445
517
|
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) => {
|
|
446
|
-
const { runHoldRecheck } = await import("./hold-recheck-
|
|
518
|
+
const { runHoldRecheck } = await import("./hold-recheck-UNAILFN5.js");
|
|
447
519
|
await runHoldRecheck({ json: opts.json === true });
|
|
448
520
|
});
|
|
449
521
|
const state = program.command("state", { hidden: true }).description("\uB8E8\uD504 \uC0C1\uD0DC\uB97C \uC77D\uACE0 \uC501\uB2C8\uB2E4");
|
|
450
522
|
state.command("get").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
|
|
451
|
-
const { runStateGet } = await import("./state-
|
|
523
|
+
const { runStateGet } = await import("./state-6IIH7SW2.js");
|
|
452
524
|
runStateGet({ json: opts.json === true });
|
|
453
525
|
});
|
|
454
526
|
state.command("set").requiredOption("--json <patch>", "\uBD80\uBD84 \uAC31\uC2E0 (JSON \uBB38\uC790\uC5F4)").action(async (opts) => {
|
|
455
|
-
const { runStateSet } = await import("./state-
|
|
456
|
-
const { hasApprovedGate1 } = await import("./record-
|
|
527
|
+
const { runStateSet } = await import("./state-6IIH7SW2.js");
|
|
528
|
+
const { hasApprovedGate1 } = await import("./record-TSB22DIO.js");
|
|
457
529
|
runStateSet(opts.json, {
|
|
458
530
|
// phase:'loop' 로의 전이는 이 워크아이템에 "승인된" 게이트1 레코드가 있을
|
|
459
531
|
// 때만 허용한다(0.6.3, 적대검증 발견). 예전엔 gate:1 레코드의 존재만 봐서
|
|
@@ -464,7 +536,7 @@ function buildProgram() {
|
|
|
464
536
|
});
|
|
465
537
|
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(
|
|
466
538
|
async (opts) => {
|
|
467
|
-
const m = await import("./evolve-
|
|
539
|
+
const m = await import("./evolve-N3S32P5I.js");
|
|
468
540
|
if (opts.collect && opts.record) {
|
|
469
541
|
process.stderr.write("\n --collect \uC640 --record \uB294 \uB3D9\uC2DC\uC5D0 \uC4F8 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
|
|
470
542
|
process.exit(1);
|
|
@@ -483,12 +555,17 @@ function buildProgram() {
|
|
|
483
555
|
}
|
|
484
556
|
);
|
|
485
557
|
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) => {
|
|
486
|
-
const m = await import("./record-
|
|
558
|
+
const m = await import("./record-TSB22DIO.js");
|
|
487
559
|
m.runDeferSummary({ json: opts.json === true, workitem: opts.workitem });
|
|
488
560
|
});
|
|
489
561
|
program.action((opts, command) => {
|
|
490
562
|
if (opts.examples) {
|
|
491
563
|
process.stdout.write(`${renderExamplesCard(caps())}
|
|
564
|
+
`);
|
|
565
|
+
return;
|
|
566
|
+
}
|
|
567
|
+
if (opts.skills) {
|
|
568
|
+
process.stdout.write(`${renderSkillsCard(caps())}
|
|
492
569
|
`);
|
|
493
570
|
return;
|
|
494
571
|
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
protectedFilesMessage
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VVZOIFL4.js";
|
|
4
4
|
import {
|
|
5
5
|
hasApprovedGate1
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-FK3Q7UY2.js";
|
|
7
7
|
import {
|
|
8
8
|
getCriterion,
|
|
9
9
|
loadState,
|
|
10
10
|
setCriterion,
|
|
11
11
|
writeState
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VE2GVNNS.js";
|
|
13
13
|
import {
|
|
14
14
|
loadConfig,
|
|
15
15
|
resolveProjectRoot,
|
|
16
16
|
run
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-MLTY3EE6.js";
|
|
18
18
|
import "./chunk-SJG22DAK.js";
|
|
19
19
|
import {
|
|
20
20
|
caps,
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
gitHasCommits,
|
|
9
9
|
renderText,
|
|
10
10
|
runDoctor
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-DA27NBCS.js";
|
|
12
|
+
import "./chunk-FK3Q7UY2.js";
|
|
13
|
+
import "./chunk-VE2GVNNS.js";
|
|
14
|
+
import "./chunk-XWMS6Z5E.js";
|
|
15
|
+
import "./chunk-ZEX5ZF6C.js";
|
|
16
|
+
import "./chunk-MLTY3EE6.js";
|
|
17
17
|
import "./chunk-SJG22DAK.js";
|
|
18
18
|
import "./chunk-FGHILN3D.js";
|
|
19
19
|
export {
|
|
@@ -13,11 +13,11 @@ import {
|
|
|
13
13
|
runEvolveCollect,
|
|
14
14
|
runEvolveRecord,
|
|
15
15
|
writeGeneration
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
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
21
|
import "./chunk-SJG22DAK.js";
|
|
22
22
|
import "./chunk-FGHILN3D.js";
|
|
23
23
|
export {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readRecords
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-FK3Q7UY2.js";
|
|
4
|
+
import "./chunk-VE2GVNNS.js";
|
|
5
|
+
import "./chunk-MLTY3EE6.js";
|
|
6
6
|
import "./chunk-SJG22DAK.js";
|
|
7
7
|
import {
|
|
8
8
|
caps,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
signal
|
|
12
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
|
|
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
|
|
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(`${
|
|
116
|
+
process.stdout.write(`${renderFeedbackLog(report, caps())}
|
|
117
117
|
`);
|
|
118
118
|
}
|
|
119
119
|
export {
|
|
120
120
|
buildFeedbackReport,
|
|
121
121
|
isInvalidSince,
|
|
122
122
|
loadAwlFeedback,
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
renderFeedbackLog,
|
|
124
|
+
runFeedbackLog
|
|
125
125
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadGotchaList
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
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
8
|
import "./chunk-SJG22DAK.js";
|
|
9
9
|
import {
|
|
10
10
|
caps,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
pipelineLanes
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-PUINOFOR.js";
|
|
4
|
+
import "./chunk-FK3Q7UY2.js";
|
|
5
|
+
import "./chunk-VE2GVNNS.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveProjectRoot
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-MLTY3EE6.js";
|
|
9
9
|
import "./chunk-SJG22DAK.js";
|
|
10
10
|
import {
|
|
11
11
|
caps,
|
|
@@ -9,20 +9,20 @@ import {
|
|
|
9
9
|
runLaneRemove,
|
|
10
10
|
unmergedCommitCount,
|
|
11
11
|
worktreeUntracked
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-SSSOO2GH.js";
|
|
13
|
+
import "./chunk-AGFQC2UO.js";
|
|
14
14
|
import "./chunk-D5OINC3G.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-EHJYX57P.js";
|
|
16
|
+
import "./chunk-ZRKOZQKP.js";
|
|
17
|
+
import "./chunk-IVEV5L7P.js";
|
|
18
|
+
import "./chunk-WWZIKKHP.js";
|
|
19
|
+
import "./chunk-VVZOIFL4.js";
|
|
20
|
+
import "./chunk-DA27NBCS.js";
|
|
21
|
+
import "./chunk-FK3Q7UY2.js";
|
|
22
|
+
import "./chunk-VE2GVNNS.js";
|
|
23
|
+
import "./chunk-XWMS6Z5E.js";
|
|
24
|
+
import "./chunk-ZEX5ZF6C.js";
|
|
25
|
+
import "./chunk-MLTY3EE6.js";
|
|
26
26
|
import "./chunk-SJG22DAK.js";
|
|
27
27
|
import "./chunk-FGHILN3D.js";
|
|
28
28
|
export {
|
|
@@ -6,20 +6,20 @@ import {
|
|
|
6
6
|
computeDurationMs,
|
|
7
7
|
fmtDuration,
|
|
8
8
|
loadGenerations
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IVEV5L7P.js";
|
|
10
10
|
import {
|
|
11
11
|
collectDeferred,
|
|
12
12
|
readRecords
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-FK3Q7UY2.js";
|
|
14
14
|
import {
|
|
15
15
|
loadState
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-VE2GVNNS.js";
|
|
17
17
|
import {
|
|
18
18
|
loadConfig,
|
|
19
19
|
multiProjectFooter,
|
|
20
20
|
requireConfig,
|
|
21
21
|
resolveProjectScope
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-MLTY3EE6.js";
|
|
23
23
|
import "./chunk-SJG22DAK.js";
|
|
24
24
|
import {
|
|
25
25
|
caps,
|