Audit against the 2.1.258-2.1.263 delta and current official docs.
The release delta produced one contradiction: keybindingFlavor was
deprecated to a no-op in v2.1.261, but 10-cli and 09-advanced-features
still documented it as selecting between "classic" and "readline" with
classic as the default. Readline conventions are now unconditional.
Re-reading the enterprise MCP section against the current managed-mcp
docs found it structurally wrong, independent of the delta:
- allowedMcpServers, deniedMcpServers and allowAllClaudeAiMcps were
presented as fields of managed-mcp.json. They are settings keys;
managed-mcp.json holds an mcpServers map in .mcp.json format.
- Linux and Windows deployment paths were per-user (~/.config/ClaudeCode,
%APPDATA%) where the real ones are system paths. An admin deploying to
the documented path got no enforcement.
- The denylist example used serverName "untrusted-*". Name matching is
exact and never expands wildcards, so that pattern blocks nothing.
- Allow/deny entries paired two keys in one object and wrote
serverCommand as a bare string; both forms are invalid.
Mirrored into vi, ja and uk. zh has no enterprise MCP section.
Also removed a claim in 09-advanced-features and 10-cli that the settings
reference does not list modelPricing. It documents it, along with every
other key in that table.
New in this release range: /skill-doctor, /diff fullscreen panel,
/advisor text form and /reload-plugins in headless sessions,
managedMcpServers, --permission-prompts none,
--append-subagent-system-prompt-file, bashOutputMaxChars,
taskOutputMaxChars, and claude plugin validate --json.
Validation: pre-commit run --all-files, 23/23 hooks pass.
Claude-Session: https://claude.ai/code/session_01PAXabzMfDJxom9JPXtkK5o
* docs: sync to Claude Code v2.1.245
Sync the tutorial, its four translations, and both learner-facing skills
against Claude Code v2.1.245 (was anchored at v2.1.235).
The graded material turned out to be staler than the tutorials it grades.
The lesson READMEs already said "31 hook events", "six rewind options" and
"six permission modes"; the quiz and self-assessment still said 25, 5 and 5,
so learners were scored against a wrong answer and then sent to a lesson
that contradicted it. Seven such claims are fixed here.
Two long-standing doc defects were also verified against official docs:
- Hook default timeout was documented as 60 seconds. It is 600 for
command/http/mcp_tool (30 for prompt, 60 for agent), with per-event
overrides. Wrong in five places.
- Skill precedence was documented as enterprise > project > personal. The
official order is enterprise > personal > project. question-bank.md
Lesson 03 Q9 already graded the correct order, so the lesson had been
contradicting its own quiz.
Fixed
- Hook default timeout 60s -> 600s, with per-event overrides
- Skill precedence: project and personal were swapped
- Memory "overrides root CLAUDE.md" -> concatenation model (last holdouts
after the quiz was aligned in #164)
- permissionMode frontmatter omitted `auto` (English + vi/ja/uk); the quiz
was right and the docs were wrong
- Built-in subagent `Bash` no longer exists upstream -> renamed to `claude`
- `/undo` is absent from the official commands reference -> marked deprecated
- `backgroundTasks` settings block was fabricated -> replaced with
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS and the concurrency env var
- Plugin manifest field is `lspServers`, not inline `lsp`
- vi/05-mcp documented `claude mcp add --transport ws`, which upstream
explicitly does not support
- Self-assessment could never reach its own maximum score: rounds cap at
4+4+4+3+4 = 19, not 20
- 13 dangling quiz `Review:` pointers, two of which named another lesson
- Skill description cap: 1024 chars -> 1,536 combined with `when_to_use`
Added
- WebSocket (`ws`) MCP transport, undocumented until now
- Concise output style (v2.1.237), a fifth built-in
- modelPicker, promptCacheTtl, subagentPromptCacheTtl, modelPricing,
keybindingFlavor settings
- ANTHROPIC_DEFAULT_MODEL env var
- Hook `async`, `asyncRewake`, `shell`, `statusMessage`, `retry` keys;
`agent` type marked experimental
- /design canvas, Remote Control out of research preview, notify_when_idle,
plugin manifest fields (workflows, channels, dependencies, outputStyles)
Deferred deliberately: the reserved `synced` skills folder, and a bulk
footer stamp across the translations. zh/ carries none of the P0 claims
(it is abridged upstream of this run), so it has no P0 sub-tasks rather
than fabricated English.
Mermaid validation did not run in this environment (mmdc absent); CI covers it.
* fix(docs): propagate v2.1.245 corrections to CATALOG, translations, and stale enumerations
* fix(docs): propagate built-in subagent rename to uk/vi/zh CATALOG and zh lesson
Internal accuracy pass against v2.1.220 — no missing upstream features, but broken example code, disagreeing counts, and metadata drift.
Functional fixes: pre-commit.sh now exits 2 so it actually blocks; dependency-check.sh reads file_path from stdin JSON instead of $1; database-mcp.json uses ${DATABASE_URL}; broken fences repaired; three command templates had invalid skill names.
Factual corrections: /fork and /subtask unswapped and /subtask added; /fewer-permission-prompts; permissions.defaultMode; dontAsk/auto unreversed; 31 hook events verified name-by-name; subagent depth 3; skill precedence enterprise > project > personal; /output-style removed not deprecated; permissionDecision gained defer.
Follow-up review fixed defects the pass left behind: zh/vi headers claiming 31 events above 25-name lists, a surviving hardcoded DB credential in the MCP README examples, an unbalanced fence swallowing a metadata footer, and non-canonical tool names. All four translated CATALOG summary tables were recounted so their arithmetic holds.
Full detail in CHANGELOG.md under v2.1.220-r2.