@lumenflow/cli 2.16.0 → 2.18.0

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 (79) hide show
  1. package/README.md +24 -23
  2. package/dist/commands/integrate.js +25 -21
  3. package/dist/commands/integrate.js.map +1 -1
  4. package/dist/commands.js +9 -0
  5. package/dist/commands.js.map +1 -1
  6. package/dist/gates.js +56 -6
  7. package/dist/gates.js.map +1 -1
  8. package/dist/hooks/enforcement-generator.js +3 -3
  9. package/dist/init.js +57 -11
  10. package/dist/init.js.map +1 -1
  11. package/dist/orchestrate-initiative.js +4 -3
  12. package/dist/orchestrate-initiative.js.map +1 -1
  13. package/dist/orchestrate-monitor.js +2 -1
  14. package/dist/orchestrate-monitor.js.map +1 -1
  15. package/dist/public-manifest.js +11 -4
  16. package/dist/public-manifest.js.map +1 -1
  17. package/dist/spawn-list.js +1 -0
  18. package/dist/spawn-list.js.map +1 -1
  19. package/dist/strict-progress.js +253 -0
  20. package/dist/strict-progress.js.map +1 -0
  21. package/dist/wu-block.js +89 -45
  22. package/dist/wu-block.js.map +1 -1
  23. package/dist/wu-brief.js +40 -0
  24. package/dist/wu-brief.js.map +1 -0
  25. package/dist/wu-claim-cloud.js +61 -0
  26. package/dist/wu-claim-cloud.js.map +1 -0
  27. package/dist/wu-claim.js +166 -57
  28. package/dist/wu-claim.js.map +1 -1
  29. package/dist/wu-cleanup-cloud.js +76 -0
  30. package/dist/wu-cleanup-cloud.js.map +1 -0
  31. package/dist/wu-cleanup.js +42 -19
  32. package/dist/wu-cleanup.js.map +1 -1
  33. package/dist/wu-create-cloud.js +40 -0
  34. package/dist/wu-create-cloud.js.map +1 -0
  35. package/dist/wu-create.js +137 -53
  36. package/dist/wu-create.js.map +1 -1
  37. package/dist/wu-delegate.js +21 -0
  38. package/dist/wu-delegate.js.map +1 -0
  39. package/dist/wu-delete.js +102 -61
  40. package/dist/wu-delete.js.map +1 -1
  41. package/dist/wu-done-auto-cleanup.js +5 -16
  42. package/dist/wu-done-auto-cleanup.js.map +1 -1
  43. package/dist/wu-done-cloud.js +46 -0
  44. package/dist/wu-done-cloud.js.map +1 -0
  45. package/dist/wu-done.js +153 -44
  46. package/dist/wu-done.js.map +1 -1
  47. package/dist/wu-edit.js +217 -55
  48. package/dist/wu-edit.js.map +1 -1
  49. package/dist/wu-prep.js +1 -1
  50. package/dist/wu-prep.js.map +1 -1
  51. package/dist/wu-recover.js +128 -55
  52. package/dist/wu-recover.js.map +1 -1
  53. package/dist/wu-release.js +99 -45
  54. package/dist/wu-release.js.map +1 -1
  55. package/dist/wu-spawn.js +108 -42
  56. package/dist/wu-spawn.js.map +1 -1
  57. package/dist/wu-state-cloud.js +39 -0
  58. package/dist/wu-state-cloud.js.map +1 -0
  59. package/dist/wu-unblock.js +99 -49
  60. package/dist/wu-unblock.js.map +1 -1
  61. package/package.json +8 -7
  62. package/templates/core/.lumenflow/constraints.md.template +31 -4
  63. package/templates/core/LUMENFLOW.md.template +31 -9
  64. package/templates/core/ai/onboarding/agent-invocation-guide.md.template +21 -13
  65. package/templates/core/ai/onboarding/agent-safety-card.md.template +2 -2
  66. package/templates/core/ai/onboarding/docs-generation.md.template +1 -1
  67. package/templates/core/ai/onboarding/lumenflow-force-usage.md.template +1 -1
  68. package/templates/core/ai/onboarding/quick-ref-commands.md.template +235 -66
  69. package/templates/core/ai/onboarding/rapid-prototyping.md +2 -2
  70. package/templates/core/ai/onboarding/starting-prompt.md.template +124 -24
  71. package/templates/core/ai/onboarding/troubleshooting-wu-done.md.template +11 -0
  72. package/templates/core/ai/onboarding/vendor-support.md.template +58 -69
  73. package/templates/vendors/claude/.claude/skills/context-management/SKILL.md.template +3 -3
  74. package/templates/vendors/claude/.claude/skills/design-first/SKILL.md.template +151 -0
  75. package/templates/vendors/claude/.claude/skills/initiative-management/SKILL.md.template +8 -8
  76. package/templates/vendors/claude/.claude/skills/library-first/SKILL.md.template +1 -0
  77. package/templates/vendors/claude/.claude/skills/multi-agent-coordination/SKILL.md.template +5 -5
  78. package/templates/vendors/claude/.claude/skills/orchestration/SKILL.md.template +19 -16
  79. package/templates/vendors/claude/.claude/skills/tdd-workflow/SKILL.md.template +2 -0
