simplify-skill

Installation
SKILL.md

Simplify Skill

Refactor an existing larch skill for stronger adherence to the principles in ${CLAUDE_PLUGIN_ROOT}/skills/shared/skill-design-principles.md and to reduce SKILL.md token footprint. Pure delegator: validates the target, builds a deterministic feature description, and hands off to /im (= /implement --merge) for design, implementation, review, version bump, PR, and auto-merge.

Example: /simplify-skill implement refactors skills/implement/SKILL.md plus every in-scope .md file under skills/implement/ (see Step 2 for the exact enumeration rule — it does NOT follow MANDATORY — READ pointers or Skill-tool invocations).

NEVER

  1. NEVER descend into sub-skills invoked via the Skill tool. Why: sub-skills are independent refactor targets with their own harnesses and PR histories — pulling them into one refactor produces a PR too large to review and creates cross-skill coupling. Out of scope by construction: the helper script enumerates only *.md files physically under the target skill directory (excluding scripts/ and tests/). Sub-skills live in sibling directories (skills/OTHER/), so they never appear in the find output regardless of what the target's SKILL.md cites. Cross-skill citations into skills/shared/ are also out of scope — shared/ refactors have cross-skill blast radius and must be done separately.
  2. NEVER run /simplify-skill on a skill with no SKILL.md. Why: the resolver probes the plugin tree (${CLAUDE_PLUGIN_ROOT}/skills/), the in-plugin-repo skills/ layout (for working inside larch itself), and the consumer-repo .claude/skills/ layout — and fails closed when none of them contains the target. A missing SKILL.md means there is nothing to refactor.
  3. NEVER introduce feature changes during the refactor. Why: behavior-preserving is the contract; a feature change disguised as a refactor violates reviewer expectations and destabilizes the target skill's CI footprint. The feature description pinned for /implement names this explicitly.
  4. NEVER inline the feature description inside the SKILL.md body. Why: Mechanical rule B — shell logic (and the enumeration + feature-prose assembly) lives in a .sh. Keeps this SKILL.md scannable; avoids copy-paste drift with /alias and /create-skill.
  5. NEVER target a skill name that is actually a plugin-namespaced form (e.g., larch:implement). Why: the colon is not a valid directory character in the resolver's probed paths; the resolver rejects it. Pass the bare skill name only.

Step 1 — Parse Arguments

Parse flags from the start of $ARGUMENTS before the first positional token.

  • --run-id <ID>: Optional run identifier; when set, used as the run ID for this invocation instead of the auto-generated one. Default: empty (auto-generate).
Installs
1
GitHub Stars
4
First Seen
May 13, 2026