devflow-kit 0.1.1 → 0.2.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 +75 -0
- package/README.md +11 -6
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +106 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +42 -2
- package/dist/commands/uninstall.js.map +1 -1
- package/package.json +3 -3
- package/src/claude/agents/devflow/audit-database.md +22 -19
- package/src/claude/agents/devflow/audit-dependencies.md +23 -24
- package/src/claude/agents/devflow/audit-documentation.md +307 -0
- package/src/claude/agents/devflow/audit-tests.md +348 -0
- package/src/claude/agents/devflow/catch-up.md +47 -21
- package/src/claude/agents/devflow/commit.md +66 -31
- package/src/claude/agents/devflow/research.md +609 -0
- package/src/claude/commands/devflow/pre-commit.md +6 -0
- package/src/claude/commands/devflow/pre-pr.md +51 -6
- package/src/claude/commands/devflow/research.md +51 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,79 @@ All notable changes to DevFlow will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.0] - 2025-10-16
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **audit-documentation sub-agent** - Ensures documentation stays aligned with code
|
|
12
|
+
- Validates README accuracy (installation, usage, examples)
|
|
13
|
+
- Checks API documentation matches actual function signatures
|
|
14
|
+
- Detects stale code comments and commented-out code
|
|
15
|
+
- Verifies code examples actually work
|
|
16
|
+
- Language-agnostic documentation pattern detection
|
|
17
|
+
- Severity-based reporting (CRITICAL/HIGH/MEDIUM/LOW)
|
|
18
|
+
- **Smart settings.json management** - 3-tier backup strategy prevents data loss
|
|
19
|
+
- First install: Direct installation
|
|
20
|
+
- Existing settings: Backup to managed-settings.json
|
|
21
|
+
- Both exist: Save as settings.devflow.json with clear instructions
|
|
22
|
+
- User maintains control of their configuration
|
|
23
|
+
- **Surgical test execution** - Prevents Claude Code session crashes
|
|
24
|
+
- Static analysis by default (80% value, 0% crash risk)
|
|
25
|
+
- Smart test selection based on git changes
|
|
26
|
+
- Individual test file execution with 30s timeouts
|
|
27
|
+
- Max 10 test files per run with resource limits
|
|
28
|
+
- Early termination on repeated error patterns
|
|
29
|
+
- **Language-agnostic agents** - Works with any programming language
|
|
30
|
+
- Auto-detection for 9+ package managers
|
|
31
|
+
- Universal ORM and database patterns
|
|
32
|
+
- Smart test command detection from manifests
|
|
33
|
+
- Generic file search patterns for all ecosystems
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
- **Pre-commit strategy** - Lightweight 5-agent review for fast feedback
|
|
37
|
+
- Core audits: Security, Performance, Architecture, Tests, Complexity
|
|
38
|
+
- Typical execution: 30-60 seconds
|
|
39
|
+
- Additional audits available on explicit request
|
|
40
|
+
- **Pre-pr strategy** - Comprehensive 7-8 agent review
|
|
41
|
+
- All core audits plus Dependencies and Documentation
|
|
42
|
+
- Conditional Database audit (only if DB files changed)
|
|
43
|
+
- Typical execution: 2-3 minutes
|
|
44
|
+
- Thorough branch review before PR creation
|
|
45
|
+
- **Path handling** - No longer assumes HOME environment variable
|
|
46
|
+
- Uses Node.js homedir() as fallback
|
|
47
|
+
- Environment variable overrides: CLAUDE_CODE_DIR, DEVFLOW_DIR
|
|
48
|
+
- Cross-platform compatibility improvements
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
- **Git lock file conflicts** - Wait-based prevention instead of deletion
|
|
52
|
+
- Implemented wait_for_lock_release() with 10s timeout
|
|
53
|
+
- Explicit wait commands after each git operation
|
|
54
|
+
- Command substitution patterns for synchronous execution
|
|
55
|
+
- Prevents zombie process lock file issues
|
|
56
|
+
- No more `.git/index.lock` errors
|
|
57
|
+
- **Settings overwrite issue** - User settings preserved with backup strategy
|
|
58
|
+
- **Hardcoded path assumptions** - Proper fallbacks and environment overrides
|
|
59
|
+
|
|
60
|
+
### Documentation
|
|
61
|
+
- Added audit-documentation to sub-agents table in README
|
|
62
|
+
- Clarified audit strategies for pre-commit vs pre-pr
|
|
63
|
+
- Updated workflow examples with refined command usage
|
|
64
|
+
|
|
65
|
+
## [0.1.2] - 2025-10-05
|
|
66
|
+
|
|
67
|
+
### Added
|
|
68
|
+
- `/research [topic]` - Comprehensive pre-implementation research and planning command
|
|
69
|
+
- `research` sub-agent - Specialized agent for systematic implementation research with 10-step workflow
|
|
70
|
+
- Analyzes multiple implementation approaches with pros/cons/trade-offs
|
|
71
|
+
- Studies official documentation and code examples
|
|
72
|
+
- Reviews existing codebase patterns and conventions
|
|
73
|
+
- Designs integration strategy with specific file paths
|
|
74
|
+
- Identifies risks and creates actionable implementation plans
|
|
75
|
+
- Saves research reports to `.docs/research/`
|
|
76
|
+
|
|
77
|
+
### Documentation
|
|
78
|
+
- Updated README.md with `/research` command in workflow examples
|
|
79
|
+
- Added research sub-agent to sub-agents table
|
|
80
|
+
|
|
8
81
|
## [0.1.1] - 2025-10-03
|
|
9
82
|
|
|
10
83
|
### Changed
|
|
@@ -75,5 +148,7 @@ devflow init
|
|
|
75
148
|
|
|
76
149
|
---
|
|
77
150
|
|
|
151
|
+
[0.2.0]: https://github.com/dean0x/devflow/releases/tag/v0.2.0
|
|
152
|
+
[0.1.2]: https://github.com/dean0x/devflow/releases/tag/v0.1.2
|
|
78
153
|
[0.1.1]: https://github.com/dean0x/devflow/releases/tag/v0.1.1
|
|
79
154
|
[0.1.0]: https://github.com/dean0x/devflow/releases/tag/v0.1.0
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# DevFlow
|
|
1
|
+
# DevFlow - Agentic Development Toolkit
|
|
2
2
|
|
|
3
3
|
A comprehensive collection of Claude Code commands and configurations designed to enhance developer workflows when working with AI coding assistants.
|
|
4
4
|
|
|
@@ -18,6 +18,7 @@ That's it! DevFlow is now installed and ready to use in Claude Code.
|
|
|
18
18
|
| Command | Purpose | When to Use |
|
|
19
19
|
|---------|---------|-------------|
|
|
20
20
|
| `/catch-up` | Smart summaries for starting new sessions with status validation | Starting a session |
|
|
21
|
+
| `/research [topic]` | Comprehensive pre-implementation research and planning | Before implementing features |
|
|
21
22
|
| `/devlog` | Development log for comprehensive session documentation | Ending a session |
|
|
22
23
|
| `/plan-next-steps` | Extract actionable next steps from current discussion | After planning discussion |
|
|
23
24
|
| `/debug [issue]` | Systematic debugging with issue-specific investigation | When troubleshooting |
|
|
@@ -32,12 +33,14 @@ That's it! DevFlow is now installed and ready to use in Claude Code.
|
|
|
32
33
|
| `audit-security` | Security Analysis | Expert vulnerability detection and security code review |
|
|
33
34
|
| `audit-performance` | Performance | Optimization and bottleneck detection |
|
|
34
35
|
| `audit-architecture` | Architecture | Design pattern analysis and code structure review |
|
|
35
|
-
| `audit-tests` | Testing | Test quality, coverage, and effectiveness analysis |
|
|
36
|
-
| `audit-dependencies` | Dependencies | Dependency management and security analysis |
|
|
36
|
+
| `audit-tests` | Testing | Test quality, coverage, and effectiveness analysis (surgical execution) |
|
|
37
37
|
| `audit-complexity` | Complexity | Code complexity and maintainability assessment |
|
|
38
|
+
| `audit-dependencies` | Dependencies | Dependency management and security analysis |
|
|
38
39
|
| `audit-database` | Database | Database design and optimization review |
|
|
40
|
+
| `audit-documentation` | Documentation | Docs-code alignment, API accuracy, comment quality |
|
|
39
41
|
| `catch-up` | Context Restoration | Project status and context restoration with validation |
|
|
40
42
|
| `commit` | Git Operations | Intelligent commit creation with safety checks |
|
|
43
|
+
| `research` | Implementation Planning | Pre-implementation research, approach analysis, and planning |
|
|
41
44
|
|
|
42
45
|
**How Sub-Agents Work:**
|
|
43
46
|
- Specialized AI assistants with deep expertise in specific domains
|
|
@@ -91,9 +94,10 @@ Covers patterns for all major languages and operating systems.
|
|
|
91
94
|
3. Review recommended next actions
|
|
92
95
|
|
|
93
96
|
### During Development
|
|
94
|
-
1. `/
|
|
95
|
-
2. `/commit` -
|
|
96
|
-
3.
|
|
97
|
+
1. `/research [topic]` - Research implementation approaches before coding
|
|
98
|
+
2. `/pre-commit` - Review changes before committing
|
|
99
|
+
3. `/commit` - Create intelligent atomic commits
|
|
100
|
+
4. Invoke audit sub-agents as needed
|
|
97
101
|
|
|
98
102
|
### Ending a Session
|
|
99
103
|
1. `/devlog` - Document decisions and state
|
|
@@ -146,6 +150,7 @@ git commit -m "Session status: completed user auth feature"
|
|
|
146
150
|
|
|
147
151
|
### Integration Examples
|
|
148
152
|
```bash
|
|
153
|
+
/research "add JWT authentication" # Research before implementing
|
|
149
154
|
/pre-commit # Review uncommitted changes
|
|
150
155
|
/commit # Create atomic commits
|
|
151
156
|
/pre-pr # Branch review before PR
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CpC,eAAO,MAAM,WAAW,SA0YpB,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,26 +1,69 @@
|
|
|
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';
|
|
4
5
|
import { execSync } from 'child_process';
|
|
5
6
|
import { fileURLToPath } from 'url';
|
|
6
7
|
import { dirname } from 'path';
|
|
7
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
8
9
|
const __dirname = dirname(__filename);
|
|
10
|
+
/**
|
|
11
|
+
* Get home directory with proper fallback and validation
|
|
12
|
+
* Priority: process.env.HOME > os.homedir()
|
|
13
|
+
*/
|
|
14
|
+
function getHomeDirectory() {
|
|
15
|
+
const home = process.env.HOME || homedir();
|
|
16
|
+
if (!home) {
|
|
17
|
+
throw new Error('Unable to determine home directory. Set HOME environment variable.');
|
|
18
|
+
}
|
|
19
|
+
return home;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get Claude Code directory with environment variable override support
|
|
23
|
+
* Priority: CLAUDE_CODE_DIR env var > ~/.claude
|
|
24
|
+
*/
|
|
25
|
+
function getClaudeDirectory() {
|
|
26
|
+
if (process.env.CLAUDE_CODE_DIR) {
|
|
27
|
+
return process.env.CLAUDE_CODE_DIR;
|
|
28
|
+
}
|
|
29
|
+
return path.join(getHomeDirectory(), '.claude');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get DevFlow directory with environment variable override support
|
|
33
|
+
* Priority: DEVFLOW_DIR env var > ~/.devflow
|
|
34
|
+
*/
|
|
35
|
+
function getDevFlowDirectory() {
|
|
36
|
+
if (process.env.DEVFLOW_DIR) {
|
|
37
|
+
return process.env.DEVFLOW_DIR;
|
|
38
|
+
}
|
|
39
|
+
return path.join(getHomeDirectory(), '.devflow');
|
|
40
|
+
}
|
|
9
41
|
export const initCommand = new Command('init')
|
|
10
42
|
.description('Initialize DevFlow for Claude Code')
|
|
11
43
|
.option('--skip-docs', 'Skip creating .docs/ structure')
|
|
12
44
|
.action(async (options) => {
|
|
13
45
|
console.log('🚀 DevFlow - Agentic Development Toolkit');
|
|
14
46
|
console.log(' Intelligent tools for reliable AI-assisted development\n');
|
|
47
|
+
// Get installation paths with proper validation
|
|
48
|
+
let claudeDir;
|
|
49
|
+
let devflowDir;
|
|
50
|
+
try {
|
|
51
|
+
claudeDir = getClaudeDirectory();
|
|
52
|
+
devflowDir = getDevFlowDirectory();
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.error('❌ Path configuration error:', error instanceof Error ? error.message : error);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
15
58
|
// Check for Claude Code
|
|
16
|
-
const claudeDir = path.join(process.env.HOME || '', '.claude');
|
|
17
59
|
try {
|
|
18
60
|
await fs.access(claudeDir);
|
|
19
|
-
console.log(
|
|
61
|
+
console.log(`🔍 Detected Claude Code at ${claudeDir} ✅\n`);
|
|
20
62
|
}
|
|
21
63
|
catch {
|
|
22
|
-
console.error(
|
|
64
|
+
console.error(`❌ Claude Code not detected at ${claudeDir}`);
|
|
23
65
|
console.error('\nInstall Claude Code from: https://claude.com/claude-code');
|
|
66
|
+
console.error('\nOr set CLAUDE_CODE_DIR environment variable if installed elsewhere.');
|
|
24
67
|
process.exit(1);
|
|
25
68
|
}
|
|
26
69
|
console.log('🛠️ Installing DevFlow for Claude Code...');
|
|
@@ -32,7 +75,7 @@ export const initCommand = new Command('init')
|
|
|
32
75
|
console.log(' 🧹 Cleaning old DevFlow files...');
|
|
33
76
|
const commandsDevflowDir = path.join(claudeDir, 'commands', 'devflow');
|
|
34
77
|
const agentsDevflowDir = path.join(claudeDir, 'agents', 'devflow');
|
|
35
|
-
const devflowScriptsDir = path.join(
|
|
78
|
+
const devflowScriptsDir = path.join(devflowDir, 'scripts');
|
|
36
79
|
// Remove old DevFlow subdirectories (not entire commands/agents folders)
|
|
37
80
|
try {
|
|
38
81
|
await fs.rm(commandsDevflowDir, { recursive: true, force: true });
|
|
@@ -59,10 +102,63 @@ export const initCommand = new Command('init')
|
|
|
59
102
|
for (const script of scripts) {
|
|
60
103
|
await fs.chmod(path.join(devflowScriptsDir, script), 0o755);
|
|
61
104
|
}
|
|
62
|
-
// Install settings
|
|
105
|
+
// Install settings with smart backup
|
|
63
106
|
console.log(' ⚙️ Installing settings...');
|
|
64
|
-
|
|
107
|
+
const settingsPath = path.join(claudeDir, 'settings.json');
|
|
108
|
+
const managedSettingsPath = path.join(claudeDir, 'managed-settings.json');
|
|
109
|
+
const devflowSettingsPath = path.join(claudeDir, 'settings.devflow.json');
|
|
110
|
+
const sourceSettingsPath = path.join(claudeSourceDir, 'settings.json');
|
|
111
|
+
let settingsAction = '';
|
|
112
|
+
try {
|
|
113
|
+
// Check if user has existing settings.json
|
|
114
|
+
await fs.access(settingsPath);
|
|
115
|
+
// User has settings.json - need to preserve it
|
|
116
|
+
try {
|
|
117
|
+
// Check if managed-settings.json already exists
|
|
118
|
+
await fs.access(managedSettingsPath);
|
|
119
|
+
// managed-settings.json exists - install as settings.devflow.json
|
|
120
|
+
await fs.copyFile(sourceSettingsPath, devflowSettingsPath);
|
|
121
|
+
settingsAction = 'saved-as-devflow';
|
|
122
|
+
console.log(' ⚠️ Your existing settings.json is preserved');
|
|
123
|
+
console.log(' 📄 DevFlow settings saved to: settings.devflow.json');
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// managed-settings.json doesn't exist - safe to backup and install
|
|
127
|
+
await fs.rename(settingsPath, managedSettingsPath);
|
|
128
|
+
await fs.copyFile(sourceSettingsPath, settingsPath);
|
|
129
|
+
settingsAction = 'backed-up';
|
|
130
|
+
console.log(' 💾 Your settings backed up to: managed-settings.json');
|
|
131
|
+
console.log(' ✅ DevFlow settings installed to: settings.json');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
// No existing settings.json - install normally
|
|
136
|
+
await fs.copyFile(sourceSettingsPath, settingsPath);
|
|
137
|
+
settingsAction = 'fresh-install';
|
|
138
|
+
console.log(' ✅ DevFlow settings installed to: settings.json');
|
|
139
|
+
}
|
|
65
140
|
console.log(' ✅ Claude Code installation complete\n');
|
|
141
|
+
// Show settings instructions if needed
|
|
142
|
+
if (settingsAction === 'saved-as-devflow') {
|
|
143
|
+
console.log('⚙️ SETTINGS CONFIGURATION REQUIRED:\n');
|
|
144
|
+
console.log(' Your existing settings.json was preserved because managed-settings.json');
|
|
145
|
+
console.log(' already exists. DevFlow settings are in settings.devflow.json\n');
|
|
146
|
+
console.log(` To use DevFlow settings (statusline), manually merge into ${settingsPath}:`);
|
|
147
|
+
console.log(' ```json');
|
|
148
|
+
console.log(' {');
|
|
149
|
+
console.log(' "statusLine": {');
|
|
150
|
+
console.log(' "type": "command",');
|
|
151
|
+
console.log(` "command": "${path.join(devflowDir, 'scripts', 'statusline.sh')}"`);
|
|
152
|
+
console.log(' }');
|
|
153
|
+
console.log(' }');
|
|
154
|
+
console.log(' ```\n');
|
|
155
|
+
}
|
|
156
|
+
else if (settingsAction === 'backed-up') {
|
|
157
|
+
console.log('💾 SETTINGS BACKUP:\n');
|
|
158
|
+
console.log(` Your original settings saved to: ${managedSettingsPath}`);
|
|
159
|
+
console.log(` DevFlow settings now active in: ${settingsPath}`);
|
|
160
|
+
console.log(` To restore: mv ${managedSettingsPath} ${settingsPath}\n`);
|
|
161
|
+
}
|
|
66
162
|
// Create .claudeignore in git repository root
|
|
67
163
|
try {
|
|
68
164
|
// Find git repository root
|
|
@@ -298,10 +394,10 @@ Pipfile.lock
|
|
|
298
394
|
console.log('\n✅ DevFlow installation complete!\n');
|
|
299
395
|
console.log('🎯 WHAT\'S INSTALLED:');
|
|
300
396
|
console.log(' 📁 Claude Code:');
|
|
301
|
-
console.log(
|
|
302
|
-
console.log(
|
|
303
|
-
console.log(
|
|
304
|
-
console.log(
|
|
397
|
+
console.log(` • Commands: ${path.join(claudeDir, 'commands')}/`);
|
|
398
|
+
console.log(` • Sub-agents: ${path.join(claudeDir, 'agents')}/`);
|
|
399
|
+
console.log(` • Scripts: ${path.join(devflowDir, 'scripts')}/`);
|
|
400
|
+
console.log(` • Settings: ${settingsPath} (statusline and model)\n`);
|
|
305
401
|
console.log('📊 SMART STATUSLINE:');
|
|
306
402
|
console.log(' ✅ Statusline configured');
|
|
307
403
|
console.log(' • Shows project context, git status, session cost, and duration\n');
|
|
@@ -1 +1 @@
|
|
|
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,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,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,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAE3E,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAuCpC,eAAO,MAAM,gBAAgB,SAgFzB,CAAC"}
|
|
@@ -1,13 +1,53 @@
|
|
|
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
|
+
/**
|
|
6
|
+
* Get home directory with proper fallback and validation
|
|
7
|
+
* Priority: process.env.HOME > os.homedir()
|
|
8
|
+
*/
|
|
9
|
+
function getHomeDirectory() {
|
|
10
|
+
const home = process.env.HOME || homedir();
|
|
11
|
+
if (!home) {
|
|
12
|
+
throw new Error('Unable to determine home directory. Set HOME environment variable.');
|
|
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;
|
|
23
|
+
}
|
|
24
|
+
return path.join(getHomeDirectory(), '.claude');
|
|
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;
|
|
33
|
+
}
|
|
34
|
+
return path.join(getHomeDirectory(), '.devflow');
|
|
35
|
+
}
|
|
4
36
|
export const uninstallCommand = new Command('uninstall')
|
|
5
37
|
.description('Uninstall DevFlow from Claude Code')
|
|
6
38
|
.option('--keep-docs', 'Keep .docs/ directory and documentation')
|
|
7
39
|
.action(async (options) => {
|
|
8
40
|
console.log('🧹 Uninstalling DevFlow...\n');
|
|
9
|
-
|
|
10
|
-
|
|
41
|
+
let claudeDir;
|
|
42
|
+
let devflowScriptsDir;
|
|
43
|
+
try {
|
|
44
|
+
claudeDir = getClaudeDirectory();
|
|
45
|
+
devflowScriptsDir = getDevFlowDirectory();
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.error('❌ Path configuration error:', error instanceof Error ? error.message : error);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
11
51
|
let hasErrors = false;
|
|
12
52
|
// Remove commands
|
|
13
53
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/cli/commands/uninstall.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;AAE7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;KACrD,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devflow-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Agentic Development Toolkit for Claude Code - Enhance AI-assisted development with intelligent commands and workflows",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
8
|
-
"devflow": "
|
|
8
|
+
"devflow": "dist/cli.js"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
11
|
"dist/",
|
|
@@ -51,4 +51,4 @@
|
|
|
51
51
|
"@types/node": "^20.11.0",
|
|
52
52
|
"typescript": "^5.3.3"
|
|
53
53
|
}
|
|
54
|
-
}
|
|
54
|
+
}
|
|
@@ -57,25 +57,28 @@ You are a database audit specialist focused on schema design, query optimization
|
|
|
57
57
|
- Backward compatibility
|
|
58
58
|
- Zero-downtime deployments
|
|
59
59
|
|
|
60
|
-
## ORM
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
|
|
60
|
+
## ORM & Data Access Layer Analysis
|
|
61
|
+
|
|
62
|
+
The agent analyzes data access patterns across any ORM or database library by examining universal patterns that transcend specific tools.
|
|
63
|
+
|
|
64
|
+
### Universal ORM Patterns
|
|
65
|
+
- **N+1 Query Detection** - Identifies inefficient data fetching where single queries spawn cascading additional queries
|
|
66
|
+
- **Eager vs Lazy Loading** - Analyzes loading strategies and their performance impact
|
|
67
|
+
- **Relationship Mapping** - Examines associations, joins, and foreign key relationships
|
|
68
|
+
- **Migration Quality** - Reviews schema versioning, rollback safety, data transformations
|
|
69
|
+
- **Query Optimization** - Analyzes generated SQL, index usage, query complexity
|
|
70
|
+
- **Connection Management** - Evaluates pool configuration, transaction boundaries, resource cleanup
|
|
71
|
+
- **Caching Strategy** - Reviews query caching, result caching, invalidation patterns
|
|
72
|
+
|
|
73
|
+
### Analysis Approach for Any ORM
|
|
74
|
+
1. **Detect ORM/library** from imports, configuration, and code patterns
|
|
75
|
+
2. **Map data access patterns** across codebase regardless of syntax
|
|
76
|
+
3. **Identify performance anti-patterns** (N+1, missing indexes, inefficient joins)
|
|
77
|
+
4. **Analyze relationship complexity** and cascading operations
|
|
78
|
+
5. **Validate transaction boundaries** and error handling
|
|
79
|
+
6. **Review migration strategies** for safety and reversibility
|
|
80
|
+
|
|
81
|
+
Works with any ORM or database library including ActiveRecord, Eloquent, Hibernate, JPA, Sequelize, TypeORM, Prisma, SQLAlchemy, Django ORM, Entity Framework, GORM, Diesel, Ecto, and others. Focuses on universal data access patterns rather than framework-specific syntax.
|
|
79
82
|
|
|
80
83
|
## Analysis Approach
|
|
81
84
|
|
|
@@ -57,30 +57,29 @@ You are a dependency audit specialist focused on package security, licensing, an
|
|
|
57
57
|
- Initialization overhead
|
|
58
58
|
- Runtime performance impact
|
|
59
59
|
|
|
60
|
-
## Package Manager
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
- package.json
|
|
64
|
-
- package-lock.json
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
- Package stability requirements
|
|
60
|
+
## Package Manager Analysis
|
|
61
|
+
|
|
62
|
+
The agent automatically detects and analyzes your project's dependency management system by identifying:
|
|
63
|
+
- Package manifest files (package.json, requirements.txt, Cargo.toml, go.mod, Gemfile, composer.json, etc.)
|
|
64
|
+
- Lock files (package-lock.json, Pipfile.lock, Cargo.lock, go.sum, Gemfile.lock, composer.lock, etc.)
|
|
65
|
+
- Package manager configuration and best practices
|
|
66
|
+
|
|
67
|
+
### Universal Analysis Patterns
|
|
68
|
+
- **Manifest validation** - Parse and validate dependency declarations
|
|
69
|
+
- **Lock file consistency** - Verify lock files match manifests
|
|
70
|
+
- **Version constraint analysis** - Check semantic versioning and ranges
|
|
71
|
+
- **Transitive dependency mapping** - Analyze full dependency trees
|
|
72
|
+
- **Peer/dev dependency separation** - Verify appropriate categorization
|
|
73
|
+
- **Audit tool integration** - Run language-specific security scanners when available
|
|
74
|
+
|
|
75
|
+
### Auto-Detection Strategy
|
|
76
|
+
1. Scan for manifest files in project root
|
|
77
|
+
2. Identify package manager from file patterns
|
|
78
|
+
3. Apply language-specific audit tools if available
|
|
79
|
+
4. Use universal patterns for security/license analysis
|
|
80
|
+
5. Adapt recommendations to detected ecosystem
|
|
81
|
+
|
|
82
|
+
Supports all major package managers including npm/yarn/pnpm, pip/Poetry/pipenv, Cargo, Go modules, Maven/Gradle, Bundler, Composer, NuGet, CocoaPods, Swift Package Manager, and others.
|
|
84
83
|
|
|
85
84
|
## Analysis Approach
|
|
86
85
|
|