Skip to main content

optimize-workflow

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

跳到安装

来源信息

仓库
smartcontractkit/chainlink
最近来源活动
2026年7月30日 13:14
检测到的 SKILL.md 语言
英语
星标
8,242
分支
1,986

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
5 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
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>
在 GitHub 查看