Repository navigation
Release 0.26
xsyetopz edited this page Oct 11, 2026
·
1 revision
Released 2026-10-06. Makes the prompts and the session context shorter, and turns the Terms of Use clauses into the dotclaude operating spec.
- Run
/dotclaude:setupafter the update. The settings profile now setspromptCacheTtlto"5m", and setup writes it over the earlier value. The other options, the stored state, the status line, and theCLAUDE.mdblock need no change.
- The clause 18 prompt hook on
SubagentStop. Claude Code sends the transcript with each prompt hook call onStopandSubagentStop, up to half of the context window of the model. In 7 days of sessions, the mean was about 46k tokens, or about $0.046 on Claude Haiku 4.5, for each call. Clause 18 already tells the main agent to compare each "done" in a subagent report with the check output. The prompt hook onStopstays.
- The settings profile sets
promptCacheTtl: 5mfor the main conversation. In 7 days of transcripts, 98.7% of the main-agent calls came 5 minutes or less after the call before them. At API prices, the 5-minute cache would have cost 8.5% less than the 1-hour cache. - The section "Long runs" is now "Runs and subagents", and it has a new routing rule for the main agent. The main agent does a chain of dependent steps itself, and gives long reads, long check runs, and bulk work to worker agents. The main agent does a worker slice itself when its check failed twice. In 7 days of transcripts, tool results in the main context cost about 15% of the main-agent cost, because each later turn reads them again.
- The SessionStart context is about 2.5 KB, and the SubagentStart context is about 1 KB.
Each rule is one line, with a reason only where the rule needs one.
The rules that a hook teaches (Bash writes, line breaks,
AskUserQuestion) are not in the context, because the hook message gives the rule when it fires. The handoff rules move to thehandoffskill, and the session context only points to an open note. The project AI policy rules come with the ask of the policy guard, because Claude does not see an ask reason. Subagents get one section of six rules, with their progress file. The section "Known defects" is now "Checks", and the done-claim rule is now rule 12.1. The line-break note gives the line numbers of each block, and not the sembr text. - The agent prompts are about half as long (66 KB to less than 32 KB), and a test keeps all agent files together at 32,000 bytes or less (
AGENTS_MAX_BYTES). They lose the rules that the SubagentStart context now gives each subagent: defects, checks, the turn budget, denies, and the report start. They also lose examples and repeated points. A new subagent rule tells each subagent to start its report withDoneorNot done. - Rules 10.6 and 12.1 do not offer the Not verified list as an exit. When the check of a part fails, the agent fixes the part and runs the check again. A part goes under Not verified only when its check cannot run.
- Text from outside (AI policy files, CodeGraph index data, and
um kbfield notes) goes to Claude in its own tag, with each<escaped, so that the text cannot close the tag. The Stop prompt hook puts its input in ahook_inputtag first, and asks for only the JSON object. Wrapper tags around one short block are removed. - The
handoffskill is 43% shorter (5.1 KB to 2.9 KB), and it also tells Claude how to read a note. The rules removed in 0.26.0: wait-for-go, no-invented-steps, measure, deny-route, deny-final, lower-cost, no-extras, keep-safety, background, blocker, shared-runs, policy-subagent, the progress rules for the main agent, escalate, fix-own, run-checks, self-check, not-verified, and continue. -
Breaking: the Terms of Use clauses are now the dotclaude operating spec (
wiki/Operating-Spec.md). Each rule has a number, such as 12.1, and an RFC 2119 level, and each hook reason ends with the number of its rule. The text goes to Claude indotclaude_spectags, and not indotclaude_termstags. The working rules lose the<verification>block and the line about LSP, CodeGraph, andgrep. The Jev section loses the line aboutAskUserQuestion, because rule 11.1 says the same thing. - The rule about a deny moves to the start of the spec, which subagents also get. A hook deny is a decision of the user, so the agent does what its reason says, and does not get its result another way. A subagent got past a deny in 0.25.1 by rewording a command.
- The Bash guard deny of a write to a project file tells an agent with no
EditorWrite, such as a read-only subagent, to report the write that it needs. Before, the deny told it only to use tools that it did not have. - The wiki labels the subagent cache figures in
Design.mdwith their measurement, and records that the Stop hook lets one retry through. - The cold-cache note counts the idle time from the last compaction of the main agent, and not only from the last turn. A compaction writes a new cache, so after it the note does not say that the cache expired too early.
- The clause 18 prompt hook blocked correct messages that list a part as not verified, repeat a claim of another agent that they did not check, or report a run whose results they did not read.
It now blocks only when it can quote the words of the done claim.
In a replay of 32 real messages and 5 breaks with the transcript, the system prompt, and the model of Claude Code 2.1.292, false blocks went from 4 of 32 to 2 of 32, and the hook caught 5 of 5 breaks.
Transcripts do not record
background_tasksandsession_crons, so the replay sent them empty. A second replay of one real progress report and one false done claim, each withbackground_tasksempty and with a runningjust check, gave the correct result in 4 of 4 runs. - The clause 18 prompt hook on
Stopblocked a message that only asked the user for approval. The prompt now states rule 12.1 as a stopping condition about the claims of the last message, and not about whether the task is complete. In 10 sandbox runs on Claude Haiku 4.5, the false blocks went from 2 to 0, and 2 of 2 unchecked done claims were still blocked. The block reason tells the agent to run the check and fix the part, and does not offer the Not verified list as an exit. The prompt went from 1,859 to 1,498 characters. - The Bash guard denied a write to a temporary file as a write to a project file.
It now ignores module paths in
import,from, andrequire, and followscdfrom part to part of a command, so thatcd "$TMPDIR/x" && … > out.txtwrites to$TMPDIR.
- Overview
- Quickstart
- Install
- Plugins
- Settings
- Hooks
- Troubleshooting
- Undocumented reads
- Development
- Design
- Decisions
- Changelog
- Other