trax/scripts/progress_tracker.sh

116 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# Progress Tracker for Trax Development
# Shows comprehensive development status
echo "═══════════════════════════════════════════════════════"
echo " TRAX DEVELOPMENT PROGRESS TRACKER "
echo "═══════════════════════════════════════════════════════"
echo ""
# 1. Task Master Status
echo "📋 TASK MASTER STATUS"
echo "────────────────────"
if command -v task-master &> /dev/null; then
echo "In Progress:"
task-master list --status=in-progress 2>/dev/null | head -3
echo ""
echo "Next Tasks:"
task-master list --status=pending 2>/dev/null | head -3
else
echo "Task Master not configured"
fi
echo ""
# 2. Test Coverage
echo "🧪 TEST COVERAGE"
echo "────────────────"
if [ -d "tests" ]; then
echo "Running coverage analysis..."
uv run pytest --cov=src --cov-report=term-missing --quiet 2>/dev/null | tail -5
else
echo "No tests directory found"
fi
echo ""
# 3. Code Quality - File Sizes
echo "📏 FILE SIZE CHECK"
echo "────────────────"
echo "Files over 300 lines:"
find src -name "*.py" -exec wc -l {} + 2>/dev/null | awk '$1 > 300 {print $2 ": " $1 " lines (⚠️ over limit)"}' | head -5
LARGE_FILES=$(find src -name "*.py" -exec wc -l {} + 2>/dev/null | awk '$1 > 300' | wc -l)
TOTAL_FILES=$(find src -name "*.py" 2>/dev/null | wc -l)
echo "Summary: $LARGE_FILES/$TOTAL_FILES files exceed 300 lines"
echo ""
# 4. Type Checking
echo "🔍 TYPE CHECKING"
echo "────────────────"
if command -v mypy &> /dev/null; then
ERROR_COUNT=$(uv run mypy src/ 2>/dev/null | grep -c "error:" || echo "0")
echo "Type errors found: $ERROR_COUNT"
else
echo "MyPy not configured"
fi
echo ""
# 5. Linting Status
echo "🎨 CODE FORMATTING"
echo "────────────────"
if command -v ruff &> /dev/null; then
RUFF_ERRORS=$(uv run ruff check src/ 2>&1 | grep -c "error" || echo "0")
echo "Ruff errors: $RUFF_ERRORS"
fi
if command -v black &> /dev/null; then
BLACK_CHECK=$(uv run black --check src/ tests/ 2>&1)
if [ $? -eq 0 ]; then
echo "Black formatting: ✅ All files formatted"
else
echo "Black formatting: ❌ Files need formatting"
fi
fi
echo ""
# 6. Git Status
echo "🔀 GIT STATUS"
echo "────────────────"
MODIFIED=$(git status --porcelain 2>/dev/null | wc -l)
BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
echo "Current branch: $BRANCH"
echo "Modified files: $MODIFIED"
echo ""
# 7. Session Context
echo "📝 SESSION CONTEXT"
echo "────────────────"
if [ -f ".claude/context/session.md" ]; then
echo "Active session found"
grep "^## Current Session" -A 3 .claude/context/session.md 2>/dev/null | tail -3
else
echo "No active session context"
fi
echo ""
# 8. Research Reports
echo "🔬 RESEARCH REPORTS"
echo "────────────────"
if [ -d ".claude/research" ]; then
REPORT_COUNT=$(ls -1 .claude/research/*.md 2>/dev/null | wc -l)
echo "Reports available: $REPORT_COUNT"
ls -1t .claude/research/*.md 2>/dev/null | head -3 | sed 's/.*\// - /'
else
echo "No research reports found"
fi
echo ""
# 9. Performance Metrics
echo "⚡ PERFORMANCE TARGETS"
echo "────────────────"
echo "Target: 5-min audio < 30s processing"
echo "Target: Memory < 2GB"
echo "Target: Accuracy > 95%"
echo "Target: Files < 300 lines"
echo ""
echo "═══════════════════════════════════════════════════════"
echo "Run './scripts/progress_tracker.sh' for updates"
echo "═══════════════════════════════════════════════════════"