research
Scannednpx machina-cli add skill parthalon025/autonomous-coding-toolkit/research --openclawResearch — Structured Investigation Protocol
Overview
Research fills the gap between design intent (brainstorming) and technical specification (PRD). It investigates existing code, external libraries, potential blockers, and implementation options before committing to an approach.
When to invoke: After brainstorming produces an approved design, before PRD generation.
Inputs
- Approved design doc from brainstorming (e.g.,
docs/plans/YYYY-MM-DD-<topic>-design.md) - Feature description or scope from the user
Steps
Step 1: Extract Research Questions
Read the design doc and identify:
- Technical unknowns ("does library X support feature Y?")
- Existing code dependencies ("what module handles auth today?")
- Integration points ("what interface does the consumer expect?")
- Performance constraints ("can we process N items in M seconds?")
List 3-8 concrete research questions.
Step 2: Search Existing Code
For each question about the current codebase:
- Use Grep/Glob to find relevant files and patterns
- Read key files to understand current implementations
- Document: file paths, function signatures, data structures
Step 3: Search Documentation
For each question about libraries or frameworks:
- Check project docs (README, ARCHITECTURE.md, CLAUDE.md)
- Search for existing patterns in the codebase
- Check docs/lessons/ for relevant lessons
Step 4: External Research
For each question requiring external knowledge:
- Search for library documentation, API references
- Look for known issues, migration guides, compatibility notes
- Document version constraints and breaking changes
Step 5: Identify Blockers
Categorize findings as:
- Blocking: Cannot proceed without resolving (missing dependency, incompatible API, no viable approach)
- Warning: Proceed with caution (deprecated API, performance concern, partial support)
- Dependency: Requires work in another module/project first
Step 6: Synthesize Findings
Write a human-readable summary with:
- Answer to each research question
- Recommended approach (with confidence level: high/medium/low)
- Blocking issues and proposed resolutions
- Warnings that the PRD should account for
Step 7: Produce Artifacts
Create two files:
tasks/research-<slug>.md — Human-readable research report:
# Research: <Feature Name>
## Questions Investigated
1. <question> — <answer summary>
...
## Recommended Approach
<1-2 paragraphs with confidence level>
## Blocking Issues
- [ ] <issue> — <proposed resolution>
## Warnings
- <warning that PRD should account for>
## Dependencies
- <module/project that needs work first>
## Evidence
- <file:line references, documentation links>
tasks/research-<slug>.json — Machine-readable for pipeline consumption:
{
"feature": "<name>",
"timestamp": "<ISO 8601>",
"questions": ["<q1>", "<q2>"],
"blocking_issues": [
{"issue": "<description>", "resolved": false, "resolution": "<proposed>"}
],
"warnings": ["<w1>", "<w2>"],
"dependencies": ["<dep1>"],
"confidence_ratings": {
"approach": "high|medium|low",
"effort_estimate": "high|medium|low"
},
"recommended_approach": "<summary>"
}
Step 8: Gate Check
If any blocking_issues have resolved: false:
- Present them to the user
- Wait for resolution or override
- Do NOT proceed to PRD with unresolved blockers
Step 9: Update Progress
Append research summary to progress.txt.
Step 10: Handoff
Pass tasks/research-<slug>.json to PRD generation. The PRD should:
- Account for all warnings
- Include tasks that resolve blocking issues
- Reference research findings in acceptance criteria
Exit Criteria
tasks/research-<slug>.mdexists with all sectionstasks/research-<slug>.jsonis valid JSON with all required fields- All blocking issues are resolved OR user has explicitly overridden
progress.txtupdated with research summary
Rules
- Always make a file. Research that exists only in conversation is lost on context reset.
- Cite evidence. Every finding should reference a specific file:line, documentation URL, or command output.
- Confidence levels are mandatory. Express high/medium/low confidence on every recommendation.
- Don't over-research. 30-60 minutes maximum. If a question can't be answered in that time, flag it as a blocking issue for the user.
Source
git clone https://github.com/parthalon025/autonomous-coding-toolkit/blob/main/skills/research/SKILL.mdView on GitHub Overview
Research fills the gap between design intent (brainstorming) and technical specification (PRD). It investigates existing code, external libraries, potential blockers, and implementation options before committing to an approach, producing durable artifacts that inform PRD decisions.
How This Skill Works
Follow the protocol: extract 3–8 concrete research questions from the approved design, then search existing code to identify file paths, function signatures, and data structures. Next, search documentation and external references, identify blockers, and synthesize findings into a human-readable report and a machine-readable JSON artifact. Finally, perform a gate check to surface unresolved blockers before handing off to PRD generation.
When to Use It
- After brainstorming yields an approved design, before PRD generation.
- When evaluating if the current codebase supports a feature or interface.
- When assessing libraries, frameworks, or external dependencies and their version constraints.
- When mapping integration points and consumer interfaces.
- When identifying blockers and risks to document for the PRD.
Quick Start
- Step 1: Extract Research Questions — read the approved design and list 3–8 concrete questions.
- Step 2: Search Code and Docs — grep code, read key files, and review relevant docs patterns.
- Step 3: Synthesize and Produce Artifacts — write the MD report and the tasks/research-<slug>.json; run the gate check.
Best Practices
- Extract 3–8 concrete research questions from the approved design.
- Grep/Glob the codebase and read key files to understand current implementations.
- Document file paths, function signatures, and data structures.
- Categorize findings into Blocking, Warning, and Dependency.
- Produce both human-readable MD and machine-readable JSON artifacts.
Example Use Cases
- Investigation into upgrading an authentication library while preserving API compatibility.
- Assessing a database client library switch with stated performance constraints.
- Evaluating a caching strategy for a high-throughput feed before PRD.
- Resolving integration points between a frontend widget and a backend service.
- Identifying blockers when introducing a new microservice and its interfaces.