Skip to content

[refactoring] Introduce shared/daily-pr-base.md for automated code-improvement PR workflows #29294

@github-actions

Description

@github-actions

Overview

Many daily/scheduled workflows automate code improvements and create pull requests, but duplicate the same frontmatter boilerplate. A shared/daily-pr-base.md component would centralize the PR-output pattern, analogous to how daily-audit-base.md serves discussion workflows.

Current Usage (7 confirmed + ~8 partial)

Workflows with the complete pattern (skip-if-match: is:pr + create-pull-request + activation-app.md):

Workflow Skip-if-match Create-PR
code-simplifier.md
dead-code-remover.md
code-scanning-fixer.md
slide-deck-maintainer.md
ubuntu-image-analyzer.md
unbloat-docs.md
daily-rendering-scripts-verifier.md

Partial adopters (create-pull-request without skip-if-match, or missing activation-app): daily-doc-updater, daily-workflow-updater, daily-file-diet, daily-caveman-optimizer, jsweep, daily-hippo-learn, functional-pragmatist, daily-workflow-updater.

Proposed Shared Component: shared/daily-pr-base.md

---
# Bundle for daily automated code improvement workflows that create pull requests.
# Bundles: activation-app + skip-if-match (PR) + standardized create-pull-request safe-outputs.
#
# Usage:
#   imports:
#     - uses: shared/daily-pr-base.md
#       with:
#         title-prefix: "[my-workflow] "
#         expires: "1d"
#         labels: [automation]
#         reviewers: [copilot]

import-schema:
  title-prefix:
    type: string
    required: true
    description: "Title prefix for created PRs, e.g. '[my-workflow] '"
  expires:
    type: string
    default: "1d"
    description: "How long to keep open PRs before expiry"
  labels:
    type: array
    default: [automation]
    description: "Labels to apply to created PRs"
  reviewers:
    type: array
    default: [copilot]
    description: "Reviewers to assign to created PRs"

imports:
  - shared/activation-app.md
  - shared/reporting.md

safe-outputs:
  create-pull-request:
    expires: ${{ github.aw.import-inputs.expires }}
    title-prefix: ${{ github.aw.import-inputs.title-prefix }}
    labels: ${{ github.aw.import-inputs.labels }}
    reviewers: ${{ github.aw.import-inputs.reviewers }}
  noop:
---

Example Usage (After Migration)

on:
  schedule: daily
  skip-if-match: 'is:pr is:open in:title "[code-simplifier]"'

imports:
  - uses: shared/daily-pr-base.md
    with:
      title-prefix: "[code-simplifier] "
      expires: "1d"
      labels: [refactoring, code-quality, automation]
      reviewers: [copilot]

Estimated Impact

  • ~15 workflows benefit (7 direct + 8 partial adopters)
  • ~12–18 lines removed per workflow
  • Maintenance benefit: PR expiry, reviewer defaults, and activation-app config updated in one place

Migration Plan

  1. Create shared/daily-pr-base.md with the schema above
  2. Run make recompile to verify no existing compilations break
  3. For each of the 7 confirmed workflows: replace inline imports + safe-outputs.create-pull-request block with the new parameterized import
  4. Compile and validate each migrated workflow
  5. Submit PR with migrations

References: §25163549011

Generated by Workflow Skill Extractor · ● 4.3M ·

  • expires on May 2, 2026, 11:56 AM UTC

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions