Repository navigation
knowledge: the caps disagree about whether they can be turned off; a non-window sweep finds five unrecorded backstops (Oct 19–26) - #31
Open
espi wants to merge 1 commit into
Conversation
…d a non-window sweep finds five unrecorded backstops Seven-day pass (Oct 19-26), stacked on PR #29's head because four prior update-knowledge PRs (#26-#29) are open and unmerged, leaving `main` 10,968 lines stale. Five research agents; all five returned. Every load-bearing claim re-fetched and verbatim-verified by the lead, and all 22 new arXiv IDs machine-verified in one id_list call (22/22, HTTP 200). Headline: one Claude Code env-var table gives three different answers to "can this cap be turned off?" — MAX_TURNS is rejected at startup, WEB_SEARCHES and SPAWN_DEPTH cannot be disabled, and STOP_HOOK_BLOCK_CAP documents `0` as an off switch. The Agent SDK documents its own split as deliberate, so the doctrine now states polarity per tool rather than treating every zero as a defect. Second finding, from deliberately ignoring the window: five first-party backstops this KB had never recorded, four of them bounding mechanisms it was tracking as unbounded — STOP_HOOK_BLOCK_CAP (the real number behind /goal's stall detector is 8, and 0 disables it), RESUME_INTERRUPTED_TURN_MAX_AGE_MS (the documented bound on the setting recorded as leaking hard stop #1 three times, available since July), SCRIPT_CAPS, requiredMinimumVersion and autoContinueAtUsageLimit (default true, so the default at a usage limit is an unbounded wall-clock wait). Also: hard stop #1 failed a sixth way and the extension layer is now a two-mechanism class (v2.1.304); Managed Agents documents a path from budgeted to permanently uncapped session; Goose deliberately widened its subagent cap 25 to 1000 and removed the recipe cascade; Gas City made no-progress detection a default and it has already fired on healthy work; `allowed-tools` is confirmed inert first-party, and a -p loop honours an untrusted repo's grants, which is this repo's documented operating mode. Corrections to this KB: Agent Skills did go to the AAIF (a live caveat was backwards); the retry-watchdog doc gap is an omission, not a lag; "Huntley's Loom" is now ghuntley/overalls. Two backlog items resolved and archived (AG2 v1.2.0, Factory's 10 runs/hour), one resolved by reversal, two narrowed. The primer stays at its 750-line budget by condensing section 3, 5A.8, 5B and 5A items 3-7/9-10 into archive/primer-detail-2026-10.md; nothing was retracted. No self-edit applied this pass; three routine improvements are suggested for a human in the PR body. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xy7o4ueqKKiLMxA5tJbGui
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.
Routine self-improvements
Applied (auto-gated): none this pass. Running the routine surfaced no repo-internal, non-semantic defect in
.claude/skills/update-knowledge/SKILL.md— no stale cross-reference, no broken relative path, no typo. The gate is default-deny, so nothing was applied.git diff --name-onlyconfirms noSKILL.mdis touched by this PR, and there is noself-edit:commit, soself-edit-guardwill no-op.Suggested (needs your confirm) — three, all routed to a human by the gate's own rules:
--max-budget-usddefect available for three months and invisible to a weekly fan-out), a window-scoped pass systematically cannot see a backstop that shipped quietly and never changed again. → Human-only because it adds a step and changes what step 3 does; "adding / removing / reordering / splitting steps" is an always-suggest trigger.mcp__github__*andghare restricted toespi/loops, whileraw.githubusercontent.comandgit ls-remotework fine — so source is always readable but a third-party PR/issue's state is not. Two carry-forward items (LiteLLM #43214, #43292) are blocked on exactly this. → Human-only: a change to method guidance, not a stale cross-reference.What this pass is, and why it is stacked
Four prior
update-knowledgePRs are open and unmerged — #26 (Sep 29), #27 (Sep 28 – Oct 5), #28 (Oct 5–12) and #29 (Oct 12–19), each stacked on the last. Per the skill's step 1 this pass branched from #29's head, not frommain, which was 10,968 lines stale; this PR is stacked on #29 (baseclaude/focused-clarke-u3t392). #30, the 2026-10-25 artifact-audit PR, is also open but touches noknowledge/file — no conflict. Because the stack carries three unmerged passes, the real baseline is Oct 19, which makes this a normal seven-day window rather than the 28-day gap the mergedCHANGELOGimplies.Method. Five parallel research agents (tooling & versions, ecosystem & techniques, key voices, guardrails & cost, verification & skills); all five returned. Every load-bearing claim was re-fetched and verbatim-verified by the lead rather than relayed: the Claude Code changelog was fetched raw, the in-window range (v2.1.304 Oct 19 – v2.1.310 Oct 23) sliced out and grepped, and all 22 new arXiv IDs machine-verified in one
id_listcall (22/22, HTTP 200) for ID ↔ exact title ↔ v1 date ↔ primary category. No ID was misdated or hallucinated. Where a claim is the lead's inference rather than a source's, it says so.The headline: one env-var table, three answers to "can this cap be turned off?"
0or an invalid value doesCLAUDE_CODE_MAX_TURNSMAX_WEB_SEARCHES_PER_SESSION·MAX_SUBAGENT_SPAWN_DEPTHCLAUDE_CODE_STOP_HOOK_BLOCK_CAP0to disable the cap."maxTurns…0runs the session without a turn limit…maxBudgetUsd… the CLI rejects0." ➜ So "zero means no cap" is in places an intentional convention, not only a bug: §6 now states polarity per tool. "Test every ceiling at zero" is unchanged and better evidenced — plus a new clause: test that it resets.Five native backstops the weekly sweep had never seen
Found by deliberately not scoping to the window. Four bound mechanisms the KB was tracking as unbounded.
CLAUDE_CODE_STOP_HOOK_BLOCK_CAP(v2.1.143) is the real number behind/goal's stall detector, and it is 8 — with an off switch. "Claude Code applies an 8-consecutive-continuation cap… overrides the next block and ends the turn. The count… resets each time Claude calls a tool."/goalis documented as "a wrapper around a session-scoped prompt-based Stop hook", so the primer's "several turns in a row" is eight.hooks.mdsays only "To raise the cap" — the page a hook author reads does not disclose the off switch./goalshipped.CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS(v2.1.211, July) — the documented bound on the exact setting this KB recorded as leaking hard stop knowledge: second update pass (2026-06-09) #1 three times, available the whole while. "Unset or0sets no bound… a negative or non-numeric value applies a one-hour bound. Spawn scripts for long-running agents can set this."CLAUDE_CODE_SCRIPT_CAPS(v2.1.98, April) — a per-script invocation cap,SUBPROCESS_ENV_SCRUBand vendor-labelled "defense-in-depth" withxargs/find -execfan-out "not detected."requiredMinimumVersion/requiredMaximumVersion(v2.1.163, Managed) — the first-party enforcement for the primer's own "pin the gate to a version, not declare it" rule, which the KB stated for weeks without finding the mechanism.autoContinueAtUsageLimit(v2.1.234) defaults totrue— so the default behaviour at a usage limit is an unbounded wall-clock wait, not an exit.Hard stops
--max-turns, Stop, or ended input by spawning subagents or re-running a finished one" — a different mechanism from v2.1.299's bypass, in the next release. Same window: a plugin that runs first can skip another mod's hooks, with a transcript line as the only remedy.guardrails/.GOOSE_SUBAGENT_MAX_TURNSdefault 25 → "Falls back toGOOSE_MAX_TURNS, then 1000", and the recipe cascade removed ("applies to that recipe's execution and any subagents or subrecipes it creates" → "applies to that recipe's execution."). Nothing failed — the cap was deliberately widened, which no amount of testing a current version prevents.current_usage_countat the kickoff boundary"; LiteLLM's falsy-zero is still live onmain(lines 289/304/319;Noneis guarded, so the omission is specifically about0), v1.107.0 never shipped, #44259 still unmerged. And0is uncapped by design — schema-valid and rendered as∞."shell": "powershell"), v2.1.310 ("Git Bash is missing and the hook's command is only quoted strings"), plus v2.1.288.progress_stall_timeoutis now "Legacy only: deprecated and ignored under the v2 reconciler", and v2 is "Unset (default)… when the city can run it".mainunder[Unreleased]; tag v1.5.1 does not carry it.arXiv:2610.31895— "nearly every run that needs outside help collects sufficient evidence, yet a third still exhaust their budget" — and an escalation tool "cuts budget exhaustion from 34.0% to 6.7%."Verification
arXiv:2610.29609: "self-report leakage: the agent's own self-report changes how completion is judged", and "Withholding it improves trace-only dangerous-misreport recall by 43.4 percentage points." Remedy is architectural, not a prompt.arXiv:2610.27465addresses this repo's envelope directly — "a change can run unattended only when its old version is kept and its verifier's strength has been measured", which "allows prompt, tool and skill edits". Its σ finding: a judge "sometimes gave the same score no matter what it was shown (9 of 37 settings) and reported no error, so a verifier can look healthy while approving anything." Lead's reading (flagged, not asserted): aself-edit:commit is a skill edit on their permitted side, git keeps the pre-edit file verbatim, andself-edit-guard.ymlis a deterministic CI check rather than an LLM judge, so σ is not its failure mode.arXiv:2610.28683: "every non-bot merge… passed a non-author review gate, yet 71 of those 263 merges (27%) rested only on an approval that a coding agent had submitted through the technical lead's GitHub account"; "the records cannot show who decided any of them."mainis unprotected and this PR is itself stacked.arXiv:2610.29143built exactly such an instrument and disqualified it ("agreement… 4% to 60% against a required 80%… kappa = 0.154"), concluding "a process measure judged by a language model partly reflects how a pull request is presented."allowed-toolsis confirmed inert first-party ("does not restrict which tools are available: every tool remains callable"), andallowed-toolseven in a-prun in a folder you've never trusted" —CLAUDE.mdsays loops are "run from here against other repositories", which is exactly the exposed configuration. ✅ Half of the Oct 19 item resolves: none of this repo's four skills declaresallowed-tools. ✅ Anddisallowed-toolsdoes restrict reach, documented for "a background loop".arXiv:2610.32155): "13.7% of the detected chains consist entirely of skills labeled safe by a single-skill scanner" — the skills analogue of "per-edit gates do not compose", landing on this repo's own open question about corpus-level re-testing.Corrections to this knowledge base
env-vars— a knob added four releases later was documented inside a week and the older one skipped. Re-worded, not renumbered.ghuntley/overalls— "Overalls launches on 3 November 2026", a much broader platform. Next pass: it launches Nov 3.stablemoved 2.1.292 → 2.1.308 againstlatest2.1.310, sostablenow carries the v2.1.304 cap-bypass fix.Gartner: the Symposium delivered, but not the predicted number
gartner.com403s reconfirmed, so all of this is Medium via syndication. The predicted keynote release exists and is in-window (Plummer and Moyer, Oct 19) — butClean negatives, and one streak broken
--max-budget-usd, the subagent concurrency/depth caps,onFailure, permission modes, or stall detection. ⭐ After three consecutive windows ofCLAUDE_CODE_RESUME_INTERRUPTED_TURNdefeats, this window had none.lucumrfeed header).Pruning (step 6)
Two items resolved and archived (AG2⚠️ gap was 10 days, not 8, and 1.2.1 landed two minutes before 1.2.0; Factory's "10 runs/hour" located — ⚠️ it is a row in a webhook delivery-status table, which is why two passes missed it), one resolved by reversal (AAIF), two narrowed. The primer held its 750-line budget by condensing §3, §5A.8, §5B and §5A items 3–7/9–10 into ⚠️ One repo-internal nit for a human, not fixed here:
v1.2.0published Oct 21 —archive/primer-detail-2026-10.md— nothing retracted or superseded, and the two facts that were updated are flagged in the archive header.archive/resolved-caveats.mdis newest-first except theArchived 2026-10-19section, which sits at the bottom.Standing re-verify backlog — all 165 open items, per step 2
Carried forward in full; nothing was dropped or allowed to age out. Several have been open for many passes, which is itself the signal. Full evidence for each is in
sources.md's "Known caveats" section.Security / highest priority — 24 open
onFailure: "block"wherever this repo delivers a guardrail through a hook.claude ultrareviewpath (sixth-plus consecutive pass; changelog grepping cannot resolve it).self-edit-guard?knowledge/in practice?guardrails/?--restrictedis not an OS-level sandbox.Guardrails / the three hard stops — 52 open
/goal's only non-self-reported hard stop is a default-8 counter with an off switch, and this KB never recorded it.CLAUDE_CODE_SCRIPT_CAPSis a first-party per-script invocation cap the KB never recorded, with a vendor-acknowledged bypass./goal-evaluator cost item.mainhas no branch protection, so two of its own declared gates are not gates.guardrails/as a check.0there means unknown.CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MStoo, and know it is undocumented./goalresets its own counter on resume.CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MSwherever this repo sets the watchdog, and know its two limits./loopships none of the three hard stops; its only bound is a seven-day wall clock./goal's evaluator, and the consequence needs a measurement.Tooling / docs — 38 open
RETRY_WATCHDOGdoc-lag inference was wrong; it is an omission, not a lag.CLAUDE_CODE_DISABLE_CRON=1is an unrecorded repo-level kill switch.umputun/ralphexis a ralph derivative the KB does not track.skills-over-mcpcharter, Cursor CLI, AG2 contents).www.qodo.ai/changelog/now 404s.claude plugin eval's skip is now labelled, which partly answers the standing item.CLAUDE.mdstaleness, flagged not applied (Routines → "scheduled tasks").artifact-audit: the bundledclaude-apiskill carries a 2× stale cache-read price.claude plugin eval's residual gap is narrower and now documented as deliberate.experimental-ext-server-cardis dormant since 2026-08-12 and has not graduated.gascitymust be referenced org-qualified asgastownhall/gascity.internal/workladder— now shipped, see the forked-detection item above.serviceQuotais still "accepted but not yet enforced end-to-end".agentgatewayand Agent2Agent (A2A) are AAIF projects the KB was not tracking.docs.claude.com→code.claude.com301s).SKILL.mdcross-tool execution.Research / infrastructure — 51 open
espi/loops, and two agents lost budget discovering it.--shallow-sincediscipline earned its keep twice, and the graft artifact has a second form.finance.biggo.comand the recap-grade cluster.artifact-audittrigger this repo does not have..comblog lags his Substack — now ~42 days, not ~14.$47K / 11-day,$500M in one month,$6,000 overnight / $4,200 refactor— still self-reported or unattributed./goal"Codex invented it, Claude copied in 11 days" timeline — single secondary.roborev.io/changelog403s (raw host works; fetch known filenames).export.arxiv.org/api/query406s to directcurl(use-sSL+ real UA).openai.com/ PDF primaries and the text-extraction proxy.Generated by Claude Code