Skip to content

[refactoring] Extract Daily Report Discussion Configuration into shared component #15948

@github-actions

Description

@github-actions

Skill Overview

Extract the common daily report discussion configuration pattern into a reusable shared component. Currently, 30+ workflows matching the daily-* pattern contain nearly identical safe-outputs configuration for creating discussions with auto-expiration and cleanup.

Current Usage

This configuration pattern appears in the following workflows:

  • daily-issues-report.md (lines 19-29)
  • daily-code-metrics.md (lines 20-25)
  • daily-firewall-report.md (lines 20-27)
  • daily-performance-summary.md (lines 21-30)
  • daily-observability-report.md (similar pattern)
  • daily-team-evolution-insights.md (similar pattern)
  • daily-compiler-quality.md (similar pattern)
  • daily-safe-outputs-conformance.md (similar pattern)
  • daily-secrets-analysis.md (similar pattern)
  • daily-security-red-team.md (similar pattern)
  • daily-doc-updater.md (similar pattern)
  • daily-workflow-updater.md (similar pattern)
  • daily-cli-performance.md (similar pattern)
  • daily-mcp-concurrency-analysis.md (similar pattern)
  • + 16 more daily-* workflows

Common Configuration Pattern

safe-outputs:
  upload-asset:
  create-discussion:
    expires: 3d  # Most use 3d, some use 2d or 1d
    category: "general"  # or "audits"
    title-prefix: "[workflow-name] "
    max: 1
    close-older-discussions: true
  close-discussion:
    max: 10
timeout-minutes: 30
tracker-id: daily-workflow-name

Proposed Shared Component

File: .github/workflows/shared/daily-report-discussion.md

Configuration:

---
# Daily Report Discussion Configuration
# Provides standard safe-outputs configuration for daily reporting workflows
# that create GitHub Discussions with automatic cleanup

safe-outputs:
  upload-asset:
  create-discussion:
    expires: 3d
    category: "general"
    title-prefix: "[\$\{WORKFLOW_NAME}] "
    max: 1
    close-older-discussions: true
  close-discussion:
    max: 10
timeout-minutes: 30
tracker-id: \$\{TRACKER_ID}
---

# Daily Report Discussion Configuration

This shared component provides standard configuration for daily reporting workflows that create GitHub Discussions.

### Features

- **Automatic expiration**: Discussions expire after 3 days
- **Auto-cleanup**: Previous discussions are automatically closed
- **Single discussion**: Only 1 discussion created per run (max: 1)
- **Consistent timeout**: 30-minute timeout for analysis workflows
- **Deduplication**: tracker-id ensures no duplicate runs

### Usage

Import this component in your daily report workflow:

````yaml
imports:
  - shared/daily-report-discussion.md
  - shared/reporting.md
  - shared/mood.md

Customization

If you need different expiration (2d, 1d) or category ("audits"), you can override:

imports:
  - shared/daily-report-discussion.md

safe-outputs:
  create-discussion:
    expires: 2d  # Override to 2 days
    category: "audits"  # Override category

**Usage Example**:
````yaml
# In daily-issues-report.md (BEFORE)
---
description: Daily report analyzing repository issues
on: daily
permissions:
  contents: read
safe-outputs:
  upload-asset:
  create-discussion:
    expires: 3d
    category: "general"
    title-prefix: "[daily issues] "
    max: 1
    close-older-discussions: true
  close-discussion:
    max: 10
timeout-minutes: 30
tracker-id: daily-issues-report
imports:
  - shared/mood.md
  - shared/reporting.md
---

# AFTER (saves 15 lines)
---
description: Daily report analyzing repository issues
on: daily
permissions:
  contents: read
imports:
  - shared/daily-report-discussion.md
  - shared/mood.md
  - shared/reporting.md
---

Impact

  • Workflows affected: 30+ workflows
  • Lines saved: ~20 lines per workflow × 30 = ~600 lines
  • Maintenance benefit: Update expiration policy in one place instead of 30
  • Consistency: Ensures all daily reports follow the same cleanup pattern
  • Discoverability: Makes the daily report pattern more discoverable for new workflows

Implementation Plan

  1. Create shared component at .github/workflows/shared/daily-report-discussion.md
  2. Test with 2-3 sample workflows (daily-issues-report, daily-code-metrics, daily-firewall-report)
  3. Validate that discussions are created and cleaned up correctly
  4. Update remaining 27+ daily-* workflows to use the shared component
  5. Document in AGENTS.md or workflow documentation
  6. Update any workflow templates or examples

Related Analysis

This recommendation comes from the Workflow Skill Extractor analysis run on 2026-02-15.

Analysis findings:

  • 154 total workflows analyzed
  • 30 workflows use this exact pattern
  • Potential to save ~600 lines of configuration
  • Standardizes daily report behavior across the repository

Generated by Workflow Skill Extractor

  • expires on Feb 17, 2026, 4:20 PM UTC

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions