Skip to main content

optimize-workflow

Optimize CI runners and workflow structure for speed, simplicity, stability, and cost.

Jump to install

Source facts

Repository
smartcontractkit/chainlink
Last source activity
July 30, 2026 at 13:14
Detected SKILL.md language
English
Stars
8,242
Forks
1,986

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
optimize-workflow
description
Optimize CI runners and workflow structure for speed, simplicity, stability, and cost.
disable-model-invocation
true
<initialization> 1. Confirm missing inputs: target workflow, scope, priorities (default: stability > speed > cost). 2. Setup baseline: - Analyze target workflow (runners, caching, bottlenecks, critical path). - Setup test workflow (add `workflow_dispatch`, mock inputs if needed). - Init/resume trial log: `.github/.agents/skills/optimize-workflow/trials/[workflow]/summary.md`. - Record baseline run metrics. </initialization> <git_workflow> To prevent index/branch lock conflicts: - Do NOT checkout local trial branches. - Push trial commits directly from working branch to remote refs: `git push -f origin HEAD:refs/heads/trial/[trial-name]` - Delete remote trial refs on cleanup: `git push origin --delete trial/[trial-name]` </git_workflow> <constraints> - Git: Direct ref pushes only. No local branch switching during trials. - Runners: Prefer `ubuntu-latest`. Use `runs-on` for larger runners (verify API first). - Scope: One change per trial. Keep cache status identical across comparison runs. - Validation: Lint YAML (`actionlint` or dry-run) before pushing. - Tools: Use `gh` CLI and workflow scripts for monitoring/comparisons. </constraints> <tools> - Monitor: `python3 .github/.agents/skills/optimize-workflow/scripts/workflow_monitor.py [run_id] [trial-name]` - Outputs `report.json`, `report.md`, and runner logs to `.github/.agents/skills/optimize-workflow/trials/[workflow]/[trial-name]/` - Quick analysis: Inspect `## Longest Jobs (Bottlenecks)` in `report.md` or query `jq '.slowest_jobs[] | select(.is_outlier)' report.json` / `jq '([.jobs[].duration_seconds] | add / length) as $avg | .jobs[] | select(.duration_seconds > $avg * 1.5)' report.json`. - Compare: `python3 .github/.agents/skills/optimize-workflow/scripts/workflow_compare.py [trial-1] [trial-2]` - Outputs `.github/.agents/skills/optimize-workflow/trials/[workflow]/[trial-1]-[trial-2]-comparison.md` </tools> <resources> - [runs-on docs](https://runs-on.com/docs/) | [spot pricing](https://runs-on.com/docs/costs/spot-pricing/) - [available runners](https://go.runs-on.com/api) - [GitHub Actions docs](https://docs.github.com/en/actions) </resources> <loop> 1. Define single-variable trial and prompt for user approval. 2. Push commit to remote ref: `git push -f origin HEAD:refs/heads/trial/[trial-name]`. 3. Trigger run: `gh workflow run --ref trial/[trial-name]`. 4. Monitor run with `workflow_monitor.py`. 5. Compare with `workflow_compare.py` against baseline/previous trial. 6. Update trial log in `summary.md`. Include before/after diagram if structure changed. 7. Present condensed result to user; prompt for next trial or completion. <trial-template> | Runner | Structure | Experiment | Expectation | Branch | Run ID | Commit | Stability | Runtime | Cost | Notes | |---|---|---|---|---|---|---|---|---|---|---| | `config` | `cached/parallel` | Tested change | Expected impact | `trial/...` | `id` | `sha` | Pass/Fail | mm:ss | $ | Notes | </trial-template> </loop> <complete trigger="User stops loop or all trials done"> 1. Recommend final configuration. 2. Output PR summary table and before/after Mermaid diagrams: ```md ### [Workflow/Job Name] Runner & Structure Changes | Approach | Runner | Structure | Stability | Runtime | Runtime Delta (Abs/%) | Cost | Cost Delta (Abs/%) | |---|---|---|---|---|---|---|---| | [Old](link) | [runner] | [structure] | Pass/Fail | mm:ss | +0:00 (+0%) | $ | +$ (+0%) | | [New](link) | [runner] | [structure] | Pass/Fail | mm:ss | +0:00 (+0%) | $ | +$ (+0%) | ``` 3. Clean up debug code. Make final edits on working branch. Ask user to commit. 4. Delete remote trial branches (`git push origin --delete trial/[trial-name]`) and temporary files. </complete>
View on GitHub