self-improvement-ci — Claude Code skill: learn from CI failures
A CI-only skill that groups recurring pull request check failures and proposes rules so the same breakage stops coming back.
npx skills add pskoett/pskoett-ai-skills --skill self-improvement-ci -a claude-codeWhat self-improvement-ci does
This skill runs in CI with no interactive chat loop. It reads pull request check results and CI failures, pulls learning candidates from simplify-and-harden-ci, and ingests Handoff blocks from .learnings/HEALS.md filed by self-healing and self-healing-ci. Recurring patterns are deduplicated by a stable pattern_key, and promotion-ready suggestions go out as machine-readable output.
The repository stays untouched: the skill does not write .learnings/ entries. Promotions are proposed as a pull request or comment, so a human still decides. The promotion bar is fixed — recurrence_count >= 3, seen in >= 2 distinct runs, inside a 30-day window. Named promotion targets are CLAUDE.md, AGENTS.md, .github/copilot-instructions.md, plus SOUL.md and TOOLS.md in an openclaw workspace.
One limit matters. A CI agent has no peak task context from the session where the work happened, so this is built for aggregating patterns across runs, not for judging one-off intent. Uncertain or high-impact recommendations get routed to interactive review. You need GitHub Actions enabled, an authenticated gh, and the gh-aw extension; the example template sits in references/workflow-example.md and stays outside .github/workflows until you choose to turn automation on.
What it helps with
- group recurring pull request check failures under one key
- tell a systemic CI problem apart from a one-off flake
- draft a rule for
CLAUDE.mdwithout reading logs by hand - turn
Handoffblocks in.learnings/HEALS.mdinto candidates - propose instruction edits as a pull request instead of letting CI write files
Example prompts for the agent
- run self-improvement-ci on this pull request and list the promotion candidates
- read
.learnings/HEALS.mdand collect the Handoff blocks into machine-readable output - count recurrence per pattern_key and tell me what is ready to become a rule
How to install self-improvement-ci
1Skills CLI (Vercel)
npx skills add pskoett/pskoett-ai-skills --skill self-improvement-ci -a claude-code2Manually: put the files in place
~/.claude/skills/self-improvement-ci/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/self-improvement-ci/
1Skills CLI (Vercel)
npx skills add pskoett/pskoett-ai-skills --skill self-improvement-ci -a codex2Manually: put the files in place
.agents/skills/self-improvement-ci/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add pskoett/pskoett-ai-skills --skill self-improvement-ci -a cursor2Manually: put the files in place
.cursor/skills/self-improvement-ci/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install pskoett/pskoett-ai-skills self-improvement-ci2Manually: put the files in place
.github/skills/self-improvement-ci/SKILL.md1Skills CLI (Vercel)
npx skills add pskoett/pskoett-ai-skills --skill self-improvement-ci -a gemini-cli2Platform CLI
gemini skills install https://github.com/pskoett/pskoett-ai-skills --path skills/self-improvement-ciManually: put the files in place
.devin/skills/self-improvement-ci/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add pskoett/pskoett-ai-skills --skill self-improvement-ci -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about self-improvement-ci
How do I install self-improvement-ci in Claude?
Run npx skills add pskoett/pskoett-ai-skills --skill self-improvement-ci -a claude-code. The skill lands at ~/.claude/skills/self-improvement-ci/SKILL.md.
What does self-improvement-ci do?
It reads pull request check results, deduplicates recurring failure patterns by pattern_key, and emits promotion-ready candidates as machine-readable output. The rule itself is proposed as a pull request or comment for review.
How is it different from self-improvement?
self-improvement is meant for interactive and local sessions, while this one is CI-only and runs without prompts. It also never writes to .learnings/ — it only reads.