Repository navigation
Conversation
…books, docs Monthly artifact-audit pass (first since PR #24, merged 2026-09-29). All fixes verified this pass against primary docs (code.claude.com goal.md, routines.md, scheduled-tasks.md, cli-reference.md, claude-code-on-the-web.md) and/or High-confidence knowledge-base entries; files mid-edited by open PRs #26-#29 were left untouched and their findings flagged in the PR body instead. - templates/goal/recipes.md: the evaluator clears impossible goals and pauses no-progress runs (not "loops until you stop it"); exact 4,000-char condition limit; every recipe now carries an in-condition turn bound plus guidance to add external --max-turns/--max-budget-usd caps on headless runs; Ctrl+C scoped to non-interactive goals. - templates/loop/loop.md: backgrounding carries /loop over; self-paced loops are not restored on --resume; scheduled-task rename noted. - runbooks/staying-current.md: the claude/ branch prefix is a prompt-steered default, NOT an enforced push restriction - the real floor is a GitHub branch-protection ruleset on main (threat-model point 4, settings table and the "reconciled" note corrected accordingly); platform scheduling caps are hourly and waiting, not a daily rejecting cap; Routine runs start in auto mode and can stall on a waiting permission prompt (not "no approval prompts"); monthly cron now settable via the Custom edit dialog; rename and New task button noted. - runbooks/babysit-prs.md: Esc only stops a self-paced loop; auto-fix enable paths corrected (Changes-card menu / /autofix-pr on the PR branch / mobile / paste a PR URL); added the replies-as-your-account + comment-triggered- automation warning and the no-merge-conflict-webhook caveat. - .claude/skills/artifact-audit/SKILL.md: budget backstop description corrected (hourly waiting caps + subscription limit, not a daily-run cap). - README.md: templates table now lists the ui-audit kit. - templates/ui-audit/FINDINGS.md: removed stale self-referential rename note. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016net4GTtLwuYBtz584SKby
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.
Monthly artifact audit — 2026-10-25
First audit since PR #24 (merged 2026-09-29). Four parallel slice audits (skills / templates / guardrails / runbooks+docs) against the merged KB (last pass 2026-09-28), the pending unmerged KB chain (#26→#29, through Oct 19), and primary docs fetched this pass:
code.claude.com/docs/en/{goal,routines,scheduled-tasks,cli-reference,claude-code-on-the-web}.md. Every fix below was verified by the lead against the quoted primary, not relayed from an agent.Yield rule applied: open PR #26 mid-edits most practice artifacts (
guardrails/*, both other loop skills,update-knowledge/SKILL.md, three runbooks,templates/ralph/run.sh,CLAUDE.md) and #27–#29 stack onknowledge/. Nothing those PRs touch was edited here — findings on those files are in Flagged for you. Branch note: the skill names aclaude/artifact-audit-YYYY-MM-DDbranch, but this scheduled session is pinned to push only toclaude/keen-archimedes-woryzc, so the PR ships from there.Artifact drift
Fixed
templates/goal/recipes.mdtemplates/goal/recipes.mdor stop after 20 turns". Each recipe now carries one, plus guidance to add external--max-turns/--max-budget-usd(print-mode flags, cli-reference.md) on headless runs, with the caveat that the in-condition clause is evaluator-judged from the agent's narration, not an enforced captemplates/goal/recipes.md-pruns)runbooks/staying-current.mdclaude/-prefixed only, so it physically cannot touchmain" and the "default push restriction / do not enable unrestricted pushes" framing — no such restriction setting exists; the prefix is a prompt-steered defaultclaude/unless your prompt directs it to push to another branch. To control which branches a run can push to, use branch protection rules or rulesets on GitHub… a rule that access can bypass doesn't block a run's push." Settings row, threat-model point 4, invalidation list, and the "Branch prefix — reconciled" note all rewritten: the floor is a ruleset onmain+ the skill's prompt, not the prefix.runbooks/staying-current.mdrunbooks/staying-current.mdrunbooks/staying-current.md/schedule updatefrom CLI" — the web edit dialog now takes a Custom cron directly; also noted :07-style minutes (documented late starts on :00) and the New task button renamerunbooks/babysit-prs.mdEsc" (blanket) — Esc stops only a self-paced loop; a fixed-interval loop is cancelled by asking Claude ("Esc and Ctrl+C don't stop it")runbooks/babysit-prs.md/autofix-pron the PR's branch, mobile, or pasting a PR URL. Added the doc's warnings: replies post as your GitHub account and can trigger comment-driven automation (Atlantis etc.); no webhook for merge conflictstemplates/loop/loop.md/loopover; a self-paced loop is not restored on--resume/looptasks over"; "A self-paced/loopisn't restored, so run/loopagain".claude/skills/artifact-audit/SKILL.mdREADME.md/templates/ui-audit/FINDINGS.mdRename note: the feature is now officially "cloud scheduled tasks, formerly routines" (routines.md title). Fixed files got a one-line note at first mention only; wholesale renaming should wait until the KB records it — even pending PR #29 (Oct 19) missed the rename, so it's a job for the next
update-knowledgepass.Flagged for you
1. Operational, highest priority: with the push "restriction" gone, the only enforcement keeping these routines off
mainis a GitHub branch-protection ruleset onmainthat the connected identity cannot bypass — the pending KB (#29) measuredespi/loopsmainas"protected": false. Enabling one also lets you makeself-edit-guarda required check (asstaying-current.mdalready suggests). Until then, "never merge to main" is held by prompts and review habits only. The same false "physically can't touch main" claim sits in.claude/skills/update-knowledge/SKILL.mdstep 8 — not edited here (#26 mid-edits that file, and its branch rule is in that skill's protected always-suggest set); fold the correction into #26 or a follow-up.2.
loop-guardrails/SKILL.md:23-24(yield to #26; NOT fixed by #26): "/goal→ bounded by the validator" is wrong per primary — /goal's only documented bound is an in-condition clause the worker narrates and the tool-less evaluator grades, and a resume "resets the turn count, timer, and token-spend baseline" (goal.md). Proposed replacement: treat /goal as a stop condition, not hard stop #1; require an external cap (--max-turnsper call on v2.1.281+, or a harness counter) alongside it.3.
new-loop/SKILL.md(yield to #26; not fixed by it): step 3.3's--max-budget-usdguidance omits that the flag is print mode only (cli-reference.md), spend can pass the cap, and resumed totals don't count. Also the bare "/goal v2.1.139+" and "/loop v2.1.72+" floors (here, inCLAUDE.md, and intemplates/goal/recipes.md) are no longer verifiable against any primary — docs state per-feature minimums only; already on the KB re-verify backlog, left as-is.4.
guardrails/README.md+checklist.md(yield to #26 + hard-stop texts; none of these are in #26's diff):$50K in under an hour, 15,000+ calls, availability incident) and METR ($600K, "no way to put a spending limit on keys like this one").claude ultrareviewcontainment rule — the KB backlog's standing ask ofguardrails/: GitSpawn's fsmonitor path was patched in v2.1.196 but the ultrareview path remains unpatched (re-checked through Oct 19); the trigger needs only a working tree with.git/intact, not a clone. Add the "never runclaude ultrareviewin a loop against an untrusted tree" checkbox + the v2.1.196/patch nuance.fail_closed_budget_enforcementis a separate non-default backstop (and pending-KB:max_budget = 0= unlimited; exhaustion surfaces as 422, not 429); OpenRouter workspace budgets return 403, key budgets 402; Portkey was acquired into Prisma AIRS; Helicone is in maintenance mode — stop recommending "confirm it blocks", the KB's answer is "don't build on it"; AgentGuard needs disambiguation (bmdhodl/agent47, pipagentguard47; v1.3.1 moved enforcement pre-dispatch); pending-KB says LoopGain covers stop knowledge: 2026-06-15 update pass (6-day delta) #2 only — stop crediting it with all three.CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSIONas an explicit "Removed in v2.1.224 and now a no-op", not "gone entirely". Egress bullet could nameCLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1(v2.1.277) as the shipped fix for the /etc/hosts hole. Opening "billing… does not auto-disable" should be qualified per the KB's own 2026-08-31 correction (Enterprise Spend Limits API / gateway limits / Managed Agents budgets exist, each scoped, gateway fails open by default).checklist.md:46-48: auto mode is the default starting mode on every plan and provider since v2.1.283 (pending-KB, permission-modes.md read raw), not just Bedrock/Vertex/Foundry since v2.1.207 — and docs say auto mode's containment is "None".5. Already fixed by open PR #26 — endorse, don't duplicate: all four substantive
templates/ralph/run.shfindings (unwired default-0 cost meter behind an "enforced" comment; no per-call--max-turns/timeout; HEAD-based stall detection fooled by empty commits; the awk budget check failing open on a malformed meter value), theself-edit-guard.ymlbase-branch trigger hole (guard never ran on stacked PRs — the mode the skill itself prescribes), budget.env's missingCLAUDE_CODE_MAX_TURNS/per-call caps, and the loop-guardrails/new-loop hard-stop rewrites. One reviewer note for #26: pending-KB records the CLI cost meter wrong in both directions in-window (v2.1.286 under-count, v2.1.296 2× over-price, v2.1.302 cloud reset-to-zero) — #26's belt-and-braces design (external meter + per-call--max-budget-usd) is right; a gateway-side ceiling remains the stronger form.6.
CLAUDE.md(protected — human-only): "defaults to Haiku" → docs now say "your configured small fast model"; the v2.1.72/v2.1.139 floors (see flag 3); "Routines" rename at first mention.7. Minor flags:
templates/loop/loop.md's/loop 15m /code-review 1234example may arrive as plain text in a scheduled fire if/code-reviewisdisable-model-invocation: true(docs name only/verify— verify empirically); pending-KB: a backgrounded/cloud/loopthat loses a wakeup post-v2.1.293 "stays asleep" (silent stop); /goal evaluator cost caveat (haiku alias → Haiku 5.5 long-prompt pricing, pending-KB);runbooks/overnight-build.md"Gas Town productized" overstates (superseded by Gas City; yield to #26);runbooks/first-loop.md's blanket "Esc (/loop)" has the same self-paced-only scoping as babysit-prs (yield to #26, not in its diff).Clean (verified, no change needed)
README's "one rule" paragraph;
templates/ralph/PROMPT.md; the ui-audit template set (minus the FINDINGS nit);/goal clearaliases, trust-dialog/hooks interaction, headless example;/loopmechanics (scoping, 7-day expiry,.claude/loop.mdprecedence);claude --cloud+ deprecated--remote;--permission-prompts none(v2.1.259) and--restricted-is-not-a-sandbox bullets; the Tesla receipt; arXiv 2608.27299 / 2609.01222 / 2609.00267 citations; all internal cross-references and step numbers in all four skills.Generated by Claude Code