Skip to content

Add charts and visualization to daily-code-metrics workflow #8518

Description

@github-actions

Q Workflow Optimization Report

Context

This PR addresses @pelikhan's request in discussion #8467 to "add charts and visualization" to the daily-code-metrics workflow, following the pattern from the daily-issues-report workflow.

Issues Found (Analysis)

Daily Code Metrics Workflow

Current State:

  • Uses shared/trending-charts-simple.md for basic chart support
  • Generates text-based reports without visual charts
  • No embedded images in discussion reports
  • Missing asset upload capability for charts

Comparison with Daily Issues Report:

  • Daily issues report uses shared/python-dataviz.md for full Python visualization
  • Generates multiple high-quality charts with matplotlib/seaborn
  • Uploads charts as assets and embeds them in discussions
  • Professional 300 DPI charts with consistent styling

Changes Made

.github/workflows/daily-code-metrics.md

Import Updates:

  • ✅ Replaced shared/trending-charts-simple.md with shared/python-dataviz.md
  • ✅ Added shared/trends.md for trending analysis patterns

New Visualization Section:
Added comprehensive "Data Visualization with Python" section specifying 6 required charts:

  1. loc_by_language.png - Bar chart of LOC distribution by programming language

    • Horizontal bars sorted by LOC
    • Percentage labels
    • Color-coded by language type
  2. top_directories.png - Top 10 directories by LOC

    • Directory paths with LOC counts
    • Percentage of total codebase
  3. quality_score_breakdown.png - Quality score component breakdown

    • Shows Test 30%, Organization 25%, Docs 20%, Churn 15%, Comments 10%
    • Current score vs target visualization
  4. test_coverage.png - Test vs source code comparison

    • Test LOC vs source LOC
    • Test-to-source ratio visualization
  5. code_churn.png - Top 10 most changed files (7 days)

    • Lines added/deleted per file
    • Net change highlighting
  6. historical_trends.png - Multi-line time series

    • LOC, test coverage %, quality score over 30 days
    • Trend lines with multiple y-axes

Chart Quality Standards:

  • DPI: 300 minimum for publication quality
  • Figure size: 12x7 inches (consistent with daily-issues)
  • Seaborn styling with professional color palettes
  • Clear titles, labels, legends, grid lines
  • Save with bbox_inches='tight' for proper cropping

Report Format Updates:

  • Updated discussion structure to embed chart images
  • Instructions for asset upload workflow
  • Markdown image syntax for embedded charts
  • Professional report layout with collapsible details

Python Script Structure:

  • Template for data collection and analysis
  • Chart generation workflow
  • Historical data loading from repo-memory
  • Metrics aggregation and storage

Expected Improvements

User Experience

  • Visual insights: 6 embedded charts make trends immediately visible
  • Professional reports: High-quality visualizations enhance credibility
  • Better comprehension: Charts convey complex metrics at a glance
  • Consistent branding: Matches style of daily-issues-report

Technical Benefits

  • Reusable patterns: Uses established shared workflow imports
  • Maintainable: Python scripts can be cached and reused
  • Asset management: Charts uploaded as GitHub assets for permanent URLs
  • Historical tracking: repo-memory integration for trend analysis

Specific Improvements

  • ✅ Adds 6 high-quality visualization charts
  • ✅ Enables asset upload for embedded images
  • ✅ Provides Python script structure for data analysis
  • ✅ Standardizes report format with visual components
  • ✅ Maintains 15-minute timeout (efficient execution)
  • ✅ Uses professional 300 DPI charts
  • ✅ Follows patterns from daily-issues-report

Validation

Workflow compiled successfully:

✓ .github/workflows/daily-code-metrics.md (94.8 KB)
✓ Compiled 1 workflow(s): 0 error(s), 0 warning(s)

Changes:

  • 1 file modified: .github/workflows/daily-code-metrics.md
  • +179 lines added (chart specifications and documentation)
  • -3 lines removed (replaced import)

Implementation Notes

The workflow now follows the same visualization pattern as daily-issues-report.md:

  1. Shared imports: Uses python-dataviz.md for Python environment setup
  2. Chart generation: Agent creates charts using matplotlib/seaborn
  3. Asset upload: Charts uploaded using upload asset safe-output tool
  4. Report embedding: Chart URLs embedded in markdown discussion

The agent will need to:

  1. Collect code metrics using existing bash commands (cloc, git log, etc.)
  2. Generate Python script to create 6 charts
  3. Upload charts as assets
  4. Create discussion with embedded chart images

References

Next Steps

After this PR is merged:

  1. Next run of daily-code-metrics will generate visual charts
  2. Discussion reports will include 6 embedded images
  3. Historical trends will become visually trackable
  4. Reports will match quality of daily-issues-report

Q Optimization: This PR adds the requested visualization capabilities while maintaining workflow efficiency and following established patterns from the repository.

AI generated by Q


Note

This was originally intended as a pull request, but the git push operation failed.

Workflow Run: View run details and download patch artifact

The patch file is available as an artifact (aw.patch) in the workflow run linked above.

To apply the patch locally:

# Download the artifact from the workflow run https://github.com/githubnext/gh-aw/actions/runs/20646646383
# (Use GitHub MCP tools if gh CLI is not available)
gh run download 20646646383 -n aw.patch

# Apply the patch
git am aw.patch
Show patch preview (242 of 242 lines)
From 4cce5a175f8fa04957eda188c936fa33978d54f0 Mon Sep 17 00:00:00 2001
From: Q Workflow Optimizer <q-optimizer@github.com>
Date: Thu, 1 Jan 2026 22:28:20 +0000
Subject: [PATCH] Add Python data visualization with 6 charts to
 daily-code-metrics workflow

- Replace trending-charts-simple with python-dataviz and trends imports
- Add 6 required charts: LOC by language, top directories, quality score breakdown, test coverage, code churn, historical trends
- Include detailed Python script structure and chart requirements
- Update report format to embed chart images via asset upload
- All charts use 300 DPI, 12x7 inches, seaborn styling for professional quality
- Follows pattern from daily-issues-report workflow
---
 .github/workflows/daily-code-metrics.md | 182 +++++++++++++++++++++++-
 1 file changed, 179 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/daily-code-metrics.md b/.github/workflows/daily-code-metrics.md
index a78042e..08869dd 100644
--- a/.github/workflows/daily-code-metrics.md
+++ b/.github/workflows/daily-code-metrics.md
@@ -26,7 +26,8 @@ timeout-minutes: 15
 strict: true
 imports:
   - shared/reporting.md
-  - shared/trending-charts-simple.md
+  - shared/python-dataviz.md
+  - shared/trends.md
 ---
 
 {{#runtime-import? .github/shared-instructions.md}}
@@ -66,20 +67,194 @@ Store as JSON Lines in `/tmp/gh-aw/repo-memory/default/history.jsonl`:
 
 For each metric: current value, 7-day % change, 30-day % change, trend indicator (⬆️/➡️/⬇️)
 
+## Data Visualization with Python
+
+Generate **6 high-quality charts** using Python (matplotlib, seaborn) and save to `/tmp/gh-aw/python/charts/`:
+
+### Chart Requirements
+
+All charts must:
+- Use DPI 300 minimum for quality
+- Figure size: 12x7 inches
+- Include clear titles, labels, legends
+- Use seaborn styling for professional appearance
+- Save as PNG with `bbox_inches='tight'`
+
+### Required Charts
+
+1. **loc_by_language.png** - Bar chart showing LOC distribution by programming language
+   - Ho
... (truncated)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions