← All skills
behavior-probes
85 / 100 · Low risk
Fine to try. Some of what it can do is expected: a coding skill usually runs build and test commands.
By melodic-software/claude-code-plugins (GitHub) · coding · 30 stars · scanned at commit 677e798
Live probes of Claude Code permission, auto-mode, hook, worktree, subagent and sandbox behavior as cases with paired controls, each reported pass, fail or inconclusive with the Claude Code version; dry run by default, live runs opt-in and capped. Use when: 'rerun the behavior probes', 'does auto mode still deny this', 'add a probe case', 'which probes does this release touch'.
Works with any agent that supports SKILL.md skills.
What this skill can do
Changes files outside its own folder
This is disclosed by the author in the skill's SKILL.md or README. It runs automatically when the plugin is installed.
Found in 4 places.
Show 1 more
Runs commands on your computer
The author does not mention this. Expected for a coding skill.
Found in 54 places.
Show 17 more
- plugins/harness-ops/skills/behavior-probes/cases/hooks/updatedinput-no-decision-denied-in-default/settings.json, line 6
"hooks": [{ "type": "command", "command": "python3 \"${PROBE_CASE_DIR}/../../lib/commit-f-hook.py\"" }] - plugins/harness-ops/skills/behavior-probes/cases/hooks/updatedinput-no-decision-rule-matches-rewrite/expect.json, line 10
"example": { "command": "git commit -m \"Probe subject\n\nProbe body line\"" } - plugins/harness-ops/skills/behavior-probes/cases/hooks/updatedinput-no-decision-rule-matches-rewrite/settings.json, line 7
"hooks": [{ "type": "command", "command": "python3 \"${PROBE_CASE_DIR}/../../lib/commit-f-hook.py\"" }] - plugins/harness-ops/skills/behavior-probes/cases/hooks/updatedinput-no-decision-runs-in-auto/expect.json, line 10
"example": { "command": "git commit -m \"Probe subject\n\nProbe body line\"" } - plugins/harness-ops/skills/behavior-probes/cases/hooks/updatedinput-no-decision-runs-in-auto/settings.json, line 6
"hooks": [{ "type": "command", "command": "python3 \"${PROBE_CASE_DIR}/../../lib/commit-f-hook.py\" --mark" }] - plugins/harness-ops/skills/behavior-probes/cases/lib/eval-tools-check.py, line 170
subprocess.run( # noqa: S603 - argv list, no shell - plugins/harness-ops/skills/behavior-probes/cases/lib/eval-tools-check.py, line 178
except (OSError, subprocess.TimeoutExpired) as exc: - plugins/harness-ops/skills/behavior-probes/scripts/probe.py, line 645
def kill_tree(process: subprocess.Popen) -> None: - plugins/harness-ops/skills/behavior-probes/scripts/probe.py, line 647
subprocess.run( - plugins/harness-ops/skills/behavior-probes/scripts/probe.py, line 698
process = subprocess.Popen( # noqa: S603 - argv list, no shell - plugins/harness-ops/skills/behavior-probes/scripts/probe.py, line 702
stdin=subprocess.PIPE, - plugins/harness-ops/skills/behavior-probes/scripts/probe.py, line 703
stdout=subprocess.PIPE, - plugins/harness-ops/skills/behavior-probes/scripts/probe.py, line 704
stderr=subprocess.PIPE, - plugins/harness-ops/skills/behavior-probes/scripts/probe.py, line 717
except subprocess.TimeoutExpired: - plugins/harness-ops/skills/behavior-probes/scripts/probe.py, line 721
except subprocess.TimeoutExpired: - plugins/harness-ops/skills/behavior-probes/scripts/probe.py, line 912
done = subprocess.run( # noqa: S603 - fixed argv - plugins/harness-ops/skills/behavior-probes/scripts/probe.py, line 1078
rows = subprocess.run( # noqa: S603 - fixed argv
and 34 more places
Sends data to these websites: example.com, x, code.claude.com
The author does not mention this. It runs automatically when the plugin is installed.
Found in 37 places.
Show 17 more
- plugins/harness-ops/hooks/audit-event-emitter.test.sh, line 108
"{\"hook_event_name\":\"$pev\",\"tool_name\":\"Bash\",\"tool_input\":{\"command\":\"TOKEN=\\\"secret value\\\" curl https://x\"}}" \ - plugins/harness-ops/hooks/hook-events.registry.json, line 8
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 18
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 28
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 38
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 48
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 58
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 68
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 78
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 88
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 98
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 108
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 118
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 128
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 138
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 148
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)", - plugins/harness-ops/hooks/hook-events.registry.json, line 158
"basis": "https://code.claude.com/docs/en/hooks#hook-lifecycle (raw markdown of hooks.md, fetched with curl -sS -L)",
and 17 more places
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'behavior-probes' ] || [ -L ~/.agents/skills/'behavior-probes' ]; then echo 'A skill folder named behavior-probes already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/melodic-software/claude-code-plugins' "$d" && git -C "$d" checkout --quiet '677e7988f432dacb5e2d4df2b124f96da8e8f9f3' -- 'plugins/harness-ops/skills/behavior-probes' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugins/harness-ops/skills/behavior-probes' ~/.agents/skills/'behavior-probes' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'behavior-probes' ~/.claude/skills/'behavior-probes' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for melodic-software/claude-code-plugins shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/melodic-software/claude-code-plugins/)
Score history
| Date | Version | Score |
|---|
| 2026-11-09 | 677e798 | 85 |
| 2026-11-07 | 81c7244 | 85 |