Sparc Refine
ruvnet/ruflo
Run the SPARC Refinement and Completion phases — review code, improve test coverage, validate against specification, and generate documentation
Refine an existing CraftBot skill using evidence from one completed task that used it.
$ npx skills add CraftOS-dev/CraftBot --skill craftbot-skill-improve -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install CraftOS-dev/CraftBot craftbot-skill-improve --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/CraftOS-dev/CraftBot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/craftbot-skill-improve .claude/skills/craftbot-skill-improve && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "craftbot-skill-improve" agent skill from https://github.com/CraftOS-dev/CraftBot/tree/main/skills/craftbot-skill-improve into .claude/skills/craftbot-skill-improve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "craftbot-skill-improve", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/CraftOS-dev/CraftBot/tree/main/skills/craftbot-skill-improveType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add CraftOS-dev/CraftBot --skill craftbot-skill-improve -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install CraftOS-dev/CraftBot craftbot-skill-improve --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CraftOS-dev/CraftBot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/craftbot-skill-improve .agents/skills/craftbot-skill-improve && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "craftbot-skill-improve" agent skill from https://github.com/CraftOS-dev/CraftBot/tree/main/skills/craftbot-skill-improve into .agents/skills/craftbot-skill-improve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "craftbot-skill-improve", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add CraftOS-dev/CraftBot --skill craftbot-skill-improve -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install CraftOS-dev/CraftBot craftbot-skill-improve --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CraftOS-dev/CraftBot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/craftbot-skill-improve .cursor/skills/craftbot-skill-improve && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "craftbot-skill-improve" agent skill from https://github.com/CraftOS-dev/CraftBot/tree/main/skills/craftbot-skill-improve into .cursor/skills/craftbot-skill-improve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "craftbot-skill-improve", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/CraftOS-dev/CraftBot.git --path skills/craftbot-skill-improve--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add CraftOS-dev/CraftBot --skill craftbot-skill-improve -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install CraftOS-dev/CraftBot craftbot-skill-improve --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CraftOS-dev/CraftBot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/craftbot-skill-improve .gemini/skills/craftbot-skill-improve && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "craftbot-skill-improve" agent skill from https://github.com/CraftOS-dev/CraftBot/tree/main/skills/craftbot-skill-improve into .gemini/skills/craftbot-skill-improve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "craftbot-skill-improve", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install CraftOS-dev/CraftBot craftbot-skill-improveInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add CraftOS-dev/CraftBot --skill craftbot-skill-improve -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/CraftOS-dev/CraftBot.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/craftbot-skill-improve .github/skills/craftbot-skill-improve && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "craftbot-skill-improve" agent skill from https://github.com/CraftOS-dev/CraftBot/tree/main/skills/craftbot-skill-improve into .github/skills/craftbot-skill-improve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "craftbot-skill-improve", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add CraftOS-dev/CraftBot --skill craftbot-skill-improve -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install CraftOS-dev/CraftBot craftbot-skill-improve --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CraftOS-dev/CraftBot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/craftbot-skill-improve .opencode/skills/craftbot-skill-improve && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "craftbot-skill-improve" agent skill from https://github.com/CraftOS-dev/CraftBot/tree/main/skills/craftbot-skill-improve into .opencode/skills/craftbot-skill-improve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "craftbot-skill-improve", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
craftbot-skill-improveRefine an existing CraftBot skill using evidence from one completed task that used it.
Craftbot Skill Improve is an agent skill from CraftOS-dev/CraftBot. Refine an existing CraftBot skill using evidence from one completed task that used it. Read the per-task SKILLSOURCE markdown the handler wrote, diff it against the existing SKILL.md, apply surgical edits to skills/<target/SKILL.md. Use this when CraftBot has spawned an 'Improve Skill' workflow task and you need to refine the skill's accuracy or token efficiency without redesigning it.
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: One agent. Every kind of work. The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b50970c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Craftbot Skill Improve loads about 3.6k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 1,939 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from CraftOS-dev/CraftBot at commit b50970c, republished under its MIT licence (© CraftOS-dev). 1,939 words, ~3,637 tokens.
.claude/skills/craftbot-skill-improve/SKILL.md (or your agent's skills folder).Refine one existing skill using evidence from one task that used it. The handler that spawned this task already gathered everything you need into a single markdown file — read it, diff it against the live skill, apply small surgical edits, send the user a one-message summary of the changes, end the task. The handler has already posted "Improving skill <name>…" in chat for you, so do not duplicate that message. Your only chat message is the final presentation right before end_turn. Do not iterate with test cases. Do not run subagents.
Your task instruction contains five lines (the two paths are absolute — pass them verbatim to read_file / stream_edit, do NOT prepend or modify any prefix):
Source file (read this — absolute path, use verbatim): <absolute path to SKILL_SOURCE_<id>.md>
Target file (edit this — absolute path, use verbatim): <absolute path to skills/<existing-name>/SKILL.md>
Mode: improve
Skill name: <existing-skill-name>⚠️ Do not invent your own path for the target file. Using the literal value of
Target file:ensuresstream_editmodifies the actual installed SKILL.md.
SKILL_SOURCE_<task_id>.md has YAML frontmatter (mode: improve, target_skill, source_task_id, generated_at) and these body sections:
## Task name — the short task title shown in the action panel. A one-line summary of intent, not a verbatim instruction.## Outcome — status, created/ended timestamps, the skills the source task had attached, and any internal workflow_id.## Action trace — every action and reasoning item, in order, with input, output, error, and duration. This is your primary evidence — it is the durable record of what actually happened.## Existing SKILL.md — the verbatim contents of skills/<target>/SKILL.md as captured at the moment the workflow started.The target skill exists. Your job is to edit it in place. The action trace is the evidence; the existing SKILL.md is what you are diffing against.
Two artefacts, in order:
Target file: in your task instruction (an absolute path under the project's skills/ directory). Pass that path verbatim to stream_edit. Do not do a whole-file rewrite of it — that clobbers the rest of the file. Do not write any other files. Do not change the directory layout. Do not delete bundled resources in scripts/, references/, or assets/.send_message, immediately after the edits and immediately before end_turn. See Presentation message below for the format.Do not send any chat message other than the single presentation one — the handler has already posted the "Improving skill …" acknowledgement.
These four rules are the heart of improve mode. Read them before drafting.
Do not redesign the skill. The existing skill encodes a tested workflow. Your job is refinement, not rewriting. Drastic restructuring regresses use cases that this single source task never exercised. Why: one task is a sample size of one. The skill has likely been used many times before; you are seeing one slice.
Optimise for accuracy AND token efficiency. A change is justified if and only if it does one of:
Prefer surgical edits over wholesale rewrites. One stream_edit per change. Each edit replaces or inserts a small contiguous range. If you are about to replace half the file, stop — that is redesign, not refinement.
Why: small diffs are reviewable and reversible by humans afterwards.
Do not invent pitfalls. If the source task ran cleanly, do not add speculative warnings. If the trace shows the existing pitfall warnings are wrong, fix or remove them. Why: unfounded warnings dilute real ones; agents start ignoring the section.
These come straight from Anthropic's skill-improver guidance and apply here verbatim.
*Why:* … line right after it. When you sharpen an existing rule, preserve any existing *Why:* line — those are gold.scripts/ files yourself — that's outside this workflow's scope.CraftBot skills have four frontmatter fields:
| Field | Allowed change in improve mode |
|---|---|
name | Never change. The directory name and the agent's task instruction depend on it. |
description | Edit only if the source task evidence proves the current description is wrong (e.g., the agent triggered the skill for a use case the description should explicitly cover). Apply the pushy pattern: what + when, with example user phrasings. |
user-invocable | Almost never change. Flip only if you have hard evidence the current value is wrong. |
action-sets | Add a set only if the trace shows the agent actually called actions from it that the skill expects. Remove a set only if the existing skill never references its actions and the trace confirms it goes unused. |
skills/<skill-name>/
├── SKILL.md ← edit this only
├── scripts/ ← do not modify in this workflow
├── references/ ← do not modify in this workflow
└── assets/ ← do not modify in this workflowBundled resources may exist for the target skill. Leave them alone. If the source trace suggests one of them is outdated, mention it in ## Common pitfalls so a human can revisit.
Use update_todos at the start to track these. Mark each completed before moving on.
read_file on the path from your task instruction. Note the action trace, errors, summary, and the verbatim existing SKILL.md.read_file on skills/<target-skill>/SKILL.md. The SOURCE may be milliseconds stale; the live file is authoritative for line offsets when you stream_edit.stream_edit per item in the list. Re-read the file between edits if line offsets have shifted significantly.send_message. See Presentation message below.end_turn with a one-line summary of what changed.Walk the action trace once. For each signal, decide whether the existing skill already warns about it. If yes, no edit needed. If no, consider adding to ## Common pitfalls.
Surface (task-specific) signals not already covered:
## General Steps instead of a pitfall.Ignore (generic) signals:
If ## Common pitfalls does not exist in the target skill and you have at most one task-specific signal to add, prefer to fold it into ## General Steps as a sharpening of an existing step rather than creating a whole new section.
When trimming, prefer to delete:
When trimming, do not delete:
*Why:* … reasoning lines — those are how future agents handle edge cases the rule didn't anticipate.You are done when all of these are true:
skills/<target-skill>/SKILL.md has been modified, or you have decided no edit is justified and the presentation message says so.name is unchanged.send_message (see below).end_turn with a one-line summary of what changed (e.g., "Added pitfall about over-broad search queries; trimmed redundant restatement of the date-filter rule").After applying the edits and immediately before end_turn, call send_message once with a short summary of what changed. Aim for 3–6 short lines. Adapt this template — do not copy verbatim:
✏️ Improved the **<skill-name>** skill.
Changes:
- <one-line description of edit 1>
- <one-line description of edit 2>
The skill is now more accurate / leaner / better at <specific behaviour>.If you decided no edit was justified, send a brief "no changes — the existing skill already covers the workflow cleanly" message instead.
Rules:
<name>…" in chat, so do not duplicate that or send any other chat message during the workflow.read_file, stream_edit, send_message, update_todos, end_turn.
create_file / write_file are forbidden in this workflow — see Improvement constraints above.
send_message call. The presentation message above is the only one.create_file, write_file — those overwrite. Use stream_edit.web_search, run_shell — outside file_operations + core.skills/<target-skill>/SKILL.md.name frontmatter field.scripts/, references/, or assets/.Existing skill pr-weekly-summary (excerpt):
## General Steps
1. Confirm the repository and date window from the user's request.
2. Fetch merged PRs.
3. Group by author and write the digest.Source task evidence: the action trace shows two web_search calls — the first without a date filter (returned hundreds of results), the second narrowed down. The existing skill never warned about query breadth.
Reasonable edits (two stream_edit calls):
## General Steps to:2. Fetch merged PRs filtered by the requested date window — broad queries return too many results.## Common pitfalls:- Searches without an explicit date window return too many results. Pin the window in the first query.Edits not to apply:
## General Steps from numbered list into prose because the source agent worked through it differently.## Output Format section because the source task happened not to need it.It is fine — and sometimes correct — to apply zero edits. If the action trace is perfectly linear, has no errors or re-actions, and the existing skill already covers everything the trace exhibits, the right answer is to call end_turn with a summary like "Reviewed evidence; no improvement justified — existing skill already covers the workflow cleanly." Adding speculative content would harm the skill.
© CraftOS-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/craftbot-skill-improve of CraftOS-dev/CraftBot.
Open the folder on GitHubat commit b50970c
Craftbot Skill Improve next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Craftbot Skill Improve this skillCraftOS-dev/CraftBot | 392 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Sparc Refineruvnet/ruflo | 74k | — | ~1.5k | Automated safety check: Notes | MIT | |
| Refine Promptpenpot/penpot | 61k | — | ~1.6k | Automated safety check: Pass | MPL-2.0 | |
| Agent Refinementruvnet/ruflo | 74k | 2 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Refinewindmill-labs/windmill | 18k | — | ~420 | Automated safety check: Pass | Custom licence | |
| Refiner AutomationComposioHQ/awesome-claude-skills | 77k | 3 repos | ~730 | Automated safety check: Pass | None |
ruvnet/ruflo
Run the SPARC Refinement and Completion phases — review code, improve test coverage, validate against specification, and generate documentation
penpot/penpot
Refine and improve a user-supplied prompt for maximum clarity and effectiveness using prompt-engineering best practices and Penpot project context.
ruvnet/ruflo
Agent skill for refinement - invoke with $agent-refinement. An agent skill from ruvnet/ruflo.
windmill-labs/windmill
End-of-session reflection. An agent skill from windmill-labs/windmill.
ComposioHQ/awesome-claude-skills
Automate Refiner tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.
sickn33/agentic-awesome-skills
Iteratively improve a Claude Code skill using the skill-reviewer agent until it meets quality standards.
CraftOS-dev/CraftBot
Captures learnings, errors, and corrections to enable continuous improvement.
CraftOS-dev/CraftBot
Fetch and display BBC News stories from various sections and regions via RSS feeds.
CraftOS-dev/CraftBot
Read, search, and manage Outlook emails and calendar via Microsoft Graph API.
CraftOS-dev/CraftBot
Generate/edit images with Nano Banana Pro (Gemini 3 Pro Image).
CraftOS-dev/CraftBot
Context retrieval layer for AI agents across users' applications.
CraftOS-dev/CraftBot
Manage and configure Telegram bots for OpenClaw. An agent skill from CraftOS-dev/CraftBot.
Refine an existing CraftBot skill using evidence from one completed task that used it. Craftbot Skill Improve is an agent skill from CraftOS-dev/CraftBot. Refine an existing CraftBot skill using evidence from one completed task that used it.
Run `npx skills add CraftOS-dev/CraftBot --skill craftbot-skill-improve -a claude-code`. Or copy the skill folder (skills/craftbot-skill-improve in CraftOS-dev/CraftBot) into .claude/skills/craftbot-skill-improve in your project. Claude Code loads it when a task matches its description.
Run `npx skills add CraftOS-dev/CraftBot --skill craftbot-skill-improve -a codex`. Or copy the skill folder (skills/craftbot-skill-improve in CraftOS-dev/CraftBot) into .agents/skills/craftbot-skill-improve in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add CraftOS-dev/CraftBot --skill craftbot-skill-improve -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/craftbot-skill-improve, .gemini/skills/craftbot-skill-improve, .github/skills/craftbot-skill-improve and .opencode/skills/craftbot-skill-improve in your project.
SKILL.md names no scripts, command-line tools or credentials: Craftbot Skill Improve is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Craftbot Skill Improve is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Craftbot Skill Improve: Sparc Refine (ruvnet/ruflo, 74k stars), Refine Prompt (penpot/penpot, 61k stars), Agent Refinement (ruvnet/ruflo, 74k stars) and Refine (windmill-labs/windmill, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
CraftOS-dev (a GitHub user) maintains it in CraftOS-dev/CraftBot, which has 392 GitHub stars. The repository holds 89 skills in this directory. The repository was last updated on October 7, 2026.
Source: CraftOS-dev/CraftBot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.