pop-routine-measure
Display routine measurement dashboard with metrics, costs, trends, and visualization
From popkit-devnpx claudepluginhub jrc1883/popkit-claude --plugin popkit-devThis skill uses the workspace's default tool permissions.
README.mdexamples/dashboard-implementation.mdexamples/data-format.mdexamples/integration.mdexamples/metrics-reference.mdexamples/roadmap.mdexamples/testing.mdexamples/usage.mdtest_measurement.pyRoutine Measurement Dashboard
Tracks, visualizes, and reports context window usage, execution duration, tool call breakdown, and cost estimates during routine execution.
When to Use
Primary Use Cases:
- Auto-Measurement: Invoked AUTOMATICALLY when user includes
--measureflag in/popkit:routinecommands - Dashboard Display: Invoked when user requests viewing existing measurements
- Trend Analysis: Invoked when comparing measurements across multiple runs
# Auto-measurement during routine execution
/popkit:routine morning --measure
/popkit:routine morning run p-1 --measure
/popkit:routine nightly --measure
# Viewing existing measurements
show routine measurements
show measurements for morning routine
routine performance dashboard
How It Works
- Detect Flag: Parse command for
--measureflag - Start Tracking: Enable measurement via environment variable
- Initialize Tracker: Start
RoutineMeasurementTracker - Execute Routine: Run the routine normally (pk, p-1, etc.)
- Stop Tracking: Collect measurement data
- Format Report: Display detailed breakdown
- Save Data: Store JSON for analysis
Implementation Pattern
import os
import sys
sys.path.insert(0, "packages/plugin/hooks/utils")
from routine_measurement import (
RoutineMeasurementTracker,
enable_measurement,
disable_measurement,
format_measurement_report,
save_measurement
)
# 1. Enable measurement mode
enable_measurement()
# 2. Start tracker
tracker = RoutineMeasurementTracker()
tracker.start(routine_id="p-1", routine_name="PopKit Full Validation")
# 3. Execute routine
# Use Skill tool to invoke the actual routine
# Example: Skill(skill="pop-morning-routine", args="--routine p-1")
# 4. Stop tracker and get measurement
measurement = tracker.stop()
# 5. Disable measurement mode
disable_measurement()
# 6. Display report
if measurement:
report = format_measurement_report(measurement)
print(report)
# Save measurement data
saved_path = save_measurement(measurement)
print(f"\nMeasurement data saved to: {saved_path}")
Metrics Collected
See examples/metrics-reference.md for complete metrics documentation.
Key metrics:
- Duration (total execution time)
- Tool calls (count per tool type)
- Token usage (input/output split with ~4 chars/token estimation)
- Cost estimates (Claude Sonnet 4.5 pricing: $3/million input, $15/million output)
- Character counts (raw content length)
Measurement Data
See examples/data-format.md for complete JSON schema.
Measurements saved to .claude/popkit/measurements/{routine_id}_{YYYYMMDD}_{HHMMSS}.json
Key fields:
routine_id,routine_name: Routine identificationduration,start_time,end_time: Timing datatotal_tokens,input_tokens,output_tokens: Token countstool_breakdown: Per-tool statisticscost_estimate: Estimated API costs
Usage Examples
See examples/usage.md for complete usage scenarios.
Quick examples:
# Measure default morning routine
/popkit:routine morning --measure
# Measure specific routine
/popkit:routine morning run pk --measure
# View dashboard
show routine measurements
Dashboard Visualization (NEW in v1.1.0)
See examples/dashboard-implementation.md for complete Python implementation.
Dashboard features:
- Summary metrics (duration, tokens, cost)
- Token usage breakdown (input/output split with percentages)
- Tool breakdown table (calls, tokens, duration per tool)
- Comparison with previous run (trend indicators)
- Aggregate statistics across multiple runs
View dashboard:
python examples/dashboard-implementation.py
python examples/dashboard-implementation.py --routine morning
python examples/dashboard-implementation.py --all
Integration
See examples/integration.md for detailed integration documentation.
Hook integration:
post-tool-use.pyhook automatically tracks tool calls whenPOPKIT_ROUTINE_MEASURE=true- Tracks all tools: Bash, Read, Grep, Write, Edit, Skill, etc.
- Estimates tokens using ~4 chars/token heuristic
- Captures duration from hook execution time
Command integration:
/popkit:routinecommand supports--measureflag- This skill wraps routine execution with measurement tracking
- Results displayed after routine completion
Future Enhancements
See examples/roadmap.md for complete roadmap.
Planned features:
- Phase 2: Comparison mode for side-by-side routine comparison
- Phase 3: Trend analysis with visualization over time periods
- Phase 4: Optimization suggestions based on measurement data
- Phase 5: Token budget alerts and cost tracking
Related Skills
| Skill | Purpose |
|---|---|
pop-morning-routine | Execute morning routine |
pop-nightly-routine | Execute nightly routine |
pop-routine-generator | Create custom routines |
pop-assessment-performance | Analyze performance metrics |
Related Commands
| Command | Purpose |
|---|---|
/popkit:routine | Execute routines |
/popkit:assess performance | Performance assessment |
/popkit:stats | Session statistics |
Testing
See examples/testing.md for complete testing instructions.
Quick test:
# Enable measurement manually
export POPKIT_ROUTINE_MEASURE=true
# Run a routine
/popkit:routine morning
# Verify measurement file created
ls -la .claude/popkit/measurements/
cat .claude/popkit/measurements/*.json | jq '.'
Version: 1.1.0 Author: PopKit Development Team Last Updated: 2025-12-19