@@ -0,0 +1,253 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Strict Progress CLI (WU-1573)
4
+ *
5
+ * Tracks strict-mode TypeScript backlog for @lumenflow/core and @lumenflow/cli,
6
+ * writes a machine-readable baseline, and fails on regressions.
7
+ */
8
+ import { execFileSync } from 'node:child_process';
9
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
10
+ import path from 'node:path';
11
+ import { createWUParser } from '@lumenflow/core/arg-parser';
12
+ import { ProcessExitError } from '@lumenflow/core/error-handler';
13
+ import { EXIT_CODES, LUMENFLOW_PATHS, PKG_MANAGER } from '@lumenflow/core/wu-constants';
14
+ import { runCLI } from './cli-entry-point.js';
15
+ const LOG_PREFIX = '[strict:progress]';
16
+ const DEFAULT_BASELINE_PATH = path.join(LUMENFLOW_PATHS.BASE, 'strict-progress-baseline.json');
17
+ const TARGET_PACKAGES = ['@lumenflow/cli', '@lumenflow/core'];
18
+ const CLI_OPTIONS = {
19
+ json: {
20
+ name: 'json',
21
+ flags: '--json',
22
+ description: 'Output strict progress as JSON',
23
+ },
24
+ writeBaseline: {
25
+ name: 'writeBaseline',
26
+ flags: '--write-baseline',
27
+ description: 'Write current snapshot to the strict baseline file',
28
+ },
29
+ baseline: {
30
+ name: 'baseline',
31
+ flags: '--baseline <path>',
32
+ description: `Baseline path (default: ${DEFAULT_BASELINE_PATH})`,
33
+ },
34
+ allowRegression: {
35
+ name: 'allowRegression',
36
+ flags: '--allow-regression',
37
+ description: 'Exit successfully even when regression is detected',
38
+ },
39
+ };
40
+ /**
41
+ * Parse tsc strict output into structured counts.
42
+ */
43
+ export function parseTypeScriptErrors(output) {
44
+ const lines = output.split(/\r?\n/);
45
+ const errorCodes = {};
46
+ const fileErrors = {};
47
+ let totalErrors = 0;
48
+ // Example:
49
+ // src/file.ts(10,2): error TS7006: Parameter 'x' implicitly has an 'any' type.
50
+ const errorLine = /^(.+?)\(\d+,\d+\): error (TS\d+):/;
51
+ for (const line of lines) {
52
+ const match = line.match(errorLine);
53
+ if (!match) {
54
+ continue;
55
+ }
56
+ const filePath = match[1];
57
+ const errorCode = match[2];
58
+ totalErrors += 1;
59
+ errorCodes[errorCode] = (errorCodes[errorCode] ?? 0) + 1;
60
+ fileErrors[filePath] = (fileErrors[filePath] ?? 0) + 1;
61
+ }
62
+ return {
63
+ totalErrors,
64
+ errorCodes,
65
+ fileErrors,
66
+ };
67
+ }
68
+ function parseArgs() {
69
+ return createWUParser({
70
+ name: 'strict-progress',
71
+ description: 'Track strict TypeScript backlog and guard regressions',
72
+ options: [
73
+ CLI_OPTIONS.json,
74
+ CLI_OPTIONS.writeBaseline,
75
+ CLI_OPTIONS.baseline,
76
+ CLI_OPTIONS.allowRegression,
77
+ ],
78
+ required: [],
79
+ allowPositionalId: false,
80
+ });
81
+ }
82
+ function getCommandOutput(error) {
83
+ if (!error || typeof error !== 'object') {
84
+ return '';
85
+ }
86
+ const maybeError = error;
87
+ const stdout = maybeError.stdout ? String(maybeError.stdout) : '';
88
+ const stderr = maybeError.stderr ? String(maybeError.stderr) : '';
89
+ return [stdout, stderr].filter(Boolean).join('\n');
90
+ }
91
+ function runStrictTypecheck(packageName) {
92
+ try {
93
+ const output = execFileSync(PKG_MANAGER, ['--filter', packageName, 'exec', 'tsc', '--noEmit', '--strict', '--pretty', 'false'], {
94
+ encoding: 'utf-8',
95
+ stdio: ['ignore', 'pipe', 'pipe'],
96
+ });
97
+ const parsed = parseTypeScriptErrors(output);
98
+ return {
99
+ packageName,
100
+ totalErrors: parsed.totalErrors,
101
+ errorCodes: parsed.errorCodes,
102
+ fileErrors: parsed.fileErrors,
103
+ };
104
+ }
105
+ catch (error) {
106
+ const output = getCommandOutput(error);
107
+ const parsed = parseTypeScriptErrors(output);
108
+ return {
109
+ packageName,
110
+ totalErrors: parsed.totalErrors,
111
+ errorCodes: parsed.errorCodes,
112
+ fileErrors: parsed.fileErrors,
113
+ };
114
+ }
115
+ }
116
+ /**
117
+ * Build baseline/snapshot shape from package metrics.
118
+ */
119
+ export function buildStrictSnapshot(packageSnapshots) {
120
+ const packages = {};
121
+ let totalErrors = 0;
122
+ for (const pkg of packageSnapshots) {
123
+ packages[pkg.packageName] = {
124
+ total_errors: pkg.totalErrors,
125
+ error_codes: pkg.errorCodes,
126
+ file_errors: pkg.fileErrors,
127
+ };
128
+ totalErrors += pkg.totalErrors;
129
+ }
130
+ return {
131
+ version: 1,
132
+ generated_at: new Date().toISOString(),
133
+ totals: {
134
+ total_errors: totalErrors,
135
+ },
136
+ packages,
137
+ };
138
+ }
139
+ function readBaseline(baselinePath) {
140
+ const content = readFileSync(baselinePath, 'utf-8');
141
+ return JSON.parse(content);
142
+ }
143
+ function writeBaseline(baselinePath, snapshot) {
144
+ const dir = path.dirname(baselinePath);
145
+ mkdirSync(dir, { recursive: true });
146
+ writeFileSync(baselinePath, `${JSON.stringify(snapshot, null, 2)}\n`, 'utf-8');
147
+ }
148
+ /**
149
+ * Compare current snapshot against baseline and report regressions.
150
+ */
151
+ export function compareSnapshotToBaseline(snapshot, baseline) {
152
+ const regressions = [];
153
+ if (snapshot.totals.total_errors > baseline.totals.total_errors) {
154
+ regressions.push(`overall total errors increased: ${baseline.totals.total_errors} -> ${snapshot.totals.total_errors}`);
155
+ }
156
+ for (const [packageName, currentPkg] of Object.entries(snapshot.packages)) {
157
+ const baselinePkg = baseline.packages[packageName];
158
+ if (!baselinePkg) {
159
+ if (currentPkg.total_errors > 0) {
160
+ regressions.push(`${packageName} has ${currentPkg.total_errors} errors with no baseline entry`);
161
+ }
162
+ continue;
163
+ }
164
+ if (currentPkg.total_errors > baselinePkg.total_errors) {
165
+ regressions.push(`${packageName} total errors increased: ${baselinePkg.total_errors} -> ${currentPkg.total_errors}`);
166
+ }
167
+ for (const [errorCode, currentCount] of Object.entries(currentPkg.error_codes)) {
168
+ const baselineCount = baselinePkg.error_codes[errorCode] ?? 0;
169
+ if (currentCount > baselineCount) {
170
+ regressions.push(`${packageName} ${errorCode} increased: ${baselineCount} -> ${currentCount}`);
171
+ }
172
+ }
173
+ for (const [filePath, currentCount] of Object.entries(currentPkg.file_errors)) {
174
+ const baselineCount = baselinePkg.file_errors[filePath] ?? 0;
175
+ if (currentCount > baselineCount) {
176
+ regressions.push(`${packageName} file ${filePath} increased: ${baselineCount} -> ${currentCount}`);
177
+ }
178
+ }
179
+ }
180
+ return {
181
+ hasRegression: regressions.length > 0,
182
+ regressions,
183
+ };
184
+ }
185
+ function getTopEntries(counts, limit) {
186
+ return Object.entries(counts)
187
+ .sort((a, b) => b[1] - a[1])
188
+ .slice(0, limit);
189
+ }
190
+ function formatHumanSummary(snapshot, comparison, baselinePath) {
191
+ const lines = [];
192
+ lines.push(`${LOG_PREFIX} Strict backlog snapshot`);
193
+ lines.push(`${LOG_PREFIX} Baseline: ${baselinePath}`);
194
+ lines.push('');
195
+ for (const [packageName, pkg] of Object.entries(snapshot.packages)) {
196
+ lines.push(`${packageName}: ${pkg.total_errors} errors`);
197
+ const topCodes = getTopEntries(pkg.error_codes, 3);
198
+ if (topCodes.length > 0) {
199
+ lines.push(` top codes: ${topCodes.map(([code, count]) => `${code}=${count}`).join(', ')}`);
200
+ }
201
+ const topFiles = getTopEntries(pkg.file_errors, 3);
202
+ if (topFiles.length > 0) {
203
+ lines.push(` top files: ${topFiles.map(([file, count]) => `${file}=${count}`).join(', ')}`);
204
+ }
205
+ lines.push('');
206
+ }
207
+ lines.push(`TOTAL: ${snapshot.totals.total_errors} errors`);
208
+ if (comparison?.hasRegression) {
209
+ lines.push('');
210
+ lines.push('Regressions detected:');
211
+ for (const regression of comparison.regressions) {
212
+ lines.push(` - ${regression}`);
213
+ }
214
+ }
215
+ return lines.join('\n');
216
+ }
217
+ async function main() {
218
+ const args = parseArgs();
219
+ const baselinePath = args.baseline ?? DEFAULT_BASELINE_PATH;
220
+ const packageSnapshots = TARGET_PACKAGES.map((packageName) => runStrictTypecheck(packageName));
221
+ const snapshot = buildStrictSnapshot(packageSnapshots);
222
+ let comparison = null;
223
+ if (args.writeBaseline) {
224
+ writeBaseline(baselinePath, snapshot);
225
+ }
226
+ else if (existsSync(baselinePath)) {
227
+ const baseline = readBaseline(baselinePath);
228
+ comparison = compareSnapshotToBaseline(snapshot, baseline);
229
+ }
230
+ else {
231
+ throw new ProcessExitError(`${LOG_PREFIX} Baseline not found at ${baselinePath}. Run 'pnpm strict:progress --write-baseline' first.`, EXIT_CODES.FAILURE);
232
+ }
233
+ if (args.json) {
234
+ console.log(JSON.stringify({
235
+ baselinePath,
236
+ snapshot,
237
+ comparison,
238
+ }, null, 2));
239
+ }
240
+ else {
241
+ console.log(formatHumanSummary(snapshot, comparison, baselinePath));
242
+ if (args.writeBaseline) {
243
+ console.log(`${LOG_PREFIX} Baseline updated`);
244
+ }
245
+ }
246
+ if (comparison?.hasRegression && !args.allowRegression) {
247
+ throw new ProcessExitError(`${LOG_PREFIX} Strict regressions detected. Fix regressions or run with --allow-regression for diagnostics only.`, EXIT_CODES.FAILURE);
248
+ }
249
+ }
250
+ if (import.meta.main) {
251
+ void runCLI(main);
252
+ }
253
+ //# sourceMappingURL=strict-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict-progress.js","sourceRoot":"","sources":["../src/strict-progress.ts"],"names":[],"mappings":"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"}
package/dist/wu-block.js CHANGED
@@ -34,6 +34,7 @@ import { WUStateStore } from '@lumenflow/core/wu-state-store';
34
34
  import { releaseLaneLock } from '@lumenflow/core/lane-lock';
