devflow-kit 0.4.0 โ 0.6.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/CHANGELOG.md +129 -0
- package/README.md +61 -9
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +160 -176
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +73 -48
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/utils/git.d.ts +11 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +36 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/paths.d.ts +32 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +86 -0
- package/dist/utils/paths.js.map +1 -0
- package/package.json +1 -1
- package/src/claude/agents/devflow/audit-architecture.md +92 -110
- package/src/claude/agents/devflow/audit-complexity.md +94 -130
- package/src/claude/agents/devflow/audit-database.md +95 -136
- package/src/claude/agents/devflow/audit-dependencies.md +94 -136
- package/src/claude/agents/devflow/audit-documentation.md +82 -323
- package/src/claude/agents/devflow/audit-performance.md +212 -107
- package/src/claude/agents/devflow/audit-security.md +201 -83
- package/src/claude/agents/devflow/audit-tests.md +82 -471
- package/src/claude/agents/devflow/audit-typescript.md +83 -311
- package/src/claude/agents/devflow/pull-request.md +423 -0
- package/src/claude/commands/devflow/code-review.md +297 -248
- package/src/claude/commands/devflow/plan-next-steps.md +1 -1
- package/src/claude/commands/devflow/plan.md +485 -0
- package/src/claude/commands/devflow/pull-request.md +269 -0
- package/src/claude/commands/devflow/resolve-comments.md +583 -0
- package/src/claude/scripts/statusline.sh +0 -36
package/dist/commands/init.js
CHANGED
|
@@ -1,43 +1,17 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { promises as fs } from 'fs';
|
|
3
3
|
import * as path from 'path';
|
|
4
|
-
import { homedir } from 'os';
|
|
5
|
-
import { execSync } from 'child_process';
|
|
6
4
|
import { fileURLToPath } from 'url';
|
|
7
5
|
import { dirname } from 'path';
|
|
8
6
|
import * as readline from 'readline';
|
|
7
|
+
import { getInstallationPaths } from '../utils/paths.js';
|
|
8
|
+
import { getGitRoot } from '../utils/git.js';
|
|
9
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
10
|
const __dirname = dirname(__filename);
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
function getHomeDirectory() {
|
|
16
|
-
const home = process.env.HOME || homedir();
|
|
17
|
-
if (!home) {
|
|
18
|
-
throw new Error('Unable to determine home directory. Set HOME environment variable.');
|
|
19
|
-
}
|
|
20
|
-
return home;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Get Claude Code directory with environment variable override support
|
|
24
|
-
* Priority: CLAUDE_CODE_DIR env var > ~/.claude
|
|
25
|
-
*/
|
|
26
|
-
function getClaudeDirectory() {
|
|
27
|
-
if (process.env.CLAUDE_CODE_DIR) {
|
|
28
|
-
return process.env.CLAUDE_CODE_DIR;
|
|
29
|
-
}
|
|
30
|
-
return path.join(getHomeDirectory(), '.claude');
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Get DevFlow directory with environment variable override support
|
|
34
|
-
* Priority: DEVFLOW_DIR env var > ~/.devflow
|
|
35
|
-
*/
|
|
36
|
-
function getDevFlowDirectory() {
|
|
37
|
-
if (process.env.DEVFLOW_DIR) {
|
|
38
|
-
return process.env.DEVFLOW_DIR;
|
|
39
|
-
}
|
|
40
|
-
return path.join(getHomeDirectory(), '.devflow');
|
|
11
|
+
function isNodeSystemError(error) {
|
|
12
|
+
return (error instanceof Error &&
|
|
13
|
+
'code' in error &&
|
|
14
|
+
typeof error.code === 'string');
|
|
41
15
|
}
|
|
42
16
|
/**
|
|
43
17
|
* Prompt user for confirmation (async)
|
|
@@ -57,8 +31,7 @@ async function promptUser(question) {
|
|
|
57
31
|
export const initCommand = new Command('init')
|
|
58
32
|
.description('Initialize DevFlow for Claude Code')
|
|
59
33
|
.option('--skip-docs', 'Skip creating .docs/ structure')
|
|
60
|
-
.option('--
|
|
61
|
-
.option('-y, --yes', 'Auto-approve all prompts (use with --force)')
|
|
34
|
+
.option('--scope <type>', 'Installation scope: user (user-wide) or local (project-only)', /^(user|local)$/i)
|
|
62
35
|
.action(async (options) => {
|
|
63
36
|
// Get package version
|
|
64
37
|
const packageJsonPath = path.resolve(__dirname, '../../package.json');
|
|
@@ -70,43 +43,90 @@ export const initCommand = new Command('init')
|
|
|
70
43
|
catch {
|
|
71
44
|
version = 'unknown';
|
|
72
45
|
}
|
|
73
|
-
console.log(`๐ DevFlow v${version}
|
|
46
|
+
console.log(`๐ DevFlow v${version}\n`);
|
|
47
|
+
// Determine installation scope
|
|
48
|
+
let scope = 'user'; // Default to user for backwards compatibility
|
|
49
|
+
if (options.scope) {
|
|
50
|
+
scope = options.scope.toLowerCase();
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// Check if running in interactive terminal (TTY)
|
|
54
|
+
if (!process.stdin.isTTY) {
|
|
55
|
+
// Non-interactive environment (CI/CD, scripts) - use default
|
|
56
|
+
console.log('๐ฆ Non-interactive environment detected, using default scope: user');
|
|
57
|
+
console.log(' To specify scope in CI/CD, use: devflow init --scope <user|local>\n');
|
|
58
|
+
scope = 'user';
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Interactive prompt for scope
|
|
62
|
+
console.log('๐ฆ Installation Scope:\n');
|
|
63
|
+
console.log(' user - Install for all projects (user-wide)');
|
|
64
|
+
console.log(' โโ ~/.claude/ and ~/.devflow/');
|
|
65
|
+
console.log(' local - Install for current project only');
|
|
66
|
+
console.log(' โโ <git-root>/.claude/ and <git-root>/.devflow/\n');
|
|
67
|
+
const rl = readline.createInterface({
|
|
68
|
+
input: process.stdin,
|
|
69
|
+
output: process.stdout
|
|
70
|
+
});
|
|
71
|
+
const answer = await new Promise((resolve) => {
|
|
72
|
+
rl.question('Choose scope (user/local) [user]: ', (input) => {
|
|
73
|
+
rl.close();
|
|
74
|
+
resolve(input.trim().toLowerCase() || 'user');
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
if (answer === 'local' || answer === 'l') {
|
|
78
|
+
scope = 'local';
|
|
79
|
+
}
|
|
80
|
+
else if (answer === 'user' || answer === 'u' || answer === '') {
|
|
81
|
+
scope = 'user';
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.error('โ Invalid scope. Use "user" or "local"\n');
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
console.log();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
74
90
|
// Get installation paths with proper validation
|
|
75
91
|
let claudeDir;
|
|
76
92
|
let devflowDir;
|
|
93
|
+
let gitRoot = null;
|
|
77
94
|
try {
|
|
78
|
-
|
|
79
|
-
|
|
95
|
+
const paths = await getInstallationPaths(scope);
|
|
96
|
+
claudeDir = paths.claudeDir;
|
|
97
|
+
devflowDir = paths.devflowDir;
|
|
98
|
+
// Cache git root for later use (already computed in getInstallationPaths for local scope)
|
|
99
|
+
gitRoot = await getGitRoot();
|
|
100
|
+
console.log(`๐ Installation scope: ${scope}`);
|
|
101
|
+
console.log(` Claude dir: ${claudeDir}`);
|
|
102
|
+
console.log(` DevFlow dir: ${devflowDir}\n`);
|
|
80
103
|
}
|
|
81
104
|
catch (error) {
|
|
82
105
|
console.error('โ Path configuration error:', error instanceof Error ? error.message : error);
|
|
83
106
|
process.exit(1);
|
|
84
107
|
}
|
|
85
|
-
// Check for Claude Code
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
108
|
+
// Check for Claude Code (only for user scope)
|
|
109
|
+
if (scope === 'user') {
|
|
110
|
+
try {
|
|
111
|
+
await fs.access(claudeDir);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
console.error(`โ Claude Code not detected at ${claudeDir}`);
|
|
115
|
+
console.error(' Install from: https://claude.com/claude-code');
|
|
116
|
+
console.error(' Or set CLAUDE_CODE_DIR if installed elsewhere\n');
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
console.log('โ Claude Code detected');
|
|
94
120
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
121
|
+
else {
|
|
122
|
+
// Local scope - create .claude directory if it doesn't exist
|
|
123
|
+
try {
|
|
124
|
+
await fs.mkdir(claudeDir, { recursive: true });
|
|
125
|
+
console.log('โ Local .claude directory ready');
|
|
100
126
|
}
|
|
101
|
-
|
|
102
|
-
console.
|
|
103
|
-
|
|
104
|
-
forceOverride = await promptUser('Proceed? (y/N): ');
|
|
105
|
-
console.log();
|
|
106
|
-
if (!forceOverride) {
|
|
107
|
-
console.log('โ Cancelled. Use init without --force for safe installation.\n');
|
|
108
|
-
process.exit(0);
|
|
109
|
-
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
console.error(`โ Failed to create ${claudeDir}:`, error);
|
|
129
|
+
process.exit(1);
|
|
110
130
|
}
|
|
111
131
|
}
|
|
112
132
|
// Get the root directory of the devflow package
|
|
@@ -156,135 +176,63 @@ export const initCommand = new Command('init')
|
|
|
156
176
|
for (const script of scripts) {
|
|
157
177
|
await fs.chmod(path.join(scriptsDir, script), 0o755);
|
|
158
178
|
}
|
|
159
|
-
console.log('โ Claude Code detected');
|
|
160
179
|
console.log('โ Installing components... (commands, agents, skills, scripts)');
|
|
161
|
-
// Install settings
|
|
180
|
+
// Install settings.json - never override existing files (atomic operation)
|
|
162
181
|
const settingsPath = path.join(claudeDir, 'settings.json');
|
|
163
|
-
const managedSettingsPath = path.join(claudeDir, 'managed-settings.json');
|
|
164
182
|
const devflowSettingsPath = path.join(claudeDir, 'settings.devflow.json');
|
|
165
183
|
const sourceSettingsPath = path.join(claudeSourceDir, 'settings.json');
|
|
166
184
|
// Read template and replace ~ with actual home directory
|
|
167
185
|
const settingsTemplate = await fs.readFile(sourceSettingsPath, 'utf-8');
|
|
168
186
|
const settingsContent = settingsTemplate.replace(/~\/\.devflow\/scripts\/statusline\.sh/g, path.join(devflowDir, 'scripts', 'statusline.sh'));
|
|
169
|
-
let
|
|
170
|
-
|
|
171
|
-
//
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
await fs.rename(settingsPath, path.join(claudeDir, 'settings.json.backup'));
|
|
175
|
-
}
|
|
176
|
-
catch {
|
|
177
|
-
// No existing file
|
|
178
|
-
}
|
|
179
|
-
await fs.writeFile(settingsPath, settingsContent, 'utf-8');
|
|
180
|
-
settingsAction = 'force-installed';
|
|
187
|
+
let settingsExists = false;
|
|
188
|
+
try {
|
|
189
|
+
// Atomic exclusive create - fails if file already exists
|
|
190
|
+
await fs.writeFile(settingsPath, settingsContent, { encoding: 'utf-8', flag: 'wx' });
|
|
191
|
+
console.log('โ Settings configured');
|
|
181
192
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
await fs.
|
|
187
|
-
|
|
188
|
-
try {
|
|
189
|
-
// Check if managed-settings.json already exists
|
|
190
|
-
await fs.access(managedSettingsPath);
|
|
191
|
-
// managed-settings.json exists - install as settings.devflow.json
|
|
192
|
-
await fs.writeFile(devflowSettingsPath, settingsContent, 'utf-8');
|
|
193
|
-
settingsAction = 'saved-as-devflow';
|
|
194
|
-
}
|
|
195
|
-
catch {
|
|
196
|
-
// managed-settings.json doesn't exist - safe to backup and install
|
|
197
|
-
await fs.rename(settingsPath, managedSettingsPath);
|
|
198
|
-
await fs.writeFile(settingsPath, settingsContent, 'utf-8');
|
|
199
|
-
settingsAction = 'backed-up';
|
|
200
|
-
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (isNodeSystemError(error) && error.code === 'EEXIST') {
|
|
195
|
+
// Existing settings.json found - install as settings.devflow.json
|
|
196
|
+
settingsExists = true;
|
|
197
|
+
await fs.writeFile(devflowSettingsPath, settingsContent, 'utf-8');
|
|
198
|
+
console.log('โ ๏ธ Existing settings.json preserved โ DevFlow config: settings.devflow.json');
|
|
201
199
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
await fs.writeFile(settingsPath, settingsContent, 'utf-8');
|
|
205
|
-
settingsAction = 'fresh-install';
|
|
200
|
+
else {
|
|
201
|
+
throw error;
|
|
206
202
|
}
|
|
207
203
|
}
|
|
208
|
-
// Install CLAUDE.md
|
|
204
|
+
// Install CLAUDE.md - never override existing files (atomic operation)
|
|
209
205
|
const claudeMdPath = path.join(claudeDir, 'CLAUDE.md');
|
|
210
206
|
const devflowClaudeMdPath = path.join(claudeDir, 'CLAUDE.devflow.md');
|
|
211
207
|
const sourceClaudeMdPath = path.join(claudeSourceDir, 'CLAUDE.md');
|
|
212
|
-
let
|
|
213
|
-
|
|
214
|
-
//
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
catch {
|
|
220
|
-
// No existing file
|
|
221
|
-
}
|
|
222
|
-
await fs.copyFile(sourceClaudeMdPath, claudeMdPath);
|
|
223
|
-
claudeMdAction = 'force-installed';
|
|
208
|
+
let claudeMdExists = false;
|
|
209
|
+
try {
|
|
210
|
+
// Atomic exclusive create - fails if file already exists
|
|
211
|
+
const content = await fs.readFile(sourceClaudeMdPath, 'utf-8');
|
|
212
|
+
await fs.writeFile(claudeMdPath, content, { encoding: 'utf-8', flag: 'wx' });
|
|
213
|
+
console.log('โ CLAUDE.md configured');
|
|
224
214
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
await fs.access(claudeMdPath);
|
|
230
|
-
// User has CLAUDE.md - install as CLAUDE.devflow.md
|
|
215
|
+
catch (error) {
|
|
216
|
+
if (isNodeSystemError(error) && error.code === 'EEXIST') {
|
|
217
|
+
// Existing CLAUDE.md found - install as CLAUDE.devflow.md
|
|
218
|
+
claudeMdExists = true;
|
|
231
219
|
await fs.copyFile(sourceClaudeMdPath, devflowClaudeMdPath);
|
|
232
|
-
|
|
220
|
+
console.log('โ ๏ธ Existing CLAUDE.md preserved โ DevFlow guide: CLAUDE.devflow.md');
|
|
233
221
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
await fs.copyFile(sourceClaudeMdPath, claudeMdPath);
|
|
237
|
-
claudeMdAction = 'fresh-install';
|
|
222
|
+
else {
|
|
223
|
+
throw error;
|
|
238
224
|
}
|
|
239
225
|
}
|
|
240
|
-
// Show concise status messages
|
|
241
|
-
if (settingsAction === 'force-installed') {
|
|
242
|
-
console.log('โ Settings force-installed (backup: settings.json.backup)');
|
|
243
|
-
}
|
|
244
|
-
else if (settingsAction === 'backed-up') {
|
|
245
|
-
console.log('โ Settings configured');
|
|
246
|
-
}
|
|
247
|
-
else if (settingsAction === 'saved-as-devflow') {
|
|
248
|
-
console.log('โ ๏ธ Existing settings preserved โ DevFlow saved to settings.devflow.json');
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
console.log('โ Settings configured');
|
|
252
|
-
}
|
|
253
|
-
if (claudeMdAction === 'force-installed') {
|
|
254
|
-
console.log('โ CLAUDE.md force-installed (backup: CLAUDE.md.backup)');
|
|
255
|
-
}
|
|
256
|
-
else if (claudeMdAction === 'saved-as-devflow') {
|
|
257
|
-
console.log('โ ๏ธ Existing CLAUDE.md preserved โ DevFlow saved to CLAUDE.devflow.md');
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
console.log('โ CLAUDE.md configured');
|
|
261
|
-
}
|
|
262
226
|
// Create .claudeignore in git repository root
|
|
263
227
|
let claudeignoreCreated = false;
|
|
264
228
|
try {
|
|
265
|
-
//
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
encoding: 'utf-8',
|
|
269
|
-
stdio: ['pipe', 'pipe', 'pipe'] // Isolate stderr
|
|
270
|
-
}).trim();
|
|
271
|
-
// Validate git root path (security: prevent injection)
|
|
272
|
-
if (!gitRootRaw || gitRootRaw.includes('\n') || gitRootRaw.includes(';') || gitRootRaw.includes('&&')) {
|
|
273
|
-
throw new Error('Invalid git root path returned');
|
|
274
|
-
}
|
|
275
|
-
// Validate it's an absolute path
|
|
276
|
-
const gitRoot = path.resolve(gitRootRaw);
|
|
277
|
-
if (!path.isAbsolute(gitRoot)) {
|
|
278
|
-
throw new Error('Git root must be an absolute path');
|
|
229
|
+
// Use cached git root (already computed and validated earlier)
|
|
230
|
+
if (!gitRoot) {
|
|
231
|
+
throw new Error('Not in a git repository');
|
|
279
232
|
}
|
|
280
233
|
const claudeignorePath = path.join(gitRoot, '.claudeignore');
|
|
281
|
-
//
|
|
282
|
-
|
|
283
|
-
await fs.access(claudeignorePath);
|
|
284
|
-
}
|
|
285
|
-
catch {
|
|
286
|
-
// Create comprehensive .claudeignore
|
|
287
|
-
const claudeignoreContent = `# DevFlow .claudeignore - Protects against sensitive files and context pollution
|
|
234
|
+
// Atomic exclusive create - only create if doesn't exist
|
|
235
|
+
const claudeignoreContent = `# DevFlow .claudeignore - Protects against sensitive files and context pollution
|
|
288
236
|
# Generated by DevFlow - Edit as needed for your project
|
|
289
237
|
|
|
290
238
|
# === SECURITY: Sensitive Files ===
|
|
@@ -473,9 +421,9 @@ Gemfile.lock
|
|
|
473
421
|
poetry.lock
|
|
474
422
|
Pipfile.lock
|
|
475
423
|
`;
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
424
|
+
// Atomic exclusive create - fails if file already exists
|
|
425
|
+
await fs.writeFile(claudeignorePath, claudeignoreContent, { encoding: 'utf-8', flag: 'wx' });
|
|
426
|
+
claudeignoreCreated = true;
|
|
479
427
|
}
|
|
480
428
|
catch (error) {
|
|
481
429
|
// Not a git repository or other error - skip .claudeignore creation
|
|
@@ -483,6 +431,37 @@ Pipfile.lock
|
|
|
483
431
|
if (claudeignoreCreated) {
|
|
484
432
|
console.log('โ .claudeignore created');
|
|
485
433
|
}
|
|
434
|
+
// For local scope, update .gitignore to exclude .claude/ and .devflow/
|
|
435
|
+
if (scope === 'local' && gitRoot) {
|
|
436
|
+
try {
|
|
437
|
+
const gitignorePath = path.join(gitRoot, '.gitignore');
|
|
438
|
+
const entriesToAdd = ['.claude/', '.devflow/'];
|
|
439
|
+
let gitignoreContent = '';
|
|
440
|
+
try {
|
|
441
|
+
gitignoreContent = await fs.readFile(gitignorePath, 'utf-8');
|
|
442
|
+
}
|
|
443
|
+
catch {
|
|
444
|
+
// .gitignore doesn't exist, will create it
|
|
445
|
+
}
|
|
446
|
+
const linesToAdd = [];
|
|
447
|
+
for (const entry of entriesToAdd) {
|
|
448
|
+
// Check if entry already exists (exact match or pattern)
|
|
449
|
+
if (!gitignoreContent.split('\n').some(line => line.trim() === entry)) {
|
|
450
|
+
linesToAdd.push(entry);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
if (linesToAdd.length > 0) {
|
|
454
|
+
const newContent = gitignoreContent
|
|
455
|
+
? `${gitignoreContent.trimEnd()}\n\n# DevFlow local scope installation\n${linesToAdd.join('\n')}\n`
|
|
456
|
+
: `# DevFlow local scope installation\n${linesToAdd.join('\n')}\n`;
|
|
457
|
+
await fs.writeFile(gitignorePath, newContent, 'utf-8');
|
|
458
|
+
console.log('โ .gitignore updated (excluded .claude/ and .devflow/)');
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
catch (error) {
|
|
462
|
+
console.warn('โ ๏ธ Could not update .gitignore:', error instanceof Error ? error.message : error);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
486
465
|
// Offer to install project documentation structure
|
|
487
466
|
let docsCreated = false;
|
|
488
467
|
if (!options.skipDocs) {
|
|
@@ -503,25 +482,30 @@ Pipfile.lock
|
|
|
503
482
|
}
|
|
504
483
|
console.log('\nโ
Installation complete!\n');
|
|
505
484
|
// Show manual merge instructions if needed
|
|
506
|
-
if (
|
|
507
|
-
console.log('
|
|
508
|
-
if (
|
|
509
|
-
console.log(' Settings:
|
|
485
|
+
if (settingsExists || claudeMdExists) {
|
|
486
|
+
console.log('๐ Manual merge recommended:\n');
|
|
487
|
+
if (settingsExists) {
|
|
488
|
+
console.log(' Settings: Review settings.devflow.json and merge desired config into settings.json');
|
|
489
|
+
console.log(' Key setting: statusLine configuration for DevFlow statusline\n');
|
|
510
490
|
}
|
|
511
|
-
if (
|
|
512
|
-
console.log(' Instructions:
|
|
491
|
+
if (claudeMdExists) {
|
|
492
|
+
console.log(' Instructions: Review CLAUDE.devflow.md and adopt desired practices');
|
|
493
|
+
console.log(' This contains DevFlow\'s recommended development patterns\n');
|
|
513
494
|
}
|
|
514
|
-
console.log();
|
|
515
495
|
}
|
|
516
496
|
console.log('Available commands:');
|
|
517
497
|
console.log(' /catch-up Session context and status');
|
|
518
498
|
console.log(' /research Pre-implementation planning (manual)');
|
|
519
499
|
console.log(' /debug Systematic debugging (manual)');
|
|
500
|
+
console.log(' /plan Interactive planning with design decisions');
|
|
501
|
+
console.log(' /plan-next-steps Extract actionable tasks from discussion');
|
|
502
|
+
console.log(' /implement Interactive implementation orchestrator');
|
|
520
503
|
console.log(' /code-review Comprehensive code review');
|
|
521
504
|
console.log(' /commit Intelligent atomic commits');
|
|
505
|
+
console.log(' /pull-request Create PR with smart description');
|
|
506
|
+
console.log(' /resolve-comments Address PR review feedback');
|
|
522
507
|
console.log(' /devlog Session documentation');
|
|
523
508
|
console.log(' /release Release automation');
|
|
524
|
-
console.log(' /plan-next-steps Extract actionable tasks');
|
|
525
509
|
console.log('\nInstalled skills (auto-activate):');
|
|
526
510
|
console.log(' pattern-check Architectural pattern validation');
|
|
527
511
|
console.log(' test-design Test quality enforcement');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAStC,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,KAAK,YAAY,KAAK;QACtB,MAAM,IAAI,KAAK;QACf,OAAQ,KAAyB,CAAC,IAAI,KAAK,QAAQ,CACpD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC;KACvD,MAAM,CAAC,gBAAgB,EAAE,8DAA8D,EAAE,iBAAiB,CAAC;KAC3G,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,sBAAsB;IACtB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IACtE,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5E,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,SAAS,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,IAAI,CAAC,CAAC;IAExC,+BAA+B;IAC/B,IAAI,KAAK,GAAqB,MAAM,CAAC,CAAC,8CAA8C;IAEpF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAsB,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,iDAAiD;QACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,6DAA6D;YAC7D,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;YACtF,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;YAE7E,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;gBACnD,EAAE,CAAC,QAAQ,CAAC,oCAAoC,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC1D,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzC,KAAK,GAAG,OAAO,CAAC;YAClB,CAAC;iBAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;gBAChE,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,SAAiB,CAAC;IACtB,IAAI,UAAkB,CAAC;IACvB,IAAI,OAAO,GAAkB,IAAI,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAC5B,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAE9B,0FAA0F;QAC1F,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;QAE7B,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,IAAI,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,8CAA8C;IAC9C,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,6DAA6D;QAC7D,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,yDAAyD;QACzD,MAAM,kBAAkB,GAAG;YACzB;gBACE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC;gBACnD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,SAAS,CAAC;gBACzD,IAAI,EAAE,UAAU;aACjB;YACD;gBACE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;gBACjD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAC;gBACvD,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;gBACjD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAC;gBACvD,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;gBACxC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;gBAC7C,IAAI,EAAE,SAAS;aAChB;SACF,CAAC;QAEF,4CAA4C;QAC5C,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,6CAA6C;YAC/C,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAE,CAAC,MAAM,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAE9E,2EAA2E;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAC3D,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC1E,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAEvE,yDAAyD;QACzD,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACxE,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAC9C,wCAAwC,EACxC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC,CAClD,CAAC;QAEF,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC;YACH,yDAAyD;YACzD,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxD,kEAAkE;gBAClE,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;YAC9F,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACvD,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACtE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAEnE,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC;YACH,yDAAyD;YACzD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxD,0DAA0D;gBAC1D,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC;YACH,+DAA+D;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAE7D,yDAAyD;YACzD,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LnC,CAAC;YAEM,yDAAyD;YACzD,MAAM,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7F,mBAAmB,GAAG,IAAI,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oEAAoE;QACtE,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACzC,CAAC;QAED,uEAAuE;QACvE,IAAI,KAAK,KAAK,OAAO,IAAI,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACvD,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;gBAE/C,IAAI,gBAAgB,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,gBAAgB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBAC/D,CAAC;gBAAC,MAAM,CAAC;oBACP,2CAA2C;gBAC7C,CAAC;gBAED,MAAM,UAAU,GAAa,EAAE,CAAC;gBAChC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;oBACjC,yDAAyD;oBACzD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;wBACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;gBAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,UAAU,GAAG,gBAAgB;wBACjC,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,2CAA2C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;wBACnG,CAAC,CAAC,uCAAuC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBAErE,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;oBACvD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAElD,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7E,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChF,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpE,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qCAAqC;YACvC,CAAC;QACH,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAE5C,2CAA2C;QAC3C,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;gBACrG,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;YAC7F,CAAC;YACD,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;gBACrF,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,IAAY;IACpD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,eAAO,MAAM,gBAAgB,SAuHzB,CAAC"}
|
|
@@ -1,71 +1,96 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { promises as fs } from 'fs';
|
|
3
3
|
import * as path from 'path';
|
|
4
|
-
import {
|
|
4
|
+
import { getInstallationPaths, getClaudeDirectory } from '../utils/paths.js';
|
|
5
|
+
import { getGitRoot } from '../utils/git.js';
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
-
* Priority: process.env.HOME > os.homedir()
|
|
7
|
+
* Check if DevFlow is installed at the given paths
|
|
8
8
|
*/
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
return home;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Get Claude Code directory with environment variable override support
|
|
18
|
-
* Priority: CLAUDE_CODE_DIR env var > ~/.claude
|
|
19
|
-
*/
|
|
20
|
-
function getClaudeDirectory() {
|
|
21
|
-
if (process.env.CLAUDE_CODE_DIR) {
|
|
22
|
-
return process.env.CLAUDE_CODE_DIR;
|
|
9
|
+
async function isDevFlowInstalled(claudeDir) {
|
|
10
|
+
try {
|
|
11
|
+
await fs.access(path.join(claudeDir, 'commands', 'devflow'));
|
|
12
|
+
return true;
|
|
23
13
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Get DevFlow directory with environment variable override support
|
|
28
|
-
* Priority: DEVFLOW_DIR env var > ~/.devflow
|
|
29
|
-
*/
|
|
30
|
-
function getDevFlowDirectory() {
|
|
31
|
-
if (process.env.DEVFLOW_DIR) {
|
|
32
|
-
return process.env.DEVFLOW_DIR;
|
|
14
|
+
catch {
|
|
15
|
+
return false;
|
|
33
16
|
}
|
|
34
|
-
return path.join(getHomeDirectory(), '.devflow');
|
|
35
17
|
}
|
|
36
18
|
export const uninstallCommand = new Command('uninstall')
|
|
37
19
|
.description('Uninstall DevFlow from Claude Code')
|
|
38
20
|
.option('--keep-docs', 'Keep .docs/ directory and documentation')
|
|
21
|
+
.option('--scope <type>', 'Uninstall from specific scope only (default: auto-detect all)', /^(user|local)$/i)
|
|
39
22
|
.action(async (options) => {
|
|
40
23
|
console.log('๐งน Uninstalling DevFlow...\n');
|
|
41
|
-
|
|
42
|
-
let
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
devflowScriptsDir = getDevFlowDirectory();
|
|
24
|
+
// Determine which scopes to uninstall
|
|
25
|
+
let scopesToUninstall = [];
|
|
26
|
+
if (options.scope) {
|
|
27
|
+
scopesToUninstall = [options.scope.toLowerCase()];
|
|
46
28
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
29
|
+
else {
|
|
30
|
+
// Auto-detect installed scopes
|
|
31
|
+
const userClaudeDir = getClaudeDirectory();
|
|
32
|
+
const gitRoot = await getGitRoot();
|
|
33
|
+
if (await isDevFlowInstalled(userClaudeDir)) {
|
|
34
|
+
scopesToUninstall.push('user');
|
|
35
|
+
}
|
|
36
|
+
if (gitRoot) {
|
|
37
|
+
const localClaudeDir = path.join(gitRoot, '.claude');
|
|
38
|
+
if (await isDevFlowInstalled(localClaudeDir)) {
|
|
39
|
+
scopesToUninstall.push('local');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (scopesToUninstall.length === 0) {
|
|
43
|
+
console.log('โ No DevFlow installation found');
|
|
44
|
+
console.log(' Checked user scope (~/.claude/) and local scope (git-root/.claude/)\n');
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
if (scopesToUninstall.length > 1) {
|
|
48
|
+
console.log('๐ฆ Found DevFlow in multiple scopes:');
|
|
49
|
+
console.log(' - User scope (~/.claude/)');
|
|
50
|
+
console.log(' - Local scope (git-root/.claude/)');
|
|
51
|
+
console.log('\n Uninstalling from both...\n');
|
|
52
|
+
}
|
|
50
53
|
}
|
|
51
54
|
let hasErrors = false;
|
|
52
|
-
//
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
{ path: devflowScriptsDir, name: 'scripts' }
|
|
58
|
-
];
|
|
59
|
-
// Remove all DevFlow directories
|
|
60
|
-
for (const dir of devflowDirectories) {
|
|
55
|
+
// Uninstall from each scope
|
|
56
|
+
for (const scope of scopesToUninstall) {
|
|
57
|
+
// Get installation paths for this scope
|
|
58
|
+
let claudeDir;
|
|
59
|
+
let devflowScriptsDir;
|
|
61
60
|
try {
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
const paths = await getInstallationPaths(scope);
|
|
62
|
+
claudeDir = paths.claudeDir;
|
|
63
|
+
devflowScriptsDir = paths.devflowDir;
|
|
64
|
+
if (scope === 'user') {
|
|
65
|
+
console.log('๐ Uninstalling user scope (~/.claude/)');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
console.log('๐ Uninstalling local scope (git-root/.claude/)');
|
|
69
|
+
}
|
|
64
70
|
}
|
|
65
71
|
catch (error) {
|
|
66
|
-
console.
|
|
67
|
-
|
|
72
|
+
console.log(`โ ๏ธ Cannot uninstall ${scope} scope: ${error instanceof Error ? error.message : error}\n`);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
// DevFlow namespace directories to remove
|
|
76
|
+
const devflowDirectories = [
|
|
77
|
+
{ path: path.join(claudeDir, 'commands', 'devflow'), name: 'commands' },
|
|
78
|
+
{ path: path.join(claudeDir, 'agents', 'devflow'), name: 'agents' },
|
|
79
|
+
{ path: path.join(claudeDir, 'skills', 'devflow'), name: 'skills' },
|
|
80
|
+
{ path: devflowScriptsDir, name: 'scripts' }
|
|
81
|
+
];
|
|
82
|
+
// Remove all DevFlow directories
|
|
83
|
+
for (const dir of devflowDirectories) {
|
|
84
|
+
try {
|
|
85
|
+
await fs.rm(dir.path, { recursive: true, force: true });
|
|
86
|
+
console.log(` โ
Removed DevFlow ${dir.name}`);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.error(` โ ๏ธ Could not remove ${dir.name}:`, error);
|
|
90
|
+
hasErrors = true;
|
|
91
|
+
}
|
|
68
92
|
}
|
|
93
|
+
console.log();
|
|
69
94
|
}
|
|
70
95
|
// Handle .docs directory
|
|
71
96
|
if (!options.keepDocs) {
|