Claude-skill-registry blueprint-discovery
Discovery phase for blueprint workflow - interview triggers, acceptance criteria, and feature classification
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/blueprint-discovery" ~/.claude/skills/majiayu000-claude-skill-registry-blueprint-discovery && rm -rf "$T"
skills/data/blueprint-discovery/SKILL.mdBlueprint Discovery
Handles Steps 1-5 of the blueprint workflow: Idea Refinement, Research Decision Signals, Interview decision, Acceptance Criteria gathering, and Feature Classification.
Input
feature_description: string # Raw feature description from user
1. Idea Refinement
Quick clarification before deep discovery. Catches misunderstandings early with 1-3 targeted questions.
Trigger when:
< 100 charactersfeature_description- Contains uncertainty: "maybe", "probably", "something like", "I think", "not sure"
- Missing core elements: no clear action verb OR no clear subject
Skip when:
- Description is detailed (> 200 characters with clear intent)
- User says "proceed" or "skip refinement"
- Bug fix with reproduction steps
If triggered:
AskUserQuestion: question: "Quick check - what's the primary goal?" header: "Goal" options: - label: "Add new capability" description: "Feature that doesn't exist yet" - label: "Fix broken behavior" description: "Something that should work but doesn't" - label: "Improve existing feature" description: "Enhancement to current functionality" - label: "Refactor/cleanup" description: "Better code without behavior change"
Follow-up (if answer reveals gaps):
If goal == "Add new capability": AskUserQuestion: question: "Who will use this and when?" header: "Context" options: - label: "End users in the app" - label: "Admins/internal team" - label: "Developers/API consumers" - label: "Automated systems" If goal == "Fix broken behavior": AskUserQuestion: question: "How does it fail?" header: "Symptom" options: - label: "Error/crash" - label: "Wrong output" - label: "Missing data" - label: "Performance issue"
Max 3 questions total. After refinement:
refined_description = original + goal + context/symptom (if asked)
Output skip offer:
"Got it: {refined_description}. Ready to proceed, or clarify further?"
2. Research Decision Signals
During refinement, gather signals to inform the research decision in blueprint-research.
Infer from conversation:
| Signal | How to Detect |
|---|---|
| Points to existing code examples? Knows where files live? → |
| "Quick fix", "ship today" → / "want it right", "research first" → |
| Keywords: auth, payment, stripe, security, encrypt, API key, webhook → |
| "Not sure how", "what's the best way", exploring options → |
If signals unclear, quick probe:
AskUserQuestion: question: "What matters more for this task?" header: "Priority" options: - label: "Get it done fast" description: "Good enough solution, ship quickly" - label: "Get it done right" description: "Research best practices first"
Store signals for research phase.
3. Interview Decision
Suggest interview when:
- Feature description < 2 sentences
- Contains uncertainty words: "maybe", "probably", "something like", "not sure"
- Involves multiple stakeholders or systems
- User seems uncertain
Skip interview for:
- Bug fixes with clear reproduction steps
- Small, well-defined tasks (< 3 files likely)
- Features with existing specs/PRDs referenced
If interview suggested:
AskUserQuestion: question: "This feature could benefit from a requirements interview. Explore in depth first?" options: - "Yes, interview me first" → Invoke /majestic:interview with feature_description - "No, proceed to planning" → Continue
4. Acceptance Criteria
MANDATORY: Ask what "done" means.
AC describes feature behaviors only. Quality gates (tests, lint, review) handled by other agents.
AskUserQuestion: question: "What behavior must work for this feature to be done?" header: "Done when" multiSelect: true options: - label: "User can perform action" description: "Feature enables a specific user action" - label: "System responds correctly" description: "API/backend behaves as expected" - label: "UI displays properly" description: "Visual elements render correctly" - label: "Data is persisted" description: "Changes are saved to database"
Good AC examples:
- "Authenticated user can login and redirect to dashboard"
- "Form validates email format before submission"
- "API returns 404 for non-existent resources"
Bad AC examples (handled elsewhere):
- "Tests pass" → always-works-verifier
- "Code reviewed" → quality-gate
- "No lint errors" → slop-remover
Capture verification method for each criterion:
| Criterion | Verification |
|---|---|
| User can login | or manual |
| Form validates | |
| API returns 404 | |
5. Feature Classification
| Type | Detection Keywords | Action |
|---|---|---|
| UI | page, component, form, button, modal, design, view, template | Check design system |
| DevOps | terraform, ansible, infrastructure, cloud, docker, deploy, server | Delegate to devops-plan |
| API | endpoint, route, controller, request, response, REST, GraphQL | Standard flow |
| Data | migration, model, schema, database, query | Standard flow |
UI Feature Flow:
- Read config:
/majestic:config design_system_path - If empty, check:
docs/design/design-system.md - If no design system: Suggest
first/majestic:ux-brief
DevOps Feature Flow:
Skill(skill: "majestic-devops:devops-plan")
Output
discovery_result: refined_description: string # Original + refinement context refinement_skipped: boolean interview_conducted: boolean interview_output: string | null # If interview was run acceptance_criteria: - criterion: string verification: string feature_type: "ui" | "devops" | "api" | "data" | "general" design_system_path: string | null # For UI features # Research decision signals (for blueprint-research) user_familiarity: high | medium | low user_intent: speed | thoroughness topic_risk: high | medium | low uncertainty_level: high | medium | low ready_for_research: boolean