35
35
  // WU-1325: Import lock policy getter to determine release behavior
36
36
  import { getLockPolicyForLane } from '@lumenflow/core/lane-checker';
37
+ import { shouldUseBranchPrStatePath } from './wu-state-cloud.js';
37
38
  import { runCLI } from './cli-entry-point.js';
38
39
  // ensureOnMain() moved to wu-helpers.ts (WU-1256)
39
40
  // ensureStaged() moved to git-staged-validator.ts (WU-1341)
@@ -62,6 +63,9 @@ async function withWuToolEnv(toolName, fn) {
62
63
  }
63
64
  }
64
65
  }
66
+ export function shouldUseBranchPrBlockPath(doc) {
67
+ return shouldUseBranchPrStatePath(doc);
68
+ }
65
69
  /**
66
70
  * Remove WU entry from in-progress section of lines array
67
71
  */
@@ -189,7 +193,6 @@ async function main() {
189
193
  const id = args.id.toUpperCase();
190
194
  if (!PATTERNS.WU_ID.test(id))
191
195
  die(`Invalid WU id '${args.id}'. Expected format WU-123`);
192
- await ensureOnMain(getGitForCwd());
193
196
  // Read WU doc from main to get title and validate state transition
194
197
  const mainWUPath = WU_PATHS.WU(id);
195
198
  let doc;
@@ -204,6 +207,10 @@ async function main() {
204
207
  ` 3. Create WU if missing: pnpm wu:create --id ${id} --lane "<lane>" --title "..."`);
205
208
  }
