Repository navigation
knowledge: Aug 31 – Sep 7 pass — Anthropic ships both halves of §6's enforce-vs-advise distinction; Fable 5.1 breaks hand-rolled loops; harness compromise now established - #20
Merged
Conversation
…, Fable 5.1 breaks hand-rolled loops, harness compromise established Five-agent fan-out over Aug 31 – Sep 7. No update-knowledge PR was open. Four headline claims re-read and verbatim-verified against primary docs; all 16 arXiv IDs machine-verified (ID, title, v1 date, category) via the arXiv API rather than trusted from an agent report. Headline — a standing gap, not a new fact: Anthropic ships both halves of the section 6 distinction and labels which is which. Managed Agents session budgets are "a hard dollar budget enforced at public list rates", checked between model requests and pausing the session idle at stop_reason budget_reached; Messages API task budgets carry the heading "Task budgets are advisory, not enforced" — "a soft hint, not a hard cap" — with a countdown visible only to the model. Rule now in section 6: a budget the model is shown is a pacing hint; a budget the platform checks before the next request is a ceiling. Also added: - Claude Fable 5.1 / Mythos 5.1 (Sep 1). Cache reads cut to $0.25/MTok, but three breaking changes land on hand-rolled loops: forced tool use returns 400, conversation history must be append-only (the inject-and-delete reminder pattern is named as an anti-pattern; enforced for accounts created on or after Aug 31), and more turns per unit of work, so an iteration cap tuned on an older model trips early. - Claude Code v2.1.252-263, written as a pair because it cuts both ways: gained --permission-prompts none (first native deny-by-default for headless loops) and a fail-closed managed-settings check; lost the one-hour cap on subagent background commands, and reverted a permission tightening within 24 hours. - The harness as attack surface, now established rather than single-sourced: instruction privilege escalation read in full and independently replicated across 12 harnesses, reproducing through /goal- and /schedule-shaped features; plus GitSpawn, hook-update hijacking, and scanner-invisible skill policy steering. Recorded honestly: the three hard stops do not bound any of this. Whether containment becomes a fourth non-negotiable is left to a human. - A verification-research cluster that measures what this repo asserts, including the first real measurement of the separate-verifier rule, and two results qualifying "deterministic": it is neither complete nor necessarily correct. - LiteLLM v1.100.0 group-scoped shared budgets; Osmani's "Agentic Skill Decay". Corrected: this KB's own claim that versions without a changelog heading "do not exist" was wrong (v2.1.242 is cited twice in the docs as a version requirement); modelPricing is v2.1.242, not v2.1.243. Anthropic's Sept 14 weekly-limit figures downgraded to Medium with the help-center contradiction recorded. Backlog: 5 resolved and archived, 2 updated, 8 opened, 10 carried forward. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ca7z6e9N5SAhNjqM8gFM5R
espi
pushed a commit
that referenced
this pull request
Sep 7, 2026
…e; retire a removed subagent cap Implements the five suggestions confirmed from PR #20's "Routine self-improvements" section (recommendations 1B, 2A, 3A, 4B, 5B). All are human-authored changes outside the routine's auto-apply envelope, which is why they could not ride the knowledge PR. Containment (S1, option B) — guardrails/README.md, guardrails/checklist.md The three hard stops bound what a loop spends and how long it runs. Neither bounds what an attacker-supplied input makes the harness do, and the known mechanisms fire before any stop condition or verification step runs: GitSpawn executes on the agent's startup git status, before the workspace-trust prompt; instruction privilege escalation lands before automatic permission review sees the content. Added as a required companion section rather than a fourth numbered hard stop, deliberately: the three are single checkable numbers, containment is a posture. Defaults cover scoped network egress, unreachable credentials, deny-by-default unattended runs, and real isolation. Deny-by-default for headless loops (S5, option B) — guardrails/README.md Documents --permission-prompts none (v2.1.259+) as the cheapest containment win available, including that it removes tools needing a human answer and surfaces denials in stream-json output. Also records that --restricted is a permission gate, not a sandbox: the primary docs say nothing about OS-level isolation and it is absent from Anthropic's own sandbox-environments comparison page. Routine threat model (S2, option A) — runbooks/staying-current.md Writes down what update-knowledge can reach and why it is still safe to run. The research it does now describes an attack on the shape it is: instruction privilege escalation reproduces through /goal- and /schedule-shaped features, and neither paper proposes a mitigation. The defenses are structural — never merges, blast radius limited to knowledge/, CI-enforced fence, claude/-only pushes — so they do not depend on the agent noticing it was manipulated. Also lists what would invalidate that reasoning. Verify the agent, don't relay it (S3, option A) — update-knowledge SKILL.md Step 4 now requires machine-verifying every arXiv citation against the arXiv API, and checking version attributions against the feature's own doc page rather than the nearest changelog heading. Step 4 is a protected region, so this is a normal human-authored commit, not a self-edit: one — the route the guard's own error message names. Consistency and drift fixes loop-guardrails gains containment as check 6, since a required section that nothing audits is not required. And guardrails/README.md, staying-current.md (three places) and artifact-audit SKILL.md all still recommended CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION, which was removed in v2.1.224 and now does nothing — replaced with the concurrency and depth caps that remain, and noting neither bounds a session's total lifetime spawns. S4 (recording the whats-new digest as unreliable in the skill) was declined: sources.md already carries it and is read every pass at step 1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ca7z6e9N5SAhNjqM8gFM5R
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.
Scheduled
update-knowledgepass. Window Aug 31 → Sep 7, 2026 (last pass 2026-08-31). Five parallel research agents; all five returned cleanly.Baseline check (step 1): no
update-knowledgePR was open — clean baseline, branch started atorigin/mainHEAD (PR #19 merged). No merge conflict expected.Branch note: this session is harness-assigned to
claude/focused-clarke-x07iz3rather than the skill'sclaude/knowledge-update-YYYY-MM-DDconvention. It keeps theclaude/prefix, so the routine's push restriction (the reason for the naming rule) still holds.Routine self-improvements
Applied (auto-gated)
None this pass. I ran the check rather than skipping it: all intra-repo links in
SKILL.mdresolve (../../../knowledge/archive/resolved-caveats.mdexists), all 13 step-number cross-references are correct against the current step order, and no typo was found that changes no instruction. Default-deny holds because there was nothing qualifying to apply, not because the gate was bypassed.git diff --name-onlytouchesknowledge/**only — noself-edit:commit exists.Suggested (needs your confirm)
Add "containment" alongside the three hard stops — the big one. This pass's strongest finding is that every guardrail this repo mandates runs too late against the failure modes that actually shipped this window. GitSpawn executes on the agent's startup
git statusbefore the workspace-trust prompt; instruction privilege escalation lands before Auto PR sees the content. The three hard stops bound what a loop spends and how long it runs, and none of them bounds what an attacker-supplied input makes the harness do. A candidate standard is already stated cleanly in arXiv:2609.00267: "a correct system is one in which a fully prompt-injected agent still cannot exceed the authority explicitly delegated to it."Routed to you because: it changes
CLAUDE.md's non-negotiables andguardrails/— always-suggest, and explicitly human-authored-only.Read the IPE result against this routine's own configuration. arXiv:2608.27299 §8.5 reproduces the attack through
/goal- and/schedule-shaped features, and reports that in Claude Code "scheduled-task content is delivered to the working agent but omitted from the context seen by Auto PR." This routine is a/scheduled job that reads the open web. The defenses that still hold are the ones already enforced outside the agent's judgement — never merges, human reviews every PR,guardrails//budget.env/CLAUDE.md/permissions/the gate itself outside the auto-edit envelope with CI checking the boundary — which is an argument for keeping the fence narrow, not widening it.Routed to you because: web-sourced, and it bears on permission/autonomy scope. Both always-suggest triggers.
Have step 3 require machine-verifying arXiv IDs. This pass verified all 16 IDs against the arXiv API and every one held — but that was my own discipline, not the skill's instruction, and a prior pass was burned by a misdated ID.
Routed to you because: it changes what a step does — semantic, always-suggest.
Have step 3 record that the
whats-newdigest is no longer reliable (w35/w36/w37 all 404; index still ends at Week 34). The changelog is now the sole primary. Captured insources.mdthis pass, but the skill still implies the digest is a usable corroborating source.Routed to you because: semantic wording change to a step, and web-sourced. Always-suggest on both counts.
Two
guardrails/candidates worth evaluating:--permission-prompts none(v2.1.259) as a deny-by-default default for unattended loops, andant apply+ a committedclaude-lock.jsonfor making.claude/skills/a reconciled artifact rather than a directory.Routed to you because: outside
SKILL.md.Knowledge changes
The headline — a standing gap, not a new fact
The clearest external statement of this repo's "an alert is not a ceiling" rule turns out to be Anthropic's own docs, on two adjacent products, neither of which was in this KB:
stop_reason: budget_reachedand accepting only settle events.max_tokens." The countdown is visible only to the model, so a harness can't even read it to enforce one itself.The rule now in §6: a budget the model is shown is a pacing hint; a budget the platform checks before issuing the next request is a ceiling. Three sharp edges recorded: session budgets meter at list price even for contracted orgs (so they disagree with
--max-budget-usd), a deployment's budget bounds each run not cumulative spend, and removing a budget is one-way. Both pages read in full and verbatim-verified.New
--permission-prompts none(first native deny-by-default for headless loops) and a fail-closed managed-settings check. Lost the one-hour cap on subagent background commands — a native backstop deleted — carved!bash-mode out of strict sandbox mode, and reverted a permission tightening within 24 hours of shipping it.max_turnsformax_budget. Osmani, "Agentic Skill Decay" (Aug 31) — the human's own capability as a loop input: "you have to have that expertise to verify it."Corrected
modelPricingis v2.1.242, not v2.1.243. Old text removed, not annotated.Archived (5) →
archive/resolved-caveats.mdmodelPricingvs--max-budget-usd(meters at contracted rates when a table is in effect); Managed Agents $0.08/session-hour (dated ≤ Jul 22, and it replaces container-hour billing rather than adding to it); arXiv:2608.27299 read in full; LiteLLM v1.99.0 vs v1.100.0 (a false dichotomy — both GA'd); and the three aggregator claims, all real but mischaracterized and pre-window — archived as a methodology data point, since the aggregator was directionally right and wrong on every date and artifact type.Every currently-open re-verify item (per step 2)
Newly opened (8)
claude ultrareviewpath — reported unpatched as of v2.1.252; I read v2.1.257–263 verbatim and found no fix. Highest priority.knowledge/directory?guardrails/./etc/hostsproxy bypass worth naming inguardrails/once the primary is read.Updated, still open (2)
9. Sept 14 weekly limits — downgraded to Medium; re-verify after Sept 14.
10.
--restricted"not an OS-level sandbox" — narrowed, not resolved. Primary docs neither claim nor deny OS isolation and are silent on env-var credentials, but the flag is absent from thesandbox-environmentscomparison page, andCLAUDE_CODE_RESTRICTED=1could not be found in primary docs at all. Working position: a permission gate, not a sandbox.Carried forward unchanged (12)
11.
SKILL.mdcross-tool execution. 12. The Cherny "costliest thing" paraphrase. 13. The/goalCodex-first timeline. 14. $47K/11-day + overnight-billing anecdotes. 15. The $500M figure. 16. June 15 billing split. 17. Microsoft dropping Claude Code. 18. Huntley's Loom. 19. AI Engineer World's Fair 2026 transcripts. 20. roborev.io/changelog 403s. 21. EvoAgentBench + SkillCheck. 22. (new standing note) the runaway-agent-cost query space is now dominated by SEO marketing recycling this KB's own flagged anecdotes.Quiet lanes
Yegge, Steinberger, Cherny and Huntley published nothing (feeds read directly — but x.com is unfetchable, so their X activity is unchecked, not confirmed quiet). MCP,
AGENTS.md, the Agent Skills spec and the Agent Plugins spec had no in-window changes; AAIF adopted no new projects. No peer CLI harness shipped a stop condition, iteration cap, stall detector or dollar ceiling, so the §4 "Beyond Claude Code" matrix needs no cell changes.Verification done before writing
Four headline claims re-read and verbatim-verified against their primary docs by me, not taken from an agent's report: the task-budgets "advisory, not enforced" heading, the session-budgets enforcement semantics, the Claude Code changelog bullets (including which versions have headings), and Fable 5.1's three breaking changes. All 16 arXiv IDs machine-verified (ID, exact title, v1 date, primary category) against
export.arxiv.org/api/query. Anything that could not reach a primary — the OpenAI spend figures, the CSA $400K claim, the SWE-bench aggregator snapshot — was left out of the primer and filed as Low.🤖 Generated with Claude Code
https://claude.ai/code/session_01Ca7z6e9N5SAhNjqM8gFM5R
Generated by Claude Code