@pjmendonca/devflow 1.19.0 → 1.20.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/.claude/skills/dashboard/SKILL.md +118 -0
- package/CHANGELOG.md +21 -0
- package/README.md +2 -2
- package/bin/devflow-dashboard.js +10 -0
- package/bin/devflow-swarm.js +11 -0
- package/bin/devflow.js +2 -0
- package/package.json +3 -1
- package/tooling/.automation/memory/knowledge/kg_integration-test.json +85 -1
- package/tooling/.automation/memory/knowledge/kg_test-story.json +284 -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/memory/shared/shared_test.json +157 -1
- package/tooling/.automation/memory/shared/shared_validation-check.json +27 -1
- package/tooling/.automation/validation/history/2026-01-16_val_0b81ec2f.json +41 -0
- package/tooling/.automation/validation/history/2026-01-16_val_26c18e64.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_32af0152.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_353d1569.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_39e3c143.json +59 -0
- package/tooling/.automation/validation/history/2026-01-16_val_77fb42e4.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_a0752656.json +41 -0
- package/tooling/.automation/validation/history/2026-01-16_val_a29213b0.json +41 -0
- package/tooling/.automation/validation/history/2026-01-16_val_a9375d4c.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_c147bbdf.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_d06ccf8d.json +32 -0
- package/tooling/.automation/validation/history/2026-01-16_val_d6a80295.json +59 -0
- package/tooling/.automation/validation/history/2026-01-16_val_dce5005d.json +41 -0
- package/tooling/.automation/validation/history/2026-01-16_val_e53b3a63.json +32 -0
- package/tooling/scripts/lib/__init__.py +1 -1
- package/tooling/scripts/lib/cost_display.py +7 -1
- package/tooling/scripts/lib/pair_programming.py +6 -4
- package/tooling/scripts/lib/swarm_orchestrator.py +13 -11
- package/tooling/scripts/live_dashboard.py +832 -0
- package/tooling/scripts/new-doc.py +1 -1
- package/tooling/scripts/run-collab.py +2 -2
- package/tooling/scripts/run-story.py +21 -9
- package/tooling/scripts/setup-checkpoint-service.py +1 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dashboard
|
|
3
|
+
description: Launch live status dashboard in a terminal
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Live Dashboard Skill
|
|
7
|
+
|
|
8
|
+
Launch or provide instructions for the Devflow live status dashboard - a real-time display of context usage, cost tracking, and agent activity.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/dashboard [story-key] [options]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Options
|
|
17
|
+
|
|
18
|
+
| Option | Description |
|
|
19
|
+
|--------|-------------|
|
|
20
|
+
| story-key | Story to monitor (default: 'default') |
|
|
21
|
+
| --refresh N | Refresh interval in seconds (default: 0.5) |
|
|
22
|
+
| --compact | Single-line compact mode |
|
|
23
|
+
| --width N | Dashboard width (default: 70) |
|
|
24
|
+
|
|
25
|
+
## Prompt
|
|
26
|
+
|
|
27
|
+
You are helping the user launch the Devflow live dashboard.
|
|
28
|
+
|
|
29
|
+
**Arguments:** $ARGUMENTS
|
|
30
|
+
|
|
31
|
+
### Dashboard Launch Instructions
|
|
32
|
+
|
|
33
|
+
The live dashboard is a terminal-based real-time display that needs to run in a separate terminal to show continuous updates while you work.
|
|
34
|
+
|
|
35
|
+
**Option 1: VS Code Split Terminal (Recommended)**
|
|
36
|
+
|
|
37
|
+
Tell the user:
|
|
38
|
+
|
|
39
|
+
1. Open the VS Code integrated terminal (Ctrl+` or Cmd+`)
|
|
40
|
+
2. Click the "Split Terminal" button (or press Cmd+Shift+5 / Ctrl+Shift+5)
|
|
41
|
+
3. In the new terminal pane, run:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
python3 tooling/scripts/live_dashboard.py $ARGUMENTS
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Or if using npm:
|
|
48
|
+
```bash
|
|
49
|
+
npx devflow dashboard $ARGUMENTS
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Option 2: Separate Terminal Window**
|
|
53
|
+
|
|
54
|
+
For a floating dashboard window:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Open a new terminal and run:
|
|
58
|
+
cd [project-root] && python3 tooling/scripts/live_dashboard.py $ARGUMENTS
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Option 3: Compact Mode (less screen space)**
|
|
62
|
+
|
|
63
|
+
For minimal display:
|
|
64
|
+
```bash
|
|
65
|
+
python3 tooling/scripts/live_dashboard.py --compact $ARGUMENTS
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Dashboard Features
|
|
69
|
+
|
|
70
|
+
The dashboard displays:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
+------------------------------------------------------------------+
|
|
74
|
+
| DEVFLOW LIVE DASHBOARD Updated: HH:MM |
|
|
75
|
+
+------------------------------------------------------------------+
|
|
76
|
+
| ACTIVITY |
|
|
77
|
+
| Agent: DEV [2/3] Development (3:45) |
|
|
78
|
+
| Task: Implementing user authentication |
|
|
79
|
+
+------------------------------------------------------------------+
|
|
80
|
+
| CONTEXT |
|
|
81
|
+
| Usage: [================--------] 65.2% ^ |
|
|
82
|
+
| Tokens: 130.4K/200K ~14 exchanges left |
|
|
83
|
+
+------------------------------------------------------------------+
|
|
84
|
+
| COST |
|
|
85
|
+
| Budget: [====--------------------] 12.3% |
|
|
86
|
+
| Spent: $1.85 / $15.00 In: 45.2K Out: 12.1K |
|
|
87
|
+
+------------------------------------------------------------------+
|
|
88
|
+
| RECENT |
|
|
89
|
+
| > +3.2K tokens (45s ago) |
|
|
90
|
+
| > +2.8K tokens (1m ago) |
|
|
91
|
+
+------------------------------------------------------------------+
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
- **Activity**: Current agent, phase, task, and elapsed time
|
|
95
|
+
- **Context**: Visual progress bar with trend indicator and remaining exchanges
|
|
96
|
+
- **Cost**: Budget usage with token breakdown
|
|
97
|
+
- **Recent**: Token history showing recent activity
|
|
98
|
+
|
|
99
|
+
### Color Coding
|
|
100
|
+
|
|
101
|
+
- Green: Safe levels (< 50% context, < 75% budget)
|
|
102
|
+
- Yellow: Caution (50-75% context, 75-90% budget)
|
|
103
|
+
- Red: Critical (> 75% context, > 90% budget)
|
|
104
|
+
|
|
105
|
+
### Tips
|
|
106
|
+
|
|
107
|
+
1. **High refresh rate**: Use `--refresh 0.25` for faster updates
|
|
108
|
+
2. **Narrow terminal**: Use `--width 60` for smaller panes
|
|
109
|
+
3. **Minimal mode**: Use `--compact` for single-line status
|
|
110
|
+
4. **Stop dashboard**: Press Ctrl+C to exit
|
|
111
|
+
|
|
112
|
+
### If No Data Shows
|
|
113
|
+
|
|
114
|
+
The dashboard reads from:
|
|
115
|
+
- Context state: `tooling/.automation/context/context_[story-key].json`
|
|
116
|
+
- Cost data: `tooling/.automation/costs/sessions/*.json`
|
|
117
|
+
|
|
118
|
+
If these files don't exist yet, run a story or use `/develop` to generate tracking data.
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,27 @@ 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.20.0] - 2026-01-16
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **Import Error** - Fixed Python stdlib `platform` module conflict in multiple scripts
|
|
12
|
+
- `run-collab.py`, `run-story.py`, `new-doc.py`, `setup-checkpoint-service.py` now use `from lib.platform import`
|
|
13
|
+
- `swarm_orchestrator.py`, `pair_programming.py`, `cost_display.py` now prioritize lib.platform over stdlib
|
|
14
|
+
- Resolves `ImportError: cannot import name 'IS_MACOS' from 'platform'` on Python 3.14+
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- **Live Dashboard** - Real-time terminal status display for monitoring Devflow sessions
|
|
18
|
+
- Rich ASCII dashboard with box-drawing characters and color-coded progress bars
|
|
19
|
+
- Shows context usage, cost tracking, current agent/activity, and token history
|
|
20
|
+
- Configurable refresh rate (default 0.5s) for responsive updates
|
|
21
|
+
- Compact single-line mode with `--compact` flag
|
|
22
|
+
- Run via `devflow dashboard` or `python3 tooling/scripts/live_dashboard.py`
|
|
23
|
+
- New `/dashboard` skill with instructions for VS Code split terminal setup
|
|
24
|
+
|
|
25
|
+
- **Swarm Command** - Added `devflow swarm` CLI command for multi-agent swarm mode
|
|
26
|
+
- New `bin/devflow-swarm.js` wrapper that calls run-collab.py with --swarm flag
|
|
27
|
+
- Added to devflow.js dispatcher and package.json bin entries
|
|
28
|
+
|
|
8
29
|
## [1.19.0] - 2026-01-03
|
|
9
30
|
|
|
10
31
|
### Added
|
package/README.md
CHANGED
|
@@ -747,7 +747,7 @@ Free to use in commercial and personal projects.
|
|
|
747
747
|
|
|
748
748
|
|
|
749
749
|
<!-- VERSION_START - Auto-updated by update_version.py -->
|
|
750
|
-
**Version**: 1.
|
|
750
|
+
**Version**: 1.20.0
|
|
751
751
|
**Status**: Production Ready
|
|
752
|
-
**Last Updated**: 2026-01-
|
|
752
|
+
**Last Updated**: 2026-01-16
|
|
753
753
|
<!-- VERSION_END -->
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const path = require('path');
|
|
4
|
+
const { execPythonScript, getScriptsDir } = require('../lib/exec-python');
|
|
5
|
+
|
|
6
|
+
const scriptPath = path.join(getScriptsDir(), 'live_dashboard.py');
|
|
7
|
+
const args = process.argv.slice(2);
|
|
8
|
+
|
|
9
|
+
const exitCode = execPythonScript(scriptPath, args);
|
|
10
|
+
process.exit(exitCode);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const path = require('path');
|
|
4
|
+
const { execPythonScript, getScriptsDir } = require('../lib/exec-python');
|
|
5
|
+
|
|
6
|
+
const scriptPath = path.join(getScriptsDir(), 'run-collab.py');
|
|
7
|
+
const args = process.argv.slice(2);
|
|
8
|
+
|
|
9
|
+
// Prepend --swarm flag to run in swarm mode
|
|
10
|
+
const exitCode = execPythonScript(scriptPath, ['--swarm', ...args]);
|
|
11
|
+
process.exit(exitCode);
|
package/bin/devflow.js
CHANGED
|
@@ -6,6 +6,8 @@ const commands = {
|
|
|
6
6
|
'install': 'Install Devflow into your project',
|
|
7
7
|
'story': 'Run full story pipeline (context + dev + review)',
|
|
8
8
|
'collab': 'Run collaborative story with mode selection',
|
|
9
|
+
'swarm': 'Run multi-agent swarm mode (debate/consensus)',
|
|
10
|
+
'dashboard': 'Live status dashboard (context, cost, activity)',
|
|
9
11
|
'checkpoint': 'Create or restore context checkpoints',
|
|
10
12
|
'memory': 'View or query shared agent memory',
|
|
11
13
|
'cost': 'View cost dashboard and spending analytics',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pjmendonca/devflow",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"description": "Development workflow automation with Claude Code - agent-based development system with cost tracking",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"devflow",
|
|
@@ -33,6 +33,8 @@
|
|
|
33
33
|
"devflow-checkpoint": "bin/devflow-checkpoint.js",
|
|
34
34
|
"devflow-memory": "bin/devflow-memory.js",
|
|
35
35
|
"devflow-collab": "bin/devflow-collab.js",
|
|
36
|
+
"devflow-swarm": "bin/devflow-swarm.js",
|
|
37
|
+
"devflow-dashboard": "bin/devflow-dashboard.js",
|
|
36
38
|
"devflow-create-persona": "bin/devflow-create-persona.js",
|
|
37
39
|
"devflow-personalize": "bin/devflow-personalize.js",
|
|
38
40
|
"devflow-validate-overrides": "bin/devflow-validate-overrides.js",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"story_key": "integration-test",
|
|
3
|
-
"last_updated": "2026-01-
|
|
3
|
+
"last_updated": "2026-01-16T12:33:48.829767",
|
|
4
4
|
"decisions": {},
|
|
5
5
|
"topic_index": {},
|
|
6
6
|
"handoffs": [
|
|
@@ -962,6 +962,90 @@
|
|
|
962
962
|
"Implement the required functionality",
|
|
963
963
|
"Write tests for the implementation"
|
|
964
964
|
]
|
|
965
|
+
},
|
|
966
|
+
{
|
|
967
|
+
"id": "handoff_cb6d7c7a",
|
|
968
|
+
"timestamp": "2026-01-16T12:33:30.919040",
|
|
969
|
+
"from_agent": "SM",
|
|
970
|
+
"to_agent": "DEV",
|
|
971
|
+
"story_key": "integration-test",
|
|
972
|
+
"summary": "Ready for implementation",
|
|
973
|
+
"key_decisions": [],
|
|
974
|
+
"blockers_resolved": [],
|
|
975
|
+
"watch_out_for": [],
|
|
976
|
+
"files_touched": [
|
|
977
|
+
".claude/commands/brainstorm.md",
|
|
978
|
+
".claude/commands/init.md",
|
|
979
|
+
".claude/skills/brainstorm/SKILL.md",
|
|
980
|
+
".claude/skills/dashboard/SKILL.md",
|
|
981
|
+
"CHANGELOG.md",
|
|
982
|
+
"README.md",
|
|
983
|
+
"bin/devflow-dashboard.js",
|
|
984
|
+
"bin/devflow-swarm.js",
|
|
985
|
+
"bin/devflow.js",
|
|
986
|
+
"package.json",
|
|
987
|
+
"pyproject.toml",
|
|
988
|
+
"tooling/docs/stories/.gitkeep",
|
|
989
|
+
"tooling/docs/templates/brainstorm-guide.md",
|
|
990
|
+
"tooling/docs/templates/story.md",
|
|
991
|
+
"tooling/scripts/lib/__init__.py",
|
|
992
|
+
"tooling/scripts/lib/cost_display.py",
|
|
993
|
+
"tooling/scripts/lib/pair_programming.py",
|
|
994
|
+
"tooling/scripts/lib/swarm_orchestrator.py",
|
|
995
|
+
"tooling/scripts/live_dashboard.py",
|
|
996
|
+
"tooling/scripts/new-doc.py",
|
|
997
|
+
"tooling/scripts/run-collab.py",
|
|
998
|
+
"tooling/scripts/run-story.py",
|
|
999
|
+
"tooling/scripts/setup-checkpoint-service.py"
|
|
1000
|
+
],
|
|
1001
|
+
"next_steps": [
|
|
1002
|
+
"Review the acceptance criteria in the story context",
|
|
1003
|
+
"Examine the 23 files that have context",
|
|
1004
|
+
"Implement the required functionality",
|
|
1005
|
+
"Write tests for the implementation"
|
|
1006
|
+
]
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
"id": "handoff_a2389911",
|
|
1010
|
+
"timestamp": "2026-01-16T12:33:48.829611",
|
|
1011
|
+
"from_agent": "SM",
|
|
1012
|
+
"to_agent": "DEV",
|
|
1013
|
+
"story_key": "integration-test",
|
|
1014
|
+
"summary": "Ready for implementation",
|
|
1015
|
+
"key_decisions": [],
|
|
1016
|
+
"blockers_resolved": [],
|
|
1017
|
+
"watch_out_for": [],
|
|
1018
|
+
"files_touched": [
|
|
1019
|
+
".claude/commands/brainstorm.md",
|
|
1020
|
+
".claude/commands/init.md",
|
|
1021
|
+
".claude/skills/brainstorm/SKILL.md",
|
|
1022
|
+
".claude/skills/dashboard/SKILL.md",
|
|
1023
|
+
"CHANGELOG.md",
|
|
1024
|
+
"README.md",
|
|
1025
|
+
"bin/devflow-dashboard.js",
|
|
1026
|
+
"bin/devflow-swarm.js",
|
|
1027
|
+
"bin/devflow.js",
|
|
1028
|
+
"package.json",
|
|
1029
|
+
"pyproject.toml",
|
|
1030
|
+
"tooling/docs/stories/.gitkeep",
|
|
1031
|
+
"tooling/docs/templates/brainstorm-guide.md",
|
|
1032
|
+
"tooling/docs/templates/story.md",
|
|
1033
|
+
"tooling/scripts/lib/__init__.py",
|
|
1034
|
+
"tooling/scripts/lib/cost_display.py",
|
|
1035
|
+
"tooling/scripts/lib/pair_programming.py",
|
|
1036
|
+
"tooling/scripts/lib/swarm_orchestrator.py",
|
|
1037
|
+
"tooling/scripts/live_dashboard.py",
|
|
1038
|
+
"tooling/scripts/new-doc.py",
|
|
1039
|
+
"tooling/scripts/run-collab.py",
|
|
1040
|
+
"tooling/scripts/run-story.py",
|
|
1041
|
+
"tooling/scripts/setup-checkpoint-service.py"
|
|
1042
|
+
],
|
|
1043
|
+
"next_steps": [
|
|
1044
|
+
"Review the acceptance criteria in the story context",
|
|
1045
|
+
"Examine the 23 files that have context",
|
|
1046
|
+
"Implement the required functionality",
|
|
1047
|
+
"Write tests for the implementation"
|
|
1048
|
+
]
|
|
965
1049
|
}
|
|
966
1050
|
]
|
|
967
1051
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"story_key": "test-story",
|
|
3
|
-
"last_updated": "2026-01-
|
|
3
|
+
"last_updated": "2026-01-16T12:33:48.803767",
|
|
4
4
|
"decisions": {
|
|
5
5
|
"dec_c5690ae1": {
|
|
6
6
|
"id": "dec_c5690ae1",
|
|
@@ -251,6 +251,26 @@
|
|
|
251
251
|
"context": {},
|
|
252
252
|
"supersedes": null,
|
|
253
253
|
"status": "active"
|
|
254
|
+
},
|
|
255
|
+
"dec_b6c0af85": {
|
|
256
|
+
"id": "dec_b6c0af85",
|
|
257
|
+
"timestamp": "2026-01-16T12:33:30.872788",
|
|
258
|
+
"agent": "DEV",
|
|
259
|
+
"topic": "approach",
|
|
260
|
+
"decision": "Use REST API",
|
|
261
|
+
"context": {},
|
|
262
|
+
"supersedes": null,
|
|
263
|
+
"status": "active"
|
|
264
|
+
},
|
|
265
|
+
"dec_0200caa6": {
|
|
266
|
+
"id": "dec_0200caa6",
|
|
267
|
+
"timestamp": "2026-01-16T12:33:48.784189",
|
|
268
|
+
"agent": "DEV",
|
|
269
|
+
"topic": "approach",
|
|
270
|
+
"decision": "Use REST API",
|
|
271
|
+
"context": {},
|
|
272
|
+
"supersedes": null,
|
|
273
|
+
"status": "active"
|
|
254
274
|
}
|
|
255
275
|
},
|
|
256
276
|
"topic_index": {
|
|
@@ -279,7 +299,9 @@
|
|
|
279
299
|
"dec_1f8bb74c",
|
|
280
300
|
"dec_9df46791",
|
|
281
301
|
"dec_6c156148",
|
|
282
|
-
"dec_c76c3450"
|
|
302
|
+
"dec_c76c3450",
|
|
303
|
+
"dec_b6c0af85",
|
|
304
|
+
"dec_0200caa6"
|
|
283
305
|
]
|
|
284
306
|
},
|
|
285
307
|
"handoffs": [
|
|
@@ -4110,6 +4132,266 @@
|
|
|
4110
4132
|
"Implement the required functionality",
|
|
4111
4133
|
"Write tests for the implementation"
|
|
4112
4134
|
]
|
|
4135
|
+
},
|
|
4136
|
+
{
|
|
4137
|
+
"id": "handoff_70e45c92",
|
|
4138
|
+
"timestamp": "2026-01-16T12:33:30.868912",
|
|
4139
|
+
"from_agent": "SM",
|
|
4140
|
+
"to_agent": "DEV",
|
|
4141
|
+
"story_key": "test-story",
|
|
4142
|
+
"summary": "Created story context",
|
|
4143
|
+
"key_decisions": [],
|
|
4144
|
+
"blockers_resolved": [],
|
|
4145
|
+
"watch_out_for": [],
|
|
4146
|
+
"files_touched": [
|
|
4147
|
+
".claude/commands/brainstorm.md",
|
|
4148
|
+
".claude/commands/init.md",
|
|
4149
|
+
".claude/skills/brainstorm/SKILL.md",
|
|
4150
|
+
".claude/skills/dashboard/SKILL.md",
|
|
4151
|
+
"CHANGELOG.md",
|
|
4152
|
+
"README.md",
|
|
4153
|
+
"bin/devflow-dashboard.js",
|
|
4154
|
+
"bin/devflow-swarm.js",
|
|
4155
|
+
"bin/devflow.js",
|
|
4156
|
+
"package.json",
|
|
4157
|
+
"pyproject.toml",
|
|
4158
|
+
"tooling/docs/stories/.gitkeep",
|
|
4159
|
+
"tooling/docs/templates/brainstorm-guide.md",
|
|
4160
|
+
"tooling/docs/templates/story.md",
|
|
4161
|
+
"tooling/scripts/lib/__init__.py",
|
|
4162
|
+
"tooling/scripts/lib/cost_display.py",
|
|
4163
|
+
"tooling/scripts/lib/pair_programming.py",
|
|
4164
|
+
"tooling/scripts/lib/swarm_orchestrator.py",
|
|
4165
|
+
"tooling/scripts/live_dashboard.py",
|
|
4166
|
+
"tooling/scripts/new-doc.py",
|
|
4167
|
+
"tooling/scripts/run-collab.py",
|
|
4168
|
+
"tooling/scripts/run-story.py",
|
|
4169
|
+
"tooling/scripts/setup-checkpoint-service.py"
|
|
4170
|
+
],
|
|
4171
|
+
"next_steps": [
|
|
4172
|
+
"Review the acceptance criteria in the story context",
|
|
4173
|
+
"Examine the 23 files that have context",
|
|
4174
|
+
"Implement the required functionality",
|
|
4175
|
+
"Write tests for the implementation"
|
|
4176
|
+
]
|
|
4177
|
+
},
|
|
4178
|
+
{
|
|
4179
|
+
"id": "handoff_2cde7586",
|
|
4180
|
+
"timestamp": "2026-01-16T12:33:30.881482",
|
|
4181
|
+
"from_agent": "DEV",
|
|
4182
|
+
"to_agent": "REVIEWER",
|
|
4183
|
+
"story_key": "test-story",
|
|
4184
|
+
"summary": "Implementation complete",
|
|
4185
|
+
"key_decisions": [
|
|
4186
|
+
"approach: Use REST API"
|
|
4187
|
+
],
|
|
4188
|
+
"blockers_resolved": [],
|
|
4189
|
+
"watch_out_for": [
|
|
4190
|
+
"Watch out for rate limits"
|
|
4191
|
+
],
|
|
4192
|
+
"files_touched": [
|
|
4193
|
+
".claude/commands/brainstorm.md",
|
|
4194
|
+
".claude/commands/init.md",
|
|
4195
|
+
".claude/skills/brainstorm/SKILL.md",
|
|
4196
|
+
".claude/skills/dashboard/SKILL.md",
|
|
4197
|
+
"CHANGELOG.md",
|
|
4198
|
+
"README.md",
|
|
4199
|
+
"bin/devflow-dashboard.js",
|
|
4200
|
+
"bin/devflow-swarm.js",
|
|
4201
|
+
"bin/devflow.js",
|
|
4202
|
+
"package.json",
|
|
4203
|
+
"pyproject.toml",
|
|
4204
|
+
"tooling/docs/stories/.gitkeep",
|
|
4205
|
+
"tooling/docs/templates/brainstorm-guide.md",
|
|
4206
|
+
"tooling/docs/templates/story.md",
|
|
4207
|
+
"tooling/scripts/lib/__init__.py",
|
|
4208
|
+
"tooling/scripts/lib/cost_display.py",
|
|
4209
|
+
"tooling/scripts/lib/pair_programming.py",
|
|
4210
|
+
"tooling/scripts/lib/swarm_orchestrator.py",
|
|
4211
|
+
"tooling/scripts/live_dashboard.py",
|
|
4212
|
+
"tooling/scripts/new-doc.py",
|
|
4213
|
+
"tooling/scripts/run-collab.py",
|
|
4214
|
+
"tooling/scripts/run-story.py",
|
|
4215
|
+
"tooling/scripts/setup-checkpoint-service.py"
|
|
4216
|
+
],
|
|
4217
|
+
"next_steps": [
|
|
4218
|
+
"Review the 23 changed files",
|
|
4219
|
+
"Check for code quality and best practices",
|
|
4220
|
+
"Verify test coverage",
|
|
4221
|
+
"Provide actionable feedback"
|
|
4222
|
+
]
|
|
4223
|
+
},
|
|
4224
|
+
{
|
|
4225
|
+
"id": "handoff_b297fde0",
|
|
4226
|
+
"timestamp": "2026-01-16T12:33:30.892145",
|
|
4227
|
+
"from_agent": "SM",
|
|
4228
|
+
"to_agent": "DEV",
|
|
4229
|
+
"story_key": "test-story",
|
|
4230
|
+
"summary": "Ready for development",
|
|
4231
|
+
"key_decisions": [],
|
|
4232
|
+
"blockers_resolved": [],
|
|
4233
|
+
"watch_out_for": [],
|
|
4234
|
+
"files_touched": [
|
|
4235
|
+
".claude/commands/brainstorm.md",
|
|
4236
|
+
".claude/commands/init.md",
|
|
4237
|
+
".claude/skills/brainstorm/SKILL.md",
|
|
4238
|
+
".claude/skills/dashboard/SKILL.md",
|
|
4239
|
+
"CHANGELOG.md",
|
|
4240
|
+
"README.md",
|
|
4241
|
+
"bin/devflow-dashboard.js",
|
|
4242
|
+
"bin/devflow-swarm.js",
|
|
4243
|
+
"bin/devflow.js",
|
|
4244
|
+
"package.json",
|
|
4245
|
+
"pyproject.toml",
|
|
4246
|
+
"tooling/docs/stories/.gitkeep",
|
|
4247
|
+
"tooling/docs/templates/brainstorm-guide.md",
|
|
4248
|
+
"tooling/docs/templates/story.md",
|
|
4249
|
+
"tooling/scripts/lib/__init__.py",
|
|
4250
|
+
"tooling/scripts/lib/cost_display.py",
|
|
4251
|
+
"tooling/scripts/lib/pair_programming.py",
|
|
4252
|
+
"tooling/scripts/lib/swarm_orchestrator.py",
|
|
4253
|
+
"tooling/scripts/live_dashboard.py",
|
|
4254
|
+
"tooling/scripts/new-doc.py",
|
|
4255
|
+
"tooling/scripts/run-collab.py",
|
|
4256
|
+
"tooling/scripts/run-story.py",
|
|
4257
|
+
"tooling/scripts/setup-checkpoint-service.py"
|
|
4258
|
+
],
|
|
4259
|
+
"next_steps": [
|
|
4260
|
+
"Review the acceptance criteria in the story context",
|
|
4261
|
+
"Examine the 23 files that have context",
|
|
4262
|
+
"Implement the required functionality",
|
|
4263
|
+
"Write tests for the implementation"
|
|
4264
|
+
]
|
|
4265
|
+
},
|
|
4266
|
+
{
|
|
4267
|
+
"id": "handoff_f61128ca",
|
|
4268
|
+
"timestamp": "2026-01-16T12:33:48.780259",
|
|
4269
|
+
"from_agent": "SM",
|
|
4270
|
+
"to_agent": "DEV",
|
|
4271
|
+
"story_key": "test-story",
|
|
4272
|
+
"summary": "Created story context",
|
|
4273
|
+
"key_decisions": [],
|
|
4274
|
+
"blockers_resolved": [],
|
|
4275
|
+
"watch_out_for": [],
|
|
4276
|
+
"files_touched": [
|
|
4277
|
+
".claude/commands/brainstorm.md",
|
|
4278
|
+
".claude/commands/init.md",
|
|
4279
|
+
".claude/skills/brainstorm/SKILL.md",
|
|
4280
|
+
".claude/skills/dashboard/SKILL.md",
|
|
4281
|
+
"CHANGELOG.md",
|
|
4282
|
+
"README.md",
|
|
4283
|
+
"bin/devflow-dashboard.js",
|
|
4284
|
+
"bin/devflow-swarm.js",
|
|
4285
|
+
"bin/devflow.js",
|
|
4286
|
+
"package.json",
|
|
4287
|
+
"pyproject.toml",
|
|
4288
|
+
"tooling/docs/stories/.gitkeep",
|
|
4289
|
+
"tooling/docs/templates/brainstorm-guide.md",
|
|
4290
|
+
"tooling/docs/templates/story.md",
|
|
4291
|
+
"tooling/scripts/lib/__init__.py",
|
|
4292
|
+
"tooling/scripts/lib/cost_display.py",
|
|
4293
|
+
"tooling/scripts/lib/pair_programming.py",
|
|
4294
|
+
"tooling/scripts/lib/swarm_orchestrator.py",
|
|
4295
|
+
"tooling/scripts/live_dashboard.py",
|
|
4296
|
+
"tooling/scripts/new-doc.py",
|
|
4297
|
+
"tooling/scripts/run-collab.py",
|
|
4298
|
+
"tooling/scripts/run-story.py",
|
|
4299
|
+
"tooling/scripts/setup-checkpoint-service.py"
|
|
4300
|
+
],
|
|
4301
|
+
"next_steps": [
|
|
4302
|
+
"Review the acceptance criteria in the story context",
|
|
4303
|
+
"Examine the 23 files that have context",
|
|
4304
|
+
"Implement the required functionality",
|
|
4305
|
+
"Write tests for the implementation"
|
|
4306
|
+
]
|
|
4307
|
+
},
|
|
4308
|
+
{
|
|
4309
|
+
"id": "handoff_603c3e9a",
|
|
4310
|
+
"timestamp": "2026-01-16T12:33:48.792867",
|
|
4311
|
+
"from_agent": "DEV",
|
|
4312
|
+
"to_agent": "REVIEWER",
|
|
4313
|
+
"story_key": "test-story",
|
|
4314
|
+
"summary": "Implementation complete",
|
|
4315
|
+
"key_decisions": [
|
|
4316
|
+
"approach: Use REST API"
|
|
4317
|
+
],
|
|
4318
|
+
"blockers_resolved": [],
|
|
4319
|
+
"watch_out_for": [
|
|
4320
|
+
"Watch out for rate limits"
|
|
4321
|
+
],
|
|
4322
|
+
"files_touched": [
|
|
4323
|
+
".claude/commands/brainstorm.md",
|
|
4324
|
+
".claude/commands/init.md",
|
|
4325
|
+
".claude/skills/brainstorm/SKILL.md",
|
|
4326
|
+
".claude/skills/dashboard/SKILL.md",
|
|
4327
|
+
"CHANGELOG.md",
|
|
4328
|
+
"README.md",
|
|
4329
|
+
"bin/devflow-dashboard.js",
|
|
4330
|
+
"bin/devflow-swarm.js",
|
|
4331
|
+
"bin/devflow.js",
|
|
4332
|
+
"package.json",
|
|
4333
|
+
"pyproject.toml",
|
|
4334
|
+
"tooling/docs/stories/.gitkeep",
|
|
4335
|
+
"tooling/docs/templates/brainstorm-guide.md",
|
|
4336
|
+
"tooling/docs/templates/story.md",
|
|
4337
|
+
"tooling/scripts/lib/__init__.py",
|
|
4338
|
+
"tooling/scripts/lib/cost_display.py",
|
|
4339
|
+
"tooling/scripts/lib/pair_programming.py",
|
|
4340
|
+
"tooling/scripts/lib/swarm_orchestrator.py",
|
|
4341
|
+
"tooling/scripts/live_dashboard.py",
|
|
4342
|
+
"tooling/scripts/new-doc.py",
|
|
4343
|
+
"tooling/scripts/run-collab.py",
|
|
4344
|
+
"tooling/scripts/run-story.py",
|
|
4345
|
+
"tooling/scripts/setup-checkpoint-service.py"
|
|
4346
|
+
],
|
|
4347
|
+
"next_steps": [
|
|
4348
|
+
"Review the 23 changed files",
|
|
4349
|
+
"Check for code quality and best practices",
|
|
4350
|
+
"Verify test coverage",
|
|
4351
|
+
"Provide actionable feedback"
|
|
4352
|
+
]
|
|
4353
|
+
},
|
|
4354
|
+
{
|
|
4355
|
+
"id": "handoff_2eb32cc4",
|
|
4356
|
+
"timestamp": "2026-01-16T12:33:48.803629",
|
|
4357
|
+
"from_agent": "SM",
|
|
4358
|
+
"to_agent": "DEV",
|
|
4359
|
+
"story_key": "test-story",
|
|
4360
|
+
"summary": "Ready for development",
|
|
4361
|
+
"key_decisions": [],
|
|
4362
|
+
"blockers_resolved": [],
|
|
4363
|
+
"watch_out_for": [],
|
|
4364
|
+
"files_touched": [
|
|
4365
|
+
".claude/commands/brainstorm.md",
|
|
4366
|
+
".claude/commands/init.md",
|
|
4367
|
+
".claude/skills/brainstorm/SKILL.md",
|
|
4368
|
+
".claude/skills/dashboard/SKILL.md",
|
|
4369
|
+
"CHANGELOG.md",
|
|
4370
|
+
"README.md",
|
|
4371
|
+
"bin/devflow-dashboard.js",
|
|
4372
|
+
"bin/devflow-swarm.js",
|
|
4373
|
+
"bin/devflow.js",
|
|
4374
|
+
"package.json",
|
|
4375
|
+
"pyproject.toml",
|
|
4376
|
+
"tooling/docs/stories/.gitkeep",
|
|
4377
|
+
"tooling/docs/templates/brainstorm-guide.md",
|
|
4378
|
+
"tooling/docs/templates/story.md",
|
|
4379
|
+
"tooling/scripts/lib/__init__.py",
|
|
4380
|
+
"tooling/scripts/lib/cost_display.py",
|
|
4381
|
+
"tooling/scripts/lib/pair_programming.py",
|
|
4382
|
+
"tooling/scripts/lib/swarm_orchestrator.py",
|
|
4383
|
+
"tooling/scripts/live_dashboard.py",
|
|
4384
|
+
"tooling/scripts/new-doc.py",
|
|
4385
|
+
"tooling/scripts/run-collab.py",
|
|
4386
|
+
"tooling/scripts/run-story.py",
|
|
4387
|
+
"tooling/scripts/setup-checkpoint-service.py"
|
|
4388
|
+
],
|
|
4389
|
+
"next_steps": [
|
|
4390
|
+
"Review the acceptance criteria in the story context",
|
|
4391
|
+
"Examine the 23 files that have context",
|
|
4392
|
+
"Implement the required functionality",
|
|
4393
|
+
"Write tests for the implementation"
|
|
4394
|
+
]
|
|
4113
4395
|
}
|
|
4114
4396
|
]
|
|
4115
4397
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"story_key": "integration-test",
|
|
3
|
-
"last_updated": "2026-01-
|
|
3
|
+
"last_updated": "2026-01-16T12:33:48.830308",
|
|
4
4
|
"entries": [
|
|
5
5
|
{
|
|
6
6
|
"id": "mem_1bf0cedf",
|
|
@@ -241,6 +241,30 @@
|
|
|
241
241
|
],
|
|
242
242
|
"story_key": "integration-test",
|
|
243
243
|
"references": []
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"id": "mem_3309650f",
|
|
247
|
+
"timestamp": "2026-01-16T12:33:30.919658",
|
|
248
|
+
"agent": "SM",
|
|
249
|
+
"content": "Handed off to DEV: Ready for implementation",
|
|
250
|
+
"tags": [
|
|
251
|
+
"handoff",
|
|
252
|
+
"dev"
|
|
253
|
+
],
|
|
254
|
+
"story_key": "integration-test",
|
|
255
|
+
"references": []
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"id": "mem_8294aaab",
|
|
259
|
+
"timestamp": "2026-01-16T12:33:48.830271",
|
|
260
|
+
"agent": "SM",
|
|
261
|
+
"content": "Handed off to DEV: Ready for implementation",
|
|
262
|
+
"tags": [
|
|
263
|
+
"handoff",
|
|
264
|
+
"dev"
|
|
265
|
+
],
|
|
266
|
+
"story_key": "integration-test",
|
|
267
|
+
"references": []
|
|
244
268
|
}
|
|
245
269
|
]
|
|
246
270
|
}
|