Skip to main content

Annotation Attributes Reference

Complete reference for all axag-* HTML attributes with usage examples.

axag​

Type: macro
Required: MAY

Shorthand for the identity and safety attributes below. See Macro Syntax.

axag — macro shorthand
axag="write:user.deactivate!critical?approval&roles=security_admin"

axag-intent​

Type: string
Required: MUST
Pattern: ^[a-z_]+\.[a-z_]+$

Canonical identifier for the action's intent. Uses entity.action naming convention.

axag-intent — entity.action format
axag-intent="product.search"
axag-intent="cart.add_item"
axag-intent="order.track"
axag-intent="account.delete"

axag-entity​

Type: string
Required: MUST
Pattern: ^[a-z_]+$

The entity this action operates on.

axag-entity — domain entity names
axag-entity="product"
axag-entity="cart"
axag-entity="user"
axag-entity="billing"

axag-action-type​

Type: enum
Required: MUST
Values: read, write, delete, navigate

axag-action-type — operation classification
axag-action-type="read"    <!-- Query, search, list, get, view -->
axag-action-type="write" <!-- Create, update, submit, schedule -->
axag-action-type="delete" <!-- Remove, cancel, deactivate -->
axag-action-type="navigate" <!-- Change view without mutating data -->

axag-description​

Type: string
Required: SHOULD

Human-readable description of what the action does. Used in generated tool descriptions.

axag-description — human-readable action summary
axag-description="Search the product catalog with text query and optional filters"

axag-risk-level​

Type: enum
Required: SHOULD
Values: none, low, medium, high, critical

LevelCriteriaExample
noneRead-only, no side-effectsSearch, list, view
lowWrite with reversible effectsCreate draft, add to cart
mediumWrite with moderate consequencesSubmit form, update record
highWrite with significant consequencesDelete data, process refund
criticalWrite with financial/security/legal impactBilling change, disable MFA

axag-idempotent​

Type: boolean
Required: SHOULD (for write/delete)

Whether calling the operation twice with the same parameters produces the same result.

axag-idempotent — safe to retry?
axag-idempotent="true"   <!-- Update status, set value, soft delete -->
axag-idempotent="false" <!-- Create record, add to cart, send email -->

axag-required-parameters​

Type: JSON string[]
Required: SHOULD

axag-required-parameters
axag-required-parameters='["product_id","quantity"]'

axag-optional-parameters​

Type: JSON string[]
Required: MAY

axag-optional-parameters
axag-optional-parameters='["variant_id","gift_wrap"]'

axag-preconditions​

Type: JSON string[]
Required: MAY

axag-preconditions — what must be true before execution
axag-preconditions='["product must be in stock","user must be authenticated"]'

axag-postconditions​

Type: JSON string[]
Required: MAY

axag-postconditions — guaranteed state after execution
axag-postconditions='["item added to cart","cart total updated"]'

axag-confirmation-required​

Type: boolean
Required: MUST (when risk_level is high or critical)

axag-confirmation-required — user must confirm
axag-confirmation-required="true"

axag-approval-required​

Type: boolean
Required: MUST (when approval gate exists)

axag-approval-required — needs human approval gate
axag-approval-required="true"

axag-approval-roles​

Type: JSON string[]
Required: MUST (when approval-required is true)

axag-approval-roles — who can approve
axag-approval-roles='["super_admin","security_admin"]'

axag-side-effects​

Type: JSON string[]
Required: SHOULD (for write/delete with external effects)

axag-side-effects — external consequences
axag-side-effects='["email_notification","inventory_update","refund_processing"]'

axag-scope​

Type: enum
Required: SHOULD
Values: public, user, tenant, global

axag-scope — visibility boundary
axag-scope="tenant"

axag-tenant-boundary​

Type: enum
Required: SHOULD (for tenant-scoped operations)
Values: strict, relaxed

axag-tenant-boundary — cross-tenant enforcement
axag-tenant-boundary="strict"

axag-async​

Type: boolean
Required: MAY

axag-async — long-running operation
axag-async="true"