/finops:workflows
Analyze GitHub Actions workflow runs for a repository - frequency, duration, success rates, and efficiency metrics.
When to Use This Skill
| Use this skill when... |
Use a sibling instead when... |
| You need to analyze workflow run frequency, duration, and trigger distribution |
You only need a quick high-level health snapshot — use /finops:overview |
| You are investigating high failure rates on specific workflows |
You want actionable fixes for workflow config waste — use /finops:waste |
You need org-wide workflow timing analysis (/finops:workflows org <name>) |
You want to compare workflow metrics across many repos — use /finops:compare |
| You want to identify slow or noisy workflows by duration |
You are investigating cache size or stale caches — use /finops:caches |
Context
- Current repo URL: !
git remote -v
Parameters
| Parameter |
Description |
Default |
repo |
Repository in owner/name format |
Current repository |
--created |
Date range filter (e.g., >=2026-03-01) |
None (last 100 runs) |
org <name> |
Org-wide analysis (use instead of repo) |
- |
Execution
Per-repo analysis (default)
bash "${SKILL_DIR}/scripts/workflow-runs.sh" $ARGS
Org-wide analysis
When the user requests org-wide analysis, use the org script:
bash "${SKILL_DIR}/scripts/workflow-runs-org.sh" $ARGS
Output Format
Analyzing workflows for: org/repo
=== Active Workflows ===
CI (id: 12345)
Deploy (id: 12346)
CodeQL (id: 12347)
=== Run Summary ===
CI:
Total: 156 | Success: 140 | Failure: 10 | Cancelled: 4 | Skipped: 2
Success rate: 89%
Deploy:
Total: 45 | Success: 44 | Failure: 1 | Cancelled: 0 | Skipped: 0
Success rate: 97%
=== Duration Analysis ===
CI:
Runs: 50 | Avg: 4m32s | Max: 12m15s | Total: 226min
Deploy:
Runs: 20 | Avg: 2m10s | Max: 3m45s | Total: 43min
=== Trigger Types ===
push: 89 runs
pull_request: 67 runs
schedule: 30 runs
workflow_dispatch: 5 runs
=== Recent Failures (last 10) ===
#234 CI - 2025-01-28 - https://github.com/org/repo/actions/runs/...
#231 CI - 2025-01-27 - https://github.com/org/repo/actions/runs/...
=== High Frequency Workflows ===
CI: 156 runs (~5.2/day) - consider path filters
Agentic Optimizations
| Context |
Command |
| Workflow list (JSON) |
gh workflow list --json name,id,state |
| Recent runs (compact) |
gh run list --workflow <name> --limit 20 --json status,conclusion,createdAt |
| Failed runs only |
gh run list --status failure --limit 10 --json name,createdAt,url |
| Run timing (JSON) |
`gh api "/repos/{owner}/{repo}/actions/runs?per_page=50" --jq '.workflow_runs[] |
| Compact per-repo analysis |
bash "${SKILL_DIR}/scripts/workflow-runs.sh" $ARGS |
| Org-wide analysis |
bash "${SKILL_DIR}/scripts/workflow-runs-org.sh" $ARGS |
Post-actions
Based on findings, suggest:
- High failure rate -> Investigate recent failures, check logs with
gh run view --log-failed
- High frequency -> Review trigger conditions, add path filters
- Long durations -> Review caching, parallelization, step optimization
- Many skipped -> Run
/finops:waste for detailed analysis
1---
2description: "Analyze workflow runs — frequency, duration, success rates, efficiency. Use when investigating slow CI, high failure rates, or run patterns over time."
3args: "[repo] [--created RANGE]"
4allowed-tools: Bash(gh api *), Bash(gh workflow *), Bash(gh repo *), Bash(bash *), Read, TodoWrite
5argument-hint: Optional repo (owner/name format, defaults to current repo). Use --created for date range. Use org mode for org-wide analysis.
6created: 2025-01-30
7modified: 2026-06-18
8reviewed: 2026-04-25
9name: finops-workflows
10---
11
12# /finops:workflows
13
14Analyze GitHub Actions workflow runs for a repository - frequency, duration, success rates, and efficiency metrics.
15
16## When to Use This Skill
17
18| Use this skill when... | Use a sibling instead when... |
19|---|---|
20| You need to analyze workflow run frequency, duration, and trigger distribution | You only need a quick high-level health snapshot — use `/finops:overview` |
21| You are investigating high failure rates on specific workflows | You want actionable fixes for workflow config waste — use `/finops:waste` |
22| You need org-wide workflow timing analysis (`/finops:workflows org <name>`) | You want to compare workflow metrics across many repos — use `/finops:compare` |
23| You want to identify slow or noisy workflows by duration | You are investigating cache size or stale caches — use `/finops:caches` |
24
25## Context
26
27- Current repo URL: !`git remote -v`
28
29## Parameters
30
31| Parameter | Description | Default |
32|-----------|-------------|---------|
33| `repo` | Repository in owner/name format | Current repository |
34| `--created` | Date range filter (e.g., `>=2026-03-01`) | None (last 100 runs) |
35| `org <name>` | Org-wide analysis (use instead of repo) | - |
36
37## Execution
38
39### Per-repo analysis (default)
40
41```bash
42bash "${SKILL_DIR}/scripts/workflow-runs.sh" $ARGS
43```
44
45### Org-wide analysis
46
47When the user requests org-wide analysis, use the org script:
48
49```bash
50bash "${SKILL_DIR}/scripts/workflow-runs-org.sh" $ARGS
51```
52
53## Output Format
54
55```
56Analyzing workflows for: org/repo
57
58=== Active Workflows ===
59 CI (id: 12345)
60 Deploy (id: 12346)
61 CodeQL (id: 12347)
62
63=== Run Summary ===
64CI:
65 Total: 156 | Success: 140 | Failure: 10 | Cancelled: 4 | Skipped: 2
66 Success rate: 89%
67Deploy:
68 Total: 45 | Success: 44 | Failure: 1 | Cancelled: 0 | Skipped: 0
69 Success rate: 97%
70
71=== Duration Analysis ===
72CI:
73 Runs: 50 | Avg: 4m32s | Max: 12m15s | Total: 226min
74Deploy:
75 Runs: 20 | Avg: 2m10s | Max: 3m45s | Total: 43min
76
77=== Trigger Types ===
78 push: 89 runs
79 pull_request: 67 runs
80 schedule: 30 runs
81 workflow_dispatch: 5 runs
82
83=== Recent Failures (last 10) ===
84 #234 CI - 2025-01-28 - https://github.com/org/repo/actions/runs/...
85 #231 CI - 2025-01-27 - https://github.com/org/repo/actions/runs/...
86
87=== High Frequency Workflows ===
88 CI: 156 runs (~5.2/day) - consider path filters
89```
90
91## Agentic Optimizations
92
93| Context | Command |
94|---------|---------|
95| Workflow list (JSON) | `gh workflow list --json name,id,state` |
96| Recent runs (compact) | `gh run list --workflow <name> --limit 20 --json status,conclusion,createdAt` |
97| Failed runs only | `gh run list --status failure --limit 10 --json name,createdAt,url` |
98| Run timing (JSON) | `gh api "/repos/{owner}/{repo}/actions/runs?per_page=50" --jq '.workflow_runs[] | {name,created_at,updated_at,conclusion}'` |
99| Compact per-repo analysis | `bash "${SKILL_DIR}/scripts/workflow-runs.sh" $ARGS` |
100| Org-wide analysis | `bash "${SKILL_DIR}/scripts/workflow-runs-org.sh" $ARGS` |
101
102## Post-actions
103
104Based on findings, suggest:
105- High failure rate -> Investigate recent failures, check logs with `gh run view --log-failed`
106- High frequency -> Review trigger conditions, add path filters
107- Long durations -> Review caching, parallelization, step optimization
108- Many skipped -> Run `/finops:waste` for detailed analysis