finops-waste

Identify GitHub Actions waste patterns and provide actionable fix suggestions. Analyzes skipped runs, bot triggers, missing concurrency groups, and missing path filters.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "finops-waste" with this command: npx skills add laurigates/claude-plugins/laurigates-claude-plugins-finops-waste

/finops:waste

Identify GitHub Actions waste patterns and provide actionable fix suggestions. Analyzes skipped runs, bot triggers, missing concurrency groups, and missing path filters.

Context

  • Current repo URL: !git remote get-url origin

  • Workflow files: !find .github/workflows -maxdepth 1 ( -name '.yml' -o -name '.yaml' )

Parameters

Parameter Description Default

repo

Repository in owner/name format Current repository

Execution

  1. Run API-based waste analysis:

bash "${SKILL_DIR}/scripts/waste-analysis.sh" "$REPO"

  1. Workflow file analysis (requires local filesystem):

echo "" echo "=== Workflow File Analysis ==="

for f in .github/workflows/.yml .github/workflows/.yaml 2>/dev/null; do [ -f "$f" ] || continue name=$(basename "$f") issues=""

Check for concurrency

if ! grep -q "concurrency:" "$f"; then issues="${issues}missing-concurrency " fi

Check for path filters (on push/pull_request without paths)

if grep -qE "^\s*(push|pull_request):" "$f" && ! grep -q "paths:" "$f"; then issues="${issues}no-path-filter " fi

Check for bot filter

if ! grep -q "github.event.sender.type" "$f" && ! grep -q "github.actor" "$f"; then issues="${issues}no-bot-filter " fi

Check for cancel-in-progress

if grep -q "pull_request:" "$f" && ! grep -q "cancel-in-progress:" "$f"; then issues="${issues}no-cancel-in-progress " fi

if [ -n "$issues" ]; then echo " $name: $issues" else echo " $name: OK" fi done

Fix Suggestions

After analysis, provide specific fixes based on findings:

Fix: Missing Concurrency Group

Add to workflow file at top level or per-job

concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true # For PR workflows

Fix: Bot Trigger Filter

jobs: build: # Skip if triggered by a bot if: github.event.sender.type != 'Bot' runs-on: ubuntu-latest steps: ...

Or for specific bots:

if: github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]'

Fix: Add Path Filters

on: push: branches: [main] paths: - 'src/' - 'package.json' - 'package-lock.json' paths-ignore: - '.md' - 'docs/' - '.github/' pull_request: paths: - 'src/**' - 'package.json'

Fix: Cancel Duplicate PR Runs

concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true

Output Format

=== Waste Analysis: org/repo ===

=== Skipped Runs === Total runs: 100 Skipped: 15 (15%)

By workflow: CI: 10 skipped CodeQL: 5 skipped

=== Bot-Triggered Runs === Bot-triggered: 25/100 runs

By bot: dependabot[bot]: 15 runs renovate[bot]: 10 runs

=== Workflow File Analysis === ci.yml: missing-concurrency no-path-filter deploy.yml: OK codeql.yml: no-bot-filter

=== Potential Duplicate Runs === Commit abc1234: 3 runs (CI, CodeQL, Security)

=== High-Frequency Workflows === CI: 67 runs in sample - review trigger conditions

Post-actions

  • Offer to apply fixes: For each issue found, offer to edit the workflow file directly

  • Prioritize by impact: Focus on high-frequency workflows first

  • Test recommendations: Suggest testing changes on a feature branch first

  • Create tracking issue: Optionally create a GitHub issue to track optimization work

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

python-code-quality

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

python-development

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

clippy-advanced

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

python-testing

No summary provided by upstream source.

Repository SourceNeeds Review