-
just-bash documented as the other end of the in-process spectrum from agentOS
agentOS runs a real, if hypervisor-less, VM (Rust sidecar plus V8 isolate); just-bash (vercel-labs/just-bash, 3.2.0) runs no VM at all, a bash lexer/parser/interpreter written directly in TypeScript over an in-memory virtual filesystem, with containment...
Technical details
(guide/security/sandbox-isolation.md §5, new TL;DR row, docs/resource-evaluations/just-bash-simulated-shell.md, docs/resource-evaluations/README.md): agentOS runs a real, if hypervisor-less, VM (Rust sidecar plus V8 isolate); just-bash (vercel-labs/just-bash, 3.2.0) runs no VM at all, a bash lexer/parser/interpreter written directly in TypeScript over an in-memory virtual filesystem, with containment resting entirely on JS-level defenses (DefenseInDepthBox, null-prototype objects, per-call resource limits, each mapped to a named vector in the project's own 31.5 KB THREAT_MODEL.md). Scored 4/5: past 3.x on npm with a changeset release pipeline and a public website demo, a stronger maturity signal than agentOS's 0.0.1 preview, same bus-factor-1 risk (Malte Ubl, 322/380 commits, 84.7%) already flagged in the Executor and agentOS evaluations. One concrete gap named directly rather than smoothed over: the repository has no LICENSE file at its root despite the README's Apache-2.0 claim. No §6 Comparison Matrix column added, same call as agentOS, since most of its criteria (Docker-in-Docker, kernel isolation) do not apply to an in-process simulator.
-
A fourth data point added to the file-based memory comparison
Executor's MISTAKES.md/DESIRES.md/LEARNINGS.md run the same plain-file-committed-to-Git pattern as ORF and DiffMem, with one design choice that departs from all three existing examples: the files are gitignored, private working memory rather than shared team...
Technical details
(guide/core/memory-systems.md §3.7): Executor's MISTAKES.md/DESIRES.md/LEARNINGS.md run the same plain-file-committed-to-Git pattern as ORF and DiffMem, with one design choice that departs from all three existing examples: the files are gitignored, private working memory rather than shared team history.
-
A third independent source added to the progressive-disclosure convergence
Gorgias Engineering's "Building a Context Layer From the Ground Up" documents a production SQL-generating agent that rejected a monolithic table-description prompt for a three-tier context layer (per-table when_to_use/how_to_use metadata, hierarchical topic...
Technical details
(guide/core/context-engineering.md §4): Gorgias Engineering's "Building a Context Layer From the Ground Up" documents a production SQL-generating agent that rejected a monolithic table-description prompt for a three-tier context layer (per-table when_to_use/how_to_use metadata, hierarchical topic instructions, skill playbooks), citing progressive disclosure as their single biggest reliability improvement. Cross-referenced against the existing Dev With AI meetup finding on monolithic CLAUDE.md files, since both land on the same architecture from unrelated starting points.
-
A new skill-design pattern: multi-directory skill discovery for cross-CLI repositories
Executor runs .claude/skills/, .agents/skills/, .skills/, and .codex/environments/ side by side rather than consolidating into one directory, read as convergence across CLI conventions (Claude Code, a generic agent convention, a project-shared set, Codex)...
Technical details
(guide/core/skill-design-patterns.md): Executor runs .claude/skills/, .agents/skills/, .skills/, and .codex/environments/ side by side rather than consolidating into one directory, read as convergence across CLI conventions (Claude Code, a generic agent convention, a project-shared set, Codex) rather than disorganization. The pattern entry also notes the README's curated "References" reading list (FumaDB, Effect, OpenCode, OpenClaw, Emdash, Pi) as a related, separate convention worth naming.
-
Two new resource evaluations indexed
Executor (3/5, watch-list, cross-reference only) and agentOS (4/5, integrated). resource_evaluations_count moves from 167 to 169 files on disk, resource_evaluations_indexed from 48 to 50.
Technical details
(docs/resource-evaluations/README.md, machine-readable/reference.yaml): Executor (3/5, watch-list, cross-reference only) and agentOS (4/5, integrated). resource_evaluations_count moves from 167 to 169 files on disk, resource_evaluations_indexed from 48 to 50.
-
A "build a mini agent to understand it" resource added to the learning path, sourced from the canonical English article instead of the French one that prompted the search
Kajan Siva's "Construire un mini Claude Code pas à pas" (French, 9-min read, working code and a companion GitHub repo) scored 2/5, not because it is wrong but because it restates the same loop already documented at Tier 1 confidence in...
Technical details
(guide/roles/learning-with-ai.md § External Resources, docs/resource-evaluations/kajan-siva-mini-claude-code.md, docs/resource-evaluations/README.md): Kajan Siva's "Construire un mini Claude Code pas à pas" (French, 9-min read, working code and a companion GitHub repo) scored 2/5, not because it is wrong but because it restates the same loop already documented at Tier 1 confidence in guide/core/architecture.md §1 "The Master Loop", and because it is French-only against this repo's English-only rule. Thorsten Ball's "How to Build an Agent" (ampcode.com), the most-cited article in the same genre, English, ~300 lines of Go, was added in its place.
-
A third Rippletide-sourced resource evaluated and rejected
a LinkedIn blog post by co-founder Yann Bilien, "The Harness is the Agent, What's Inside?", scored 2/5. Its three diagrams (harness anatomy, capabilities-vs-performance split, test-eval-modify iterate loop) map close to one-to-one onto...
Technical details
(docs/resource-evaluations/084-rippletide-harness-is-the-agent.md, docs/resource-evaluations/README.md): a LinkedIn blog post by co-founder Yann Bilien, "The Harness is the Agent, What's Inside?", scored 2/5. Its three diagrams (harness anatomy, capabilities-vs-performance split, test-eval-modify iterate loop) map close to one-to-one onto guide/core/agent-harness.md's nine components, already sourced to arXiv 2605.18747, Fowler, and Anthropic telemetry, and the article carries zero citations or measured claims of its own. No watch-list entry added: the pattern across all three Rippletide submissions (072 at 2/5, 081 at 3/5, this one at 2/5) trends toward restating known concepts rather than surfacing new, checkable information.
-
/sandbox-unblock, a diagnostic protocol for sessions that believe the sandbox is blocking them
over one day of real work, six of eight reported sandbox blockers turned out to be false, and every one traced to the same handful of method errors. The skill front-loads eight checks so the report that reaches a maintainer is worth acting on: do not infer...
Technical details
(examples/skills/sandbox-unblock/SKILL.md, referenced from guide/security/sandbox-native.md §13, indexed as sandbox_unblock_skill): over one day of real work, six of eight reported sandbox blockers turned out to be false, and every one traced to the same handful of method errors. The skill front-loads eight checks so the report that reaches a maintainer is worth acting on: do not infer Bash restrictions from the read.denyOnly list in the system prompt (those patterns govern the Read tool only); confirm $TMPDIR shows the invocation ran sandboxed; put the cd and the tested command in the same Bash call, because the working directory resets between calls and two independent audits declared a package manager broken after landing in the wrong directory; check the binary exists before blaming policy, since output-compressing wrappers replace clear messages with bare errnos; read the real exit code rather than a pipe's; check whether a PreToolUse rewriter sits between the command and the excludedCommands matcher, which is what made prefixed entries work while unprefixed ones stayed inert; remember that an entry matches the command exactly as written, so git -C /path fetch and bare git fetch both miss git fetch *; and restart the session if the config changed after it opened. Ships a report template that forbids paraphrasing the error, an escalation section naming the two keys that mislead (credentials.envVars in deny mode leaves the variable readable to Bash, and allowUnsandboxedCommands: false does not neutralize excludedCommands), a network section separating an allowlist refusal (hangs 5 to 7 seconds) from a hostname that does not resolve (fails under 30 ms even when a wildcard covers it), and a table of limits with no configuration fix.
-
/sandbox-status referenced four configuration keys that do not exist
the script read .sandbox.autoAllowMode, .sandbox.filesystem.allowedWritePaths, .sandbox.filesystem.deniedReadPaths and .sandbox.network.policy, none of which are real, so every jq lookup fell through to its default and the command printed not set for a fully...
Technical details
(examples/skills/sandbox-status/SKILL.md): the script read .sandbox.autoAllowMode, .sandbox.filesystem.allowedWritePaths, .sandbox.filesystem.deniedReadPaths and .sandbox.network.policy, none of which are real, so every jq lookup fell through to its default and the command printed not set for a fully configured sandbox. A status tool that reports "no restrictions" on a restricted machine is worse than no tool, since it converts a real policy into a clean bill of health. Now reads autoAllowBashIfSandboxed, filesystem.allowWrite, credentials.files[].path and network.strictAllowlist, and additionally surfaces allowUnsandboxedCommands so an audit can see whether the escape hatch is open. Example output updated to match, and both sandbox skills now cross-link.
-
A permissions.deny read rule does not reach a Bash subprocess, and a double dissociation proves it
the rule looks like a denylist and reads like one, so it gets audited as protection it does not provide. Measured on 2.1.220 in one session, on one machine: ~/.npmrc carried a sandbox.credentials.files entry and no deny rule, and cat ~/.npmrc returned...
Technical details
(guide/security/sandbox-native.md, machine-readable/reference.yaml): the rule looks like a denylist and reads like one, so it gets audited as protection it does not provide. Measured on 2.1.220 in one session, on one machine: ~/.npmrc carried a sandbox.credentials.files entry and no deny rule, and cat ~/.npmrc returned Operation not permitted 5/5; a project .env carried Read(**/.env*) and no credentials entry, and cat .env returned exit 0 5/5 on a file holding real secrets. Only the credentials block reaches sandboxed commands, and it resolves absolute paths rather than **/ patterns, so a rule shaped like **/.env* has nothing to compile into the Seatbelt profile. Since .env files sit wherever projects put them, no absolute path closes the gap and a PreToolUse Bash hook is the remaining move. The guide now specifies its scope: block the readers that print or copy, leave source .env alone, because breaking how developers load their own variables costs more than the exposure it removes.
-
.idea/ and .vscode/ deny writes inside allowWrite, which kills pnpm install
a narrower allowWrite entry does not take the ground back, since the deny resolves inside the allow. Tested against .serena, .cursor, .zed, .fleet and .settings, all of which accept writes, so this is specific to those two names rather than a general rule...
Technical details
(guide/security/sandbox-native.md): a narrower allowWrite entry does not take the ground back, since the deny resolves inside the allow. Tested against .serena, .cursor, .zed, .fleet and .settings, all of which accept writes, so this is specific to those two names rather than a general rule about dotted config directories. It surfaces as a supply-chain paper cut: a package shipping a .idea/ folder in its tarball fails during extraction and leaves node_modules/ truncated. Running the install in a terminal is the cheap fix, and pnpm install* in excludedCommands is the expensive one, since it unsandboxes every postinstall script in the tree.
-
echo $TMPDIR tells you whether a command actually ran sandboxed
most sandbox bug reports are measurement errors, and one variable explains nearly all of them. Because excludedCommands unsandboxes the whole invocation, a probe sharing a line with git, gh, ssh or docker reports on the unsandboxed world, and sessions then...
Technical details
(guide/security/sandbox-native.md, machine-readable/reference.yaml): most sandbox bug reports are measurement errors, and one variable explains nearly all of them. Because excludedCommands unsandboxes the whole invocation, a probe sharing a line with git, gh, ssh or docker reports on the unsandboxed world, and sessions then trade contradictory findings about the same machine. Sandboxed commands get a per-session $TMPDIR; unsandboxed ones inherit the shell's. An A/B binding a Unix socket makes the mechanism visible and catches the third trap in the same table: the probe alone is denied, the probe plus git -C <path> fetch origin is still denied because -C <path> breaks the git fetch * match, and the probe plus git fetch origin succeeds with $TMPDIR switched to the shell value. One flag decides whether the entire line runs sandboxed.
-
Three failures with no configuration fix, documented so they stop being tuned against
setuid binaries cannot exec, so ps, top, su and login (mode 04000) report operation not permitted while lsof and whoami run fine, and lsof -nP -iTCP -sTCP:LISTEN is the direct substitute for ps aux | grep. AF_UNIX bind() then listen() is denied in every...
Technical details
(guide/security/sandbox-native.md): setuid binaries cannot exec, so ps, top, su and login (mode 04000) report operation not permitted while lsof and whoami run fine, and lsof -nP -iTCP -sTCP:LISTEN is the direct substitute for ps aux | grep. AF_UNIX bind() then listen() is denied in every writable directory including $TMPDIR, and network.allowLocalBinding covers TCP only, so tsx and anything else opening an IPC server at startup will not run; bundling with esbuild first sidesteps it. Writes to .idea/ and .vscode/ are the third.
-
The domain allowlist filters even in permissive mode, and two rounds of this entry got it wrong
the section first described a policy field that does not exist and called allowlist mode the default. The real switch is strictAllowlist, default false. The correction then overshot and claimed the list was inert whenever autoAllowBashIfSandboxed was on,...
Technical details
(guide/security/sandbox-native.md, machine-readable/reference.yaml): the section first described a policy field that does not exist and called allowlist mode the default. The real switch is strictAllowlist, default false. The correction then overshot and claimed the list was inert whenever autoAllowBashIfSandboxed was on, resting on example.com and api.openai.com returning HTTP 200 against a 23-entry list. Both hosts sit in the built-in default list, so that test proved nothing about filtering. Re-measured on 2026-07-30 against a 32-entry list: neverssl.com stayed unreachable, and cursor.com and www.jetbrains.com went from unreachable to HTTP 200 on the addition of their wildcard alone, taking effect immediately with no session restart. Pick test hosts from outside the built-in defaults before concluding a list does nothing. A second note now distinguishes a blocked host from a nonexistent one: an allowlist refusal hangs 5 to 7 seconds, while an unresolvable hostname fails in under 30 ms even when a wildcard covers it (api.cursor.sh and cloud.ollama.com failed in ~25 ms while covered by *.cursor.sh and *.ollama.com; neither host exists). The deep_dive key sandbox_allowlist_inert_with_autoallow is replaced by sandbox_allowlist_filters_without_strict and sandbox_blocked_host_vs_missing_host. Also notes that github.com does not cover codeload.github.com, where npm and pnpm fetch git dependencies and tarballs.
-
Sandbox troubleshooting rewritten around what actually breaks, not what looks dangerous
the existing troubleshooting covered watchman, Docker, and Go CLI TLS. None of those were what a day of real use on a 200-repository setup produced. The sandbox fails on paths a toolchain uses without announcing them, so the section now opens with the break-in...
Technical details
(guide/security/sandbox-native.md, machine-readable/reference.yaml): the existing troubleshooting covered watchman, Docker, and Go CLI TLS. None of those were what a day of real use on a 200-repository setup produced. The sandbox fails on paths a toolchain uses without announcing them, so the section now opens with the break-in period: expect about a week before a configuration stabilizes, and widen a path because something broke rather than because something might. The worked example ends at 13 write paths with the failure that produced each one, in roughly the order anyone will hit them.
-
Index coverage is now enforced instead of remembered
the CI already answered "do the references in reference.yaml still resolve?" but nothing answered the opposite question, "did anything land in guide/ that the index never learned about?". That gap is what produced the July 28 finding where ten guide files,...
Technical details
(scripts/check-index-coverage.py, .github/workflows/index-integrity.yml, .claude/hooks/index-sync-reminder.sh, .claude/rules/index-sync.md): the CI already answered "do the references in reference.yaml still resolve?" but nothing answered the opposite question, "did anything land in guide/ that the index never learned about?". That gap is what produced the July 28 finding where ten guide files, including the entire guide/learning-path/ series, had never been indexed at all. An unindexed page is invisible to the MCP server and to the landing's Cmd+K palette, and the only signal was an anchor audit months later. The new script measures file-level coverage; it reported 92/92 when added, so the CI gate is hard at zero with no ratchet to unwind. A Stop hook reports at end of turn when guide/ changed and no index file did, which catches the more common case of a new section inside an already-indexed file, where no automated check can distinguish a typo fix from a new concept. The hook warns and never blocks: a turn can legitimately end mid-edit, and a hook that vetoes that is a hook people disable. A rule file documents what to update where, since the hook only says "you forgot". Choosing a hook over a rule alone is deliberate: a rule is a reminder the model can rationalize past, and it costs context every session, while the hook is deterministic.
-
A third excludedCommands trap, found while unblocking a real session
beyond the bare-name form that never matches and the glob that unsandboxes the whole invocation, an entry matches the command *as written*, so any wrapper, prefix, or loop silently sends the command back into the sandbox. gh api rate_limit runs unsandboxed and...
Technical details
(guide/security/sandbox-native.md, machine-readable/reference.yaml): beyond the bare-name form that never matches and the glob that unsandboxes the whole invocation, an entry matches the command *as written*, so any wrapper, prefix, or loop silently sends the command back into the sandbox. gh api rate_limit runs unsandboxed and returns; rtk gh api rate_limit is sandboxed and fails. The two differ by a four-character prefix. A PreToolUse hook that rewrites commands, which token-optimizing proxies do by design, therefore disables every exclusion naming a wrapped binary with no report. The same applies to for d in a b; do (cd $d && git push); done, where the string starts with for. The symptom is never "your exclusion did not match": it is Operation not permitted on a path, or a Go CLI failing certificate verification with x509: OSStatus -26276 because it cannot reach the macOS keychain from inside Seatbelt. That error is now indexed as a diagnostic signature, since it was independently misdiagnosed twice in one session as an expired token, an EDR agent, and a macOS security policy.
-
The sandbox.credentials block documented for the first time
credentials.files, credentials.envVars, and the related network.tlsTerminate had zero occurrences anywhere in guide/, despite being the mechanism the official documentation recommends for the exact hole the guide already described. sandbox-native.md correctly...
Technical details
(guide/core/settings-reference.md): credentials.files, credentials.envVars, and the related network.tlsTerminate had zero occurrences anywhere in guide/, despite being the mechanism the official documentation recommends for the exact hole the guide already described. sandbox-native.md correctly stated that sandbox read access covers the entire computer, then offered Read(~/.ssh/**) deny rules as the remedy. Those rules do work, since Read deny rules merge into the sandbox configuration, but they cannot touch environment variables, and sandboxed commands inherit the parent environment unchanged. A reader came away believing their tokens were protected while every sandboxed command could still read them. The new entries cover deny for files and variables, mask with injectHosts for the case where a CLI must keep authenticating, why mask fails closed without tlsTerminate, and the scope restrictions (mask is honored only from user, managed, and --settings, so a repository cannot authorize the proxy to send real credentials). Verified on 2.1.220: with the entry in place, ls ~/.ssh from a sandboxed command returns Operation not permitted while the directory still appears in a home listing.
-
Three sandbox settings that existed only in the release notes
filesystem.disabled (v2.1.216), network.strictAllowlist (v2.1.219), and allowAppleEvents were recorded as "a release happened" and never documented as usable settings. Each now carries its scope restriction (all three are ignored from project settings), its...
Technical details
(guide/core/settings-reference.md): filesystem.disabled (v2.1.216), network.strictAllowlist (v2.1.219), and allowAppleEvents were recorded as "a release happened" and never documented as usable settings. Each now carries its scope restriction (all three are ignored from project settings), its trade-off, and for filesystem.disabled the list of protections it silently turns off, including credentials.files and the settings-file write protection. strictAllowlist is explicitly marked as the last thing to enable, since before the domain list has stabilized it converts every missing domain from a one-time prompt into a hard failure.
-
Six sandbox behaviors documented
what survives auto-allow mode (deny rules, rm on / or ~, content-scoped ask rules, with a bare Bash ask rule skipped for sandboxed commands), the plan-mode interaction that changed in v2.1.212 and again in v2.1.218, that subagents inherit the parent's sandbox...
Technical details
(guide/security/sandbox-native.md): what survives auto-allow mode (deny rules, rm on / or ~, content-scoped ask rules, with a bare Bash ask rule skipped for sandboxed commands), the plan-mode interaction that changed in v2.1.212 and again in v2.1.218, that subagents inherit the parent's sandbox and cannot widen it, the session temp directory and the $TMPDIR divergence between sandboxed and unsandboxed commands, the git-worktree exception for the shared .git directory, and the write protection on Claude Code's own settings.json at every scope with symlink resolution since v2.1.210. That last one is easy to hit: a script editing ~/.claude/settings.json from Bash fails with PermissionError: [Errno 1] Operation not permitted while the same edit succeeds through the Edit tool, which is not sandboxed. Also adds the Ubuntu 24.04 AppArmor workaround, without which bubblewrap cannot create user namespaces and the sandbox fails to start with no obvious cause, plus the optional seccomp filter install.
-
MCP server was serving the rotted index: mcp-server/content/ had drifted from machine-readable/
the directory is a strict mirror (verified byte-identical at an earlier commit), and it is what the claude-code-guide MCP server reads. Two of its three files had fallen behind: the reference copy carried 4 anchored references against 36 in the source and none...
Technical details
(mcp-server/content/reference.yaml, mcp-server/content/llms.txt): the directory is a strict mirror (verified byte-identical at an earlier commit), and it is what the claude-code-guide MCP server reads. Two of its three files had fallen behind: the reference copy carried 4 anchored references against 36 in the source and none of the 874 section-map anchors, meaning every consumer of the advertised "instant expertise" entry point was being handed the broken positions this pass had just repaired. claude-code-releases.yaml was already in sync. Checked before overwriting that the server actually understands the new format: mcp-server/src/lib/section-reader.ts already resolves path#slug, including Pandoc-style explicit ids and near-miss suggestions, so the anchor migration matches where that code was already heading.
-
Broken-reference backlog cut from 383 to 145, and the CI ratchet lowered to match
scripts/resync-reference-yaml.py already existed and already did key-name-to-heading matching, which is worth stating plainly, the rot accumulated anyway because nothing invoked it. Its own reported count was inflated by a parser bug: the pattern...
Technical details
(.github/workflows/index-integrity.yml, scripts/resync-reference-yaml.py, machine-readable/reference.yaml): scripts/resync-reference-yaml.py already existed and already did key-name-to-heading matching, which is worth stating plainly, the rot accumulated anyway because nothing invoked it. Its own reported count was inflated by a parser bug: the pattern "([^"]+):(\d+)" also matched URLs and prose, so claude_mem_dashboard: "http://localhost:37777" was read as a file named http://localhost at line 37777, and a sentence ending in ... see guide/core/foo.md:2215 was read as a file named after the whole sentence. Both surfaced as FILE MISSING and inflated the total; the pattern now requires a repo-relative path under a known top-level directory, taking FILE MISSING to 0. With that fixed the real starting figure was 208, and applying the tool's own 63 HIGH and MEDIUM confidence corrections brought it to 145, clearing HIGH and MEDIUM entirely. What remains is 108 LOW and 37 UNKNOWN, where the key name does not identify a single heading well enough to correct without guessing.
-
docs/resource-evaluations/README.md status line was in French
the repo's rule is English throughout. Translated, and the date refreshed to match the verified figures (167 files on disk, 48 in the index table). README.md date badges resynced via ./scripts/sync-version.sh.
-
Index integrity is now enforced by CI in two layers, and the strict one is tested to fail
the workflow already ratcheted the line-number backlog; it now runs validate-reference-yaml.py --ci first as a hard gate at zero, covering what a ratchet cannot, namely YAML parseability, anchor resolution against real headings, path existence, line-reference...
Technical details
(.github/workflows/index-integrity.yml, scripts/validate-reference-yaml.py): the workflow already ratcheted the line-number backlog; it now runs validate-reference-yaml.py --ci first as a hard gate at zero, covering what a ratchet cannot, namely YAML parseability, anchor resolution against real headings, path existence, line-reference bounds and section_maps validity. Anchors do not drift when lines are inserted above them, so this gate is cheap to keep green, and a failure means something is genuinely broken rather than merely stale. The gate was verified by deliberately corrupting one anchor and confirming exit code 1, then restoring and confirming exit code 0 with the file intact, because the whole reason this rot survived for months is that the previous check could not fail: it only asked whether a referenced line existed inside a 26,554-line document. The script also had its hardcoded absolute working directory replaced with a path derived from its own location, which would otherwise have made it pass vacuously on a CI runner.
-
reference.yaml positional references repaired and migrated to anchors: 205 of 488 pointed at the wrong place
the index passed every check it had, because the only check was that a referenced line existed inside a 26,554-line file. That test cannot fail in a large document, so it validated nothing. Matching each YAML key name against the headings of its target file...
Technical details
(machine-readable/reference.yaml, new scripts/fix-reference-refs.py, scripts/validate-reference-yaml.py, scripts/gen-section-maps.py): the index passed every check it had, because the only check was that a referenced line existed inside a 26,554-line file. That test cannot fail in a large document, so it validated nothing. Matching each YAML key name against the headings of its target file instead of trusting the stored position showed how far the file had rotted: hook_templates pointed 17,104 lines before "A.4 Hook Templates", command_template 17,643 lines before its section, rtk_guide 3,687 lines off, mcp_secrets_management 2,937. The appendix block drifted in lockstep, appendix_a through appendix_d and every myths_* key each exactly 5,480 lines early, which is the signature of upstream insertions never propagated rather than independent mistakes. 132 string references were migrated from path:N to path#anchor, 73 bare line numbers were repaired in place, and the tooling now converges (a second pass reports zero changes). Anchors were chosen deliberately over line numbers where the landing consumes the value: build-guide-index.mjs strips both, so the migration is invisible to the build, but anchors survive insertions above them while line numbers do not. The guide gained lines twice during this work and the drift figures moved between two runs of the same script, which is the argument for anchors made in real time. Bare integers pointing into ultimate-guide.md were repaired but not converted, since the landing ignores them and a line number is more useful than an anchor for reading a range out of a 26K-line file.
-
Two near-misses caught in the repair tooling before they were applied
the first pass would have rewritten resource_evaluations_count: 120 to 26366 and ui_ux_pro_max_stars: 33700 to a line number, because the pattern matching bare integers cannot tell a quantity from a position. A guard now protects keys whose name ends in a...
Technical details
(scripts/fix-reference-refs.py, scripts/validate-reference-yaml.py): the first pass would have rewritten resource_evaluations_count: 120 to 26366 and ui_ux_pro_max_stars: 33700 to a line number, because the pattern matching bare integers cannot tell a quantity from a position. A guard now protects keys whose name ends in a quantity suffix, backed by an independent bounds check that catches the rest (33,700 exceeds the file, so it cannot be a line regardless of what the key is called). The first version of that guard matched substrings anywhere in the key and swallowed six genuine references, memory_files, cost_optimization, ui_ux_pro_max_guide among them, so it was narrowed to suffix matching: protecting a real reference leaves it visibly unrepaired, whereas corrupting a counter is silent and propagates. Separately, the heading extractor used a naive fence toggle that desynchronised on any file with an odd fence count; enterprise-governance.md has 51 such lines, and the toggle got stuck inside a block and dropped 9 valid sections, reporting correct anchors as broken. Replaced with CommonMark fence semantics (matching character, length at least the opener, nothing trailing). Re-running the repair with the corrected extractor found 14 further fixes the broken version had missed.
-
Quiz block in reference.yaml described a structure that no longer exists
quiz_count: 334 against 473 real questions, quiz_categories: 16 against 17, quiz_file pointing at a quiz/questions.json that does not exist, and a three-tier split (quiz_beginner, quiz_intermediate, quiz_advanced) referencing a quiz/categories/ directory that...
Technical details
(machine-readable/reference.yaml): quiz_count: 334 against 473 real questions, quiz_categories: 16 against 17, quiz_file pointing at a quiz/questions.json that does not exist, and a three-tier split (quiz_beginner, quiz_intermediate, quiz_advanced) referencing a quiz/categories/ directory that does not exist either, with sub-totals of 60, 100 and 97 summing to 257, a number matching neither the old figure nor the new one. The real bank is one YAML file per category under quiz/questions/, and difficulty is a per-question field alongside a profiles list, not a per-category tier. Replaced with the verified counts, the category filenames, and the actual question schema; the invented tier sub-totals were dropped rather than replaced with guesses. resource_evaluations_count was likewise 120 against 167 files on disk, now recorded alongside the 48 that the README index actually lists, since those are two different real numbers.
-
Section maps: 874 H2 anchors across 78 guide files, none previously indexed
coverage was measured per file, not per section, so a file counted as indexed while none of its sections were reachable. ai-ecosystem.md had 0 of 41 sections indexed, cheatsheet.md 0 of 27, visual-reference.md 0 of 20, architecture.md 0 of 19. Adding one...
Technical details
(machine-readable/reference.yaml, scripts/gen-section-maps.py): coverage was measured per file, not per section, so a file counted as indexed while none of its sections were reachable. ai-ecosystem.md had 0 of 41 sections indexed, cheatsheet.md 0 of 27, visual-reference.md 0 of 20, architecture.md 0 of 19. Adding one deep_dive key per section would have worked but cost twice: roughly 600 keys in a file already at 44K tokens, and 600 more entries in the landing's Cmd+K palette, since build-guide-index.mjs turns every deep_dive string starting with guide/ into a search entry. A top-level section_maps block of anchor lists sidesteps both, as that script only walks deep_dive. Duplicate slugs within a file are skipped rather than emitted, because GitHub would suffix them -1 and the reference would not resolve. The generator is idempotent and replaces its own block on re-run.
-
Three maintenance scripts promoted out of the gitignored working directory
the validator checks YAML parseability, anchor resolution, path existence, line-reference bounds, how far each bare integer sits from its nearest heading, and section_maps validity in one pass. It is what would have caught this rot at any point over the past...
Technical details
(scripts/validate-reference-yaml.py, scripts/gen-section-maps.py, scripts/fix-reference-refs.py): the validator checks YAML parseability, anchor resolution, path existence, line-reference bounds, how far each bare integer sits from its nearest heading, and section_maps validity in one pass. It is what would have caught this rot at any point over the past months. The generated block in reference.yaml carries the regeneration and validation commands inline, which is also why the scripts had to move: the block initially pointed at claudedocs/, a gitignored path, making the instruction dead for everyone but the session that wrote it.
-
New audit prompt: permission and sandbox posture
a self-contained prompt that answers one question the existing tooling does not, whether a project's permission rules still constitute a boundary. tools/audit-prompt.md scores the whole setup across eight dimensions and /security-audit scans for secrets and...
Technical details
(tools/permissions-audit-prompt.md): a self-contained prompt that answers one question the existing tooling does not, whether a project's permission rules still constitute a boundary. tools/audit-prompt.md scores the whole setup across eight dimensions and /security-audit scans for secrets and injection surfaces; neither detects the failure mode where a single allow entry resolving to an interpreter (Bash(bash *), Bash(node:*), Bash(python3 *)) silently makes every deny rule in every scope bypassable, since the matcher treats bash -c '<anything>' as a bash command and never as the inner one. Six phases: blanket execution grants, rule population health, deny and ask coverage, sandbox posture, scope hygiene, and permission-mode interaction. The prompt embeds the documented matcher semantics rather than letting the model infer them, because that is where audits of this kind go wrong: the stripped wrapper list (timeout, nice, command, bare xargs) versus the runners that are *not* stripped (npx, docker exec, devbox run), the fact that an allow rule stops at an unknown env-var assignment while deny and ask match past any, that :* is only recognized at the end of a pattern, that protected paths are not pre-approvable by an allow rule in settings, that sandbox.allowUnsandboxedCommands: false constrains only the dangerouslyDisableSandbox retry and not excludedCommands, and that in auto mode allow, ask, and deny resolve *before* the classifier, so a narrow rule such as Bash(git push:*) does not merely skip a prompt, it removes classifier review from that action. Scored out of 100 with a deliberately lopsided weighting: any arbitrary execution grant zeroes 30 points on its own. Includes a fleet triage sweep that ranks repositories by exposure before running the full pass, so a thirty-repo park is not audited one indistinguishable finding at a time. Every finding must carry a reproduction command; the prompt explicitly forbids padding and forbids recommending bypassPermissions as a remedy for prompt fatigue. tools/README.md was three files behind and is corrected in the same pass: context-audit-prompt.md and audit-cheatsheet-prompt.md had never been listed, and a "which audit when" table now routes between the five, including /security-audit which lives as a slash command rather than a prompt file. Indexed in machine-readable/reference.yaml under deep_dive alongside the two existing audit-tool entries (a deep_dive key change means the landing's Cmd+K index needs pnpm build:search), and the tools/ block in the root README.md tree, which listed two of the six files.
-
Generative UI category: A2UI vs. MCP Apps vs. Vercel AI SDK vs. MDMA
new section covering agent-driven interactive UI output (forms, approvals, actions rendered inside a single chat turn, not a separate artifact), with a comparison table across the four current approaches and a case study on MDMA (MobileReality/mdma). The case...
Technical details
(guide/ecosystem/ai-ecosystem.md §7.1): new section covering agent-driven interactive UI output (forms, approvals, actions rendered inside a single chat turn, not a separate artifact), with a comparison table across the four current approaches and a case study on MDMA (MobileReality/mdma). The case study documents what holds up under source audit (a real deterministic validator/fixer pipeline, honest evals measuring 41% bare-prompt success vs. 90.5% with the DSL plus validator) against several overstated claims (no cryptographic guarantee of valid UI despite the 90.5%-not-100% figure, "runs anywhere" not extending to rendering since only a React renderer exists, the default chart component being an HTML table, webhooks only dispatching a UI event with no real HTTP call, "accessible by design" not backed by aria-invalid/aria-live or keyboard-operable PII-masking controls) and one unresolved functional bug found independently by two audit agents: form validation (required/pattern/min/max) is documented with worked examples but never enforced, because the form container is a <div> rather than a <form> and the submit button never triggers native constraint validation. Added a full evaluation at docs/resource-evaluations/mdma-evaluation.md (score 3/5, all claims verified against the local source tree at /Users/florianbruniaux/Sites/divers-test/mdma rather than the README alone), indexed in docs/resource-evaluations/README.md, and 8 new deep_dive entries in machine-readable/reference.yaml.
-
Multi-provider code review architecture
new workflow guide documenting a non-redundant 3-provider PR review setup, based on a mature production pattern: Claude Code Action owns deep semantic review and the merge-blocking gate, a deterministic tool (CodeRabbit or equivalent) owns PASS/FAIL pre-merge...
Technical details
(guide/workflows/multi-provider-code-review.md): new workflow guide documenting a non-redundant 3-provider PR review setup, based on a mature production pattern: Claude Code Action owns deep semantic review and the merge-blocking gate, a deterministic tool (CodeRabbit or equivalent) owns PASS/FAIL pre-merge checks, a cross-file RAG tool (Greptile or equivalent) owns invariants that span multiple files. Covers role separation, the non-duplication rule across config files, a blocking CI gate script, batching for large PRs, delta-review, cross-tool deduplication, and the known friction of rule drift across the three configs. Added supporting templates: examples/github-actions/claude-code-review-batched.yml (domain-split matrix review for PRs over a file-count threshold) and examples/github-actions/.greptile/ (config.json, rules.md, files.json). Added a gate job to examples/github-actions/claude-code-review.yml that parses the posted review's Must Fix count and fails the CI check, letting branch protection actually block merge on 🔴 findings instead of only commenting. Indexed in guide/workflows/README.md and machine-readable/reference.yaml, cross-linked from guide/workflows/code-review.md.
-
support-csm-agent.md
New workflow guide covering internal (non-client-facing) support/CSM agents built with Claude Code. Documents a 6-level maturity model (L0 reply drafting through L5 CSM pre-call briefing), the human-in-the-loop boundary that separates this pattern from...
Technical details
(guide/workflows/support-csm-agent.md): New workflow guide covering internal (non-client-facing) support/CSM agents built with Claude Code. Documents a 6-level maturity model (L0 reply drafting through L5 CSM pre-call briefing), the human-in-the-loop boundary that separates this pattern from buy-side deflection tools (Decagon, Intercom Fin, Ada), a read-only DB diagnosis pattern, security guardrails, and internal-throughput metrics (draft-to-send edit distance, time to first response) instead of a deflection rate. Cross-linked from event-driven-agents.md, data-privacy.md, and team-metrics.md.
-
HubSpot & Zendesk MCP servers
New "Customer Support & CRM" category documenting shinzo-labs/hubspot-mcp, baryhuang/mcp-hubspot, and reminia/zendesk-mcp-server (verified via GitHub API for star count and last-push date; three lower-signal HubSpot alternatives evaluated and excluded for...
Technical details
(guide/ecosystem/mcp-servers-ecosystem.md): New "Customer Support & CRM" category documenting shinzo-labs/hubspot-mcp, baryhuang/mcp-hubspot, and reminia/zendesk-mcp-server (verified via GitHub API for star count and last-push date; three lower-signal HubSpot alternatives evaluated and excluded for stale commits). Statistics table and maintainer count updated accordingly.
-
threat-db.yaml v2.23.0
monthly threat intelligence update via /update-threat-db. New malicious skills from Unit 42's OpenClaw supply-chain report (money-radar, letssendit, omnicogg, ai-tradingview-assistant-for-macos, tradingview-ai-indicator-assistant). New CVEs:...
Technical details
(examples/commands/resources/threat-db.yaml): monthly threat intelligence update via /update-threat-db. New malicious skills from Unit 42's OpenClaw supply-chain report (money-radar, letssendit, omnicogg, ai-tradingview-assistant-for-macos, tradingview-ai-indicator-assistant). New CVEs: CVE-2026-50548/50549 (Cursor agent terminal sandbox escape, CVSS 9.8 each, also added to guide/security/security-hardening.md CVE table), CVE-2026-32871 (FastMCP OpenAPIProvider SSRF/path traversal), CVE-2026-32625 (LibreChat MCP access control, CVSS 9.6), CVE-2026-0621 (MCP TypeScript SDK ReDoS). New attack technique T033 "Agentjacking" (fake Sentry error injection tricking coding agents into executing attacker code, 85% success rate in disclosure testing). New defensive resources: Akamai's security analysis of the upcoming MCP spec, Microsoft's MCP governance rollout in VS Code/Azure APIM.
-
api-gateway.md
New guide on setting up an API gateway (LiteLLM or Portkey) between Claude Code clients and Anthropic's API. Covers virtual keys, per-team budget limits, model allowlists, Prometheus metrics, OTel integration, and production Docker Compose setup. Addresses the...
Technical details
(guide/ops/api-gateway.md): New guide on setting up an API gateway (LiteLLM or Portkey) between Claude Code clients and Anthropic's API. Covers virtual keys, per-team budget limits, model allowlists, Prometheus metrics, OTel integration, and production Docker Compose setup. Addresses the P0 enterprise deployment gap (cost control and centralized permissions).
-
WebAssembly MCP tool sandboxing
New section covering Wassette, wasmcp, whamm, and splicer as an emerging Wasm-based approach to sandboxing MCP tools at the OS level. Includes tool comparison table, Wasmtime CVE caveat, and scope statement (Wasm isolation does not cover cost tracking or audit...
Technical details
(guide/security/sandbox-isolation.md §7b): New section covering Wassette, wasmcp, whamm, and splicer as an emerging Wasm-based approach to sandboxing MCP tools at the OS level. Includes tool comparison table, Wasmtime CVE caveat, and scope statement (Wasm isolation does not cover cost tracking or audit logs). Based on adversarial deep research (100 agents, 25 claims verified 3-vote).
-
Team-level log aggregation
New section covering two paths for centralizing Claude Code logs across a team: LiteLLM Gateway (recommended) and JSONL shipping to Loki. Includes OTel collector config for Tempo and Prometheus queries for Grafana dashboards.
Technical details
(guide/ops/observability.md §10): New section covering two paths for centralizing Claude Code logs across a team: LiteLLM Gateway (recommended) and JSONL shipping to Loki. Includes OTel collector config for Tempo and Prometheus queries for Grafana dashboards.
-
Settings propagation guide
New subsection explaining three mechanisms for distributing Claude Code config to a team: shared settings.json in repos, CLAUDE.md hierarchy, and Anthropic Team/Enterprise admin console.
-
PR audit trail
New section covering what to capture at PR creation time, a PreToolUse session logger hook, a GitHub Actions workflow that uploads audit artifacts with 90-day retention, and a compliance report script.
-
Practitioner insights expanded to four new sources
added Devoxx (Java/JVM/architecture conference talks), Dev With AI Meetup (French AI-native development meetup), ByteByteGo (system design), and Stanford Online (academic ML/LLM coursework) alongside the existing IFTTD podcast corpus. Insight count grew from...
Technical details
(guide/ecosystem/practitioner-insights.md): added Devoxx (Java/JVM/architecture conference talks), Dev With AI Meetup (French AI-native development meetup), ByteByteGo (system design), and Stanford Online (academic ML/LLM coursework) alongside the existing IFTTD podcast corpus. Insight count grew from 22 to 65, with four new per-corpus source tables. Attributed field reports were also folded directly into guide/security/security-hardening.md, guide/security/sandbox-native.md, guide/security/sandbox-isolation.md, guide/roles/agent-evaluation.md, guide/core/context-engineering.md, guide/ecosystem/mcp-servers-ecosystem.md, guide/ops/observability.md, guide/workflows/agent-teams.md, guide/roles/adoption-approaches.md, guide/roles/ai-roles.md, and guide/roles/learning-with-ai.md. Notable additions: a formal Boolean-circuit bound on chain-of-thought reasoning (Denny Zhou, Stanford CS25 V5, 2025), a nine-speaker independent convergence on a 70% context-degradation threshold (Dev With AI Meetup), and a documented REX on unsupervised 24/7 agent delegation reducing team velocity. Also folded in field reports from The Product Crew (French product-management podcast) into guide/roles/adoption-approaches.md and guide/roles/ai-roles.md, treated as single-instance 2026 accounts rather than established data. Corrected a stale insight count (previously reported as 22 in machine-readable/reference.yaml and guide/README.md even before this expansion; the actual pre-expansion count was 35). Full attribution in guide/core/credits.md.
-
AI unit economics guide
original synthesis addressing an unmodeled gap surfaced across all eight source corpora analyzed for the practitioner-insights expansion above (none of them model the real cost of agentic AI at scale). Covers per-task cost decomposition...
Technical details
(guide/ops/ai-unit-economics.md, new file): original synthesis addressing an unmodeled gap surfaced across all eight source corpora analyzed for the practitioner-insights expansion above (none of them model the real cost of agentic AI at scale). Covers per-task cost decomposition (input/output/cache/tool-call/sub-agent tokens), the four cost levers with practitioner sourcing where available (complexity-based routing, sub-agent context isolation, exit criteria and max-iterations, cache reuse), the break-even point of an autonomous agent, and team budget governance (cross-linked to guide/ops/api-gateway.md for implementation). Explicitly flagged in its introduction as original analysis, not a practitioner-sourced compilation.
-
llms.txt / llms-full.txt / machine-readable/llms.txt stats sync
(3 files): updated Last Updated to June 21 2026, Lines of Documentation from 26,058 to 26,494 (reflects current ultimate-guide.md line count), Production Templates from 314 to 262 (authoritative count from check-landing-sync.sh method), and inline body...
Technical details
(3 files): updated Last Updated to June 21 2026, Lines of Documentation from 26,058 to 26,494 (reflects current ultimate-guide.md line count), Production Templates from 314 to 262 (authoritative count from check-landing-sync.sh method), and inline body references in llms-full.txt (FAQ answer, repo structure, What Is section).
-
Team knowledge infrastructure guide
answers the question "where do we put the company knowledge base so both Claude Code and Cowork can use it?" Covers the 3-tier framework (static Markdown vault for direct file reads, MCP connectors for live systems like Jira/Confluence/Notion/GitBook, RAG at...
Technical details
(guide/ecosystem/team-knowledge-base.md, new file): answers the question "where do we put the company knowledge base so both Claude Code and Cowork can use it?" Covers the 3-tier framework (static Markdown vault for direct file reads, MCP connectors for live systems like Jira/Confluence/Notion/GitBook, RAG at scale for large corpora), the ~100-1000 doc threshold for switching from direct reads to retrieval, Onyx (self-hosted, ex-Danswer), LlamaCloud and Ragie as managed RAG via MCP, the plugin pattern for distributing team workflows, and the Cowork-specific governance caveat (audit log and DLP gaps as of mid-2026). Includes setup code snippets, comparison tables, and a decision table for what to build first. Cross-linked from ultimate-guide.md Cowork section and guide/README.md Ecosystem table. Machine-readable index updated: 18 new entries in reference.yaml, shared_knowledge block in cowork-reference.yaml, llms.txt/machine-readable/llms.txt updated.
-
Practitioner insights from IFTTD podcast
new file consolidating paraphrased field insights from 11 IFTTD episodes (290-361), organized into 5 themes: context engineering, agentic patterns and orchestration, LLM evaluation, agent security, and DevX and adoption. 22 attributed insights from...
Technical details
(guide/ecosystem/practitioner-insights.md): new file consolidating paraphrased field insights from 11 IFTTD episodes (290-361), organized into 5 themes: context engineering, agentic patterns and orchestration, LLM evaluation, agent security, and DevX and adoption. 22 attributed insights from practitioners including Guillaume Laforge (Google Cloud), Zineb Bendhiba (Red Hat), Frédéric Barthelet (Theodo), Samy Lastmann (Arago), Jocelyn N'takpe (ManoMano), and others. All French content reformulated in English with attribution format: name, role, company, episode number, ifttd.io URL. No direct quotes.
-
Semantic chunking and synthetic question generation
practical explanation of semantic chunking (boundary detection over fixed-token splitting) and synthetic question generation at index time (doc2query: Nogueira and Lin, 2019; HyDE: Gao et al., 2022). Retrieval improvement framed as Laforge's practitioner...
Technical details
(guide/ecosystem/context-engineering-tools.md, new subsection "Query-Side Indexing"): practical explanation of semantic chunking (boundary detection over fixed-token splitting) and synthetic question generation at index time (doc2query: Nogueira and Lin, 2019; HyDE: Gao et al., 2022). Retrieval improvement framed as Laforge's practitioner order-of-magnitude estimate, not a constant. Attributed to Guillaume Laforge (IFTTD ep 361).
-
Large context window anti-pattern note
practitioner paragraph after the Liu et al. "Lost in the Middle" citation clarifying that filling a 1M-token window is an anti-pattern, not a capability demonstration. Attributed to Guillaume Laforge (IFTTD ep 361). Also updated the Liu et al. citation to full...
Technical details
(guide/core/context-engineering.md): practitioner paragraph after the Liu et al. "Lost in the Middle" citation clarifying that filling a 1M-token window is an anti-pattern, not a capability demonstration. Attributed to Guillaume Laforge (IFTTD ep 361). Also updated the Liu et al. citation to full form: "Lost in the Middle: How Language Models Use Long Contexts", TACL 2024, arXiv:2307.03172.
-
Evaluating probabilistic systems
six subsections covering scored-dataset evaluation (not red/green unit tests), statistical CI/CD with bash example (replay 10-100x, measure success rate as percentage), async LLM-as-judge pattern, hallucination as a calibrated trade-off, OpenTelemetry and...
Technical details
(guide/roles/agent-evaluation.md, new major section): six subsections covering scored-dataset evaluation (not red/green unit tests), statistical CI/CD with bash example (replay 10-100x, measure success rate as percentage), async LLM-as-judge pattern, hallucination as a calibrated trade-off, OpenTelemetry and Langfuse observability with trace structure example, and workflow vs pure agent evaluation implications. Sources: Louis Pinsard (ep 338), Frédéric Barthelet (ep 329), Samy Lastmann (ep 311).
-
Agent security field incidents
two documented production incidents: guardrail evasion where an agent emptied a file when the delete operation was blocked (Zineb Bendhiba, ep 326), and data loss incidents including home directory wipes and database deletions across multiple agent products...
Technical details
(guide/security/sandbox-native.md, new subsection "Why Sandboxing Matters: Field Incidents"): two documented production incidents: guardrail evasion where an agent emptied a file when the delete operation was blocked (Zineb Bendhiba, ep 326), and data loss incidents including home directory wipes and database deletions across multiple agent products (Guillaume Lours, ep 360).
-
Command allowlist principle
practical paragraph at the start of the MCP vetting workflow section recommending specific allowlist patterns (allow git add and git commit, require explicit approval before git push, hard resets, force-deletes, or database mutations). Illustrated with a real...
Technical details
(guide/security/security-hardening.md): practical paragraph at the start of the MCP vetting workflow section recommending specific allowlist patterns (allow git add and git commit, require explicit approval before git push, hard resets, force-deletes, or database mutations). Illustrated with a real incident involving Firefox bookmark loss (Jocelyn N'takpe, ep 346).
-
MCP usage principles
three field-derived principles: keep tool count small to reduce hallucination probability, design tools as complete user intents not atomic endpoints, and the LLM is stateless with respect to MCP routing. Sources: Zineb Bendhiba (ep 326) and Frédéric Barthelet...
Technical details
(guide/ecosystem/mcp-servers-ecosystem.md, new subsection after the Quality Score block): three field-derived principles: keep tool count small to reduce hallucination probability, design tools as complete user intents not atomic endpoints, and the LLM is stateless with respect to MCP routing. Sources: Zineb Bendhiba (ep 326) and Frédéric Barthelet (ep 329).
-
Practitioner testimonials
four new entries in the testimonials section: Samy Lastmann on micro-agents over mega-prompts (ep 311), Guillaume Laforge on harness engineering as the emerging term for multi-agent orchestration (ep 361), Quentin Adam on Claude orchestrating Gemini for...
Technical details
(guide/workflows/agent-teams.md): four new entries in the testimonials section: Samy Lastmann on micro-agents over mega-prompts (ep 311), Guillaume Laforge on harness engineering as the emerging term for multi-agent orchestration (ep 361), Quentin Adam on Claude orchestrating Gemini for large-context rewrites (ep 341), and Jocelyn N'takpe on ManoMano's production MCP stack at scale (ep 346).
-
Adoption field notes
three paragraphs after the empirical data table covering ManoMano's documentation-as-onboarding approach (N'takpe ep 346), the Mundler et al. typed-language safety net study (ETH Zurich and UC Berkeley, PLDI 2025, arXiv:2504.09246, correctly cited as "94% of...
Technical details
(guide/roles/adoption-approaches.md): three paragraphs after the empirical data table covering ManoMano's documentation-as-onboarding approach (N'takpe ep 346), the Mundler et al. typed-language safety net study (ETH Zurich and UC Berkeley, PLDI 2025, arXiv:2504.09246, correctly cited as "94% of compilation errors are type errors" not "94% of agent errors avoidable"), and practitioner notes on alternating AI and manual coding to preserve deep system understanding (Deleuze ep 349) and capping AI-assisted development cycles per day against cognitive load (Lepine ep 351).
-
IFTTD attribution
full attribution entry for the IFTTD podcast (Bruno Soulez, ifttd.io, 360+ episodes), listing all 9 guide sections that draw on IFTTD material with episode numbers and speaker names.
-
Third-party tool: CodeBurn
new dedicated section under Token & Cost Tracking. CodeBurn (8,100+ stars, MIT, Node.js 22.13+) reads Claude Code JSONL session logs and classifies every turn into 13 categories (Coding, Debugging, Exploration, Conversation, etc.) via deterministic local...
Technical details
(guide/ecosystem/third-party-tools.md): new dedicated section under Token & Cost Tracking. CodeBurn (8,100+ stars, MIT, Node.js 22.13+) reads Claude Code JSONL session logs and classifies every turn into 13 categories (Coding, Debugging, Exploration, Conversation, etc.) via deterministic local pattern matching, no LLM calls. Key differentiator from ccusage: CodeBurn explains WHERE tokens went and correlates sessions with git commits via codeburn yield; ccusage tracks how much was spent. Notable commands: optimize (retry loops, redundant re-reads), compare (model breakdown), yield (sessions vs. shipped commits), menubar (macOS SwiftBar widget), MCP server (v0.9.12+). Covers verified usage patterns, cost estimate caveats (LiteLLM pricing, not Anthropic billing API), and when to use alongside ccusage.
-
Context engineering tool: Token Savior
new section after tilth. Token Savior (Mibayy/token-savior, ~1,000 stars, Python 3.11+, MIT) is a three-in-one MCP server covering structural code navigation by symbol (replaces full-file reads), Bash output compaction (34 compactors for...
Technical details
(guide/ecosystem/context-engineering-tools.md): new section after tilth. Token Savior (Mibayy/token-savior, ~1,000 stars, Python 3.11+, MIT) is a three-in-one MCP server covering structural code navigation by symbol (replaces full-file reads), Bash output compaction (34 compactors for git/pytest/jest/kubectl, opt-in via TS_BASH_COMPACT=1), and persistent cross-session memory via SQLite FTS5. Covers 6 tool profiles (full/core/nav/lean/ultra/tiny), 15+ navigation tools, tsbench results (Claude Opus 4.7, 96 tasks, -77% active tokens, synthetic 2,000-line codebase), install via pip/uvx, comparison with tilth (tilth: faster, independently benchmarked, 14 languages; Token Savior: adds Bash compaction + cross-session memory).
-
Zero-install context reduction note
brief entry for claude-token-efficient (drona23, 5,700+ stars) at the end of section 3. Frames it honestly as a single CLAUDE.md file that adjusts model output style, not a compressor. Notes the uncited 63% claim and the tool's ceiling (output tokens only,...
Technical details
(guide/ecosystem/context-engineering-tools.md): brief entry for claude-token-efficient (drona23, 5,700+ stars) at the end of section 3. Frames it honestly as a single CLAUDE.md file that adjusts model output style, not a compressor. Notes the uncited 63% claim and the tool's ceiling (output tokens only, cannot compress shell output or file reads).
-
Section 9.18.5 Open Knowledge Format (OKF)
new section covering Google Cloud's OKF v0.1, published June 12, 2026. Explains the Karpathy LLM Wiki origin pattern (April 2026 gist, 16M+ views on X), how an OKF bundle works (directory of markdown files with YAML frontmatter, type field as the only required...
Technical details
(guide/ultimate-guide.md): new section covering Google Cloud's OKF v0.1, published June 12, 2026. Explains the Karpathy LLM Wiki origin pattern (April 2026 gist, 16M+ views on X), how an OKF bundle works (directory of markdown files with YAML frontmatter, type field as the only required key), how OKF compares to existing patterns (CLAUDE.md, AGENTS.md, llms.txt sit at different layers), adoption status (v0.1 invitation not yet a standard, Google Cloud Knowledge Catalog already ingests it), decision guidance on when OKF fits vs llms.txt vs CLAUDE.md, and a minimal quick-start example. Existing 9.18.5–9.18.11 renumbered to 9.18.6–9.18.12.
-
Smart-suggest BM25 routing
self-calibrating BM25 lexical scoring layer for UserPromptSubmit hooks; complements the existing regex smart-suggest with intent-based skill routing; includes runnable Node.js example with auto-calibration, detached index rebuild, and sample skill corpora
Technical details
(guide/workflows/smart-suggest-routing.md + examples/hooks/bm25-routing/): self-calibrating BM25 lexical scoring layer for UserPromptSubmit hooks; complements the existing regex smart-suggest with intent-based skill routing; includes runnable Node.js example with auto-calibration, detached index rebuild, and sample skill corpora
-
Context engineering tools: tilth and maki
added documentation for two new token-efficiency tools discovered via HN community analysis. tilth (MCP server, cargo install tilth) uses tree-sitter for structural code navigation with benchmarked results of -40% cost and +10pp accuracy across Sonnet 4.6,...
Technical details
(guide/ecosystem/context-engineering-tools.md, guide/ecosystem/third-party-tools.md): added documentation for two new token-efficiency tools discovered via HN community analysis. tilth (MCP server, cargo install tilth) uses tree-sitter for structural code navigation with benchmarked results of -40% cost and +10pp accuracy across Sonnet 4.6, Opus 4.6, and Haiku 4.5 (160 runs, 4 repos). maki (standalone Rust TUI agent, replaces Claude Code rather than augmenting it) with embedded Python code execution and dynamic model selection for subtasks. Also added a real-world cost calibration note to the RTK section: bash output is ~12% of total session token usage (not the dominant source), file reads are ~65%, so RTK's actual API bill impact is 6-10% despite its per-command compression ratios of 60-90%. Section 10 tool selection table updated with tilth for the "file reads consuming most of context budget" use case.
-
Third-party tool: SkillSpector
added NVIDIA's skill security scanner to the Security Scanning section. SkillSpector scans skills before installation using 64 patterns across 16 categories (prompt injection, data exfiltration, MCP tool poisoning, trigger abuse, supply chain, rogue agent,...
Technical details
(guide/ecosystem/third-party-tools.md): added NVIDIA's skill security scanner to the Security Scanning section. SkillSpector scans skills before installation using 64 patterns across 16 categories (prompt injection, data exfiltration, MCP tool poisoning, trigger abuse, supply chain, rogue agent, taint tracking, YARA signatures). Two-stage pipeline: fast static analysis then optional LLM revalidation (~87% precision). SC4 pattern queries OSV.dev live for CVE data. Apache 2.0. Fills the gap between AgentShield (config audit) and DeepSec (app code audit): neither previously covered pre-install skill vetting.
-
Security check skill: deep skill content analysis
Phase 3 now includes a "Deep skill content analysis" block inspired by SkillSpector patterns. Adds detection for hidden HTML comments and zero-width characters in skill files (TP1), base64 blobs over 40 chars (TP1/SC3), RTL unicode override characters (TP2),...
Technical details
(.claude/commands/security-check.md, examples/skills/security-check/SKILL.md): Phase 3 now includes a "Deep skill content analysis" block inspired by SkillSpector patterns. Adds detection for hidden HTML comments and zero-width characters in skill files (TP1), base64 blobs over 40 chars (TP1/SC3), RTL unicode override characters (TP2), trigger keywords shadowing built-in commands (TR2), curl | bash patterns in skill scripts (SC2), cron/launchctl persistence writes (RA2), and env-harvesting-plus-network-call combinations (E2+E1). Applied to both the command version and the skill template.
-
Third-party tool: Ponytail
added to Plugin Ecosystem / Notable skill packs and Recommendations by Persona. Ponytail is a cross-agent skill that enforces a "lazy senior dev" decision ladder before writing code (YAGNI → stdlib → native platform feature → installed dependency → one line →...
Technical details
(guide/ecosystem/third-party-tools.md): added to Plugin Ecosystem / Notable skill packs and Recommendations by Persona. Ponytail is a cross-agent skill that enforces a "lazy senior dev" decision ladder before writing code (YAGNI → stdlib → native platform feature → installed dependency → one line → minimum that works). Benchmarked at 80-94% less code, 47-77% lower cost, and 3-6x faster than unconstrained agents across Haiku/Sonnet/Opus. Ships with 4 commands (/ponytail, /ponytail-review, /ponytail-audit, /ponytail-debt) and supports 13 agents. MIT, by DietrichGebert.
-
Search index: GDPR/Privacy and Governance sections
added 16 data_privacy_* entries covering data flow, retention tiers (5y/30d/ZDR), known risks (/bug command, .env exposure, MCP DB), protective measures, and GDPR/HIPAA/PCI compliance. Governance and privacy sections are now searchable via cmd+k on the landing...
Technical details
(machine-readable/reference.yaml): added 16 data_privacy_* entries covering data flow, retention tiers (5y/30d/ZDR), known risks (/bug command, .env exposure, MCP DB), protective measures, and GDPR/HIPAA/PCI compliance. Governance and privacy sections are now searchable via cmd+k on the landing site and link to the local guide reader at cc.bruniaux.com/guide/.
-
Section 9.26 Review-Driven Context Optimization
new advanced pattern covering how to convert structured inline review feedback (via tools like crit) into CLAUDE.md rules. Covers the round-to-round diff as a verification mechanism, pattern extraction from review comment threads, promotion criteria, and the...
Technical details
(guide/ultimate-guide.md): new advanced pattern covering how to convert structured inline review feedback (via tools like crit) into CLAUDE.md rules. Covers the round-to-round diff as a verification mechanism, pattern extraction from review comment threads, promotion criteria, and the compounding effect over multiple sessions. Cross-referenced with §9.24 (Instinct-Based Learning) and §9.23 (Update Loop). Added to chapter 9 quick jump and ToC.
-
Resource evaluation: crit
score 4/5, decision: integrate. Tool by tomasz-tomczyk for human-in-the-loop review with round-to-round diffing, inline plan review before execution, DOM-anchored web app comments, and native Claude Code integration.
Technical details
(docs/resource-evaluations/crit-human-in-loop-review.md): score 4/5, decision: integrate. Tool by tomasz-tomczyk for human-in-the-loop review with round-to-round diffing, inline plan review before execution, DOM-anchored web app comments, and native Claude Code integration.
-
Hermes Agent section
updated to v0.15.1 (from v0.14.0). Added concrete GEPA benchmark (40% faster task completion after 20+ auto-generated skills). Expanded Quick Start with hermes chat entry point and WSL2/no-WebUI note. Added "Known Operational Issues (v0.15.x)" subsection...
Technical details
(guide/ecosystem/agentic-tools.md): updated to v0.15.1 (from v0.14.0). Added concrete GEPA benchmark (40% faster task completion after 20+ auto-generated skills). Expanded Quick Start with hermes chat entry point and WSL2/no-WebUI note. Added "Known Operational Issues (v0.15.x)" subsection covering 7 production pitfalls with YAML/bash fixes: analysis-before-action via SOUL.md, SOUL.md vs AGENTS.md separation, kanban parallelism flood (max_in_progress_per_profile: null default), subprocess PATH inheritance (env_passthrough), worker protocol violations (missing kanban_complete), SQLite corruption with backup strategy, HERMES_HOME not propagated to subprocesses, and token overhead (~13,900 fixed tokens per call, gateway multiplier). Issues traced to community reports #28712, #18594, #4379, #23717.