Skip to content

Protocol Model

IGRE uses a small command taxonomy. The taxonomy is intentionally strict because each verb carries different safety semantics.

VerbReadsMutatesPurpose
lfetchlocal true systemsledger onlyRecord local grounding.
fetchremote true systemsledger onlyRecord remote grounding.
intend create-*ledger fetch artifactsledger onlyBuild a proposed intervention.
intend list/statusledger intentsnothingInspect proposed or attempted interventions.
lactionledger and local systemslocal true systemsExecute a local mutation.
actionledger and remote systemsremote true systemsExecute a remote mutation.

An intent is action-ready. It may contain one unit or many units. It should include:

  • selected tool and action target
  • source fetch lineage
  • execution plan
  • data paths
  • success and failure checks
  • invariants and blind spots
  • rollback classification
  • risk profile
  • per-unit payloads when the workflow is batch-shaped

An execution plan makes multi-step behavior explicit:

{
"steps": [
{
"name": "create_remote_record",
"stage": "ACTION",
"required": true,
"mutates": ["remote.records"]
},
{
"name": "verify_remote_record",
"stage": "FETCH",
"required": true,
"reads": ["remote.record.<created_id>"]
},
{
"name": "update_local_cache",
"stage": "LACTION",
"required": false,
"mutates": ["local.cache.records"]
}
]
}

Remote verification reads are fetches even if the action runner performs them internally.

Before mutation, laction and action must validate:

  • the intent exists and still lints
  • source fetches exist and are fresh
  • SDK/catalog versions still match
  • the requested command target matches the intent target
  • the command action name matches the selected tool
  • the intent’s plan allows the side effects about to happen

Any validation error blocks mutation.