Repository navigation
Conversation
Seven-day pass (Sep 28 – Oct 5, 2026). Five research agents; every load-bearing claim re-verified by the lead against a primary rather than relayed. Headline findings: - Hard stop #1 has now failed open three distinct ways in the reference harness: v2.1.281 (ignoring --max-turns), v2.1.285 (a resume re-running a turn that had ended at the cap), and a documented, still-current one — under --input-format stream-json a queued message starts a new turn with its own limit, so the flag bounds a turn-chain, not a session. - A ceiling can leak through its meter: v2.1.286 fixed the gateway spend meter under-counting 1h cache writes and multi-call streamed turns. The meter is what the enforcing 429 is computed from. - /goal's only documented bound is self-reported, so it is a pacing hint, not hard stop #1. It does ship real no-progress detection, but it pauses with the goal still set rather than terminating. - AWS shipped an enforcing project-level ceiling that implements the graduated throttling its own Well-Architected Lens recommended; roborev shipped the counter-example (a soft limit). Together they settle it: graduated throttling is sound as the approach to a hard ceiling, not as a replacement for one. - Per-edit gates do not compose (arXiv:2609.24130) — the gap this repo's own self-edit envelope has. Corrections to live claims: - LiteLLM did NOT fix max_budget = 0; read from source on main, all three router paths still treat 0 as unlimited and the fix PR was closed unmerged. - arXiv:2608.18744 was flagged here as the forbidden anti-pattern; it complies with the doctrine (withheld oracle, abstention, out-of-sample). - Google Cloud Spend Caps are public preview, not private. - LoopGain is live (v0.6.5), not a retirement candidate. - Databricks budgets are Beta; the gateway GA is a separate thing. - Aider is dormant; the Gas City row pointed at the wrong repository. Adopted arXiv:2609.25173's measurement rule in the primer header: trust mechanisms and directions across papers, magnitudes only within one paper. Six backlog items resolved and archived, five corrected, twenty-one opened. Primer kept to 749/750 lines by condensing per-release and per-paper detail into sources.md — the first pass under kb-size.yml. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dv4X6E1AZFTZ2oYYAGD3eD
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.
Weekly
update-knowledgepass, window Sep 28 – Oct 5 2026. Five research agents; every load-bearing claim below was re-fetched and verified by the lead against a primary, not relayed from an agent.Routine self-improvements
Applied (auto-gated): none this pass.
I ran the step 7 scan and found no auto-apply candidate. Specifically, I verified on disk that every path reference in
SKILL.mdresolves (kb-size.yml,self-edit-guard.yml, all fourknowledge/files,guardrails/budget.env,runbooks/staying-current.md,CLAUDE.md, and the../../../knowledge/archive/resolved-caveats.mdrelative link) and that all eleven step-number cross-references point at the right steps. Nothing stale, no broken link, no typo — so default-deny applies andSKILL.mdis untouched (git diff --name-onlyconfirms).Suggested (needs your confirm):
CLAUDE.md's two bare version floors with the feature-scoped minimums the docs now use. "Tooling version notes" says/loopis v2.1.72+ and/goalv2.1.139+. Neither number appears anywhere in current docs — not contradicted, but the docs no longer express minimums per command. They are now per feature: "Check-ins require Claude Code v2.1.234 or later.", "Idle check-ins require Claude Code v2.1.236 or later.", "Before v2.1.246, idle check-ins were uncapped.", and for scheduled tasks "...both require Claude Code v2.1.248 or later." → Routed to you because the edit is toCLAUDE.md, which step 7 puts in the always-suggest lane.self-edit-guard. The strongest research finding this pass is that per-edit gates do not compose (below). This routine's envelope is a per-pass ≤10-line cap with no re-test of the accumulatedSKILL.md. → Routed to you: it changes the gate itself, which step 7 forbids the routine from touching.guardrails/andrunbooks/.curl https://pypi.org/pypi/agentguard47/json) denied by the permission classifier on three attempts, while the identical command shape succeeded for six other packages in the same session. The agent did not route around it and I did not run it on the agent's behalf. Consequence recorded rather than worked around: the AgentGuard "no in-window release" negative rests on tag existence, not an independent re-dating. Worth knowing because PyPI dating is this routine's main defence against the hallucinated-year trap.The headline: hard stop #1 has now failed open three distinct ways
Last pass found the first. Two more are now on record, both verified verbatim against the raw changelog:
--max-turns…" (prior pass)CLAUDE_CODE_RESUME_INTERRUPTED_TURNre-running a turn that had ended at--max-turns"` — a resume could undo the cap.--input-format stream-json, a message still queued when the limit ends a turn "starts a new turn with its own limit." So--max-turnsbounds a turn-chain, not a session.None needed a misconfiguration. Two further failure shapes that aren't "the cap was wrong" at all:
429is computed from, so a correctly-configured hard ceiling silently admitted more spend than it was set to — and agentic loops are the shape that maximises the error.max_turns: 0"runs the session without a turn limit", whilemax_budget_usd: 0is rejected andCLAUDE_CODE_MAX_TURNS=0is rejected — three polarities in one product. Any harness that computes a limit and can reach 0 is uncapped./goal's documented bound is a self-reported capThis repo's doctrine turned on the reference implementation.
goal.mdsays to bound a run with a clause like "or stop after 20 turns", which "Claude reports progress against … and the evaluator judges … from the conversation" — while the evaluator "does not call tools." The bound is narrated by the worker and graded from that narration, so by §5A.3 and §5A.9 it is a pacing hint, not hard stop #1. It does ship real no-progress detection keyed on absence of tool use, but it "returns control to you with the goal still set" — unattended, it pauses awaiting a human rather than terminating.Relatedly:
CLAUDE_CODE_RETRY_WATCHDOG, the setting Anthropic recommends for unattended loops, "Retries429and529capacity errors indefinitely" and "removes the cap of 15" — and the thing that still binds it is the spend limit.Five corrections to claims currently in the knowledge base
max_budget = 0budget_limiter.pyonmain: the falsy-zero guard is live in all three router paths (lines 251/266/281). Only the proxy org/project budget was fixed; PR #43292 was closed unmerged 2026-10-03; #44259 is open.arXiv:2608.18744is "the anti-pattern this repo's doctrine forbids"max_iterations.Plus two matrix corrections: Aider is dormant (no release since 2026-02-12) and the Gas City row pointed at the wrong repo (
gastown, dormant since June, notgascity, which shipped v1.5.0 on Oct 5).A hyperscaler shipped the mode this repo had only argued for
AWS project spend limits (Sep 16, limited availability) enforce — "AWS pauses your project and stops all resources" — and implement the graduated throttling AWS's own⚠️ Destructive tail: after 90 days paused, "AWS permanently deletes your project data."
AGENTCOST07-BP01had merely recommended: ~7 days out "new resources stop launching", ~5 days idle resources pause, ~4 days the top cost drivers pause, from "EC2, RDS, Lambda, Bedrock, and SageMaker", explicitly to catch "a runaway Lambda or unexpected Bedrock spike" — so it reaches model spend. AWS also states this KB's "a ceiling needs a runway" point first-hand.roborev v0.71.0 is the counter-example, in its own words: "Routing is off by default. The limit is soft, so reviews keep running after spend reaches it." The pair settles a standing backlog question: graduated throttling is sound as the approach to a hard ceiling and unsound as a replacement for one.
The research finding that indicts this repo's own envelope
Per-edit gates do not compose.
arXiv:2609.24130's corpus-level guard caught "declining performance as individually validated rules accumulate" — one configuration declined monotonically from +0.017 to −0.016 (p=0.022) as active rules grew from 13 to 70, each having passed its own gate.arXiv:2610.01073adds that a stale cached pass is not a pass and that default-deny without rollback is not safe-by-default. See suggestion 2.A citation rule this knowledge base was violating
arXiv:2609.25173meta-analysed 259 agentic-security papers — the corpus much of §5A rests on — and found most report no variance estimate or repeated runs, that on a 100-instance benchmark "the minimum difference in ASR detectable at conventional power is 18.2 percentage points", and that "cross-paper ASR comparison is currently unsupported." Adopted in the primer header: trust mechanisms and directions across papers; trust magnitudes only within one paper. A live instance turned up the same pass — "SkillsBench" is 89 tasks in one in-window paper and 509 directions in another.Three new practitioner primaries
guardrails/does not cover.Clean negatives worth having
--max-budget-usd/max_budget_usd/modelPricing; the onlybudgetmatches are retry budgets. Subagent caps (20 / depth 3 / per-session removed in v2.1.224) re-verified unchanged. Nothing released Oct 4–5; newest is 2.1.289.fsmonitorappears ZERO times in the changelog" as evidence on the GitSpawnultrareviewitem. The term has never appeared in any version, so its absence carries no information. Changelog grepping cannot resolve that item. It stays open and unconfirmed — not the same as "confirmed unpatched"./goal-as-Stop-hook and this repo's hook-delivered guardrails stand.Verification method
id_listcall (HTTP 200, 35/35) for ID ↔ exact title ↔ v1published↔ primary category. Every ID resolved; 28 of 35 have v1 in-window. Two of the agent's "category unconfirmed" caveats were resolved by this call.YYMMprefix is not a date. The API reports2610.00015v1as 2026-07-27 and2610.00197v1as 2026-09-18 despite2610IDs. Both out of window.main; Loom dated from the git object (git clone --depth 1works through the proxy: HEAD7ba5132, 2026-02-11, zero tags).Pruning and the size budget
The primer stayed inside its 750-line budget (749) — the first pass to run under
kb-size.yml. That required condensing per-release and per-paper detail intosources.mdper step 5, and it also surfaced two pre-existing mid-sentence breaks in §5A.1 and §5A.2 which I repaired. Per step 6 I also removed superseded text rather than leaving it beside the correction: the stale LiteLLM, Google-preview and Azure assertions in older dated sections now carry explicit supersede/resolve markers.Six items resolved and archived (Azure first-party source; Gas City 1.4 backfill; the four-paper "read next pass" list; Loom's dormancy; "Diamond" → Graphite Agent; the
/loop//goalversion-minimum question).Every currently-open re-verify item (41 → 56)
Per step 2, the full standing backlog, not only what's new. Twenty-one opened this pass, marked⚠️ NEW.
Security — GitSpawn⚠️ NEW per-edit gates don't compose; ⚠️ NEW a command prefix allowlist is not a sandbox; ⚠️ NEW can a mod load before
ultrareview(6th pass, now unconfirmed rather than confirmed-unpatched); does the PR-review gate bind what the reviewer sees to what merges?; is every write path to a protected region covered byself-edit-guard?; vendor artifact for 2609.01222's claimed fixes; does X-CPE reach this repo'sknowledge/?; adopt PROCTOR canaries / hash-pinning / provisional-persistent split / annealed edit budget?;--restrictedis not an OS sandbox;sec-default?Guardrails — fixed caps vs progress-authorized continuation + context growth as a 4th cost surface; verify an injected guardrail reached the model; zero-valued ceilings (corrected — LiteLLM is not fixed); LiteLLM fail-open family (#33323 state genuinely ambiguous, #27394, collector⚠️ NEW a ceiling can leak through its meter; ⚠️ NEW four status codes for an exhausted budget (⚠️ NEW a per-run budget is not a campaign ceiling (this routine's shape); ⚠️ NEW AWS's limit is limited-availability with a destructive tail; ⚠️ NEW the Bedrock cell needs the first-party treatment Azure just got; ⚠️ NEW OpenRouter's zero-budget semantics undocumented.
drop); Anthropic's pre-announced spend controls (still undelivered); Google Spend Caps (corrected to public preview; GA still open); adopt OpenRouter's cost endpoint?;402/403/422/429);Tooling — 1 GB tool-results cap is changelog-only (4th pass);⚠️ NEW the Gas City row points at the wrong repo; ⚠️ NEW opencode's v2.0.x line is invisible; ⚠️ NEW Amp not trackable at release granularity; ⚠️ NEW Aider should be reclassified dormant; ⚠️ NEW ⚠️ NEW the MCP Tasks extension path 404s; ⚠️ NEW Factory has a
SKILL.mdcross-tool execution and governance; Google's Agent Plugins maintainership (7th consecutive negative — recommend archiving the claim); roborev's MCP path ungated (re-confirmed through 0.71.0); review-tool hygiene (Qodo/Kodus halves still open);agentskills.devandagentplugins.orgboth 503'd, so two standards baselines are unverifiable;/loop-class primitive the matrix omits.Research / infrastructure — correct the x.com note + add snowflake-ID decoding to⚠️ NEW adopt the magnitudes-don't-cross-papers rule; ⚠️ NEW Osmani's two uncited statistics (570 review comments / 14%; Anthropic 8× merge rate); ⚠️ NEW word Steinberger's x.com coverage gap permanently, and record Ronacher as "published, off-topic" not "quiet"; ⚠️ NEW dated tripwires (Gartner Oct 19–22; Sonnet 4.5 retires Nov 30; the GPT-5.6 "25% rise" restated as a promo expiry of unknown magnitude; LiteLLM v1.105.0 RC); ⚠️ NEW blacklist additions and the ⚠️ NEW the KB's Loom description is unverified against the current README.
runbooks/; Osmani's Sep 7 X post (text still unread on his surface); Cherny's absence is a structural limit (permanent Medium); Huntley's recap dating is inconsistent; the unchased YC-hackathon ralph field report; the "Jev" identity question; the do-not-cite blacklist; the four recycled dollar anecdotes; the Jun 15 billing split; Microsoft dropping Claude Code; the/goalorigin timeline; the "costliest thing" slogan;trustgateaiTLD gap;Worth a closer look
arXiv:2610.01023's over-rejection cost (0.66–0.67) is quoted alongside its catch rate deliberately. The headline ("a weak reviewer with good evidence beats a strong one without") is real but the deployable version is expensive, and I didn't want the primer carrying only the flattering half.guardrails/,budget.env,CLAUDE.md, permissions or the gate was touched — this PR isknowledge/only. The three guardrail-shaped findings (status-code table, cumulative ceiling, argv allowlists) are suggestions above, not edits.kb-sizeshould pass at 749/750;self-edit-guardhas noself-edit:commit to inspect.🤖 Generated with Claude Code
https://claude.ai/code/session_01Dv4X6E1AZFTZ2oYYAGD3eD
Generated by Claude Code