Axtary
live package pathmatching doc

Approved payload changed before execution

The reviewer approved one file body; the agent tried to execute another.

1 step-up1 deny
No secret or provider credential required

Run your own command

real policy decision

Type a shell command an agent might run. Axtary evaluates it through the same runtime-hook path as axtary hook claude-code — the real policy decision, reason, and payload hash. Nothing is executed and no credentials are used.

$

Decision trail

scenario output
Step-up
step_up

The normalized action is in scope only after exact payload-bound reviewer approval.

payloadsha256:74d11ba2fa09a…314c3edc86
actionsha256:99496a31dde4d…6d9fc4965c
ledgersha256:f280c5c39fd3b…b288a9bd26
executionapproval_required
payload_touches_step_up_path
Tamper block
deny

The normalized action is outside the active policy and must not execute.

payloadsha256:b320da9ac8821…f91b4b3fa5
actionsha256:02649ffb9d33d…1125d8abd8
ledgersha256:ccd5681fe8a0e…392fcadba0
executionblocked
approval_payload_hash_mismatch

Normalized payload evidence

2 payloads

approved

sha256:74d11ba2fa09a…314c3edc86

{
  "tool": "github.contents.write",
  "resource": "repo:company/web-app",
  "payload": {
    "path": "auth/session.ts",
    "branch": "feature/session-hardening",
    "content": "export const sessionCookie = { sameSite: 'strict' };",
    "message": "Harden session cookie defaults"
  }
}

executed

sha256:b320da9ac8821…f91b4b3fa5

{
  "tool": "github.contents.write",
  "resource": "repo:company/web-app",
  "payload": {
    "path": "auth/session.ts",
    "branch": "feature/session-hardening",
    "content": "export const sessionCookie = { sameSite: 'strict', redirect: '/admin' };",
    "message": "Harden session cookie defaults and redirect behavior"
  }
}

Copyable path

cli
axtary run workflow github-pr-review --real --tamper

Governance inspector

evidence

approved payload

sha256:74d11ba2fa09a…314c3edc86

executed payload

sha256:b320da9ac8821…f91b4b3fa5

approval artifact

sha256:8e4dbca243ffa…b925365574

API response

/api/playground
{
  "id": "content-tamper-block",
  "decisions": [
    {
      "label": "Step-up",
      "decision": "step_up",
      "reasons": [
        "payload_touches_step_up_path"
      ],
      "summary": "The normalized action is in scope only after exact payload-bound reviewer approval.",
      "payloadHash": "sha256:74d11ba2fa09a8ce87680534498028f68d1619e98868b4b6949c74314c3edc86",
      "actionHash": "sha256:99496a31dde4d0e69ed492c676cdbdc3727df827d8a3b52c8cead86d9fc4965c",
      "ledgerHash": "sha256:f280c5c39fd3b87e401fde12d9f7de73269450b129dd8bcf16c52bb288a9bd26",
      "execution": "approval_required"
    },
    {
      "label": "Tamper block",
      "decision": "deny",
      "reasons": [
        "approval_payload_hash_mismatch"
      ],
      "summary": "The normalized action is outside the active policy and must not execute.",
      "payloadHash": "sha256:b320da9ac8821f6e4659266b2488aa9ae6cd35943a6340f76f6daff91b4b3fa5",
      "actionHash": "sha256:02649ffb9d33d2f6853cdb85562dd1adf21bc3440bc3f74f3b35471125d8abd8",
      "ledgerHash": "sha256:ccd5681fe8a0e93ac167aa60a9f945d92ea87be848264de41bfed0392fcadba0",
      "execution": "blocked"
    }
  ],
  "inspector": [
    {
      "label": "approved payload",
      "value": "sha256:74d11ba2fa09a8ce87680534498028f68d1619e98868b4b6949c74314c3edc86"
    },
    {
      "label": "executed payload",
      "value": "sha256:b320da9ac8821f6e4659266b2488aa9ae6cd35943a6340f76f6daff91b4b3fa5"
    },
    {
      "label": "approval artifact",
      "value": "sha256:8e4dbca243ffab69004d565aa642e9fcacbf7dfd21531fd20a486cb925365574"
    }
  ]
}

Runs the real ActionPass approval-artifact hash check. No provider credential is used.