Repository navigation
Release 0.20
xsyetopz edited this page Oct 13, 2026
·
2 revisions
This page records the notes of the 0.20 release, with its patches up to 0.20.8.
Released 2026-10-04 to 2026-10-05.
This release is a full reset on Claude Code 2.1.289.
It cut runtime JavaScript from 18,935 lines to 2,118 lines.
It adds a new status line, the dotclaude-jev plugin, the Terms of Use, and the CodeGraph augment.
A version in parentheses marks a later patch of this line.
An entry with no version comes from 0.20.0.
0.20.0 keeps the parts that serve a need that Claude Code does not cover.
It removes the rest.
Runtime JavaScript goes from 18,935 lines in 0.19.1 to 2,118 lines.
tests/budget.test.mjs bounds it at 3,000.
Run /dotclaude:setup again after you update.
-
docs/parts.md, a page that lists each part, its event, its bound, and the need that it serves. - The rule that runtime JavaScript (
hooks/,status-line/,skills/,plugins/) stays withinRUNTIME_JS_LINES(3,000) inhooks/lib/_budget.mjs. 0.19.1 had no bound on it. Its runtime JavaScript grew to 18,935 lines. Much of it was a copy of what Claude Code 2.1.287 to 2.1.289 does itself. 0.20.8 removed this bound (see Changed, 0.20.8). - The plugin options
guard_agentsandcompaction_handoff.guard_agentsturns off the spawn rules.compaction_handoffturns off the handoff fork. - A
Stopcheck gate. It sends Claude back once when a turn edited files and no check ran after the last edit. The usage evidence shows that a rule in a prompt does not hold, and a hook does. It finds the check from thejustfile,package.json, orMakefileof the project. - A compaction instruction. The summary says that an unapproved plan or an open question stays open. The default summary text tells Claude to continue without asking. A model then acted on a plan that the user had not approved.
- A handoff fork on compaction.
Before a compaction of the main conversation, a fork writes a handoff note to
.claude/handoffs/. It adds the note to the compacted conversation, because users report that a handoff note beats a compaction. If the fork gives no note in 60 seconds, the compaction runs without it. - Cold-cache notes. A resumed session with an expired prompt cache gets the cost advice. A prompt that comes more than 1 hour after the last turn gets it too. The reason is that 1.6% of the turns caused 80% of the cache writes. Those are the turns after more than 1 hour idle.
- Plan detection from the account in
.claude.json, inhooks/lib/_plan.mjs. The cold-cache note uses a 5 minute cache time on theapiplan. It uses 1 hour on other plans. A new or cleared session on theapiplan gets a plan note.skills/setup/scripts/settings.mjsshows the plan. It takes--plan <id>, and it applies the per-planplansoverrides of the profile. - The
backendoption ofdotclaude-browser, which defaults toagent-browser. The valuecloakbrowserrunsagent-browserwith the CloakBrowser binary through--executable-path. Use it for sites with bot detection.
- A status line with every 0.19 part, in less code.
Each part has one shape: icon, bar, number.
- One bar renderer, one icon set, and one color scale (
USAGE_LEVELS) serve every percentage. - The rows are
core(model, context, cache, limits),place(folder, branch, worktree, PR, loop), anddetail(cache hit ratio and misses, limit pace, cost). - A
⚠blinks for three cases. The first is a handoff due, at context 90% of the compaction point. The second is a cache that expires in two minutes or less. The third is a limit at 90%. -
⚠also marks an effort that the rules do not allow for the model. - A second script shows the model and context of each running agent.
-
/dotclaude:setupwrites two stubs in the config directory. It setsstatusLineandsubagentStatusLineto run them. A status line command gets an empty${CLAUDE_PLUGIN_ROOT}.
- One bar renderer, one icon set, and one color scale (
- Limit resets (0.20.1): the status line shows the limit resets that you can use, as
⟳2 by Oct 12 at 4am. That text gives the count and the earliest expiry.- It reads them from the
cedar_emberblock of the/usagecopy that Claude Code keeps in.claude.json. So it makes no network call. - A grant counts when it is not paused, has resets left, and is in its start to end span. Claude Code and CodexBar count a grant the same way.
- While a usage window is at its limit, the reset part outranks the other parts.
- It reads them from the
- Extra usage (0.20.1): the status line shows the extra usage spend while extra usage is on.
An example is
extra █░░░░ $12.50/$50. With no monthly limit, it showsextra $12.50. It readsextra_usagefrom the same copy.
- The profile sets
cleanupPeriodDaysto 14. It setsenableArtifacttofalse. It setsdisableBundledSkillstotrue. It setsCLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTSto1. -
/dotclaude:setupkeeps the newest 3 backups of each file. It removes the older ones. It lists the memory files to review. It lists the LSP plugins for the language servers onPATH. - The setup integrations reference covers the LSP plugins and the
ctx7CLI for library docs. It has no MCP server. Theweb-researcheragent usesctx7when it is onPATH, because it uses less context than a web search. Whenctx7is rate-limited, the agent checks the limit with one call. Then it usesWebSearchandWebFetchuntil the reset. -
/dotclaude:setupgives the command that adds a Context7 API key to the shell profile. The user runs it outside Claude Code. Setup then checks that the key gives a tier other thananonymous. - The README has a "Save weekly usage" section. The dossier ranks the community claims about usage.
- Each compaction note marks the earlier compaction note of the same session as
superseded. The new note carries its open items. Before, each compaction left one morein-progressnote. - The CodeGraph augment: when a
Grepcall or aBashrgorgrepsearch looks for one symbol name in a project with.codegraph/. The hooks module adds the callers and callees of that symbol to the search result.- Claude ignored rules that told it to run
codegraph. So the graph now comes with the search that Claude already runs. - The design follows the GitNexus hooks.
- Before a lookup, the hook runs
codegraph syncif files changed since the last index. Without the MCP server, the index does not update itself. - It never builds an index.
- The plugin option
codegraphturns it off.
- Claude ignored rules that told it to run
- The minimal-code rules: session start tells Claude to build the minimum, with the idea of Ponytail.
The plugin option
ponytailturns them off. - Usage habits in the working rules: a handoff note and
/clearat a task boundary./btwfor a side question. A lower effort in place of a model change. A model change only after/clear. - Line breaks in the working rules: in Markdown, comments, commits, and PRs, Claude starts each sentence on a new line.
Claude does not break lines at a column.
The rule follows Semantic Line Breaks.
- Claude hard-wrapped prose at about 80 columns. That breaks reflow in editors and terminals, and it makes diffs larger.
- A project style takes precedence.
- Shorter wording of the other rules keeps the file within its 2,000-byte bound.
- Claude Code 2.1.289 has no
CLAUDE_NO_WRAPvariable or--no-word-wrapflag. A plugin cannot change how the terminal wraps output.
- The optional
dotclaude-jevplugin (0.20.4): itssecond-opinionskill asks TypeSafe Jev, a decision model. It asks for a yes or no check, a pick from options, or a rating. Each answer has a probability.- Claude uses it for its own close calls. It still asks the user the questions that only the user can answer.
- It also checks a technical decision of the user. When Jev finds that facts decide it and that it causes defects, Claude tells the user the facts once. Claude asks for a confirmation. The answer of the user is final.
- It needs
TYPESAFE_API_KEY.
- The
dotclaude-jevplugin (0.20.8) adds a session note that sends each decision through thesecond-opinionskill.- The decisions are the close calls of Claude. They are the questions of the user that ask for a decision, a pick, or a rating. They are the technical decisions of the user, and each request for a second opinion.
- Claude asks each question with options through
AskUserQuestion. So the hooks module can add the pick of Jev. - Goals, preferences, and approvals stay with the user.
- The delegation gate and note.
Users report cost blow-ups from subagents.
maxTurnsbounds an agent without it. - The agent budget hooks (
enforce-agent-budget,hand-off-capped-agents, and the report caps). ThemaxTurnsof an agent file does the same job. - The model-switch,
ConfigChange,StopFailure, andTaskCompletedhooks.availableModelsandCLAUDE_CODE_DISABLE_FAST_MODEdo the same job. - The options
model_lock,model_plan,model_allowed, andusage_notes. The other 0.19 options go too, except the guard options. The hooks that they controlled are gone. - Fable 5.1 from
availableModelsand from theAgent(model:fable*)deny rule. The user chose to remove it. A subagent never runs on it. - Nested instructions (
load-nested-instructions). Claude Code 2.1.288 loads rules onWriteandEdit. ABashread of a directory does not load itsCLAUDE.mdyet. - The restore after a compaction, the check for line breaks, and the scratchpad pruning. The 0.20.0 review found no need for them that Claude Code does not cover.
-
warn-instruction-size./doctoraudits the instruction files. - The skills
slices,explain, andpolish./goalcovers a large change. The 0.20.0 review found no need for the other two. - The agent
mechanical-worker.implementerdoes its work. - The output styles
Explanatory,Learning, andProactive. Claude Code has built-in styles of those names. - The
recognize-captchaskill and the CloakBrowser launcher. CloakBrowser keeps most CAPTCHAs away.agent-browser --executable-pathruns its binary. - The AI policy catalog and its update script
scripts/update-ai-policies.mjs.scripts/count-tokens.mjsgoes too. They served features that 0.20.0 removed. Thecontributeskill still reads the policy of the project. - The eval case
t4-slices, because it tests the removedslicesskill. - The 0.19 profile
optional.json, the setup scripts for migration and the managed lock, and the public docs pages for the removed parts.
- Previous: Release 0.19
- Next: Release 0.21
- Changes and fixes: Release 0.20 Changes and Fixes
- Archive: the index of the archived pages.
- Start
- How dotclaude Works
- Add-On Plugins
- How Claude Code Works
- Reference
- Rationale
- Evidence
- Development
- Archive