| name | nbhd-action-gate |
| description | Request user confirmation before executing irreversible actions (delete, trash, send email). |
| tools | [{"name":"nbhd_request_action_approval","description":"Request user approval before performing an irreversible action.\nALWAYS use this tool BEFORE executing any of these operations:\n- Deleting or trashing emails (gmail trash, gmail delete)\n- Sending emails on behalf of the user (gmail send)\n- Deleting calendar events\n- Deleting Drive files\n- Deleting tasks\n\nThe tool sends a confirmation prompt to the user and waits for their\nresponse (up to 5 minutes). Returns the approval status.\n\nDO NOT proceed with the action unless status is \"approved\".\nIf status is \"denied\" or \"expired\", inform the user and do not retry.\nIf status is \"blocked\", explain the tier restriction to the user.\n","parameters":{"action_type":{"type":"string","description":"Type of action. One of: gmail_trash, gmail_delete, gmail_send, calendar_delete, drive_delete, task_delete","required":true},"display_summary":{"type":"string","description":"Human-readable description of what you want to do, e.g. 'Trash email: Re: Invoice #4521 from billing@acme.com'","required":true},"payload":{"type":"object","description":"Structured data about the action (message_id, event_id, file_id, etc.)","required":false}},"command":"python3 /opt/nbhd/skills/nbhd-action-gate/scripts/request_approval.py"}] |
Action Gate
CRITICAL: You MUST use this tool before any irreversible action.
When the user asks you to delete an email, trash a message, send an email,
delete a calendar event, delete a Drive file, or delete a task — call
nbhd_request_action_approval FIRST.
Flow
- User asks: "Delete that email from John"
- You call
nbhd_request_action_approval with details
- User gets a confirmation prompt on their phone (Telegram/LINE)
- They tap Approve or Deny
- Tool returns the result
- If approved → execute the action
- If denied/expired → tell the user, do NOT retry
Important
- Never skip this step. Even if the user says "just do it" — the confirmation
is a security feature protecting against prompt injection.
- If the tool returns
"blocked", explain that destructive actions aren't available
on the Starter plan. Do NOT include payment, pricing, or upgrade links — some
channels (the iOS app) are not allowed to point users at external purchases.
- The user has 5 minutes to respond. If they don't, the action expires.