Approve Before Dangerous
Safety at compile time
Dangerous actions are not library conventions. The compiler requires an explicit approval boundary before irreversible tools run. The approve label is the tool's name in either casing — `approve IssueRefund(id)` and `approve issue_refund(id)` both authorise tool `issue_refund`, since the checker normalises label and tool name to snake_case before comparing. Per-tool greppability is preserved: pick a casing convention and grep for it.
Spec
docs/internals/effect-spec/03-typing-rules.md
Not in scope
Does not decide whether a human should approve; it proves the approval boundary exists.