Files
msd-core/get-shit-done/references/decimal-phase-calculation.md
Lex Christopherson 4010e3ff0e fix: replace echo with printf in shell snippets to prevent jq parse errors
zsh's built-in echo interprets \n escape sequences in JSON strings,
converting properly-escaped \\n back into literal newlines. This breaks
jq parsing with "control characters U+0000 through U+001F must be escaped".
printf '%s\n' preserves the JSON verbatim.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 12:07:45 -06:00

1.4 KiB

Decimal Phase Calculation

Calculate the next decimal phase number for urgent insertions.

Using gsd-tools

# Get next decimal phase after phase 6
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" phase next-decimal 6

Output:

{
  "found": true,
  "base_phase": "06",
  "next": "06.1",
  "existing": []
}

With existing decimals:

{
  "found": true,
  "base_phase": "06",
  "next": "06.3",
  "existing": ["06.1", "06.2"]
}

Extract Values

DECIMAL_INFO=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" phase next-decimal "${AFTER_PHASE}")
DECIMAL_PHASE=$(printf '%s\n' "$DECIMAL_INFO" | jq -r '.next')
BASE_PHASE=$(printf '%s\n' "$DECIMAL_INFO" | jq -r '.base_phase')

Or with --raw flag:

DECIMAL_PHASE=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" phase next-decimal "${AFTER_PHASE}" --raw)
# Returns just: 06.1

Examples

Existing Phases Next Phase
06 only 06.1
06, 06.1 06.2
06, 06.1, 06.2 06.3
06, 06.1, 06.3 (gap) 06.4

Directory Naming

Decimal phase directories use the full decimal number:

SLUG=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" generate-slug "$DESCRIPTION" --raw)
PHASE_DIR=".planning/phases/${DECIMAL_PHASE}-${SLUG}"
mkdir -p "$PHASE_DIR"

Example: .planning/phases/06.1-fix-critical-auth-bug/