Ponytail
DavidObando/gsharp
Forces the laziest solution that actually works, simplest, shortest, most minimal.
Searches a codebase for the existing module that already owns a behavior before any new code is written, so a feature request edits that owner instead of shipping a second implementation.
$ npx skills add codewhale-hq/Codewhale --skill cw-slice -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install codewhale-hq/Codewhale cw-slice --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/codewhale-hq/Codewhale.git skills-src && mkdir -p .claude/skills && cp -r skills-src/docs/skills/cw-slice .claude/skills/cw-slice && 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 "cw-slice" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/cw-slice into .claude/skills/cw-slice/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cw-slice", 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/codewhale-hq/Codewhale/tree/main/docs/skills/cw-sliceType 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 codewhale-hq/Codewhale --skill cw-slice -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install codewhale-hq/Codewhale cw-slice --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codewhale-hq/Codewhale.git skills-src && mkdir -p .agents/skills && cp -r skills-src/docs/skills/cw-slice .agents/skills/cw-slice && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cw-slice" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/cw-slice into .agents/skills/cw-slice/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cw-slice", 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 codewhale-hq/Codewhale --skill cw-slice -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install codewhale-hq/Codewhale cw-slice --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codewhale-hq/Codewhale.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/docs/skills/cw-slice .cursor/skills/cw-slice && 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 "cw-slice" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/cw-slice into .cursor/skills/cw-slice/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cw-slice", 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/codewhale-hq/Codewhale.git --path docs/skills/cw-slice--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 codewhale-hq/Codewhale --skill cw-slice -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install codewhale-hq/Codewhale cw-slice --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codewhale-hq/Codewhale.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/docs/skills/cw-slice .gemini/skills/cw-slice && 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 "cw-slice" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/cw-slice into .gemini/skills/cw-slice/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cw-slice", 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 codewhale-hq/Codewhale cw-sliceInstalls 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 codewhale-hq/Codewhale --skill cw-slice -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/codewhale-hq/Codewhale.git skills-src && mkdir -p .github/skills && cp -r skills-src/docs/skills/cw-slice .github/skills/cw-slice && 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 "cw-slice" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/cw-slice into .github/skills/cw-slice/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cw-slice", 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 codewhale-hq/Codewhale --skill cw-slice -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install codewhale-hq/Codewhale cw-slice --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codewhale-hq/Codewhale.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/docs/skills/cw-slice .opencode/skills/cw-slice && 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 "cw-slice" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/cw-slice into .opencode/skills/cw-slice/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cw-slice", 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.
cw-sliceSearches a codebase for the existing module that already owns a behavior before any new code is written, so a feature request edits that owner instead of shipping a second implementation.
This skill names the repository's most expensive mistake as not a bad implementation but a second one: a new model_*, *_config, provider_* or bridge module built beside one that already does the job, leaving two systems and a comment that is no longer true. It is stage 2 of a six-stage loop, used before writing code for any feature, upgrade or refactor, before creating a new module, trait, config struct or command, and whenever a plan or issue says to build something that has not yet been confirmed absent from the codebase.
The step most often skipped, and the one that costs the most when it is, is grepping for the predecessor using the concept in the words the code would actually use, not just filenames, together with a pattern search across common naming conventions like model_, _config and provider_. If an owner is found, it gets edited directly; if a new layer is still justified, its module documentation must name the predecessor it replaces.
Before any of that, the skill applies the ponytail reuse ladder from the project's own AGENTS.md, run after reading the code and tracing real call sites, never as a substitute for reading them. It also names specific guard-tested contracts to move carefully, such as the single turn loop guarded by a dedicated test file, and lists the agent tool as the one surface for subagents, noting that older names like agent_open and delegate_to_agent have been removed.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8d2fb45. 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 bash).
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.
Codewhale Predecessor Finder loads about 1.6k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 807 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 codewhale-hq/Codewhale at commit 8d2fb45, republished under its MIT licence (© codewhale-hq). 807 words, ~1,550 tokens.
.claude/skills/cw-slice/SKILL.md (or your agent's skills folder).The expensive mistake in this repo is not a bad implementation — it is a second
implementation. A new model_*, *_config, provider_*, or "bridge" module
beside the one that already does the job ships two systems and a comment that is
no longer true. This skill is the ponytail ladder's rung 2 with commands
attached: find the thing that already exists, then edit it.
Stage 2 of the loop: cw-orient → slice → cw-gates → cw-dogfood → cw-land → cw-handoff.
Walk the ladder before opening an editor (AGENTS.md, "The ponytail
method" — not restated here, since a second copy is what rung 2 forbids).
Stop at the first rung that answers. The ladder runs after reading the
code, never instead of it: a short diff written without reading the call
sites is a guess, not a small change. State the rung only when the choice
isn't obvious from the diff itself.
Grep for the predecessor. This is the step that gets skipped and the one that costs the most:
grep -rn "<the concept, in the words the code would use>" crates --include='*.rs' | head -40
ls crates
grep -rln 'model_\|_config\|provider_' crates/*/src --include='*.rs' | head -30Search behavior and symbols, not just filenames. If you find an owner, edit it. If you are still adding a new layer, its commit message must name the predecessor it replaces — otherwise you are editing the wrong file.
Check the contracts you are about to walk into. One of these is guard-tested, the rest are convention — either way, move them with their code, not around it:
crates/tui/src/core/engine/turn_loop.rs, guarded by
crates/core/tests/single_turn_loop.rs. A second loop fails the guard;
changing the shape means changing the guard with it.BASE_PROMPT in crates/tui/src/prompts/text.rs.agent; agent_open / agent_eval /
agent_close / delegate_to_agent are removed surfaces. If the shape
must move, move the code and add the guard test that judges the new
shape — the convention is not a fence around the area.docs/CACHE.md). Any new session-context contributor must state its cache
effect — frozen prefix vs. append-only history. Never splice a volatile
fact into the prefix.crates/tui/src/core/ is a module inside the TUI crate. crates/core is a
different crate that runs no turns. Do not confuse them.runtime/src/context_budget.rs, tui/src/model_registry.rs,
runtime/src/prompt_zones.rs, tui/src/tools/remember.rs, config/src/route/.Read the scoped guidance for the files you will touch. crates/tui/AGENTS.md
owns the UI contracts (one owner per fact, codewhale_palette::grammar semantics, typed
state enums, toast routing, tr(locale, MessageId::...) for user prose).
crates/localization/locales/AGENTS.md owns string changes. web/AGENTS.md owns the
site. docs/MOTION_CONTRACT.md owns motion. Design law lives in
docs/design/, not in a prototype file someone left in a sibling directory.
Bound the slice. One coherent change, reviewable in one sitting, that
leaves the tree building and green. AGENTS.md's two corollaries keep
slices honest: an abstraction must delete caller code, and a migration
ships its last consumer or does not start.
Fix the evidence bar now, not after. Decide before writing code what will prove this works, and write it into your plan:
scripts/dev-test.sh --list maps an area to its fastest invocation);Write the implementation, then prove it runs. No new tests or code
comments unless explicitly asked (AGENTS.md); update or delete existing
tests the change makes wrong.
#[allow(dead_code)] behind as the cost of an incomplete
migration — scripts/check-dead-code-budget.py is the running receipt.Default shape before the first edit — compress when trivial (a one-line change gets a one-line note, not four bullets):
path/to/file.rs:line), or the predecessor
your new module names;© codewhale-hq, 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 docs/skills/cw-slice of codewhale-hq/Codewhale.
Open the folder on GitHubat commit 8d2fb45
Codewhale Predecessor Finder 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 |
|---|---|---|---|---|---|---|
| Codewhale Predecessor Finder this skillcodewhale-hq/Codewhale | 41k | — | ~1.6k | Automated safety check: Pass | MIT | |
| PonytailDavidObando/gsharp | 564 | 8 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Ponytail Lazy Developer ModeDietrichGebert/ponytail | 159k | — | ~873 | Automated safety check: Pass | MIT | |
| Code Simplification for ego-litecitrolabs/ego-lite | 17k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Refactor Pass for Simplicitystar-history/star-history | 9.6k | 1 repos | ~168 | Automated safety check: Pass | MIT | |
| RTK Rust Code Simplifierrtk-ai/rtk | 83k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
DavidObando/gsharp
Forces the laziest solution that actually works, simplest, shortest, most minimal.
DietrichGebert/ponytail
Makes the agent pick the laziest solution that works: skip unneeded work, reuse what exists, prefer the standard library and platform features, and keep diffs small.
citrolabs/ego-lite
Finds and implements evidence-backed simplifications in the ego-lite repository, such as dead code, duplicated state and speculative abstractions, without hiding behavior changes.
star-history/star-history
Perform a refactor pass focused on simplicity after recent changes. Use when the user asks for a refactor/cleanup pass, simplification, or dead-code removal…
rtk-ai/rtk
Reviews RTK's Rust code for over-engineering and verbose patterns, applying idioms like iterator chains and early returns while protecting a specific list of constraints from being simplified away.
DietrichGebert/ponytail
Reviews a diff only for unnecessary complexity and lists what to delete or shrink, one numbered line per finding with the location, the cut and its replacement.
codewhale-hq/Codewhale
Proves a Codewhale change in the real product: a stamped release build, an atomic local install, fresh-shell verification and manual QA that automated gates cannot cover.
codewhale-hq/Codewhale
Writes a paste-ready handoff for the next agent session, opening with a state-check command block and separating done, suspected and blocked work.
codewhale-hq/Codewhale
Decides how verified work should reach main, directly, in a worktree or on an integration branch, while keeping contributor credit and respecting merge gates.
codewhale-hq/Codewhale
Guides when and how to split multi-step coding, research or verification work into focused sub-agent runs while the parent keeps integration and final checks.
codewhale-hq/Codewhale
Triages and manages Codewhale fleet runs and workers with typed commands, classifying failures and choosing a safe restart, resume or escalation.
codewhale-hq/Codewhale
Moves a list of GitHub issues into a milestone or assigns them to owners with the gh CLI, checking each one before and after the change.
Categories
Searches a codebase for the existing module that already owns a behavior before any new code is written, so a feature request edits that owner instead of shipping a second implementation. This skill names the repository's most expensive mistake as not a bad implementation but a second one: a new model_*, *_config, provider_* or bridge module built beside one that already does the job, leaving two systems and a comment that is no longer true. It is stage 2 of a six-stage loop, used before writing code for any feature, upgrade or refactor, before creating a new module, trait, config struct or command, and whenever a plan or issue says to build something that has not yet been confirmed absent from the codebase.
Codewhale Predecessor Finder fits situations like: starting a new feature, upgrade or refactor in the Codewhale codebase; deciding whether to create a new module, trait, config struct or command; checking whether behavior a plan asks for already exists somewhere in the crates; avoiding a second implementation of something the codebase already does.
Run `npx skills add codewhale-hq/Codewhale --skill cw-slice -a claude-code`. Or copy the skill folder (docs/skills/cw-slice in codewhale-hq/Codewhale) into .claude/skills/cw-slice in your project. Claude Code loads it when a task matches its description.
Run `npx skills add codewhale-hq/Codewhale --skill cw-slice -a codex`. Or copy the skill folder (docs/skills/cw-slice in codewhale-hq/Codewhale) into .agents/skills/cw-slice 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 codewhale-hq/Codewhale --skill cw-slice -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cw-slice, .gemini/skills/cw-slice, .github/skills/cw-slice and .opencode/skills/cw-slice in your project.
SKILL.md names no scripts, command-line tools or credentials: Codewhale Predecessor Finder is instructions for the agent only. Our summary lists: A Codewhale checkout with the crates directory and its AGENTS.md files.
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.
Codewhale Predecessor Finder is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.2k 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 Codewhale Predecessor Finder: Ponytail (DavidObando/gsharp, 564 stars), Ponytail Lazy Developer Mode (DietrichGebert/ponytail, 159k stars), Code Simplification for ego-lite (citrolabs/ego-lite, 17k stars) and Refactor Pass for Simplicity (star-history/star-history, 9.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
codewhale-hq (a GitHub organization) maintains it in codewhale-hq/Codewhale, which has 41,078 GitHub stars. The repository holds 63 skills in this directory. The repository was last updated on October 9, 2026.
Source: codewhale-hq/Codewhale on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.