peac-af3293 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited peac-af3293 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Work with PEAC Protocol receipts: cryptographically signed, offline-verifiable evidence of what happened during automated interactions.
Wire format: peac-receipt/0.1 (frozen). Signing algorithm: Ed25519 (EdDSA). Each receipt is a compact JWS (JSON Web Signature).
npx @peac/mcp-serverpeac_verify with { "jws": "<receipt_jws>", "publicKey": "<base64url_or_jwk>" }.ok: true/false, signature validity, claims summary, and verification checks.If you only have the issuer URL (not the raw key), the server resolves the key via /.well-known/peac-issuer.json -> jwks_uri -> JWKS.
Use peac_inspect for debugging without full verification:
{ "jws": "<receipt_jws>" }typ, alg, kid), payload metadata (issuer, audience, amount, currency, rail, timestamps), and redaction status.Use peac_decode for raw JWS structure without any verification:
{ "jws": "<receipt_jws>" }verified: false.Issuing requires an Ed25519 private key. Start the server with a key:
npx @peac/mcp-server --issuer-key env:PEAC_ISSUER_KEY --issuer-id https://your-service.example.comCall peac_issue with receipt parameters:
{
"iss": "https://your-service.example.com",
"kind": "evidence",
"type": "org.peacprotocol/payment",
"pillars": ["commerce"],
"extensions": {
"org.peacprotocol/commerce": {
"payment_rail": "stripe",
"amount_minor": "10000",
"currency": "USD",
"reference": "pi_abc123"
}
}
}The response includes the signed JWS and a claims summary.
Use peac_create_bundle to create a portable evidence bundle directory:
{ "receipts": ["<jws1>", "<jws2>"], "bundleDir": "/path/to/output" }peac-bundle/0.1.Import patterns by layer:
// Types and constants (Layer 0, zero runtime)
import { WIRE_TYPE, HEADERS, type PeacEvidenceCarrier, type CarrierAdapter } from '@peac/kernel';
// Validation schemas (Layer 1)
import {
computeReceiptRef,
validateCarrierConstraints,
assertJsonSafeIterative,
} from '@peac/schema';
// Signing and verification (Layer 2)
import { sign, verify, base64urlEncode, base64urlDecode, sha256Hex } from '@peac/crypto';
// High-level APIs (Layer 3)
import { issue, verifyLocal, type IssueOptions, type VerifyLocalResult } from '@peac/protocol';verifyLocal() or peac_verify.receipt_ref (content-addressed sha256:<hex64>) for references, not raw JWS.assertJsonSafeIterative() before signing.peac-receipt/0.1 is frozen. Do not modify header fields (typ: PEAC/0.1, alg: EdDSA).@peac/mcp-server on npmallowed-tools: ["Bash", "Read"]
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.