Files
msd-core/get-shit-done/workflows/research-phase.md
Lex Christopherson 69b28eeca4 fix: use $HOME instead of ~ for gsd-tools.cjs paths to prevent subagent MODULE_NOT_FOUND (#786)
Claude Code subagents sometimes rewrite ~/. paths to relative paths,
causing MODULE_NOT_FOUND when CWD is the project directory. $HOME is a
shell variable resolved at runtime, immune to model path rewriting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 13:11:19 -06:00

74 lines
1.8 KiB
Markdown

<purpose>
Research how to implement a phase. Spawns gsd-phase-researcher with phase context.
Standalone research command. For most workflows, use `/gsd:plan-phase` which integrates research automatically.
</purpose>
<process>
## Step 0: Resolve Model Profile
@~/.claude/get-shit-done/references/model-profile-resolution.md
Resolve model for:
- `gsd-phase-researcher`
## Step 1: Normalize and Validate Phase
@~/.claude/get-shit-done/references/phase-argument-parsing.md
```bash
PHASE_INFO=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "${PHASE}")
```
If `found` is false: Error and exit.
## Step 2: Check Existing Research
```bash
ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null
```
If exists: Offer update/view/skip options.
## Step 3: Gather Phase Context
```bash
INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" init phase-op "${PHASE}")
# Extract: phase_dir, padded_phase, phase_number, state_path, requirements_path, context_path
```
## Step 4: Spawn Researcher
```
Task(
prompt="<objective>
Research implementation approach for Phase {phase}: {name}
</objective>
<files_to_read>
- {context_path} (USER DECISIONS from /gsd:discuss-phase)
- {requirements_path} (Project requirements)
- {state_path} (Project decisions and history)
</files_to_read>
<additional_context>
Phase description: {description}
</additional_context>
<output>
Write to: .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
</output>",
subagent_type="gsd-phase-researcher",
model="{researcher_model}"
)
```
## Step 5: Handle Return
- `## RESEARCH COMPLETE` — Display summary, offer: Plan/Dig deeper/Review/Done
- `## CHECKPOINT REACHED` — Present to user, spawn continuation
- `## RESEARCH INCONCLUSIVE` — Show attempts, offer: Add context/Try different mode/Manual
</process>