research-first-dev
npx machina-cli add skill a5c-ai/babysitter/research-first-dev --openclawResearch-First Development
Overview
Research-first development methodology adapted from the Everything Claude Code project. Mandates investigation of existing solutions and alternatives before writing any code.
Research Process
1. Problem Analysis
- Parse the request into specific technical requirements
- Identify the domain and relevant technology stack
- List known constraints (time, resources, compatibility)
- Define success criteria
2. Existing Solution Search
- Search GitHub for similar implementations
- Check package registries (npm, PyPI, crates.io, etc.)
- Review documentation for framework-specific solutions
- Identify relevant design patterns
- Check for known anti-patterns to avoid
3. Alternative Brainstorming
- Generate at least 3 alternative approaches
- Include a "build" option and at least one "buy/reuse" option
- Consider unconventional approaches
4. Trade-Off Evaluation
- Complexity: implementation effort, learning curve
- Time: development timeline, time-to-value
- Risk: failure modes, dependency risks, maintenance burden
- Scalability: growth limits, performance under load
- Score each alternative on all 4 axes
5. Recommendation
- Rank alternatives by composite score
- Provide clear recommendation with justification
- Include risk mitigation plan for chosen approach
- Define go/no-go criteria
Iterative Retrieval
- Start broad, narrow based on findings
- Use confidence scoring to decide when to stop
- Maximum 3 retrieval rounds per topic
- Cache findings for reuse in subsequent phases
When to Use
- New feature development (always)
- Architecture changes
- Technology selection
- Dependency evaluation
- Performance optimization strategy
Agents Used
planner(primary consumer)architect(architecture-specific research)
Source
git clone https://github.com/a5c-ai/babysitter/blob/main/plugins/babysitter/skills/babysit/process/methodologies/everything-claude-code/skills/research-first-dev/SKILL.mdView on GitHub Overview
Research-first development is a method that mandates investigating existing solutions and alternatives before writing any code. It guides problem analysis, solution search, brainstorming, and trade-off evaluation to steer the project toward the most informed path.
How This Skill Works
The process follows Problem Analysis to define requirements, Existing Solution Search to discover patterns and anti-patterns, Alternative Brainstorming to generate at least three approaches (including build and buy/reuse), and Trade-Off Evaluation to score each option on complexity, time, risk, and scalability. A final Recommendation with go/no-go criteria and a risk mitigation plan directs implementation.
When to Use It
- When starting a new feature development
- During architecture changes
- During technology selection and dependency evaluation
- Before implementing a performance optimization strategy
- When evaluating options for critical system changes
Quick Start
- Step 1: Problem Analysis – parse requirements, establish domain, identify constraints, and define success criteria.
- Step 2: Research – search for existing solutions, patterns, and anti-patterns; gather evidence.
- Step 3: Evaluate & Decide – generate at least three alternatives (build and buy), score them, choose a recommendation, and define go/no-go criteria with risk mitigation.
Best Practices
- Start with Problem Analysis to capture requirements, constraints, and success criteria.
- Search multiple sources (GitHub, registries, documentation) for existing solutions and patterns.
- Brainstorm at least three alternatives, including a build option and at least one buy/reuse option.
- Score each alternative on Complexity, Time, Risk, and Scalability; compute a composite rank.
- Define go/no-go criteria and include a risk mitigation plan before starting implementation.
Example Use Cases
- Evaluating whether to implement a new feature in-house or adopt an open-source library with similar capabilities.
- Choosing between a monolith refactor and a microservices approach during an architecture change.
- Selecting a frontend state management approach (e.g., Redux, Zustand, or a custom solution) using the evaluation framework.
- Assessing data storage options (SQL vs NoSQL vs NewSQL) for a new application component.
- Comparing caching and CDN strategies prior to deployment to optimize performance.