Skip to content

docs: rewrite README.md for its actual reader, the model - #12

Merged
kahwaipd merged 1 commit into
mainfrom
docs/readme-for-butler
Sep 21, 2026
Merged

kahwaipd merged 1 commit into
mainfrom
docs/readme-for-butler

Conversation

@kahwaipd

Copy link
Copy Markdown
Contributor

README.md in a template bundle is not documentation for a human browsing GitHub. The container's recipe_show returns it verbatim to Butler, beside the params schema and the triggers, and it is the last thing read before a duty is filed from this template.

The version that just merged was a landing page: a repo-name title, an install-shaped "How it is used" line, and a settings table restating recipe.json. None of that prose aids discovery either — recipe_search scores name, keywords, description and triggers, and never README text.

What it says now

It answers the two questions the model actually has — does this fit what my owner asked, and what goes in params — and leads with what the template will not do, which is the failure nobody notices:

  • no price check, no condition, no "only if it dipped"
  • never two buys for one slot (keyed on the schedule slot, so a catch-up after a restart and the fire it is catching up on are one buy)
  • never past MAX_PER_DAY, counted in UTC days in the duty's own state and surviving a restart
  • never sells
  • nothing at all before the owner funds the pocket

Each setting names its unit, because a bare number from an owner is dollars or a count depending on which one it lands in.

2179 bytes — under the registry's 4 KB warn threshold, and every byte is prefilled into a turn's context on each recipe_show.

Depends on

butler-skills#32, which makes the rule normative and adds the checks that enforce it. It also fixes a live bug that makes this repo's CI red regardless of this PR: the merged validator reads re.compile(...) as the builtin compile() and refuses duty.py outright.

Verified against that branch's validator: OK.

🤖 Generated with Claude Code

The container's `recipe_show` returns this file verbatim to Butler
beside the params schema, and it is the last thing read before a duty
is filed from this template. The previous version was a GitHub landing
page — a repo-name title, an install-shaped 'How it is used' line, and
a settings table restating recipe.json.

None of that prose aids discovery either: recipe_search scores name,
keywords, description and triggers, and never README text.

So it now answers the two questions the model actually has — does this
fit what my owner asked, and what goes in params — and leads with what
the template will NOT do, which is the failure nobody notices: no price
check, no second buy per slot, no selling, and nothing at all before
the owner funds the pocket. Each setting names its unit, because a bare
number from an owner is dollars or a count depending on which one.

2179 bytes, under the registry's 4 KB warn threshold.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@kahwaipd
kahwaipd merged commit e57fa39 into main Sep 21, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant