---
name: skill-check
description: Check a local agent skill against the skillsissue.ai detonation database before installing, enabling, or updating it. Use when a user or installer is about to add a SKILL.md-based capability to Codex, Claude Code, or another compatible agent, or when the user asks for a skill's published verdict, reputation, or analysis evidence.
---

# SKILL-CHECK

Check the candidate locally before copying, installing, enabling, or executing it.

## Workflow

1. Identify the candidate skill root. If the input is a `SKILL.md` file, use its parent directory. If the candidate is remote, download and extract it into a temporary directory without executing any candidate content.
2. Locate `scripts/check_skill.py` relative to this `SKILL.md` and run:

   ```bash
   python3 /absolute/path/to/skill-check/scripts/check_skill.py --json /absolute/path/to/candidate-skill
   ```

3. Interpret the result conservatively:

   - `benign`: report the published isolated-run evidence and dashboard link. Explain that a benign verdict is not a guarantee of safety.
   - `suspicious` or `malicious`: do not install or enable the candidate. Summarize the verdict and ask the user to review the linked evidence.
   - `pending-scan`, `not_found`, or another unreviewed state: explain that the candidate has no completed published verdict. Do not describe it as safe; require the user's explicit decision before installation.
   - Network, hashing, or response failure: report that the check could not be completed. Never treat a failed check as a clean result.

4. Never execute files from the candidate as part of the check. Only the bundled checker may run.
5. If the candidate changes after checking, hash and check it again.

## Direct hash mode

To calculate the canonical v1 digest without contacting skillsissue.ai, run:

```bash
python3 /absolute/path/to/skill-check/scripts/check_skill.py --hash-only /absolute/path/to/candidate-skill
```

The checker uploads no candidate files or contents. It requests a public lookup shard selected by the first byte of the locally calculated SHA-256 digest, then compares the full digest locally.
