@pjmendonca/devflow 1.13.1 → 1.18.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/commands/agent.md +1 -1
- package/.claude/commands/bugfix.md +21 -0
- package/.claude/commands/checkpoint.md +0 -1
- package/.claude/commands/collab.md +0 -1
- package/.claude/commands/costs.md +88 -18
- package/.claude/commands/devflow.md +26 -0
- package/.claude/commands/handoff.md +0 -1
- package/.claude/commands/memory.md +0 -1
- package/.claude/commands/pair.md +0 -1
- package/.claude/commands/review.md +27 -0
- package/.claude/commands/route.md +0 -1
- package/.claude/commands/swarm.md +0 -1
- package/.claude/commands/validate.md +55 -0
- package/.claude/hooks/session-notification.sh +44 -0
- package/.claude/hooks/session-startup.sh +427 -0
- package/.claude/hooks/session-stop.sh +38 -0
- package/.claude/hooks/session_tracker.py +272 -0
- package/.claude/settings.json +38 -0
- package/.claude/skills/costs/SKILL.md +156 -0
- package/.claude/skills/validate/SKILL.md +101 -0
- package/CHANGELOG.md +254 -0
- package/README.md +207 -10
- package/bin/devflow-install.js +2 -1
- package/bin/devflow.js +5 -2
- package/lib/constants.js +0 -1
- package/lib/exec-python.js +1 -1
- package/package.json +1 -2
- package/tooling/.automation/.checkpoint_lock +1 -0
- package/tooling/.automation/agents/architect.md +19 -0
- package/tooling/.automation/agents/ba.md +19 -0
- package/tooling/.automation/agents/maintainer.md +19 -0
- package/tooling/.automation/agents/pm.md +19 -0
- package/tooling/.automation/agents/reviewer.md +1 -1
- package/tooling/.automation/agents/writer.md +19 -0
- package/tooling/.automation/benchmarks/benchmark_20251230_100119.json +314 -0
- package/tooling/.automation/benchmarks/benchmark_20251230_100216.json +314 -0
- package/tooling/.automation/costs/config.json +31 -0
- package/tooling/.automation/costs/sessions/2025-12-29_20251229_164128.json +22 -0
- package/tooling/.automation/memory/knowledge/kg_integration-test.json +707 -1
- package/tooling/.automation/memory/knowledge/kg_test-story.json +3273 -2
- package/tooling/.automation/memory/shared/shared_integration-test.json +181 -1
- package/tooling/.automation/memory/shared/shared_test-story.json +721 -1
- package/tooling/.automation/memory/shared/shared_test.json +1254 -0
- package/tooling/.automation/memory/shared/shared_validation-check.json +227 -0
- package/tooling/.automation/overrides/templates/architect/cloud-native.yaml +5 -5
- package/tooling/.automation/overrides/templates/architect/enterprise-architect.yaml +23 -5
- package/tooling/.automation/overrides/templates/architect/pragmatic-minimalist.yaml +24 -6
- package/tooling/.automation/overrides/templates/ba/agile-storyteller.yaml +4 -4
- package/tooling/.automation/overrides/templates/ba/domain-expert.yaml +4 -4
- package/tooling/.automation/overrides/templates/ba/requirements-engineer.yaml +4 -4
- package/tooling/.automation/overrides/templates/dev/performance-engineer.yaml +18 -0
- package/tooling/.automation/overrides/templates/dev/rapid-prototyper.yaml +19 -1
- package/tooling/.automation/overrides/templates/dev/security-focused.yaml +18 -0
- package/tooling/.automation/overrides/templates/dev/user-advocate.yaml +54 -0
- package/tooling/.automation/overrides/templates/maintainer/devops-maintainer.yaml +4 -4
- package/tooling/.automation/overrides/templates/maintainer/legacy-steward.yaml +4 -4
- package/tooling/.automation/overrides/templates/maintainer/oss-maintainer.yaml +4 -4
- package/tooling/.automation/overrides/templates/maintainer/reliability-engineer.yaml +55 -0
- package/tooling/.automation/overrides/templates/pm/agile-pm.yaml +4 -4
- package/tooling/.automation/overrides/templates/pm/hybrid-delivery.yaml +3 -3
- package/tooling/.automation/overrides/templates/pm/traditional-pm.yaml +4 -4
- package/tooling/.automation/overrides/templates/reviewer/quick-sanity.yaml +18 -0
- package/tooling/.automation/overrides/templates/reviewer/thorough-critic.yaml +18 -0
- package/tooling/.automation/overrides/templates/sm/agile-coach.yaml +2 -2
- package/tooling/.automation/overrides/templates/sm/startup-pm.yaml +3 -3
- package/tooling/.automation/overrides/templates/writer/api-documentarian.yaml +5 -5
- package/tooling/.automation/overrides/templates/writer/docs-as-code.yaml +4 -4
- package/tooling/.automation/overrides/templates/writer/user-guide-author.yaml +5 -5
- package/tooling/.automation/validation/history/2025-12-29_val_002a28c1.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_01273bb1.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_03369914.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_07a449ba.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_0df1f0a2.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_10ff3d34.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_110771d7.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_13f3a7f9.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_17ba9d21.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_22247089.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_227ea6a4.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_2335d5ae.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_246824bb.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_28b4b9cd.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_2abd12cc.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_2c801b2f.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_2c8cfa8e.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_2ce76eb0.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_30351948.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_30eb7229.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_34df0e77.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_376e4d6a.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_3a4e8a1a.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_3b77a628.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_3ea4e1cf.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_44aacdb4.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_457ddfa8.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_45af6238.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_4735dba1.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_486b203c.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_49dc56cd.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_4d863d6d.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_5149a808.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_52e0bb43.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_585d6319.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_5b2d859a.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_635a7081.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_64df4905.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_70634cee.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_714553f9.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_7f7bfdbf.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_7faad91d.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_81821f8f.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_8249f3c9.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_8422b50f.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_8446c134.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_879f4e26.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_8b6d5bd7.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_8c5cd787.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_91d20bc7.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_958a12b7.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_95d91108.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_980dbb74.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_9e40c79b.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_9f499b7c.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_9f7c3b57.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_a30d5bd4.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_a6eb09c7.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_a86f7b83.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_ad5347e1.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_b0a5a993.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_bcb0192e.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_bf3c9aaa.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_c461ff88.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_c4f4e258.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_c7f0fa6d.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_c911b0e6.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_cc581964.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_cdd5a33b.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_cfd42495.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_d1c7a4ee.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_d2280d0e.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_d2a6ff69.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_d8c53ab2.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_d9c1247a.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_d9d58569.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_dabb4fd9.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_dd8fe359.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_decdffc9.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_e3a95476.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_e776dfca.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_ea70969f.json +59 -0
- package/tooling/.automation/validation/history/2025-12-29_val_ef41ea95.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_f384f9b1.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_f8adc38c.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_fa40b69e.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_fc538d54.json +41 -0
- package/tooling/.automation/validation/history/2025-12-29_val_fe814665.json +32 -0
- package/tooling/.automation/validation/history/2025-12-29_val_ffea4b12.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_02d001e5.json +59 -0
- package/tooling/.automation/validation/history/2025-12-30_val_0b8966dc.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_15455fbf.json +59 -0
- package/tooling/.automation/validation/history/2025-12-30_val_157e34b9.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_28d1d933.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_3442a52c.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_37f1ce1e.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_4f1d8a93.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_56ff1de3.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_664fd4e2.json +41 -0
- package/tooling/.automation/validation/history/2025-12-30_val_66afb0a7.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_7634663c.json +41 -0
- package/tooling/.automation/validation/history/2025-12-30_val_8ea830c3.json +41 -0
- package/tooling/.automation/validation/history/2025-12-30_val_998957c2.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_a52177db.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_a5b65a63.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_ae391d0e.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_c7895339.json +41 -0
- package/tooling/.automation/validation/history/2025-12-30_val_ca416593.json +41 -0
- package/tooling/.automation/validation/history/2025-12-30_val_cee19422.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_ddd4f4e6.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_f2e1394b.json +32 -0
- package/tooling/.automation/validation/history/2025-12-30_val_f4a7fa06.json +41 -0
- package/tooling/.automation/validation/history/2025-12-30_val_ffea3369.json +32 -0
- package/tooling/.automation/validation-config.yaml +103 -0
- package/tooling/completions/DevflowCompletion.ps1 +21 -21
- package/tooling/completions/_run-story +3 -3
- package/tooling/completions/run-story-completion.bash +8 -8
- package/tooling/docs/DOC-STANDARD.md +14 -14
- package/tooling/docs/templates/migration-spec.md +4 -4
- package/tooling/scripts/context_checkpoint.py +5 -15
- package/tooling/scripts/cost_dashboard.py +610 -13
- package/tooling/scripts/create-persona.py +1 -12
- package/tooling/scripts/create-persona.sh +44 -44
- package/tooling/scripts/lib/__init__.py +12 -1
- package/tooling/scripts/lib/agent_handoff.py +11 -2
- package/tooling/scripts/lib/agent_router.py +31 -10
- package/tooling/scripts/lib/colors.py +106 -0
- package/tooling/scripts/lib/context_monitor.py +766 -0
- package/tooling/scripts/lib/cost_config.py +229 -10
- package/tooling/scripts/lib/cost_display.py +20 -45
- package/tooling/scripts/lib/cost_tracker.py +462 -15
- package/tooling/scripts/lib/currency_converter.py +28 -5
- package/tooling/scripts/lib/pair_programming.py +102 -3
- package/tooling/scripts/lib/personality_system.py +949 -0
- package/tooling/scripts/lib/platform.py +55 -0
- package/tooling/scripts/lib/shared_memory.py +9 -3
- package/tooling/scripts/lib/swarm_orchestrator.py +514 -75
- package/tooling/scripts/lib/validation_loop.py +1014 -0
- package/tooling/scripts/memory_summarize.py +9 -2
- package/tooling/scripts/new-doc.py +2 -9
- package/tooling/scripts/personalize_agent.py +1 -12
- package/tooling/scripts/rollback-migration.sh +60 -60
- package/tooling/scripts/run-collab.ps1 +16 -16
- package/tooling/scripts/run-collab.py +88 -53
- package/tooling/scripts/run-collab.sh +4 -4
- package/tooling/scripts/run-story.py +278 -20
- package/tooling/scripts/run-story.sh +3 -3
- package/tooling/scripts/setup-checkpoint-service.py +2 -9
- package/tooling/scripts/tech-debt-tracker.py +1 -12
- package/tooling/scripts/test_adversarial_swarm.py +452 -0
- package/tooling/scripts/update_version.py +48 -2
- package/tooling/scripts/validate-overrides.py +1 -10
- package/tooling/scripts/validate-overrides.sh +40 -40
- package/tooling/scripts/validate_loop.py +162 -0
- package/tooling/scripts/validate_setup.py +2 -30
- package/.claude/skills/init/SKILL.md +0 -496
- package/bin/devflow-init.js +0 -10
- package/tooling/scripts/init-project-workflow.ps1 +0 -651
- package/tooling/scripts/init-project-workflow.py +0 -70
- package/tooling/scripts/init-project-workflow.sh +0 -746
|
@@ -6,3 +6,24 @@ argument-hint: <bug-id>
|
|
|
6
6
|
Run the Devflow bugfix automation for: $ARGUMENTS
|
|
7
7
|
|
|
8
8
|
Execute: `npx @pjmendonca/devflow bugfix $ARGUMENTS`
|
|
9
|
+
|
|
10
|
+
This invokes the MAINTAINER agent to investigate and fix bugs using a surgical approach.
|
|
11
|
+
|
|
12
|
+
## What it does
|
|
13
|
+
|
|
14
|
+
1. Investigates the bug to understand root cause
|
|
15
|
+
2. Identifies the minimal change needed to fix it
|
|
16
|
+
3. Implements the fix with regression tests
|
|
17
|
+
4. Documents the fix and any related technical debt
|
|
18
|
+
|
|
19
|
+
## Options
|
|
20
|
+
|
|
21
|
+
- `--dry-run` - Analyze the bug without making changes
|
|
22
|
+
- `--investigation-only` - Just investigate, don't fix
|
|
23
|
+
|
|
24
|
+
## Example
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
/bugfix login-crash-123
|
|
28
|
+
/bugfix "Users can't submit form on mobile"
|
|
29
|
+
```
|
|
@@ -1,27 +1,97 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: View cost dashboard and spending analytics
|
|
3
|
-
argument-hint: [--period day|week|month]
|
|
3
|
+
argument-hint: [--period day|week|month] [--history N]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# Cost Dashboard
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Display Devflow cost tracking and spending analytics.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
- Total spend by model (Opus, Sonnet, Haiku)
|
|
12
|
-
- Cost breakdown by agent
|
|
13
|
-
- Cost breakdown by story/task
|
|
14
|
-
- Budget utilization tracking
|
|
15
|
-
- Cost trends over time
|
|
10
|
+
**Arguments:** $ARGUMENTS
|
|
16
11
|
|
|
17
|
-
|
|
18
|
-
- `--period day` - Show today's costs
|
|
19
|
-
- `--period week` - Show this week's costs
|
|
20
|
-
- `--period month` - Show this month's costs
|
|
21
|
-
- `--export csv` - Export to CSV file
|
|
12
|
+
## Instructions
|
|
22
13
|
|
|
23
|
-
|
|
24
|
-
- `/costs` - Show current cost dashboard
|
|
25
|
-
- `/costs --period week` - Show weekly breakdown
|
|
26
|
-
- `/costs --by-agent` - Group costs by agent
|
|
14
|
+
### Step 1: Read Cost Configuration
|
|
27
15
|
|
|
16
|
+
Read `tooling/.automation/costs/config.json` to get:
|
|
17
|
+
- Budget limits (budget_dev, budget_context, budget_review)
|
|
18
|
+
- Subscription info (plan, token limit, billing period days)
|
|
19
|
+
- Warning/critical thresholds
|
|
20
|
+
- Currency settings
|
|
21
|
+
|
|
22
|
+
### Step 2: Find and Read Session Files
|
|
23
|
+
|
|
24
|
+
Find all `tooling/.automation/costs/sessions/*.json` files.
|
|
25
|
+
|
|
26
|
+
For each session, extract:
|
|
27
|
+
- session_id, start_time, end_time
|
|
28
|
+
- story_key (if set)
|
|
29
|
+
- entries with model, input_tokens, output_tokens, cost_usd
|
|
30
|
+
- totals
|
|
31
|
+
|
|
32
|
+
Identify the most recent session as "current session".
|
|
33
|
+
|
|
34
|
+
### Step 3: Apply Filters (based on $ARGUMENTS)
|
|
35
|
+
|
|
36
|
+
- `--period day`: Today's sessions only
|
|
37
|
+
- `--period week`: Last 7 days
|
|
38
|
+
- `--period month`: Last 30 days (default)
|
|
39
|
+
- `--history N`: Last N sessions
|
|
40
|
+
- `--story KEY`: Filter by story key
|
|
41
|
+
|
|
42
|
+
### Step 4: Calculate Metrics
|
|
43
|
+
|
|
44
|
+
- Current session: tokens and cost from most recent session
|
|
45
|
+
- Cumulative: sum of ALL sessions in billing period
|
|
46
|
+
- Cost by model (opus, sonnet, haiku)
|
|
47
|
+
- Cost by story
|
|
48
|
+
- Budget usage %
|
|
49
|
+
- Subscription token usage %
|
|
50
|
+
- Averages per session
|
|
51
|
+
- I/O ratio (input tokens / output tokens)
|
|
52
|
+
- Days remaining in billing period
|
|
53
|
+
- Projected monthly usage (tokens and cost)
|
|
54
|
+
|
|
55
|
+
### Step 5: Display Dashboard
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
=================================================================
|
|
59
|
+
DEVFLOW COST DASHBOARD
|
|
60
|
+
=================================================================
|
|
61
|
+
Plan: [plan] | Tokens: [used]/[limit] ([%]%) | [days] days left
|
|
62
|
+
This Session: $[current] | Cumulative: $[total]
|
|
63
|
+
=================================================================
|
|
64
|
+
|
|
65
|
+
PERIOD: [period] SESSIONS: [count]
|
|
66
|
+
|
|
67
|
+
--- TOKEN USAGE ---------------------------------------------
|
|
68
|
+
This Session Cumulative
|
|
69
|
+
Input: [in] [total_in]
|
|
70
|
+
Output: [out] [total_out]
|
|
71
|
+
Total: [total] [grand_total]
|
|
72
|
+
|
|
73
|
+
I/O Ratio: [ratio]:1
|
|
74
|
+
|
|
75
|
+
--- COST BY MODEL -------------------------------------------
|
|
76
|
+
[model] $[cost] ([%]%)
|
|
77
|
+
|
|
78
|
+
--- BUDGET STATUS -------------------------------------------
|
|
79
|
+
Spent: $[spent] / $[budget] ([%]%)
|
|
80
|
+
[==============================----------------------] [%]%
|
|
81
|
+
|
|
82
|
+
--- PROJECTIONS ---------------------------------------------
|
|
83
|
+
Monthly tokens: [projected] / [limit] ([%]%)
|
|
84
|
+
Monthly cost: $[projected]
|
|
85
|
+
Avg/session: $[avg] | [tokens] tokens
|
|
86
|
+
|
|
87
|
+
--- RECENT SESSIONS -----------------------------------------
|
|
88
|
+
[id] [date] [tokens] $[cost] [story]
|
|
89
|
+
(last 5)
|
|
90
|
+
|
|
91
|
+
--- CURRENCIES ----------------------------------------------
|
|
92
|
+
$[USD] | E[EUR] | L[GBP] | R$[BRL]
|
|
93
|
+
=================================================================
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Show [WARNING] if budget > 75%, [CRITICAL] if > 90%.
|
|
97
|
+
Use K/M suffixes. No emojis.
|
|
@@ -4,3 +4,29 @@ argument-hint: <command> [args]
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Run: `devflow $ARGUMENTS`
|
|
7
|
+
|
|
8
|
+
This is a passthrough command to run any Devflow CLI command directly.
|
|
9
|
+
|
|
10
|
+
## Available Commands
|
|
11
|
+
|
|
12
|
+
| Command | Description |
|
|
13
|
+
|---------|-------------|
|
|
14
|
+
| `story` | Run full story pipeline (context + dev + review) |
|
|
15
|
+
| `collab` | Run collaborative multi-agent mode |
|
|
16
|
+
| `checkpoint` | Create or restore context checkpoints |
|
|
17
|
+
| `memory` | View or query shared agent memory |
|
|
18
|
+
| `cost` | View cost dashboard and spending analytics |
|
|
19
|
+
| `validate` | Validate project configuration |
|
|
20
|
+
| `personalize` | Personalize agent behavior |
|
|
21
|
+
| `version` | Show version information |
|
|
22
|
+
|
|
23
|
+
## Examples
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
/devflow story 3-5
|
|
27
|
+
/devflow cost --history 10
|
|
28
|
+
/devflow checkpoint --list
|
|
29
|
+
/devflow validate
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Run `devflow --help` for full command list.
|
package/.claude/commands/pair.md
CHANGED
|
@@ -6,3 +6,30 @@ argument-hint: <story-key>
|
|
|
6
6
|
Run the Devflow code review for story: $ARGUMENTS
|
|
7
7
|
|
|
8
8
|
Execute: `npx @pjmendonca/devflow review $ARGUMENTS`
|
|
9
|
+
|
|
10
|
+
This invokes the REVIEWER agent to perform a thorough code review.
|
|
11
|
+
|
|
12
|
+
## What it does
|
|
13
|
+
|
|
14
|
+
1. Reviews all code changes for the story
|
|
15
|
+
2. Checks security, reliability, correctness, and maintainability
|
|
16
|
+
3. Classifies issues by severity (CRITICAL, HIGH, MEDIUM, LOW)
|
|
17
|
+
4. Produces a structured review with actionable feedback
|
|
18
|
+
|
|
19
|
+
## Review Output
|
|
20
|
+
|
|
21
|
+
The review produces a verdict:
|
|
22
|
+
- **APPROVED** - Code meets standards, ready to merge
|
|
23
|
+
- **CHANGES REQUIRED** - Issues found that must be addressed
|
|
24
|
+
- **BLOCKED** - Critical issues prevent progress
|
|
25
|
+
|
|
26
|
+
## Options
|
|
27
|
+
|
|
28
|
+
- `--adversarial` - Use Opus for deeper, more critical analysis
|
|
29
|
+
|
|
30
|
+
## Example
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
/review 3-5
|
|
34
|
+
/review 3-5 --adversarial
|
|
35
|
+
```
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Validate
|
|
2
|
+
|
|
3
|
+
Run validation checks on the current story or codebase.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/validate [story-key] [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
- `--tier 1|2|3|all` - Which validation tier to run
|
|
14
|
+
- 1: Pre-flight (story exists, budget, dependencies)
|
|
15
|
+
- 2: Inter-phase (code compiles, lint, transitions)
|
|
16
|
+
- 3: Post-completion (tests, types, version sync)
|
|
17
|
+
- all: Run all tiers
|
|
18
|
+
- `--auto-fix` - Attempt automatic fixes for failures
|
|
19
|
+
- `--json` - Output as JSON
|
|
20
|
+
- `--quiet` - Minimal output
|
|
21
|
+
|
|
22
|
+
## Examples
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Run all validation tiers
|
|
26
|
+
/validate 3-5 --tier all
|
|
27
|
+
|
|
28
|
+
# Run pre-flight checks only
|
|
29
|
+
/validate 3-5 --tier 1
|
|
30
|
+
|
|
31
|
+
# Run post-completion with auto-fix
|
|
32
|
+
/validate 3-5 --tier 3 --auto-fix
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Prompt
|
|
36
|
+
|
|
37
|
+
Run the validation loop for story: $ARGUMENTS
|
|
38
|
+
|
|
39
|
+
Execute the following:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
python3 tooling/scripts/lib/validation_loop.py --story "$ARGUMENTS" --all
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
If no story key is provided, run validation on the current codebase state:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
python3 tooling/scripts/lib/validation_loop.py --tier 3
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Report the validation results clearly, including:
|
|
52
|
+
- Which gates passed
|
|
53
|
+
- Which gates failed with reasons
|
|
54
|
+
- Any warnings
|
|
55
|
+
- Suggested fixes if available
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Session Notification Hook - Captures token usage from Claude Code notifications
|
|
3
|
+
|
|
4
|
+
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
|
|
5
|
+
TRACKER="$PROJECT_DIR/.claude/hooks/session_tracker.py"
|
|
6
|
+
|
|
7
|
+
# Read notification data from Claude Code
|
|
8
|
+
INPUT=$(cat)
|
|
9
|
+
|
|
10
|
+
# Try to extract token usage from notification
|
|
11
|
+
# Claude Code may send usage data in various formats
|
|
12
|
+
INPUT_TOKENS=$(echo "$INPUT" | jq -r '
|
|
13
|
+
.usage.input_tokens //
|
|
14
|
+
.data.usage.input_tokens //
|
|
15
|
+
.message.usage.input_tokens //
|
|
16
|
+
.input_tokens //
|
|
17
|
+
0
|
|
18
|
+
' 2>/dev/null)
|
|
19
|
+
|
|
20
|
+
OUTPUT_TOKENS=$(echo "$INPUT" | jq -r '
|
|
21
|
+
.usage.output_tokens //
|
|
22
|
+
.data.usage.output_tokens //
|
|
23
|
+
.message.usage.output_tokens //
|
|
24
|
+
.output_tokens //
|
|
25
|
+
0
|
|
26
|
+
' 2>/dev/null)
|
|
27
|
+
|
|
28
|
+
MODEL=$(echo "$INPUT" | jq -r '
|
|
29
|
+
.model //
|
|
30
|
+
.data.model //
|
|
31
|
+
.message.model //
|
|
32
|
+
""
|
|
33
|
+
' 2>/dev/null)
|
|
34
|
+
|
|
35
|
+
# Only log if we have actual token data
|
|
36
|
+
if [ "$INPUT_TOKENS" -gt 0 ] 2>/dev/null || [ "$OUTPUT_TOKENS" -gt 0 ] 2>/dev/null; then
|
|
37
|
+
if [ -n "$MODEL" ] && [ "$MODEL" != "null" ]; then
|
|
38
|
+
python3 "$TRACKER" log --input "$INPUT_TOKENS" --output "$OUTPUT_TOKENS" --model "$MODEL" 2>/dev/null
|
|
39
|
+
else
|
|
40
|
+
python3 "$TRACKER" log --input "$INPUT_TOKENS" --output "$OUTPUT_TOKENS" 2>/dev/null
|
|
41
|
+
fi
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
exit 0
|