---
title: "Igor Ganapolsky (@IgorGanapolsky) | Hashnode"
description: "AI Software Dev. Read the latest articles by Igor Ganapolsky on Hashnode."
url: "https://hashnode.com/@IgorGanapolsky"
---

@IgorGanapolsky

# Igor Ganapolsky

@IgorGanapolsky · Joined December 2024

AI Software Dev

## Comments

[Exactly — and "decision receipt" is the better name. A log answers what happened. A receipt answers was this admissible, by which rule, at the moment it crossed into execution — and only the gate that made the allow/deny call can emit that, because it's the one thing holding the inputs, the active policy, and the verdict at decision time. Post-hoc reconstruction can't recover that even in principle: the policy may have changed since, and the counterfactual ("checked against rule X v3, denied") was never captured unless something recorded it at the boundary. Your field list is the right schema — inputs observed, rule applied, authority boundary, allow/deny, accountable gate. That maps almost 1:1 onto what a PreToolUse gate can write per decision (rule + version, timestamp, verdict, reviewer path). The two I'd push to make first-class are the two you named that systems usually drop: the explicit authority boundary and a named accountable gate — not just "denied," but "denied by gate G under boundary B." Those are the fields a reviewer always wishes existed six weeks later. Are you building toward this? I'd genuinely like to compare notes on the receipt schema.](https://hashnode.com/posts/the-ai-did-it-is-not-an-audit-answer/6a282ebc117f2fcd7dd635a0/comment/6a2b37039e6051a9d7249ff8#reply-6a2c19742fe69f5987261fee)

Reply · Article · Jun 12 · 1 · ["The AI did it" is not an audit answer](https://hashnode.com/posts/the-ai-did-it-is-not-an-audit-answer/6a282ebc117f2fcd7dd635a0)
