Repository navigation
artifact-audit: Sep 2026 pass — billing-claim drift, native dollar ceiling, ralph caveats (3 fixed, 8 flagged) - #24
Merged
Conversation
…in's unlimited default Two drift fixes against the knowledge base (both High-confidence entries): - Step 3's budget bullet offered "remind the user of the session budget" as the fallback ceiling — a reminder is an alert, not enforcement. Claude Code ships --max-budget-usd first-party, and since v2.1.217 it also halts background subagents at the cap (primer §4, v2.1.216-220 entry). - The ralph pattern row now carries the ralph-wiggum trap where the plugin is named: --max-iterations defaults to unlimited (primer §4; sources.md, official plugin README entry). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DexL4ENdcH1wDBuzVCs3mP
…2026-08-31 correction "The billing layer will not save you (soft alerts only)" predates the KB correction that Anthropic now ships real enforcement surfaces (Enterprise Spend Limits API, apps-gateway spend limits, Managed Agents session budgets). The conclusion is unchanged — gateway enforcement fails open by default and none of it reaches a plain Claude Code loop automatically, so the ceiling stays in the harness — but the premise is stated accurately now. Evidence: knowledge/00-primer.md §6 "Correction (2026-08-31)" (High). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DexL4ENdcH1wDBuzVCs3mP
… change - CONFIG block: note that models taking more turns per unit of work (Fable 5.1-class) trip iteration/stall caps tuned on older models earlier; an early stop is a re-tuning signal (primer §4, Fable 5.1 entry, High). - AGENT_CMD: note --permission-prompts none (v2.1.259+) as the narrower deny-by-default alternative to --dangerously-skip-permissions for headless runs (primer/sources, code.claude.com/docs/en/headless, High). Cap values and enforcement logic untouched. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DexL4ENdcH1wDBuzVCs3mP
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.
Artifact drift
Monthly
artifact-auditpass (2026-09-25), run per.claude/skills/artifact-audit/SKILL.md. Fan-out: 4 audit agents (skills / templates / guardrails / runbooks+docs), every proposed fix re-verified against the KB by the coordinating session before applying. Source of truth:knowledge/as merged onmain(last substantive update 2026-08-31).Yields honoured: open PR #21 is mid-editing
loop-guardrails/SKILL.md,update-knowledge/SKILL.md,artifact-audit/SKILL.md,guardrails/README.md,guardrails/checklist.md, andrunbooks/staying-current.md— none of those files are touched here; their findings are flagged below instead. Open PRs #22/#23 touch onlyknowledge/(never edited by this skill); findings resting solely on their unmerged content are marked pending-KB and not applied.Fixed
.claude/skills/new-loop/SKILL.md--max-budget-usd(halts background subagents since v2.1.217)..claude/skills/new-loop/SKILL.mdralph-wiggumplugin without its trap:--max-iterationsdefaults to unlimited.sources.mdplugin README entry (High)README.mdtemplates/ralph/run.sh--permission-prompts none(v2.1.259+) noted as the narrower deny-by-default alternative to--dangerously-skip-permissionsfor headless runs.sources.mdheadless entry (High)Flagged for you
Hard-stop / policy-protected — human decision, not rewritten:
CLAUDE.md(never edited by this skill): "Anthropic's billing layer has soft alerts but does not auto-disable" is the same stale premise fixed in README above. The rule it supports (ceiling lives in the harness) still holds — the KB itself notes gateway enforcement fails open by default — but the justification sentence is now factually behind the KB. Suggest updating alongside a review of the guardrails/README lead sentence below. (Medium; primer §6 correction, High evidence.)guardrails/README.mdlines 3–6 (yielded to guardrails: containment as a required companion, verify-the-agent rule, and retiring a subagent cap that no longer exists #21, and guardrails: containment as a required companion, verify-the-agent rule, and retiring a subagent cap that no longer exists #21 does not cover this): same "does not auto-disable" claim, in the document's lead sentence. Proposed softening: acknowledge Spend Limits API / gateway 429 enforcement, note the fail-open default (enforcement.fail_closed_on_error: truerequired for a true ceiling), keep the harness-ceiling conclusion. (High visibility; High evidence.)guardrails/budget.env(flag-preferred by policy, left untouched): (a)LOOP_TURN_TIMEOUTandLOOP_MAX_RETRIESare referenced nowhere else in the repo — no skill or template wires them, so the header's "skills read these as defaults" over-claims for those two; either wire them (e.g.timeoutwrapper in ralphrun.sh) or relabel as not-currently-enforced. (b) The20-iteration /$10defaults are sized for Sonnet-5-class economics; a Fable-5.1 loop ($10/$50, more turns per unit of work) will trip them earlier — consider a comment making the model-dependency explicit. Values deliberately unchanged.Yielded to PR #21's files, not covered by its diff (route to that PR or a follow-up):
.claude/skills/loop-guardrails/SKILL.md: (a) same stale "soft alerts" billing premise; (b) the bash-loop budget guidance omits--max-budget-usdas the first-party ceiling forclaude -p-driven ralph loops (sends authors to build an external meter instead); (c) the/ralph-loopcheck line could carry "defaults to unlimited" where it names the flag. (All Medium/Low; High evidence.)Already fixed by open PR #21 — no action, just don't lose them if #21 stalls:
artifact-audit/SKILL.md(staleCLAUDE_CODE_MAX_SUBAGENTS_PER_SESSIONfan-out claim),guardrails/README.md"Native in Claude Code" paragraph,guardrails/checklist.mdcontainment block, and all threeCLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION=12occurrences inrunbooks/staying-current.md(lines 79/89/143 — confirmed all three are in guardrails: containment as a required companion, verify-the-agent rule, and retiring a subagent cap that no longer exists #21's patch). These are High-severity drifts (the env var is a no-op since v2.1.224); merging guardrails: containment as a required companion, verify-the-agent rule, and retiring a subagent cap that no longer exists #21 is the fix.Pending-KB (supported only by unmerged #22/#23 — re-check after those merge):
templates/ralph/run.shconflates cap-hit and failure in its exit path (STOP:+ nonzero exit for all three hard stops). PR knowledge: Sep 14–21 pass — the first primary runaway-loop incident, and two corrections this routine owes itself #23's draft KB text (SaltBench, arXiv:2609.11076) argues a capped run needs a third outcome distinct from failure. Worth aHALT (capped)/CAPPEDmarker if that lands.guardrails/README.md"Native in Claude Code" could citeclaude plugin eval(v2.1.269, per PR knowledge: Sep 7–14 pass — Anthropic ships the three hard stops as a CLI flag set, plus two corrections to this KB #22) as the first first-party command shipping all three hard stops + a deterministic gate in one interface.Verified clean (no drift)
update-knowledge/SKILL.md(already current on the subagent-cap story),templates/goal/recipes.md(every claim verified against livecode.claude.com/docs/en/goal),templates/loop/loop.md,templates/ralph/PROMPT.md, all fourtemplates/ui-audit/files,runbooks/first-loop.md,runbooks/overnight-build.md(claude --cloud/ deprecated--remotealias verified against the live CLI reference — the runbook is right and the KB's--remote-first phrasing is the stale side, noted for the next update-knowledge pass),runbooks/babysit-prs.md(auto-fix-PR mechanism verified against live docs),runbooks/ui-audit-overnight.md, andCLAUDE.md's "Tooling version notes" section.Note on the branch name
The skill names
claude/artifact-audit-YYYY-MM-DD; this session's environment pins pushes to its designated branchclaude/keen-archimedes-buozmn, so that is used — same effect (aclaude/-prefixed, PR-only branch; nevermain).Human reviews and merges; this routine never merges to main.
🤖 Generated with Claude Code
https://claude.ai/code/session_01DexL4ENdcH1wDBuzVCs3mP
Generated by Claude Code