Skip to content

Add verifying-agent-receipts skill (Security)#25

Open
tomjwxf wants to merge 1 commit intotrailofbits:mainfrom
tomjwxf:feat/verifying-agent-receipts
Open

Add verifying-agent-receipts skill (Security)#25
tomjwxf wants to merge 1 commit intotrailofbits:mainfrom
tomjwxf:feat/verifying-agent-receipts

Conversation

@tomjwxf
Copy link
Copy Markdown

@tomjwxf tomjwxf commented Apr 15, 2026

Summary

Adds verifying-agent-receipts to the Security category. Guidance-only skill that teaches Claude to verify Ed25519-signed decision receipts produced by agent governance tooling — specifically protect-mcp, Microsoft Agent Governance Toolkit, and Cedar-enforced MCP gateways that follow the IETF Internet-Draft for signed decision receipts.

Fills a gap in the Security category: existing skills are advisory (security-awareness, openai-security-threat-model) or offensive (ffuf-web-fuzzing, ghidra-headless, scv-scan, wooyun-legacy). This teaches the missing "did the agent follow its policy, and can we prove it?" layer — forensic verification of signed audit logs.

Source

Why this fits ToB's audience

MCP operators and anyone running Claude Code against production tools need proof-of-policy, not just policy. Specific fit:

  • Formal verification story. Cedar (referenced throughout) has Lean proofs from AWS. Not hand-rolled authorization.
  • Crypto is boring on purpose. Ed25519 per RFC 8032, canonical JSON per RFC 8785 (JCS). Verifier depends only on @noble/ed25519.
  • Offline verification. npx @veritasacta/verify receipt.json requires no network, no vendor lookup, no account. Works air-gapped.
  • No hooks, no scripts with network calls, no runtime code. This is a guidance skill only. Runtime enforcement is a separate tool (the protect-mcp npm package) that users install independently if they choose to.

Modifications from upstream

  • Restructured the protect-mcp project's existing guidance into a standalone skill that follows the ToB SKILL.md format
  • Added explicit When to Use / When NOT to Use / Rationalizations to Reject sections per CLAUDE.md requirements for security skills
  • Removed all references to the protect-mcp runtime installer; skill only teaches verification, not enforcement
  • Uses {baseDir} convention throughout

Distribution signals

Review Findings

# Category Severity Description Status
1 Network calls Skill references npx @veritasacta/verify but does NOT invoke it in any hook or script. The user runs it explicitly; the skill only teaches how to interpret exit codes. Clean
2 Scripts No scripts shipped. Skill is pure guidance (SKILL.md + references). Clean
3 Hooks No hooks shipped. Clean
4 Obfuscation No base64, no eval, no encoded strings. Clean
5 Self-promotion INFO Skill references two npm packages (@veritasacta/verify, protect-mcp) and an IETF draft authored by the submitter. All are publicly documented, permissively licensed, and independently verifiable. The skill teaches a standards-based workflow, not a vendor pitch. Documented

Checklist

Technical (CI validates):

  • Valid YAML frontmatter with name and description
  • Name is kebab-case, gerund form (verifying-agent-receipts), ≤64 characters
  • All referenced files exist
  • No hardcoded paths (/Users/..., /home/...)

Quality:

  • Description is third-person, specific, includes trigger scenarios
  • "When to Use" / "When NOT to Use" / "Rationalizations to Reject" sections present
  • Examples are concrete (exit codes → meaning → action)
  • Explains WHY, not just WHAT (each rationalization section explains the failure mode)

Documentation:

  • Plugin has README.md
  • Added to root README.md Security table
  • Registered in .claude-plugin/marketplace.json

Happy to iterate on any of the framing, section structure, or content. Thanks for keeping a high bar on this marketplace — it's the reason it's valuable.

cc @dguido

Guidance-only skill that teaches Claude to verify Ed25519-signed decision
receipts produced by agent governance tooling (protect-mcp, Microsoft
Agent Governance Toolkit, Cedar-enforced MCP gateways following IETF
draft-farley-acta-signed-receipts).

## Summary

Covers: Ed25519 signature verification (RFC 8032), hash-chain integrity
walking, tamper diagnosis (which field was altered), Cedar policy digest
matching, offline verification via @veritasacta/verify (Apache-2.0, no
network calls).

Fills a gap in the Security category: existing skills (security-awareness,
scv-scan, ghidra-headless, ffuf-web-fuzzing, wooyun-legacy) are advisory
or offensive. This teaches the missing "did the agent follow its policy,
and can we prove it?" layer — forensic verification of signed audit logs.

## Source

- Upstream: https://github.com/ScopeBlind/scopeblind-gateway
- Author: Tom Farley / ScopeBlind
- License: MIT

## Why this fits ToB's audience

MCP operators and anyone running Claude Code against production tools need
proof-of-policy, not just policy. Specific fit:

- **Formal verification story.** Cedar (referenced throughout) has Lean
  proofs from AWS. Not hand-rolled authorization.
- **Crypto is boring on purpose.** Ed25519 per RFC 8032, canonical JSON
  per RFC 8785 (JCS). Verifier is small, no dependencies beyond
  @noble/ed25519.
- **Offline verification.** Receipts verify with just the issuer's public
  key — no vendor backend, no phone-home.
- **No hooks, no network, no runtime code.** This is a guidance skill only.
  It does not ship hooks, run background services, or make network calls
  from Claude Code. Runtime enforcement is a separate tool (protect-mcp
  npm) users install independently.

## Distribution signals

- npm protect-mcp: ~2,300 downloads/month (10K+/month across 16 packages)
- Microsoft AGT adapter merged: microsoft/agent-governance-toolkit#667
- Cedar-for-agents WASM bindings merged: cedar-policy/cedar-for-agents#64
- wshobson/agents (Claude Code marketplace, 33K stars) PR #484 pending
- IETF Internet-Draft: draft-farley-acta-signed-receipts

## Review notes

- Follows ToB SKILL.md structure: When to Use / When NOT to Use /
  Rationalizations to Reject
- Third-person description, gerund form name (verifying-agent-receipts)
- Uses {baseDir} convention (no hardcoded paths)
- No hooks, no scripts with network access
- allowed-tools restricted to Read, Glob, Bash, Grep (minimum needed)
- Single-level reference structure (SKILL.md → standards docs, no chains)
@tomjwxf tomjwxf requested a review from dguido as a code owner April 15, 2026 16:13
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants