Authoring bots — the four rules a catalog bot must clear
A bot shipped in bots/ is a general-purpose tool. It must be repo-agnostic (no iterion paths baked in), stack-agnostic (adding a language is dropping a skill file), convergent (an asymptote, not an oscillation), and declare the tools it needs. The mirror rule — the engine must never know a specific bot — is here too, because the two are one boundary seen from both sides.
Read ../workflow_authoring_pitfalls.md before writing or amending any .bot that can commit code.
The leaves
Skills live with their bundle · loops converge · a forge-facing bot links its run · the UNTRUSTED INPUT BOUNDARY · a value on an input reaches the model only if a channel renders it · repo- and stack-agnostic · the ENGINE stays bot-agnostic · a bot's toolchain is its devbox.json.
