[#79] JSONL Scorecard Generator - overnight loop analysis #102

Merged
Timmy merged 1 commits from feature/scorecard-generator into main 2026-03-30 15:58:12 +00:00
Member

Summary

Analyzes overnight loop JSONL data and produces comprehensive scorecards with statistics, trends, and recommendations.

Features

  • Reads ~/shared/overnight-loop/*.jsonl
  • Generates both JSON (structured) and Markdown (human-readable) reports
  • Pass/fail statistics with pass rates
  • Duration analysis (avg, median, p95, min, max)
  • Per-task breakdowns (sorted by pass rate)
  • Hourly timeline trends
  • Error pattern frequency analysis
  • Auto-generated actionable recommendations

Output Files

  • ~/timmy/reports/scorecard_YYYYMMDD.json - Structured data
  • ~/timmy/reports/scorecard_YYYYMMDD.md - Human-readable report

Usage

# Basic usage
python uni-wizard/scripts/generate_scorecard.py

# Custom directories
python uni-wizard/scripts/generate_scorecard.py --input ~/data --output ~/reports

# Cron (daily at 6 AM)
0 6 * * * /root/timmy/venv/bin/python /root/timmy/uni-wizard/scripts/generate_scorecard.py

Report Contents

  1. Summary - Total tasks, pass/fail counts, pass rate
  2. Duration Stats - Average, median, P95, min, max
  3. Per-Task Breakdown - Each task type with pass rates and durations
  4. Timeline - Hourly performance trends
  5. Error Analysis - Most common error patterns
  6. Recommendations - Actionable insights based on data

Error Handling

  • Gracefully handles malformed JSONL lines
  • Skips empty files with warning
  • Tolerates missing optional fields

Acceptance Criteria

  • Reads any JSONL file in expected format
  • Produces both markdown and JSON output
  • Handles empty/malformed lines gracefully
  • Can be run manually or via cron

Closes #79

## Summary Analyzes overnight loop JSONL data and produces comprehensive scorecards with statistics, trends, and recommendations. ## Features - Reads `~/shared/overnight-loop/*.jsonl` - Generates both JSON (structured) and Markdown (human-readable) reports - Pass/fail statistics with pass rates - Duration analysis (avg, median, p95, min, max) - Per-task breakdowns (sorted by pass rate) - Hourly timeline trends - Error pattern frequency analysis - Auto-generated actionable recommendations ## Output Files - `~/timmy/reports/scorecard_YYYYMMDD.json` - Structured data - `~/timmy/reports/scorecard_YYYYMMDD.md` - Human-readable report ## Usage ```bash # Basic usage python uni-wizard/scripts/generate_scorecard.py # Custom directories python uni-wizard/scripts/generate_scorecard.py --input ~/data --output ~/reports # Cron (daily at 6 AM) 0 6 * * * /root/timmy/venv/bin/python /root/timmy/uni-wizard/scripts/generate_scorecard.py ``` ## Report Contents 1. **Summary** - Total tasks, pass/fail counts, pass rate 2. **Duration Stats** - Average, median, P95, min, max 3. **Per-Task Breakdown** - Each task type with pass rates and durations 4. **Timeline** - Hourly performance trends 5. **Error Analysis** - Most common error patterns 6. **Recommendations** - Actionable insights based on data ## Error Handling - Gracefully handles malformed JSONL lines - Skips empty files with warning - Tolerates missing optional fields ## Acceptance Criteria - [x] Reads any JSONL file in expected format - [x] Produces both markdown and JSON output - [x] Handles empty/malformed lines gracefully - [x] Can be run manually or via cron Closes #79
allegro added 1 commit 2026-03-30 15:50:33 +00:00
Generates comprehensive reports from overnight loop JSONL data:

**Features:**
- Reads ~/shared/overnight-loop/*.jsonl
- Produces JSON and Markdown reports
- Pass/fail statistics with pass rates
- Duration analysis (avg, median, p95)
- Per-task breakdowns
- Hourly timeline trends
- Error pattern analysis
- Auto-generated recommendations

**Reports:**
- ~/timmy/reports/scorecard_YYYYMMDD.json (structured)
- ~/timmy/reports/scorecard_YYYYMMDD.md (human-readable)

**Usage:**
  python uni-wizard/scripts/generate_scorecard.py

Closes #79
Timmy merged commit 276f2c32dd into main 2026-03-30 15:58:12 +00:00
Sign in to join this conversation.