← All skills
blindspot
92 / 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
Surface the USER's unknown-unknowns before they work in unfamiliar territory and coach a sharper prompt. Use when: 'what am I missing', 'find my blindspots', 'blind spot pass', 'what do I not know here', 'sharpen this prompt', 'I am new to this area', or about to work in an unfamiliar area and the goal is a better prompt, not the codebase handoff /discovery:explore produces.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README. It runs automatically when the plugin is installed. Expected for a coding skill.
Found in 8 places.
Show 5 more
- plugins/discovery/lib/view-settings.mjs, line 150
const out = spawnSync("bash", [join(HERE, "state-key.sh"), "--root", root ?? process.cwd()], { encoding: "utf8" }); - plugins/discovery/hooks/hooks.json, line 10
"command": "node", - plugins/discovery/hooks/hooks.json, line 24
"command": "node", - plugins/discovery/hooks/webfetch-truncation.test.mjs, line 8
import { spawnSync } from 'node:child_process' - plugins/discovery/hooks/webfetch-truncation.test.mjs, line 96
const run = input => spawnSync(process.execPath, [hook], { input, encoding: 'utf8' })
Sends data to these websites: example.org, example.com
The author does not mention this. It runs automatically when the plugin is installed.
Found in 22 places.
Show 17 more
- plugins/discovery/hooks/fixtures/webfetch-posttooluse-changelog.json, line 29
"result": "# Claude Code Changelog Summary\n\nThis is an extensive changelog documenting updates across multiple versions of Claude Code, a development tool bui - plugins/discovery/hooks/fixtures/webfetch-posttooluse-env-vars.json, line 20
"tool_name": "WebFetch", - plugins/discovery/hooks/fixtures/webfetch-posttooluse-hooks.json, line 20
"tool_name": "WebFetch", - plugins/discovery/hooks/hooks.json, line 2
"description": "After a WebFetch whose result ends in a truncation marker or placeholder line, adds one line of context saying the result covers only part of th - plugins/discovery/hooks/hooks.json, line 20
"matcher": "WebFetch", - plugins/discovery/hooks/webfetch-truncation.mjs, line 38
const READ_ON_NOTE = /^\[WebFetch note:[^\]\n]*\bto read on\b[^\]\n]*\boffset: \d+\.?\]$/ - plugins/discovery/hooks/webfetch-truncation.mjs, line 54
if (payload?.tool_name !== 'WebFetch') return null - plugins/discovery/hooks/webfetch-truncation.mjs, line 64
const ending = readOn ? "WebFetch's read-on note" : 'a truncation placeholder' - plugins/discovery/hooks/webfetch-truncation.mjs, line 66
? 'Call WebFetch again with the same url and the offset the note names to read on, or /discovery:read-docs' - plugins/discovery/hooks/webfetch-truncation.mjs, line 68
return `discovery: the WebFetch result for ${url} ends in ${ending}, so it covers only part of the page. ${next} reads the whole page, or the sections asked for - plugins/discovery/hooks/webfetch-truncation.test.mjs, line 29
const readOnNote = '[WebFetch note: this page\'s text is 250017 characters long and the answer above covers only characters 0 to 100000; the final 150017 were n - plugins/discovery/hooks/webfetch-truncation.test.mjs, line 42
'read-on note: [WebFetch note: ... offset: N.]': lastLineSwapped(hooks, readOnNote), - plugins/discovery/hooks/webfetch-truncation.test.mjs, line 74
'a non-WebFetch tool whose output ends in the marker': - plugins/discovery/hooks/webfetch-truncation.test.mjs, line 76
'a WebFetch payload with no result': { ...hooks, tool_response: { bytes: 10, code: 404 } }, - plugins/discovery/hooks/webfetch-truncation.test.mjs, line 80
'a WebFetch note that names no offset': lastLineSwapped(hooks, '[WebFetch note: this page redirected to another host.]'), - plugins/discovery/hooks/webfetch-truncation.test.mjs, line 82
lastLineSwapped(hooks, '[WebFetch note: the page redirected from https://example.org/start to https://example.com/page?offset=10; fetch the new URL to read it.] - plugins/discovery/hooks/webfetch-truncation.test.mjs, line 92
assert.match(decide(lastLineSwapped(hooks, readOnNote)), /WebFetch again with the same url and the offset/)
and 2 more places
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'blindspot' ] || [ -L ~/.agents/skills/'blindspot' ]; then echo 'A skill folder named blindspot 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/discovery/skills/blindspot' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugins/discovery/skills/blindspot' ~/.agents/skills/'blindspot' && 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/'blindspot' ~/.claude/skills/'blindspot' (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 | 92 |
| 2026-11-07 | 81c7244 | 92 |