206
209
  const title = doc.title || '';
210
+ const branchPrPath = shouldUseBranchPrBlockPath(doc);
211
+ if (!branchPrPath) {
212
+ await ensureOnMain(getGitForCwd());
213
+ }
207
214
  // Validate state transition before micro-worktree
208
215
  const currentStatus = doc.status || WU_STATUS.IN_PROGRESS;
209
216
  try {
@@ -219,56 +226,93 @@ async function main() {
219
226
  const baseMsg = `wu(${id.toLowerCase()}): block`;
220
227
  const commitMsg = args.reason ? `${baseMsg} — ${args.reason}` : baseMsg;
221
228
  if (!args.noAuto) {
222
- // WU-1365: Set LUMENFLOW_WU_TOOL to allow pre-push hook bypass for micro-worktree pushes
223
- await withWuToolEnv(MICRO_WORKTREE_OPERATIONS.WU_BLOCK, async () => {
224
- // Use micro-worktree pattern to avoid pre-commit hook blocking commits to main
225
- await withMicroWorktree({
226
- operation: MICRO_WORKTREE_OPERATIONS.WU_BLOCK,
227
- id,
228
- logPrefix: LOG_PREFIX.BLOCK,
229
- pushOnly: true, // Push directly to origin/main without touching local main
230
- execute: async ({ worktreePath }) => {
231
- // Build paths relative to micro-worktree
232
- const microWUPath = path.join(worktreePath, WU_PATHS.WU(id));
233
- const microStatusPath = path.join(worktreePath, WU_PATHS.STATUS());
234
- const microBacklogPath = path.join(worktreePath, WU_PATHS.BACKLOG());
235
- // Update WU YAML in micro-worktree
236
- const microDoc = readWU(microWUPath, id);
237
- microDoc.status = WU_STATUS.BLOCKED;
238
- const noteLine = args.reason
239
- ? `Blocked (${todayISO()}): ${args.reason}`
240
- : `Blocked (${todayISO()})`;
241
- appendNote(microDoc, noteLine);
242
- writeWU(microWUPath, microDoc);
243
- // Update status.md in micro-worktree
244
- await moveFromInProgressToBlocked(microStatusPath, id, title, args.reason);
245
- // Update backlog.md in micro-worktree (WU-1574: regenerate from state store)
246
- await regenerateBacklogFromState(microBacklogPath);
247
- // Append block event to WUStateStore (WU-1573)
248
- const stateDir = path.join(worktreePath, '.lumenflow', 'state');
249
- const store = new WUStateStore(stateDir);
250
- await store.load();
251
- await store.block(id, args.reason || 'No reason provided');
252
- return {
253
- commitMessage: commitMsg,
254
- files: [
255
- WU_PATHS.WU(id),
256
- WU_PATHS.STATUS(),
257
- WU_PATHS.BACKLOG(),
258
- '.lumenflow/state/wu-events.jsonl',
259
- ],
260
- };
261
- },
229
+ if (branchPrPath) {
230
+ const currentBranch = await getGitForCwd().getCurrentBranch();
231
+ const claimedBranch = typeof doc.claimed_branch === 'string' ? doc.claimed_branch : '';
232
+ if (claimedBranch && currentBranch !== claimedBranch) {
233
+ die(`Cannot block branch-pr WU ${id}: current branch does not match claimed_branch.\n\n` +
234
+ `Current branch: ${currentBranch}\n` +
235
+ `Claimed branch: ${claimedBranch}`);
236
+ }
237
+ doc.status = WU_STATUS.BLOCKED;
238
+ const noteLine = args.reason
239
+ ? `Blocked (${todayISO()}): ${args.reason}`
240
+ : `Blocked (${todayISO()})`;
241
+ appendNote(doc, noteLine);
242
+ writeWU(mainWUPath, doc);
243
+ await moveFromInProgressToBlocked(WU_PATHS.STATUS(), id, title, args.reason);
244
+ await regenerateBacklogFromState(WU_PATHS.BACKLOG());
245
+ const stateDir = path.join(process.cwd(), '.lumenflow', 'state');
246
+ const store = new WUStateStore(stateDir);
247
+ await store.load();
248
+ await store.block(id, args.reason || 'No reason provided');
249
+ await getGitForCwd().add([
250
+ WU_PATHS.WU(id),
251
+ WU_PATHS.STATUS(),
252
+ WU_PATHS.BACKLOG(),
253
+ '.lumenflow/state/wu-events.jsonl',
254
+ ]);
255
+ await getGitForCwd().commit(commitMsg);
256
+ await getGitForCwd().push(REMOTES.ORIGIN, currentBranch);
257
+ }
258
+ else {
259
+ // WU-1365: Set LUMENFLOW_WU_TOOL to allow pre-push hook bypass for micro-worktree pushes
260
+ await withWuToolEnv(MICRO_WORKTREE_OPERATIONS.WU_BLOCK, async () => {
261
+ // Use micro-worktree pattern to avoid pre-commit hook blocking commits to main
262
+ await withMicroWorktree({
263
+ operation: MICRO_WORKTREE_OPERATIONS.WU_BLOCK,
264
+ id,
265
+ logPrefix: LOG_PREFIX.BLOCK,
266
+ pushOnly: true, // Push directly to origin/main without touching local main
267
+ execute: async ({ worktreePath }) => {
268
+ // Build paths relative to micro-worktree
269
+ const microWUPath = path.join(worktreePath, WU_PATHS.WU(id));
270
+ const microStatusPath = path.join(worktreePath, WU_PATHS.STATUS());
271
+ const microBacklogPath = path.join(worktreePath, WU_PATHS.BACKLOG());
272
+ // Update WU YAML in micro-worktree
273
+ const microDoc = readWU(microWUPath, id);
274
+ microDoc.status = WU_STATUS.BLOCKED;
275
+ const noteLine = args.reason
276
+ ? `Blocked (${todayISO()}): ${args.reason}`
277
+ : `Blocked (${todayISO()})`;
278
+ appendNote(microDoc, noteLine);
279
+ writeWU(microWUPath, microDoc);
280
+ // Update status.md in micro-worktree
281
+ await moveFromInProgressToBlocked(microStatusPath, id, title, args.reason);
282
+ // Update backlog.md in micro-worktree (WU-1574: regenerate from state store)
283
+ await regenerateBacklogFromState(microBacklogPath);
284
+ // Append block event to WUStateStore (WU-1573)
285
+ const stateDir = path.join(worktreePath, '.lumenflow', 'state');
286
+ const store = new WUStateStore(stateDir);
287
+ await store.load();
288
+ await store.block(id, args.reason || 'No reason provided');
289
+ return {
290
+ commitMessage: commitMsg,
291
+ files: [
292
+ WU_PATHS.WU(id),
293
+ WU_PATHS.STATUS(),
294
+ WU_PATHS.BACKLOG(),
295
+ '.lumenflow/state/wu-events.jsonl',
296
+ ],
297
+ };
298
+ },
299
+ });
300
+ // Fetch to update local main tracking
301
+ await getGitForCwd().fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
262
302
  });
263
- // Fetch to update local main tracking
264
- await getGitForCwd().fetch(REMOTES.ORIGIN, BRANCHES.MAIN);
265
- });
303
+ }
266
304
  }
267
305
  else {
268
306
  // Manual mode: expect files already staged
269
307
  ensureStaged([mainWUPath, WU_PATHS.STATUS(), WU_PATHS.BACKLOG()]);
270
308
  await getGitForCwd().commit(commitMsg);
271
- await getGitForCwd().push(REMOTES.ORIGIN, BRANCHES.MAIN);
309
+ if (branchPrPath) {
310
+ const currentBranch = await getGitForCwd().getCurrentBranch();
311
+ await getGitForCwd().push(REMOTES.ORIGIN, currentBranch);
312
+ }
313
+ else {
314
+ await getGitForCwd().push(REMOTES.ORIGIN, BRANCHES.MAIN);
315
+ }
272
316
  }
273
317
  await handleWorktreeRemoval(args, doc);
274
318
  // WU-1325: Release lane lock when WU is blocked (only for lock_policy=active)
@@ -1 +1 @@
1
- {"version":3,"file":"wu-block.js","sourceRoot":"","sources":["../src/wu-block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wu-block.js","sourceRoot":"","sources":["../src/wu-block.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * WU Brief - Pure Prompt Generator (WU-1603)
4
+ *
5
+ * Generates ready-to-use handoff prompts for sub-agent WU execution.
6
+ * This is the canonical command for prompt generation.
7
+ *
8
+ * Usage:
9
+ * pnpm wu:brief --id WU-123
10
+ * pnpm wu:brief --id WU-123 --client codex-cli
11
+ *
12
+ * Output:
13
+ * A complete handoff prompt with:
14
+ * - Context loading preamble
15
+ * - WU details and acceptance criteria
16
+ * - Skills Selection section
17
+ * - Constraints block
18
+ *
19
+ * @see {@link ./wu-spawn.ts} - Shared logic (runBriefLogic)
20
+ */
21
+ import { runBriefLogic } from './wu-spawn.js';
22
+ import { runCLI } from './cli-entry-point.js';
23
+ const BRIEF_LOG_PREFIX = '[wu:brief]';
24
+ /**
25
+ * Main entry point for wu:brief (canonical command)
26
+ */
27
+ async function main() {
28
+ await runBriefLogic({
29
+ parserConfig: {
30
+ name: 'wu-brief',
31
+ description: 'Generate handoff prompt for sub-agent WU execution',
32
+ },
33
+ logPrefix: BRIEF_LOG_PREFIX,
34
+ });
35
+ }
36
+ // Guard main() for testability (WU-1366)
37
+ if (import.meta.main) {
38
+ void runCLI(main);
39
+ }
40
+ //# sourceMappingURL=wu-brief.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wu-brief.js","sourceRoot":"","sources":["../src/wu-brief.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,aAAa,CAAC;QAClB,YAAY,EAAE;YACZ,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,oDAAoD;SAClE;QACD,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,yCAAyC;AACzC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @file wu-claim-cloud.ts
3
+ * @description Cloud mode helpers for wu:claim command
4
+ *
5
+ * WU-1590 AC2: Provides metadata builder and branch-exists check helpers
6
+ * for --cloud claim path that persists claimed_branch and bypasses
7
+ * remote/local branch-exists checks when claiming on the current branch.
8
+ *
9
+ * Cloud agents execute from existing feature branches and cannot create
10
+ * worktrees. This module extracts the decision logic for persisting
11
+ * claimed_branch and bypassing branch existence guards.
12
+ */
13
+ import { CLAIMED_MODES } from '@lumenflow/core/wu-constants';
14
+ /**
15
+ * Build claim metadata for cloud mode.
16
+ *
17
+ * Persists the current branch as claimed_branch so that wu:prep, wu:done,
18
+ * and wu:cleanup can resolve it via defaultBranchFrom() without relying
19
+ * on lane-derived branch naming.
20
+ *
21
+ * @param input - Cloud claim metadata input
22
+ * @returns Metadata fields to merge into WU YAML
23
+ */
24
+ export function buildCloudClaimMetadata(input) {
25
+ return {
26
+ claimed_branch: input.currentBranch,
27
+ claimed_mode: CLAIMED_MODES.BRANCH_PR,
28
+ };
29
+ }
30
+ /**
31
+ * Determine whether to skip remote/local branch-exists checks.
32
+ *
33
+ * Cloud agents claim on an existing branch (e.g., claude/feature-xyz).
34
+ * The standard branch-exists check would reject the claim because the branch
35
+ * already exists. In cloud mode, the branch existence IS expected.
36
+ *
37
+ * @param input - Branch-exists check input
38
+ * @returns true if branch-exists checks should be skipped
39
+ */
40
+ export function shouldSkipBranchExistsCheck(input) {
41
+ return input.isCloud;
42
+ }
43
+ /**
44
+ * Resolve execution branch behavior for branch-only style claims.
45
+ *
46
+ * In cloud branch-pr mode, agents must stay on the current branch and avoid
47
+ * creating/switching to lane-derived branches.
48
+ */
49
+ export function resolveBranchClaimExecution(input) {
50
+ if (input.claimedMode === CLAIMED_MODES.BRANCH_PR && input.isCloud) {
51
+ return {
52
+ executionBranch: input.currentBranch,
53
+ shouldCreateBranch: false,
54
+ };
55
+ }
56
+ return {
57
+ executionBranch: input.requestedBranch,
58
+ shouldCreateBranch: true,
59
+ };
60
+ }
61
+ //# sourceMappingURL=wu-claim-cloud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wu-claim-cloud.js","sourceRoot":"","sources":["../src/wu-claim-cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAwB7D;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAA8B;IACpE,OAAO;QACL,cAAc,EAAE,KAAK,CAAC,aAAa;QACnC,YAAY,EAAE,aAAa,CAAC,SAAS;KACtC,CAAC;AACJ,CAAC;AAcD;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAA6B;IACvE,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAcD;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAgC;IAEhC,IAAI,KAAK,CAAC,WAAW,KAAK,aAAa,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnE,OAAO;YACL,eAAe,EAAE,KAAK,CAAC,aAAa;YACpC,kBAAkB,EAAE,KAAK;SAC1B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,kBAAkB,EAAE,IAAI;KACzB,CAAC;AACJ,CAAC"}