Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 20, 2026

15-20 workflows repeat the same 30-40 line pattern for uploading charts and embedding them in GitHub Discussions. This creates a shared component documenting the standard pattern.

Changes

Created .github/workflows/shared/asset-discussion-pattern.md:

  • 3-phase workflow pattern: Generate assets → Upload via safe-output tool → Embed URLs in discussion markdown
  • Chart quality standards: DPI 300 minimum, 12x7 inch figures, PNG format, descriptive filenames
  • Discussion configuration: Title formatting, category selection (General/audits/reports), expiration (expires: 3d), auto-close previous (close-older-discussions: true)
  • Markdown templates: 3 common patterns (multiple charts with analysis, single hero chart, comparison charts)
  • Troubleshooting: Asset URL failures, missing discussions, display issues
  • Migration checklist: Adoption guide for existing workflows

Usage

---
imports:
  - shared/asset-discussion-pattern.md

safe-outputs:
  upload-asset:
  create-discussion:
    category: "reports"
    max: 1
    close-older-discussions: true
    expires: 3d
---

# Your workflow content

Workflows like daily-code-metrics.md, daily-issues-report.md, and copilot-session-insights.md can now import this instead of duplicating the pattern inline.

Original prompt

This section details on the original issue you should resolve

<issue_title>[refactoring] Create asset upload and discussion creation pattern skill</issue_title>
<issue_description>## Skill Overview

Create a shared component that documents the standard workflow pattern for uploading charts/assets and embedding them in GitHub Discussions. Currently 15-20 workflows repeat similar instructions for this pattern, leading to inconsistency and duplication.

Current Usage

This pattern appears in the following workflows:

  • daily-code-metrics.md (lines 203-231) - Uploads 6 charts, embeds in discussion
  • daily-issues-report.md (lines 228-263) - Uploads 2 charts, embeds in discussion
  • deep-report.md - Creates discussion with assets
  • copilot-session-insights.md - Uploads session charts
  • python-data-charts.md - Chart generation and upload
  • daily-performance-summary.md - Performance visualizations
  • daily-observability-report.md - Observability charts
  • daily-team-evolution-insights.md - Team activity charts
  • copilot-pr-nlp-analysis.md - NLP visualization charts
  • prompt-clustering-analysis.md - Clustering visualizations
  • repo-tree-map.md - Repository treemap visualization
  • portfolio-analyst.md - Portfolio charts
  • static-analysis-report.md - Analysis charts
  • video-analyzer.md - Video analysis frames
  • org-health-report.md - Organization health charts

Estimated: 15-20 workflows create discussions with uploaded assets

Proposed Shared Component

File: .github/workflows/shared/asset-discussion-pattern.md

Configuration:

---
# Asset Upload and Discussion Creation Pattern
# Standardized workflow for uploading charts/assets and embedding in discussions
---

# Asset Upload and Discussion Creation Pattern

This shared component provides a standardized pattern for workflows that generate visualizations or other assets and publish them in GitHub Discussions.

## Prerequisites

Your workflow must have safe-outputs configured:

``````yaml
safe-outputs:
  upload-asset:
  create-discussion:
    category: "General"  # or "audits", "reports", etc.
    max: 1
    close-older-discussions: true  # Optional: close previous reports
    expires: 3d  # Optional: auto-close after 3 days

Standard Workflow Pattern

Phase 1: Generate Assets

Generate your charts, images, or other assets:

# Example: Generate charts with Python
python3 /tmp/gh-aw/python/generate_charts.py

# Verify assets exist
ls -lh /tmp/gh-aw/python/charts/*.png

Chart Quality Standards (for image assets):

  • DPI: 300 minimum
  • Figure Size: 12x7 inches (or appropriate for content)
  • Format: PNG with transparent or white background
  • File Size: < 5MB recommended

Phase 2: Upload Assets

Upload each asset and collect the returned URLs:

# Upload assets using the upload asset tool
# The tool returns a URL for each uploaded file

# For each chart/asset:
# 1. Call: upload asset with path /tmp/gh-aw/python/charts/chart1.png
# 2. Collect the returned URL (e.g., https://raw.githubusercontent.com/...)
# 3. Store URL for use in discussion markdown

# Example workflow:
# - Upload chart1.png → Get URL1
# - Upload chart2.png → Get URL2
# - Upload chart3.png → Get URL3

Important Notes:

  • Asset URLs are published to an orphaned git branch
  • URLs become accessible after workflow completion
  • Assets persist indefinitely (no expiration)
  • Use descriptive filenames (e.g., issue_activity_trends.png not chart1.png)

Phase 3: Create Discussion with Embedded Assets

Create a discussion with embedded asset URLs:

# Example Discussion Body

Brief 2-3 paragraph summary of key findings.

## 📊 Visualizations

### Chart 1: Descriptive Title
![Chart 1 Description](URL_FROM_UPLOAD_ASSET_1)

[2-3 sentence analysis of what the chart shows]

### Chart 2: Descriptive Title
![Chart 2 Description](URL_FROM_UPLOAD_ASSET_2)

[Analysis of second chart]

<details>
<summary><b>📈 Detailed Analysis</b></summary>

## Additional Charts

### Chart 3: Descriptive Title
![Chart 3 Description](URL_FROM_UPLOAD_ASSET_3)

## Detailed Metrics

[Tables, lists, additional data]

</details>

---
*Report generated by [Workflow Name] workflow*
*Run: [${{ github.run_id }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})*

Discussion Configuration Best Practices

Title Formatting

Use descriptive, dated titles:

  • Good: Daily Code Metrics Report - 2026-01-20
  • Good: [daily-issues] Issue Analysis - 2026-01-20
  • Avoid: Report, Analysis (too generic)

Category Selection

Choose appropriate categories:

  • General: Informational reports, summaries
  • audits: Security, compliance, health checks
  • reports: Data analysis, metrics, trends
  • Q&A: Question-based reports requiring response

Close Older Discussions

...


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Copilot AI changed the title [WIP] Refactor asset upload and discussion creation workflow Add shared component for asset upload and discussion creation pattern Jan 20, 2026
Copilot AI requested a review from mnkiefer January 20, 2026 02:52
@pelikhan pelikhan closed this Jan 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[refactoring] Create asset upload and discussion creation pattern skill

3 participants