@lumenflow/cli 1.0.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.
- package/LICENSE +190 -0
- package/README.md +116 -0
- package/dist/gates.d.ts +41 -0
- package/dist/gates.d.ts.map +1 -0
- package/dist/gates.js +684 -0
- package/dist/gates.js.map +1 -0
- package/dist/initiative-add-wu.d.ts +22 -0
- package/dist/initiative-add-wu.d.ts.map +1 -0
- package/dist/initiative-add-wu.js +234 -0
- package/dist/initiative-add-wu.js.map +1 -0
- package/dist/initiative-create.d.ts +28 -0
- package/dist/initiative-create.d.ts.map +1 -0
- package/dist/initiative-create.js +172 -0
- package/dist/initiative-create.js.map +1 -0
- package/dist/initiative-edit.d.ts +34 -0
- package/dist/initiative-edit.d.ts.map +1 -0
- package/dist/initiative-edit.js +440 -0
- package/dist/initiative-edit.js.map +1 -0
- package/dist/initiative-list.d.ts +12 -0
- package/dist/initiative-list.d.ts.map +1 -0
- package/dist/initiative-list.js +101 -0
- package/dist/initiative-list.js.map +1 -0
- package/dist/initiative-status.d.ts +11 -0
- package/dist/initiative-status.d.ts.map +1 -0
- package/dist/initiative-status.js +221 -0
- package/dist/initiative-status.js.map +1 -0
- package/dist/mem-checkpoint.d.ts +16 -0
- package/dist/mem-checkpoint.d.ts.map +1 -0
- package/dist/mem-checkpoint.js +237 -0
- package/dist/mem-checkpoint.js.map +1 -0
- package/dist/mem-cleanup.d.ts +29 -0
- package/dist/mem-cleanup.d.ts.map +1 -0
- package/dist/mem-cleanup.js +267 -0
- package/dist/mem-cleanup.js.map +1 -0
- package/dist/mem-create.d.ts +17 -0
- package/dist/mem-create.d.ts.map +1 -0
- package/dist/mem-create.js +265 -0
- package/dist/mem-create.js.map +1 -0
- package/dist/mem-inbox.d.ts +35 -0
- package/dist/mem-inbox.d.ts.map +1 -0
- package/dist/mem-inbox.js +373 -0
- package/dist/mem-inbox.js.map +1 -0
- package/dist/mem-init.d.ts +15 -0
- package/dist/mem-init.d.ts.map +1 -0
- package/dist/mem-init.js +146 -0
- package/dist/mem-init.js.map +1 -0
- package/dist/mem-ready.d.ts +16 -0
- package/dist/mem-ready.d.ts.map +1 -0
- package/dist/mem-ready.js +224 -0
- package/dist/mem-ready.js.map +1 -0
- package/dist/mem-signal.d.ts +16 -0
- package/dist/mem-signal.d.ts.map +1 -0
- package/dist/mem-signal.js +204 -0
- package/dist/mem-signal.js.map +1 -0
- package/dist/mem-start.d.ts +16 -0
- package/dist/mem-start.d.ts.map +1 -0
- package/dist/mem-start.js +158 -0
- package/dist/mem-start.js.map +1 -0
- package/dist/mem-summarize.d.ts +22 -0
- package/dist/mem-summarize.d.ts.map +1 -0
- package/dist/mem-summarize.js +213 -0
- package/dist/mem-summarize.js.map +1 -0
- package/dist/mem-triage.d.ts +22 -0
- package/dist/mem-triage.d.ts.map +1 -0
- package/dist/mem-triage.js +328 -0
- package/dist/mem-triage.js.map +1 -0
- package/dist/spawn-list.d.ts +16 -0
- package/dist/spawn-list.d.ts.map +1 -0
- package/dist/spawn-list.js +140 -0
- package/dist/spawn-list.js.map +1 -0
- package/dist/wu-block.d.ts +16 -0
- package/dist/wu-block.d.ts.map +1 -0
- package/dist/wu-block.js +241 -0
- package/dist/wu-block.js.map +1 -0
- package/dist/wu-claim.d.ts +32 -0
- package/dist/wu-claim.d.ts.map +1 -0
- package/dist/wu-claim.js +1106 -0
- package/dist/wu-claim.js.map +1 -0
- package/dist/wu-cleanup.d.ts +17 -0
- package/dist/wu-cleanup.d.ts.map +1 -0
- package/dist/wu-cleanup.js +194 -0
- package/dist/wu-cleanup.js.map +1 -0
- package/dist/wu-create.d.ts +38 -0
- package/dist/wu-create.d.ts.map +1 -0
- package/dist/wu-create.js +520 -0
- package/dist/wu-create.js.map +1 -0
- package/dist/wu-deps.d.ts +13 -0
- package/dist/wu-deps.d.ts.map +1 -0
- package/dist/wu-deps.js +119 -0
- package/dist/wu-deps.js.map +1 -0
- package/dist/wu-done.d.ts +153 -0
- package/dist/wu-done.d.ts.map +1 -0
- package/dist/wu-done.js +2096 -0
- package/dist/wu-done.js.map +1 -0
- package/dist/wu-edit.d.ts +29 -0
- package/dist/wu-edit.d.ts.map +1 -0
- package/dist/wu-edit.js +852 -0
- package/dist/wu-edit.js.map +1 -0
- package/dist/wu-infer-lane.d.ts +17 -0
- package/dist/wu-infer-lane.d.ts.map +1 -0
- package/dist/wu-infer-lane.js +135 -0
- package/dist/wu-infer-lane.js.map +1 -0
- package/dist/wu-preflight.d.ts +47 -0
- package/dist/wu-preflight.d.ts.map +1 -0
- package/dist/wu-preflight.js +167 -0
- package/dist/wu-preflight.js.map +1 -0
- package/dist/wu-prune.d.ts +16 -0
- package/dist/wu-prune.d.ts.map +1 -0
- package/dist/wu-prune.js +259 -0
- package/dist/wu-prune.js.map +1 -0
- package/dist/wu-repair.d.ts +60 -0
- package/dist/wu-repair.d.ts.map +1 -0
- package/dist/wu-repair.js +226 -0
- package/dist/wu-repair.js.map +1 -0
- package/dist/wu-spawn-completion.d.ts +10 -0
- package/dist/wu-spawn-completion.js +30 -0
- package/dist/wu-spawn.d.ts +168 -0
- package/dist/wu-spawn.d.ts.map +1 -0
- package/dist/wu-spawn.js +1327 -0
- package/dist/wu-spawn.js.map +1 -0
- package/dist/wu-unblock.d.ts +16 -0
- package/dist/wu-unblock.d.ts.map +1 -0
- package/dist/wu-unblock.js +234 -0
- package/dist/wu-unblock.js.map +1 -0
- package/dist/wu-validate.d.ts +16 -0
- package/dist/wu-validate.d.ts.map +1 -0
- package/dist/wu-validate.js +193 -0
- package/dist/wu-validate.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gates.js","sourceRoot":"","sources":["../src/gates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Initiative Add WU Command (WU-1389)
|
|
4
|
+
*
|
|
5
|
+
* Links an existing WU to an initiative bidirectionally:
|
|
6
|
+
* 1. Adds `initiative: INIT-NNN` field to WU YAML
|
|
7
|
+
* 2. Adds WU ID to initiative `wus: []` array
|
|
8
|
+
*
|
|
9
|
+
* Uses micro-worktree isolation for atomic operations.
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* pnpm initiative:add-wu --initiative INIT-001 --wu WU-123
|
|
13
|
+
*
|
|
14
|
+
* Features:
|
|
15
|
+
* - Validates both WU and initiative exist before modifying
|
|
16
|
+
* - Idempotent: no error if link already exists
|
|
17
|
+
* - Errors if WU is already linked to a different initiative
|
|
18
|
+
* - Atomic: both files updated in single commit
|
|
19
|
+
*
|
|
20
|
+
* Context: WU-1389 (initial implementation)
|
|
21
|
+
*/
|
|
22
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initiative-add-wu.d.ts","sourceRoot":"","sources":["../src/initiative-add-wu.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/* eslint-disable security/detect-non-literal-fs-filename */
|
|
3
|
+
/**
|
|
4
|
+
* Initiative Add WU Command (WU-1389)
|
|
5
|
+
*
|
|
6
|
+
* Links an existing WU to an initiative bidirectionally:
|
|
7
|
+
* 1. Adds `initiative: INIT-NNN` field to WU YAML
|
|
8
|
+
* 2. Adds WU ID to initiative `wus: []` array
|
|
9
|
+
*
|
|
10
|
+
* Uses micro-worktree isolation for atomic operations.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* pnpm initiative:add-wu --initiative INIT-001 --wu WU-123
|
|
14
|
+
*
|
|
15
|
+
* Features:
|
|
16
|
+
* - Validates both WU and initiative exist before modifying
|
|
17
|
+
* - Idempotent: no error if link already exists
|
|
18
|
+
* - Errors if WU is already linked to a different initiative
|
|
19
|
+
* - Atomic: both files updated in single commit
|
|
20
|
+
*
|
|
21
|
+
* Context: WU-1389 (initial implementation)
|
|
22
|
+
*/
|
|
23
|
+
import { getGitForCwd } from '@lumenflow/core/dist/git-adapter.js';
|
|
24
|
+
import { die } from '@lumenflow/core/dist/error-handler.js';
|
|
25
|
+
import { existsSync } from 'node:fs';
|
|
26
|
+
import { join } from 'node:path';
|
|
27
|
+
import { createWUParser, WU_OPTIONS } from '@lumenflow/core/dist/arg-parser.js';
|
|
28
|
+
import { INIT_PATHS } from '@lumenflow/initiatives/dist/initiative-paths.js';
|
|
29
|
+
import { INIT_PATTERNS, INIT_COMMIT_FORMATS, INIT_LOG_PREFIX, } from '@lumenflow/initiatives/dist/initiative-constants.js';
|
|
30
|
+
import { WU_PATHS } from '@lumenflow/core/dist/wu-paths.js';
|
|
31
|
+
import { PATTERNS } from '@lumenflow/core/dist/wu-constants.js';
|
|
32
|
+
import { ensureOnMain } from '@lumenflow/core/dist/wu-helpers.js';
|
|
33
|
+
import { withMicroWorktree } from '@lumenflow/core/dist/micro-worktree.js';
|
|
34
|
+
import { readWU, writeWU } from '@lumenflow/core/dist/wu-yaml.js';
|
|
35
|
+
import { readInitiative, writeInitiative } from '@lumenflow/initiatives/dist/initiative-yaml.js';
|
|
36
|
+
/** Log prefix for console output */
|
|
37
|
+
const LOG_PREFIX = INIT_LOG_PREFIX.ADD_WU;
|
|
38
|
+
/** Micro-worktree operation name */
|
|
39
|
+
const OPERATION_NAME = 'initiative-add-wu';
|
|
40
|
+
/**
|
|
41
|
+
* Validate Initiative ID format
|
|
42
|
+
* @param {string} id - Initiative ID to validate
|
|
43
|
+
*/
|
|
44
|
+
function validateInitIdFormat(id) {
|
|
45
|
+
if (!INIT_PATTERNS.INIT_ID.test(id)) {
|
|
46
|
+
die(`Invalid Initiative ID format: "${id}"\n\n` +
|
|
47
|
+
`Expected format: INIT-<number> or INIT-<NAME> (e.g., INIT-001, INIT-TOOLING)`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Validate WU ID format
|
|
52
|
+
* @param {string} id - WU ID to validate
|
|
53
|
+
*/
|
|
54
|
+
function validateWuIdFormat(id) {
|
|
55
|
+
if (!PATTERNS.WU_ID.test(id)) {
|
|
56
|
+
die(`Invalid WU ID format: "${id}"\n\nExpected format: WU-<number> (e.g., WU-123)`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check if WU exists
|
|
61
|
+
* @param {string} wuId - WU ID to check
|
|
62
|
+
* @returns {object} WU document
|
|
63
|
+
*/
|
|
64
|
+
function checkWUExists(wuId) {
|
|
65
|
+
const wuPath = WU_PATHS.WU(wuId);
|
|
66
|
+
if (!existsSync(wuPath)) {
|
|
67
|
+
die(`WU not found: ${wuId}\n\nFile does not exist: ${wuPath}`);
|
|
68
|
+
}
|
|
69
|
+
return readWU(wuPath, wuId);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check if Initiative exists
|
|
73
|
+
* @param {string} initId - Initiative ID to check
|
|
74
|
+
* @returns {object} Initiative document
|
|
75
|
+
*/
|
|
76
|
+
function checkInitiativeExists(initId) {
|
|
77
|
+
const initPath = INIT_PATHS.INITIATIVE(initId);
|
|
78
|
+
if (!existsSync(initPath)) {
|
|
79
|
+
die(`Initiative not found: ${initId}\n\nFile does not exist: ${initPath}`);
|
|
80
|
+
}
|
|
81
|
+
return readInitiative(initPath, initId);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Check for conflicting initiative link
|
|
85
|
+
* @param {object} wuDoc - WU document
|
|
86
|
+
* @param {string} targetInitId - Target initiative ID
|
|
87
|
+
*/
|
|
88
|
+
function checkConflictingLink(wuDoc, targetInitId) {
|
|
89
|
+
const currentInit = wuDoc.initiative;
|
|
90
|
+
if (currentInit && currentInit !== targetInitId) {
|
|
91
|
+
die(`WU ${wuDoc.id} is already linked to ${currentInit}\n\n` +
|
|
92
|
+
`Cannot link to ${targetInitId}. Remove the existing link first.\n` +
|
|
93
|
+
`Current initiative field: ${currentInit}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Check if link already exists (idempotent check)
|
|
98
|
+
* @param {object} wuDoc - WU document
|
|
99
|
+
* @param {object} initDoc - Initiative document
|
|
100
|
+
* @param {string} wuId - WU ID
|
|
101
|
+
* @param {string} initId - Initiative ID
|
|
102
|
+
* @returns {boolean} True if link already exists
|
|
103
|
+
*/
|
|
104
|
+
function isAlreadyLinked(wuDoc, initDoc, wuId, initId) {
|
|
105
|
+
const wuHasInit = wuDoc.initiative === initId;
|
|
106
|
+
const initHasWu = Array.isArray(initDoc.wus) && initDoc.wus.includes(wuId);
|
|
107
|
+
return wuHasInit && initHasWu;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Update WU YAML in micro-worktree
|
|
111
|
+
* @param {string} worktreePath - Path to micro-worktree
|
|
112
|
+
* @param {string} wuId - WU ID
|
|
113
|
+
* @param {string} initId - Initiative ID
|
|
114
|
+
* @returns {boolean} True if changes were made
|
|
115
|
+
*/
|
|
116
|
+
function updateWUInWorktree(worktreePath, wuId, initId) {
|
|
117
|
+
const wuRelPath = WU_PATHS.WU(wuId);
|
|
118
|
+
const wuAbsPath = join(worktreePath, wuRelPath);
|
|
119
|
+
const doc = readWU(wuAbsPath, wuId);
|
|
120
|
+
// Skip if already linked
|
|
121
|
+
if (doc.initiative === initId) {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
// Update initiative field
|
|
125
|
+
doc.initiative = initId;
|
|
126
|
+
writeWU(wuAbsPath, doc);
|
|
127
|
+
console.log(`${LOG_PREFIX} ✅ Added initiative: ${initId} to ${wuId}`);
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Update Initiative YAML in micro-worktree
|
|
132
|
+
* @param {string} worktreePath - Path to micro-worktree
|
|
133
|
+
* @param {string} initId - Initiative ID
|
|
134
|
+
* @param {string} wuId - WU ID to add
|
|
135
|
+
* @returns {boolean} True if changes were made
|
|
136
|
+
*/
|
|
137
|
+
function updateInitiativeInWorktree(worktreePath, initId, wuId) {
|
|
138
|
+
const initRelPath = INIT_PATHS.INITIATIVE(initId);
|
|
139
|
+
const initAbsPath = join(worktreePath, initRelPath);
|
|
140
|
+
const doc = readInitiative(initAbsPath, initId);
|
|
141
|
+
// Initialize wus array if not present
|
|
142
|
+
if (!Array.isArray(doc.wus)) {
|
|
143
|
+
doc.wus = [];
|
|
144
|
+
}
|
|
145
|
+
// Skip if already in list
|
|
146
|
+
if (doc.wus.includes(wuId)) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
// Add WU to list
|
|
150
|
+
doc.wus.push(wuId);
|
|
151
|
+
writeInitiative(initAbsPath, doc);
|
|
152
|
+
console.log(`${LOG_PREFIX} ✅ Added ${wuId} to ${initId} wus list`);
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
async function main() {
|
|
156
|
+
const args = createWUParser({
|
|
157
|
+
name: 'initiative-add-wu',
|
|
158
|
+
description: 'Link a WU to an initiative bidirectionally',
|
|
159
|
+
options: [WU_OPTIONS.initiative, WU_OPTIONS.wu],
|
|
160
|
+
required: ['initiative', 'wu'],
|
|
161
|
+
allowPositionalId: false,
|
|
162
|
+
});
|
|
163
|
+
// Normalize args
|
|
164
|
+
const wuId = args.wu;
|
|
165
|
+
const initId = args.initiative;
|
|
166
|
+
console.log(`${LOG_PREFIX} Linking ${wuId} to ${initId}...`);
|
|
167
|
+
// Pre-flight validation
|
|
168
|
+
validateInitIdFormat(initId);
|
|
169
|
+
validateWuIdFormat(wuId);
|
|
170
|
+
const wuDoc = checkWUExists(wuId);
|
|
171
|
+
const initDoc = checkInitiativeExists(initId);
|
|
172
|
+
// Check for conflicting links
|
|
173
|
+
checkConflictingLink(wuDoc, initId);
|
|
174
|
+
// Idempotent check
|
|
175
|
+
if (isAlreadyLinked(wuDoc, initDoc, wuId, initId)) {
|
|
176
|
+
console.log(`${LOG_PREFIX} ✅ Link already exists (idempotent - no changes needed)`);
|
|
177
|
+
console.log(`\n${LOG_PREFIX} ${wuId} is already linked to ${initId}`);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
// Ensure on main branch
|
|
181
|
+
await ensureOnMain(getGitForCwd());
|
|
182
|
+
// Transaction: micro-worktree isolation
|
|
183
|
+
try {
|
|
184
|
+
await withMicroWorktree({
|
|
185
|
+
operation: OPERATION_NAME,
|
|
186
|
+
id: `${wuId}-${initId}`.toLowerCase(),
|
|
187
|
+
logPrefix: LOG_PREFIX,
|
|
188
|
+
pushOnly: true,
|
|
189
|
+
execute: async ({ worktreePath }) => {
|
|
190
|
+
const files = [];
|
|
191
|
+
// Update WU YAML
|
|
192
|
+
const wuChanged = updateWUInWorktree(worktreePath, wuId, initId);
|
|
193
|
+
if (wuChanged) {
|
|
194
|
+
files.push(WU_PATHS.WU(wuId));
|
|
195
|
+
}
|
|
196
|
+
// Update Initiative YAML
|
|
197
|
+
const initChanged = updateInitiativeInWorktree(worktreePath, initId, wuId);
|
|
198
|
+
if (initChanged) {
|
|
199
|
+
files.push(INIT_PATHS.INITIATIVE(initId));
|
|
200
|
+
}
|
|
201
|
+
// If no changes, this is idempotent (race condition handling)
|
|
202
|
+
if (files.length === 0) {
|
|
203
|
+
console.log(`${LOG_PREFIX} ⚠️ No changes detected (concurrent link operation)`);
|
|
204
|
+
// Still need to return something for the commit
|
|
205
|
+
return {
|
|
206
|
+
commitMessage: INIT_COMMIT_FORMATS.LINK_WU(wuId, initId),
|
|
207
|
+
files: [WU_PATHS.WU(wuId), INIT_PATHS.INITIATIVE(initId)],
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
commitMessage: INIT_COMMIT_FORMATS.LINK_WU(wuId, initId),
|
|
212
|
+
files,
|
|
213
|
+
};
|
|
214
|
+
},
|
|
215
|
+
});
|
|
216
|
+
console.log(`\n${LOG_PREFIX} ✅ Transaction complete!`);
|
|
217
|
+
console.log(`\nLink Created:`);
|
|
218
|
+
console.log(` WU: ${wuId}`);
|
|
219
|
+
console.log(` Initiative: ${initId}`);
|
|
220
|
+
console.log(`\nNext steps:`);
|
|
221
|
+
console.log(` - View initiative status: pnpm initiative:status ${initId}`);
|
|
222
|
+
console.log(` - View WU: cat ${WU_PATHS.WU(wuId)}`);
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
die(`Transaction failed: ${error.message}\n\n` +
|
|
226
|
+
`Micro-worktree cleanup was attempted automatically.\n` +
|
|
227
|
+
`If issue persists, check for orphaned branches: git branch | grep tmp/${OPERATION_NAME}`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Guard main() for testability
|
|
231
|
+
import { fileURLToPath } from 'node:url';
|
|
232
|
+
if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
|
233
|
+
main();
|
|
234
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initiative-add-wu.js","sourceRoot":"","sources":["../src/initiative-add-wu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Initiative Create Helper (WU-1247, WU-1439)
|
|
4
|
+
*
|
|
5
|
+
* Race-safe Initiative creation using micro-worktree isolation.
|
|
6
|
+
*
|
|
7
|
+
* Canonical sequence:
|
|
8
|
+
* 1) Validate inputs (id, slug, title)
|
|
9
|
+
* 2) Ensure on main branch
|
|
10
|
+
* 3) Use micro-worktree to atomically:
|
|
11
|
+
* a) Create temp branch without switching main checkout
|
|
12
|
+
* b) Create INIT-{id}.yaml in micro-worktree
|
|
13
|
+
* c) Commit with "docs: create init-{id} for <title>" message
|
|
14
|
+
* d) Merge to main with ff-only (retry with rebase if needed)
|
|
15
|
+
* e) Push to origin/main
|
|
16
|
+
* f) Cleanup temp branch and micro-worktree
|
|
17
|
+
*
|
|
18
|
+
* Benefits:
|
|
19
|
+
* - Main checkout never modified (no impact on other agents)
|
|
20
|
+
* - Race conditions handled via rebase+retry (up to 3 attempts)
|
|
21
|
+
* - Cleanup guaranteed even on failure
|
|
22
|
+
*
|
|
23
|
+
* Usage:
|
|
24
|
+
* pnpm initiative:create --id INIT-001 --slug shock-protocol --title "Shock Protocol Implementation"
|
|
25
|
+
*
|
|
26
|
+
* Context: WU-1247 (original implementation), WU-1439 (micro-worktree migration)
|
|
27
|
+
*/
|
|
28
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initiative-create.d.ts","sourceRoot":"","sources":["../src/initiative-create.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/* eslint-disable security/detect-non-literal-fs-filename */
|
|
3
|
+
/**
|
|
4
|
+
* Initiative Create Helper (WU-1247, WU-1439)
|
|
5
|
+
*
|
|
6
|
+
* Race-safe Initiative creation using micro-worktree isolation.
|
|
7
|
+
*
|
|
8
|
+
* Canonical sequence:
|
|
9
|
+
* 1) Validate inputs (id, slug, title)
|
|
10
|
+
* 2) Ensure on main branch
|
|
11
|
+
* 3) Use micro-worktree to atomically:
|
|
12
|
+
* a) Create temp branch without switching main checkout
|
|
13
|
+
* b) Create INIT-{id}.yaml in micro-worktree
|
|
14
|
+
* c) Commit with "docs: create init-{id} for <title>" message
|
|
15
|
+
* d) Merge to main with ff-only (retry with rebase if needed)
|
|
16
|
+
* e) Push to origin/main
|
|
17
|
+
* f) Cleanup temp branch and micro-worktree
|
|
18
|
+
*
|
|
19
|
+
* Benefits:
|
|
20
|
+
* - Main checkout never modified (no impact on other agents)
|
|
21
|
+
* - Race conditions handled via rebase+retry (up to 3 attempts)
|
|
22
|
+
* - Cleanup guaranteed even on failure
|
|
23
|
+
*
|
|
24
|
+
* Usage:
|
|
25
|
+
* pnpm initiative:create --id INIT-001 --slug shock-protocol --title "Shock Protocol Implementation"
|
|
26
|
+
*
|
|
27
|
+
* Context: WU-1247 (original implementation), WU-1439 (micro-worktree migration)
|
|
28
|
+
*/
|
|
29
|
+
import { getGitForCwd } from '@lumenflow/core/dist/git-adapter.js';
|
|
30
|
+
import { die } from '@lumenflow/core/dist/error-handler.js';
|
|
31
|
+
import { existsSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
32
|
+
import { join } from 'node:path';
|
|
33
|
+
import yaml from 'js-yaml';
|
|
34
|
+
import { createWUParser, WU_OPTIONS } from '@lumenflow/core/dist/arg-parser.js';
|
|
35
|
+
import { INIT_PATHS } from '@lumenflow/initiatives/dist/initiative-paths.js';
|
|
36
|
+
import { INIT_PATTERNS, INIT_COMMIT_FORMATS, INIT_DEFAULTS, } from '@lumenflow/initiatives/dist/initiative-constants.js';
|
|
37
|
+
import { FILE_SYSTEM, YAML_OPTIONS } from '@lumenflow/core/dist/wu-constants.js';
|
|
38
|
+
import { ensureOnMain } from '@lumenflow/core/dist/wu-helpers.js';
|
|
39
|
+
import { withMicroWorktree } from '@lumenflow/core/dist/micro-worktree.js';
|
|
40
|
+
// WU-1428: Use date-utils for consistent YYYY-MM-DD format (library-first)
|
|
41
|
+
import { todayISO } from '@lumenflow/core/dist/date-utils.js';
|
|
42
|
+
/** Log prefix for console output */
|
|
43
|
+
const LOG_PREFIX = '[initiative:create]';
|
|
44
|
+
/** Micro-worktree operation name */
|
|
45
|
+
const OPERATION_NAME = 'initiative-create';
|
|
46
|
+
/**
|
|
47
|
+
* Validate Initiative ID format
|
|
48
|
+
* @param {string} id - Initiative ID to validate
|
|
49
|
+
*/
|
|
50
|
+
function validateInitIdFormat(id) {
|
|
51
|
+
if (!INIT_PATTERNS.INIT_ID.test(id)) {
|
|
52
|
+
die(`Invalid Initiative ID format: "${id}"\n\nExpected format: INIT-<number> (e.g., INIT-001)`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Validate slug format (kebab-case)
|
|
57
|
+
* @param {string} slug - Slug to validate
|
|
58
|
+
*/
|
|
59
|
+
function validateSlugFormat(slug) {
|
|
60
|
+
if (!INIT_PATTERNS.SLUG.test(slug)) {
|
|
61
|
+
die(`Invalid slug format: "${slug}"\n\n` +
|
|
62
|
+
`Slugs must be kebab-case (lowercase letters, numbers, hyphens only)\n` +
|
|
63
|
+
`Examples: shock-protocol, lumenflow-saas-v2`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if Initiative already exists
|
|
68
|
+
* @param {string} id - Initiative ID to check
|
|
69
|
+
*/
|
|
70
|
+
function checkInitiativeExists(id) {
|
|
71
|
+
const initPath = INIT_PATHS.INITIATIVE(id);
|
|
72
|
+
if (existsSync(initPath)) {
|
|
73
|
+
die(`Initiative already exists: ${initPath}\n\nChoose a different Initiative ID`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function createInitiativeYamlInWorktree(worktreePath, id, slug, title, options = {}) {
|
|
77
|
+
const initRelativePath = INIT_PATHS.INITIATIVE(id);
|
|
78
|
+
const initAbsolutePath = join(worktreePath, initRelativePath);
|
|
79
|
+
const initDir = join(worktreePath, INIT_PATHS.INITIATIVES_DIR());
|
|
80
|
+
// Ensure directory exists
|
|
81
|
+
if (!existsSync(initDir)) {
|
|
82
|
+
mkdirSync(initDir, { recursive: true });
|
|
83
|
+
}
|
|
84
|
+
// WU-1428: Use todayISO() for consistent YYYY-MM-DD format (library-first)
|
|
85
|
+
const today = todayISO();
|
|
86
|
+
const initContent = {
|
|
87
|
+
id,
|
|
88
|
+
slug,
|
|
89
|
+
title,
|
|
90
|
+
description: '',
|
|
91
|
+
status: INIT_DEFAULTS.STATUS,
|
|
92
|
+
priority: options.priority || INIT_DEFAULTS.PRIORITY,
|
|
93
|
+
...(options.owner && { owner: options.owner }),
|
|
94
|
+
created: today,
|
|
95
|
+
...(options.targetDate && { target_date: options.targetDate }),
|
|
96
|
+
phases: [],
|
|
97
|
+
success_metrics: [],
|
|
98
|
+
labels: [],
|
|
99
|
+
};
|
|
100
|
+
const yamlContent = yaml.dump(initContent, {
|
|
101
|
+
lineWidth: YAML_OPTIONS.LINE_WIDTH,
|
|
102
|
+
quotingType: '"',
|
|
103
|
+
forceQuotes: false,
|
|
104
|
+
});
|
|
105
|
+
writeFileSync(initAbsolutePath, yamlContent, { encoding: FILE_SYSTEM.UTF8 });
|
|
106
|
+
console.log(`${LOG_PREFIX} ✅ Created ${id}.yaml in micro-worktree`);
|
|
107
|
+
return initRelativePath;
|
|
108
|
+
}
|
|
109
|
+
async function main() {
|
|
110
|
+
const args = createWUParser({
|
|
111
|
+
name: 'initiative-create',
|
|
112
|
+
description: 'Create a new Initiative with micro-worktree isolation (race-safe)',
|
|
113
|
+
options: [
|
|
114
|
+
WU_OPTIONS.id,
|
|
115
|
+
WU_OPTIONS.slug,
|
|
116
|
+
WU_OPTIONS.title,
|
|
117
|
+
WU_OPTIONS.priority,
|
|
118
|
+
WU_OPTIONS.owner,
|
|
119
|
+
WU_OPTIONS.targetDate,
|
|
120
|
+
],
|
|
121
|
+
required: ['id', 'slug', 'title'],
|
|
122
|
+
allowPositionalId: false,
|
|
123
|
+
});
|
|
124
|
+
console.log(`${LOG_PREFIX} Creating Initiative ${args.id} (${args.slug})...`);
|
|
125
|
+
// Pre-flight checks (validation only - no main modification)
|
|
126
|
+
validateInitIdFormat(args.id);
|
|
127
|
+
validateSlugFormat(args.slug);
|
|
128
|
+
checkInitiativeExists(args.id);
|
|
129
|
+
await ensureOnMain(getGitForCwd());
|
|
130
|
+
// Transaction: micro-worktree isolation (WU-1439)
|
|
131
|
+
try {
|
|
132
|
+
await withMicroWorktree({
|
|
133
|
+
operation: OPERATION_NAME,
|
|
134
|
+
id: args.id,
|
|
135
|
+
logPrefix: LOG_PREFIX,
|
|
136
|
+
execute: async ({ worktreePath }) => {
|
|
137
|
+
// Create Initiative YAML in micro-worktree
|
|
138
|
+
const initPath = createInitiativeYamlInWorktree(worktreePath, args.id, args.slug, args.title, {
|
|
139
|
+
priority: args.priority,
|
|
140
|
+
owner: args.owner,
|
|
141
|
+
targetDate: args.targetDate,
|
|
142
|
+
});
|
|
143
|
+
// Return commit message and files to commit
|
|
144
|
+
return {
|
|
145
|
+
commitMessage: INIT_COMMIT_FORMATS.CREATE(args.id, args.title),
|
|
146
|
+
files: [initPath],
|
|
147
|
+
};
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
console.log(`\n${LOG_PREFIX} ✅ Transaction complete!`);
|
|
151
|
+
console.log(`\nInitiative Created:`);
|
|
152
|
+
console.log(` ID: ${args.id}`);
|
|
153
|
+
console.log(` Slug: ${args.slug}`);
|
|
154
|
+
console.log(` Title: ${args.title}`);
|
|
155
|
+
console.log(` Status: ${INIT_DEFAULTS.STATUS}`);
|
|
156
|
+
console.log(` File: ${INIT_PATHS.INITIATIVE(args.id)}`);
|
|
157
|
+
console.log(`\nNext steps:`);
|
|
158
|
+
console.log(` 1. Edit ${args.id}.yaml to add description, phases, and success_metrics`);
|
|
159
|
+
console.log(` 2. Link WUs to this initiative: pnpm wu:create --initiative ${args.id} ...`);
|
|
160
|
+
console.log(` 3. View status: pnpm initiative:status ${args.id}`);
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
die(`Transaction failed: ${error.message}\n\n` +
|
|
164
|
+
`Micro-worktree cleanup was attempted automatically.\n` +
|
|
165
|
+
`If issue persists, check for orphaned branches: git branch | grep tmp/${OPERATION_NAME}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Guard main() for testability
|
|
169
|
+
import { fileURLToPath } from 'node:url';
|
|
170
|
+
if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
|
171
|
+
main();
|
|
172
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initiative-create.js","sourceRoot":"","sources":["../src/initiative-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Initiative Edit Helper
|
|
4
|
+
*
|
|
5
|
+
* Race-safe Initiative editing using micro-worktree isolation (WU-1451).
|
|
6
|
+
*
|
|
7
|
+
* Enables editing Initiative YAML files with atomic commits, perfect for:
|
|
8
|
+
* - Updating initiative status
|
|
9
|
+
* - Setting blocked_by and blocked_reason
|
|
10
|
+
* - Unblocking initiatives
|
|
11
|
+
* - Adding lanes
|
|
12
|
+
* - Appending notes
|
|
13
|
+
* - Fixing malformed created dates (WU-2547)
|
|
14
|
+
*
|
|
15
|
+
* Uses the micro-worktree pattern with pushOnly mode (WU-1435):
|
|
16
|
+
* 1) Validate inputs (Initiative exists, status is valid enum)
|
|
17
|
+
* 2) Ensure main is clean and up-to-date with origin
|
|
18
|
+
* 3) Create temp branch WITHOUT switching (main checkout stays on main)
|
|
19
|
+
* 4) Create micro-worktree in /tmp pointing to temp branch
|
|
20
|
+
* 5) Apply edits in micro-worktree
|
|
21
|
+
* 6) Commit, push directly to origin/main
|
|
22
|
+
* 7) Cleanup temp branch and micro-worktree
|
|
23
|
+
*
|
|
24
|
+
* Usage:
|
|
25
|
+
* pnpm initiative:edit --id INIT-001 --status in_progress
|
|
26
|
+
* pnpm initiative:edit --id INIT-001 --blocked-by INIT-002 --blocked-reason "Waiting for Phase 1"
|
|
27
|
+
* pnpm initiative:edit --id INIT-001 --unblock
|
|
28
|
+
* pnpm initiative:edit --id INIT-001 --add-lane "Operations: Tooling"
|
|
29
|
+
* pnpm initiative:edit --id INIT-001 --notes "Phase 2 started"
|
|
30
|
+
*
|
|
31
|
+
* Part of WU-1451: Add initiative:edit command for updating initiative status and blockers
|
|
32
|
+
* @see {@link tools/lib/micro-worktree.mjs} - Shared micro-worktree logic
|
|
33
|
+
*/
|
|
34
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initiative-edit.d.ts","sourceRoot":"","sources":["../src/initiative-edit.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG"}
|