Back to skill
Skillv1.0.2
ClawScan security
Moses Audit · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
BenignMar 16, 2026, 1:08 PM
- Verdict
- Benign
- Confidence
- high
- Model
- gpt-5-mini
- Summary
- The skill is an on-disk, append-only audit ledger whose code and runtime instructions match its stated purpose; nothing in the package tries to exfiltrate data or access unrelated services, though there are small metadata mismatches and a mandatory logging policy you should be aware of.
- Guidance
- This skill appears coherent for its stated purpose: it maintains a local, hash-chained JSONL ledger and optionally produces HMAC attestations using a single operator secret. Before installing, consider: 1) Privacy: the 'detail' field is freeform—do not log secrets, PII, or keys (the SKILL.md warns this but accidental logging is possible). 2) Operator secret: MOSES_OPERATOR_SECRET is optional but used for attestations; ensure you trust the skill owner before placing a secret in your environment. 3) Mandatory logging policy: SKILL.md mandates logging before every final response — decide whether you want that enforced in your agents. 4) Metadata mismatch: the registry declares no required env vars while SKILL.md references MOSES_OPERATOR_SECRET; confirm expected configuration with the skill author. 5) Local files: the ledger and state live under ~/.openclaw — review and secure those files (permissions, backups) if they could contain sensitive metadata. If you need higher assurance, inspect the full included script locally (audit_stub.py) and test in a sandboxed environment first.
Review Dimensions
- Purpose & Capability
- noteThe name/description (SHA-256 chained append-only ledger, governance audit) align with the shipped script and runtime instructions: the script writes an on-disk JSONL ledger, computes SHA-256 chain hashes, and optionally creates HMAC attestations. Minor inconsistency: registry metadata at the top of the evaluation shows no required env vars, but SKILL.md metadata lists MOSES_OPERATOR_SECRET as an env; the script reads MOSES_OPERATOR_SECRET if present. This is explainable (the secret is optional for attestations) but is a mismatch between declared registry requirements and the SKILL.md.
- Instruction Scope
- noteSKILL.md instructs agents to append an audit entry before every final response (mandatory policy language). The instructions reference local ledger and state paths (~/.openclaw/audits/moses and ~/.openclaw/governance) and provide example invocations. The script itself only reads/writes those local files and the optional MOSES_OPERATOR_SECRET; it does not perform networking, read other system credentials, or transmit the secret. The SKILL.md warns not to log secrets — that warning is important because the freeform 'detail' field could accidentally include sensitive material. Also note minor path inconsistency in examples (one example uses ~/.openclaw/workspace/skills/moses-governance/... while shipped script path is scripts/audit_stub.py).
- Install Mechanism
- okNo install spec (instruction-only with an included Python script). That is low-risk compared to downloading arbitrary binaries at runtime. The package includes the audit_stub.py script; it will run locally. No external downloads or package-manager installs are performed by the skill itself.
- Credentials
- noteThe script optionally uses a single environment secret (MOSES_OPERATOR_SECRET) to compute HMAC attestations; this is proportionate to the claimed attestation feature. However, the registry's declared required env vars field is empty while SKILL.md lists the env var — a documentation/metadata mismatch. The operator secret is not written to disk or transmitted by the script (only an HMAC derived from it is recorded), which matches the SKILL.md claim.
- Persistence & Privilege
- okThe skill does not request always:true and does not modify other skills or system-wide settings. It creates and writes ledger and state files under ~/.openclaw which is appropriate for an audit tool. Autonomous invocation remains possible (platform default), but that is normal and not raised by this package alone.
