{"id":"198ff790-7c6e-460f-8449-e5f3a1b06527","entityType":"agent","slug":"clawhub-tooled-app-data-guardian-audit","name":"Guardian Audit","canonicalUrl":"https://www.xpersona.co/agent/clawhub-tooled-app-data-guardian-audit","canonicalPath":"/agent/clawhub-tooled-app-data-guardian-audit","generatedAt":"2026-10-12T12:44:45.672Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:52:49.029Z","emptyReason":null},"description":"Tamper-evident audit logger that pairs with Guardian safety skill. Captures safety decisions (halts, approvals, escalations) in an append-only, hash-chained...","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 988 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s1732m0wt3pbwh1b2yn4byean986njc4:data-guardian-audit","sourceUrl":"https://clawhub.ai/tooled-app/data-guardian-audit","homepage":"https://clawhub.ai/tooled-app/skills/data-guardian-audit","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/tooled-app/data-guardian-audit","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/tooled-app/skills/data-guardian-audit","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Guardian Audit technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:52:49.029Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:52:49.029Z","emptyReason":null},"stars":null,"forks":null,"downloads":988,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.2.0","tractionLabel":"988 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:52:48.968Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T21:52:49.029Z","lastCrawledAt":"2026-10-11T21:52:48.968Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T21:52:48.968Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.0","createdAt":"2026-05-25T13:35:35.672Z","changelog":"- Added top-level compliance documentation: COMPLIANCE-MAPPING.md, LOG-SCHEMA.md, and REPLAY.md moved from 'references/' to the root directory. - Updated skill description to clarify: now only triggers on explicit safety decisions or compliance actions, not general logging requests. - Added a \"Privacy & Data Warning\" section highlighting best practices and risks, advising caution with sensitive information in logs. - Removed redundant or out-of-date files from the 'references/' directory.","fileCount":10,"zipByteSize":16957},{"version":"1.0.1","createdAt":"2026-05-21T17:51:43.507Z","changelog":"Guardian Audit v1.1 adds JIT-GRANTED tag support and new contact info. - Added support for **JIT-GRANTED** tags, allowing audit logs to mark operations performed during human-authorized destructive windows. - Introduced a new support contact: support@ikkf.info. - Documentation updates, including revised example log entry and minor clarifications. - No functional changes to code detected.","fileCount":9,"zipByteSize":15273},{"version":"1.0.0","createdAt":"2026-05-18T18:53:41.673Z","changelog":"**Guardian Audit introduces tamper-evident audit logging for safety-critical agent operations** - New hash-chained, append-only audit logger skill capturing every agent safety decision, destructive action, backup check, reasoning, outcome, and escalation. - Standalone scripts added for log event emission, hash chain verification, and compliance report export. - Logging schema, compliance mapping, and replay how-to now fully documented. - Legacy backup-check scripts and decision-matrix taxonomy references removed. - Designed for compliance, forensics, and regulatory audit trails; no impact on operational performance.","fileCount":9,"zipByteSize":15035}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1732m0wt3pbwh1b2yn4byean986njc4:data-guardian-audit","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s1732m0wt3pbwh1b2yn4byean986njc4:data-guardian-audit` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/tooled-app/data-guardian-audit before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tooled-app-data-guardian-audit/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tooled-app-data-guardian-audit/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tooled-app-data-guardian-audit/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-tooled-app-data-guardian-audit/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-tooled-app-data-guardian-audit/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-tooled-app-data-guardian-audit/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T12:44:45.671Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tooled-app-data-guardian-audit/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tooled-app-data-guardian-audit/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tooled-app-data-guardian-audit/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tooled-app-data-guardian-audit/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:52:49.029Z","emptyReason":null},"readme":"Skill: Guardian Audit\n\nOwner: tooled-app\n\nSummary: Tamper-evident audit logger that pairs with Guardian safety skill. Captures safety decisions (halts, approvals, escalations) in an append-only, hash-chained...\n\nTags: guardrails:1.0.0, latest:1.2.0, safety:1.0.0, security:1.0.0\n\nVersion history:\n\nv1.2.0 | 2026-05-25T13:35:35.672Z | user\n\n- Added top-level compliance documentation: COMPLIANCE-MAPPING.md, LOG-SCHEMA.md, and REPLAY.md moved from 'references/' to the root directory.\n- Updated skill description to clarify: now only triggers on explicit safety decisions or compliance actions, not general logging requests.\n- Added a \"Privacy & Data Warning\" section highlighting best practices and risks, advising caution with sensitive information in logs.\n- Removed redundant or out-of-date files from the 'references/' directory.\n\nv1.0.1 | 2026-05-21T17:51:43.507Z | user\n\nGuardian Audit v1.1 adds JIT-GRANTED tag support and new contact info.\n\n- Added support for **JIT-GRANTED** tags, allowing audit logs to mark operations performed during human-authorized destructive windows.\n- Introduced a new support contact: support@ikkf.info.\n- Documentation updates, including revised example log entry and minor clarifications.\n- No functional changes to code detected.\n\nv1.0.0 | 2026-05-18T18:53:41.673Z | user\n\n**Guardian Audit introduces tamper-evident audit logging for safety-critical agent operations**\n- New hash-chained, append-only audit logger skill capturing every agent safety decision, destructive action, backup check, reasoning, outcome, and escalation.\n- Standalone scripts added for log event emission, hash chain verification, and compliance report export.\n- Logging schema, compliance mapping, and replay how-to now fully documented.\n- Legacy backup-check scripts and decision-matrix taxonomy references removed.\n- Designed for compliance, forensics, and regulatory audit trails; no impact on operational performance.\n\nArchive index:\n\nArchive v1.2.0: 10 files, 16957 bytes\n\nFiles: COMPLIANCE-MAPPING.md (1696b), LOG-SCHEMA.md (3805b), README.md (5503b), REPLAY.md (1886b), scripts/export-report.py (4471b), scripts/log-event.py (4819b), scripts/verify-chain.py (3275b), skill-card.md (2487b), SKILL.md (7028b), _meta.json (138b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: guardian-audit\nversion: 1.1\ndescription: Tamper-evident audit logger that pairs with Guardian safety skill. Captures safety decisions (halts, approvals, escalations) in an append-only, hash-chained log. Use when Guardian makes a safety decision. Use for compliance audit trails. Does NOT activate on general logging requests like 'log this' or routine queries. Requires explicit safety context or compliance intent to trigger.\nSupport: support@ikkf.info\n---\n\n# Guardian Audit — Tamper-Evident Audit Logger (v1.1)\n\n> *\"Trust, but log.\"*\n\nA companion skill to **Guardian** (or any safety gatekeeper) that captures every decision, action, and escalation in an **append-only, hash-chained audit trail**.\n\n**Why this exists:** Guardian stops bad things. Guardian Audit proves it stopped them — or proves the agent did them anyway.\n\n## Privacy & Data Warning\n\n**Before using Guardian Audit, understand what it captures:**\n\nThis skill logs detailed operational data including: file paths, agent reasoning, human escalation responses, system commands, and safety decisions. These logs may contain:\n- Internal system paths and configurations\n- Sensitive operational details\n- Personal or business data processed by agents\n- Security decisions and approval context\n\n**Best practices:**\n- Review and redact logs before sharing or archiving\n- Configure log retention policies appropriate to your compliance requirements\n- Restrict log file access to authorized personnel only\n- Do not log secrets, passwords, or API keys in agent reasoning fields\n- Consider encryption for logs stored on shared or cloud-backed systems\n\n## What It Logs\n\nEvery entry includes:\n\n| Field | Purpose |\n|-------|---------|\n| `timestamp` | ISO-8601 with millisecond precision |\n| `sequence` | Monotonic integer, no gaps allowed |\n| `previous_hash` | SHA-256 of previous entry (chain integrity) |\n| `event_type` | `GUARDIAN_CHECK`, `GUARDIAN_HALT`, `GUARDIAN_APPROVE`, `EXECUTED`, `ESCALATION_RESOLVED` |\n| `agent_id` | Anonymous identifier (no platform specifics) |\n| `operation` | What the agent tried to do |\n| `target` | File / path / database / endpoint |\n| `category` | CRITICAL / HIGH / MEDIUM / NON-DESTRUCTIVE |\n| `backup_verdict` | VERIFIED / UNVERIFIED / STALE / PARTIAL |\n| `backup_checks` | JSON array of which indicators matched |\n| `decision` | PROCEED / HALT / AWAITING_HUMAN / DENIED |\n| `approver` | `guardian-auto` / `human:anonymous` / `agent:rejected` |\n| `agent_reasoning` | The agent's stated justification (quoted) |\n| `guardian_notes` | Why Guardian made this decision |\n| `outcome` | SUCCESS / FAILURE / TIMEOUT / CANCELLED |\n| `entry_hash` | SHA-256 of this entry's content |\n\n## The Hash Chain\n\n```\nEntry[N].previous_hash = SHA256(Entry[N-1].content)\nEntry[N].entry_hash = SHA256(Entry[N].content)\n```\n\nIf any entry is modified, every subsequent entry's `previous_hash` fails verification. The chain is self-validating.\n\n## Log Format\n\nAppend-only line-delimited JSON (NDJSON), one entry per line:\n\n```json\n{\"timestamp\":\"2026-05-19T13:58:45.112Z\",\"sequence\":42,\"previous_hash\":\"a3f7...\",\"event_type\":\"GUARDIAN_CHECK\",\"agent_id\":\"agent-7f3a\",\"operation\":\"rm -rf /tmp/old-builds\",\"target\":\"/tmp/old-builds\",\"category\":\"MEDIUM\",\"backup_verdict\":\"VERIFIED\",\"backup_checks\":[\"git-clean\"],\"decision\":\"PROCEED\",\"approver\":\"guardian-auto\",\"agent_reasoning\":\"Cleaning up old build artifacts\",\"guardian_notes\":\"CARS Medium risk auto-approved via git-clean verification\",\"outcome\":\"SUCCESS\",\"entry_hash\":\"9e2b...\"}\n```\n\n## Where Logs Live\n\n| Platform | Default Path |\n|----------|-------------|\n| Windows | `%LOCALAPPDATA%\\guardian-audit\\audit.log` |\n| macOS | `~/.local/share/guardian-audit\\audit.log` |\n| Linux | `~/.local/share/guardian-audit\\audit.log` |\n\n**Immutable by convention:** The log file has append-only permissions. The executing agent cannot delete or modify entries. Only a human with elevated privileges can rotate logs.\n\n## Verification Script\n\n```bash\n# Verify chain integrity\n./scripts/verify-chain.py audit.log\n# Output: \"Chain valid: 1,247 entries, 0 breaks\"\n# Or: \"CHAIN BROKEN at entry 843: hash mismatch\"\n```\n\n## Integration with Guardian\n\nGuardian calls Guardian Audit automatically after every decision:\n\n```\nGuardian Decision → Guardian Audit LOG → Continue / Halt\n```\n\nNo additional agent action required. Guardian Audit is a **passive listener** that records what happened.\n\n## Standalone Use\n\nSidenote: v1.1 now supports **JIT-GRANTED** tags in the audit log, marking operations performed during a human-authorized destructive window.\n\n```python\n# From any agent or tool\nfrom guardian_audit import log_event\n\nlog_event(\n    event_type=\"MANUAL_APPROVE\",\n    operation=\"deploy-production\",\n    target=\"api.production.internal\",\n    decision=\"PROCEED\",\n    approver=\"human:anonymous\",\n    agent_reasoning=\"Emergency fix for auth bug\"\n)\n```\n\n## Why This Matters\n\n**Compliance frameworks requiring audit trails:**\n- **EU AI Act** (Article 52): High-risk AI systems must maintain logs\n- **SOC 2 Type II**: Change management and access control evidence\n- **HIPAA §164.312(b)**: Mechanisms to record and examine activity\n- **GDPR Article 5(1)(d)**: Accuracy and accountability\n\n**Forensics:** When something goes wrong, you need to know:\n- What did the agent try to do?\n- Did Guardian stop it?\n- Did a human approve it anyway?\n- What was the agent's reasoning at the time?\n\n## Mandatory Rules\n\n1. **Append-Only:** Entries are never deleted. Log rotation creates new files, never modifies existing ones.\n2. **Hash Chain:** Every entry references the previous. Tampering is detectable.\n3. **No Agent Modification:** The executing agent cannot modify its own audit trail. Ever.\n4. **Minimal Overhead:** Logging adds <5ms per decision. No perceptible latency.\n5. **Human Readable:** NDJSON format means `tail -f audit.log` is meaningful without tooling.\n\n## Scope\n\n**Vanilla:** Not specific to Guardian. Works with any safety gatekeeper, human approval workflow, or agent runtime.\n\n**Passive:** Does not block or delay operations. Logs after the fact.\n\n**Mandatory:** Once enabled, all safety decisions are logged. No opt-out per-session.\n\n## References\n\n- `references/LOG-SCHEMA.md` — Complete field definitions and validation rules\n- `references/COMPLIANCE-MAPPING.md` — Framework requirements (EU AI Act, SOC 2, HIPAA, GDPR)\n- `references/REPLAY.md` — How to replay, search, and analyze audit trails\n- `scripts/log-event.py` — Python event logger (cross-platform)\n- `scripts/verify-chain.py` — Chain integrity verification\n- `scripts/export-report.py` — Generate compliance-ready reports\n\n## Based On\n\n- IETF draft-sharif-agent-audit-trail-00 (Mar 2026): Standardized AI agent audit trail format\n- AgentReceipt (2026): Immutable audit trails for AI agents\n- OWASP Agentic AI Top 10: Logging and monitoring requirements\n- GDPR Article 5 + EU AI Act Article 52: Regulatory audit trail mandates\n\n## License\n\nMIT — Audit trails should be a public la MIT — Audit trails should be a public good.\n\nFile v1.2.0:README.md\n\n# Guardian Audit — Tamper-Evident Audit Logger\n\n> *\"Trust, but log.\"*\n\n**Guardian Audit** is a companion skill to [Guardian](https://github.com/openclaw/guardian) (or any safety gatekeeper) that captures every destructive operation decision in an **append-only, hash-chained audit trail**.\n\nGuardian stops bad things. Guardian Audit proves it stopped them — or proves the agent did them anyway.\n\n---\n\n## Why This Exists\n\nYou have a safety gatekeeper. You know when it halts operations. But when something goes wrong, you need proof:\n\n- What did the agent try to do?\n- Did the safety tool stop it?\n- Did a human approve it anyway?\n- What was the agent's reasoning at the time?\n\nGuardian Audit answers these questions with tamper-evident logs.\n\n---\n\n## How It Works\n\nEvery safety decision generates a log entry with:\n\n| Field | Example |\n|-------|---------|\n| `timestamp` | `2026-05-18T14:02:31.847Z` |\n| `sequence` | `42` (monotonic, no gaps) |\n| `previous_hash` | SHA-256 of previous entry |\n| `event_type` | `GUARDIAN_HALT`, `EXECUTED`, `ESCALATION_RESOLVED` |\n| `operation` | `rm -rf /tmp/old-builds` |\n| `target` | `/tmp/old-builds` |\n| `category` | `HIGH` |\n| `backup_verdict` | `UNVERIFIED` |\n| `decision` | `HALT` |\n| `approver` | `guardian-auto` |\n| `agent_reasoning` | `\"Cleaning up old build artifacts\"` |\n| `entry_hash` | SHA-256 of this entry |\n\n**Hash chain:** Each entry references the previous. Modify one entry, every subsequent entry's hash fails verification.\n\n---\n\n## Installation\n\n### For OpenClaw\n\n```bash\n# macOS / Linux\ncp -r guardian-audit/ ~/.openclaw/skills/\n\n# Windows\nxcopy /E /I guardian-audit\\ %USERPROFILE%\\.openclaw\\skills\\guardian-audit\\\n```\n\nAdd to mandatory skills alongside Guardian.\n\n### Standalone\n\n```bash\npip install -e .\n# Or just copy scripts/ anywhere\n```\n\n---\n\n## Quick Start\n\n### Log an event manually\n\n```bash\npython3 scripts/log-event.py \\\n  --event-type GUARDIAN_HALT \\\n  --operation \"rm -rf /tmp/old-builds\" \\\n  --target \"/tmp/old-builds\" \\\n  --category HIGH \\\n  --backup-verdict UNVERIFIED \\\n  --decision HALT \\\n  --approver guardian-auto \\\n  --agent-reasoning \"Cleaning up old build artifacts\" \\\n  --guardian-notes \"No backup coverage detected\"\n```\n\n### Verify chain integrity\n\n```bash\npython3 scripts/verify-chain.py ~/.local/share/guardian-audit/audit.log\n# Chain valid: 2 entries, 0 breaks\n# Integrity: PASS\n```\n\n### Generate compliance report\n\n```bash\npython3 scripts/export-report.py audit.log --format markdown\n# Generates summary table, event breakdown, integrity statement\n```\n\n---\n\n## Log Location\n\n| Platform | Default Path |\n|----------|-------------|\n| Windows | `%LOCALAPPDATA%\\guardian-audit\\audit.log` |\n| macOS | `~/.local/share/guardian-audit/audit.log` |\n| Linux | `~/.local/share/guardian-audit/audit.log` |\n\n---\n\n## What Gets Logged\n\nGuardian Audit captures:\n- Every Guardian decision (check, halt, approve)\n- Every executed destructive operation\n- Every human escalation and resolution\n- Every override attempt (if any)\n\n**Does not log:** Read-only queries, non-destructive operations, general chat.\n\n---\n\n## Compliance\n\n| Framework | Requirement | Guardian Audit Feature |\n|-----------|-------------|------------------------|\n| **EU AI Act Art. 52** | High-risk AI logs | Every tool call logged |\n| **SOC 2 CC6.1/CC7.2** | Access monitoring | All operations with approver identity |\n| **HIPAA §164.312(b)** | Audit controls | Append-only, hash-chained, tamper-evident |\n| **GDPR Art. 5(1)(d)** | Accountability | Agent reasoning captured at decision time |\n\nFull mapping: `references/COMPLIANCE-MAPPING.md`\n\n---\n\n## Scripts\n\n| Script | Purpose |\n|--------|---------|\n| `scripts/log-event.py` | Append tamper-evident entry |\n| `scripts/verify-chain.py` | Verify hash chain integrity |\n| `scripts/export-report.py` | Generate compliance reports |\n\n---\n\n## Mandatory Rules\n\n1. **Append-Only:** Entries are never deleted. Log rotation creates new files.\n2. **Hash Chain:** Every entry references the previous. Tampering is detectable.\n3. **No Agent Modification:** The executing agent cannot modify its own audit trail.\n4. **Minimal Overhead:** Logging adds <5ms per decision.\n5. **Human Readable:** NDJSON format means `tail -f audit.log` works without tooling.\n\n---\n\n## Integration\n\nGuardian Audit is a **passive listener**. It logs after decisions are made, adding zero friction:\n\n```\nGuardian Decision → Guardian Audit LOG → Continue\n```\n\nNo blocking. No delays. Just proof.\n\n---\n\n## References\n\n- `references/LOG-SCHEMA.md` — Complete field definitions and validation rules\n- `references/COMPLIANCE-MAPPING.md` — Framework requirements (EU AI Act, SOC 2, HIPAA, GDPR)\n- `references/REPLAY.md` — How to replay, search, and analyze audit trails\n\n---\n\n## Based On\n\n- IETF draft-sharif-agent-audit-trail-00 (Mar 2026): Standardized AI agent audit trail format\n- AgentReceipt (2026): Immutable audit trails for AI agents\n- OWASP Agentic AI Top 10: Logging and monitoring requirements\n- GDPR Article 5 + EU AI Act Article 52: Regulatory audit trail mandates\n\n---\n\n## License\n\nMIT — Audit trails should be a public good.\n\n## Feedback & Issues\n\nGuardian Audit is maintained by the community. For bug reports, feature requests, or security concerns:\n\n- **Email:** support@ikkf.info or demystify@ikkf.info\n- **GitHub Issues:** (link to be added)\n- **Discussions:** (link to be added)\n\nWe respond to all emails within 48 hours.\n\n---\n\n*Pairs with Guardian. Verified on Windows, Linux, and macOS. Chain integrity guaranteed.*\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn77qg2t2rnb458ahv8751shv582rvm6\",\n  \"slug\": \"data-guardian-audit\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1779716135672\n}\n\nFile v1.2.0:COMPLIANCE-MAPPING.md\n\n# Compliance Mapping\n\nHow Guardian Audit satisfies regulatory requirements.\n\n## EU AI Act (2026)\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| Art. 52(1) — High-risk systems log operation | Every tool call logged |\n| Art. 52(2) — Automatic logging | Passive, no agent discretion |\n| Art. 52(3) — Logs retained | Append-only, human-rotated |\n| Art. 52(4) — Access by competent authorities | NDJSON readable without tooling |\n\n## SOC 2 Type II\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| CC6.1 — Logical access controls | Every access logged with approver |\n| CC7.2 — System operations monitored | Real-time event stream |\n| CC7.3 — System changes logged | Guardian_HALT/EXECUTED capture changes |\n| A1.2 — Availability monitoring | Outcome field tracks failures |\n\n## HIPAA §164.312(b)\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| Audit controls | All agent activity logged |\n| Mechanisms to examine | `scripts/export-report.py` generates readable reports |\n| Activity recording | Who (agent_id), what (operation), when (timestamp), result (outcome) |\n\n## GDPR Article 5(1)(d) — Accuracy\n\nGuardian Audit captures the agent's stated reasoning at decision time, enabling post-hoc verification of whether the agent's justification matched reality.\n\n## NIST AI RMF (2024)\n\n| Function | Mapping |\n|----------|---------|\n| GOVERN 1.1 | Policy enforcement via Guardian + Audit |\n| MAP 1.1 | Context documented in guardian_notes |\n| MEASURE 2.1 | Metrics from audit trail: halt rate, approval rate, pattern frequency |\n| MANAGE 2.1 | Escalation resolution tracked |\n\nFile v1.2.0:LOG-SCHEMA.md\n\n# Log Schema — Guardian Audit\n\n## Entry Fields (all entries)\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `timestamp` | string (ISO-8601) | Yes | UTC with millisecond precision |\n| `sequence` | integer | Yes | Monotonic, starting at 1, no gaps |\n| `previous_hash` | string (hex 64) | Yes | SHA-256 of previous entry's `entry_hash` field. First entry uses `\"genesis\"`. |\n| `event_type` | enum | Yes | See Event Types below |\n| `agent_id` | string | Yes | Anonymous agent identifier. No platform specifics. |\n| `operation` | string | Yes | The tool call or action being logged |\n| `target` | string | Yes | File path, database, endpoint, or \"N/A\" |\n| `category` | enum | Yes | CRITICAL / HIGH / MEDIUM / NON-DESTRUCTIVE / N/A |\n| `backup_verdict` | enum | No | VERIFIED / UNVERIFIED / STALE / PARTIAL / N/A |\n| `backup_checks` | array of objects | No | Which indicators matched |\n| `decision` | enum | Yes | PROCEED / HALT / AWAITING_HUMAN / DENIED / LOGGED |\n| `approver` | string | Yes | `guardian-auto` / `human:anonymous` / `agent:rejected` / `system` |\n| `agent_reasoning` | string | No | Agent's stated justification, quoted verbatim |\n| `guardian_notes` | string | No | Why Guardian or safety tool made this decision |\n| `outcome` | enum | No | SUCCESS / FAILURE / TIMEOUT / CANCELLED / PENDING |\n| `entry_hash` | string (hex 64) | Yes | SHA-256 of this entry's canonical JSON |\n\n## Event Types\n\n| Type | When |\n|------|------|\n| `GUARDIAN_CHECK` | Guardian scanned operation, backup verified, proceeded |\n| `GUARDIAN_HALT` | Guardian halted operation, backup unverified |\n| `GUARDIAN_APPROVE` | Guardian auto-approved (backup verified) |\n| `EXECUTED` | Operation executed (logged after completion) |\n| `ESCALATION_RESOLVED` | Human responded to escalation |\n| `MANUAL_APPROVE` | Human manually approved outside Guardian |\n| `MANUAL_DENY` | Human manually denied |\n| `AGENT_OVERRIDE_ATTEMPT` | Agent tried to override safety (should not happen) |\n| `CHAIN_VERIFICATION` | Automated integrity check passed/failed |\n\n## Hash Computation\n\n```python\nimport json, hashlib\n\ndef compute_hash(entry):\n    # Canonical JSON: sorted keys, no whitespace\n    canonical = json.dumps(entry, sort_keys=True, separators=(',',':'))\n    return hashlib.sha256(canonical.encode('utf-8')).hexdigest()\n\n# entry_hash is computed AFTER adding previous_hash but BEFORE adding entry_hash itself\n# So entry_hash covers: timestamp, sequence, previous_hash, event_type, ..., outcome\n```\n\n## Validation Rules\n\n1. `sequence` must equal previous entry's `sequence` + 1\n2. `previous_hash` must equal SHA-256 of previous entry's `entry_hash`\n3. `entry_hash` must match recomputed hash of entry content\n4. `timestamp` must be >= previous entry's timestamp\n5. `timestamp` must not be > 60 seconds in the future\n6. `agent_id` must be consistent for a single session (optional but recommended)\n\n## Example Entry\n\n```json\n{\n  \"timestamp\": \"2026-05-18T14:02:31.847Z\",\n  \"sequence\": 42,\n  \"previous_hash\": \"a3f7c8d2e1b4a509f6e3d8c7b2a1f4e5d6c3b8a9f0e1d2c3b4a5f6e7d8c9b0a1\",\n  \"event_type\": \"GUARDIAN_HALT\",\n  \"agent_id\": \"agent-7f3a\",\n  \"operation\": \"rm -rf /tmp/old-builds\",\n  \"target\": \"/tmp/old-builds\",\n  \"category\": \"HIGH\",\n  \"backup_verdict\": \"UNVERIFIED\",\n  \"backup_checks\": [],\n  \"decision\": \"HALT\",\n  \"approver\": \"guardian-auto\",\n  \"agent_reasoning\": \"Cleaning up old build artifacts from CI pipeline\",\n  \"guardian_notes\": \"Mass delete operation with no backup coverage. Target path not in git, no cloud sync, no explicit backup tool.\",\n  \"outcome\": \"AWAITING_HUMAN\",\n  \"entry_hash\": \"9e2b4c6d8f0a1b3c5e7d9f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f7a9b1c\"\n}\n```\n\n## Entry Size Limit\n\nMaximum entry size: 8 KB. If agent_reasoning or guardian_notes exceed this, truncate with `\"...[truncated]\"`.\n\nFile v1.2.0:REPLAY.md\n\n# Replay and Analysis\n\nHow to search, replay, and analyze Guardian Audit trails.\n\n## Basic Queries\n\n```bash\n# Show last 20 events\ntail -n 20 audit.log | jq -c '{timestamp, event_type, operation, decision}'\n\n# Show all halts\ngrep 'GUARDIAN_HALT' audit.log | jq -c '{timestamp, operation, target, approver}'\n\n# Show events for specific target\ngrep '/tmp/old-builds' audit.log | jq .\n\n# Show approval rate\nTOTAL=$(wc -l < audit.log)\nAPPROVED=$(grep 'PROCEED' audit.log | wc -l)\necho \"Approval rate: $((APPROVED * 100 / TOTAL))%\"\n```\n\n## Chain Verification\n\n```bash\npython3 scripts/verify-chain.py audit.log\n# Output:\n# Chain valid: 1,247 entries\n# Last hash: 9e2b4c6d...\n# Verification time: 23ms\n```\n\n## Pattern Analysis\n\n```bash\n# Most common halted operations\ngrep 'GUARDIAN_HALT' audit.log | jq -r '.operation' | sort | uniq -c | sort -rn | head -10\n\n# Agents with most escalations\ngrep 'AWAITING_HUMAN' audit.log | jq -r '.agent_id' | sort | uniq -c | sort -rn\n\n# Backup failure reasons\ngrep 'UNVERIFIED' audit.log | jq -r '.guardian_notes' | grep -o 'no [^,]*' | sort | uniq -c\n```\n\n## Compliance Report\n\n```bash\npython3 scripts/export-report.py audit.log --format markdown --start 2026-05-01 --end 2026-05-31\n# Generates:\n# - Event summary table\n# - Decision breakdown pie chart data\n# - Agent escalation frequency\n# - Backup coverage statistics\n# - Chain integrity statement\n```\n\n## Incident Replay\n\nWhen something goes wrong:\n\n```bash\n# Extract complete timeline for an incident\npython3 scripts/replay.py audit.log --target \"/data/production\" --before \"2026-05-18T14:05:00Z\" --window 300\n\n# Output:\n# 14:02:31 GUARDIAN_HALT  rm -rf /data/production/old  (backup: UNVERIFIED)\n# 14:03:15 ESCALATION_RESOLVED  human APPROVED with note: \"Emergency cleanup approved\"\n# 14:03:16 EXECUTED  rm -rf /data/production/old  outcome: SUCCESS\n# 14:04:00 CHAIN_VERIFICATION  integrity: PASS\n```\n\nFile v1.2.0:skill-card.md\n\n## Description:\n\nGuardian Audit records safety decisions, approvals, escalations, and execution outcomes in an append-only, hash-chained audit log.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[tooled-app](https://clawhub.ai/user/tooled-app)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, operators, and compliance reviewers use Guardian Audit to capture safety-gate decisions and review audit trails for incident analysis or compliance evidence.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Users may treat generated reports as verified compliance proof.\n\nMitigation: Use reports as local audit notes unless authenticated approvals, protected append-only storage, real chain verification, restrictive file permissions, and documented event coverage are in place.\n\nRisk: Audit logs can contain sensitive operational details, personal or business data, security decisions, and agent reasoning.\n\nMitigation: Restrict log access, avoid logging secrets, redact logs before sharing, configure retention, and consider encryption for shared or cloud-backed storage.\n\nRisk: The report generator summarizes chain integrity but does not itself perform detailed verification.\n\nMitigation: Run the chain verification script against the audit log and correlate report outputs with the original safety-gate records before relying on them.\n\n## Reference(s):\n\n- [Guardian Audit Log Schema](artifact/LOG-SCHEMA.md)\n- [Guardian Audit Compliance Mapping](artifact/COMPLIANCE-MAPPING.md)\n- [Guardian Audit Replay and Analysis](artifact/REPLAY.md)\n- [Guardian project](https://github.com/openclaw/guardian)\n- [ClawHub skill page](https://clawhub.ai/tooled-app/skills/data-guardian-audit)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance, NDJSON audit entries, JSON status output, and optional Markdown or JSON reports]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Audit entries may include operational details such as file paths, commands, approval context, and agent reasoning.]\n\n## Skill Version(s):\n\n1.2.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.1: 9 files, 15273 bytes\n\nFiles: README.md (5503b), references/COMPLIANCE-MAPPING.md (1696b), references/LOG-SCHEMA.md (3805b), references/REPLAY.md (1886b), scripts/export-report.py (4120b), scripts/log-event.py (4819b), scripts/verify-chain.py (3268b), SKILL.md (6486b), _meta.json (138b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: guardian-audit\nversion: 1.1\ndescription: Tamper-evident audit logger that pairs with Guardian safety skill. Captures every destructive operation decision, agent reasoning, backup verification result, and human escalation response in an append-only, hash-chained log. Use when Guardian or any safety gatekeeper halts or approves an operation. Use when compliance requires proof of what AI agents did and why. Use when you need replay, forensics, or regulatory audit trails for agent actions. Triggers on any safety decision, destructive operation execution, escalation event, or when the user says \"log this\", \"audit trail\", \"compliance\", or \"what did the agent do\".\nSupport: support@ikkf.info\n---\n\n# Guardian Audit — Tamper-Evident Audit Logger (v1.1)\n\n> *\"Trust, but log.\"*\n\nA companion skill to **Guardian** (or any safety gatekeeper) that captures every decision, action, and escalation in an **append-only, hash-chained audit trail**.\n\n**Why this exists:** Guardian stops bad things. Guardian Audit proves it stopped them — or proves the agent did them anyway.\n\n## What It Logs\n\nEvery entry includes:\n\n| Field | Purpose |\n|-------|---------|\n| `timestamp` | ISO-8601 with millisecond precision |\n| `sequence` | Monotonic integer, no gaps allowed |\n| `previous_hash` | SHA-256 of previous entry (chain integrity) |\n| `event_type` | `GUARDIAN_CHECK`, `GUARDIAN_HALT`, `GUARDIAN_APPROVE`, `EXECUTED`, `ESCALATION_RESOLVED` |\n| `agent_id` | Anonymous identifier (no platform specifics) |\n| `operation` | What the agent tried to do |\n| `target` | File / path / database / endpoint |\n| `category` | CRITICAL / HIGH / MEDIUM / NON-DESTRUCTIVE |\n| `backup_verdict` | VERIFIED / UNVERIFIED / STALE / PARTIAL |\n| `backup_checks` | JSON array of which indicators matched |\n| `decision` | PROCEED / HALT / AWAITING_HUMAN / DENIED |\n| `approver` | `guardian-auto` / `human:anonymous` / `agent:rejected` |\n| `agent_reasoning` | The agent's stated justification (quoted) |\n| `guardian_notes` | Why Guardian made this decision |\n| `outcome` | SUCCESS / FAILURE / TIMEOUT / CANCELLED |\n| `entry_hash` | SHA-256 of this entry's content |\n\n## The Hash Chain\n\n```\nEntry[N].previous_hash = SHA256(Entry[N-1].content)\nEntry[N].entry_hash = SHA256(Entry[N].content)\n```\n\nIf any entry is modified, every subsequent entry's `previous_hash` fails verification. The chain is self-validating.\n\n## Log Format\n\nAppend-only line-delimited JSON (NDJSON), one entry per line:\n\n```json\n{\"timestamp\":\"2026-05-19T13:58:45.112Z\",\"sequence\":42,\"previous_hash\":\"a3f7...\",\"event_type\":\"GUARDIAN_CHECK\",\"agent_id\":\"agent-7f3a\",\"operation\":\"rm -rf /tmp/old-builds\",\"target\":\"/tmp/old-builds\",\"category\":\"MEDIUM\",\"backup_verdict\":\"VERIFIED\",\"backup_checks\":[\"git-clean\"],\"decision\":\"PROCEED\",\"approver\":\"guardian-auto\",\"agent_reasoning\":\"Cleaning up old build artifacts\",\"guardian_notes\":\"CARS Medium risk auto-approved via git-clean verification\",\"outcome\":\"SUCCESS\",\"entry_hash\":\"9e2b...\"}\n```\n\n## Where Logs Live\n\n| Platform | Default Path |\n|----------|-------------|\n| Windows | `%LOCALAPPDATA%\\guardian-audit\\audit.log` |\n| macOS | `~/.local/share/guardian-audit\\audit.log` |\n| Linux | `~/.local/share/guardian-audit\\audit.log` |\n\n**Immutable by convention:** The log file has append-only permissions. The executing agent cannot delete or modify entries. Only a human with elevated privileges can rotate logs.\n\n## Verification Script\n\n```bash\n# Verify chain integrity\n./scripts/verify-chain.py audit.log\n# Output: \"Chain valid: 1,247 entries, 0 breaks\"\n# Or: \"CHAIN BROKEN at entry 843: hash mismatch\"\n```\n\n## Integration with Guardian\n\nGuardian calls Guardian Audit automatically after every decision:\n\n```\nGuardian Decision → Guardian Audit LOG → Continue / Halt\n```\n\nNo additional agent action required. Guardian Audit is a **passive listener** that records what happened.\n\n## Standalone Use\n\nSidenote: v1.1 now supports **JIT-GRANTED** tags in the audit log, marking operations performed during a human-authorized destructive window.\n\n```python\n# From any agent or tool\nfrom guardian_audit import log_event\n\nlog_event(\n    event_type=\"MANUAL_APPROVE\",\n    operation=\"deploy-production\",\n    target=\"api.production.internal\",\n    decision=\"PROCEED\",\n    approver=\"human:anonymous\",\n    agent_reasoning=\"Emergency fix for auth bug\"\n)\n```\n\n## Why This Matters\n\n**Compliance frameworks requiring audit trails:**\n- **EU AI Act** (Article 52): High-risk AI systems must maintain logs\n- **SOC 2 Type II**: Change management and access control evidence\n- **HIPAA §164.312(b)**: Mechanisms to record and examine activity\n- **GDPR Article 5(1)(d)**: Accuracy and accountability\n\n**Forensics:** When something goes wrong, you need to know:\n- What did the agent try to do?\n- Did Guardian stop it?\n- Did a human approve it anyway?\n- What was the agent's reasoning at the time?\n\n## Mandatory Rules\n\n1. **Append-Only:** Entries are never deleted. Log rotation creates new files, never modifies existing ones.\n2. **Hash Chain:** Every entry references the previous. Tampering is detectable.\n3. **No Agent Modification:** The executing agent cannot modify its own audit trail. Ever.\n4. **Minimal Overhead:** Logging adds <5ms per decision. No perceptible latency.\n5. **Human Readable:** NDJSON format means `tail -f audit.log` is meaningful without tooling.\n\n## Scope\n\n**Vanilla:** Not specific to Guardian. Works with any safety gatekeeper, human approval workflow, or agent runtime.\n\n**Passive:** Does not block or delay operations. Logs after the fact.\n\n**Mandatory:** Once enabled, all safety decisions are logged. No opt-out per-session.\n\n## References\n\n- `references/LOG-SCHEMA.md` — Complete field definitions and validation rules\n- `references/COMPLIANCE-MAPPING.md` — Framework requirements (EU AI Act, SOC 2, HIPAA, GDPR)\n- `references/REPLAY.md` — How to replay, search, and analyze audit trails\n- `scripts/log-event.py` — Python event logger (cross-platform)\n- `scripts/verify-chain.py` — Chain integrity verification\n- `scripts/export-report.py` — Generate compliance-ready reports\n\n## Based On\n\n- IETF draft-sharif-agent-audit-trail-00 (Mar 2026): Standardized AI agent audit trail format\n- AgentReceipt (2026): Immutable audit trails for AI agents\n- OWASP Agentic AI Top 10: Logging and monitoring requirements\n- GDPR Article 5 + EU AI Act Article 52: Regulatory audit trail mandates\n\n## License\n\nMIT — Audit trails should be a public la MIT — Audit trails should be a public good.\n\nFile v1.0.1:README.md\n\n# Guardian Audit — Tamper-Evident Audit Logger\n\n> *\"Trust, but log.\"*\n\n**Guardian Audit** is a companion skill to [Guardian](https://github.com/openclaw/guardian) (or any safety gatekeeper) that captures every destructive operation decision in an **append-only, hash-chained audit trail**.\n\nGuardian stops bad things. Guardian Audit proves it stopped them — or proves the agent did them anyway.\n\n---\n\n## Why This Exists\n\nYou have a safety gatekeeper. You know when it halts operations. But when something goes wrong, you need proof:\n\n- What did the agent try to do?\n- Did the safety tool stop it?\n- Did a human approve it anyway?\n- What was the agent's reasoning at the time?\n\nGuardian Audit answers these questions with tamper-evident logs.\n\n---\n\n## How It Works\n\nEvery safety decision generates a log entry with:\n\n| Field | Example |\n|-------|---------|\n| `timestamp` | `2026-05-18T14:02:31.847Z` |\n| `sequence` | `42` (monotonic, no gaps) |\n| `previous_hash` | SHA-256 of previous entry |\n| `event_type` | `GUARDIAN_HALT`, `EXECUTED`, `ESCALATION_RESOLVED` |\n| `operation` | `rm -rf /tmp/old-builds` |\n| `target` | `/tmp/old-builds` |\n| `category` | `HIGH` |\n| `backup_verdict` | `UNVERIFIED` |\n| `decision` | `HALT` |\n| `approver` | `guardian-auto` |\n| `agent_reasoning` | `\"Cleaning up old build artifacts\"` |\n| `entry_hash` | SHA-256 of this entry |\n\n**Hash chain:** Each entry references the previous. Modify one entry, every subsequent entry's hash fails verification.\n\n---\n\n## Installation\n\n### For OpenClaw\n\n```bash\n# macOS / Linux\ncp -r guardian-audit/ ~/.openclaw/skills/\n\n# Windows\nxcopy /E /I guardian-audit\\ %USERPROFILE%\\.openclaw\\skills\\guardian-audit\\\n```\n\nAdd to mandatory skills alongside Guardian.\n\n### Standalone\n\n```bash\npip install -e .\n# Or just copy scripts/ anywhere\n```\n\n---\n\n## Quick Start\n\n### Log an event manually\n\n```bash\npython3 scripts/log-event.py \\\n  --event-type GUARDIAN_HALT \\\n  --operation \"rm -rf /tmp/old-builds\" \\\n  --target \"/tmp/old-builds\" \\\n  --category HIGH \\\n  --backup-verdict UNVERIFIED \\\n  --decision HALT \\\n  --approver guardian-auto \\\n  --agent-reasoning \"Cleaning up old build artifacts\" \\\n  --guardian-notes \"No backup coverage detected\"\n```\n\n### Verify chain integrity\n\n```bash\npython3 scripts/verify-chain.py ~/.local/share/guardian-audit/audit.log\n# Chain valid: 2 entries, 0 breaks\n# Integrity: PASS\n```\n\n### Generate compliance report\n\n```bash\npython3 scripts/export-report.py audit.log --format markdown\n# Generates summary table, event breakdown, integrity statement\n```\n\n---\n\n## Log Location\n\n| Platform | Default Path |\n|----------|-------------|\n| Windows | `%LOCALAPPDATA%\\guardian-audit\\audit.log` |\n| macOS | `~/.local/share/guardian-audit/audit.log` |\n| Linux | `~/.local/share/guardian-audit/audit.log` |\n\n---\n\n## What Gets Logged\n\nGuardian Audit captures:\n- Every Guardian decision (check, halt, approve)\n- Every executed destructive operation\n- Every human escalation and resolution\n- Every override attempt (if any)\n\n**Does not log:** Read-only queries, non-destructive operations, general chat.\n\n---\n\n## Compliance\n\n| Framework | Requirement | Guardian Audit Feature |\n|-----------|-------------|------------------------|\n| **EU AI Act Art. 52** | High-risk AI logs | Every tool call logged |\n| **SOC 2 CC6.1/CC7.2** | Access monitoring | All operations with approver identity |\n| **HIPAA §164.312(b)** | Audit controls | Append-only, hash-chained, tamper-evident |\n| **GDPR Art. 5(1)(d)** | Accountability | Agent reasoning captured at decision time |\n\nFull mapping: `references/COMPLIANCE-MAPPING.md`\n\n---\n\n## Scripts\n\n| Script | Purpose |\n|--------|---------|\n| `scripts/log-event.py` | Append tamper-evident entry |\n| `scripts/verify-chain.py` | Verify hash chain integrity |\n| `scripts/export-report.py` | Generate compliance reports |\n\n---\n\n## Mandatory Rules\n\n1. **Append-Only:** Entries are never deleted. Log rotation creates new files.\n2. **Hash Chain:** Every entry references the previous. Tampering is detectable.\n3. **No Agent Modification:** The executing agent cannot modify its own audit trail.\n4. **Minimal Overhead:** Logging adds <5ms per decision.\n5. **Human Readable:** NDJSON format means `tail -f audit.log` works without tooling.\n\n---\n\n## Integration\n\nGuardian Audit is a **passive listener**. It logs after decisions are made, adding zero friction:\n\n```\nGuardian Decision → Guardian Audit LOG → Continue\n```\n\nNo blocking. No delays. Just proof.\n\n---\n\n## References\n\n- `references/LOG-SCHEMA.md` — Complete field definitions and validation rules\n- `references/COMPLIANCE-MAPPING.md` — Framework requirements (EU AI Act, SOC 2, HIPAA, GDPR)\n- `references/REPLAY.md` — How to replay, search, and analyze audit trails\n\n---\n\n## Based On\n\n- IETF draft-sharif-agent-audit-trail-00 (Mar 2026): Standardized AI agent audit trail format\n- AgentReceipt (2026): Immutable audit trails for AI agents\n- OWASP Agentic AI Top 10: Logging and monitoring requirements\n- GDPR Article 5 + EU AI Act Article 52: Regulatory audit trail mandates\n\n---\n\n## License\n\nMIT — Audit trails should be a public good.\n\n## Feedback & Issues\n\nGuardian Audit is maintained by the community. For bug reports, feature requests, or security concerns:\n\n- **Email:** support@ikkf.info or demystify@ikkf.info\n- **GitHub Issues:** (link to be added)\n- **Discussions:** (link to be added)\n\nWe respond to all emails within 48 hours.\n\n---\n\n*Pairs with Guardian. Verified on Windows, Linux, and macOS. Chain integrity guaranteed.*\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn77qg2t2rnb458ahv8751shv582rvm6\",\n  \"slug\": \"data-guardian-audit\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1779385903507\n}\n\nFile v1.0.1:references/COMPLIANCE-MAPPING.md\n\n# Compliance Mapping\n\nHow Guardian Audit satisfies regulatory requirements.\n\n## EU AI Act (2026)\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| Art. 52(1) — High-risk systems log operation | Every tool call logged |\n| Art. 52(2) — Automatic logging | Passive, no agent discretion |\n| Art. 52(3) — Logs retained | Append-only, human-rotated |\n| Art. 52(4) — Access by competent authorities | NDJSON readable without tooling |\n\n## SOC 2 Type II\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| CC6.1 — Logical access controls | Every access logged with approver |\n| CC7.2 — System operations monitored | Real-time event stream |\n| CC7.3 — System changes logged | Guardian_HALT/EXECUTED capture changes |\n| A1.2 — Availability monitoring | Outcome field tracks failures |\n\n## HIPAA §164.312(b)\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| Audit controls | All agent activity logged |\n| Mechanisms to examine | `scripts/export-report.py` generates readable reports |\n| Activity recording | Who (agent_id), what (operation), when (timestamp), result (outcome) |\n\n## GDPR Article 5(1)(d) — Accuracy\n\nGuardian Audit captures the agent's stated reasoning at decision time, enabling post-hoc verification of whether the agent's justification matched reality.\n\n## NIST AI RMF (2024)\n\n| Function | Mapping |\n|----------|---------|\n| GOVERN 1.1 | Policy enforcement via Guardian + Audit |\n| MAP 1.1 | Context documented in guardian_notes |\n| MEASURE 2.1 | Metrics from audit trail: halt rate, approval rate, pattern frequency |\n| MANAGE 2.1 | Escalation resolution tracked |\n\nFile v1.0.1:references/LOG-SCHEMA.md\n\n# Log Schema — Guardian Audit\n\n## Entry Fields (all entries)\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `timestamp` | string (ISO-8601) | Yes | UTC with millisecond precision |\n| `sequence` | integer | Yes | Monotonic, starting at 1, no gaps |\n| `previous_hash` | string (hex 64) | Yes | SHA-256 of previous entry's `entry_hash` field. First entry uses `\"genesis\"`. |\n| `event_type` | enum | Yes | See Event Types below |\n| `agent_id` | string | Yes | Anonymous agent identifier. No platform specifics. |\n| `operation` | string | Yes | The tool call or action being logged |\n| `target` | string | Yes | File path, database, endpoint, or \"N/A\" |\n| `category` | enum | Yes | CRITICAL / HIGH / MEDIUM / NON-DESTRUCTIVE / N/A |\n| `backup_verdict` | enum | No | VERIFIED / UNVERIFIED / STALE / PARTIAL / N/A |\n| `backup_checks` | array of objects | No | Which indicators matched |\n| `decision` | enum | Yes | PROCEED / HALT / AWAITING_HUMAN / DENIED / LOGGED |\n| `approver` | string | Yes | `guardian-auto` / `human:anonymous` / `agent:rejected` / `system` |\n| `agent_reasoning` | string | No | Agent's stated justification, quoted verbatim |\n| `guardian_notes` | string | No | Why Guardian or safety tool made this decision |\n| `outcome` | enum | No | SUCCESS / FAILURE / TIMEOUT / CANCELLED / PENDING |\n| `entry_hash` | string (hex 64) | Yes | SHA-256 of this entry's canonical JSON |\n\n## Event Types\n\n| Type | When |\n|------|------|\n| `GUARDIAN_CHECK` | Guardian scanned operation, backup verified, proceeded |\n| `GUARDIAN_HALT` | Guardian halted operation, backup unverified |\n| `GUARDIAN_APPROVE` | Guardian auto-approved (backup verified) |\n| `EXECUTED` | Operation executed (logged after completion) |\n| `ESCALATION_RESOLVED` | Human responded to escalation |\n| `MANUAL_APPROVE` | Human manually approved outside Guardian |\n| `MANUAL_DENY` | Human manually denied |\n| `AGENT_OVERRIDE_ATTEMPT` | Agent tried to override safety (should not happen) |\n| `CHAIN_VERIFICATION` | Automated integrity check passed/failed |\n\n## Hash Computation\n\n```python\nimport json, hashlib\n\ndef compute_hash(entry):\n    # Canonical JSON: sorted keys, no whitespace\n    canonical = json.dumps(entry, sort_keys=True, separators=(',',':'))\n    return hashlib.sha256(canonical.encode('utf-8')).hexdigest()\n\n# entry_hash is computed AFTER adding previous_hash but BEFORE adding entry_hash itself\n# So entry_hash covers: timestamp, sequence, previous_hash, event_type, ..., outcome\n```\n\n## Validation Rules\n\n1. `sequence` must equal previous entry's `sequence` + 1\n2. `previous_hash` must equal SHA-256 of previous entry's `entry_hash`\n3. `entry_hash` must match recomputed hash of entry content\n4. `timestamp` must be >= previous entry's timestamp\n5. `timestamp` must not be > 60 seconds in the future\n6. `agent_id` must be consistent for a single session (optional but recommended)\n\n## Example Entry\n\n```json\n{\n  \"timestamp\": \"2026-05-18T14:02:31.847Z\",\n  \"sequence\": 42,\n  \"previous_hash\": \"a3f7c8d2e1b4a509f6e3d8c7b2a1f4e5d6c3b8a9f0e1d2c3b4a5f6e7d8c9b0a1\",\n  \"event_type\": \"GUARDIAN_HALT\",\n  \"agent_id\": \"agent-7f3a\",\n  \"operation\": \"rm -rf /tmp/old-builds\",\n  \"target\": \"/tmp/old-builds\",\n  \"category\": \"HIGH\",\n  \"backup_verdict\": \"UNVERIFIED\",\n  \"backup_checks\": [],\n  \"decision\": \"HALT\",\n  \"approver\": \"guardian-auto\",\n  \"agent_reasoning\": \"Cleaning up old build artifacts from CI pipeline\",\n  \"guardian_notes\": \"Mass delete operation with no backup coverage. Target path not in git, no cloud sync, no explicit backup tool.\",\n  \"outcome\": \"AWAITING_HUMAN\",\n  \"entry_hash\": \"9e2b4c6d8f0a1b3c5e7d9f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f7a9b1c\"\n}\n```\n\n## Entry Size Limit\n\nMaximum entry size: 8 KB. If agent_reasoning or guardian_notes exceed this, truncate with `\"...[truncated]\"`.\n\nFile v1.0.1:references/REPLAY.md\n\n# Replay and Analysis\n\nHow to search, replay, and analyze Guardian Audit trails.\n\n## Basic Queries\n\n```bash\n# Show last 20 events\ntail -n 20 audit.log | jq -c '{timestamp, event_type, operation, decision}'\n\n# Show all halts\ngrep 'GUARDIAN_HALT' audit.log | jq -c '{timestamp, operation, target, approver}'\n\n# Show events for specific target\ngrep '/tmp/old-builds' audit.log | jq .\n\n# Show approval rate\nTOTAL=$(wc -l < audit.log)\nAPPROVED=$(grep 'PROCEED' audit.log | wc -l)\necho \"Approval rate: $((APPROVED * 100 / TOTAL))%\"\n```\n\n## Chain Verification\n\n```bash\npython3 scripts/verify-chain.py audit.log\n# Output:\n# Chain valid: 1,247 entries\n# Last hash: 9e2b4c6d...\n# Verification time: 23ms\n```\n\n## Pattern Analysis\n\n```bash\n# Most common halted operations\ngrep 'GUARDIAN_HALT' audit.log | jq -r '.operation' | sort | uniq -c | sort -rn | head -10\n\n# Agents with most escalations\ngrep 'AWAITING_HUMAN' audit.log | jq -r '.agent_id' | sort | uniq -c | sort -rn\n\n# Backup failure reasons\ngrep 'UNVERIFIED' audit.log | jq -r '.guardian_notes' | grep -o 'no [^,]*' | sort | uniq -c\n```\n\n## Compliance Report\n\n```bash\npython3 scripts/export-report.py audit.log --format markdown --start 2026-05-01 --end 2026-05-31\n# Generates:\n# - Event summary table\n# - Decision breakdown pie chart data\n# - Agent escalation frequency\n# - Backup coverage statistics\n# - Chain integrity statement\n```\n\n## Incident Replay\n\nWhen something goes wrong:\n\n```bash\n# Extract complete timeline for an incident\npython3 scripts/replay.py audit.log --target \"/data/production\" --before \"2026-05-18T14:05:00Z\" --window 300\n\n# Output:\n# 14:02:31 GUARDIAN_HALT  rm -rf /data/production/old  (backup: UNVERIFIED)\n# 14:03:15 ESCALATION_RESOLVED  human APPROVED with note: \"Emergency cleanup approved\"\n# 14:03:16 EXECUTED  rm -rf /data/production/old  outcome: SUCCESS\n# 14:04:00 CHAIN_VERIFICATION  integrity: PASS\n```\n\nArchive v1.0.0: 9 files, 15035 bytes\n\nFiles: README.md (5200b), references/COMPLIANCE-MAPPING.md (1696b), references/LOG-SCHEMA.md (3805b), references/REPLAY.md (1886b), scripts/export-report.py (4120b), scripts/log-event.py (4819b), scripts/verify-chain.py (3268b), SKILL.md (6343b), _meta.json (138b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: guardian-audit\ndescription: Tamper-evident audit logger that pairs with Guardian safety skill. Captures every destructive operation decision, agent reasoning, backup verification result, and human escalation response in an append-only, hash-chained log. Use when Guardian or any safety gatekeeper halts or approves an operation. Use when compliance requires proof of what AI agents did and why. Use when you need replay, forensics, or regulatory audit trails for agent actions. Triggers on any safety decision, destructive operation execution, escalation event, or when the user says \"log this\", \"audit trail\", \"compliance\", or \"what did the agent do\".\n---\n\n# Guardian Audit — Tamper-Evident Audit Logger\n\n> *\"Trust, but log.\"*\n\nA companion skill to **Guardian** (or any safety gatekeeper) that captures every decision, action, and escalation in an **append-only, hash-chained audit trail**.\n\n**Why this exists:** Guardian stops bad things. Guardian Audit proves it stopped them — or proves the agent did them anyway.\n\n## What It Logs\n\nEvery entry includes:\n\n| Field | Purpose |\n|-------|---------|\n| `timestamp` | ISO-8601 with millisecond precision |\n| `sequence` | Monotonic integer, no gaps allowed |\n| `previous_hash` | SHA-256 of previous entry (chain integrity) |\n| `event_type` | `GUARDIAN_CHECK`, `GUARDIAN_HALT`, `GUARDIAN_APPROVE`, `EXECUTED`, `ESCALATION_RESOLVED` |\n| `agent_id` | Anonymous identifier (no platform specifics) |\n| `operation` | What the agent tried to do |\n| `target` | File / path / database / endpoint |\n| `category` | CRITICAL / HIGH / MEDIUM / NON-DESTRUCTIVE |\n| `backup_verdict` | VERIFIED / UNVERIFIED / STALE / PARTIAL |\n| `backup_checks` | JSON array of which indicators matched |\n| `decision` | PROCEED / HALT / AWAITING_HUMAN / DENIED |\n| `approver` | `guardian-auto` / `human:anonymous` / `agent:rejected` |\n| `agent_reasoning` | The agent's stated justification (quoted) |\n| `guardian_notes` | Why Guardian made this decision |\n| `outcome` | SUCCESS / FAILURE / TIMEOUT / CANCELLED |\n| `entry_hash` | SHA-256 of this entry's content |\n\n## The Hash Chain\n\n```\nEntry[N].previous_hash = SHA256(Entry[N-1].content)\nEntry[N].entry_hash = SHA256(Entry[N].content)\n```\n\nIf any entry is modified, every subsequent entry's `previous_hash` fails verification. The chain is self-validating.\n\n## Log Format\n\nAppend-only line-delimited JSON (NDJSON), one entry per line:\n\n```json\n{\"timestamp\":\"2026-05-18T14:02:31.847Z\",\"sequence\":42,\"previous_hash\":\"a3f7...\",\"event_type\":\"GUARDIAN_HALT\",\"agent_id\":\"agent-7f3a\",\"operation\":\"rm -rf /tmp/old-builds\",\"target\":\"/tmp/old-builds\",\"category\":\"HIGH\",\"backup_verdict\":\"UNVERIFIED\",\"backup_checks\":[],\"decision\":\"HALT\",\"approver\":\"guardian-auto\",\"agent_reasoning\":\"Cleaning up old build artifacts\",\"guardian_notes\":\"Mass delete operation with no backup coverage\",\"outcome\":\"AWAITING_HUMAN\",\"entry_hash\":\"9e2b...\"}\n```\n\n## Where Logs Live\n\n| Platform | Default Path |\n|----------|-------------|\n| Windows | `%LOCALAPPDATA%\\guardian-audit\\audit.log` |\n| macOS | `~/.local/share/guardian-audit/audit.log` |\n| Linux | `~/.local/share/guardian-audit/audit.log` |\n\n**Immutable by convention:** The log file has append-only permissions. The executing agent cannot delete or modify entries. Only a human with elevated privileges can rotate logs.\n\n## Verification Script\n\n```bash\n# Verify chain integrity\n./scripts/verify-chain.py audit.log\n# Output: \"Chain valid: 1,247 entries, 0 breaks\"\n# Or: \"CHAIN BROKEN at entry 843: hash mismatch\"\n```\n\n## Integration with Guardian\n\nGuardian calls Guardian Audit automatically after every decision:\n\n```\nGuardian Decision → Guardian Audit LOG → Continue / Halt\n```\n\nNo additional agent action required. Guardian Audit is a **passive listener** that records what happened.\n\n## Standalone Use\n\nGuardian Audit also works independently. Any safety tool, human approval, or agent action can emit an entry:\n\n```python\n# From any agent or tool\nfrom guardian_audit import log_event\n\nlog_event(\n    event_type=\"MANUAL_APPROVE\",\n    operation=\"deploy-production\",\n    target=\"api.production.internal\",\n    decision=\"PROCEED\",\n    approver=\"human:anonymous\",\n    agent_reasoning=\"Emergency fix for auth bug\"\n)\n```\n\n## Why This Matters\n\n**Compliance frameworks requiring audit trails:**\n- **EU AI Act** (Article 52): High-risk AI systems must maintain logs\n- **SOC 2 Type II**: Change management and access control evidence\n- **HIPAA §164.312(b)**: Mechanisms to record and examine activity\n- **GDPR Article 5(1)(d)**: Accuracy and accountability\n\n**Forensics:** When something goes wrong, you need to know:\n- What did the agent try to do?\n- Did Guardian stop it?\n- Did a human approve it anyway?\n- What was the agent's reasoning at the time?\n\n## Mandatory Rules\n\n1. **Append-Only:** Entries are never deleted. Log rotation creates new files, never modifies existing ones.\n2. **Hash Chain:** Every entry references the previous. Tampering is detectable.\n3. **No Agent Modification:** The executing agent cannot modify its own audit trail. Ever.\n4. **Minimal Overhead:** Logging adds <5ms per decision. No perceptible latency.\n5. **Human Readable:** NDJSON format means `tail -f audit.log` is meaningful without tooling.\n\n## Scope\n\n**Vanilla:** Not specific to Guardian. Works with any safety gatekeeper, human approval workflow, or agent runtime.\n\n**Passive:** Does not block or delay operations. Logs after the fact.\n\n**Mandatory:** Once enabled, all safety decisions are logged. No opt-out per-session.\n\n## References\n\n- `references/LOG-SCHEMA.md` — Complete field definitions and validation rules\n- `references/COMPLIANCE-MAPPING.md` — Framework requirements (EU AI Act, SOC 2, HIPAA, GDPR)\n- `references/REPLAY.md` — How to replay, search, and analyze audit trails\n- `scripts/log-event.py` — Python event logger (cross-platform)\n- `scripts/verify-chain.py` — Chain integrity verification\n- `scripts/export-report.py` — Generate compliance-ready reports\n\n## Based On\n\n- IETF draft-sharif-agent-audit-trail-00 (Mar 2026): Standardized AI agent audit trail format\n- AgentReceipt (2026): Immutable audit trails for AI agents\n- OWASP Agentic AI Top 10: Logging and monitoring requirements\n- GDPR Article 5 + EU AI Act Article 52: Regulatory audit trail mandates\n\n## License\n\nMIT — Audit trails should be a public good.\n\nFile v1.0.0:README.md\n\n# Guardian Audit — Tamper-Evident Audit Logger\n\n> *\"Trust, but log.\"*\n\n**Guardian Audit** is a companion skill to [Guardian](https://github.com/openclaw/guardian) (or any safety gatekeeper) that captures every destructive operation decision in an **append-only, hash-chained audit trail**.\n\nGuardian stops bad things. Guardian Audit proves it stopped them — or proves the agent did them anyway.\n\n---\n\n## Why This Exists\n\nYou have a safety gatekeeper. You know when it halts operations. But when something goes wrong, you need proof:\n\n- What did the agent try to do?\n- Did the safety tool stop it?\n- Did a human approve it anyway?\n- What was the agent's reasoning at the time?\n\nGuardian Audit answers these questions with tamper-evident logs.\n\n---\n\n## How It Works\n\nEvery safety decision generates a log entry with:\n\n| Field | Example |\n|-------|---------|\n| `timestamp` | `2026-05-18T14:02:31.847Z` |\n| `sequence` | `42` (monotonic, no gaps) |\n| `previous_hash` | SHA-256 of previous entry |\n| `event_type` | `GUARDIAN_HALT`, `EXECUTED`, `ESCALATION_RESOLVED` |\n| `operation` | `rm -rf /tmp/old-builds` |\n| `target` | `/tmp/old-builds` |\n| `category` | `HIGH` |\n| `backup_verdict` | `UNVERIFIED` |\n| `decision` | `HALT` |\n| `approver` | `guardian-auto` |\n| `agent_reasoning` | `\"Cleaning up old build artifacts\"` |\n| `entry_hash` | SHA-256 of this entry |\n\n**Hash chain:** Each entry references the previous. Modify one entry, every subsequent entry's hash fails verification.\n\n---\n\n## Installation\n\n### For OpenClaw\n\n```bash\n# macOS / Linux\ncp -r guardian-audit/ ~/.openclaw/skills/\n\n# Windows\nxcopy /E /I guardian-audit\\ %USERPROFILE%\\.openclaw\\skills\\guardian-audit\\\n```\n\nAdd to mandatory skills alongside Guardian.\n\n### Standalone\n\n```bash\npip install -e .\n# Or just copy scripts/ anywhere\n```\n\n---\n\n## Quick Start\n\n### Log an event manually\n\n```bash\npython3 scripts/log-event.py \\\n  --event-type GUARDIAN_HALT \\\n  --operation \"rm -rf /tmp/old-builds\" \\\n  --target \"/tmp/old-builds\" \\\n  --category HIGH \\\n  --backup-verdict UNVERIFIED \\\n  --decision HALT \\\n  --approver guardian-auto \\\n  --agent-reasoning \"Cleaning up old build artifacts\" \\\n  --guardian-notes \"No backup coverage detected\"\n```\n\n### Verify chain integrity\n\n```bash\npython3 scripts/verify-chain.py ~/.local/share/guardian-audit/audit.log\n# Chain valid: 2 entries, 0 breaks\n# Integrity: PASS\n```\n\n### Generate compliance report\n\n```bash\npython3 scripts/export-report.py audit.log --format markdown\n# Generates summary table, event breakdown, integrity statement\n```\n\n---\n\n## Log Location\n\n| Platform | Default Path |\n|----------|-------------|\n| Windows | `%LOCALAPPDATA%\\guardian-audit\\audit.log` |\n| macOS | `~/.local/share/guardian-audit/audit.log` |\n| Linux | `~/.local/share/guardian-audit/audit.log` |\n\n---\n\n## What Gets Logged\n\nGuardian Audit captures:\n- Every Guardian decision (check, halt, approve)\n- Every executed destructive operation\n- Every human escalation and resolution\n- Every override attempt (if any)\n\n**Does not log:** Read-only queries, non-destructive operations, general chat.\n\n---\n\n## Compliance\n\n| Framework | Requirement | Guardian Audit Feature |\n|-----------|-------------|------------------------|\n| **EU AI Act Art. 52** | High-risk AI logs | Every tool call logged |\n| **SOC 2 CC6.1/CC7.2** | Access monitoring | All operations with approver identity |\n| **HIPAA §164.312(b)** | Audit controls | Append-only, hash-chained, tamper-evident |\n| **GDPR Art. 5(1)(d)** | Accountability | Agent reasoning captured at decision time |\n\nFull mapping: `references/COMPLIANCE-MAPPING.md`\n\n---\n\n## Scripts\n\n| Script | Purpose |\n|--------|---------|\n| `scripts/log-event.py` | Append tamper-evident entry |\n| `scripts/verify-chain.py` | Verify hash chain integrity |\n| `scripts/export-report.py` | Generate compliance reports |\n\n---\n\n## Mandatory Rules\n\n1. **Append-Only:** Entries are never deleted. Log rotation creates new files.\n2. **Hash Chain:** Every entry references the previous. Tampering is detectable.\n3. **No Agent Modification:** The executing agent cannot modify its own audit trail.\n4. **Minimal Overhead:** Logging adds <5ms per decision.\n5. **Human Readable:** NDJSON format means `tail -f audit.log` works without tooling.\n\n---\n\n## Integration\n\nGuardian Audit is a **passive listener**. It logs after decisions are made, adding zero friction:\n\n```\nGuardian Decision → Guardian Audit LOG → Continue\n```\n\nNo blocking. No delays. Just proof.\n\n---\n\n## References\n\n- `references/LOG-SCHEMA.md` — Complete field definitions and validation rules\n- `references/COMPLIANCE-MAPPING.md` — Framework requirements (EU AI Act, SOC 2, HIPAA, GDPR)\n- `references/REPLAY.md` — How to replay, search, and analyze audit trails\n\n---\n\n## Based On\n\n- IETF draft-sharif-agent-audit-trail-00 (Mar 2026): Standardized AI agent audit trail format\n- AgentReceipt (2026): Immutable audit trails for AI agents\n- OWASP Agentic AI Top 10: Logging and monitoring requirements\n- GDPR Article 5 + EU AI Act Article 52: Regulatory audit trail mandates\n\n---\n\n## License\n\nMIT — Audit trails should be a public good.\n\n---\n\n*Pairs with Guardian. Verified on Windows, Linux, and macOS. Chain integrity guaranteed.*\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn77qg2t2rnb458ahv8751shv582rvm6\",\n  \"slug\": \"data-guardian-audit\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779130421673\n}\n\nFile v1.0.0:references/COMPLIANCE-MAPPING.md\n\n# Compliance Mapping\n\nHow Guardian Audit satisfies regulatory requirements.\n\n## EU AI Act (2026)\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| Art. 52(1) — High-risk systems log operation | Every tool call logged |\n| Art. 52(2) — Automatic logging | Passive, no agent discretion |\n| Art. 52(3) — Logs retained | Append-only, human-rotated |\n| Art. 52(4) — Access by competent authorities | NDJSON readable without tooling |\n\n## SOC 2 Type II\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| CC6.1 — Logical access controls | Every access logged with approver |\n| CC7.2 — System operations monitored | Real-time event stream |\n| CC7.3 — System changes logged | Guardian_HALT/EXECUTED capture changes |\n| A1.2 — Availability monitoring | Outcome field tracks failures |\n\n## HIPAA §164.312(b)\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| Audit controls | All agent activity logged |\n| Mechanisms to examine | `scripts/export-report.py` generates readable reports |\n| Activity recording | Who (agent_id), what (operation), when (timestamp), result (outcome) |\n\n## GDPR Article 5(1)(d) — Accuracy\n\nGuardian Audit captures the agent's stated reasoning at decision time, enabling post-hoc verification of whether the agent's justification matched reality.\n\n## NIST AI RMF (2024)\n\n| Function | Mapping |\n|----------|---------|\n| GOVERN 1.1 | Policy enforcement via Guardian + Audit |\n| MAP 1.1 | Context documented in guardian_notes |\n| MEASURE 2.1 | Metrics from audit trail: halt rate, approval rate, pattern frequency |\n| MANAGE 2.1 | Escalation resolution tracked |\n\nFile v1.0.0:references/LOG-SCHEMA.md\n\n# Log Schema — Guardian Audit\n\n## Entry Fields (all entries)\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `timestamp` | string (ISO-8601) | Yes | UTC with millisecond precision |\n| `sequence` | integer | Yes | Monotonic, starting at 1, no gaps |\n| `previous_hash` | string (hex 64) | Yes | SHA-256 of previous entry's `entry_hash` field. First entry uses `\"genesis\"`. |\n| `event_type` | enum | Yes | See Event Types below |\n| `agent_id` | string | Yes | Anonymous agent identifier. No platform specifics. |\n| `operation` | string | Yes | The tool call or action being logged |\n| `target` | string | Yes | File path, database, endpoint, or \"N/A\" |\n| `category` | enum | Yes | CRITICAL / HIGH / MEDIUM / NON-DESTRUCTIVE / N/A |\n| `backup_verdict` | enum | No | VERIFIED / UNVERIFIED / STALE / PARTIAL / N/A |\n| `backup_checks` | array of objects | No | Which indicators matched |\n| `decision` | enum | Yes | PROCEED / HALT / AWAITING_HUMAN / DENIED / LOGGED |\n| `approver` | string | Yes | `guardian-auto` / `human:anonymous` / `agent:rejected` / `system` |\n| `agent_reasoning` | string | No | Agent's stated justification, quoted verbatim |\n| `guardian_notes` | string | No | Why Guardian or safety tool made this decision |\n| `outcome` | enum | No | SUCCESS / FAILURE / TIMEOUT / CANCELLED / PENDING |\n| `entry_hash` | string (hex 64) | Yes | SHA-256 of this entry's canonical JSON |\n\n## Event Types\n\n| Type | When |\n|------|------|\n| `GUARDIAN_CHECK` | Guardian scanned operation, backup verified, proceeded |\n| `GUARDIAN_HALT` | Guardian halted operation, backup unverified |\n| `GUARDIAN_APPROVE` | Guardian auto-approved (backup verified) |\n| `EXECUTED` | Operation executed (logged after completion) |\n| `ESCALATION_RESOLVED` | Human responded to escalation |\n| `MANUAL_APPROVE` | Human manually approved outside Guardian |\n| `MANUAL_DENY` | Human manually denied |\n| `AGENT_OVERRIDE_ATTEMPT` | Agent tried to override safety (should not happen) |\n| `CHAIN_VERIFICATION` | Automated integrity check passed/failed |\n\n## Hash Computation\n\n```python\nimport json, hashlib\n\ndef compute_hash(entry):\n    # Canonical JSON: sorted keys, no whitespace\n    canonical = json.dumps(entry, sort_keys=True, separators=(',',':'))\n    return hashlib.sha256(canonical.encode('utf-8')).hexdigest()\n\n# entry_hash is computed AFTER adding previous_hash but BEFORE adding entry_hash itself\n# So entry_hash covers: timestamp, sequence, previous_hash, event_type, ..., outcome\n```\n\n## Validation Rules\n\n1. `sequence` must equal previous entry's `sequence` + 1\n2. `previous_hash` must equal SHA-256 of previous entry's `entry_hash`\n3. `entry_hash` must match recomputed hash of entry content\n4. `timestamp` must be >= previous entry's timestamp\n5. `timestamp` must not be > 60 seconds in the future\n6. `agent_id` must be consistent for a single session (optional but recommended)\n\n## Example Entry\n\n```json\n{\n  \"timestamp\": \"2026-05-18T14:02:31.847Z\",\n  \"sequence\": 42,\n  \"previous_hash\": \"a3f7c8d2e1b4a509f6e3d8c7b2a1f4e5d6c3b8a9f0e1d2c3b4a5f6e7d8c9b0a1\",\n  \"event_type\": \"GUARDIAN_HALT\",\n  \"agent_id\": \"agent-7f3a\",\n  \"operation\": \"rm -rf /tmp/old-builds\",\n  \"target\": \"/tmp/old-builds\",\n  \"category\": \"HIGH\",\n  \"backup_verdict\": \"UNVERIFIED\",\n  \"backup_checks\": [],\n  \"decision\": \"HALT\",\n  \"approver\": \"guardian-auto\",\n  \"agent_reasoning\": \"Cleaning up old build artifacts from CI pipeline\",\n  \"guardian_notes\": \"Mass delete operation with no backup coverage. Target path not in git, no cloud sync, no explicit backup tool.\",\n  \"outcome\": \"AWAITING_HUMAN\",\n  \"entry_hash\": \"9e2b4c6d8f0a1b3c5e7d9f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f7a9b1c\"\n}\n```\n\n## Entry Size Limit\n\nMaximum entry size: 8 KB. If agent_reasoning or guardian_notes exceed this, truncate with `\"...[truncated]\"`.\n\nFile v1.0.0:references/REPLAY.md\n\n# Replay and Analysis\n\nHow to search, replay, and analyze Guardian Audit trails.\n\n## Basic Queries\n\n```bash\n# Show last 20 events\ntail -n 20 audit.log | jq -c '{timestamp, event_type, operation, decision}'\n\n# Show all halts\ngrep 'GUARDIAN_HALT' audit.log | jq -c '{timestamp, operation, target, approver}'\n\n# Show events for specific target\ngrep '/tmp/old-builds' audit.log | jq .\n\n# Show approval rate\nTOTAL=$(wc -l < audit.log)\nAPPROVED=$(grep 'PROCEED' audit.log | wc -l)\necho \"Approval rate: $((APPROVED * 100 / TOTAL))%\"\n```\n\n## Chain Verification\n\n```bash\npython3 scripts/verify-chain.py audit.log\n# Output:\n# Chain valid: 1,247 entries\n# Last hash: 9e2b4c6d...\n# Verification time: 23ms\n```\n\n## Pattern Analysis\n\n```bash\n# Most common halted operations\ngrep 'GUARDIAN_HALT' audit.log | jq -r '.operation' | sort | uniq -c | sort -rn | head -10\n\n# Agents with most escalations\ngrep 'AWAITING_HUMAN' audit.log | jq -r '.agent_id' | sort | uniq -c | sort -rn\n\n# Backup failure reasons\ngrep 'UNVERIFIED' audit.log | jq -r '.guardian_notes' | grep -o 'no [^,]*' | sort | uniq -c\n```\n\n## Compliance Report\n\n```bash\npython3 scripts/export-report.py audit.log --format markdown --start 2026-05-01 --end 2026-05-31\n# Generates:\n# - Event summary table\n# - Decision breakdown pie chart data\n# - Agent escalation frequency\n# - Backup coverage statistics\n# - Chain integrity statement\n```\n\n## Incident Replay\n\nWhen something goes wrong:\n\n```bash\n# Extract complete timeline for an incident\npython3 scripts/replay.py audit.log --target \"/data/production\" --before \"2026-05-18T14:05:00Z\" --window 300\n\n# Output:\n# 14:02:31 GUARDIAN_HALT  rm -rf /data/production/old  (backup: UNVERIFIED)\n# 14:03:15 ESCALATION_RESOLVED  human APPROVED with note: \"Emergency cleanup approved\"\n# 14:03:16 EXECUTED  rm -rf /data/production/old  outcome: SUCCESS\n# 14:04:00 CHAIN_VERIFICATION  integrity: PASS\n```","readmeExcerpt":"Skill: Guardian Audit Owner: tooled-app Summary: Tamper-evident audit logger that pairs with Guardian safety skill. Captures safety decisions (halts, approvals, escalations) in an append-only, hash-chained... Tags: guardrails:1.0.0, latest:1.2.0, safety:1.0.0, security:1.0.0 Version history: v1.2.0 | 2026-05-25T13:35:35.672Z | user - Added top-level compliance documentation: COMPLIANCE-MAPPING.md, LOG-SCHEMA.md, and ","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"Entry[N].previous_hash = SHA256(Entry[N-1].content)\nEntry[N].entry_hash = SHA256(Entry[N].content)"},{"language":"json","snippet":"{\"timestamp\":\"2026-05-19T13:58:45.112Z\",\"sequence\":42,\"previous_hash\":\"a3f7...\",\"event_type\":\"GUARDIAN_CHECK\",\"agent_id\":\"agent-7f3a\",\"operation\":\"rm -rf /tmp/old-builds\",\"target\":\"/tmp/old-builds\",\"category\":\"MEDIUM\",\"backup_verdict\":\"VERIFIED\",\"backup_checks\":[\"git-clean\"],\"decision\":\"PROCEED\",\"approver\":\"guardian-auto\",\"agent_reasoning\":\"Cleaning up old build artifacts\",\"guardian_notes\":\"CARS Medium risk auto-approved via git-clean verification\",\"outcome\":\"SUCCESS\",\"entry_hash\":\"9e2b...\"}"},{"language":"bash","snippet":"# Verify chain integrity\n./scripts/verify-chain.py audit.log\n# Output: \"Chain valid: 1,247 entries, 0 breaks\"\n# Or: \"CHAIN BROKEN at entry 843: hash mismatch\""},{"language":"text","snippet":"Guardian Decision → Guardian Audit LOG → Continue / Halt"},{"language":"python","snippet":"# From any agent or tool\nfrom guardian_audit import log_event\n\nlog_event(\n    event_type=\"MANUAL_APPROVE\",\n    operation=\"deploy-production\",\n    target=\"api.production.internal\",\n    decision=\"PROCEED\",\n    approver=\"human:anonymous\",\n    agent_reasoning=\"Emergency fix for auth bug\"\n)"},{"language":"bash","snippet":"# macOS / Linux\ncp -r guardian-audit/ ~/.openclaw/skills/\n\n# Windows\nxcopy /E /I guardian-audit\\ %USERPROFILE%\\.openclaw\\skills\\guardian-audit\\"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: guardian-audit\nversion: 1.1\ndescription: Tamper-evident audit logger that pairs with Guardian safety skill. Captures safety decisions (halts, approvals, escalations) in an append-only, hash-chained log. Use when Guardian makes a safety decision. Use for compliance audit trails. Does NOT activate on general logging requests like 'log this' or routine queries. Requires explicit safety context or compliance intent to trigger.\nSupport: support@ikkf.info\n---\n\n# Guardian Audit — Tamper-Evident Audit Logger (v1.1)\n\n> *\"Trust, but log.\"*\n\nA companion skill to **Guardian** (or any safety gatekeeper) that captures every decision, action, and escalation in an **append-only, hash-chained audit trail**.\n\n**Why this exists:** Guardian stops bad things. Guardian Audit proves it stopped them — or proves the agent did them anyway.\n\n## Privacy & Data Warning\n\n**Before using Guardian Audit, understand what it captures:**\n\nThis skill logs detailed operational data including: file paths, agent reasoning, human escalation responses, system commands, and safety decisions. These logs may contain:\n- Internal system paths and configurations\n- Sensitive operational details\n- Personal or business data processed by agents\n- Security decisions and approval context\n\n**Best practices:**\n- Review and redact logs before sharing or archiving\n- Configure log retention policies appropriate to your compliance requirements\n- Restrict log file access to authorized personnel only\n- Do not log secrets, passwords, or API keys in agent reasoning fields\n- Consider encryption for logs stored on shared or cloud-backed systems\n\n## What It Logs\n\nEvery entry includes:\n\n| Field | Purpose |\n|-------|---------|\n| `timestamp` | ISO-8601 with millisecond precision |\n| `sequence` | Monotonic integer, no gaps allowed |\n| `previous_hash` | SHA-256 of previous entry (chain integrity) |\n| `event_type` | `GUARDIAN_CHECK`, `GUARDIAN_HALT`, `GUARDIAN_APPROVE`, `EXECUTED`, `ESCALATION_RESOLVED` |\n| `agent_id` | Anonymous identifier (no platform specifics) |\n| `operation` | What the agent tried to do |\n| `target` | File / path / database / endpoint |\n| `category` | CRITICAL / HIGH / MEDIUM / NON-DESTRUCTIVE |\n| `backup_verdict` | VERIFIED / UNVERIFIED / STALE / PARTIAL |\n| `backup_checks` | JSON array of which indicators matched |\n| `decision` | PROCEED / HALT / AWAITING_HUMAN / DENIED |\n| `approver` | `guardian-auto` / `human:anonymous` / `agent:rejected` |\n| `agent_reasoning` | The agent's stated justification (quoted) |\n| `guardian_notes` | Why Guardian made this decision |\n| `outcome` | SUCCESS / FAILURE / TIMEOUT / CANCELLED |\n| `entry_hash` | SHA-256 of this entry's content |\n\n## The Hash Chain\n\n```\nEntry[N].previous_hash = SHA256(Entry[N-1].content)\nEntry[N].entry_hash = SHA256(Entry[N].content)\n```\n\nIf any entry is modified, every subsequent entry's `previous_hash` fails verification. The chain is self-validating.\n\n## Log Format\n\nAppend-only line-delimited JSON (NDJSON), one entry per line:\n\n"},{"path":"README.md","content":"# Guardian Audit — Tamper-Evident Audit Logger\n\n> *\"Trust, but log.\"*\n\n**Guardian Audit** is a companion skill to [Guardian](https://github.com/openclaw/guardian) (or any safety gatekeeper) that captures every destructive operation decision in an **append-only, hash-chained audit trail**.\n\nGuardian stops bad things. Guardian Audit proves it stopped them — or proves the agent did them anyway.\n\n---\n\n## Why This Exists\n\nYou have a safety gatekeeper. You know when it halts operations. But when something goes wrong, you need proof:\n\n- What did the agent try to do?\n- Did the safety tool stop it?\n- Did a human approve it anyway?\n- What was the agent's reasoning at the time?\n\nGuardian Audit answers these questions with tamper-evident logs.\n\n---\n\n## How It Works\n\nEvery safety decision generates a log entry with:\n\n| Field | Example |\n|-------|---------|\n| `timestamp` | `2026-05-18T14:02:31.847Z` |\n| `sequence` | `42` (monotonic, no gaps) |\n| `previous_hash` | SHA-256 of previous entry |\n| `event_type` | `GUARDIAN_HALT`, `EXECUTED`, `ESCALATION_RESOLVED` |\n| `operation` | `rm -rf /tmp/old-builds` |\n| `target` | `/tmp/old-builds` |\n| `category` | `HIGH` |\n| `backup_verdict` | `UNVERIFIED` |\n| `decision` | `HALT` |\n| `approver` | `guardian-auto` |\n| `agent_reasoning` | `\"Cleaning up old build artifacts\"` |\n| `entry_hash` | SHA-256 of this entry |\n\n**Hash chain:** Each entry references the previous. Modify one entry, every subsequent entry's hash fails verification.\n\n---\n\n## Installation\n\n### For OpenClaw\n\n```bash\n# macOS / Linux\ncp -r guardian-audit/ ~/.openclaw/skills/\n\n# Windows\nxcopy /E /I guardian-audit\\ %USERPROFILE%\\.openclaw\\skills\\guardian-audit\\\n```\n\nAdd to mandatory skills alongside Guardian.\n\n### Standalone\n\n```bash\npip install -e .\n# Or just copy scripts/ anywhere\n```\n\n---\n\n## Quick Start\n\n### Log an event manually\n\n```bash\npython3 scripts/log-event.py \\\n  --event-type GUARDIAN_HALT \\\n  --operation \"rm -rf /tmp/old-builds\" \\\n  --target \"/tmp/old-builds\" \\\n  --category HIGH \\\n  --backup-verdict UNVERIFIED \\\n  --decision HALT \\\n  --approver guardian-auto \\\n  --agent-reasoning \"Cleaning up old build artifacts\" \\\n  --guardian-notes \"No backup coverage detected\"\n```\n\n### Verify chain integrity\n\n```bash\npython3 scripts/verify-chain.py ~/.local/share/guardian-audit/audit.log\n# Chain valid: 2 entries, 0 breaks\n# Integrity: PASS\n```\n\n### Generate compliance report\n\n```bash\npython3 scripts/export-report.py audit.log --format markdown\n# Generates summary table, event breakdown, integrity statement\n```\n\n---\n\n## Log Location\n\n| Platform | Default Path |\n|----------|-------------|\n| Windows | `%LOCALAPPDATA%\\guardian-audit\\audit.log` |\n| macOS | `~/.local/share/guardian-audit/audit.log` |\n| Linux | `~/.local/share/guardian-audit/audit.log` |\n\n---\n\n## What Gets Logged\n\nGuardian Audit captures:\n- Every Guardian decision (check, halt, approve)\n- Every executed destructive operation\n- Every human escalation and resolution\n- Every override attempt (if any)\n\n**Does n"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn77qg2t2rnb458ahv8751shv582rvm6\",\n  \"slug\": \"data-guardian-audit\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1779716135672\n}"},{"path":"COMPLIANCE-MAPPING.md","content":"# Compliance Mapping\n\nHow Guardian Audit satisfies regulatory requirements.\n\n## EU AI Act (2026)\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| Art. 52(1) — High-risk systems log operation | Every tool call logged |\n| Art. 52(2) — Automatic logging | Passive, no agent discretion |\n| Art. 52(3) — Logs retained | Append-only, human-rotated |\n| Art. 52(4) — Access by competent authorities | NDJSON readable without tooling |\n\n## SOC 2 Type II\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| CC6.1 — Logical access controls | Every access logged with approver |\n| CC7.2 — System operations monitored | Real-time event stream |\n| CC7.3 — System changes logged | Guardian_HALT/EXECUTED capture changes |\n| A1.2 — Availability monitoring | Outcome field tracks failures |\n\n## HIPAA §164.312(b)\n\n| Requirement | Guardian Audit Feature |\n|-------------|------------------------|\n| Audit controls | All agent activity logged |\n| Mechanisms to examine | `scripts/export-report.py` generates readable reports |\n| Activity recording | Who (agent_id), what (operation), when (timestamp), result (outcome) |\n\n## GDPR Article 5(1)(d) — Accuracy\n\nGuardian Audit captures the agent's stated reasoning at decision time, enabling post-hoc verification of whether the agent's justification matched reality.\n\n## NIST AI RMF (2024)\n\n| Function | Mapping |\n|----------|---------|\n| GOVERN 1.1 | Policy enforcement via Guardian + Audit |\n| MAP 1.1 | Context documented in guardian_notes |\n| MEASURE 2.1 | Metrics from audit trail: halt rate, approval rate, pattern frequency |\n| MANAGE 2.1 | Escalation resolution tracked |"},{"path":"LOG-SCHEMA.md","content":"# Log Schema — Guardian Audit\n\n## Entry Fields (all entries)\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `timestamp` | string (ISO-8601) | Yes | UTC with millisecond precision |\n| `sequence` | integer | Yes | Monotonic, starting at 1, no gaps |\n| `previous_hash` | string (hex 64) | Yes | SHA-256 of previous entry's `entry_hash` field. First entry uses `\"genesis\"`. |\n| `event_type` | enum | Yes | See Event Types below |\n| `agent_id` | string | Yes | Anonymous agent identifier. No platform specifics. |\n| `operation` | string | Yes | The tool call or action being logged |\n| `target` | string | Yes | File path, database, endpoint, or \"N/A\" |\n| `category` | enum | Yes | CRITICAL / HIGH / MEDIUM / NON-DESTRUCTIVE / N/A |\n| `backup_verdict` | enum | No | VERIFIED / UNVERIFIED / STALE / PARTIAL / N/A |\n| `backup_checks` | array of objects | No | Which indicators matched |\n| `decision` | enum | Yes | PROCEED / HALT / AWAITING_HUMAN / DENIED / LOGGED |\n| `approver` | string | Yes | `guardian-auto` / `human:anonymous` / `agent:rejected` / `system` |\n| `agent_reasoning` | string | No | Agent's stated justification, quoted verbatim |\n| `guardian_notes` | string | No | Why Guardian or safety tool made this decision |\n| `outcome` | enum | No | SUCCESS / FAILURE / TIMEOUT / CANCELLED / PENDING |\n| `entry_hash` | string (hex 64) | Yes | SHA-256 of this entry's canonical JSON |\n\n## Event Types\n\n| Type | When |\n|------|------|\n| `GUARDIAN_CHECK` | Guardian scanned operation, backup verified, proceeded |\n| `GUARDIAN_HALT` | Guardian halted operation, backup unverified |\n| `GUARDIAN_APPROVE` | Guardian auto-approved (backup verified) |\n| `EXECUTED` | Operation executed (logged after completion) |\n| `ESCALATION_RESOLVED` | Human responded to escalation |\n| `MANUAL_APPROVE` | Human manually approved outside Guardian |\n| `MANUAL_DENY` | Human manually denied |\n| `AGENT_OVERRIDE_ATTEMPT` | Agent tried to override safety (should not happen) |\n| `CHAIN_VERIFICATION` | Automated integrity check passed/failed |\n\n## Hash Computation\n\n```python\nimport json, hashlib\n\ndef compute_hash(entry):\n    # Canonical JSON: sorted keys, no whitespace\n    canonical = json.dumps(entry, sort_keys=True, separators=(',',':'))\n    return hashlib.sha256(canonical.encode('utf-8')).hexdigest()\n\n# entry_hash is computed AFTER adding previous_hash but BEFORE adding entry_hash itself\n# So entry_hash covers: timestamp, sequence, previous_hash, event_type, ..., outcome\n```\n\n## Validation Rules\n\n1. `sequence` must equal previous entry's `sequence` + 1\n2. `previous_hash` must equal SHA-256 of previous entry's `entry_hash`\n3. `entry_hash` must match recomputed hash of entry content\n4. `timestamp` must be >= previous entry's timestamp\n5. `timestamp` must not be > 60 seconds in the future\n6. `agent_id` must be consistent for a single session (optional but recommended)\n\n## Example Entry\n\n```json\n{\n  \"timestamp\": \"2026-05-18T14:02:31.847Z\",\n  \"sequence\": 42,\n  \"previ"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1725,"uniquenessScore":43,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T21:52:49.029Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T21:52:49.029Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T12:44:45.672Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}