@pjmendonca/devflow 1.9.0 → 1.10.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 +11 -1
- package/README.md +50 -48
- package/bin/create-devflow.js +140 -0
- package/lib/python-check.js +5 -5
- package/package.json +2 -1
- package/tooling/.automation/agents/dev.md +2 -2
- package/tooling/.automation/agents/reviewer.md +8 -8
- package/tooling/.automation/agents/sm.md +1 -1
- package/tooling/.automation/memory/knowledge/kg_integration-test.json +137 -1
- package/tooling/.automation/memory/knowledge/kg_test-story.json +438 -2
- package/tooling/.automation/memory/shared/shared_integration-test.json +25 -1
- package/tooling/.automation/memory/shared/shared_test-story.json +73 -1
- package/tooling/.automation/overrides/templates/reviewer/mentoring-reviewer.yaml +5 -5
- package/tooling/docs/DOC-STANDARD.md +21 -21
- package/tooling/docs/templates/bug-report.md +1 -1
- package/tooling/scripts/context_checkpoint.py +16 -16
- package/tooling/scripts/create-persona.py +7 -7
- package/tooling/scripts/create-persona.sh +4 -4
- package/tooling/scripts/init-project-workflow.sh +19 -19
- package/tooling/scripts/lib/__init__.py +1 -1
- package/tooling/scripts/lib/agent_handoff.py +4 -6
- package/tooling/scripts/lib/agent_router.py +6 -6
- package/tooling/scripts/lib/checkpoint-integration.sh +14 -14
- package/tooling/scripts/lib/claude-cli.sh +50 -50
- package/tooling/scripts/lib/cost_tracker.py +4 -4
- package/tooling/scripts/lib/errors.py +9 -9
- package/tooling/scripts/lib/pair_programming.py +5 -5
- package/tooling/scripts/lib/shared_memory.py +4 -4
- package/tooling/scripts/lib/swarm_orchestrator.py +18 -18
- package/tooling/scripts/new-doc.sh +12 -12
- package/tooling/scripts/personalize_agent.py +4 -4
- package/tooling/scripts/rollback-migration.sh +4 -4
- package/tooling/scripts/run-collab.ps1 +2 -2
- package/tooling/scripts/run-collab.py +13 -13
- package/tooling/scripts/run-story.py +1 -1
- package/tooling/scripts/run-story.sh +20 -20
- package/tooling/scripts/setup-checkpoint-service.sh +4 -4
- package/tooling/scripts/tech-debt-tracker.py +12 -12
- package/tooling/scripts/update_version.py +10 -10
- package/tooling/scripts/validate-overrides.py +10 -12
- package/tooling/scripts/validate-overrides.sh +7 -7
- package/tooling/scripts/validate_setup.py +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,16 @@ All notable changes to this project 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
|
+
## [1.10.0] - 2025-12-23
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **npm Project Scaffolding** - New `create-devflow` command for easy project setup
|
|
12
|
+
- Creates a new "Devflow" directory with all essential files
|
|
13
|
+
- Automatically runs interactive setup wizard after file copy
|
|
14
|
+
- Simplifies onboarding for new users
|
|
15
|
+
- Usage: `npx @pjmendonca/devflow@latest` creates Devflow folder in current directory
|
|
16
|
+
- Updated README with new recommended installation method
|
|
17
|
+
|
|
8
18
|
## [1.9.0] - 2025-12-22
|
|
9
19
|
|
|
10
20
|
### Added
|
|
@@ -15,7 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
15
25
|
- Zero npm runtime dependencies - lightweight package (~600KB)
|
|
16
26
|
- Complements existing pip package (both methods work identically)
|
|
17
27
|
- Comprehensive npm installation documentation
|
|
18
|
-
- Version synchronization script for CHANGELOG
|
|
28
|
+
- Version synchronization script for CHANGELOG -> package.json
|
|
19
29
|
|
|
20
30
|
## [1.8.0] - 2025-12-22
|
|
21
31
|
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
[](https://claude.com/claude-code)
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## What is This?
|
|
9
9
|
|
|
10
10
|
A production-ready, portable workflow automation system that uses Claude Code CLI to implement user stories with minimal human intervention. Think "CI/CD for development" - but instead of deploying code, it writes code.
|
|
11
11
|
|
|
@@ -14,7 +14,7 @@ A production-ready, portable workflow automation system that uses Claude Code CL
|
|
|
14
14
|
- **Multi-Persona Agent System** - 8 specialized AI agents (SM, DEV, BA, ARCHITECT, PM, WRITER, MAINTAINER, REVIEWER)
|
|
15
15
|
- **Smart Model Usage** - Opus for development, Sonnet for planning (40-60% cost savings)
|
|
16
16
|
- **Context Preservation** - Automatic checkpoints prevent work loss from context limits
|
|
17
|
-
- **Full Automation** - Context
|
|
17
|
+
- **Full Automation** - Context -> Development -> Testing -> Review -> Commit pipeline
|
|
18
18
|
- **Greenfield + Brownfield** - Supports both new features AND existing codebase maintenance
|
|
19
19
|
- **Agent Personalization** - Agent overrides and persistent agent memory
|
|
20
20
|
- **Claude Code Integration** - Native slash commands (`/story`, `/swarm`, `/pair`, `/route`, etc.)
|
|
@@ -26,7 +26,7 @@ A production-ready, portable workflow automation system that uses Claude Code CL
|
|
|
26
26
|
- **Project Agnostic** - Works with Flutter, Node.js, Python, Rust, Go, Ruby, etc.
|
|
27
27
|
- **Guided Setup** - Interactive wizard guides you through installation
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## Quick Start
|
|
30
30
|
|
|
31
31
|
### Prerequisites
|
|
32
32
|
|
|
@@ -44,24 +44,42 @@ A production-ready, portable workflow automation system that uses Claude Code CL
|
|
|
44
44
|
|
|
45
45
|
### Installation
|
|
46
46
|
|
|
47
|
-
**Option 1:
|
|
47
|
+
**Option 1: Quick Start (Recommended - Creates Devflow folder)**
|
|
48
|
+
|
|
49
|
+
This creates a new "Devflow" directory with all necessary files:
|
|
48
50
|
|
|
49
51
|
```bash
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
+
# Create a new Devflow project directory
|
|
53
|
+
npx @pjmendonca/devflow@latest
|
|
52
54
|
|
|
53
|
-
#
|
|
54
|
-
|
|
55
|
+
# This will:
|
|
56
|
+
# 1. Create a "Devflow" folder in your current directory
|
|
57
|
+
# 2. Copy all essential files into it
|
|
58
|
+
# 3. Run the interactive setup wizard
|
|
55
59
|
|
|
56
|
-
#
|
|
57
|
-
|
|
60
|
+
# Then use it:
|
|
61
|
+
cd Devflow
|
|
62
|
+
/story <key>
|
|
58
63
|
```
|
|
59
64
|
|
|
60
65
|
**Requirements:** Python 3.9+ and Node.js 14+
|
|
61
66
|
|
|
67
|
+
**Option 2: Add to Existing Project**
|
|
68
|
+
|
|
69
|
+
Install Devflow into your current project:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Local installation
|
|
73
|
+
npm install @pjmendonca/devflow
|
|
74
|
+
|
|
75
|
+
# IMPORTANT: Local installs require npx to run commands
|
|
76
|
+
npx devflow-validate
|
|
77
|
+
npx devflow-init
|
|
78
|
+
```
|
|
79
|
+
|
|
62
80
|
See [NPM Installation Guide](docs/NPM_INSTALLATION.md) for detailed instructions and troubleshooting.
|
|
63
81
|
|
|
64
|
-
**Option
|
|
82
|
+
**Option 3: pip (Python Ecosystem)**
|
|
65
83
|
|
|
66
84
|
```bash
|
|
67
85
|
# Clone the repository
|
|
@@ -75,9 +93,9 @@ pip install .
|
|
|
75
93
|
devflow-validate
|
|
76
94
|
```
|
|
77
95
|
|
|
78
|
-
**Option
|
|
96
|
+
**Option 4: Manual Installation (macOS/Linux)**
|
|
79
97
|
|
|
80
|
-
Clone and Setup
|
|
98
|
+
Clone and Setup:
|
|
81
99
|
|
|
82
100
|
```bash
|
|
83
101
|
# Clone this repository
|
|
@@ -107,7 +125,7 @@ cp config.sh.template config.sh
|
|
|
107
125
|
vim config.sh
|
|
108
126
|
```
|
|
109
127
|
|
|
110
|
-
**Option
|
|
128
|
+
**Option 5: Manual Installation (Windows)**
|
|
111
129
|
|
|
112
130
|
Clone and Setup (Recommended):
|
|
113
131
|
|
|
@@ -143,22 +161,6 @@ Copy-Item config.ps1.template config.ps1
|
|
|
143
161
|
notepad config.ps1
|
|
144
162
|
```
|
|
145
163
|
|
|
146
|
-
**Running Stories on Windows:**
|
|
147
|
-
|
|
148
|
-
```powershell
|
|
149
|
-
# Full pipeline with live monitoring
|
|
150
|
-
.\run-story.ps1 -StoryKey "3-5"
|
|
151
|
-
|
|
152
|
-
# Development only
|
|
153
|
-
.\run-story.ps1 -StoryKey "3-5" -Develop
|
|
154
|
-
|
|
155
|
-
# With specific model
|
|
156
|
-
.\run-story.ps1 -StoryKey "3-5" -Model opus
|
|
157
|
-
|
|
158
|
-
# Disable auto-commit
|
|
159
|
-
.\run-story.ps1 -StoryKey "3-5" -NoCommit
|
|
160
|
-
```
|
|
161
|
-
|
|
162
164
|
### Agent Personas
|
|
163
165
|
|
|
164
166
|
| Agent | Model | Cost | Use Case |
|
|
@@ -172,7 +174,7 @@ notepad config.ps1
|
|
|
172
174
|
| **MAINTAINER** | Opus/Sonnet | Varies | Bug fixes, refactoring, tech debt |
|
|
173
175
|
| **REVIEWER** (Adversarial) | Opus | High | Critical code review, finds problems |
|
|
174
176
|
|
|
175
|
-
##
|
|
177
|
+
## Claude Slash Commands
|
|
176
178
|
|
|
177
179
|
Devflow provides native slash commands for Claude Code:
|
|
178
180
|
|
|
@@ -215,7 +217,7 @@ Devflow provides native slash commands for Claude Code:
|
|
|
215
217
|
/memory 3-5 --query "auth decisions" # Query knowledge graph
|
|
216
218
|
```
|
|
217
219
|
|
|
218
|
-
##
|
|
220
|
+
## Knowledge Graph & Shared Memory
|
|
219
221
|
|
|
220
222
|
Devflow features a sophisticated memory system that enables agents to share context, track decisions, and maintain institutional knowledge across the entire development workflow.
|
|
221
223
|
|
|
@@ -283,7 +285,7 @@ memory.add('DEV', 'Decided to use PostgreSQL for user data', tags=['database', '
|
|
|
283
285
|
- `tags` - Searchable categorization tags
|
|
284
286
|
- `references` - Links to related entries
|
|
285
287
|
|
|
286
|
-
##
|
|
288
|
+
## Agent Handoff System
|
|
287
289
|
|
|
288
290
|
The Agent Handoff System ensures seamless transitions between agents with structured context preservation. When one agent finishes their work, a comprehensive handoff summary is automatically generated for the next agent.
|
|
289
291
|
|
|
@@ -322,14 +324,14 @@ print(handoff)
|
|
|
322
324
|
|
|
323
325
|
| From | To | Focus Areas |
|
|
324
326
|
|------|-----|-------------|
|
|
325
|
-
| SM
|
|
326
|
-
| SM
|
|
327
|
-
| ARCHITECT
|
|
328
|
-
| DEV
|
|
329
|
-
| REVIEWER
|
|
330
|
-
| BA
|
|
327
|
+
| SM -> DEV | Acceptance criteria, technical context, patterns to follow |
|
|
328
|
+
| SM -> ARCHITECT | High-level requirements, system constraints, scale requirements |
|
|
329
|
+
| ARCHITECT -> DEV | Architecture decisions, design patterns, interface definitions |
|
|
330
|
+
| DEV -> REVIEWER | Implementation approach, key decisions, test coverage |
|
|
331
|
+
| REVIEWER -> DEV | Issues found, required changes, approval status |
|
|
332
|
+
| BA -> DEV | Refined requirements, acceptance criteria, edge cases |
|
|
331
333
|
|
|
332
|
-
##
|
|
334
|
+
## Multi-Agent Collaboration
|
|
333
335
|
|
|
334
336
|
Devflow supports advanced multi-agent collaboration modes for complex development tasks.
|
|
335
337
|
|
|
@@ -401,9 +403,9 @@ Let Devflow automatically select the best agents:
|
|
|
401
403
|
**How it works:**
|
|
402
404
|
- Analyzes task description for keywords
|
|
403
405
|
- Considers file types and complexity
|
|
404
|
-
- Routes to appropriate specialists (e.g., security
|
|
406
|
+
- Routes to appropriate specialists (e.g., security -> SECURITY agent)
|
|
405
407
|
|
|
406
|
-
##
|
|
408
|
+
## Cost Tracking & Currency Configuration
|
|
407
409
|
|
|
408
410
|
Devflow includes a comprehensive cost tracking system with multi-currency support and budget controls.
|
|
409
411
|
|
|
@@ -498,7 +500,7 @@ python tooling/scripts/cost_dashboard.py --summary
|
|
|
498
500
|
- **Set budget limits** - Prevent runaway costs with phase-specific limits
|
|
499
501
|
- **Monitor the dashboard** - Track spending patterns across stories
|
|
500
502
|
|
|
501
|
-
##
|
|
503
|
+
## Shell Completion
|
|
502
504
|
|
|
503
505
|
Enable tab-completion for faster command entry.
|
|
504
506
|
|
|
@@ -561,7 +563,7 @@ devflow-help
|
|
|
561
563
|
./run-story.sh 3-5 --agents AR<TAB> # Completes to ARCHITECT
|
|
562
564
|
```
|
|
563
565
|
|
|
564
|
-
##
|
|
566
|
+
## Security Considerations
|
|
565
567
|
|
|
566
568
|
### API Key Management
|
|
567
569
|
|
|
@@ -600,13 +602,13 @@ Devflow relies on the Claude Code CLI for API authentication. The CLI handles AP
|
|
|
600
602
|
- No data is sent to external servers by Devflow (only to Anthropic's API via Claude CLI)
|
|
601
603
|
- Context checkpoints may contain code snippets - review before sharing
|
|
602
604
|
|
|
603
|
-
##
|
|
605
|
+
## License
|
|
604
606
|
|
|
605
607
|
MIT License - see [LICENSE](LICENSE) for details.
|
|
606
608
|
|
|
607
609
|
Free to use in commercial and personal projects.
|
|
608
610
|
|
|
609
|
-
##
|
|
611
|
+
## Acknowledgments
|
|
610
612
|
|
|
611
613
|
- Built for [Claude Code CLI](https://claude.com/claude-code)
|
|
612
614
|
- Agent override system inspired by [BMAD-METHOD](https://github.com/bmad-code-org/BMAD-METHOD)
|
|
@@ -614,7 +616,7 @@ Free to use in commercial and personal projects.
|
|
|
614
616
|
|
|
615
617
|
|
|
616
618
|
<!-- VERSION_START - Auto-updated by update_version.py -->
|
|
617
|
-
**Version**: 1.
|
|
619
|
+
**Version**: 1.10.0
|
|
618
620
|
**Status**: Production Ready
|
|
619
|
-
**Last Updated**: 2025-12-
|
|
621
|
+
**Last Updated**: 2025-12-23
|
|
620
622
|
<!-- VERSION_END -->
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* create-devflow - NPM initializer for Devflow
|
|
5
|
+
*
|
|
6
|
+
* Creates a new "Devflow" directory with all necessary files
|
|
7
|
+
* Usage: npm create @pjmendonca/devflow
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const fs = require('fs');
|
|
11
|
+
const path = require('path');
|
|
12
|
+
const { execSync } = require('child_process');
|
|
13
|
+
|
|
14
|
+
// Get the current working directory where the user ran the command
|
|
15
|
+
const targetDir = path.join(process.cwd(), 'Devflow');
|
|
16
|
+
|
|
17
|
+
// Get the source directory (where this package is installed)
|
|
18
|
+
const sourceDir = path.join(__dirname, '..');
|
|
19
|
+
|
|
20
|
+
console.log('\n========================================');
|
|
21
|
+
console.log(' Devflow Project Initializer');
|
|
22
|
+
console.log('========================================\n');
|
|
23
|
+
|
|
24
|
+
// Check if Devflow directory already exists
|
|
25
|
+
if (fs.existsSync(targetDir)) {
|
|
26
|
+
console.error(`Error: Directory "Devflow" already exists in ${process.cwd()}`);
|
|
27
|
+
console.error('Please remove it or run this command from a different location.\n');
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
console.log(`Creating Devflow directory at: ${targetDir}`);
|
|
32
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Recursively copy directory
|
|
36
|
+
*/
|
|
37
|
+
function copyDir(src, dest) {
|
|
38
|
+
// Create destination directory
|
|
39
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
40
|
+
|
|
41
|
+
// Read source directory
|
|
42
|
+
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
43
|
+
|
|
44
|
+
for (const entry of entries) {
|
|
45
|
+
const srcPath = path.join(src, entry.name);
|
|
46
|
+
const destPath = path.join(dest, entry.name);
|
|
47
|
+
|
|
48
|
+
if (entry.isDirectory()) {
|
|
49
|
+
copyDir(srcPath, destPath);
|
|
50
|
+
} else {
|
|
51
|
+
fs.copyFileSync(srcPath, destPath);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Copy file
|
|
58
|
+
*/
|
|
59
|
+
function copyFile(src, dest) {
|
|
60
|
+
const destDir = path.dirname(dest);
|
|
61
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
62
|
+
fs.copyFileSync(src, dest);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Files and directories to copy
|
|
66
|
+
const itemsToCopy = [
|
|
67
|
+
{ type: 'dir', name: 'tooling' },
|
|
68
|
+
{ type: 'dir', name: 'bin' },
|
|
69
|
+
{ type: 'dir', name: 'lib' },
|
|
70
|
+
{ type: 'file', name: 'LICENSE' },
|
|
71
|
+
{ type: 'file', name: 'README.md' },
|
|
72
|
+
{ type: 'file', name: 'CHANGELOG.md' },
|
|
73
|
+
{ type: 'file', name: 'package.json' },
|
|
74
|
+
{ type: 'file', name: '.gitignore' }
|
|
75
|
+
];
|
|
76
|
+
|
|
77
|
+
console.log('\nCopying project files...');
|
|
78
|
+
for (const item of itemsToCopy) {
|
|
79
|
+
const src = path.join(sourceDir, item.name);
|
|
80
|
+
const dest = path.join(targetDir, item.name);
|
|
81
|
+
|
|
82
|
+
if (!fs.existsSync(src)) {
|
|
83
|
+
console.log(` Skipping ${item.name} (not found)`);
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
try {
|
|
88
|
+
if (item.type === 'dir') {
|
|
89
|
+
console.log(` Copying ${item.name}/ ...`);
|
|
90
|
+
copyDir(src, dest);
|
|
91
|
+
} else {
|
|
92
|
+
console.log(` Copying ${item.name} ...`);
|
|
93
|
+
copyFile(src, dest);
|
|
94
|
+
}
|
|
95
|
+
} catch (error) {
|
|
96
|
+
console.error(` Error copying ${item.name}: ${error.message}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
console.log('\n[OK] Files copied successfully!\n');
|
|
101
|
+
|
|
102
|
+
// Initialize git repo if not already in one
|
|
103
|
+
console.log('Initializing git repository...');
|
|
104
|
+
try {
|
|
105
|
+
process.chdir(targetDir);
|
|
106
|
+
execSync('git init', { stdio: 'ignore' });
|
|
107
|
+
console.log('[OK] Git repository initialized\n');
|
|
108
|
+
} catch (error) {
|
|
109
|
+
console.log('[INFO] Git not available or already initialized\n');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Run the setup wizard
|
|
113
|
+
console.log('========================================');
|
|
114
|
+
console.log(' Running Setup Wizard');
|
|
115
|
+
console.log('========================================\n');
|
|
116
|
+
|
|
117
|
+
try {
|
|
118
|
+
const initScript = path.join(targetDir, 'bin', 'devflow-init.js');
|
|
119
|
+
|
|
120
|
+
if (fs.existsSync(initScript)) {
|
|
121
|
+
console.log('Starting interactive setup wizard...\n');
|
|
122
|
+
execSync(`node "${initScript}"`, { stdio: 'inherit' });
|
|
123
|
+
} else {
|
|
124
|
+
console.log('[WARNING] Setup wizard not found. You may need to run it manually:');
|
|
125
|
+
console.log(' cd Devflow');
|
|
126
|
+
console.log(' npx devflow-init\n');
|
|
127
|
+
}
|
|
128
|
+
} catch (error) {
|
|
129
|
+
console.log('[WARNING] Setup wizard encountered an issue.');
|
|
130
|
+
console.log('You can run it manually later with: npx devflow-init\n');
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
console.log('\n========================================');
|
|
134
|
+
console.log(' Setup Complete!');
|
|
135
|
+
console.log('========================================\n');
|
|
136
|
+
console.log('Next steps:');
|
|
137
|
+
console.log(' 1. cd Devflow');
|
|
138
|
+
console.log(' 2. Review the README.md for usage instructions');
|
|
139
|
+
console.log(' 3. Start using Devflow with: /story <key>\n');
|
|
140
|
+
console.log('Documentation: https://github.com/Pedro-Jose-da-Rocha-Mendonca/Devflow\n');
|
package/lib/python-check.js
CHANGED
|
@@ -123,7 +123,7 @@ function checkPython() {
|
|
|
123
123
|
|
|
124
124
|
if (!pythonCmd) {
|
|
125
125
|
if (!silent) {
|
|
126
|
-
console.error(colorize('\n
|
|
126
|
+
console.error(colorize('\n[X] Python not found', 'red'));
|
|
127
127
|
console.error('\nDevflow requires Python 3.9 or higher.');
|
|
128
128
|
console.error(getInstallInstructions());
|
|
129
129
|
console.error(colorize('After installation, run:', 'yellow'));
|
|
@@ -147,7 +147,7 @@ function checkPython() {
|
|
|
147
147
|
|
|
148
148
|
if (!currentVersion) {
|
|
149
149
|
if (!silent) {
|
|
150
|
-
console.error(colorize('\n
|
|
150
|
+
console.error(colorize('\n[X] Could not parse Python version', 'red'));
|
|
151
151
|
console.error(`Version output: ${versionOutput}`);
|
|
152
152
|
console.error('');
|
|
153
153
|
}
|
|
@@ -157,7 +157,7 @@ function checkPython() {
|
|
|
157
157
|
// Check if version is sufficient
|
|
158
158
|
if (!isVersionSufficient(currentVersion, requiredVersion)) {
|
|
159
159
|
if (!silent) {
|
|
160
|
-
console.error(colorize(`\n
|
|
160
|
+
console.error(colorize(`\n[X] Python ${currentVersion.join('.')} found, but ${REQUIRED_VERSION}+ required`, 'red'));
|
|
161
161
|
console.error(getInstallInstructions());
|
|
162
162
|
console.error('');
|
|
163
163
|
}
|
|
@@ -166,8 +166,8 @@ function checkPython() {
|
|
|
166
166
|
|
|
167
167
|
// Success!
|
|
168
168
|
if (!silent) {
|
|
169
|
-
console.log(colorize(`\n
|
|
170
|
-
console.log(colorize('
|
|
169
|
+
console.log(colorize(`\n[OK] Python ${currentVersion.join('.')} found (${pythonCmd})`, 'green'));
|
|
170
|
+
console.log(colorize('[OK] Devflow is ready to use!\n', 'green'));
|
|
171
171
|
console.log(`Try: ${colorize('devflow-validate', 'blue')}\n`);
|
|
172
172
|
}
|
|
173
173
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pjmendonca/devflow",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "Development workflow automation with Claude Code - agent-based development system with cost tracking",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"devflow",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"name": "Pedro Jose da Rocha Mendonca"
|
|
25
25
|
},
|
|
26
26
|
"bin": {
|
|
27
|
+
"create-devflow": "bin/create-devflow.js",
|
|
27
28
|
"devflow-cost": "bin/devflow-cost.js",
|
|
28
29
|
"devflow-validate": "bin/devflow-validate.js",
|
|
29
30
|
"devflow-story": "bin/devflow-story.js",
|
|
@@ -43,7 +43,7 @@ You are running in an automated pipeline with limited context window. To avoid l
|
|
|
43
43
|
|
|
44
44
|
If you sense context is running low, output a warning:
|
|
45
45
|
```
|
|
46
|
-
|
|
46
|
+
CONTEXT WARNING: Approaching context limit. Prioritizing completion of current task.
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
## When Complete
|
|
@@ -66,7 +66,7 @@ After implementing all acceptance criteria and tests pass:
|
|
|
66
66
|
|
|
67
67
|
Story: [story-key]
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
Generated with [Claude Code](https://claude.com/claude-code)
|
|
70
70
|
|
|
71
71
|
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"
|
|
72
72
|
```
|
|
@@ -42,16 +42,16 @@ You are a critical code reviewer. Your job is to FIND PROBLEMS, not approve code
|
|
|
42
42
|
Use these severity levels:
|
|
43
43
|
|
|
44
44
|
```
|
|
45
|
-
|
|
45
|
+
CRITICAL - Must fix before merge
|
|
46
46
|
Security vulnerabilities, data loss risks, crashes
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
HIGH - Should fix before merge
|
|
49
49
|
Logic errors, missing error handling, broken edge cases
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
MEDIUM - Fix soon
|
|
52
52
|
Code smells, missing tests, poor patterns
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
LOW - Consider fixing
|
|
55
55
|
Style issues, minor improvements, suggestions
|
|
56
56
|
```
|
|
57
57
|
|
|
@@ -62,15 +62,15 @@ For each issue found:
|
|
|
62
62
|
```
|
|
63
63
|
[SEVERITY] Category: Brief Title
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
Location: path/to/file.dart:42
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
Problem:
|
|
68
68
|
[What is wrong and why it matters]
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
Risk:
|
|
71
71
|
[What could go wrong if not fixed]
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
Suggested Fix:
|
|
74
74
|
[Specific code or approach to fix it]
|
|
75
75
|
```
|
|
76
76
|
|
|
@@ -57,5 +57,5 @@ You are running in an automated pipeline with limited context. To work efficient
|
|
|
57
57
|
|
|
58
58
|
If you sense context is running low, output:
|
|
59
59
|
```
|
|
60
|
-
|
|
60
|
+
CONTEXT WARNING: Approaching limit. Saving current findings.
|
|
61
61
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"story_key": "integration-test",
|
|
3
|
-
"last_updated": "2025-12-
|
|
3
|
+
"last_updated": "2025-12-22T13:26:44.920044",
|
|
4
4
|
"decisions": {},
|
|
5
5
|
"topic_index": {},
|
|
6
6
|
"handoffs": [
|
|
@@ -89,6 +89,142 @@
|
|
|
89
89
|
"Implement the required functionality",
|
|
90
90
|
"Write tests for the implementation"
|
|
91
91
|
]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "handoff_a9e761c7",
|
|
95
|
+
"timestamp": "2025-12-22T13:25:54.098107",
|
|
96
|
+
"from_agent": "SM",
|
|
97
|
+
"to_agent": "DEV",
|
|
98
|
+
"story_key": "integration-test",
|
|
99
|
+
"summary": "Ready for implementation",
|
|
100
|
+
"key_decisions": [],
|
|
101
|
+
"blockers_resolved": [],
|
|
102
|
+
"watch_out_for": [],
|
|
103
|
+
"files_touched": [
|
|
104
|
+
".claude/commands/route.md",
|
|
105
|
+
".githooks/pre-commit",
|
|
106
|
+
"CHANGELOG.md",
|
|
107
|
+
"CLAUDE.md",
|
|
108
|
+
"CONTRIBUTING.md",
|
|
109
|
+
"README.md",
|
|
110
|
+
"docs/NPM_INSTALLATION.md",
|
|
111
|
+
"lib/python-check.js",
|
|
112
|
+
"scripts/sync-version.js",
|
|
113
|
+
"test/integration.sh",
|
|
114
|
+
"tests/test_agent_handoff.py",
|
|
115
|
+
"tests/test_collaboration.py",
|
|
116
|
+
"tests/test_errors.py",
|
|
117
|
+
"tests/test_swarm_orchestrator.py",
|
|
118
|
+
"tooling/.automation/agents/dev.md",
|
|
119
|
+
"tooling/.automation/agents/reviewer.md",
|
|
120
|
+
"tooling/.automation/agents/sm.md",
|
|
121
|
+
"tooling/.automation/memory/knowledge/kg_test-story.json",
|
|
122
|
+
"tooling/.automation/memory/shared/shared_test-story.json",
|
|
123
|
+
"tooling/.automation/overrides/templates/reviewer/mentoring-reviewer.yaml",
|
|
124
|
+
"tooling/docs/DOC-STANDARD.md",
|
|
125
|
+
"tooling/docs/templates/bug-report.md",
|
|
126
|
+
"tooling/scripts/context_checkpoint.py",
|
|
127
|
+
"tooling/scripts/create-persona.py",
|
|
128
|
+
"tooling/scripts/create-persona.sh",
|
|
129
|
+
"tooling/scripts/init-project-workflow.sh",
|
|
130
|
+
"tooling/scripts/lib/agent_handoff.py",
|
|
131
|
+
"tooling/scripts/lib/agent_router.py",
|
|
132
|
+
"tooling/scripts/lib/checkpoint-integration.sh",
|
|
133
|
+
"tooling/scripts/lib/claude-cli.sh",
|
|
134
|
+
"tooling/scripts/lib/cost_tracker.py",
|
|
135
|
+
"tooling/scripts/lib/errors.py",
|
|
136
|
+
"tooling/scripts/lib/pair_programming.py",
|
|
137
|
+
"tooling/scripts/lib/shared_memory.py",
|
|
138
|
+
"tooling/scripts/lib/swarm_orchestrator.py",
|
|
139
|
+
"tooling/scripts/new-doc.sh",
|
|
140
|
+
"tooling/scripts/personalize_agent.py",
|
|
141
|
+
"tooling/scripts/rollback-migration.sh",
|
|
142
|
+
"tooling/scripts/run-collab.ps1",
|
|
143
|
+
"tooling/scripts/run-collab.py",
|
|
144
|
+
"tooling/scripts/run-story.py",
|
|
145
|
+
"tooling/scripts/run-story.sh",
|
|
146
|
+
"tooling/scripts/setup-checkpoint-service.sh",
|
|
147
|
+
"tooling/scripts/tech-debt-tracker.py",
|
|
148
|
+
"tooling/scripts/update_version.py",
|
|
149
|
+
"tooling/scripts/validate-overrides.py",
|
|
150
|
+
"tooling/scripts/validate-overrides.sh",
|
|
151
|
+
"tooling/scripts/validate_setup.py"
|
|
152
|
+
],
|
|
153
|
+
"next_steps": [
|
|
154
|
+
"Review the acceptance criteria in the story context",
|
|
155
|
+
"Examine the 48 files that have context",
|
|
156
|
+
"Implement the required functionality",
|
|
157
|
+
"Write tests for the implementation"
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "handoff_7fc4931a",
|
|
162
|
+
"timestamp": "2025-12-22T13:26:44.919884",
|
|
163
|
+
"from_agent": "SM",
|
|
164
|
+
"to_agent": "DEV",
|
|
165
|
+
"story_key": "integration-test",
|
|
166
|
+
"summary": "Ready for implementation",
|
|
167
|
+
"key_decisions": [],
|
|
168
|
+
"blockers_resolved": [],
|
|
169
|
+
"watch_out_for": [],
|
|
170
|
+
"files_touched": [
|
|
171
|
+
".claude/commands/route.md",
|
|
172
|
+
".githooks/pre-commit",
|
|
173
|
+
"CHANGELOG.md",
|
|
174
|
+
"CLAUDE.md",
|
|
175
|
+
"CONTRIBUTING.md",
|
|
176
|
+
"README.md",
|
|
177
|
+
"docs/NPM_INSTALLATION.md",
|
|
178
|
+
"lib/python-check.js",
|
|
179
|
+
"scripts/sync-version.js",
|
|
180
|
+
"test/integration.sh",
|
|
181
|
+
"tests/test_agent_handoff.py",
|
|
182
|
+
"tests/test_collaboration.py",
|
|
183
|
+
"tests/test_errors.py",
|
|
184
|
+
"tests/test_swarm_orchestrator.py",
|
|
185
|
+
"tooling/.automation/agents/dev.md",
|
|
186
|
+
"tooling/.automation/agents/reviewer.md",
|
|
187
|
+
"tooling/.automation/agents/sm.md",
|
|
188
|
+
"tooling/.automation/memory/knowledge/kg_integration-test.json",
|
|
189
|
+
"tooling/.automation/memory/knowledge/kg_test-story.json",
|
|
190
|
+
"tooling/.automation/memory/shared/shared_integration-test.json",
|
|
191
|
+
"tooling/.automation/memory/shared/shared_test-story.json",
|
|
192
|
+
"tooling/.automation/overrides/templates/reviewer/mentoring-reviewer.yaml",
|
|
193
|
+
"tooling/docs/DOC-STANDARD.md",
|
|
194
|
+
"tooling/docs/templates/bug-report.md",
|
|
195
|
+
"tooling/scripts/context_checkpoint.py",
|
|
196
|
+
"tooling/scripts/create-persona.py",
|
|
197
|
+
"tooling/scripts/create-persona.sh",
|
|
198
|
+
"tooling/scripts/init-project-workflow.sh",
|
|
199
|
+
"tooling/scripts/lib/agent_handoff.py",
|
|
200
|
+
"tooling/scripts/lib/agent_router.py",
|
|
201
|
+
"tooling/scripts/lib/checkpoint-integration.sh",
|
|
202
|
+
"tooling/scripts/lib/claude-cli.sh",
|
|
203
|
+
"tooling/scripts/lib/cost_tracker.py",
|
|
204
|
+
"tooling/scripts/lib/errors.py",
|
|
205
|
+
"tooling/scripts/lib/pair_programming.py",
|
|
206
|
+
"tooling/scripts/lib/shared_memory.py",
|
|
207
|
+
"tooling/scripts/lib/swarm_orchestrator.py",
|
|
208
|
+
"tooling/scripts/new-doc.sh",
|
|
209
|
+
"tooling/scripts/personalize_agent.py",
|
|
210
|
+
"tooling/scripts/rollback-migration.sh",
|
|
211
|
+
"tooling/scripts/run-collab.ps1",
|
|
212
|
+
"tooling/scripts/run-collab.py",
|
|
213
|
+
"tooling/scripts/run-story.py",
|
|
214
|
+
"tooling/scripts/run-story.sh",
|
|
215
|
+
"tooling/scripts/setup-checkpoint-service.sh",
|
|
216
|
+
"tooling/scripts/tech-debt-tracker.py",
|
|
217
|
+
"tooling/scripts/update_version.py",
|
|
218
|
+
"tooling/scripts/validate-overrides.py",
|
|
219
|
+
"tooling/scripts/validate-overrides.sh",
|
|
220
|
+
"tooling/scripts/validate_setup.py"
|
|
221
|
+
],
|
|
222
|
+
"next_steps": [
|
|
223
|
+
"Review the acceptance criteria in the story context",
|
|
224
|
+
"Examine the 50 files that have context",
|
|
225
|
+
"Implement the required functionality",
|
|
226
|
+
"Write tests for the implementation"
|
|
227
|
+
]
|
|
92
228
|
}
|
|
93
229
|
]
|
|
94
230
|
}
|