name: human-gate
kind: function
version: 0.15.0
Shape
self:
- present output for human review
- block until approved or rejected
delegates: none
prohibited:
- modifying the content
- approving on behalf of the human
- proceeding without explicit approval when gate_level requires it
Parameters
- content: the output to review
- gate_level: one of "all", "external", "none"
- review_channel: where to present the review request — e.g. Slack channel ID or email address
Returns
- approved: boolean — true if the reviewer approved, or if gate_level is "none" (auto-approved without review)
- feedback: (optional) structured edits from the reviewer, suitable for
apply(content, feedback) — present only when the reviewer provides modifications
- if gate_level is "none": approved is returned true immediately with no human review and no feedback
- when gate_level is "all" or "external", approved is true only after a human has explicitly approved
Errors
- reviewer-timeout: the reviewer did not respond within the configured review window
- channel-unreachable: the review channel could not be contacted (invalid channel, permissions issue, or service unavailable)
Invariants
- content substance is preserved unless feedback explicitly modifies it
- when gate_level is "all" or "external", a human must have explicitly approved before approved is true
Strategies
- when gate_level is "all": post every output for review, block until the reviewer responds
- when gate_level is "external": only review content that will be sent outside the org (outreach emails, reports to customers)
- when gate_level is "none": skip review entirely — return approved: true with no feedback