Files
msd-core/get-shit-done/workflows/pause-work.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

2.9 KiB

Create `.continue-here.md` handoff file to preserve complete work state across sessions. Enables seamless resumption with full context restoration.

<required_reading> Read all files referenced by the invoking prompt's execution_context before starting. </required_reading>

Find current phase directory from most recently modified files:
# Find most recent phase directory with work
ls -lt .planning/phases/*/PLAN.md 2>/dev/null | head -1 | grep -oP 'phases/\K[^/]+'

If no active phase detected, ask user which phase they're pausing work on.

**Collect complete state for handoff:**
  1. Current position: Which phase, which plan, which task
  2. Work completed: What got done this session
  3. Work remaining: What's left in current plan/phase
  4. Decisions made: Key decisions and rationale
  5. Blockers/issues: Anything stuck
  6. Mental context: The approach, next steps, "vibe"
  7. Files modified: What's changed but not committed

Ask user for clarifications if needed via conversational questions.

**Write handoff to `.planning/phases/XX-name/.continue-here.md`:**
---
phase: XX-name
task: 3
total_tasks: 7
status: in_progress
last_updated: [timestamp from current-timestamp]
---

<current_state>
[Where exactly are we? Immediate context]
</current_state>

<completed_work>

- Task 1: [name] - Done
- Task 2: [name] - Done
- Task 3: [name] - In progress, [what's done]
</completed_work>

<remaining_work>

- Task 3: [what's left]
- Task 4: Not started
- Task 5: Not started
</remaining_work>

<decisions_made>

- Decided to use [X] because [reason]
- Chose [approach] over [alternative] because [reason]
</decisions_made>

<blockers>
- [Blocker 1]: [status/workaround]
</blockers>

<context>
[Mental state, what were you thinking, the plan]
</context>

<next_action>
Start with: [specific first action when resuming]
</next_action>

Be specific enough for a fresh Claude to understand immediately.

Use current-timestamp for last_updated field. You can use init todos (which provides timestamps) or call directly:

timestamp=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" current-timestamp full --raw)
```bash node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/phases/*/.continue-here.md ``` ``` ✓ Handoff created: .planning/phases/[XX-name]/.continue-here.md

Current state:

  • Phase: [XX-name]
  • Task: [X] of [Y]
  • Status: [in_progress/blocked]
  • Committed as WIP

To resume: /gsd:resume-work

</step>

</process>

<success_criteria>
- [ ] .continue-here.md created in correct phase directory
- [ ] All sections filled with specific content
- [ ] Committed as WIP
- [ ] User knows location and how to resume
</success_criteria>