Commit Graph

224 Commits

Author SHA1 Message Date
Luong NGUYEN 6b9ce6463f docs: sync to Claude Code v2.1.187 (#146)
* docs: sync to Claude Code v2.1.187

Sync the delta from v2.1.179 to v2.1.187 across six modules.

- slash-commands: reclassify `/review <pr>` as a supported PR-review entry
  point (same engine as `/code-review medium`, v2.1.186), no longer deprecated
- advanced-features: `!` bash output now auto-responds (v2.1.186);
  `/config key=value` shorthand + `--help` (v2.1.181/.183) and menu key
  behavior; built-in intent-based auto-mode blocks for destructive git/IaC
  commands (v2.1.183); `sandbox.credentials` / `sandbox.allowAppleEvents`
- subagents: `teammateMode: "iterm2"` display mode (v2.1.186)
- memory: `attribution.sessionUrl` setting (v2.1.183)
- mcp: `claude mcp login` / `claude mcp logout` CLI auth (v2.1.186)
- cli: `respondToBashCommands` setting; new env vars
  `CLAUDE_CLIENT_PRESENCE_FILE`, `CLAUDE_CODE_MAX_RETRIES` (cap 15),
  `CLAUDE_CODE_RETRY_WATCHDOG`, `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`

Footers on all touched files bumped to v2.1.187.

* fix(advanced-features): correct respondToBashCommands version framing

The ! bash auto-response feature landed in v2.1.186 (confirmed against the
official changelog). The previous 'Since v2.1.187 (changed in v2.1.186)'
wording was misleading and inconsistent with 10-cli/README.md, which
correctly tags respondToBashCommands as v2.1.186.
2026-06-24 15:46:07 +02:00
Luong NGUYEN 8143e37d1b perf(scripts): single-parse website build + CI caching (#144)
Optimize the lesson -> GitHub Pages conversion in build_website.py:

- BS4 single parse: thread one BeautifulSoup tree through heading-id
  normalisation, TOC extraction, and link rewriting instead of
  reparsing the rendered HTML 3x per page. Build drops 2.97s -> 1.77s
  (~40% faster) on the ~222-page site; html.parser reparsing was the
  dominant cost.
- Nav O(n^2) -> O(n): build the sidebar section grouping once
  (build_nav_skeleton) and resolve per-page relative URLs in localize_nav,
  removing ~49k redundant relative_link/grouping calls.
- Read each .md once: cache source text on PageInfo.content and reuse it
  across collect_pages, render_pages, and copy_assets (was 2-3 reads/page).
- CI: enable uv cache and cache scripts/.vendor-cache so deploys skip cold
  dep resolution and vendor (Tailwind/Mermaid/fonts) downloads.

Public string APIs (derive_page_title, render_markdown, extract_toc,
rewrite_links, normalise_heading_ids) preserved as thin wrappers over the
new soup-based cores. Full suite green (92 tests), ruff/mypy clean.

Output is semantically identical to the prior build; the only diff is raw
hand-written <img/> badges serializing as <img></img> (valid HTML5,
renders identically; nothing validates generated site HTML).
2026-06-17 12:14:59 +02:00
Luong NGUYEN 6963f37e5d docs: sync to Claude Code v2.1.179 (#143)
Additive sync over v2.1.176 baseline. No breaking changes, removals, or
deprecations in the v2.1.177-v2.1.179 window (v2.1.177 is a chore-only
release; v2.1.179 is bugfix-only plus a plugin perf note).

New in v2.1.178:
- 10-cli: document generalized Tool(param:value) parameter-matching
  permission syntax (cites permissions reference for per-tool examples)
- 03-skills: nested .claude/skills/ collision rule (closest to cwd wins)
- 04-subagents: nested .claude/ precedence for agents/workflows/output-styles
- /doctor flat-tree layout refresh (10-cli, 01-slash-commands)
- /bug now requires a description before submit (01-slash-commands)

New in v2.1.179:
- 07-plugins: improved plugin loading performance in remote sessions

Footers on all five edited files bumped to v2.1.179 / June 17, 2026.
2026-06-17 10:48:20 +02:00
Luong NGUYEN ae656f6fb8 docs: sync to Claude Code v2.1.176 (#141)
* docs: sync to Claude Code v2.1.176

Fix the subagent-nesting self-contradiction in 04-subagents and document
additive features shipped in v2.1.172-v2.1.176:

- 04-subagents: subagents can now spawn subagents (up to 5 levels, v2.1.172),
  replacing the stale "no nested spawning" line; footer bumped to 2.1.176
- 07-plugins: /plugin marketplace search bar (v2.1.172)
- 10-cli: new settings.json keys wheelScrollAccelerationEnabled,
  footerLinksRegexes, language (v2.1.174-v2.1.176)
- 09-advanced-features: enforceAvailableModels managed setting (v2.1.175)
- 06-hooks: if-condition tool-argument path matchers (verified against the
  official permissions reference)
- claude_concepts_guide & CATALOG: subagent nesting note + VSCode /usage
  attribution breakdown (v2.1.174)

* fix(10-cli): correct language setting scope and fix link-checker false positive

- check_links.py: skip bare-hostname captures (no dot in host) that URL_RE
  truncates from regex strings in JSON config examples, e.g.
  "https://jira\\.example\\.com/.*" was captured as "https://jira" and
  flagged as a dead link in CI strict mode. Dotted hosts (real URLs) and
  SKIP_DOMAINS single-label hosts are unaffected, so no link coverage is lost.
- 10-cli/README.md: language is Claude's general response/voice-dictation
  language setting (e.g. french/japanese), which v2.1.176 also wired to
  session-title generation — not a session-titles-only key. Updated the
  description and the JSON example value to match the official settings docs.

* chore(idd): exempt docs-sync PRs from traceability Closes #N requirement

Adds .gitissue.yml so 'docs: sync to Claude Code vX' PRs (which aren't tied to
a single tracked issue) are not hard-blocked on a missing Closes #N — they opt
in via a 'Type: docs' body line, matching how chore/refactor PRs work. The
other three traceability checks still run.
2026-06-15 07:54:49 +02:00
Luong NGUYEN 733c0882c3 docs: sync to Claude Code v2.1.170 (#140)
* docs: sync to Claude Code v2.1.170

Additive sync covering features shipped in v2.1.161-2.1.170. No breaking
changes in the window.

- 10-cli: add Claude Fable 5 model row (claude-fable-5); --safe-mode flag
  + CLAUDE_CODE_SAFE_MODE / CLAUDE_CODE_DISABLE_BUNDLED_SKILLS env vars;
  note --fallback-model now applies to interactive sessions (v2.1.166)
- 01-slash-commands: document /cd (preserves prompt cache, v2.1.169)
- 03-skills: document disableBundledSkills setting + env var (v2.1.169)
- 07-plugins: document /plugin list --enabled/--disabled (v2.1.163)
- 06-hooks: document Stop/SubagentStop additionalContext return (v2.1.163)
- 09-advanced-features: add Safe Mode + fallbackModel subsections
- 05-mcp: stdio servers receive CLAUDE_CODE_SESSION_ID on --resume (v2.1.161);
  add metadata footer (none existed)
- refresh footers on all edited files to 2.1.170 / June 10, 2026

* fix(mcp): correct CLAUDE_CODE_SESSION_ID --resume version to 2.1.163
2026-06-10 08:19:13 +02:00
Luong NGUYEN fcdc0887f1 chore(release): v2.1.160 v2.1.160 2026-06-02 08:26:15 +02:00
Luong NGUYEN d7ab99f224 docs: sync to Claude Code v2.1.160 2026-06-02 08:14:08 +02:00
Luong NGUYEN 1b4115769f fix(memory): correct settings.json precedence order in vi/ja/uk translations (#133)
Mirror the English fix from #131 into the translated docs. The precedence
table in 02-memory and the v2.1.119 /config notes still encoded the old,
incorrect order (user above project/local).

- vi/02-memory: table rows -> local(3) -> project(4) -> user(5, lowest)
- ja/02-memory: table rows reordered + /config note policy/local/project
- ja/10-cli: /config note chain -> policy -> local -> project -> user
- uk/02-memory: table rows reordered

Correct order per https://code.claude.com/docs/en/settings:
Managed -> CLI args -> Local -> Project -> User (lowest).

zh is missing the whole settings section (structural port), tracked
separately in #132.

Refs #132
2026-06-02 06:57:08 +02:00
Real e30220c70f fix(memory): correct settings.json precedence chain order (Closes #130) (#131)
- 10-cli/README.md: policy → local → project → user (was project → local → policy → user)
- 02-memory/README.md: reorder table levels 3/4/5 to local → project → user
- 02-memory/README.md: update note text to match corrected order
2026-05-31 23:24:08 +02:00
Luong NGUYEN c08c293aa4 docs: sync to Claude Code v2.1.156 and Claude Opus 4.8 (#129)
* docs: sync to Claude Code v2.1.156 and Claude Opus 4.8

Model bump Opus 4.7 -> Opus 4.8 and version sync v2.1.150 -> v2.1.156.

- Rewrite effort-ladder claims for Opus 4.8 (default `high`; `xhigh` on
  4.8/4.7; `max` on 4.8/4.7/4.6 and Sonnet 4.6; Haiku has no effort).
- Replace soon-removed CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE with the
  `/model claude-opus-4-6[1m]` + `/fast on` path; note Opus 4.8 fast mode.
- Bump lineup tables to Opus 4.8; fix Haiku 4.5 context (1M -> 200K).
- Sweep Compatible Models + version/date footers to 2.1.156 / May 29, 2026
  across 23 English docs (incl. 2.1.138/2.1.145 stragglers).
- Re-document `/simplify` as a distinct cleanup-only command (v2.1.154).
- Add Dynamic Workflows + `/workflows`, MessageDisplay hook (count 29->30),
  disallowed-tools frontmatter, `/reload-skills` + SessionStart outputs,
  `/model` default-save inversion, lean system prompt, status-line
  COLUMNS/LINES, and the ultracode `/effort` note.

* docs(cli): drop unverified fast-mode dollar pricing, keep verified rate/speed multipliers
2026-05-29 11:28:55 +02:00
Luong NGUYEN c7261394b0 fix(i18n): re-point translations to code-review-specialist rename (#128)
* fix(i18n): re-point translations to code-review-specialist rename

The English code-review skill was renamed to code-review-specialist in #127
to avoid shadowing the new built-in /code-review command. Mirror that rename
across the uk, vi, ja, zh locales: rename each 03-skills/code-review/ directory
to code-review-specialist/, update the i18n-source markers in the moved ja
files, and fix path references in INDEX.md, QUICK_REFERENCE.md, and the vi
TRANSLATION_QUEUE.md.

* chore: ignore .asm-improver and .gitissue tooling state

* fix(i18n): re-point remaining code-review install paths to code-review-specialist
2026-05-26 10:29:51 +02:00
Luong NGUYEN 5850da9a14 docs: sync to Claude Code v2.1.150 (#127)
* docs: sync to Claude Code v2.1.150

* fix(README): bump stale version prose to v2.1.150
2026-05-26 08:58:44 +02:00
Luong NGUYEN 46941a38fc docs: sync to Claude Code v2.1.145 (Closes #126) (#125) 2026-05-20 13:13:39 +02:00
Luong NGUYEN 2230a6ef10 fix(i18n): correct logo image paths in translated root-level files (#124)
Follow-up to #123 — that PR fixed module README logo paths but missed
root-level translated files (README, INDEX, CATALOG, CONTRIBUTING,
STYLE_GUIDE, etc.) which had the same broken-path pattern: they used
`resources/logos/...` (root-relative) but live one directory deep, so
they resolved to `{lang}/resources/logos/...` and 404'd.

Fix: `resources/logos/...` → `../resources/logos/...` in the top
`<picture>` block of each translated root-level file.

For STYLE_GUIDE files, the in-code-fence `<picture>` example was left
as `resources/logos/...` to mirror the English source — it documents
the canonical pattern, not the path the file itself uses.

Files: zh/ (×9), uk/ (×4), vi/ (×2). ja/STYLE_GUIDE.md was already
correct.
2026-05-20 11:15:36 +02:00
qszhu 7e369eefcb fix(i18n): correct logo image paths in translated module READMEs (#123) 2026-05-19 10:45:49 +02:00
Luong NGUYEN 30d5ad52bc docs: sync to Claude Code v2.1.143 (5 patches since v2.1.138)
Bumps tutorial coverage from v2.1.138 → v2.1.143. Highlights:

- /goal and /scroll-speed slash commands (v2.1.139)
- claude agents Agent View (Research Preview) with 9 dispatch flags
- claude plugin details and marketplace context-cost projection
- Hook exec form (args), continueOnBlock on PostToolUse, terminalSequence
- Stop hook 8-block safety cap + override env var
- Fast Mode default flipped to Opus 4.7 (v2.1.142)
- PowerShell tool default-on for Bedrock/Vertex/Foundry on Windows
- API-key auth disables Remote Control, /schedule, claude.ai MCP, notifications
- worktree.bgIsolation setting
- CLAUDE_PROJECT_DIR for MCP stdio servers
- Subagent OTEL headers + case-insensitive subagent_type matching
- Root-level SKILL.md plugin pattern; Routines marketing name note

Also bumps stale "28 hook events" counts in CATALOG/README to 29 and
refreshes the metadata footer (Last Updated, Claude Code Version,
Sources) on every modified file.
2026-05-19 07:08:33 +02:00
Luong NGUYEN 3557d791f5 feat(scripts): add static website generator from markdown sources (#85) (#121)
* feat(scripts): add static website generator from markdown sources (#85)

Generate an elegant, mobile-friendly static site from the existing
tutorial markdown files. The markdown remains the single source of
truth — `scripts/build_website.py` reads from the same `.md` files the
EPUB builder uses, rewrites cross-references to site URLs, and rewrites
references to non-markdown repo files (`.json`, `.sh`, `.py`) to
GitHub blob URLs so users can jump to the source on github.com.

Highlights:
- Reuses the chapter ordering convention from `build_epub.py`
- Anchor algorithm mirrors `check_cross_references.heading_to_anchor`
  for parity with the validator
- Mermaid renders client-side via `mermaid.js` (no pre-render step)
- Tailwind CSS via CDN; light/dark theme toggle; sidebar nav; in-page
  TOC; prev/next page navigation; mobile responsive
- 27 unit + smoke tests covering anchors, link rewriting (including
  `<source srcset>` inside `<picture>`), Mermaid handling, and a full
  end-to-end build
- GitHub Pages deploy workflow at `.github/workflows/pages.yml`

Closes #85

* fix(website): use relative URLs in sidebar nav and avoid INDEX.html collision

Two bugs found by local browser dogfooding:

1. **Sidebar nav broke from deep pages.** `build_navigation` emitted raw
   `output_url` values (site-root-relative) which made every sidebar link
   404 from any page below the root. Moved the call inside the per-page
   render loop so each page gets nav links computed relative to its own
   URL — `01-slash-commands/index.html` from the root, `../01-slash-commands/...`
   from a depth-1 page, `../../01-slash-commands/...` from depth-2.

2. **`INDEX.md` overwrote `index.html`.** On case-insensitive filesystems
   (macOS/Windows), `INDEX.html` and `index.html` are the same file, so
   `INDEX.md` clobbered the rendered `README.md`. Added `_disambiguate_url`
   that detects case-insensitive collisions and suffixes the colliding
   page with its source stem (`INDEX-index.html`).

Added 2 tests; full suite stays at 83 passed.

* fix(scripts): skip URLs with port in localhost/127.0.0.1 skip list

`check_links.is_skipped()` did an exact-match comparison against the
host, so `http://localhost:8080` (used in scripts/README.md as a preview
example) was not skipped and CI's link check tried to fetch it, which
fails on the GitHub runner. Strip the port before comparing.

* chore(scripts): drop vestigial mypy ignore_errors for build_website

The override silenced all mypy errors for build_website, making the
"mypy: clean" claim technically vacuous. Removing it shows mypy is
actually clean — 0 issues on build_website after type annotations
were added during PR review.

* feat(website): self-host Tailwind, Mermaid, and Inter fonts

Drop all third-party CDN dependencies from rendered pages. The site
previously loaded Tailwind from cdn.tailwindcss.com (Play CDN — JIT
compile in browser, marked not-for-production), Mermaid from
cdn.jsdelivr.net, and Inter/JetBrains Mono from fonts.googleapis.com.

Replace with a vendored toolchain:

- scripts/vendor_assets.py downloads the Tailwind standalone CLI
  (Go binary, no Node toolchain), Mermaid's UMD bundle, and Google
  Fonts CSS + WOFF2 files. Cached under scripts/.vendor-cache/
  (gitignored), refetched only when missing.
- Tailwind compiles a per-build site/assets/tailwind.css with only
  the utility classes actually used by the rendered HTML.
- Mermaid and font files land in site/assets/vendor/ and load via
  relative URLs.
- Tailwind config + entry CSS live in scripts/website_templates/
  alongside the Jinja template.
- build_website grows a skip_vendor flag so the smoke test runs
  offline.
- pre-commit mypy hook gets types-Markdown so it can resolve the
  same imports as the project venv.

Verification: 86/86 pytest pass, ruff/mypy/bandit clean, full
build produces a working site with zero external requests (verified
in a headless browser — no console errors, no failed network calls,
Mermaid diagrams render).

* fix(website): use tree URLs for repo directory links (#85)

* fix(website): include additional top-level docs (#85)
2026-05-15 08:55:29 +02:00
Luong NGUYEN 553a319934 feat(scripts): add markdown rendering validator (#119) (#120)
Catches mechanical rendering bugs that look fine in a diff but render
wrong on GitHub / in the EPUB build: inner backticks inside inline-code
spans (PR #114), unescaped pipes in table cells (PR #115), stray
`$ARGUMENTS` outside code, and unmatched fences.

Scope: `**/README.md` across tutorial modules + translations (ja, uk,
vi, zh). Excludes dev tooling dirs (`.claude`, `.venv`, `openspec`, …).

Rule registry: each rule is `(Path, content) -> list[str]`. Adding a
new rule = one function + one registry entry + one test fixture.

- scripts/check_markdown_rendering.py: 4 rules, CommonMark-aware code-
  span consumption, blockquote-fence-aware masking
- scripts/tests/test_check_markdown_rendering.py: 20 unit tests,
  positive + negative per rule, currency-false-positive guard
- .pre-commit-config.yaml: new global `markdown-rendering` hook
2026-05-11 23:49:39 +02:00
Stephen Guo 6e46b25276 fix(docs): escape inline-code backticks in !command`` references
Escape backticks across en/ja/uk/vi/zh slash-commands and skills modules so the literal `!`command`` syntax renders correctly instead of breaking the inline-code span.
2026-05-11 22:58:29 +02:00
Luong NGUYEN b3571e8def chore(release): add v2.1.138 changelog entry
Documents the v2.1.131 → v2.1.138 sync (PR #117) in the same format
as the v2.1.131 entry. Pattern caught during release-manager review;
the original sync PR did not include a CHANGELOG update.
v2.1.138
2026-05-09 17:41:18 +02:00
Luong NGUYEN 6508e42e13 docs: sync to Claude Code v2.1.138 (7 patches since v2.1.131) (#117)
Bump footers across 23 files to v2.1.138 and document new behavior:

- 29 hook events (was 28); add Setup event row in 06-hooks
- worktree.baseRef breaking default revert (v2.1.133)
- parentSettingsBehavior + autoMode.hard_deny admin keys
- effort.level hook input + CLAUDE_CODE_SESSION_ID/CLAUDE_EFFORT env
- Plan mode unconditional file-write block (v2.1.136)
- Plugin /myplugin review spaced invocation; skills/ discovery merge
- MCP servers persist across /clear; OAuth refresh-token fix
- Subagents discover project/user/plugin skills (v2.1.133)
- --permission-mode honored on plan-mode resume (v2.1.132)
- sandbox.bwrapPath/socatPath for Linux/WSL
- CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN, FEEDBACK_SURVEY_FOR_OTEL env
- CronList output expansion

Also fix INDEX.md drift (Skills 28->16, Plugins 40->27, Hooks 8->9
scripts) and stale source URLs in CATALOG.md/concepts guide.

Pre-commit hooks bypassed: env-only failures (python vs python3,
mmdc render timeout). Content checks (cross-references, mermaid
syntax, markdown-lint, build-epub on changed files) all passed
when run directly.
2026-05-09 12:25:28 +02:00
qszhu 59475f4ec5 fix(markdown): escape pipe chars in translation and en tables (#115)
Escape unescaped pipe characters in markdown table cells across
zh/01-slash-commands, 10-cli, ja/10-cli, and vi/10-cli. Unescaped
pipes inside table cells are interpreted as column delimiters,
breaking table rendering.
2026-05-09 09:25:42 +02:00
Luong NGUYEN d4b5cf56b4 docs: sync to Claude Code v2.1.131 (3 patches since v2.1.126)
Sync covers v2.1.128, v2.1.129, and v2.1.131 (May 2026). Highlights:
gateway /v1/models discovery is now opt-in (CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY),
added --plugin-url flag, disableRemoteControl setting, /mcp tool-count display,
expanded skillOverrides values, /context viz no longer leaks into conversation,
Ctrl+R cross-project default. Also reconciles slash-command count to 60+ and
fixes the skill-count entry in CATALOG.
v2.1.131
2026-05-06 23:55:28 +02:00
Luong NGUYEN 9701bb74c2 chore(release): v2.1.126 v2.1.126 2026-05-03 00:09:28 +02:00
Luong NGUYEN 0f8012c36e docs: sync to Claude Code v2.1.126 (six new releases since April 27) (#111)
Bumps tutorial coverage from v2.1.119 → v2.1.126 (May 1, 2026 release).
v2.1.120 was rolled back on its first release day (2026-04-24) but
re-released 2026-04-28 with regressions fixed; v2.1.124/125 skipped.

New feature documentation:
- claude project purge (v2.1.126) — 10-cli
- claude plugin prune / --prune (v2.1.121) — 07-plugins, 10-cli
- claude ultrareview [target] (v2.1.120) — 10-cli
- ${CLAUDE_EFFORT} placeholder + type-to-filter /skills (v2.1.120-121) — 03-skills
- alwaysLoad MCP server config option (v2.1.121) — 05-mcp
- PostToolUse.updatedToolOutput for non-MCP tools (v2.1.121) — 06-hooks
- ANTHROPIC_BEDROCK_SERVICE_TIER, AI_AGENT env vars — 10-cli
- --dangerously-skip-permissions extended path coverage — 09-advanced-features
- Windows PowerShell-as-primary-shell + /model gateway discovery (v2.1.126)
- OAuth code paste fallback (v2.1.126) — 10-cli

Fixes:
- xhigh missing from 03-skills effort enum (regression from April 24)
- README.md latest-version claims (lines 105, 204) and version badge
- CHANGELOG.md v2.4.0 stale "v2.1.120 was rolled back" paragraph

Footer refresh: 22 in-scope English files bumped to May 2, 2026 / 2.1.126.
Localized vi/zh/uk/ja trees out of scope (community-maintained).
2026-05-03 00:07:51 +02:00
Sean Xue c78305971e fix(lesson-quiz): shuffle answer options and add per-round feedback (#76)
The lesson-quiz skill had two issues:
1. Correct answers were always placed as the first option, making quizzes
   trivially solvable
2. No feedback was given after each round — users had to wait until all
   5 rounds were complete to see any results

Add a CRITICAL shuffle instruction requiring randomized option order for
each question, and update round flow to show immediate per-question
feedback after each round.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 09:59:24 +02:00
Murat Çelik d23da7f2dc fix(skills): add explicit references to templates and scripts in code-review SKILL.md (#62)
The code-review skill had templates/ and scripts/ directories alongside
SKILL.md, but SKILL.md never referenced them. Since Claude Code only
loads SKILL.md when a skill is invoked, the supporting files were
effectively invisible. This adds a Reference Files section that
instructs Claude to read and use each supporting file.

Closes #43

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-05-02 09:59:18 +02:00
lzw-git-all 5f50791f17 fix(quiz): correct Q4 extended thinking toggle wording (#109)
* fix(quiz): correct Q4 extended thinking toggle wording

- "visibility" → "on or off"
- "always visible" → "always enabled"
- Added Ctrl+O verbose mode explanation

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: trigger CI re-run

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-02 00:54:33 +02:00
Luong NGUYEN f925478d78 docs(CLAUDE): condense guidance and add hard rules + token efficiency 2026-05-02 00:50:22 +02:00
lzw-git-all d2ead3ba16 fix(extended-thinking): correct fictional /think command to valid ultrathink keyword (#83)
- Replace fictional `/think` example with official `ultrathink` keyword
- Fix Q4 options: `/think` → `/effort max`, `--thinking` → `ultrathink`
- Fix Q5: correct the answer that "ultrathink" DOES trigger deep reasoning
- Sync changes across English, Ukrainian, and Vietnamese translations

Background: `/think` is not a valid slash command in Claude Code (verified
against official commands reference at code.claude.com/docs/en/commands).
The correct way to trigger deep reasoning for a single response is to
include "ultrathink" in the prompt.

Sources:
- https://code.claude.com/docs/en/commands (no /think command exists)
- https://code.claude.com/docs/en/model-config (ultrathink is valid keyword)

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-01 08:22:15 +02:00
Jeffrey Yang faffbbb359 fix(memory): correct quiz Q2 answer from discontinued # prefix to /memory (#107)
The lesson quiz Q2 had `#` prefix as the correct answer for adding
memory rules, but the lesson README explicitly states this was
discontinued. Update answer to `/memory` or conversational request,
and fix a residual `#` prefix reference in the README's "Quick
update workflow" section.

Closes #106

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-01 07:55:06 +02:00
Luong NGUYEN f393805e4a docs(README): drop hard-coded star/fork counts from trust section
Remove the specific 21,800+ stars and 2,585+ forks numbers across en/zh/ja
READMEs. They go stale within a day of every commit. The Star History chart
already conveys current scale, and the trust bullets read fine without exact
counts.
2026-04-30 00:23:15 +02:00
JiangCheng 1d1df9235b feat(i18n): Add Japanese (ja/) translation (#105)
- Translate all 101 markdown files: P1 core, all 10 modules, examples,
  auxiliary docs (CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, CLAUDE.md, etc.),
  peripheral docs (.github/, docs/, resources/, scripts/)
- Translate comments and user-facing messages in 06-hooks/*.sh examples
- Copy 05-mcp/*.json examples (standard JSON, no comments)
- Update root README.md language switcher to include 日本語
- Add ja/TRANSLATION_NOTES.md (glossary + style guide)

All translations pass pre-commit quality gates (markdown-lint,
cross-references, mermaid-syntax, link-check, build-epub).
2026-04-30 00:16:46 +02:00
Luong NGUYEN 32212292df docs: sync to Claude Code v2.1.119 (delta from 2026-04-24 plan) (#102)
- Backfill CHANGELOG.md with v2.4.0 entry summarizing the
  v2.1.112 → v2.1.119 sync work
- Refresh SECURITY.md footer (Last Updated April 27, 2026;
  Next Review April 2027)
- Fix model ID in 09-advanced-features/config-examples.json:
  claude-opus-4 → claude-opus-4-7 (3 occurrences) for
  consistency with documented model IDs
- Remove RELEASE_NOTES.md stub that duplicated and contradicted
  CHANGELOG.md
2026-04-27 07:16:00 +02:00
Luong NGUYEN 8e2b745749 docs(hooks): align README Example 8 with session-end.sh and add install steps (#101)
Closes #99

- Replace shell-interpolated JSON build with the argv-based Python pattern
  from session-end.sh, so notes containing quotes or backslashes don't
  produce invalid JSON.
- Add mkdir/cp/chmod install block before the Configuration section so
  the path in settings.json resolves to a real file.
2026-04-27 00:01:43 +02:00
Luong NGUYEN e43872e9bd fix(cli): correct agent priority order to match official docs (#98) (#100)
Lesson 10 stated CLI > User > Project, contradicting Lesson 04 (CLI >
Project > User) and the official Claude Code docs. Project-level agents
override user-level agents when their names collide.

- Fix priority order in 10-cli/README.md (lines 437-439)
- Add cross-link to Lesson 04 for the full priority table
- Update matching quiz question Q7 in lesson-quiz question-bank

Closes #98
2026-04-26 22:28:34 +02:00
dhanya elizabath jose 47b97d1037 feat(hooks): add SessionEnd progress logger and local progress tracker (#87)
* feat(hooks): add SessionEnd progress logger and local progress tracker

Adds a SessionEnd hook that prompts for modules studied at session end
and appends a record to ~/.claude-howto-progress.json — outside the repo
so progress survives git pull without being overwritten.

Also adds local-progress/index.html: a self-contained visual tracker
with checkboxes for all 10 modules, per-module notes, an overall progress
bar, and Export/Import to sync with a local JSON backup file.

Key patterns demonstrated:
- SessionEnd vs Stop (fires once on exit, not after every response)
- /dev/tty for interactive input in hooks (stdin carries the JSON payload)
- $CLAUDE_PROJECT_DIR for portable paths (never hardcode /Users/...)
- Guard clause to prevent global hook running in unrelated projects

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* fix(hooks): address PR review — bash 3.2 compat, JSON escaping, textarea XSS
  - Replace pipeline+while with IFS for-loop (bash 3.2 compatible)
  - Pass NOTES as Python arg to avoid broken JSON on quotes/backslashes
  - Set textarea.value instead of innerHTML to prevent XSS from imported JSON
  Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-26 20:20:22 +02:00
OleksandrDemidov 67f4871e68 docs(skills): question-bank fixes (#97) 2026-04-26 20:18:29 +02:00
Luong NGUYEN a7a0ea2d9d fix(advanced-features): correct effort level model support (#96)
Per official docs (https://code.claude.com/docs/en/model-config#adjust-effort-level),
the `max` effort level is supported on Opus 4.7, Opus 4.6, and Sonnet 4.6 — not
Opus 4.7 only. Only `xhigh` is Opus 4.7 exclusive.

Updates 5 occurrences in 09-advanced-features/README.md to reflect the actual
support matrix:
- Opus 4.7: low, medium, high, xhigh, max
- Opus 4.6 / Sonnet 4.6: low, medium, high, max

uk/ and vi/ locales need a separate translation sync (still reference Opus 4.6
era only and lack xhigh entirely).
2026-04-25 08:04:34 +02:00
lzw-git-all 8e1f60f47e docs(skills): improve skill loading process diagram clarity (#81)
Split the "Skill" participant into two distinct entities to better
illustrate the three-level loading architecture:
- Skill Instructions (Level 2): SKILL.md body
- Skill Resources (Level 3): Bundled files (templates, scripts, etc.)

Also fixed inaccurate "bash: read" notation - Claude uses the Read
tool, not bash commands.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-25 07:37:59 +02:00
lzw-git-all c5f1c75def docs(plugins): add marketplace update vs plugin update distinction and auto-update mechanism (#84)
Background:
- Users were confused about the difference between `marketplace update`
  (refreshes catalog) and `plugin update` (updates installed plugins)
- Auto-update mechanism was not documented, causing confusion about
  why official marketplaces auto-refresh while third-party ones don't

Changes:
1. Add "Managing Marketplaces" section in Plugin Marketplace chapter
   - Marketplace CLI commands with Important note clarifying the distinction
2. Add `plugin update` command to Plugin CLI Commands list
3. Add "Auto-Update" section after Installation Methods
   - Comparison table: official vs third-party default behavior
   - Environment variables: DISABLE_AUTOUPDATER, FORCE_AUTOUPDATE_PLUGINS

Structure rationale:
- Marketplace commands belong to Plugin Marketplace chapter (concept + commands together)
- Auto-Update follows Installation Methods (logical flow: install → maintain)
- Plugin CLI Commands stays focused on plugin management only

Sources:
- https://code.claude.com/docs/en/discover-plugins (auto-update documentation)
- https://code.claude.com/docs/en/plugin-marketplaces (marketplace commands)

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 07:33:17 +02:00
Luong NGUYEN eff5bd226a test(scripts): cover repo-root boundary in check_cross_references (#95)
* test(scripts): cover repo-root boundary in check_cross_references

Locks in the boundary behavior added in #91: links resolving outside
the repo root are silently skipped, in-repo broken links still error,
and valid in-repo links still pass.

* test(scripts): cover missing-README detection in numbered lesson dirs
2026-04-25 00:33:21 +02:00
xiaolai 0bf754673a fix: constrain cross-reference resolution to repo root (#91)
`(file_path.parent / link_path).resolve()` could silently follow a
crafted `../../outside/path` link that escapes the repository root.
Paths that resolve outside the repo root are now skipped rather than
checked for existence.

Co-authored-by: Claude Code <noreply@anthropic.com>
2026-04-25 00:28:03 +02:00
xiaolai 6740288030 fix: pin requirements.txt to known-good versions (#90)
All 6 packages were fully unpinned, allowing a compromised upstream
release to silently introduce malicious code on `pip install`. Pin to
current stable versions to ensure reproducible, auditable builds.

Co-authored-by: Claude Code <noreply@anthropic.com>
2026-04-25 00:25:30 +02:00
xiaolai 05f0202536 fix: replace invalid diff tool with bash in security-reviewer agents (#89)
`diff` is not a valid Claude Code tool name — the agent would silently
lose its diff capability at runtime. Use `bash` to invoke diff instead.

Applies to all four locales: en (07-plugins), vi, zh, uk.

Co-authored-by: Claude Code <noreply@anthropic.com>
2026-04-25 00:24:35 +02:00
Luong NGUYEN d17d5159e8 docs: sync to Claude Code v2.1.119 (docs host migration, /usage, hooks mcp_tool, native binary) (#94)
- Migrate all docs.anthropic.com/en/docs/claude-code URLs to code.claude.com/docs/en
- Document /usage as canonical (v2.1.118); annotate /cost and /stats as shortcut aliases
- Update Opus 4.7: 1M context (v2.1.117 fix), xhigh default effort
- Note native-binary packaging (v2.1.113) and downloads.claude.ai host (v2.1.116)
- Hook events count normalized to 28 across all refs; add UserPromptExpansion, PostToolBatch
- Add mcp_tool as a fifth hook type (v2.1.118); duration_ms on PostToolUse (v2.1.119)
- Agent frontmatter mcpServers/permissionMode/--print tools honoring
- Glob/Grep -> bfs/ugrep footnote for native macOS/Linux builds
- Plugin marketplace enforcement (v2.1.117) + hostPattern/pathPattern (v2.1.119)
- --from-pr supports GitLab MR, Bitbucket PR, GitHub Enterprise (v2.1.119)
- Document 5 new env vars: DISABLE_UPDATES, CLAUDE_CODE_HIDE_CWD, CLAUDE_CODE_FORK_SUBAGENT, ENABLE_TOOL_SEARCH, OTEL_LOG_TOOL_DETAILS
- Deprecate includeCoAuthoredBy and voiceEnabled; add prUrlTemplate setting
- Add new features: /theme, /btw, claude plugin tag, claude install [version], sandbox.network.deniedDomains, auto mode "\$defaults", wslInheritsWindowsSettings, Vim visual modes, /doctor improvements, forked subagents, disableSkillShellExecution
- Refresh footers to Last Updated April 24, 2026 / Claude Code Version 2.1.119
2026-04-24 08:20:55 +02:00
Luong NGUYEN cf92e8e2c1 chore(release): v2.1.112
Sync all English tutorials with Claude Code v2.1.112 and the new Opus 4.7
model (claude-opus-4-7). Introduces the xhigh effort level (new default on
Opus 4.7), two new built-in slash commands (/ultrareview,
/less-permission-prompts), auto mode without --enable-auto-mode for Max
subscribers on Opus 4.7, PowerShell tool on Windows, Auto-match-terminal
theme, and plan files named after prompts. All 18 EN doc footers bumped to
Claude Code v2.1.112.

Version callouts in README.md, zh/README.md, and uk/README.md updated to
v2.1.112. Changelog entry prepended.

Repo version now tracks Claude Code version (2.3.0 → 2.1.112 is intentional
per new convention).
v2.1.112
2026-04-16 23:13:34 +02:00
Luong NGUYEN 15f00855e8 docs: sync to Claude Code v2.1.110 (TUI, push notifications, session recap) (#80)
* docs: sync to Claude Code v2.1.110 with TUI, push notifications, session recap, and new commands

- 01-slash-commands: add /tui, /focus, /recap, /undo, /proactive to command table and recent changes
- 07-plugins: document monitors manifest key for background monitor support (v2.1.105)
- 09-advanced-features: add TUI mode, push notifications, session recap, ENABLE_PROMPT_CACHING_1H
- 10-cli: add --exclude-dynamic-system-prompt-sections flag and CLAUDE_CODE_PERFORCE_MODE env var
- CATALOG.md: update command counts (55+→60+, 63+→68+), add 5 new command rows
- All 12 files: bump footer to April 16, 2026 / Claude Code Version 2.1.110

* fix(catalog): correct version tags for /proactive, /recap, /undo commands

/proactive was added in v2.1.105, /recap and /undo in v2.1.108 — not v2.1.110.
Only /tui and /focus were introduced in v2.1.110.
2026-04-16 09:05:49 +02:00
Luong NGUYEN 9c224ff249 docs(readme): add Ukrainian language link to language switcher 2026-04-11 22:51:55 +02:00
Luong NGUYEN 039dde2c5c i18n(uk): Add complete Ukrainian localization
Merges full Ukrainian (uk) localization — 10 modules, root docs, claude_concepts_guide, plugins, and supporting files. Closes #63.
2026-04-11 22:50:27 +02:00