Includes: CLAUDE.md, settings.json, agents, commands, rules, skills, hooks, contexts, evals, get-shit-done, plugin configs (installed list and marketplace sources). Excludes credentials, runtime caches, telemetry, session data, and plugin binary cache.
1.6 KiB
1.6 KiB
Phase Argument Parsing
Parse and normalize phase arguments for commands that operate on phases.
Extraction
From $ARGUMENTS:
- Extract phase number (first numeric argument)
- Extract flags (prefixed with
--) - Remaining text is description (for insert/add commands)
Using gsd-tools
The find-phase command handles normalization and validation in one step:
PHASE_INFO=$(node "C:/Users/yaoji/.claude/get-shit-done/bin/gsd-tools.cjs" find-phase "${PHASE}")
Returns JSON with:
found: true/falsedirectory: Full path to phase directoryphase_number: Normalized number (e.g., "06", "06.1")phase_name: Name portion (e.g., "foundation")plans: Array of PLAN.md filessummaries: Array of SUMMARY.md files
Manual Normalization (Legacy)
Zero-pad integer phases to 2 digits. Preserve decimal suffixes.
# Normalize phase number
if [[ "$PHASE" =~ ^[0-9]+$ ]]; then
# Integer: 8 → 08
PHASE=$(printf "%02d" "$PHASE")
elif [[ "$PHASE" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
# Decimal: 2.1 → 02.1
PHASE=$(printf "%02d.%s" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}")
fi
Validation
Use roadmap get-phase to validate phase exists:
PHASE_CHECK=$(node "C:/Users/yaoji/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "${PHASE}")
if [ "$(printf '%s\n' "$PHASE_CHECK" | jq -r '.found')" = "false" ]; then
echo "ERROR: Phase ${PHASE} not found in roadmap"
exit 1
fi
Directory Lookup
Use find-phase for directory lookup:
PHASE_DIR=$(node "C:/Users/yaoji/.claude/get-shit-done/bin/gsd-tools.cjs" find-phase "${PHASE}" --raw)