Skip to main content

Side-effect gates

The SOP separates local reasoning from actions that affect people, git history, or owned areas. These gates keep read-only investigation from silently turning into publication, ownership crossings, or history changes.

Mental model

GateBlocks until
Git commitexplicit user request in the current conversation; content approval is not enough
Git pushexplicit push request; its described commit is authorized, and rejected pushes stop instead of auto-rebasing
CODEOWNERSaffected paths are in the user's ownership or user approves crossing ownership
Human-visible publicationexact payload and target are approved
Bot thread carve-outauthor is verified as a bot and flow was explicitly invoked
GitHub mutationk-github skill is loaded and side-effect rules are followed

Using it

Publication split

TargetDefault
Human-authored thread/commentdraft and wait
Mixed/unknown participantstreat as human
Verified bot-authored threadauto-reply/resolve only inside an explicitly invoked flow

Human-visible text has a single wording owner. The communication skill owns tone, and loaded mechanics skills such as k-github, k-google-workspace, or k-review do not re-derive it per surface.

The SOP states this as a boundary, not a routing trigger. Skill discovery is driven by the skill's own description, not by a "load this skill" line in the SOP.