.claude/skills/dan-pause/SKILL.md
Save current session state for later resumption
npx skillsauth add RavBogard/DAN dan:pauseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Save the current session state so work can be resumed later. Captures the current position, in-progress tasks, and any accumulated context into STATE.md.
Runs in-session (no agent spawning). Quick state-save operation.
State operations use the DAN CLI:
DAN="node $HOME/.claude/dan/bin/dan-tools.cjs --cwd $PROJECT_DIR"
# Save session position
$DAN session save '{"phase":3,"plan":"03-02","task":2,"stage":"apply","wave":1}'
# Read current state
$DAN state read
# Set individual fields
$DAN state set "Last session" "2026-03-29"
$DAN state set "Last activity" "Paused mid-apply on plan 03-02"
# Commit WIP
$DAN commit "wip: pause session at Phase 3, plan 03-02, task 2, stage: apply" --files .planning/STATE.md
<execution_flow>
Read the current project state to understand where execution is.
DAN="node $HOME/.claude/dan/bin/dan-tools.cjs --cwd $PROJECT_DIR"
STATE_JSON=$($DAN state read)
From the state JSON, extract:
research, plan, apply, unify, verify, bugsweepPosition inference rules:
status field tells if work is in progressstopped_at field has the last known positionlast_activity field describes what was happeningpipeline_* frontmatter fields contain prior position if setBuild the position object:
POSITION='{"phase": PHASE, "plan": "PLAN_ID", "task": TASK_NUM, "stage": "STAGE", "wave": WAVE}'
Call the session save CLI with the constructed position JSON:
$DAN session save "$POSITION"
This command performs the following atomically:
status: paused in STATE.md frontmatterpipeline_phase, pipeline_plan, pipeline_task, pipeline_stage, pipeline_wave to frontmatterstopped_at body field with human-readable position stringlast_updated timestampVerify the save succeeded by checking the CLI output for {"saved": true, ...}.
Capture any runtime context that would be lost when the session ends:
# Update last session date
$DAN state set "Last session" "$(date -u +%Y-%m-%d)"
# Update last activity with what was happening
$DAN state set "Last activity" "$(date -u +%Y-%m-%d) -- Paused at STAGE on PLAN_ID"
Additionally, if there are any of the following, append them to the appropriate STATE.md sections:
state set to the "Pending Todos" section.$DAN state add-blocker "description" (if available) or manually append to Blockers/Concerns section.If none of these exist, skip -- do not write placeholder text.
Create a WIP commit so the pause point is anchored in git history:
STOPPED_AT="Phase $PHASE, plan $PLAN_ID, task $TASK_NUM, stage: $STAGE"
$DAN commit "wip: pause session at $STOPPED_AT" --files .planning/STATE.md
This commit serves as:
dan:resume to verifyDisplay a summary of what was saved:
Session paused.
Position: Phase PHASE, plan PLAN_ID, task TASK_NUM of TOTAL
Stage: STAGE
Status: paused
Commit: [WIP_COMMIT_HASH]
Next: Run /dan:resume to continue from this point.
The confirmation must include the dan:resume instruction so the user knows how to pick up later. If there are recorded blockers or pending decisions, mention them as items that will be surfaced on resume.
</execution_flow>
data-ai
Core DAN workflow protocol and conventions injected into all agent contexts
testing
Spawn verifier agent to validate phase outputs against requirements and success criteria
tools
Close the loop on a completed plan by writing SUMMARY.md and updating state
tools
Show current project progress, blockers, and suggest the next action