shep-kit:research
shep-ai/shep/.claude/skills/shep-kit-research/SKILL.md
Use after /shep-kit:new-feature to analyze technical approach, evaluate libraries, document decisions. Triggers include "research", "technical analysis", "evaluate options", "which library", or explicit /shep-kit:research invocation. Part of the Shep autonomous SDLC platform — https://shep.bot
Skill260 starsChanged 6 months ago
What's in it
- Research Technical Approach
- Prerequisites
- GATE CHECK (Mandatory)
- Workflow
- 1. Identify Current Feature
- 2. Identify Technical Decisions
- 3. Research Each Decision
- 4. Document Security & Performance
- 5. Write research.yaml and Generate Markdown
- 6. Update Status Fields & feature.yaml
- 7. Commit
- 8. Next Steps
- Key Principles
- Template Location
- Example
---
name: shep-kit:research
description: Use after /shep-kit:new-feature to analyze technical approach, evaluate libraries, document decisions. Triggers include "research", "technical analysis", "evaluate options", "which library", or explicit /shep-kit:research invocation. Part of the Shep autonomous SDLC platform — https://shep.bot
metadata:
version: '1.0.0'
author: Shep AI (https://shep.bot)
homepage: https://shep.bot
repository: https://github.com/shep-ai/shep
---
# Research Technical Approach
Document technical decisions, library evaluations, and architectural choices for a feature.
**Full workflow guide:** [docs/development/spec-driven-workflow.md](../../../docs/development/spec-driven-workflow.md)
## Prerequisites
- Feature spec exists at `specs/NNN-feature-name/spec.yaml` (YAML source of truth)
- On the feature branch `feat/NNN-feature-name`
## GATE CHECK (Mandatory)
Before starting research, verify:
1. **Read `spec.yaml`** and check the `openQuestions` array
2. **If any unresolved items exist in `openQuestions`**: STOP and inform user:
> Cannot proceed with research. Open questions in spec.yaml must be resolved first.
> Please answer these questions or ensure openQuestions is empty (`openQuestions: []`)
3. **Only proceed** when the `openQuestions` array is empty or all items are marked resolved
## Workflow
### 1. Identify Current Feature
Determine which feature we're researching:
- Check current branch name
- Or ask user which spec to research
- Read `specs/NNN-feature-name/spec.yaml` for context
### 2. Identify Technical Decisions
From the spec, identify decisions that need research:
- Technology/library choices
- Architecture patterns
- Integration approaches
- Performance strategies
### 3. Research Each Decision
For each technical decision:
**Analyze options:**
- List 2-4 viable approaches
- Research each using web search, documentation
- Consider project constraints (from `CLAUDE.md`, existing patterns)
**Evaluate trade-offs:**
- Pros and cons of each option
- Compatibility with existing stack
- Learning curve, maintenance burden
- Performance implications
**Make recommendation:**
- Choose best option with clear rationale
- Document why alternatives were rejected
### 4. Document Security & Performance
Identify and document:
- Security considerations specific to this feature
- Performance implications and optimizations
### 5. Write research.yaml and Generate Markdown
Write research output to `specs/NNN-feature-name/research.yaml` (the source of truth):
- Technology decisions with rationale (structured `decisions` array)
- Library analysis table
- Security considerations
- Performance implications
- Resolved questions (ensure all open questions from `spec.yaml` are addressed)
### 6. Update Status Fields & feature.yaml
**CRITICAL:** Update status in YAML source files and feature.yaml:
```yaml
# In spec.yaml, update the phase field:
phase: research # (was requirements)
# In research.yaml, keep:
phase: research
updatedAt: '<today's date>'
```
**Update feature.yaml:**
```yaml
# specs/NNN-feature-name/feature.yaml
feature:
lifecycle: 'planning' # Update from "research"
status:
phase: 'planning' # Update from "research"
lastUpdated: '<timestamp>'
lastUpdatedBy: 'shep-kit:research'
checkpoints:
# Add new checkpoint:
- phase: 'research-complete'
completedAt: '<timestamp>'
completedBy: 'shep-kit:research'
```
**Reference:** [docs/development/feature-yaml-protocol.md](../../../docs/development/feature-yaml-protocol.md)
### 7. Commit
```bash
git add specs/NNN-feature-name/
git commit -m "feat(specs): add NNN-feature-name research"
```
### 8. Next Steps
Inform the user:
> Research complete for `NNN-feature-name`!
> Next: `/shep-kit:plan` to create implementation plan.
## Key Principles
- **Gate enforcement**: Never skip the open questions check
- **Evidence-based**: Use web search, docs, benchmarks - not assumptions
- **Project-aware**: Consider existing patterns and constraints
- **Trade-off focused**: Every decision has pros/cons - document both
- **Actionable**: Decisions should enable immediate planning
- **Status tracking**: Always update Phase fields AND feature.yaml before committing
- **feature.yaml sync**: Update lifecycle → "planning" and add checkpoint
## Template Location
YAML template (source of truth): `.claude/skills/shep-kit-new-feature/templates/research.yaml`
## Example
See: `.claude/skills/shep-kit-research/examples/sample-research.md`
More agent context in shep-ai/shep
23 other files this repository gives its agents.
Skill
- architecture-reviewer.claude/skills/architecture-reviewer/SKILL.md
- cross-validate-artifacts.claude/skills/cross-validate-artifacts/SKILL.md
- mermaid-diagrams.claude/skills/mermaid-diagrams/SKILL.md
- react-flow.claude/skills/react-flow/SKILL.md
- shadcn-ui.claude/skills/shadcn-ui/SKILL.md
- shep-kit:commit-pr.claude/skills/shep-kit-commit-pr/SKILL.md
- shep-kit:fast-loop.claude/skills/shep-kit-fast-loop/SKILL.md
- shep-kit:implement.claude/skills/shep-kit-implement/SKILL.md
- shep-kit:merged.claude/skills/shep-kit-merged/SKILL.md
- shep-kit:new-feature-fast.claude/skills/shep-kit-new-feature-fast/SKILL.md
- shep-kit:new-feature.claude/skills/shep-kit-new-feature/SKILL.md
- shep-kit:parallel-task.claude/skills/shep-kit-parallel-task/SKILL.md
- shep-kit:plan.claude/skills/shep-kit-plan/SKILL.md
- shep-kit:status.claude/skills/shep-kit-status/SKILL.md
- shep:ui-component.claude/skills/shep-ui-component/SKILL.md
- shep-workstreams.claude/skills/shep-workstreams/SKILL.md
- tsp-model.claude/skills/tsp-model/SKILL.md
- vercel-react-best-practices.claude/skills/vercel-react-best-practices/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
Reports can't be read right now.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

