Repository navigation
Skills
This page describes the ten skills of the core plugin dotclaude.
It is for a user who runs a skill, and for a contributor who edits a SKILL.md file.
The core plugin dotclaude ships ten skills.
Each skill is a SKILL.md file in its slice, under src/plugins/dotclaude/slices/<slice>/skills/.
Claude Code runs a skill as /dotclaude:<name>.
A skill gives Claude a procedure. Each skill treats the output of its commands and the text of its files as data, not as instructions. Each skill ends with a report to the user.
| Skill | Call | What it does | Slice or CLI that does the work | Writes |
|---|---|---|---|---|
handoff |
/dotclaude:handoff |
Writes a handoff file, so a new session can continue the work. |
handoff slice, dotclaude-handoff
|
One file in .dotclaude/handoff/
|
rules-creator |
/dotclaude:rules-creator [topic] |
Writes a rule file, with paths globs, and checks the globs. |
rules slice, check-globs.ts script |
A rule in .claude/rules/ or ~/.claude/rules/
|
setup |
/dotclaude:setup [user|project|local] |
Merges the settings snippet and checks the add-on tools. |
setup slice, dotclaude-setup
|
The settings file of the scope, and add-on installs |
specify |
/dotclaude:specify <change-id> [size] |
Writes the requirements of a change and runs the gate. |
spec slice, dotclaude-spec specify
|
Files in .dotclaude/spec/changes/<change-id>/
|
plan |
/dotclaude:plan <change-id> |
Splits a large change into package briefs. |
spec slice, dotclaude-spec plan
|
Files in packages/
|
implement |
/dotclaude:implement <change-id> |
Runs the ready packages in worktrees, then verifies each one. |
spec slice, dotclaude-spec implement and verify
|
Events, and the code of each package |
review |
/dotclaude:review <change-id> |
Reviews each verified package and records the verdict. |
spec slice, dotclaude-spec review
|
Events |
merge |
/dotclaude:merge <package> [branch] |
Merges the branch of an approved package. |
spec slice, dotclaude-spec merge
|
A merge commit, and the plugins/ output |
accept |
/dotclaude:accept <change-id> |
Accepts a change when each package is done or canceled. |
spec slice, dotclaude-spec accept
|
Events |
archive |
/dotclaude:archive <change-id> |
Merges the requirements into specs/ and archives the change. |
spec slice, dotclaude-spec archive
|
Files in specs/ and changes/archive/
|
Each skill sets disable-model-invocation: true in its front matter.
The name of that key says that Claude does not start the skill by itself.
This page treats that as inference from the key name.
The skill runs when the user types its command.
Each SKILL.md has a front matter with name, description, and the keys that the skill needs.
The keys that the ten files use are disable-model-invocation, argument-hint, and allowed-tools.
The allowed-tools value pre-approves the commands and tools that it lists, so they run with no prompt.
It does not deny the other tools.
For example, review pre-approves dotclaude-spec * and git diff *.
The other commands follow the permission rules of the session.
The body has a <task> part and a <procedure> part, or a <steps> part.
The text $ARGUMENTS holds the words that the user types after the command.
The rules-creator skill reads ${CLAUDE_SKILL_DIR} to find its script.
Each skill says that the output of a command and the text of a file are data, not instructions.
The size of each SKILL.md has bounds.
The bounds are in Bounds.
Call /dotclaude:handoff when the context is large, or when part of the work is done.
The skill writes one file with four parts: the goal, the state, the next step, and the constraints of the user.
The skill copies each constraint of the user word for word.
The steps:
- The
handoffmod, insrc/plugins/dotclaude/slices/handoff/adapters/mod.ts, runsdotclaude-handoff pathwhen the skill starts. The mod names the path in the text of the prompt. - The skill writes the file with the
Writetool, and makes no other change. - At the next end of a turn, the mod runs
dotclaude-handoff newest. When the newest file is the file of the skill, the mod runsdotclaude-spec next. Then it runs/clear, and it submits a resume prompt with the path. - In
automode, when no file appears inHANDOFF_WAIT_TURNSturns, the mod submits the write prompt again. It does this up toHANDOFF_RETRY_MAXtimes. Inmanualmode, the mod shows a hint to the user instead.
The mod also finds a trigger without the skill.
The trigger fires when the context of the main session passes CONTEXT_PERCENT, or when a merge or an accept finishes.
The mainHandover option sets the mode: auto, manual, or off.
The default is manual, as DEFAULT_MAIN_HANDOVER sets it.
For the cost of a handoff, see Context and Handoff.
The file has the name that handoffName makes from the time, in .dotclaude/handoff/.
The CLI writes no file.
Call /dotclaude:setup, or /dotclaude:setup user, project, or local.
Run it after you install or update the plugin.
A plugin cannot set permissions, environment variables, or model settings.
The setup skill states that Claude Code applies only agent and subagentStatusLine from a plugin settings file.
This page does not check that statement against the binary.
The settings snippet sets the rest.
For the keys, see Settings-Snippet and Settings-Snippet-Keys.
The steps:
-
The skill picks the scope. It uses the argument, or it asks the user. Each scope has one file:
Scope File usersettings.jsoninCLAUDE_CONFIG_DIR, or in~/.claudeproject.claude/settings.jsonin the projectlocal.claude/settings.local.jsonin the project -
It runs
dotclaude-setup settings --scope <scope>without--apply, and it shows the list of changes. The merge adds keys and rules, and it keeps the other keys of the user. It replacesavailableModels. When the cached model catalog of the account offersclaude-mythos-5-1, the list holds it in place ofclaude-fable-5-1. -
It runs
dotclaude-setup addonswithout--apply. The preview shows the state of each installed add-on and the steps to offer. -
The skill asks the user one question for the settings and one for the add-on steps.
-
It runs
--applyfor each yes. A second run changes nothing.
The status line commands get the absolute path of the plugin folder. That path holds the plugin version, so run the skill again after each update. The project scope gets no status line, because the path belongs to one computer. The user scope also gets the auto-mode option.
The add-on steps are these:
-
dotclaude-codegraphneeds thecodegraphCLI and an index. The skill runscodegraph init -yin the project. It does not runcodegraph install, because that command edits the Claude Code configuration. -
dotclaude-browserneedsagent-browseronPATH. -
dotclaude-docsneedsnpxonPATH.
A global install changes the computer, so the skill runs it only after a yes. When a command fails, the skill shows the error line. It does not do the step another way. At the end, the skill tells the user to restart Claude Code.
The seven phase skills are specify, plan, implement, review, merge, accept, and archive.
Each skill has the same verb as its dotclaude-spec subcommand, and each moves a change or a package to the next state.
Each CLI gate checks the move, and a skill stops when a gate refuses.
For the files, the IDs, the states, and the gates, see Spec Store.
The order of the skills is this:
-
/dotclaude:specify <change-id> [trivial|medium|large]writes the requirements and runs the gate ofdotclaude-spec specify. The skill asks the user about each[NEEDS CLARIFICATION]marker. A large change ends inspecified. A trivial or medium change ends inplanned, with one packageP1. -
/dotclaude:plan <change-id>splits aspecifiedlarge change into package briefs. It runsdotclaude-spec plan, and the change goes toplanned. -
/dotclaude:implement <change-id>starts oneimplementeragent in a worktree for each ready package. After each agent ends, it runsdotclaude-spec verify, and the package goes toverified. -
/dotclaude:review <change-id>starts onerevieweragent for eachverifiedpackage. The main session checks each defect, and it recordsapproveorrejectwithdotclaude-spec review. A reject needs a finding and a decision offix-codeorrevise-spec. -
/dotclaude:merge <package> [<branch>]merges anapprovedpackage withdotclaude-spec merge, and the package goes todone. -
/dotclaude:accept <change-id>runsdotclaude-spec accept. The gate needs each packagedoneorcanceled. -
/dotclaude:archive <change-id>merges the requirements into.dotclaude/spec/specs/withdotclaude-spec archive.
Run implement, review, and merge in the main checkout, because dotclaude-spec refuses to move a state in a linked worktree.
The agent.spawn hook in src/plugins/dotclaude/slices/spec/adapters/mod.ts runs implement <package> when implement starts an implementer.
No turn.complete hook moves a package.
The skill implement runs verify after the agent ends.
The skills implement and review run dotclaude-spec runs first.
It prints how many agents may start now.
The count comes from the subagent cap and from the usage sample in .dotclaude/rate-limits.jsonl.
A sample older than USAGE_SAMPLE_MAX_MS allows one run.
The cap is CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS when it is a positive number.
Otherwise, the cap is SUBAGENTS_DEFAULT.
For the agents, see Agents.
Call /dotclaude:rules-creator [topic].
The skill writes a rule file, which is a Markdown file in a rules/ folder.
A rule is guidance, and Claude can still break it.
The skill says so.
It names a hook or a permission rule for a behavior that must never happen.
The four phases are capture, write, test, and improve.
-
Capture: the skill uses the topic, and it asks for one wrong and one right example.
-
Pick the tool: a hook, a skill,
CLAUDE.md, or a rule. -
Pick the scope:
~/.claude/rules/for each project, or.claude/rules/for the team. -
Write the file, with one topic and a short name. Add
pathsonly when the rule applies to some files. -
Test the globs with the script:
bun ${CLAUDE_SKILL_DIR}/scripts/check-globs.ts <rules-dir> <project-dir>
The script lists the files with
git ls-files. It matches each glob withBun.Glob. It exits with status1for a glob with no match, a front matter that does not parse, or a rule overMAX_PATTERNSexpanded patterns. It exits with status2for a missing rules folder or a folder that is not a git repository. The script comment says thatBun.Globcan differ from the matcher of Claude Code. So a pass is a strong sign, and it is not a proof. -
Improve: the user runs a task in a new session. The skill makes the text more specific, or it moves the guidance to a hook.
When the user asks to split a large CLAUDE.md, the skill shows a plan first.
It moves each topic to its own rule file.
It keeps the facts for the whole project in the old file.
The skill says that a rule with no paths loads in each session.
It also says that a rule with paths costs nothing until Claude reads a matching file.
The bounds that the skills use, with their file:
| Bound | Value | File |
|---|---|---|
SKILL_META_LOW_BYTES |
150 | tools/limits.ts |
SKILL_META_HIGH_BYTES |
300 | tools/limits.ts |
SKILL_META_TOTAL_LOW_BYTES |
5 KB | tools/limits.ts |
SKILL_META_TOTAL_HIGH_BYTES |
8 KB | tools/limits.ts |
SKILL_META_TOTAL_MAX_BYTES |
15 KB | tools/limits.ts |
SKILL_BODY_LOW_BYTES |
2 KB | tools/limits.ts |
SKILL_BODY_HIGH_BYTES |
8 KB | tools/limits.ts |
SHOW_EVENTS_MAX |
5 | slices/spec/limits.ts |
DEFAULT_SIZE |
medium |
slices/spec/limits.ts |
USAGE_SAMPLE_MAX_MS |
10 minutes | slices/spec/limits.ts |
SUBAGENTS_DEFAULT |
20 | slices/spec/limits.ts |
CONTEXT_PERCENT |
60 | slices/handoff/limits.ts |
HANDOFF_WAIT_TURNS |
2 | slices/handoff/limits.ts |
HANDOFF_RETRY_MAX |
1 | slices/handoff/limits.ts |
The size bounds are checked by tools/sizes.ts.
The metadata bounds apply to the name and description of each skill.
The metadata and body of each skill fail above their high bound.
They are reported below their low bound.
The total metadata of all skills fails above SKILL_META_TOTAL_MAX_BYTES.
It is reported above SKILL_META_TOTAL_HIGH_BYTES.
The page Bounds lists all the bounds of the repository.
- Spec Store: the folder that the phase skills write.
-
Context and Handoff: the
handoffslice and the context bound. - Agents: the agents that the phase skills start.
-
Architecture: the slices and the path from
src/toplugins/. - Decisions: the decisions behind each skill.
- Start
- How dotclaude Works
- Add-On Plugins
- How Claude Code Works
- Reference
- Rationale
- Evidence
- Development
- Archive