Repository navigation
Compaction-window A/B/C preregistration draft (not frozen, not run) - #416
Closed
seathatflowsinourveins wants to merge 6 commits into
Closed
seathatflowsinourveins wants to merge 6 commits into
seathatflowsinourveins wants to merge 6 commits into
Conversation
seathatflowsinourveins
force-pushed
the
claude/compaction-window-ab-prereg-20260927
branch
2 times, most recently
from
September 27, 2026 20:43
f7cc409 to
b6f36d8
Compare
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 27, 2026
…alues Found and fixed through the upstream gh-fix-ci skill (openai/skills@49f948fa) on the GPT-6 lane, then reviewed by the coordinator: - tests/test_workflow_security_coverage.py lists runtime-worker-skills-freshness.yml; the workflow itself already passes the hardening, pinning, permissions and zizmor checks. - blind_checkout: the review disposition "fixed" joins the closed-vocabulary labels (as in #416), and the superseded rollback assertion's disposition is data. - harness-defaults anti-pattern row: run acceptance with TMPDIR outside every repository. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 27, 2026
…ef's tip On 2026-09-27 six PRs (#416, #425-#429) failed CI's validate job on three registry checks that run in about a second locally: - the OSV lockfile inventory; - the blind-checkout label classification; - the new-workflow security coverage. scripts/git-hooks/pre-push runs those three test methods against the tip commit of each pushed ref, in a detached worktree of exactly that commit, and refuses the push unless all three run and pass. Like CI, which tests one commit per pull request, it does not test the commits between a ref's old and new tip. A skip or an expected failure counts as a failure, so the hook refuses while zizmor is missing and there is a commit to test. `git push --no-verify` is the visible override. The same core.hooksPath that enables the pre-commit gitleaks gate activates it. Scratch and cleanup: - The scratch base defaults to /var/tmp. The checkout is about 140 MB, and file-hierarchy(7) keeps /tmp, usually a tmpfs, for small files. - The inside-a-repository guard asks git's own discovery, after dropping the GIT_DIR that git exports to hooks. An empty .git mount point, as a sandbox leaves in /tmp on the WSL host, is not a repository, so it is not refused. - HUP, INT, QUIT, PIPE and TERM exit through the EXIT trap, as Autoconf's configure traps 1, 2, 13 and 15. A reader that closes early (`git push 2>&1 | head -n 1`) no longer leaves a worktree behind. - The runner puts the checked-out tree first on sys.path, so PYTHONSAFEPATH plus a PYTHONPATH naming another checkout cannot supply the tests. - stdin is parsed before the zizmor check, so a deletion needs no zizmor. Sources: - githooks(5) for git 2.43.0: pre-push, and the exported GIT_DIR. - git's templates/hooks--pre-push.sample: the all-zero oid and the read loop. - git-rev-parse(1) --absolute-git-dir, and git(1) GIT_DIR and GIT_CEILING_DIRECTORIES. - file-hierarchy(7). - Autoconf lib/autoconf/general.m4 at 0c777e326bd9: traps 1, 2, 13 and 15. - python3 -P and PYTHONSAFEPATH. - The repository's pre-commit gate and its test, as the pattern. tests/test_pre_push_gate.py has 16 tests, run on a shared clone with plumbing-built commits. Each run sets GIT_CEILING_DIRECTORIES above its temporary root, and one test pushes natively from a linked worktree to a shared bare clone. Each test checks that no worktree or scratch is left behind. Of twenty named mutations of the hook, the tests catch sixteen; the PR lists the four defensive lines they miss. Docs: docs/secret-storage.md step 5c (behaviour, prerequisites, override and cleanup), docs/harness-defaults.md (an anti-pattern row), and the builder row's Use cell in examples/claude-native/workflows/README.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins
added a commit
that referenced
this pull request
Sep 27, 2026
…ef's tip (#438) On 2026-09-27 six PRs (#416, #425-#429) failed CI's validate job on three registry checks that run in about a second locally: - the OSV lockfile inventory; - the blind-checkout label classification; - the new-workflow security coverage. scripts/git-hooks/pre-push runs those three test methods against the tip commit of each pushed ref, in a detached worktree of exactly that commit, and refuses the push unless all three run and pass. Like CI, which tests one commit per pull request, it does not test the commits between a ref's old and new tip. A skip or an expected failure counts as a failure, so the hook refuses while zizmor is missing and there is a commit to test. `git push --no-verify` is the visible override. The same core.hooksPath that enables the pre-commit gitleaks gate activates it. Scratch and cleanup: - The scratch base defaults to /var/tmp. The checkout is about 140 MB, and file-hierarchy(7) keeps /tmp, usually a tmpfs, for small files. - The inside-a-repository guard asks git's own discovery, after dropping the GIT_DIR that git exports to hooks. An empty .git mount point, as a sandbox leaves in /tmp on the WSL host, is not a repository, so it is not refused. - HUP, INT, QUIT, PIPE and TERM exit through the EXIT trap, as Autoconf's configure traps 1, 2, 13 and 15. A reader that closes early (`git push 2>&1 | head -n 1`) no longer leaves a worktree behind. - The runner puts the checked-out tree first on sys.path, so PYTHONSAFEPATH plus a PYTHONPATH naming another checkout cannot supply the tests. - stdin is parsed before the zizmor check, so a deletion needs no zizmor. Sources: - githooks(5) for git 2.43.0: pre-push, and the exported GIT_DIR. - git's templates/hooks--pre-push.sample: the all-zero oid and the read loop. - git-rev-parse(1) --absolute-git-dir, and git(1) GIT_DIR and GIT_CEILING_DIRECTORIES. - file-hierarchy(7). - Autoconf lib/autoconf/general.m4 at 0c777e326bd9: traps 1, 2, 13 and 15. - python3 -P and PYTHONSAFEPATH. - The repository's pre-commit gate and its test, as the pattern. tests/test_pre_push_gate.py has 16 tests, run on a shared clone with plumbing-built commits. Each run sets GIT_CEILING_DIRECTORIES above its temporary root, and one test pushes natively from a linked worktree to a shared bare clone. Each test checks that no worktree or scratch is left behind. Of twenty named mutations of the hook, the tests catch sixteen; the PR lists the four defensive lines they miss. Docs: docs/secret-storage.md step 5c (behaviour, prerequisites, override and cleanup), docs/harness-defaults.md (an anti-pattern row), and the builder row's Use cell in examples/claude-native/workflows/README.md. Co-authored-by: Scout <scout@local> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Drafted by GPT-6 (gpt-6-astra, effort max) through the Codex stack-worker lane from a coordinator brief; the Codex sandbox could not write the worktree's Git metadata, so the coordinator committed the files, rephrasing one sentence that tripped the gitleaks generic-api-key rule (no allowlist). Arms: CLAUDE_CODE_AUTO_COMPACT_WINDOW unset (about 967K), 400000, 200000; motivation is the measured 2026-09-27 child-token diagnosis. Status DRAFT: open gates are recorded in the preregistration. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ot frozen, not run) GPT-6 (astra, max) repair of the review findings: OTel/Loki request ledger with ccusage reconciliation, a proposed token budget and owned-process cancellation, minimum-cost selection with explicit ties, Inspect 0.3.271 contracts with 32 hashed controls, and a descriptive-pilot scope for three repetitions. Runtime gates stay open and launch stays prohibited. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…-F9 (still draft, not frozen, not run) GPT-6 repair builder (effort max) against the independent Claude review's nine findings; all fixed, none declined. Records the live host setting CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000 (user settings env since 2026-09-27T18:59:00Z) as a frozen host condition with per-arm read-back gates. Arm A isolates settings with --setting-sources project plus one sealed --settings packet for every arm and unsets the variable in its launch environment (flags present in native 2.1.283 help). blind_checkout: classify the review disposition "fixed" as a closed-vocabulary label and the inspect-skills source disposition as label text, so tests/test_blind_checkout.py's repository classification passes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…cumbent A and window-minus-buffer bands (still draft, not frozen, not run) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… F4 events as settings-save transitions (still draft, not frozen, not run) The documented live application of saved settings env values (env-vars.md) explains compactions at 618371..922073 after the 400000 window was saved; A's band stays [870300, 1000000]. Per-event timing was not re-checked. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…rding test, computed selection examples, F4 record consistency) (still draft, not frozen, not run) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins
force-pushed
the
claude/compaction-window-ab-prereg-20260927
branch
from
September 28, 2026 00:39
b6f36d8 to
452f7b1
Compare
5 tasks done
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 28, 2026
…alues Found and fixed through the upstream gh-fix-ci skill (openai/skills@49f948fa) on the GPT-6 lane, then reviewed by the coordinator: - tests/test_workflow_security_coverage.py lists runtime-worker-skills-freshness.yml; the workflow itself already passes the hardening, pinning, permissions and zizmor checks. - blind_checkout: the review disposition "fixed" joins the closed-vocabulary labels (as in #416), and the superseded rollback assertion's disposition is data. - harness-defaults anti-pattern row: run acceptance with TMPDIR outside every repository. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 28, 2026
…alues Found and fixed through the upstream gh-fix-ci skill (openai/skills@49f948fa) on the GPT-6 lane, then reviewed by the coordinator: - tests/test_workflow_security_coverage.py lists runtime-worker-skills-freshness.yml; the workflow itself already passes the hardening, pinning, permissions and zizmor checks. - blind_checkout: the review disposition "fixed" joins the closed-vocabulary labels (as in #416), and the superseded rollback assertion's disposition is data. - harness-defaults anti-pattern row: run acceptance with TMPDIR outside every repository. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 28, 2026
…alues Found and fixed through the upstream gh-fix-ci skill (openai/skills@49f948fa) on the GPT-6 lane, then reviewed by the coordinator: - tests/test_workflow_security_coverage.py lists runtime-worker-skills-freshness.yml; the workflow itself already passes the hardening, pinning, permissions and zizmor checks. - blind_checkout: the review disposition "fixed" joins the closed-vocabulary labels (as in #416), and the superseded rollback assertion's disposition is data. - harness-defaults anti-pattern row: run acceptance with TMPDIR outside every repository. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 28, 2026
…alues Found and fixed through the upstream gh-fix-ci skill (openai/skills@49f948fa) on the GPT-6 lane, then reviewed by the coordinator: - tests/test_workflow_security_coverage.py lists runtime-worker-skills-freshness.yml; the workflow itself already passes the hardening, pinning, permissions and zizmor checks. - blind_checkout: the review disposition "fixed" joins the closed-vocabulary labels (as in #416), and the superseded rollback assertion's disposition is data. - harness-defaults anti-pattern row: run acceptance with TMPDIR outside every repository. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 28, 2026
…alues Found and fixed through the upstream gh-fix-ci skill (openai/skills@49f948fa) on the GPT-6 lane, then reviewed by the coordinator: - tests/test_workflow_security_coverage.py lists runtime-worker-skills-freshness.yml; the workflow itself already passes the hardening, pinning, permissions and zizmor checks. - blind_checkout: the review disposition "fixed" joins the closed-vocabulary labels (as in #416), and the superseded rollback assertion's disposition is data. - harness-defaults anti-pattern row: run acceptance with TMPDIR outside every repository. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins
added a commit
that referenced
this pull request
Sep 28, 2026
…l manifest (#429) * Runtime-worker skills program: project-scoped installs and a 138-skill pinned manifest GPT-6 (astra, max) build. install_skills.py gains --project-dir and --agent targets with the default global behaviour unchanged, project lock identity and pinned source-tree checks, and scoped rollback. The runtime-worker manifest pins 138 skills (77 OpenHands extensions v0.25.0, all 15 superpowers lifecycle skills, 28 existing adoption entries by reference) with a report-only freshness checker and scheduled workflow. Not installed into any worker yet; invocation and pruning are measured after install. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Runtime-worker skills: repair round for the independent Claude review GPT-6 (astra, max) repair of all seven findings; the blocker (#407's scoped global rollback) was already resolved at the rebase and is kept byte for byte. Project rollback now removes exactly the add targets and checks the canonical folder, project lock entry and Claude link independently, reporting a retained copy as an error instead of widening the deletion (skills@7407f389 src/remove.ts:209-333). A project .claude/skills/<name> that is not a symlink to the canonical folder is local-modified unless --force (installer.ts:254-264). Every selected source/ref is fetched before any add; an unavailable gh is reported as unverified, not as a mismatch. The pruning rule records Claude Code's skill-listing budget and treats dropped descriptions as unknown. 52 tests pass; five fail-first runs are recorded in validation.json. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * CI fix: cover the skills freshness workflow and classify the repair values Found and fixed through the upstream gh-fix-ci skill (openai/skills@49f948fa) on the GPT-6 lane, then reviewed by the coordinator: - tests/test_workflow_security_coverage.py lists runtime-worker-skills-freshness.yml; the workflow itself already passes the hardening, pinning, permissions and zizmor checks. - blind_checkout: the review disposition "fixed" joins the closed-vocabulary labels (as in #416), and the superseded rollback assertion's disposition is data. - harness-defaults anti-pattern row: run acceptance with TMPDIR outside every repository. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test_install_skills: compare resolved paths on both sides for macOS temp dirs On macOS the temporary directory sits under /var, a symlink to /private/var, so local.resolve() returned the /private/var form while the expected path kept the /var form. validate-macos failed 8 subtests of the two new project-install tests (run 36349458060). Resolve the expected path too, as tests/adaptive_paper_hermetic.py already does with os.path.realpath. Reproduced on Linux with TMPDIR set to a symlinked directory: 8 failures before, OK after; the module passes 38 tests with a plain or symlinked TMPDIR. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Runtime-worker skills repair r2: exclude main's gated security-audit, take reused gates from main Coordinator direction on the #429 blocker (option b): runtime workers must not bypass a gate set on main. - Contract: every skill in adoption/skills/manifest.json is either reused by reuse_ref (pins equal to main's, gates not restated) or listed in `excluded` with an adoption_ref, a reason and an overturn condition. security-audit (#448, 8315274: Codex off, name-only pending the M5c bake-off against /security-review) is excluded, and a test fails as soon as main's gate on it changes. A synthetic future main skill in neither set fails the contract (negative control). - Gates: install_skills.py resolves each reuse_ref when it reads a manifest, refuses an entry whose pin drifted or that restates codex_enabled/claude_listing, and takes both gates from main. --print-codex-config on the runtime manifest now disables the 16 reused skills main keeps off for Codex; before, it printed none. The README states that claude_listing is a Claude Code skillOverrides setting that the OpenHands SDK does not read (OpenHands/software-agent-sdk@fcc102a6 skill.py:1123-1130, 182-185, 278-284, 528-538; same blob at da28c773). - --only naming a pruned project skill fails as pruned, not unknown. - The README documents that --check-only needs the pinned skills binary, and gh sign-in and network in project mode. - Counts: 138 selected skills from 12 sources (unchanged); 28 of main's 29 adoption skills reused; 8 exclusions (7 OpenHands, 1 adoption). - validation.json records the round (fail-first: 9 tests, failures=7, errors=2; after the fix: 9 OK) and refreshes every input hash; the anti-pattern log gains the dropped-gates row; the 8 changed files are re-registered in manifests/evidence.json. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Runtime-worker skills: narrow the OpenHands loader claim and the security-audit overturn (R2-6) The README said OpenHands withholds a skill from the model only through SKILL.md disable-model-invocation, and research.md said the SDK reads only SKILL.md frontmatter. load_user_skills also loads OpenHands' own enabled installed skills (skill.py:936-973 at fcc102a6). Both now say the loader reads skill directories, SKILL.md frontmatter and its installed-skill enable state, never Claude Code settings or a skillOverrides key. The available_skills citation moves from lines 182-185 to 183-186. The security-audit overturn now names a promotion as codex_enabled true or claude_listing on; any other change to main's gate still fails the exclusion test and needs a new review. The test message says so. validation.json records R2-6, the corrected sources, the red excerpt in log order, refreshed input hashes and the rerun checks; the five changed files are re-registered in manifests/evidence.json. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Runtime-worker skills records: note the rebase onto main 8d8f79c research.md and validation.json record the second rebase, onto 8d8f79c (#460), the merged docs/harness-defaults.md input hash and the checks rerun on that tree. The manifests/evidence.json re-registration that was part of this commit was dropped when the branch was rebased onto c1581fa, and is redone at the tip. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Runtime-worker skills repair r3: containment and pin checks before add, project scope, name-keyed reuse Two independent reviews of 8efdc35, a GPT-6 cross-family review (codex_call.sh, gpt-6-astra max) and a headless Claude session review, returned changes-needed with no blocker or high finding. Each code item failed first against the unchanged code: - GPT6-C1: refuse a project whose .agents/skills, .claude/skills or skills-lock.json passes through a symlink, whose selected skill paths resolve outside it, or that is --home, before any skills or gh call. - CL-D1: compare every selected pinned tree with its tree_sha in the preflight and refuse before any add; the native in-use guard keeps a rolled-back copy while a detected agent such as Codex reads it. - CL-D3: the runtime manifest carries "scope": "project" and is refused without --project-dir; pruned entries are never installed in either mode. - CL-D6: reuse_ref and adoption_ref name the adoption manifest and match by skill name. - CL-D7: runtime_skill_freshness.py reads the CLI version and ref from the manifest's cli pin. - GPT6-C5: offline zizmor analysis of the freshness workflow, with floating-tag, persist-credentials and permissions controls. Docs: the rendered OpenHands skill list omits <location>; disabled_skills and the loading flags are its controls; third-party instruction files load from the work directory and Git root, so the example worker projects move outside the checkout; rollback retention is certain when Codex is detected; skills-review-r1.json is labelled unpublished. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Runtime-worker skills repair r4: exclude verification-before-completion with main (M4, #464) Main c0966da (#464) moved verification-before-completion from the adoption skills to its excluded list under the skills-trial conflict rule M4. On the rebased tree the unchanged coverage contract and installer refused the runtime manifest's reuse_ref for it (67 tests, 6 failures, 2 errors). - Exclude the skill in the runtime manifest with its reviewed pin, the M4 and AGENTS.md:16 reason, and the overturn "main re-admits it"; it carries no adoption_ref because main no longer lists it in skills. - New test_verification_before_completion_stays_excluded_until_main_readmits_it and the revised superpowers lifecycle test failed first; a source-count test ties sources and the research table to the selected skills. - Recount: 137 skills from 12 sources (superpowers 14), 27 reused (16 Codex-disabled on main), 9 exclusions, 15 empty cells (new github-ci-fix/extraction-caller gap), 1,020,955 bytes and 36,739 description characters. - validation.json: repair_r3.not_relayed becomes the five confirmed CONFIRM ids; repair_r4 records the rebase, sources, fail-first and checks. - State Codex detection precisely ($CODEX_HOME, ~/.codex when unset, or /etc/codex) in research.md, the harness-defaults row and a code comment. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Rebase onto main c0966da: re-register the PR's files in manifests/evidence.json Main's evidence.json with the 13 PR files registered at their current sha256 and byte size (8 added, 5 updated); no other entry changed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Scout <scout@local> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This was referenced Sep 29, 2026
Collaborator
Author
|
Custody notice (#416). Session native-agent-stack-0c is taking custody of this unowned draft. It has had no comment, review or push since 2026-09-28, and no lane has claimed it. Plan: retire it with a dated record on main, then close it.
Why:
Objections: reply here within 2 hours of this comment. If there are none, the builder starts. #416 closes only after the record merges. Claude session native-agent-stack-0c |
This was referenced Oct 3, 2026
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Oct 3, 2026
Hot-file protocol (docs/lanes.md, merge path): the merge takes main's manifests/evidence.json unchanged; the owned row is re-registered in the next and last commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 3, 2026
* Retire the unrun compaction-window pilot with a preserved record Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Refresh the evidence registry for the compaction-window retirement Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Repair the review findings in the compaction-window retirement record Two head locators move to the lines that hold the cited text (PREREGISTRATION.md:30 and :603), the F4 row, the bundle qualifier and the sensitivity-check sentence follow the pinned wording, g.5 and g.7 state what their sources say, and section k lists #488's twelfth citation site. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Refresh the evidence registry for the compaction-window retirement after merging main Hot-file protocol: main's manifests/evidence.json with docs/community-native-practice.md re-registered through host_receipts.register_file; component_matrix.py --write and new_host_grand_list.py --write changed no committed file; validate.py passed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Scout <scout@local> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
seathatflowsinourveins
deleted the
claude/compaction-window-ab-prereg-20260927
branch
October 8, 2026 07:55
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.
DRAFT preregistration, not frozen and not run: a matched A/B/C comparison of Claude Code's auto-compact window for Ultracode workflow children. The user decided on 2026-09-27 to test before changing anything, then adopt the window with the best quality per token. The run is intended for right after the Claude weekly-limit reset (2026-09-30 21:00 America/New_York).
Why
Motivation measured from native transcripts on 2026-09-27 (
blueprints/compaction-window-ab/motivation-20260927.md):Design
CLAUDE_CODE_AUTO_COMPACT_WINDOWunset (A, about 967K),400000(B, about 367K) and200000(C, about 167K)./contextat 1m, 400k, 200k and 100k, so each trigger is the window − 33,000. 1,000,000 − 33,000 matches the docs' "about 967K".absent, and the file's mtime is 23:21:57Z.--setting-sources projectand one identical sealed--settingspacket.env -u CLAUDE_CODE_AUTO_COMPACT_WINDOW, because sessions started before the revert still carry 400000 in their environment. The coordinator's own shell did.CLAUDE_AUTOCOMPACT_PCT_OVERRIDE,CLAUDE_CODE_MAX_OUTPUT_TOKENSandCLAUDE_CODE_DISABLE_1M_CONTEXTto be absent.envchanges.Open gates (recorded in the preregistration; each blocks launch until resolved)
271800 + 36*D + Hseconds, and D and H are not yet qualified.SOTA sources
CLAUDE_CODE_AUTO_COMPACT_WINDOW,CLAUDE_AUTOCOMPACT_PCT_OVERRIDE,CLAUDE_CODE_MAX_OUTPUT_TOKENS, and settings-file live application).claude -p "/context"on 2.1.283 at four window sizes.blueprints/retrieval-quality-v2/PREREGISTRATION.md("Sealing and Amendments") andevidence/artifacts/token-adoption-e2e-20260926/(PR-H: E2E preregistration for the token-save-practice stack (frozen tasks, metrics, gate, procedure) #381). The task reuse cites PR-H: E2E preregistration for the token-save-practice stack (frozen tasks, metrics, gate, procedure) #381's frozenpreregistration.json.examples/claude-native/workflows/child-usage.mjs, and the counting rules indocs/token-practice.md("never sum overlapping counters").This round: host-condition amendment and its review (head
452f7b14, base37739d32)treatment_proofvalue now catches them; the history records it excludes are named.fractions.Fraction.python3 -m unittest tests.test_compaction_window_ab_preregistration: 23 tests OK.test_blind_checkoutflagged four prose values under thedispositionlabel key; they now use thefixedlabel, with the prose underrepair, as earlier rounds did.scripts/validate.pypassed after re-registering the six files perdocs/lanes.md.PREREGISTRATION.mdsha256c76270ec0804a6e971d6b77cd3a104b584d234607ad848f0a428cf4b4b631970preregistration.jsonc2525d8277a5c00b2dcf63d6929b9c1fe22db247db84914a7ba2f4dbdf132e23tests/test_compaction_window_ab_preregistration.pyb0546ccb18a59ff8c2062a435760898475ef47e9e55e0b812e1f5612bdce4d28/contextdisplay observation, and the buffer can move with the client version.Earlier rounds
build-evidence.jsonandPREREGISTRATION.md.🤖 Generated with Claude Code