Syntic

Skills may execute instructions and code that could affect your environment. Marketplace scans reduce risk but do not guarantee safety. Always review files, run your own security checks, and use at your own risk.

Regulatory & QualityFree Safe

agent-decision-receipts

Security Scan Summary

Status: Safe

Source: Syntic Skills registry

Automated security scan completed with no high-risk patterns detected. Manual review is still required.

About This Skill

Use when an autonomous agent takes a consequential, side-effecting action (deploy, delete, pay, grant-access, model decision) that may need proof later, or for EU AI Act Article 12 record-keeping.

Downloadable SKILL.md

Download SKILL.md and place it in your Syntic skills folder. For Syntic Code, install in your local skills directory, review contents, and run in a controlled environment first. Acknowledge the risk notice above to enable the download.

SKILL.md
---
name: agent-decision-receipts
description: Use when an autonomous agent takes a consequential, side-effecting action (deploy, delete, pay, grant-access, model decision) that may need proof later, or for EU AI Act Article 12 record-keeping.
category: Regulatory & Quality
version: 1.0.0
tools: []
---

# Agent Decision Receipts

A log says an action happened. A **receipt is tamper-evident**: it records who, what, and under which policy, and it is signed, so any later edit breaks the signature. This skill mints one for a consequential agent action and verifies it later from the certificate alone — no database, no network, no trusting the issuer.

The cryptography is not implemented here — it's delegated to the open-source **OpenAgentOntology** receipt primitive (Apache-2.0), which signs every receipt with Ed25519 **and** the post-quantum legs ML-DSA-65 (FIPS 204) + SLH-DSA (FIPS 205) when the post-quantum backend is available. This skill is the decision layer: when to mint, what goes in, how to verify.

**Three decisions, nothing else:**

1. **Does this action need a receipt?** Side-effecting + consequential + later-provable = yes.
2. **Mint the receipt** — build the action manifest, have it signed.
3. **Verify it** — recompute the hash, check each signature leg, from the certificate alone.

This is **NOT log analysis** — logs describe what happened and can be silently edited after the fact; a receipt is minted at the point of action and breaks if edited. Use logs for debugging, receipts for evidence.

This is **NOT a hosted notary** — it mints a local, self-signed receipt anyone can verify offline. Cross-organization verification (one org proving something to another) is a separate hosted service and out of scope.

This is **NOT a legal opinion** — it produces evidence shaped to support FRE 902(13)/(14)-style certification and EU AI Act Article 12 record-keeping. Whether a given receipt is admitted is a question for counsel.

## Decision 1: Does this action need a receipt?

Mint a receipt when the action is **all three** of:

| Test | Mint if... |
|------|-----------|
| Side-effecting | it writes, sends, deploys, deletes, pays, grants access, or changes external state |
| Consequential | a wrong call costs money, breaks compliance, or harms a person |
| Later-provable | an auditor, insurer, regulator, court, or counterparty may later ask "what did the agent do and why?" |

Read-only, reversible, trivial actions do **not** need a receipt. Receipt everything and the signal drowns; receipt nothing and the one call that mattered can't be proven.

Mint by default for: deploy, delete, pay/wire/refund, grant_access, export/egress, approve/deny a claim, and any model decision that affects a person under a high-risk AI system.

## Decision 2: Mint the receipt

Build an action manifest — any plain, ASCII-safe description of what the agent did. Four fields are required, and the manifest should be rejected if any is missing:

| Field | Required? | Carries |
|-----|-----------|-----------------|
| `agent_id` | required | the acting agent |
| `operation` | required | the verb — deploy / delete / pay / decide / ... |
| `target` | required | what it acted on |
| `policy` | required | the rule that governs it, e.g. "EU AI Act Art 12" or "internal change-control" |
| `inputs_hash` | auto-added | a hash of the inputs, so the full payload need not be stored in the clear |
| `decision_label` | auto-added | the receipt's decision label, defaults to `ACTION_GOVERNED` |

Minting hashes the full manifest into the receipt evidence, signs the canonical body, and returns a receipt carrying an `evidence_hash`, an Ed25519 signature, and — when the post-quantum backend is installed — an ML-DSA and an SLH-DSA signature. Each leg signs the same bytes; any one verifying proves authenticity.

## Decision 3: Verify it

Verification recomputes `sha256` over the canonicalized evidence, compares it to `evidence_hash`, then checks every signature leg it has a backend for, returning an ok/hash_ok/sig_ok/legs/reason result. A single edited byte anywhere in the action breaks `hash_ok`; a forged signature breaks that leg. Verification needs only the receipt — no call back to the issuer. That's the property that makes it evidence: a reviewer who distrusts the issuer can still confirm the receipt is intact and authentic, entirely offline.

## Anti-Patterns

- **Receipt the log, not the decision.** Minting over a log line written after the fact proves nothing — mint at the point of action, over the action.
- **Storing the signing key next to the receipts.** A compromised key makes every signature meaningless — treat it like any other signing secret.
- **Ed25519-only when post-quantum legs are available.** A receipt is long-lived evidence — sign with ML-DSA-65 + SLH-DSA so it stays verifiable if a future quantum computer breaks Ed25519.
- **Putting raw secrets or PII in the manifest.** The manifest is hashed into evidence and recoverable from the receipt — carry hashes, not cleartext.
- **Calling it "admissible."** It's evidence shaped to *support* FRE 902(13)/(14)-style certification; admissibility is a court's decision, not the tool's claim.
- **Faking a signature when crypto is unavailable.** Emit an explicit `unsigned` flag instead — never present an unsigned receipt as signed.

## Related work

This pairs with EU AI Act Article 12 risk-tier and record-keeping work (decide the obligations first, then mint the per-action record they require) and with AI management-system controls work (receipts are the per-decision evidence those controls call for). @mention a teammate who owns either program when scoping which actions need receipts.

Bundle Download

Includes SKILL.md and bundled support files where provided. Risk acknowledgement is required.

Install Targets

Syntic App

  1. 1. Create a dedicated folder for this skill in your local skills library.
  2. 2. Place SKILL.md into that folder.
  3. 3. Restart Syntic and invoke this skill on matching tasks.

Syntic Code (CLI)

  1. 1. Save SKILL.md in your local Syntic Code skills directory.
  2. 2. Keep related files in the same skill folder.
  3. 3. Run in a safe environment and validate outputs.

Source

https://github.com/alirezarezvani/claude-skills/blob/main/ra-qm-team/skills/agent-decision-receipts/SKILL.md

Open Source Link
Regulatory & Quality

Related Skills