devflow-kit 0.1.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 +64 -0
- package/LICENSE +21 -0
- package/README.md +144 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +32 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +338 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/uninstall.d.ts +3 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +74 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/package.json +54 -0
- package/src/claude/agents/devflow/audit-architecture.md +84 -0
- package/src/claude/agents/devflow/audit-complexity.md +102 -0
- package/src/claude/agents/devflow/audit-database.md +104 -0
- package/src/claude/agents/devflow/audit-dependencies.md +109 -0
- package/src/claude/agents/devflow/audit-performance.md +85 -0
- package/src/claude/agents/devflow/audit-security.md +75 -0
- package/src/claude/agents/devflow/audit-tests.md +107 -0
- package/src/claude/agents/devflow/catch-up.md +352 -0
- package/src/claude/agents/devflow/commit.md +347 -0
- package/src/claude/commands/devflow/catch-up.md +29 -0
- package/src/claude/commands/devflow/commit.md +28 -0
- package/src/claude/commands/devflow/debug.md +228 -0
- package/src/claude/commands/devflow/devlog.md +370 -0
- package/src/claude/commands/devflow/plan-next-steps.md +212 -0
- package/src/claude/commands/devflow/pre-commit.md +138 -0
- package/src/claude/commands/devflow/pre-pr.md +286 -0
- package/src/claude/scripts/statusline.sh +115 -0
- package/src/claude/settings.json +6 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to DevFlow will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.1.0] - 2024-10-03
|
|
9
|
+
|
|
10
|
+
### š Initial Release
|
|
11
|
+
|
|
12
|
+
DevFlow is an Agentic Development Toolkit designed to enhance Claude Code with intelligent commands and workflows for AI-assisted development.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
#### Core Commands
|
|
17
|
+
- `/catch-up` - Smart summaries for starting new sessions with status validation
|
|
18
|
+
- `/devlog` - Development log for comprehensive session documentation (formerly note-to-future-self)
|
|
19
|
+
- `/plan-next-steps` - Extract actionable next steps from current discussion
|
|
20
|
+
- `/pre-commit` - Review uncommitted changes using specialized sub-agents
|
|
21
|
+
- `/pre-pr` - Comprehensive branch review for PR readiness assessment
|
|
22
|
+
- `/commit` - Intelligent atomic commit creation with safety checks
|
|
23
|
+
- `/debug [issue]` - Systematic debugging with issue-specific investigation
|
|
24
|
+
|
|
25
|
+
#### Sub-Agents (Audit Specialists)
|
|
26
|
+
- `audit-security` - Security vulnerability detection and analysis
|
|
27
|
+
- `audit-performance` - Performance optimization and bottleneck detection
|
|
28
|
+
- `audit-architecture` - Software architecture and design pattern analysis
|
|
29
|
+
- `audit-tests` - Test quality and coverage analysis
|
|
30
|
+
- `audit-dependencies` - Dependency management and security analysis
|
|
31
|
+
- `audit-complexity` - Code complexity and maintainability assessment
|
|
32
|
+
- `audit-database` - Database design and optimization review
|
|
33
|
+
|
|
34
|
+
#### Workflow Sub-Agents
|
|
35
|
+
- `catch-up` - Project status and context restoration with validation
|
|
36
|
+
- `commit` - Intelligent commit creation with safety checks
|
|
37
|
+
|
|
38
|
+
#### Features
|
|
39
|
+
- **Smart Statusline** - Real-time project context display with git status and cost tracking
|
|
40
|
+
- **Security & Optimization** - Automatic `.claudeignore` file creation for token efficiency
|
|
41
|
+
- **Parallel Sub-Agent Execution** - Run multiple audits simultaneously for better performance
|
|
42
|
+
- **Git Safety** - Sequential git operations to prevent lock file conflicts
|
|
43
|
+
- **Structured Documentation** - Organized tracking in `.docs/` directory
|
|
44
|
+
|
|
45
|
+
### Technical Details
|
|
46
|
+
- Built with TypeScript and Commander.js
|
|
47
|
+
- Supports Claude Code on macOS, Linux, and Windows
|
|
48
|
+
- Requires Node.js 18.0.0 or higher
|
|
49
|
+
- Modular architecture with isolated sub-agents
|
|
50
|
+
|
|
51
|
+
### Installation
|
|
52
|
+
```bash
|
|
53
|
+
npm install -g devflow-kit
|
|
54
|
+
devflow init
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Documentation
|
|
58
|
+
- Comprehensive guide in CLAUDE.md
|
|
59
|
+
- Quick reference in README.md
|
|
60
|
+
- Self-documenting commands
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
[0.1.0]: https://github.com/dean0x/devflow/releases/tag/v0.1.0
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 DevFlow Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# DevFlow - Agentic Development Toolkit
|
|
2
|
+
|
|
3
|
+
A comprehensive collection of Claude Code commands and configurations designed to enhance developer workflows when working with AI coding assistants.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 1. Install dependencies
|
|
9
|
+
npm install
|
|
10
|
+
|
|
11
|
+
# 2. Build the CLI
|
|
12
|
+
npm run build
|
|
13
|
+
|
|
14
|
+
# 3. Install DevFlow for Claude Code
|
|
15
|
+
node dist/cli.js init
|
|
16
|
+
|
|
17
|
+
# Or install globally
|
|
18
|
+
npm install -g .
|
|
19
|
+
devflow init
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## What's Included
|
|
23
|
+
|
|
24
|
+
### š Slash Commands
|
|
25
|
+
|
|
26
|
+
**Code Review & Quality:**
|
|
27
|
+
- `/pre-commit` - Review uncommitted changes before committing
|
|
28
|
+
- `/pre-pr` - Comprehensive branch review for PR readiness
|
|
29
|
+
- `/commit` - Intelligent atomic commits with safety checks
|
|
30
|
+
|
|
31
|
+
**Session Management:**
|
|
32
|
+
- `/catch-up` - Smart summaries for starting new sessions
|
|
33
|
+
- `/devlog` - Development log for session documentation
|
|
34
|
+
- `/plan-next-steps` - Extract actionable next steps from discussion
|
|
35
|
+
|
|
36
|
+
**Development Tools:**
|
|
37
|
+
- `/debug [issue]` - Systematic debugging with issue-specific investigation
|
|
38
|
+
|
|
39
|
+
### š¤ Sub-Agents
|
|
40
|
+
|
|
41
|
+
**Audit Specialists:**
|
|
42
|
+
- `audit-security` - Security vulnerability detection and analysis
|
|
43
|
+
- `audit-performance` - Performance optimization and bottleneck detection
|
|
44
|
+
- `audit-architecture` - Software architecture and design pattern analysis
|
|
45
|
+
- `audit-tests` - Test quality and coverage analysis
|
|
46
|
+
- `audit-dependencies` - Dependency management and security analysis
|
|
47
|
+
- `audit-complexity` - Code complexity and maintainability assessment
|
|
48
|
+
- `audit-database` - Database design and optimization review
|
|
49
|
+
|
|
50
|
+
**Workflow Specialists:**
|
|
51
|
+
- `catch-up` - Project status and context restoration with validation
|
|
52
|
+
- `commit` - Intelligent commit creation with safety checks
|
|
53
|
+
|
|
54
|
+
### š Smart Statusline
|
|
55
|
+
Real-time project context display showing:
|
|
56
|
+
- Current model and session duration
|
|
57
|
+
- Git branch and uncommitted changes indicator
|
|
58
|
+
- Session cost tracking
|
|
59
|
+
- Project context
|
|
60
|
+
|
|
61
|
+
### š Security & Token Optimization
|
|
62
|
+
DevFlow automatically creates a comprehensive `.claudeignore` file to:
|
|
63
|
+
- **Protect sensitive files** - Prevents exposure of credentials, keys, and secrets
|
|
64
|
+
- **Reduce token usage** - Excludes build artifacts, dependencies, and non-essential files
|
|
65
|
+
- **Support all languages** - Covers patterns for Node.js, Python, Ruby, Go, Rust, Java, and more
|
|
66
|
+
|
|
67
|
+
## CLI Commands
|
|
68
|
+
|
|
69
|
+
### `devflow init`
|
|
70
|
+
Initialize DevFlow for Claude Code. Installs commands, agents, scripts, and settings to your Claude Code configuration. Also creates security and optimization files.
|
|
71
|
+
|
|
72
|
+
**What it does:**
|
|
73
|
+
- Installs commands to `~/.claude/commands/devflow/`
|
|
74
|
+
- Installs sub-agents to `~/.claude/agents/devflow/`
|
|
75
|
+
- Installs scripts to `~/.devflow/scripts/`
|
|
76
|
+
- Installs settings to `~/.claude/settings.json`
|
|
77
|
+
- Creates `.claudeignore` at git repository root (if in git repo)
|
|
78
|
+
- Creates `.docs/` structure for project documentation
|
|
79
|
+
|
|
80
|
+
**Options:**
|
|
81
|
+
- `--skip-docs` - Skip creating `.docs/` structure
|
|
82
|
+
|
|
83
|
+
**Example:**
|
|
84
|
+
```bash
|
|
85
|
+
# Standard installation
|
|
86
|
+
devflow init
|
|
87
|
+
|
|
88
|
+
# Skip project documentation setup
|
|
89
|
+
devflow init --skip-docs
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Project Structure
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
devflow/
|
|
96
|
+
āāā src/ # All source files
|
|
97
|
+
ā āāā cli/ # CLI source code
|
|
98
|
+
ā ā āāā commands/ # CLI command implementations
|
|
99
|
+
ā ā āāā cli.ts # CLI entry point
|
|
100
|
+
ā āāā claude/ # Claude Code configuration
|
|
101
|
+
ā āāā agents/ # AI sub-agents
|
|
102
|
+
ā āāā commands/ # Slash command definitions
|
|
103
|
+
ā āāā scripts/ # DevFlow scripts
|
|
104
|
+
ā āāā settings.json # Claude Code settings
|
|
105
|
+
āāā package.json # Node.js package
|
|
106
|
+
āāā tsconfig.json # TypeScript config
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Development
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Install dependencies
|
|
113
|
+
npm install
|
|
114
|
+
|
|
115
|
+
# Build TypeScript
|
|
116
|
+
npm run build
|
|
117
|
+
|
|
118
|
+
# Watch mode for development
|
|
119
|
+
npm run dev
|
|
120
|
+
|
|
121
|
+
# Test CLI locally
|
|
122
|
+
node dist/cli.js init
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Philosophy
|
|
126
|
+
|
|
127
|
+
Modern development increasingly involves AI agents that can read, write, and modify code autonomously. DevFlow provides:
|
|
128
|
+
|
|
129
|
+
- **Trust but Verify** - Tools to catch AI agent mistakes
|
|
130
|
+
- **Context Preservation** - Memory across long-term projects
|
|
131
|
+
- **Quality Gates** - Automated checks for AI changes
|
|
132
|
+
- **Developer Empowerment** - Enhance human judgment, not replace it
|
|
133
|
+
|
|
134
|
+
## Documentation
|
|
135
|
+
|
|
136
|
+
See [CLAUDE.md](./CLAUDE.md) for comprehensive documentation including:
|
|
137
|
+
- Detailed command descriptions
|
|
138
|
+
- Sub-agent system architecture
|
|
139
|
+
- Development workflow patterns
|
|
140
|
+
- Command design principles
|
|
141
|
+
|
|
142
|
+
## License
|
|
143
|
+
|
|
144
|
+
MIT
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { readFileSync } from 'fs';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
import { dirname, join } from 'path';
|
|
6
|
+
import { initCommand } from './commands/init.js';
|
|
7
|
+
import { uninstallCommand } from './commands/uninstall.js';
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
+
const __dirname = dirname(__filename);
|
|
10
|
+
// Read version from package.json
|
|
11
|
+
const packageJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
|
|
12
|
+
const program = new Command();
|
|
13
|
+
program
|
|
14
|
+
.name('devflow')
|
|
15
|
+
.description('Agentic Development Toolkit for Claude Code\n\nEnhance your AI-assisted development with intelligent commands and workflows.')
|
|
16
|
+
.version(packageJson.version, '-v, --version', 'Display version number')
|
|
17
|
+
.helpOption('-h, --help', 'Display help information')
|
|
18
|
+
.addHelpText('after', '\nExamples:\n $ devflow init Install DevFlow for Claude Code\n $ devflow init --skip-docs Install without creating .docs/ structure\n $ devflow uninstall Remove DevFlow from Claude Code\n $ devflow --version Show version\n $ devflow --help Show help\n\nDocumentation:\n https://github.com/dean0x/devflow#readme');
|
|
19
|
+
// Register commands
|
|
20
|
+
program.addCommand(initCommand);
|
|
21
|
+
program.addCommand(uninstallCommand);
|
|
22
|
+
// Handle no command
|
|
23
|
+
program.action(() => {
|
|
24
|
+
program.help();
|
|
25
|
+
});
|
|
26
|
+
// Parse arguments
|
|
27
|
+
program.parse();
|
|
28
|
+
// Show help if no arguments
|
|
29
|
+
if (!process.argv.slice(2).length) {
|
|
30
|
+
program.outputHelp();
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,iCAAiC;AACjC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAC7D,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,8HAA8H,CAAC;KAC3I,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,wBAAwB,CAAC;KACvE,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC;KACpD,WAAW,CAAC,OAAO,EAAE,4VAA4V,CAAC,CAAC;AAEtX,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAErC,oBAAoB;AACpB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;IAClB,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,4BAA4B;AAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +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;AAUpC,eAAO,MAAM,WAAW,SA0UpB,CAAC"}
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { promises as fs } from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { execSync } from 'child_process';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import { dirname } from 'path';
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = dirname(__filename);
|
|
9
|
+
export const initCommand = new Command('init')
|
|
10
|
+
.description('Initialize DevFlow for Claude Code')
|
|
11
|
+
.option('--skip-docs', 'Skip creating .docs/ structure')
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
console.log('š DevFlow - Agentic Development Toolkit');
|
|
14
|
+
console.log(' Intelligent tools for reliable AI-assisted development\n');
|
|
15
|
+
// Check for Claude Code
|
|
16
|
+
const claudeDir = path.join(process.env.HOME || '', '.claude');
|
|
17
|
+
try {
|
|
18
|
+
await fs.access(claudeDir);
|
|
19
|
+
console.log('š Detected Claude Code ā
\n');
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
console.error('ā Claude Code not detected');
|
|
23
|
+
console.error('\nInstall Claude Code from: https://claude.com/claude-code');
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
console.log('š ļø Installing DevFlow for Claude Code...');
|
|
27
|
+
// Get the root directory of the devflow package
|
|
28
|
+
const rootDir = path.resolve(__dirname, '../..');
|
|
29
|
+
const claudeSourceDir = path.join(rootDir, 'src', 'claude');
|
|
30
|
+
try {
|
|
31
|
+
// Clean old DevFlow files before installing
|
|
32
|
+
console.log(' š§¹ Cleaning old DevFlow files...');
|
|
33
|
+
const commandsDevflowDir = path.join(claudeDir, 'commands', 'devflow');
|
|
34
|
+
const agentsDevflowDir = path.join(claudeDir, 'agents', 'devflow');
|
|
35
|
+
const devflowScriptsDir = path.join(process.env.HOME || '', '.devflow', 'scripts');
|
|
36
|
+
// Remove old DevFlow subdirectories (not entire commands/agents folders)
|
|
37
|
+
try {
|
|
38
|
+
await fs.rm(commandsDevflowDir, { recursive: true, force: true });
|
|
39
|
+
await fs.rm(agentsDevflowDir, { recursive: true, force: true });
|
|
40
|
+
await fs.rm(devflowScriptsDir, { recursive: true, force: true });
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
// Directories might not exist on first install
|
|
44
|
+
}
|
|
45
|
+
// Install commands
|
|
46
|
+
console.log(' š Installing commands...');
|
|
47
|
+
await fs.mkdir(commandsDevflowDir, { recursive: true });
|
|
48
|
+
await copyDirectory(path.join(claudeSourceDir, 'commands', 'devflow'), commandsDevflowDir);
|
|
49
|
+
// Install sub-agents
|
|
50
|
+
console.log(' š¤ Installing sub-agents...');
|
|
51
|
+
await fs.mkdir(agentsDevflowDir, { recursive: true });
|
|
52
|
+
await copyDirectory(path.join(claudeSourceDir, 'agents', 'devflow'), agentsDevflowDir);
|
|
53
|
+
// Install scripts
|
|
54
|
+
console.log(' š Installing scripts...');
|
|
55
|
+
await fs.mkdir(devflowScriptsDir, { recursive: true });
|
|
56
|
+
await copyDirectory(path.join(claudeSourceDir, 'scripts'), devflowScriptsDir);
|
|
57
|
+
// Make scripts executable
|
|
58
|
+
const scripts = await fs.readdir(devflowScriptsDir);
|
|
59
|
+
for (const script of scripts) {
|
|
60
|
+
await fs.chmod(path.join(devflowScriptsDir, script), 0o755);
|
|
61
|
+
}
|
|
62
|
+
// Install settings
|
|
63
|
+
console.log(' āļø Installing settings...');
|
|
64
|
+
await fs.copyFile(path.join(claudeSourceDir, 'settings.json'), path.join(claudeDir, 'settings.json'));
|
|
65
|
+
console.log(' ā
Claude Code installation complete\n');
|
|
66
|
+
// Create .claudeignore in git repository root
|
|
67
|
+
try {
|
|
68
|
+
// Find git repository root
|
|
69
|
+
const gitRoot = execSync('git rev-parse --show-toplevel', {
|
|
70
|
+
cwd: process.cwd(),
|
|
71
|
+
encoding: 'utf-8'
|
|
72
|
+
}).trim();
|
|
73
|
+
const claudeignorePath = path.join(gitRoot, '.claudeignore');
|
|
74
|
+
// Check if .claudeignore already exists
|
|
75
|
+
try {
|
|
76
|
+
await fs.access(claudeignorePath);
|
|
77
|
+
console.log('š Security: .claudeignore already exists (skipping)');
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// Create comprehensive .claudeignore
|
|
81
|
+
const claudeignoreContent = `# DevFlow .claudeignore - Protects against sensitive files and context pollution
|
|
82
|
+
# Generated by DevFlow - Edit as needed for your project
|
|
83
|
+
|
|
84
|
+
# === SECURITY: Sensitive Files ===
|
|
85
|
+
# Environment and secrets
|
|
86
|
+
.env
|
|
87
|
+
.env.*
|
|
88
|
+
.env.local
|
|
89
|
+
.env.*.local
|
|
90
|
+
*.env
|
|
91
|
+
.envrc
|
|
92
|
+
|
|
93
|
+
# Credentials and keys
|
|
94
|
+
*.key
|
|
95
|
+
*.pem
|
|
96
|
+
*.p12
|
|
97
|
+
*.pfx
|
|
98
|
+
*.cer
|
|
99
|
+
*.crt
|
|
100
|
+
*.der
|
|
101
|
+
id_rsa
|
|
102
|
+
id_dsa
|
|
103
|
+
id_ecdsa
|
|
104
|
+
id_ed25519
|
|
105
|
+
*.ppk
|
|
106
|
+
*_rsa
|
|
107
|
+
*_dsa
|
|
108
|
+
*secret*
|
|
109
|
+
*password*
|
|
110
|
+
*credential*
|
|
111
|
+
credentials.json
|
|
112
|
+
secrets.json
|
|
113
|
+
secrets.yaml
|
|
114
|
+
secrets.yml
|
|
115
|
+
|
|
116
|
+
# Cloud provider credentials
|
|
117
|
+
.aws/credentials
|
|
118
|
+
.aws/config
|
|
119
|
+
.gcp/credentials.json
|
|
120
|
+
.azure/credentials
|
|
121
|
+
|
|
122
|
+
# Package manager credentials
|
|
123
|
+
.npmrc
|
|
124
|
+
.pypirc
|
|
125
|
+
.gem/credentials
|
|
126
|
+
pip.conf
|
|
127
|
+
|
|
128
|
+
# Database
|
|
129
|
+
*.sql
|
|
130
|
+
*.db
|
|
131
|
+
*.sqlite
|
|
132
|
+
*.sqlite3
|
|
133
|
+
|
|
134
|
+
# === DEPENDENCIES & BUILD ===
|
|
135
|
+
# Node.js
|
|
136
|
+
node_modules/
|
|
137
|
+
npm-debug.log*
|
|
138
|
+
yarn-debug.log*
|
|
139
|
+
yarn-error.log*
|
|
140
|
+
pnpm-debug.log*
|
|
141
|
+
.pnpm-store/
|
|
142
|
+
|
|
143
|
+
# Python
|
|
144
|
+
__pycache__/
|
|
145
|
+
*.py[cod]
|
|
146
|
+
*$py.class
|
|
147
|
+
.Python
|
|
148
|
+
env/
|
|
149
|
+
venv/
|
|
150
|
+
ENV/
|
|
151
|
+
.venv/
|
|
152
|
+
pip-log.txt
|
|
153
|
+
pip-delete-this-directory.txt
|
|
154
|
+
.eggs/
|
|
155
|
+
*.egg-info/
|
|
156
|
+
dist/
|
|
157
|
+
build/
|
|
158
|
+
*.whl
|
|
159
|
+
|
|
160
|
+
# Ruby
|
|
161
|
+
vendor/bundle/
|
|
162
|
+
.bundle/
|
|
163
|
+
|
|
164
|
+
# Go
|
|
165
|
+
vendor/
|
|
166
|
+
go.sum
|
|
167
|
+
|
|
168
|
+
# Rust
|
|
169
|
+
target/
|
|
170
|
+
Cargo.lock
|
|
171
|
+
|
|
172
|
+
# Java
|
|
173
|
+
target/
|
|
174
|
+
*.class
|
|
175
|
+
*.jar
|
|
176
|
+
*.war
|
|
177
|
+
|
|
178
|
+
# PHP
|
|
179
|
+
vendor/
|
|
180
|
+
composer.lock
|
|
181
|
+
|
|
182
|
+
# === BUILD ARTIFACTS ===
|
|
183
|
+
dist/
|
|
184
|
+
build/
|
|
185
|
+
out/
|
|
186
|
+
.next/
|
|
187
|
+
.nuxt/
|
|
188
|
+
.output/
|
|
189
|
+
.vite/
|
|
190
|
+
.cache/
|
|
191
|
+
.parcel-cache/
|
|
192
|
+
.turbo/
|
|
193
|
+
*.tsbuildinfo
|
|
194
|
+
|
|
195
|
+
# === LOGS & TEMP FILES ===
|
|
196
|
+
logs/
|
|
197
|
+
*.log
|
|
198
|
+
*.tmp
|
|
199
|
+
*.temp
|
|
200
|
+
*.swp
|
|
201
|
+
*.swo
|
|
202
|
+
*~
|
|
203
|
+
.DS_Store
|
|
204
|
+
Thumbs.db
|
|
205
|
+
*.bak
|
|
206
|
+
*.orig
|
|
207
|
+
*.rej
|
|
208
|
+
.cache
|
|
209
|
+
|
|
210
|
+
# === VERSION CONTROL ===
|
|
211
|
+
.git/
|
|
212
|
+
.svn/
|
|
213
|
+
.hg/
|
|
214
|
+
.gitignore
|
|
215
|
+
|
|
216
|
+
# === IDE & EDITORS ===
|
|
217
|
+
.vscode/
|
|
218
|
+
.idea/
|
|
219
|
+
*.sublime-*
|
|
220
|
+
*.code-workspace
|
|
221
|
+
.project
|
|
222
|
+
.classpath
|
|
223
|
+
.settings/
|
|
224
|
+
|
|
225
|
+
# === TEST COVERAGE ===
|
|
226
|
+
coverage/
|
|
227
|
+
.nyc_output/
|
|
228
|
+
htmlcov/
|
|
229
|
+
.coverage
|
|
230
|
+
.pytest_cache/
|
|
231
|
+
.tox/
|
|
232
|
+
|
|
233
|
+
# === OS-SPECIFIC ===
|
|
234
|
+
.DS_Store
|
|
235
|
+
.AppleDouble
|
|
236
|
+
.LSOverride
|
|
237
|
+
Thumbs.db
|
|
238
|
+
ehthumbs.db
|
|
239
|
+
Desktop.ini
|
|
240
|
+
|
|
241
|
+
# === MEDIA & LARGE FILES ===
|
|
242
|
+
*.mp4
|
|
243
|
+
*.avi
|
|
244
|
+
*.mov
|
|
245
|
+
*.wmv
|
|
246
|
+
*.flv
|
|
247
|
+
*.mp3
|
|
248
|
+
*.wav
|
|
249
|
+
*.zip
|
|
250
|
+
*.tar.gz
|
|
251
|
+
*.rar
|
|
252
|
+
*.7z
|
|
253
|
+
*.dmg
|
|
254
|
+
*.iso
|
|
255
|
+
|
|
256
|
+
# === DOCUMENTATION BUILD ===
|
|
257
|
+
site/
|
|
258
|
+
_site/
|
|
259
|
+
.docusaurus/
|
|
260
|
+
.vuepress/dist/
|
|
261
|
+
|
|
262
|
+
# === LOCK FILES (usually not needed for AI context) ===
|
|
263
|
+
package-lock.json
|
|
264
|
+
yarn.lock
|
|
265
|
+
pnpm-lock.yaml
|
|
266
|
+
Gemfile.lock
|
|
267
|
+
poetry.lock
|
|
268
|
+
Pipfile.lock
|
|
269
|
+
`;
|
|
270
|
+
await fs.writeFile(claudeignorePath, claudeignoreContent, 'utf-8');
|
|
271
|
+
console.log('š Security: Created .claudeignore at repository root');
|
|
272
|
+
console.log(' ⢠Protects sensitive files (credentials, keys, secrets)');
|
|
273
|
+
console.log(' ⢠Reduces context pollution (node_modules, build artifacts)');
|
|
274
|
+
console.log(' ⢠Covers common patterns for all major languages\n');
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
// Not a git repository or other error - skip .claudeignore creation
|
|
279
|
+
console.log('ā¹ļø Skipped .claudeignore (not in a git repository)\n');
|
|
280
|
+
}
|
|
281
|
+
// Offer to install project documentation structure
|
|
282
|
+
if (!options.skipDocs) {
|
|
283
|
+
console.log('š Project Documentation Setup\n');
|
|
284
|
+
const docsDir = path.join(process.cwd(), '.docs');
|
|
285
|
+
try {
|
|
286
|
+
await fs.mkdir(path.join(docsDir, 'status', 'compact'), { recursive: true });
|
|
287
|
+
await fs.mkdir(path.join(docsDir, 'reviews'), { recursive: true });
|
|
288
|
+
await fs.mkdir(path.join(docsDir, 'audits'), { recursive: true });
|
|
289
|
+
console.log(' ā
Created .docs/ structure');
|
|
290
|
+
console.log(' ⢠.docs/status/ - Session documentation');
|
|
291
|
+
console.log(' ⢠.docs/reviews/ - Code review reports');
|
|
292
|
+
console.log(' ⢠.docs/audits/ - Security, performance, architecture audits');
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
console.log(' ā ļø Could not create .docs/ structure (may already exist)');
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
console.log('\nā
DevFlow installation complete!\n');
|
|
299
|
+
console.log('šÆ WHAT\'S INSTALLED:');
|
|
300
|
+
console.log(' š Claude Code:');
|
|
301
|
+
console.log(' ⢠Commands: ~/.claude/commands/');
|
|
302
|
+
console.log(' ⢠Sub-agents: ~/.claude/agents/');
|
|
303
|
+
console.log(' ⢠Scripts: ~/.devflow/scripts/');
|
|
304
|
+
console.log(' ⢠Settings: ~/.claude/settings.json (statusline and model)\n');
|
|
305
|
+
console.log('š SMART STATUSLINE:');
|
|
306
|
+
console.log(' ā
Statusline configured');
|
|
307
|
+
console.log(' ⢠Shows project context, git status, session cost, and duration\n');
|
|
308
|
+
console.log('š QUICK START:');
|
|
309
|
+
console.log(' 1. Navigate to a project directory');
|
|
310
|
+
console.log(' 2. Run \'/catch-up\' to get oriented');
|
|
311
|
+
console.log(' 3. Use \'/pre-commit\' to review uncommitted changes');
|
|
312
|
+
console.log(' 4. Run \'/devlog\' to document sessions\n');
|
|
313
|
+
console.log('š DOCUMENTATION:');
|
|
314
|
+
console.log(' ⢠Read CLAUDE.md for comprehensive guide');
|
|
315
|
+
console.log(' ⢠Commands are self-documenting');
|
|
316
|
+
console.log(' ⢠Check README.md for quick reference\n');
|
|
317
|
+
console.log('Happy coding with DevFlow! š');
|
|
318
|
+
}
|
|
319
|
+
catch (error) {
|
|
320
|
+
console.error('ā Installation failed:', error);
|
|
321
|
+
process.exit(1);
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
async function copyDirectory(src, dest) {
|
|
325
|
+
await fs.mkdir(dest, { recursive: true });
|
|
326
|
+
const entries = await fs.readdir(src, { withFileTypes: true });
|
|
327
|
+
for (const entry of entries) {
|
|
328
|
+
const srcPath = path.join(src, entry.name);
|
|
329
|
+
const destPath = path.join(dest, entry.name);
|
|
330
|
+
if (entry.isDirectory()) {
|
|
331
|
+
await copyDirectory(srcPath, destPath);
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
await fs.copyFile(srcPath, destPath);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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;AAIpC,eAAO,MAAM,gBAAgB,SAuEzB,CAAC"}
|