{
  "schema": "vedokrok.public-item.v1",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "url": "/knowledge/approve-the-exact-action-that-will-actually-run",
  "id": "MHC-D-RESEARCH-0998",
  "version": "0.1.0",
  "title": "Approve the exact action that will actually run",
  "summary": "Approved is meaningless until you say what was approved.",
  "kind": "checklist",
  "body": "Show the meaningful payload: target, scope, changed values and relevant consequences. Bind the approval to that payload at execution. If the proposal changes materially, obtain fresh approval instead of reusing permission granted for a different action.",
  "limits": [
    "A confirmation button without backend enforcement is not a security boundary. Approval also does not prove that the proposed content is factually correct."
  ],
  "topics": [
    "work-03-ai-assurance"
  ],
  "intents": [],
  "source_ids": [
    "RS-886EEB213E6001B1"
  ],
  "evidence": [
    {
      "claim": "OWASP transaction authorization requires the user to identify significant transaction data and advocates server-side verification of that data.",
      "source_id": "RS-886EEB213E6001B1",
      "role": "supports",
      "note": "AI action approval must be bound to the executed payload; a generic approval screen does not establish that binding.",
      "locator": "Sections 1.1 and 2.3"
    }
  ],
  "use_when": [
    "An AI agent prepares an edit, send or other consequential action for human approval."
  ],
  "avoid_when": [
    "A confirmation button without backend enforcement is not a security boundary. Approval also does not prove that the proposed content is factually correct."
  ],
  "example": "A reviewer approves a message to three named recipients. Adding a fourth recipient produces a new proposal, not a silent extension of the old approval.",
  "check": "A test that changes a significant field after approval is blocked or requests approval again.",
  "checklist": [
    "Present the exact target and significant action details before approval.",
    "Enforce that execution uses the approved payload and current permissions.",
    "Invalidate stale approval when significant details or applicable preconditions change."
  ],
  "sources": [
    {
      "id": "RS-886EEB213E6001B1",
      "title": "Transaction Authorization Cheat Sheet",
      "url": "https://cheatsheetseries.owasp.org/cheatsheets/Transaction_Authorization_Cheat_Sheet.html"
    }
  ],
  "relations": [
    {
      "from": "MHC-D-RESEARCH-0998",
      "to": "MHC-D-RESEARCH-0977",
      "type": "useful_with",
      "url": "/knowledge/make-the-write-conditional-on-the-version-you-reviewed"
    }
  ],
  "collections": [
    {
      "id": "RC-620AACFCDEA000D1",
      "title": "Make AI-assisted work earn your trust",
      "url": "/collections/make-ai-assisted-work-earn-your-trust"
    }
  ]
}
