.claude/skills/discover/SKILL.md
Exploratory conversation before /product-spec. Asks one question at a time, runs background research for open-source/off-the-shelf alternatives, and writes DISCOVERY_NOTES.md. Use when the user has an idea but hasn't scoped it yet.
npx skillsauth add benjaminshoemaker/ai_coding_project_base discoverInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Explore a project idea through conversation and produce discovery notes for /product-spec.
Discovery Progress:
- [ ] Phase 1: Listen & orient
- [ ] Phase 2: Explore (conversational Q&A)
- [ ] Phase 3: Background research (non-blocking)
- [ ] Phase 4: Synthesis — write DISCOVERY_NOTES.md
- [ ] Phase 5: Handoff to /product-spec
--lean)When --lean is passed:
git log --oneline -10 (if git repo)CLAUDE.md or README.md if they existls of top-level structureDo NOT output a long preamble. Acknowledge the idea in 1-2 sentences, then go straight to your first question.
Ask questions one at a time via AskUserQuestion. Follow threads — if the user's answer raises something interesting, dig into that before moving to the next topic.
Smart-skip: Only ask about areas marked "needs exploration" from Phase 1. If the user's initial description already answers a question clearly, skip it.
When you have a genuine, informed recommendation for a question, include it with a brief explanation of why. Don't force recommendations where you don't have a real basis for one — many discovery questions are purely about understanding the user's intent, not making a choice.
Good recommendation: "I'd lean web here — dashboards are naturally browser-based, and you avoid app store friction." (There's a real rationale based on the problem domain.)
Bad recommendation: "My instinct is this is a personal tool." (You're just guessing about the user's intent — ask instead.)
If the user says "just build it," "let's go," "enough questions," or expresses impatience:
Move to Phase 4 when you have enough clarity to write a useful summary. You don't need every question answered — "Open Questions" exist for a reason. Typically 3-6 questions is enough.
Launch as soon as the idea is clear enough — typically after the user answers the first 1-2 questions. Do not wait until Phase 2 is complete.
Launch a single background Agent (run_in_background: true) with this mission:
Search for open-source projects, off-the-shelf products, and existing tools related to: {1-2 sentence description of what the user wants to build}.
Categorize every finding into exactly one of these three buckets:
Use Directly — Could replace building this entirely. Solves the core problem as-is or with minimal configuration.
Leverage — Libraries, frameworks, APIs, or components that handle significant parts of the work. The user would still build their own product but stand on these.
Take Inspiration From — Projects with good architecture, UX patterns, or approaches worth studying. Not directly usable but instructive.
For each finding, include:
- Name and URL (GitHub link or product page)
- 1-2 sentence description of what it does
- Why it's relevant to this specific project
- Which bucket it belongs to and why
Search for:
- GitHub repos: "{problem domain} open source", "{key feature} library {likely language}"
- Products: "{problem domain} tool", "{problem domain} SaaS"
- Package registries: relevant npm/PyPI/crates packages if tech stack is known
Return 3-8 findings total, prioritizing quality over quantity. If you find something in the "Use Directly" bucket, make sure to note it prominently.
CRITICAL: Do not interrupt the Phase 2 conversation when results arrive. Research findings are only used in Phase 4 when writing DISCOVERY_NOTES.md.
Write DISCOVERY_NOTES.md to the project root (or plans/greenfield/DISCOVERY_NOTES.md if plans/greenfield/ already exists).
Wait for the background research agent to complete before writing. If it hasn't finished, wait briefly — this is the one place where research blocks.
# Discovery Notes
Generated: {date}
Source: /discover conversation
## Idea Summary
{1-2 paragraph synthesis of what the user wants to build and why. Capture the energy and intent, not just the facts.}
## Key Decisions
- **Problem:** {what we're solving, in the user's words}
- **Audience:** {who it's for}
- **Platform:** {web/mobile/CLI/desktop/etc., or "TBD" if not discussed}
- **Stack preferences:** {any that emerged, or "none expressed"}
- **MVP scope:** {what "done" looks like — the minimum that would make the user happy}
- **Exciting part:** {where the user wants to focus energy}
## Open Questions
{Bulleted list of things we didn't resolve. These become questions for /product-spec.}
## Existing Solutions & Tools
### Use Directly
{Tools/products that could replace building this. If none found, say "None found that solve the full problem."}
### Leverage
{Libraries, frameworks, APIs worth building on top of.}
### Take Inspiration From
{Projects with good patterns, architecture, or UX to study.}
## Raw Context
{2-5 notable quotes or details from the conversation that capture nuance /product-spec should know. Things that wouldn't fit in the structured sections above.}
If research returned no findings: Include the Existing Solutions section with "No relevant open-source or off-the-shelf solutions found." under each bucket.
If research found a strong "Use Directly" candidate: Note it clearly but don't editorialize. The user will see it and decide.
After writing the file:
DISCOVERY_NOTES.md written to {path}
Next: /product-spec [--lean]
That's it. No lengthy summary — the user can read the file.
| Situation | Action | |-----------|--------| | Background research agent fails or times out | Write DISCOVERY_NOTES.md without the research section. Add a note: "Background research did not complete. Run WebSearch manually or proceed without." | | User provides a fully formed description with no ambiguity | Skip Phase 2 entirely. Run research, write notes, hand off. | | User wants to explore multiple ideas | Pick the one they seem most excited about, note the others in "Raw Context" as alternatives worth revisiting. | | Project already has DISCOVERY_NOTES.md | Ask: overwrite, backup then overwrite, or abort. |
testing
Audit project alignment with VISION.md, identify SDLC gaps, and generate feature proposals. Use when reviewing strategic direction or planning new features.
development
Run code-verification on a specific task. Use to verify a single task's acceptance criteria after implementation.
testing
Resolve Vercel preview deployment URL for the current git branch. Invoked by browser-verification when deployment.enabled is true, or directly to check deployment status. Use to check deployment status or when browser verification needs a URL.
tools
Discover and sync all toolkit-using projects with the latest skills. Use when skills are modified, after the post-commit hook reminds you, or to batch-sync multiple projects.