Agent skill

Craftbot Skill Improve

by CraftOS-dev in CraftOS-dev/CraftBot

Refine an existing CraftBot skill using evidence from one completed task that used it.

MITAuto-check passed

Install Craftbot Skill Improve

skills CLI
$ npx skills add CraftOS-dev/CraftBot --skill craftbot-skill-improve -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install CraftOS-dev/CraftBot craftbot-skill-improve --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
craftbot-skill-improve
GitHub stars
392
Token cost
~3.6k tokens
SKILL.md length
1,939 words
Files
1
Skills in repo
89
Repo updated
First seen
Licence
MIT

At a glance

Refine an existing CraftBot skill using evidence from one completed task that used it.

  • Works in 2 steps: Targeted edits to exactly one file: the… → One presentation message to the user via…
  • SKILL.md covers What you receive, What you produce, Improvement constraints — what… and How to think about improvements, plus 11 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

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.

Example prompts

  • “Improve Skill”
  • “/craftbot-skill-improve”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Targeted edits to exactly one file: the path given by Target file: in your task instruction (an absolute path under the project's skills/…
  2. One presentation message to the user via send_message, immediately after the edits and immediately before end_turn. See Presentation…

What it can do on your machine

Read from SKILL.md and the folder at commit b50970c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~103
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from CraftOS-dev/CraftBot at commit b50970c, republished under its MIT licence (© CraftOS-dev). 1,939 words, ~3,637 tokens.

Download SKILL.mdSave it as .claude/skills/craftbot-skill-improve/SKILL.md (or your agent's skills folder).
name
craftbot-skill-improve
description
Refine an existing CraftBot skill using evidence from one completed task that used it. Read the per-task SKILL_SOURCE 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.
user-invocable
false
action-sets
file_operations, core

CraftBot Skill Improver

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.

What you receive

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: ensures stream_edit modifies 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.

What you produce

Two artefacts, in order:

  1. Targeted edits to exactly one file: the path given by 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/.
  2. One presentation message to the user via 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.

Improvement constraints — what makes this different from creation

These four rules are the heart of improve mode. Read them before drafting.

  1. 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.

  2. Optimise for accuracy AND token efficiency. A change is justified if and only if it does one of:

    • Prevents a class of mistake the source task hit (and that the existing skill did not warn about), OR
    • Shortens the skill without removing meaning (kill filler, redundant restatements, dead bullets). Why: both quality and prompt-cost matter. Skills are loaded into context every time they trigger.
  3. 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.

  4. 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.

How to think about improvements

These come straight from Anthropic's skill-improver guidance and apply here verbatim.

  • Generalise from the feedback. The skill will be invoked many more times than just this one task. If a fix only works for the source task's specific scenario, it's overfitting. Prefer changes that handle a class of cases, not the literal symptoms you saw.
  • Keep the prompt lean. Read the action trace, not just the final outputs. If the existing skill told the agent to do something that the trace shows was wasted effort, removing that instruction is a valid improvement.
  • Explain the why. When you add a rule, add a *Why:* … line right after it. When you sharpen an existing rule, preserve any existing *Why:* line — those are gold.
  • Look for repeated work. If the action trace shows the agent independently wrote the same helper logic the existing skill could have bundled, mention it in the skill body so a human author knows to bundle it later. Do not attempt to create scripts/ files yourself — that's outside this workflow's scope.

CraftBot frontmatter — what you can and cannot change

CraftBot skills have four frontmatter fields:

FieldAllowed change in improve mode
nameNever change. The directory name and the agent's task instruction depend on it.
descriptionEdit 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-invocableAlmost never change. Flip only if you have hard evidence the current value is wrong.
action-setsAdd 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.

Anatomy reminder

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 workflow

Bundled 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.

Workflow

Use update_todos at the start to track these. Mark each completed before moving on.

  1. Read the SOURCE. read_file on the path from your task instruction. Note the action trace, errors, summary, and the verbatim existing SKILL.md.
  2. Re-read the live target. 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.
  3. Diff in your head. Two questions:
    • What did the source task do that the existing skill does not document (and should)?
    • What did the source task do that the existing skill says to do but evidence shows is wrong / extra?
  4. Plan a small edit list. Each entry is one of: add a pitfall, trim a redundant step, sharpen wording for accuracy, shrink wording for tokens. Aim for 1–4 edits. If you find yourself listing 10, you are redesigning — pick the highest-leverage few and stop.
  5. Apply edits. One stream_edit per item in the list. Re-read the file between edits if line offsets have shifted significantly.
  6. Send the presentation message via send_message. See Presentation message below.
  7. end_turn with a one-line summary of what changed.
Show full SKILL.md (834 more words)Show less

Mistake-scanning — what to surface as new pitfalls

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:

  • Two consecutive same-action calls with different parameters → wrong mental model first time. Add a pitfall describing the right first-pass parameters.
  • Output that shows the agent went the wrong direction → add a pitfall describing the direction to take.
  • Mid-workflow context-file reads → suggest front-loading via a step in ## General Steps instead of a pitfall.
  • Search/query that returned too many or wrong results → add a pitfall about query specificity.

Ignore (generic) signals:

  • File-not-found, path issues, permissions, OS quirks, network timeouts, rate limits, JSON parse errors. Same exclusions as in create mode.

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.

Token-efficiency heuristics

When trimming, prefer to delete:

  • Redundant restatement of the same rule in two sections.
  • Filler phrases ("It is important to note that…", "As mentioned above…", "Please ensure that you…").
  • Examples that demonstrate the same case as another example.
  • ALL-CAPS imperatives whose content is already covered by an imperative sentence elsewhere.

When trimming, do not delete:

  • The frontmatter or any of its required fields.
  • The Definition of Done section (or whatever named section serves that role).
  • Real pitfalls that warn about a class of mistake.
  • *Why:* … reasoning lines — those are how future agents handle edge cases the rule didn't anticipate.

Definition of Done (for this workflow itself)

You are done when all of these are true:

  1. skills/<target-skill>/SKILL.md has been modified, or you have decided no edit is justified and the presentation message says so.
  2. The frontmatter still parses as valid YAML and name is unchanged.
  3. The skill's body still covers what it did before — you didn't remove a load-bearing section.
  4. Net line-count change is within roughly ±25%. Net negative is fine and often better.
  5. No specific values from the source task have leaked into the skill (no concrete dates, names, IDs, URLs, paths, file contents).
  6. You have sent the presentation message via send_message (see below).
  7. You have called 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").

Presentation message — required, exactly once

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:

  • Reference the skill by name in backticks or bold.
  • Summarise edits at the behaviour level ("now warns about over-broad searches"), not the line level ("inserted line at offset 47").
  • Do NOT mention the source task by name or include any specific values from it.
  • Keep it brief and confirmatory.
  • The handler has already posted "Improving skill <name>…" in chat, so do not duplicate that or send any other chat message during the workflow.

Allowed Actions

read_file, stream_edit, send_message, update_todos, end_turn.

create_file / write_file are forbidden in this workflow — see Improvement constraints above.

Forbidden

  • More than one 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.
  • Writing or modifying any file outside skills/<target-skill>/SKILL.md.
  • Renaming the skill directory or the name frontmatter field.
  • Deleting bundled resources in scripts/, references/, or assets/.

Example: a worked diff

Existing skill pr-weekly-summary (excerpt):

markdown
## 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):

  1. Sharpen step 2 of ## General Steps to:
    2. Fetch merged PRs filtered by the requested date window — broad queries return too many results.
  2. Append to (or create) ## Common pitfalls:
    - Searches without an explicit date window return too many results. Pin the window in the first query.

Edits not to apply:

  • Inserting the specific repository name from the source task.
  • Inserting the specific date range used in the source task.
  • Inserting an "expected results count" hint based on the source task's count.
  • Restructuring ## General Steps from numbered list into prose because the source agent worked through it differently.
  • Deleting the ## Output Format section because the source task happened not to need it.

When to make no edits at all

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

Files

Just SKILL.md in skills/craftbot-skill-improve of CraftOS-dev/CraftBot.

Open the folder on GitHubat commit b50970c

Compare with similar skills

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.

Craftbot Skill Improve compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Craftbot Skill Improve this skillCraftOS-dev/CraftBot392—~3.6kAutomated safety check: PassMIT
Sparc Refineruvnet/ruflo74k—~1.5kAutomated safety check: NotesMIT
Refine Promptpenpot/penpot61k—~1.6kAutomated safety check: PassMPL-2.0
Agent Refinementruvnet/ruflo74k2 repos~3.5kAutomated safety check: PassMIT
Refinewindmill-labs/windmill18k—~420Automated safety check: PassCustom licence
Refiner AutomationComposioHQ/awesome-claude-skills77k3 repos~730Automated safety check: PassNone

Similar skills

  • Sparc Refine

    ruvnet/ruflo

    Run the SPARC Refinement and Completion phases — review code, improve test coverage, validate against specification, and generate documentation

    74k GitHub stars~1.5k tokensUpdated today
    Testing & QAAuto-check: notes
  • Refine Prompt

    penpot/penpot

    Refine and improve a user-supplied prompt for maximum clarity and effectiveness using prompt-engineering best practices and Penpot project context.

    61k GitHub stars~1.6k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Agent Refinement

    ruvnet/ruflo

    Agent skill for refinement - invoke with $agent-refinement. An agent skill from ruvnet/ruflo.

    74k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check passed
  • Refine

    windmill-labs/windmill

    End-of-session reflection. An agent skill from windmill-labs/windmill.

    18k GitHub stars~420 tokensUpdated today
    Auto-check passed
  • Refiner Automation

    ComposioHQ/awesome-claude-skills

    Automate Refiner tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.

    77k GitHub starsUsed in 3 repos~730 tokens
    Productivity & AutomationAuto-check passed
  • Skill Improver

    sickn33/agentic-awesome-skills

    Iteratively improve a Claude Code skill using the skill-reviewer agent until it meets quality standards.

    47k GitHub starsUsed in 2 repos~1.5k tokens
    Agent WorkflowsAuto-check passed

More from CraftOS-dev/CraftBot

All 89 skills in this repo
  • Self Improvement

    CraftOS-dev/CraftBot

    Captures learnings, errors, and corrections to enable continuous improvement.

    392 GitHub starsUsed in 5 repos~4.9k tokens
    Auto-check passed
  • Bbc News

    CraftOS-dev/CraftBot

    Fetch and display BBC News stories from various sections and regions via RSS feeds.

    392 GitHub starsUsed in 2 repos~555 tokens
    Auto-check passed
  • Outlook

    CraftOS-dev/CraftBot

    Read, search, and manage Outlook emails and calendar via Microsoft Graph API.

    392 GitHub starsUsed in 2 repos~1.8k tokens
    Auto-check passed
  • Nano Banana Pro

    CraftOS-dev/CraftBot

    Generate/edit images with Nano Banana Pro (Gemini 3 Pro Image).

    392 GitHub starsUsed in 6 repos~1.4k tokens
    Auto-check passed
  • Airweave

    CraftOS-dev/CraftBot

    Context retrieval layer for AI agents across users' applications.

    392 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Telegram Bot Manager

    CraftOS-dev/CraftBot

    Manage and configure Telegram bots for OpenClaw. An agent skill from CraftOS-dev/CraftBot.

    392 GitHub stars~836 tokensUpdated today
    Auto-check passed

Questions about Craftbot Skill Improve

What does Craftbot Skill Improve do?

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.

How do I install Craftbot Skill Improve in Claude Code?

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.

How do I install Craftbot Skill Improve in Codex?

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.

Can I use Craftbot Skill Improve in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Craftbot Skill Improve need to run?

SKILL.md names no scripts, command-line tools or credentials: Craftbot Skill Improve is instructions for the agent only.

Does Craftbot Skill Improve access the network?

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.

Is Craftbot Skill Improve safe to install?

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.

What licence does Craftbot Skill Improve use?

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.

How many tokens does Craftbot Skill Improve use?

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.

What are the alternatives to Craftbot Skill Improve?

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.

Who maintains Craftbot Skill Improve?

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.