Repository navigation
docs(claude-native-practice): bring the practice pages current to Claude Code 2.1.302 - #1234
Merged
seathatflowsinourveins merged 7 commits intoOct 17, 2026
Conversation
…ude Code 2.1.302 Source for every edit: anthropics/claude-code CHANGELOG.md at v2.1.302 (fetched 2026-10-16T22:15Z with `gh api repos/anthropics/claude-code/contents/CHANGELOG.md -H "Accept: application/vnd.github.raw"`, sha256 prefix 57fde96b3318543c), cited by line as [email protected] L<n>; each cited line was checked against the fetched file. The fetched file has no 2.1.297 or 2.1.298 section. - Headers: slots.md, slots.json and the eleven layer pages move to client 2.1.302, checked 2026-10-16; cross-client.md is left alone (hash-tested against cross-client-lines.json). - native-clients.md: settings-permissions records the 2.1.299 rule-evaluation change (L373, L280, L245, L270) with an owed audit of prefix-matched mcp__ entries; checkpoints-rewind records that 2.1.300 transcripts carry each request (L186) and owes a re-measured footprint; model-effort-routing keeps CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL unset too (L411, L224, L371). - isolation.md: sandbox cites the 2.1.299 and 2.1.300 sandbox changes and has M1 run on 2.1.302 (L249, L190); the M49 worktree probe moves to 2.1.302 (L153, L148, L77, L324, L157). - token-efficiency.md: context-compaction records idle compaction, the /config row and subagent autoCompactWindow at their defaults (L217-L218, L6, L410, L110); output-compression cites Read allow_large, CLAUDE_CODE_DISABLE_FILE_MENTIONS and updatedInput validation (L414, L216, L189) and owes an rtk-hook check. - workers.md: subagent-definitions records the tools: list change and fork subagents on in -p (L374, L410, L35, L36); background-workflows routes the 2.1.300 resume through the Workflow tool's approval, to be re-observed (L185, L365, L81, L411). - mcp-surfaces.md: the 4,096-character up-front limit (L469, L377, L142). - agent-sdks.md: headless-sdk routes the 2.1.302 -p start mode and fork subagents (L34, L35, L36, L291). - observation-inference.md: usage-cost-monitoring lists the new OTel fields for the collector allowlists (L126, L130, L75, L76, L18, L467, L186). slots.json mirrors every page edit (Evidence, Notes and Route match the pages exactly); the slot manifest's sha256_when_labeled follows slots.json and differs_from_this_snapshot_in gains the newly differing evidence and route slots; manifests/evidence.json re-registers the changed files. Checks: python3 scripts/validate.py rc 0; scripts/evidence_manifest.py --check rc 0; the 13 native-practice test modules ran 347 tests, with the same two ComposerTests failures as on the base 90471d6 (the overview composer's layer pages hit a ModuleNotFoundError in this environment) and nothing else. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01QcCViiYWLxs4igpJR3yws6
seathatflowsinourveins
force-pushed
the
docs/claude-native-practice-currency-2.1.302
branch
from
October 16, 2026 22:53
71db7bb to
0b361d4
Compare
…2.1.302 practice pages The CC's Claude-family read of 0b361d4 found one false citation: workers.md and slots.json gave [email protected] L411 as a Workflow resume or limit change, but L411 (2.1.296) only adds CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL. The overturn still fired through L365 (2.1.299, the nesting limit) and L185 (2.1.300, resume through the Workflow tool's approval), so the parenthetical now cites those two. Wording now follows the cited lines: the /config Idle compaction row turns idle compaction off or back on (L6); the 4,096-character figure is the default limit (L469); L34's comma is restored. The settings-permissions (L373) and headless-sdk (L34, L35) notes now say that their overturn fired, as the other updated slots do. slots.json mirrors every edit; the slot manifest's sha256_when_labeled and the seven changed files' manifests/evidence.json rows were refreshed with scripts/host_receipts.py register_file. Checks: python3 scripts/validate.py rc 0; python3 scripts/evidence_manifest.py --check rc 0; the 13 test modules that read these pages ran 347 tests with the same two ComposerTests failures as on the untouched base 90471d6 and nothing else. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…P1 at 887f929) The headless-sdk row (agent-sdks.md:9 and its slots.json mirror) offered CLAUDE_CODE_FORK_SUBAGENT=0 as an alternative to keeping Agent out of --tools for a worker that must not fan out. [email protected] L35 says the variable turns off fork subagents (subagent_type "fork") only, so a named subagent can still fan out. The row now keeps Agent out of --tools as the control and describes the toggle as fork-only. tests/test_native_practice_fork_toggle.py pins the corrected text (it fails on 887f929 with only the test overlaid) and the page's mirror of the row. The two files' evidence rows are refreshed through scripts/host_receipts.py register_file. Source: anthropics/claude-code CHANGELOG.md at tag v2.1.302, line 35. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…bel the slot manifest A fold on 728141f that applies the PR #1234 diffs of the command center's owed-checks report (command-center/claude-native/OWED-CHECKS-2.1.302-20261017.md, written 2026-10-17T02:43:07Z). Each page edit is mirrored in its slots.json row. Rule source: anthropics/claude-code CHANGELOG.md at tag v2.1.302, cited as [email protected] L<n> with the release each line sits under. - native-clients.md:53-54, settings-permissions (report F1.1, F1.2): L245 (2.1.299) fixes rm prompts on shell -c scripts; it does not change rule evaluation. The evidence and the note now cite L373 and L280 for rule evaluation and L245 for the built-in prompt. The owed audit of mcp__ rules against L373, L280 and L270 (2.1.299) replaces the owed sentence: no rule relied on prefix matching, so none changes. - workers.md:13, subagent-definitions (F2.1, F2.2): the note said four host copies differ from adoption/agents/claude and four host-only definitions exist. diff -rq of adoption/agents/claude and of .claude/agents against ~/.claude/agents exits 0, 11 files each, so the claim was false at 728141f. The owed audit of the tools: lists against L374 (2.1.299) is recorded: 25 whole-name grants from six servers, and no list changes. - token-efficiency.md:50-51, output-compression (F3.1): the owed check of the rtk hook against the updatedInput validation of L189 (2.1.300) is recorded (rtk-ai/[email protected] src/hooks/hook_cmd.rs:648-651 replaces only command), and L916 (2.1.290) joins the evidence. - mcp-surfaces.md:12-13, mcp-config-tool-search (F4.1): the owed measurement of the up-front context at the 4,096-character default of L469 (2.1.296) is recorded, beside L377 (2.1.299); L602 (2.1.295) and L1926 (2.1.280) join the evidence. - observation-inference.md:13, usage-cost-monitoring (F5.2): the note said each new field is to be added to the collector's allowlists. It now says neither collector profile keeps the five event fields of L126 (2.1.300), L75 and L76 (2.1.301) and L18 (2.1.302), and that the span attributes of L130 (2.1.300) need no allowlist entry because the templates export no Claude traces. The six diffs were applied with git apply after git apply --check (exit 0 each). Each replaced evidence or notes line occurs once at 728141f; the "]," lines that the slots.json hunks also rewrite are placed by their context. Each result has the sha256 the report proposes. Label fix: current_decision_source.sha256_when_labeled in claude-native-slot-manifest.json now names the sha256 of this commit's slots.json, taken from sha256sum. This corrects 728141f, which changed slots.json without moving the label, so tests.test_native_practice_snapshot_provenance (test_the_label_names_the_shipped_slots_file) fails there; the CC had capped its test selection for that commit. differs_from_this_snapshot_in is unchanged. Of the fields the manifest exports, the fold changes only evidence, in settings-permissions, output-compression and mcp-config-tool-search, and the manifest already lists all three. Notes are not exported. The manifests/evidence.json rows of the seven changed files were refreshed with scripts/host_receipts.register_file; scripts/evidence_manifest.py --write left the file unchanged. Checks, run with the fold applied before this commit: python3 scripts/validate.py rc 0; python3 scripts/evidence_manifest.py --check rc 0. The test modules that name a changed path (grep -rl over tests/ for each changed file's basename, claude-native-practice and slot-manifest, not capped) are 72; each ran on its own (unittest counted 4,099 tests). 64 pass, among them tests.test_native_practice_snapshot_provenance (9 tests) and tests.test_native_practice_fork_toggle (2). The other 8 fail from this host's environment, not the fold; at 728141f the only test that failed in CI was the label test. Four fail the same way on the untouched 728141f: tests.test_local_pages_overview (the 2 ComposerTests failures); tests.test_local_pages_architecture_read_boundary and tests.test_local_pages_architecture_sources (26 errors each, no /usr/bin/zstd); and one test of tests.test_token_e2e_grader (git clone --local cannot hardlink across filesystems). The other four need jsonschema, which this host's python3 lacks: tests.test_component_matrix, tests.test_final_admission, tests.test_final_stack and tests.test_gap_closeouts. With the fold they pass in a Python 3.12 venv built from .github/requirements-ci.txt, as do tests.test_lane_packets, tests.test_paired_runs_results and tests.test_saturation_ledger, whose jsonschema tests had skipped. Co-Authored-By: Claude Opus 5.5 <[email protected]>
6 tasks done
…oint the Cloud routines locator Fold 3 on 450608c, at the command center's request after its read of fold 2. Regression tests: tests/test_native_practice_owed_check_corrections.py, in the style of tests/test_native_practice_doc_corrections.py, pins the two corrections fold 2 made from the command center's owed-checks report (command-center/claude-native/OWED-CHECKS-2.1.302-20261017.md). - F1.1, settings-permissions (SettingsPermissionsRmPromptTests): [email protected] L245 (2.1.299) fixes rm prompts on shell -c scripts; it does not change rule evaluation, which L373 and L280 (2.1.299) do. The slots.json row cites L245 only as "L245 (2.1.299, rm prompts on shell `-c` scripts)", its rule-evaluation sentence cites L373 and L280 without L245, and the native-clients.md section carries the corrected Evidence and Notes lines and neither of the two wrong phrases. - F2.1, subagent-definitions (SubagentDefinitionsDriftNoteTests): the note has none of the three stale drift phrases and states that the copies match; the workers.md section mirrors it. The count of definitions in the corrected sentence equals the files in adoption/agents/claude and in .claude/agents, which are byte-identical. Its locator into docs/decisions/2026-10-13-claude-agent-drift-check.md names the line that records the old note as stale. The host folder ~/.claude/agents is not readable from the repository. Fail first: with only the test file overlaid on 728141f, each of the 5 tests fails with an assertion (FAILED (failures=1) each; the module FAILED (failures=5)). At 450608c with the file added, each passes (module OK). Locators: /usr/bin/grep -rn over the whole repository, not capped, for the basename of slots.json and of each of the 12 reference pages this PR changed, followed by :<digits>, finds 103 locators in text files and one compiled .pyc that git ignores. Only slots.json moved lines in this PR: every hunk in the pages replaces lines one for one. One live locator into it was stale. The gap-resolution record at line 174 cited reference/slots.json:1625 for the "Cloud routines" alternative of scheduled-tasks: the right line at 8c95a50, the revision its search names, and on main. The text is at line 1649 now. Because the sentence reports that search, the locator keeps :1625 at 8c95a50 and adds "current locator `:1649`", the form the ecosystem-roadmap record uses (2026-09-28-ecosystem-roadmap.md:357). Line 1649 is "Cloud routines" in the alternatives of scheduled-tasks. The edit stays on its line, so the record keeps its 245 lines and its lines 179-181 keep the numbers that the usage-cost-monitoring note and tests/test_native_practice_ledger_obs_sched.py:85 cite. Its slots.json:3 locator (client_version) still resolves. The other hits stay as they are: - 64 sit in evidence/artifacts/claude-native-practice-20261009/primary-source-reading.json. They resolve at a30c218, and tests.test_native_practice_snapshot_provenance checks them there. The record that describes them (2026-10-09-claude-code-native-practice.md:344) gives slots.md:35 as an example and says it resolves at that revision. - The test comments that cite a review finding of #1001 or #1005 are history. - The rest name other files whose names end the same way: 2026-09-30-omniroute-runtime-workers.md, 2026-09-28-openhands-resolver-isolation.md, a docs/token-efficiency.md that this repository has never tracked (agent-lab's), and the dated slots.json snapshots under evidence/artifacts. Evidence rows: scripts/host_receipts.register_file added rows for the two changed files; the gap-resolution record had none. scripts/evidence_manifest.py --write left the file unchanged. Checks, run with fold 3 in the tree before this commit: python3 scripts/validate.py rc 0; python3 scripts/evidence_manifest.py --check rc 0. The test modules that name a changed path (grep -rl over tests/ for each changed file's basename, claude-native-practice and slot-manifest, not capped) are now 74. Two are new to the list: the new module, and tests.test_upstream_surface_watch, which reads the gap-resolution record. unittest counted 4,220 tests. 64 modules pass, among them the new module (5 tests), tests.test_native_practice_snapshot_provenance (9) and tests.test_native_practice_fork_toggle (2). The other 10 fail because of this host, not the fold. CI passed every validate shard at 450608c. - These fail the same way with the tracked tree at 450608c: tests.test_upstream_surface_watch (4 CachedArtifactTests, which read this host's surface-watch cache; its record checks pass); tests.test_local_pages_overview (the 2 ComposerTests); tests.test_local_pages_architecture_read_boundary and tests.test_local_pages_architecture_sources (26 errors each, no /usr/bin/zstd); and one test of tests.test_token_e2e_grader (git clone --local across filesystems). - tests.test_component_matrix, tests.test_final_admission, tests.test_final_stack and tests.test_gap_closeouts need jsonschema, which this host's python3 lacks. With fold 3 they pass in a Python 3.12 venv built from .github/requirements-ci.txt, as do tests.test_lane_packets and tests.test_paired_runs_results. - tests.test_saturation_ledger lost one V2PendingCliTests test, with "native publication scanner unavailable", in each of two runs made while three test streams shared the host. Run alone it passes under python3 (OK, skipped=1) and in the venv (OK). Co-Authored-By: Claude Opus 5.5 <[email protected]>
… each pinned by a test Fold 4 on 1af2052. Both reads of 1af2052 are done; this commit fixes the four findings the command center listed from them. Each correction has a regression test that fails, with an AssertionError, on the text it replaces. 1. P2: F5.2 had no regression test (observation-inference.md:13, slots.json:2107; F5.2 of the command center's owed-checks report, OWED-CHECKS-2.1.302-20261017.md). The new class UsageCostMonitoringSpanAttributeTests in tests/test_native_practice_owed_check_corrections.py checks that the row and the page: - lack "is to be added to the collector's tool-name and privacy allowlists"; - carry "The span attributes need no allowlist entry" and "To be tested, with Claude traces on". It also checks that the test line the note cites (tests/test_observability_tool_names.py:178) still asserts OTEL_TRACES_EXPORTER "none". Run with only the test file overlaid on 728141f, each of its 3 tests fails. They pass at 1af2052, where fold 2 made the correction, and at this commit. 2. P3: the L916 sentence ([email protected] L916, 2.1.290) left out F3.2 (token-efficiency.md:51, slots.json:785). One sentence is added to the output-compression note, written to the row and the page from one string. It says three things: - rtk 0.51.0 rewrites every npx command (rtk-ai/[email protected] src/discover/rules.rs:120); - none of the 19 `npx *skills` deny rules in the user settings has an `rtk npx` twin; - PR #1238 adds the 19 twins to the template. The counts come from an exact-key read of permissions.deny at 2026-10-17T04:41:38Z (19 rules, 0 twins). The repository's own matcher (ProfileTemplateSettingsTests.bash_rule_matches) finds no deny rule for six rtk spellings of the skills CLI there, and one for the plain spelling. PR #1238's template holds 19 rules and 19 twins at its head 6bf2eb5. OutputCompressionRtkNpxGapTests checks that the row and the page carry the sentence after the force-push one; both checks fail on 728141f and on 1af2052. It also checks that the template still holds 19 `Bash(npx *skills` rules, which stays true after #1238. The slot manifest's sha256_when_labeled is the sha256 of this commit's slots.json, taken from sha256sum. differs_from_this_snapshot_in is unchanged because notes are not exported (test_no_other_exported_field_differs passes). 3. P3: fold 3's "current locator `:1649`" in docs/decisions/2026-10-09-claude-code-gap-resolution.md:174 would go stale. As the command center ruled, the record is back to main's bytes (git checkout origin/main; git diff --quiet origin/main exits 0), because its citation is already pinned to the search revision 8c95a50. The evidence row fold 3 added for it is removed; the record has none on main. DispositionCitationTests in tests/test_upstream_surface_watch.py already checks this record against references that move. It gains two tests: - the routines sentence keeps `reference/slots.json:1625` and has no "current locator" (fails on 1af2052; passes on 728141f and here); - line 1625 is "Cloud routines" at 8c95a50 (skipped when the history lacks that revision). 4. P3: the slot manifest's note (claude-native-slot-manifest.json:69) named six slots whose notes differ from the snapshot when 21 do. It also named three of the five top-level keys that differ: checked_at and client_version differ too, since this PR's first commit. The sentence now names fields, not slots: "Slot fields this export does not carry also differ (notes, primary_sources, primary_sources_total and github-action's retired block), and so do the top-level checked_at, client_version, cross_client, selection_rule and status_values." A new test in tests.test_native_practice_snapshot_provenance's BaselineHistoryTests, test_the_note_names_what_differs_beyond_the_exported_fields, builds that sentence from the baseline and current slots files. On failure it prints the sentence to write; it fails on 728141f and on 1af2052. The note's other counts hold at this commit: the 2.1.302 update changed the evidence of eleven slots and four routes. Evidence rows: manifests/evidence.json is 450608c's copy, with rows registered through scripts/host_receipts.register_file for the six files this fold changes and for the fold-3 test. Against 1af2052 it drops the record's row and refreshes those six. scripts/evidence_manifest.py --write left it unchanged. Checks, run with fold 4 in the tree before this commit: - python3 scripts/validate.py rc 0; python3 scripts/evidence_manifest.py --check rc 0. - The five acceptance modules, each by name, all OK: tests.test_native_practice_ledger_obs_sched (8 tests), tests.test_native_practice_ledger_rows_1 (3), tests.test_native_practice_ledger_rows_tokeff_new (7), tests.test_native_practice_snapshot_provenance (10) and tests.test_skills_manifest (38). - The test selection is not capped: grep -rl over tests/ for the basename of every path this PR or this fold changes, plus claude-native-practice and slot-manifest, gives 76 modules. - 75 ran one at a time and unittest counted 4,324 tests; 66 modules pass. - tests.test_runtime_worker_openhands_push_gate, which reads the committed HEAD, runs after this commit. - The other 9 fail because of this host, not the fold; CI passed every validate shard at 450608c. - These fail the same way with the tracked tree at 450608c, as measured for fold 3: - tests.test_upstream_surface_watch: the same 4 CachedArtifactTests, which read this host's surface-watch cache. Its new record tests pass. - tests.test_local_pages_overview: the 2 ComposerTests. - tests.test_local_pages_architecture_read_boundary and tests.test_local_pages_architecture_sources: 26 errors each, no /usr/bin/zstd. - one test of tests.test_token_e2e_grader: git clone --local across filesystems. - tests.test_component_matrix, tests.test_final_admission, tests.test_final_stack and tests.test_gap_closeouts need jsonschema, which this host's python3 lacks. With fold 4 they pass in a Python 3.12 venv built from .github/requirements-ci.txt, as do tests.test_lane_packets and tests.test_paired_runs_results. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…e row; scope the rtk npx sentence Fold 5 on 609d3e1. Both reads of 609d3e1 requested changes, and the higher rating governs. This commit fixes the two findings the command center listed. 1. P1 (Muse): the command center corrects ruling 3 of fold 4. - docs/decisions/2026-10-09-claude-code-gap-resolution.md stays at main's bytes, but its manifests/evidence.json row must not be dropped. - Fold 3 (1af2052) registered the record. The PR-registration check requires a row for every path a PR commit registered (scripts/validate.py:776 and :786-788). CI runs it with the PR base and the previous heads (.github/workflows/validate.yml:173-178). Only a deleted file may lose its entry (docs/lanes.md:119-127; the fixtures at tests/test_registry_rows.py:68-84 and :112). - At 609d3e1, python3 scripts/validate.py --registration-base 1af2052 and --registration-base f00d478 each exited 1 with "docs/decisions/2026-10-09-claude-code-gap-resolution.md: required registration row missing", and CI's validate-shard-0 failed. - scripts/host_receipts.register_file restores the row with the reverted file's current sha256 and bytes (15899 bytes; the file is unchanged against main). 2. P3 (Claude and Muse): "Every npx command is rewritten too" is false at rtk v0.51.0 (rtk-ai/rtk@e001f773) for an npx command that a deny rule matches. - rtk's Claude hook checks the original command against the Bash deny rules first (src/hooks/permissions.rs:84-90) and skips the rewrite on a match (src/hooks/hook_cmd.rs:688-691); only the remaining npx commands reach the npx rule (src/discover/rules.rs:120). - The sentence now limits the rewrite to npx commands that no deny rule matches, and says that the twins in #1238 cover the `rtk npx` spelling, which rtk's own deny check does not cover. - The edit script reads the sentence from the test's CLAUSE and writes it to token-efficiency.md:51 and slots.json:785. The module docstring is scoped the same way. - With only the test file overlaid on 609d3e1, OutputCompressionRtkNpxGapTests.test_the_row_names_the_gap_and_its_fix and test_the_page_carries_the_row each fail with an AssertionError; both pass here. - The slot manifest's sha256_when_labeled is the sha256 of this commit's slots.json, taken from sha256sum. differs_from_this_snapshot_in is unchanged, because notes are not exported. Evidence rows: register_file refreshed the rows of slots.json, token-efficiency.md, the slot manifest and the test module, and restored the record's. scripts/evidence_manifest.py --write left the file unchanged. Checks, run with fold 5 in the tree before this commit: - python3 scripts/validate.py rc 0; python3 scripts/evidence_manifest.py --check rc 0. The registration checks read the committed head, so validate.py with --registration-base origin/main and with --registration-base 1af2052 runs after this commit; the PR body records the exits. - The five acceptance modules all pass: tests.test_native_practice_ledger_obs_sched (8 tests), tests.test_native_practice_ledger_rows_1 (3), tests.test_native_practice_ledger_rows_tokeff_new (7), tests.test_native_practice_snapshot_provenance (10) and tests.test_skills_manifest (38). - The uncapped selection is the same 76 modules as for fold 4. 75 ran before the commit, in two streams, with tests.test_saturation_ledger alone afterwards; unittest counted 4,324 tests. - 66 pass, among them tests.test_registry_rows, tests.test_validate and tests.test_host_receipts. - tests.test_runtime_worker_openhands_push_gate runs on the committed head. - The other 9 are the environment failures recorded for fold 4. Each fails the same way at the previous head, or passes in the CI-requirements venv: four CachedArtifactTests, two ComposerTests, no /usr/bin/zstd (two modules), one cross-filesystem clone, and four modules that need jsonschema. Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins
marked this pull request as ready for review
October 17, 2026 07:01
seathatflowsinourveins
deleted the
docs/claude-native-practice-currency-2.1.302
branch
October 17, 2026 07:13
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
docs/decisions/2026-10-09-claude-code-gap-resolution.mdstays at main's bytes, and itsmanifests/evidence.jsonrow stays.scripts/validate.py:776and:786-788, which CI runs with the PR base and previous heads) requires a row for every path a PR commit registered.docs/lanes.md:119-127).validate.py --registration-basefailed at609d3e14. Fold 5 restores it with the file's current bytes.90471d63f20918efa3a63ef949caffd8c012656clane:foundation.claude/skills/claude-native-practice/reference/: slots.md, slots.json and eleven layer pages. cross-client.md is unchanged, because it is hash-tested against cross-client-lines.json.evidence/artifacts/claude-native-practice-20261009/claude-native-slot-manifest.json: itssha256_when_labeledfollows slots.json,differs_from_this_snapshot_inlists the newly differing slots, and its note names the other fields that differ.manifests/evidence.json: the re-registered hashes of the changed files.tests/test_native_practice_fork_toggle.pytests/test_native_practice_owed_check_corrections.py(new)tests/test_native_practice_snapshot_provenance.pytests/test_upstream_surface_watch.py: two tests beside the existing checks on the gap-resolution record.SOTA sources
CHANGELOG.mdat tagv2.1.302, fetched 2026-10-16T22:15Z withgh api repos/anthropics/claude-code/contents/CHANGELOG.md -H "Accept: application/vnd.github.raw", sha256 prefix57fde96b3318543c.[email protected] L<n>, the form the pages already use, and each cited line was checked against the fetched file.native-clients.mdisolation.mdtoken-efficiency.mdworkers.mdmcp-surfaces.mdagent-sdks.mdobservation-inference.mdslots.md: header onlyv0.51.0(commite001f773f80b22b7dc4c7a79521b30e35aaef026):src/hooks/hook_cmd.rs:648-651: the PreToolUse rewrite returns Claude'stool_inputwith onlycommandreplaced.src/discover/rules.rs:61: the git subcommands it rewrites.src/hooks/permissions.rs:84-90andsrc/hooks/hook_cmd.rs:688-691: the Claude hook checks the original command against the Bash deny rules first, and a match skips the rewrite (skip:deny_rule).src/discover/rules.rs:120: the npx rule (^npx\s+), which rewrites only the npx commands that no deny rule matches.v3.1.0(commit11ca7c5b3b65e7fc216c7eae5a9aac67d38c11ea):crates/ai-memory-mcp/src/server.rs:169-171: the instructions core that precedes the routing marker.:9118-9126: its test.Evidence-class table
tests.test_native_practice_retired_routesSurfaceTests, the ledger tests and the new correction testsmcp__allow/deny audit, the agenttools:audit, the rtk-hook check, the up-front MCP measurement and the OTel field statediff -rqof the agent folders (exit 0), and the user settings'permissions.deny(19npx *skillsrules, 0rtk npxtwins, 2026-10-17T04:41:38Z)728141f2and1af2052c(fold 3 and fold 4 commit messages)tests.test_native_practice_snapshot_provenance,scripts/evidence_manifest.py --check,scripts/validate.pyWhat the owed checks settled, still owe, and hand to another PR:
tools:lists for prefix-matchedmcp__entries: none relied on prefix matching;rtk hook clauderewrite against the 2.1.300updatedInputvalidation: no key to drop;gen_ai.conversation.idcloses the attribution gap, with Claude traces on.rtk npxdeny twins of the skills-CLI rules.Local commands run
At head
a2f56f7b660237cdbfde95e80300960beb01eaf7(fold 5), on this host. The registration runs read the committed head:At
609d3e14, both registration runs exited 1 withdocs/decisions/2026-10-09-claude-code-gap-resolution.md: required registration row missing, and CI's validate-shard-0 failed. That is the check fold 5 fixes.The test selection is not capped. It is every module that
grep -rlovertests/finds for the basename of any path the PR changes, plusclaude-native-practiceandslot-manifest: the same 76 modules as for fold 4. Before the commit, 75 ran in two streams, withtests.test_saturation_ledgeralone afterwards; unittest counted 4,324 tests.tests.test_runtime_worker_openhands_push_gate(127 tests, OK) ran on the committed head.tests.test_native_practice_owed_check_corrections(11 tests),tests.test_registry_rows(25),tests.test_validate(86),tests.test_host_receipts(184) andtests.test_saturation_ledger(99, OK with 1 skipped)..github/requirements-ci.txt:tests.test_upstream_surface_watch: 4 CachedArtifactTests, which read this host's surface-watch cache. Its record tests pass.tests.test_local_pages_overview: the 2 ComposerTests.tests.test_local_pages_architecture_read_boundaryandtests.test_local_pages_architecture_sources: no/usr/bin/zstd.tests.test_token_e2e_grader:git clone --localacross filesystems.tests.test_component_matrix,tests.test_final_admission,tests.test_final_stackandtests.test_gap_closeouts: they need jsonschema, and they pass in the venv.Fail-first: each correction's new test was run with only the test files overlaid on the text it replaced. Every failure was an AssertionError:
728141f2for F1.1, F2.1 and F5.2;1af2052cfor fold 4's F3.2 clause, the record locator and the manifest note;609d3e14for fold 5's scoped F3.2 sentence:test_the_row_names_the_gap_and_its_fixandtest_the_page_carries_the_row.The fold 3, 4 and 5 commit messages list each test.
Before the push:
git fetch origin main(main isf00d4780, #1237), thengit merge-tree --write-tree origin/main a2f56f7b, which exited 0. The merged tree'smanifests/evidence.jsonis sorted and unique, the rows of the changed paths match the merged blobs, and #1237's record keeps its row. No rebase was needed, so fold 5 is a fast-forward from609d3e14. The pre-push host-name scan found 0 matches, and the digest guard and registry tests passed.Decision record
None new. This is a currency update under docs/decisions/2026-10-09-claude-code-native-practice.md. Each slot's existing "Overturn when" stays. Where a release fired an overturn (context-compaction, background-workflows), the notes say so and record that the default stands. docs/decisions/2026-10-09-claude-code-gap-resolution.md is unchanged against main, as the command center ruled: its routines locator is pinned to the search revision
8c95a50d. Under the CC's correction to that ruling, it keeps themanifests/evidence.jsonrow that fold 3 gave it, with its current bytes.Host evidence
Not applicable: no file under
evidence/hosts/changes.Checklist
version comment (no floating tags). (none changed)
permissions: {}and grant each jobonly what it needs (
contents: read, or an explicitly justified addition). (none changed)added without a documented owner.
moved or overwritten).
🤖 Generated with Claude Code
https://claude.ai/code/session_01QcCViiYWLxs4igpJR3yws6