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.
Files changed (34) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/LICENSE +21 -0
  3. package/README.md +144 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +32 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/init.d.ts +3 -0
  9. package/dist/commands/init.d.ts.map +1 -0
  10. package/dist/commands/init.js +338 -0
  11. package/dist/commands/init.js.map +1 -0
  12. package/dist/commands/uninstall.d.ts +3 -0
  13. package/dist/commands/uninstall.d.ts.map +1 -0
  14. package/dist/commands/uninstall.js +74 -0
  15. package/dist/commands/uninstall.js.map +1 -0
  16. package/package.json +54 -0
  17. package/src/claude/agents/devflow/audit-architecture.md +84 -0
  18. package/src/claude/agents/devflow/audit-complexity.md +102 -0
  19. package/src/claude/agents/devflow/audit-database.md +104 -0
  20. package/src/claude/agents/devflow/audit-dependencies.md +109 -0
  21. package/src/claude/agents/devflow/audit-performance.md +85 -0
  22. package/src/claude/agents/devflow/audit-security.md +75 -0
  23. package/src/claude/agents/devflow/audit-tests.md +107 -0
  24. package/src/claude/agents/devflow/catch-up.md +352 -0
  25. package/src/claude/agents/devflow/commit.md +347 -0
  26. package/src/claude/commands/devflow/catch-up.md +29 -0
  27. package/src/claude/commands/devflow/commit.md +28 -0
  28. package/src/claude/commands/devflow/debug.md +228 -0
  29. package/src/claude/commands/devflow/devlog.md +370 -0
  30. package/src/claude/commands/devflow/plan-next-steps.md +212 -0
  31. package/src/claude/commands/devflow/pre-commit.md +138 -0
  32. package/src/claude/commands/devflow/pre-pr.md +286 -0
  33. package/src/claude/scripts/statusline.sh +115 -0
  34. 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,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -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
@@ -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,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const initCommand: Command;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -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,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const uninstallCommand: Command;
3
+ //# sourceMappingURL=uninstall.d.ts.map
@@ -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"}