pattern detail
external-automation-standing
Restricts outbound automations such as webhooks, mass messaging, and third-party workflow execution unless the workflow is already sanctioned.
Pattern analysis
doctrinal basis
Restricted engagement zones and escalation of force, translated into outbound automation controls.
Use the summary here for context, then inspect the YAML or related patterns for the concrete rule path.
What it catches
- Prompt injection that tries to exfiltrate data through a webhook or outbound API call.
- Abuse of CRM or email tooling to send unauthorized bulk communications.
- Agent attempts to stand up a new external automation path without operator review.
Related patterns
policy yaml
The downloadable policy stays available below, but the inline YAML now wraps cleanly for narrow screens.
name: external-automation-standing
version: 1.1.0
doctrinal_basis: Standing ROE / standing rules for use of force map to always-on external automation authority boundaries; proportionality and collateral damage estimation map to target_count blast-radius caps; escalation of force maps to human approval before external automation changes proceed; restricted engagement zones map to credentials, sessions, destructive automation, security controls, audit controls, and bypass or circumvention attempts.
description: Standing external automation guardrails for agent-initiated scheduler, workflow, webhook, integration, and third-party automation actions.
rules:
- id: deny-automation-credential-access
applies_to:
action_class:
- external_automation.credentials.*
- external_automation.secret.*
- external_automation.token.*
- external_automation.session.*
decision: deny
reasoning: Standing external automation ROE denies direct credential, secret, token, or session access; use scoped provider operations instead.
- id: deny-automation-security-control-change
applies_to:
action_class:
- external_automation.security_control.*
- external_automation.approval_gate.*
- external_automation.audit_log.*
- external_automation.monitoring.*
decision: deny
reasoning: Standing external automation ROE denies changes to security controls, approval gates, audit logs, or monitoring controls.
- id: deny-destructive-automation
applies_to:
action_class:
- external_automation.job.delete
- external_automation.workflow.delete
- external_automation.webhook.delete
- external_automation.integration.delete
- external_automation.run.cancel_all
- external_automation.remote_execution.*
decision: deny
reasoning: Destructive external automation is outside standing authority and must not be executed by an agent.
- id: deny-high-target-count-automation
applies_to:
action_class:
- external_automation.job.create
- external_automation.job.update
- external_automation.job.run
- external_automation.workflow.create
- external_automation.workflow.update
- external_automation.workflow.enable
- external_automation.workflow.disable
- external_automation.workflow.run
- external_automation.webhook.create
- external_automation.webhook.update
- external_automation.integration.sync
- external_automation.api.write
conditions:
- type: blast_radius_max
parameter: target_count
threshold: 25
decision: deny
reasoning: Requested external automation affects ${target_count} targets, exceeding the standing 25-target hard cap.
- id: deny-automation-evasion-or-bypass
applies_to:
action_class:
- external_automation.evasion.*
- external_automation.bypass.*
- external_automation.circumvention.*
decision: deny
reasoning: Standing external automation ROE denies attempts to bypass controls, approval gates, logging, rate limits, or monitoring.
- id: escalate-automation-state-change
applies_to:
action_class:
- external_automation.job.create
- external_automation.job.update
- external_automation.job.run
- external_automation.workflow.create
- external_automation.workflow.update
- external_automation.workflow.enable
- external_automation.workflow.disable
- external_automation.workflow.run
- external_automation.webhook.create
- external_automation.webhook.update
- external_automation.integration.sync
- external_automation.api.write
decision: escalate
escalation:
requires: human_approval
via: automation-ops
reasoning: External automation state changes require automation-ops approval under standing ROE before execution.
- id: allow-automation-readonly
applies_to:
action_class:
- external_automation.read.*
- external_automation.status.view
- external_automation.job.list
- external_automation.workflow.view
- external_automation.webhook.view
- external_automation.integration.view
- external_automation.audit.view
decision: allow
reasoning: Read-only external automation lookup is authorized under standing ROE when it does not mutate external systems, schedules, workflows, webhooks, integrations, credentials, or controls.
- id: allow-automation-dry-run
applies_to:
action_class:
- external_automation.plan.preview
- external_automation.workflow.dry_run
- external_automation.job.dry_run
decision: allow
reasoning: Non-mutating external automation preview or dry-run is authorized under standing ROE when the adapter guarantees no external state change.