refactor(discovery): extract blindspot mode from explore into its own skill (#259) - #733
Conversation
… skill (#259) Blindspot mode built the USER's knowledge with a distinct output contract (prompt-fix cards, no EXPLORE.md, outcome gate skipped) — a grafted second responsibility on explore. Extract it into `/discovery:blindspot`, trim explore back to codebase investigation + EXPLORE.md + outcome gate, and repoint the cross-plugin references. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 3m 59s —— View job PR Review: refactor(discovery): extract blindspot mode into its own skill
OverallClean, well-motivated extraction. The separation of audience (user vs agent) and deliverable (prompt-coaching cards vs What's working well
Evals coverage — The three evals are well-targeted: the happy path (id:1, ported from explore), the domain lane grounding (id:2, new), and the explore handoff boundary (id:3, new). The third eval is a genuine addition that explore's evals never tested — good catch. explore SKILL.md cleanup is surgical — The four removal sites are precisely correct: modes-table row, the "Blindspot mode" section, the two SKIP clauses in the outcome gate / final step, and the external-research carve-out in "What this skill does NOT do". No collateral damage to explore's own logic. Evals renumbering — The old id:2 (blindspot eval) is removed, stale carve-out language in Issues1. README "Both inline skills" phrase is now ambiguous [minor] After adding blindspot as a fifth entry, the sentence below the table — "Both inline skills persist handoff artifacts (
Suggested fix: - `The `/discovery:explore` and `/discovery:research` skills persist handoff artifacts...`
+ The two artifact-persisting skills (`/discovery:explore`, `/discovery:research`) persist handoff artifacts...2. The description still reads "explore the local codebase (inline or in an isolated forked subagent) and run disciplined multi-source external research…" — no mention of user-facing blindspot discovery. The README framing was correctly updated to call out blindspot as a fifth, distinct-audience skill; the manifest description is now slightly misaligned.
Not a blocker, but a future pass could append something like: "…and surface user unknown-unknowns before working in unfamiliar territory ( 3. Cross-skill coupling in The codebase lane description references
Worth a comment in 4. Domain-lane eval doesn't explicitly check the intake question [nit] The VerdictApprove with suggestion. Item 1 (README "Both inline skills") is worth fixing before merge — it's a one-line clarification that's easy to miss on a close read but will confuse plugin consumers reading the skills table. Items 2–4 are informational. The extraction itself is correct and the implementation is clean. |
…Both inline" With blindspot added as a fifth skill, "Both inline skills" is ambiguous — it forced the reader to cross-reference the Axis column. Name the two skills explicitly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 37s —— View job
Re-review:
|
|
Post-green review pass complete (rule 8). Bot review classification:
No threads to resolve, CI fully green (18/18). Flipping to ready for review; handing off to the babysit lane for merge. |
|
Claude finished @kyle-sexton's task in 1m 15s —— View job
Final review pass — ready to mergeThis is a re-review pass after the PR was marked ready for review following the post-green classification. All 8 changed files are verified. Finding #1 fix confirmed.
Exact match to the suggested fix. The five-row table is no longer ambiguous. ✓
VerdictApproved. No new issues. The single pre-merge item from the prior review is resolved, the informational findings are correctly not acted on, and CI is green. Ready to merge. |
Summary
Blindspot mode was a grafted second responsibility on
/discovery:explore: it builds the USER's knowledge (not the agent's) and ships a different deliverable — blindspot cards plus one improved prompt, with noEXPLORE.md, the outcome gate skipped, and a bespoke external-research carve-out. This PR extracts it into its own skill and trimsexploreback to its single core responsibility.Fix
plugins/discovery/skills/blindspot/—SKILL.md(own frontmatter, intake → scan → cards → escalate workflow, output-format + gotchas + "does NOT do") andevals/evals.json(3 graders, including the blindspot-builds-user-knowledge case moved out of explore's evals).explore/SKILL.mdtrimmed — removed theblindspotmodes-table row and the "Blindspot mode" section, the two artifact-skip clauses in the outcome gate and final step, the blindspot mention in the frontmatter description/argument-hint, and the domain-lane research carve-out. A one-line pointer to/discovery:blindspotreplaces the extracted section.explore/evals/evals.json— dropped the blindspot eval, renumbered, and removed the stale blindspot carve-out reference in the no-external-research grader.plugins/discovery/README.md(new skill row + framing) andplugins/planning/skills/interview/SKILL.md(/discovery:explore blindspot <area>→/discovery:blindspot <area>).0.7.3 → 0.8.0with a top-inserted CHANGELOG entry.Verification
All run against
origin/mainin the worktree:scripts/check-changed-skills.sh origin/main→ PASS (explore, interview; 0 errors)check-skill.sh blindspot(skill-quality gate) → PASS — 0 errors, 1 warning (Use-when phrasing, consistent with sibling discovery skills)scripts/check-changelog-parity.sh --checkand--check-bump origin/main→ PASSscripts/check-skill-leaf-names.sh --check→ PASS (blindspotis a unique leaf, no registry entry needed)scripts/check-skill-portability.sh --paths …blindspot/SKILL.md …explore/SKILL.md→ PASS (no coupling tokens)node scripts/validate-plugin-contracts.mjs→ PASS (33 setup skills, 1825 files)markdownlint-cli2on all changed markdown → 0 errorsrequired+additionalProperties) → validCloses #259
Related
/discovery:explore; sibling toexplore-deep,research,research-deep,setup.