---
name: hashgraph-online-hol-guard
description: "Run HOL Guard scanner and guard operations via `uv run hol-guard`. Use when the user asks to scan plugins/MCP/skills for security, quality, or ecosystem compliance, or when they ask to run guard detect/install/protect workflows for local AI harnesses."
license: "NOASSERTION"
metadata:
  decimalai-skill-id: "49300786-2c2b-41df-94da-8958cd2c5f42"
  decimalai-version-id: "149a04b3-465c-4c6c-8179-6a7e61b16181"
  decimalai-version: "1"
  decimalai-body-sha256: "010eee055dfeb1590d09fd8ace118b462a20396fbe589a8db24ee1ca21135cbf"
  decimalai-name: "hashgraph-online/hol-guard"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "security"
  decimalai-source: "https://app.decimal.ai/s/hashgraph-online-hol-guard@1/SKILL.md"
---
# HOL Guard

HOL Guard is an AI Antivirus scanner that checks plugins, MCP servers, skills, and local AI harnesses for security, quality, and ecosystem compliance.

## Prerequisites

- Always run from the `hol-guard` project root.
- Use `uv run hol-guard` to invoke the CLI. Never invoke Python modules directly.
- Ensure `uv sync --frozen --extra dev` has been run before invoking.

## Scanner Operations

Scan a plugin or skill directory:

```
uv run hol-guard scan <directory> [--format json|text|markdown|sarif] [--profile default|public-marketplace|strict-security] [--fail-on-severity critical|high|medium|low|info|none]
```

Lint rules:

```
uv run hol-guard lint <directory> [--list-rules] [--explain <rule-id>]
```

Verify runtime:

```
uv run hol-guard verify <directory> [--online]
```

List ecosystems:

```
uv run hol-guard --list-ecosystems
```

## Guard Operations

Detect harnesses:

```
uv run hol-guard detect [codex|claude|cursor|gemini|opencode] [--json]
```

Run guard in dry-run mode:

```
uv run hol-guard run <harness> --dry-run --default-action allow --json
```

Check guard status:

```
uv run hol-guard status [--json]
```

## Common Test Fixtures

Test fixtures live in `tests/fixtures/`:
- `good-plugin/` - clean Codex plugin with all required fields
- `bad-plugin/` - plugin with secrets, missing fields, bad practices
- `malicious-skill-plugin/` - skill with malicious patterns
- `multi-ecosystem-repo/` - repo with Codex, Claude, and Gemini configs
- `claude-plugin-good/` - clean Claude plugin
- `opencode-good/` - clean OpenCode plugin
- `gemini-extension-good/` - clean Gemini extension

## Verification

After each operation, verify:
- Exit code 0 for clean targets
- Exit code non-zero for targets with findings
- Output is valid JSON when `--format json` or `--json` is used
- Scanner reports findings with correct rule IDs and severities
