deepflow 0.1.10 → 0.1.12

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.
@@ -1,31 +1,22 @@
1
1
  # /df:update — Update deepflow
2
2
 
3
- Update deepflow to the latest version from npm.
3
+ ## Update
4
4
 
5
- ## Instructions
6
-
7
- 1. Run the update command:
8
5
  ```bash
9
6
  npx deepflow@latest
10
7
  ```
11
8
 
12
- 2. The installer auto-detects your existing installation (global or project) and updates it.
13
-
14
- 3. Restart Claude Code to apply changes.
15
-
16
- ## What Gets Updated
9
+ Auto-detects existing installation and updates it.
17
10
 
18
- - Commands: `/df:spec`, `/df:plan`, `/df:execute`, `/df:verify`
19
- - Skills: gap-discovery, atomic-commits, code-completeness
20
- - Agents: reasoner
21
- - Hooks: statusline, update checker (global only)
11
+ ## Uninstall
22
12
 
23
- ## Check Current Version
13
+ ```bash
14
+ npx deepflow --uninstall
15
+ ```
24
16
 
25
- Your installed version is stored in `~/.claude/deepflow/VERSION` (global) or `.claude/deepflow/VERSION` (project).
17
+ ## Check Version
26
18
 
27
- Run this to see versions:
28
19
  ```bash
29
- cat ~/.claude/deepflow/VERSION # installed
30
- npm view deepflow version # latest on npm
20
+ cat ~/.claude/deepflow/VERSION # installed
21
+ npm view deepflow version # latest
31
22
  ```
package/README.md CHANGED
@@ -30,9 +30,12 @@
30
30
  ## Quick Start
31
31
 
32
32
  ```bash
33
- # Install
33
+ # Install (or update)
34
34
  npx deepflow
35
35
 
36
+ # Uninstall
37
+ npx deepflow --uninstall
38
+
36
39
  # In your project
37
40
  claude
38
41
 
package/bin/install.js CHANGED
@@ -24,6 +24,11 @@ const PROJECT_DIR = path.join(process.cwd(), '.claude');
24
24
  const PACKAGE_DIR = path.resolve(__dirname, '..');
25
25
 
26
26
  async function main() {
27
+ // Handle --uninstall flag
28
+ if (process.argv.includes('--uninstall')) {
29
+ return uninstall();
30
+ }
31
+
27
32
  console.log('');
28
33
  console.log(`${c.cyan}deepflow installer${c.reset}`);
29
34
  console.log('');
@@ -260,6 +265,77 @@ function log(msg) {
260
265
  console.log(` ${c.green}✓${c.reset} ${msg}`);
261
266
  }
262
267
 
268
+ async function uninstall() {
269
+ console.log('');
270
+ console.log(`${c.cyan}deepflow uninstaller${c.reset}`);
271
+ console.log('');
272
+
273
+ const globalInstalled = isInstalled(GLOBAL_DIR);
274
+ const projectInstalled = isInstalled(PROJECT_DIR);
275
+
276
+ if (!globalInstalled && !projectInstalled) {
277
+ console.log('No deepflow installation found.');
278
+ return;
279
+ }
280
+
281
+ let level;
282
+
283
+ if (globalInstalled && projectInstalled) {
284
+ console.log('Found installations in both locations:');
285
+ console.log(` Global: ${GLOBAL_DIR}`);
286
+ console.log(` Project: ${PROJECT_DIR}`);
287
+ console.log('');
288
+ level = await askInstallLevel('Which do you want to remove?');
289
+ } else if (globalInstalled) {
290
+ level = 'global';
291
+ } else {
292
+ level = 'project';
293
+ }
294
+
295
+ const CLAUDE_DIR = level === 'global' ? GLOBAL_DIR : PROJECT_DIR;
296
+ const levelLabel = level === 'global' ? 'global' : 'project';
297
+
298
+ const confirm = await ask(`Remove ${levelLabel} installation from ${CLAUDE_DIR}? [y/N] `);
299
+ if (confirm.toLowerCase() !== 'y') {
300
+ console.log('Cancelled.');
301
+ return;
302
+ }
303
+
304
+ console.log('');
305
+
306
+ // Remove deepflow files
307
+ const toRemove = [
308
+ 'commands/df',
309
+ 'skills/atomic-commits',
310
+ 'skills/code-completeness',
311
+ 'skills/gap-discovery',
312
+ 'agents/reasoner.md',
313
+ 'deepflow'
314
+ ];
315
+
316
+ if (level === 'global') {
317
+ toRemove.push('hooks/df-statusline.js', 'hooks/df-check-update.js');
318
+ }
319
+
320
+ for (const item of toRemove) {
321
+ const fullPath = path.join(CLAUDE_DIR, item);
322
+ if (fs.existsSync(fullPath)) {
323
+ fs.rmSync(fullPath, { recursive: true });
324
+ console.log(` ${c.green}✓${c.reset} Removed ${item}`);
325
+ }
326
+ }
327
+
328
+ // Clear update cache
329
+ const cacheFile = path.join(GLOBAL_DIR, 'cache', 'df-update-check.json');
330
+ if (fs.existsSync(cacheFile)) {
331
+ fs.unlinkSync(cacheFile);
332
+ }
333
+
334
+ console.log('');
335
+ console.log(`${c.green}Uninstall complete.${c.reset}`);
336
+ console.log('');
337
+ }
338
+
263
339
  main().catch(err => {
264
340
  console.error('Installation failed:', err.message);
265
341
  process.exit(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepflow",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "Stay in flow state - lightweight spec-driven task orchestration for Claude Code",
5
5
  "keywords": [
6
6
  "claude",