スキル一覧に戻る

velocity-tracker

mehdic / bazinga

7🍴 0📅 2026年1月17日

Track development velocity, cycle times, and identify trends for PM decision-making

[bash, read]

SKILL.md

---
name: velocity-tracker
description: Track development velocity, cycle times, and identify trends for PM decision-making
version: 1.0.0
allowed-tools: [Bash, Read]
---

# Velocity Tracker Skill

You are the velocity-tracker skill. When invoked, you analyze historical project data to provide quantitative metrics for PM decision-making.

## When to Invoke This Skill

**Invoke this skill when:**
- After completing each task group (to track cycle time)
- Before spawning new developers (to check velocity capacity)
- When a task appears stuck (to detect 99% rule violations)
- Before sending BAZINGA (to record final metrics for learning)
- Planning next iteration (to use historical data)

**Do NOT invoke when:**
- First run with no completed tasks yet
- Emergency bug fixes (skip metrics to save time)
- User explicitly requests fast mode
- No PM state file exists yet

---

## Your Task

When invoked:
1. Execute the velocity tracking script
2. Read the generated metrics report
3. Return a summary to the calling agent

---

## Step 1: Execute Velocity Tracking Script

Use the **Bash** tool to run the pre-built tracking script.

**On Unix/macOS:**
```bash
bash .claude/skills/velocity-tracker/scripts/track.sh
```

**On Windows (PowerShell):**
```powershell
pwsh .claude/skills/velocity-tracker/scripts/track.ps1
```

> **Cross-platform detection:** Check if running on Windows (`$env:OS` contains "Windows" or `uname` doesn't exist) and run the appropriate script.

This script will:
- Read PM state from database (`bazinga/bazinga.db`)
- Calculate current velocity and cycle times
- Compare against historical metrics
- Detect trends (improving/stable/declining)
- Identify 99% rule violations
- Generate `bazinga/artifacts/{SESSION_ID}/skills/project_metrics.json`
- Update `bazinga/artifacts/{SESSION_ID}/skills/historical_metrics.json`

---

## Step 2: Read Generated Report

Use the **Read** tool to read the generated report:

```bash
bazinga/artifacts/{SESSION_ID}/skills/project_metrics.json
```

Extract key information:
- `current_run.velocity` - Story points completed
- `current_run.percent_complete` - Progress percentage
- `trends.velocity` - Velocity trend
- `warnings` - Any 99% rule violations
- `recommendations` - Action items

---

## Step 3: Return Summary

Return a concise summary to the calling agent:

```
Velocity Metrics:
- Current velocity: {velocity} story points (historical avg: {historical_avg})
- Trend: {improving/stable/declining}
- Cycle time: {avg_minutes} minutes average
- Completion: {percent}%

{If warnings exist:}
⚠️  Warnings:
- {warning 1}
- {warning 2}

Top Recommendations:
1. {recommendation 1}
2. {recommendation 2}
3. {recommendation 3}

Details saved to: bazinga/artifacts/{SESSION_ID}/skills/project_metrics.json
```

---

## Example Invocation

**Scenario 1: Normal Progress Check**

Input: PM agent requests velocity check after completing task group G002

Expected output:
```
Velocity Metrics:
- Current velocity: 12 story points (historical avg: 10.5)
- Trend: improving
- Cycle time: 45 minutes average
- Completion: 40%

Top Recommendations:
1. Current velocity exceeds historical average - good progress
2. Estimated remaining time: 3.5 hours

Details saved to: bazinga/artifacts/{SESSION_ID}/skills/project_metrics.json
```

**Scenario 2: 99% Rule Violation Detected**

Input: PM agent checks why task G003 is taking too long

Expected output:
```
Velocity Metrics:
- Current velocity: 8 story points (historical avg: 10.5)
- Trend: declining
- Cycle time: 125 minutes average
- Completion: 30%

⚠️  Warnings:
- 99% Rule Violation: Task G003 taking 3x longer than expected (135 min vs 45 min estimate)

Top Recommendations:
1. Escalate G003 to Tech Lead for investigation
2. Velocity below average - may need task breakdown
3. Database tasks pattern: taking 2.5x estimate

Details saved to: bazinga/artifacts/{SESSION_ID}/skills/project_metrics.json
```

---

## Error Handling

**If script fails:**
- Check the script output for error messages
- Verify database `bazinga/bazinga.db` exists and contains PM state
- Return error message to calling agent

**If no completed groups:**
- Return: "No completed groups yet. Run velocity tracker after completing at least one task group."

**If historical data missing:**
- Script will create initial baseline
- Note: "First run - no historical comparison available"

---

## Notes

- The script handles all calculation logic (260+ lines)
- Supports both bash (Linux/Mac) and PowerShell (Windows)
- Gracefully degrades if historical data is missing
- Automatically updates historical metrics for future runs