hermes-attestation-guardian

Generates and verifies deterministic Hermes runtime security attestations with fail-closed drift detection.

2|Updated Jan 2, 2026
One-click install
npx skills add https://github.com/ShineBreaker/Guix-configs --skill hermes-attestation-guardian-shinebreaker
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: hermes-attestation-guardian
Source: https://github.com/ShineBreaker/Guix-configs/tree/main/dotfiles/mutable/agents/hermes/.local/share/hermes/skills/hermes-agent-ops/hermes-attestation-guardian
Command: npx skills add https://github.com/ShineBreaker/Guix-configs --skill hermes-attestation-guardian-shinebreaker

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Operators of Hermes infrastructure lack a deterministic way to prove runtime security posture, detect configuration drift, and gate skill installs against signed security advisories. This Skill generates canonical attestation artifacts, verifies them fail-closed, and classifies baseline drift by severity. ## Core Features & Use Cases - Deterministic Attestation Generation: Emits canonical JSON posture artifacts covering gateway flags, risky toggles, feed verification status, watched files, and trust anchors with SHA-256 digests. - Fail-Closed Verification: Validates schema, canonical digest binding, optional detached signatures, and authenticated baseline diffs with stable severity classification (critical/high/medium/low/info). - Signed Advisory Feed Gating: Verifies Ed25519-signed advisory feeds with checksum manifests and blocks skill installs matching advisories unless the operator explicitly confirms. - Use Case: An operator schedules recurring attestation runs via the managed cron helper, then uses the guarded verification gate before installing any new skill so that a candidate matching a known advisory exits with code 42 until explicitly acknowledged. ## Quick Start Ask the agent to generate a Hermes attestation and verify it against your authenticated baseline, then run the guarded advisory check before installing a new skill.

Frequently Asked Questions about hermes-attestation-guardian

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate and verify a Hermes runtime attestation?▼

Run node scripts/generate_attestation.mjs to write a canonical JSON attestation under ~/.hermes/security/attestations, then verify it with node scripts/verify_attestation.mjs --input <path>. Verification checks schema, canonical SHA-256 digest binding, and optional detached signatures, failing closed on any mismatch.

How do I check a skill against security advisories before installing it?▼

Run node scripts/guarded_skill_verify.mjs --skill <name> --version <semver>. It refreshes and verifies the signed advisory feed, then exits with code 42 if the candidate matches an advisory, requiring an explicit --confirm-advisory flag to proceed.

Does this skill work with OpenClaw runtime hooks?▼

No. The skill is explicitly Hermes-only, targeting Hermes CLI, Gateway, and profile-managed deployments. It is not an OpenClaw runtime hook package and is unsupported in that context.

What happens when attestation verification fails?▼

The verifier exits non-zero on schema errors, digest mismatches, unsupported algorithms, signature failures, or unauthenticated baselines. Baseline diffs fail when the highest finding severity meets the --fail-on-severity threshold, which defaults to critical.

Which advisory version range formats are supported?▼

Matching supports >=, <=, >, <, =, caret, tilde, wildcards, AND comparator sets separated by spaces or commas, and SemVer prerelease precedence. OR ranges and hyphen ranges are unsupported and fail closed, as are malformed CPE entries.

Is it safe to use the unsigned advisory feed bypass?▼

The --allow-unsigned bypass and HERMES_ADVISORY_ALLOW_UNSIGNED_FEED variable are emergency-only escape hatches that weaken supply-chain guarantees. They should be removed immediately after incident recovery and never left enabled in scheduled cron jobs.