{% extends "base.html" %}{% block title %}Rules{% endblock %}{% block body %}

Standing rules

Review approval friction and exact-operation suggestions.

{% if error %}{% endif %}
* one segment, ** everything below. A literal pattern also covers everything under it. MCP calls can be qualified by argument: mcp/ha/tools/call_service/service=automation.turn_off, and a value may end in * (entity_id=light.*). Keys come from the resource's argument keys.
{% if preview %}

Rule preview · not saved

{{ draft.effect }} {{ draft.pattern }} · {{ agent_map[draft.agent_id].name if draft.agent_id in agent_map else 'every agent' }}

{% include "_policy_preview_results.html" %}

Edit the draft above and preview again, or choose Add rule to save. Access settings may change after this preview.

{% endif %}
{% for p in rows %}{% endfor %}
EffectPatternAgentNoteAddedActions
{{ p.effect }}
{{ p.pattern }}
{{ agent_map[p.agent_id].name if p.agent_id in agent_map else 'all'|safe }}
{{ p.note }}
{{ constraint_label(p.constraints) }}
{% if p.constraints %}
Operation constraints{% with constraints=p.constraints %}{% include "_constraints.html" %}{% endwith %}
{% endif %}{% if p.request_id %}Original decision{% endif %}
{{ p.created_at.strftime('%m-%d') }} · {{ p.created_by }}
{% if not rows %}

No standing rules yet. Add a rule above.

{% endif %}
{% endblock %}