diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d1b3f446..738a43d9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -132,12 +132,12 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ### Changed - **Architecture: Thin orchestrator pattern** — Commands now delegate to workflows, reducing command file size by ~75% and improving maintainability -- **Centralized utilities** — New `gsd-tools.js` (11 functions) replaces repetitive bash patterns across 50+ files +- **Centralized utilities** — New `gsd-tools.cjs` (11 functions) replaces repetitive bash patterns across 50+ files - **Token reduction** — ~22k characters removed from affected command/workflow/agent files - **Condensed agent prompts** — Same behavior with fewer words (executor, planner, verifier, researcher agents) ### Added -- `gsd-tools.js` CLI utility with functions: state load/update, resolve-model, find-phase, commit, verify-summary, generate-slug, current-timestamp, list-todos, verify-path-exists, config-ensure-section +- `gsd-tools.cjs` CLI utility with functions: state load/update, resolve-model, find-phase, commit, verify-summary, generate-slug, current-timestamp, list-todos, verify-path-exists, config-ensure-section ## [1.11.2] - 2026-02-05 diff --git a/agents/gsd-debugger.md b/agents/gsd-debugger.md index db354673b..4413c99eb 100644 --- a/agents/gsd-debugger.md +++ b/agents/gsd-debugger.md @@ -982,7 +982,7 @@ mv .planning/debug/{slug}.md .planning/debug/resolved/ **Check planning config using state load (commit_docs is available from the output):** ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js state load) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs state load) # commit_docs is in the JSON output ``` @@ -999,7 +999,7 @@ Root cause: {root_cause}" Then commit planning docs via CLI (respects `commit_docs` config automatically): ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: resolve debug {slug}" --files .planning/debug/resolved/{slug}.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: resolve debug {slug}" --files .planning/debug/resolved/{slug}.md ``` Report completion and offer next steps. diff --git a/agents/gsd-executor.md b/agents/gsd-executor.md index 86a0c7d58..93c988b34 100644 --- a/agents/gsd-executor.md +++ b/agents/gsd-executor.md @@ -19,7 +19,7 @@ Your job: Execute the plan completely, commit each task, create SUMMARY.md, upda Load execution context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init execute-phase "${PHASE}") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init execute-phase "${PHASE}") ``` Extract from init JSON: `executor_model`, `commit_docs`, `phase_dir`, `plans`, `incomplete_plans`. @@ -329,24 +329,24 @@ After SUMMARY.md, update STATE.md using gsd-tools: ```bash # Advance plan counter (handles edge cases automatically) -node ~/.claude/get-shit-done/bin/gsd-tools.js state advance-plan +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state advance-plan # Recalculate progress bar from disk state -node ~/.claude/get-shit-done/bin/gsd-tools.js state update-progress +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state update-progress # Record execution metrics -node ~/.claude/get-shit-done/bin/gsd-tools.js state record-metric \ +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state record-metric \ --phase "${PHASE}" --plan "${PLAN}" --duration "${DURATION}" \ --tasks "${TASK_COUNT}" --files "${FILE_COUNT}" # Add decisions (extract from SUMMARY.md key-decisions) for decision in "${DECISIONS[@]}"; do - node ~/.claude/get-shit-done/bin/gsd-tools.js state add-decision \ + node ~/.claude/get-shit-done/bin/gsd-tools.cjs state add-decision \ --phase "${PHASE}" --summary "${decision}" done # Update session info -node ~/.claude/get-shit-done/bin/gsd-tools.js state record-session \ +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state record-session \ --stopped-at "Completed ${PHASE}-${PLAN}-PLAN.md" ``` @@ -361,13 +361,13 @@ node ~/.claude/get-shit-done/bin/gsd-tools.js state record-session \ **For blockers found during execution:** ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js state add-blocker "Blocker description" +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state add-blocker "Blocker description" ``` ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md ``` Separate from per-task commits — captures execution results only. diff --git a/agents/gsd-phase-researcher.md b/agents/gsd-phase-researcher.md index f591cdd45..c6fd0f534 100644 --- a/agents/gsd-phase-researcher.md +++ b/agents/gsd-phase-researcher.md @@ -102,7 +102,7 @@ When researching "best library for X": find what the ecosystem actually uses, do Check `brave_search` from init context. If `true`, use Brave Search for higher quality results: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js websearch "your query" --limit 10 +node ~/.claude/get-shit-done/bin/gsd-tools.cjs websearch "your query" --limit 10 ``` **Options:** @@ -311,7 +311,7 @@ Orchestrator provides: phase number/name, description/goal, requirements, constr Load phase context using init command: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init phase-op "${PHASE}") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "${PHASE}") ``` Extract from init JSON: `phase_dir`, `padded_phase`, `phase_number`, `commit_docs`. @@ -384,7 +384,7 @@ Write to: `$PHASE_DIR/$PADDED_PHASE-RESEARCH.md` ## Step 6: Commit Research (optional) ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs($PHASE): research phase domain" --files "$PHASE_DIR/$PADDED_PHASE-RESEARCH.md" +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs($PHASE): research phase domain" --files "$PHASE_DIR/$PADDED_PHASE-RESEARCH.md" ``` ## Step 7: Return Structured Result diff --git a/agents/gsd-plan-checker.md b/agents/gsd-plan-checker.md index 54d24d2ab..c26a7bd56 100644 --- a/agents/gsd-plan-checker.md +++ b/agents/gsd-plan-checker.md @@ -299,7 +299,7 @@ issue: Load phase operation context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init phase-op "${PHASE_ARG}") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "${PHASE_ARG}") ``` Extract from init JSON: `phase_dir`, `phase_number`, `has_plans`, `plan_count`. @@ -308,7 +308,7 @@ Orchestrator provides CONTEXT.md content in the verification prompt. If provided ```bash ls "$phase_dir"/*-PLAN.md 2>/dev/null -node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap get-phase "$phase_number" +node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "$phase_number" ls "$phase_dir"/*-BRIEF.md 2>/dev/null ``` @@ -321,7 +321,7 @@ Use gsd-tools to validate plan structure: ```bash for plan in "$PHASE_DIR"/*-PLAN.md; do echo "=== $plan ===" - PLAN_STRUCTURE=$(node ~/.claude/get-shit-done/bin/gsd-tools.js verify plan-structure "$plan") + PLAN_STRUCTURE=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify plan-structure "$plan") echo "$PLAN_STRUCTURE" done ``` @@ -339,7 +339,7 @@ Map errors/warnings to verification dimensions: Extract must_haves from each plan using gsd-tools: ```bash -MUST_HAVES=$(node ~/.claude/get-shit-done/bin/gsd-tools.js frontmatter get "$PLAN_PATH" --field must_haves) +MUST_HAVES=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs frontmatter get "$PLAN_PATH" --field must_haves) ``` Returns JSON: `{ truths: [...], artifacts: [...], key_links: [...] }` @@ -382,7 +382,7 @@ For each requirement: find covering task(s), verify action is specific, flag gap Use gsd-tools plan-structure verification (already run in Step 2): ```bash -PLAN_STRUCTURE=$(node ~/.claude/get-shit-done/bin/gsd-tools.js verify plan-structure "$PLAN_PATH") +PLAN_STRUCTURE=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify plan-structure "$PLAN_PATH") ``` The `tasks` array in the result shows each task's completeness: diff --git a/agents/gsd-planner.md b/agents/gsd-planner.md index a2cd94ed8..f2d69aad4 100644 --- a/agents/gsd-planner.md +++ b/agents/gsd-planner.md @@ -794,7 +794,7 @@ Group by plan, dimension, severity. ### Step 6: Commit ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "fix($PHASE): revise plans based on checker feedback" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "fix($PHASE): revise plans based on checker feedback" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md ``` ### Step 7: Return Revision Summary @@ -833,7 +833,7 @@ node ~/.claude/get-shit-done/bin/gsd-tools.js commit "fix($PHASE): revise plans Load planning context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init plan-phase "${PHASE}") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init plan-phase "${PHASE}") ``` Extract from init JSON: `planner_model`, `researcher_model`, `checker_model`, `commit_docs`, `research_enabled`, `phase_dir`, `phase_number`, `has_research`, `has_context`. @@ -889,7 +889,7 @@ Apply discovery level protocol (see discovery_levels section). **Step 1 — Generate digest index:** ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js history-digest +node ~/.claude/get-shit-done/bin/gsd-tools.cjs history-digest ``` **Step 2 — Select relevant phases (typically 2-4):** @@ -1007,7 +1007,7 @@ Include all frontmatter fields. Validate each created PLAN.md using gsd-tools: ```bash -VALID=$(node ~/.claude/get-shit-done/bin/gsd-tools.js frontmatter validate "$PLAN_PATH" --schema plan) +VALID=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs frontmatter validate "$PLAN_PATH" --schema plan) ``` Returns JSON: `{ valid, missing, present, schema }` @@ -1020,7 +1020,7 @@ Required plan frontmatter fields: Also validate plan structure: ```bash -STRUCTURE=$(node ~/.claude/get-shit-done/bin/gsd-tools.js verify plan-structure "$PLAN_PATH") +STRUCTURE=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify plan-structure "$PLAN_PATH") ``` Returns JSON: `{ valid, errors, warnings, task_count, tasks }` @@ -1057,7 +1057,7 @@ Plans: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs($PHASE): create phase plan" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md .planning/ROADMAP.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs($PHASE): create phase plan" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md .planning/ROADMAP.md ``` diff --git a/agents/gsd-project-researcher.md b/agents/gsd-project-researcher.md index c872e00aa..e4b9f46ed 100644 --- a/agents/gsd-project-researcher.md +++ b/agents/gsd-project-researcher.md @@ -96,7 +96,7 @@ Always include current year. Use multiple query variations. Mark WebSearch-only Check `brave_search` from orchestrator context. If `true`, use Brave Search for higher quality results: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js websearch "your query" --limit 10 +node ~/.claude/get-shit-done/bin/gsd-tools.cjs websearch "your query" --limit 10 ``` **Options:** diff --git a/agents/gsd-research-synthesizer.md b/agents/gsd-research-synthesizer.md index bd6fd5440..87c48b280 100644 --- a/agents/gsd-research-synthesizer.md +++ b/agents/gsd-research-synthesizer.md @@ -49,7 +49,7 @@ cat .planning/research/FEATURES.md cat .planning/research/ARCHITECTURE.md cat .planning/research/PITFALLS.md -# Planning config loaded via gsd-tools.js in commit step +# Planning config loaded via gsd-tools.cjs in commit step ``` Parse each file to extract: @@ -128,7 +128,7 @@ Write to `.planning/research/SUMMARY.md` The 4 parallel researcher agents write files but do NOT commit. You commit everything together. ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: complete project research" --files .planning/research/ +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: complete project research" --files .planning/research/ ``` ## Step 8: Return Summary diff --git a/agents/gsd-verifier.md b/agents/gsd-verifier.md index d0b81b665..825dba3d1 100644 --- a/agents/gsd-verifier.md +++ b/agents/gsd-verifier.md @@ -54,7 +54,7 @@ Set `is_re_verification = false`, proceed with Step 1. ```bash ls "$PHASE_DIR"/*-PLAN.md 2>/dev/null ls "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null -node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap get-phase "$PHASE_NUM" +node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "$PHASE_NUM" grep -E "^| $PHASE_NUM" .planning/REQUIREMENTS.md 2>/dev/null ``` @@ -91,7 +91,7 @@ must_haves: If no must_haves in frontmatter, check for Success Criteria: ```bash -PHASE_DATA=$(node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap get-phase "$PHASE_NUM" --raw) +PHASE_DATA=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "$PHASE_NUM" --raw) ``` Parse the `success_criteria` array from the JSON output. If non-empty: @@ -134,7 +134,7 @@ For each truth: Use gsd-tools for artifact verification against must_haves in PLAN frontmatter: ```bash -ARTIFACT_RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js verify artifacts "$PLAN_PATH") +ARTIFACT_RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify artifacts "$PLAN_PATH") ``` Parse JSON result: `{ all_passed, passed, total, artifacts: [{path, exists, issues, passed}] }` @@ -183,7 +183,7 @@ Key links are critical connections. If broken, the goal fails even with all arti Use gsd-tools for key link verification against must_haves in PLAN frontmatter: ```bash -LINKS_RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js verify key-links "$PLAN_PATH") +LINKS_RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify key-links "$PLAN_PATH") ``` Parse JSON result: `{ all_verified, verified, total, links: [{from, to, via, verified, detail}] }` @@ -251,12 +251,12 @@ Identify files modified in this phase from SUMMARY.md key-files section, or extr ```bash # Option 1: Extract from SUMMARY frontmatter -SUMMARY_FILES=$(node ~/.claude/get-shit-done/bin/gsd-tools.js summary-extract "$PHASE_DIR"/*-SUMMARY.md --fields key-files) +SUMMARY_FILES=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs summary-extract "$PHASE_DIR"/*-SUMMARY.md --fields key-files) # Option 2: Verify commits exist (if commit hashes documented) COMMIT_HASHES=$(grep -oE "[a-f0-9]{7,40}" "$PHASE_DIR"/*-SUMMARY.md | head -10) if [ -n "$COMMIT_HASHES" ]; then - COMMITS_VALID=$(node ~/.claude/get-shit-done/bin/gsd-tools.js verify commits $COMMIT_HASHES) + COMMITS_VALID=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify commits $COMMIT_HASHES) fi # Fallback: grep for files diff --git a/commands/gsd/debug.md b/commands/gsd/debug.md index 23dfa11e9..d0014bb76 100644 --- a/commands/gsd/debug.md +++ b/commands/gsd/debug.md @@ -31,12 +31,12 @@ ls .planning/debug/*.md 2>/dev/null | grep -v resolved | head -5 ## 0. Initialize Context ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js state load) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs state load) ``` Extract `commit_docs` from init JSON. Resolve debugger model: ```bash -DEBUGGER_MODEL=$(node ~/.claude/get-shit-done/bin/gsd-tools.js resolve-model gsd-debugger --raw) +DEBUGGER_MODEL=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs resolve-model gsd-debugger --raw) ``` ## 1. Check Active Sessions diff --git a/commands/gsd/research-phase.md b/commands/gsd/research-phase.md index 79971ecdf..b589cf317 100644 --- a/commands/gsd/research-phase.md +++ b/commands/gsd/research-phase.md @@ -34,20 +34,20 @@ Normalize phase input in step 1 before any directory lookups. ## 0. Initialize Context ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init phase-op "$ARGUMENTS") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "$ARGUMENTS") ``` Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`, `phase_found`, `commit_docs`, `has_research`. Resolve researcher model: ```bash -RESEARCHER_MODEL=$(node ~/.claude/get-shit-done/bin/gsd-tools.js resolve-model gsd-phase-researcher --raw) +RESEARCHER_MODEL=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs resolve-model gsd-phase-researcher --raw) ``` ## 1. Validate Phase ```bash -PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap get-phase "${phase_number}") +PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${phase_number}") ``` **If `found` is false:** Error and exit. **If `found` is true:** Extract `phase_number`, `phase_name`, `goal` from JSON. diff --git a/get-shit-done/bin/gsd-tools.js b/get-shit-done/bin/gsd-tools.cjs similarity index 99% rename from get-shit-done/bin/gsd-tools.js rename to get-shit-done/bin/gsd-tools.cjs index 18e17251b..08e893779 100755 --- a/get-shit-done/bin/gsd-tools.js +++ b/get-shit-done/bin/gsd-tools.cjs @@ -6,7 +6,7 @@ * Replaces repetitive inline bash patterns across ~50 GSD command/workflow/agent files. * Centralizes: config parsing, model resolution, phase lookup, git commits, summary verification. * - * Usage: node gsd-tools.js [args] [--raw] + * Usage: node gsd-tools.cjs [args] [--raw] * * Atomic Commands: * state load Load project config + state diff --git a/get-shit-done/bin/gsd-tools.test.js b/get-shit-done/bin/gsd-tools.test.cjs similarity index 99% rename from get-shit-done/bin/gsd-tools.test.js rename to get-shit-done/bin/gsd-tools.test.cjs index ebac13d1f..8e9cf5624 100644 --- a/get-shit-done/bin/gsd-tools.test.js +++ b/get-shit-done/bin/gsd-tools.test.cjs @@ -8,7 +8,7 @@ const fs = require('fs'); const path = require('path'); const { execSync } = require('child_process'); -const TOOLS_PATH = path.join(__dirname, 'gsd-tools.js'); +const TOOLS_PATH = path.join(__dirname, 'gsd-tools.cjs'); // Helper to run gsd-tools command function runGsdTools(args, cwd = process.cwd()) { diff --git a/get-shit-done/references/decimal-phase-calculation.md b/get-shit-done/references/decimal-phase-calculation.md index 3bc95fcfa..8597d7e30 100644 --- a/get-shit-done/references/decimal-phase-calculation.md +++ b/get-shit-done/references/decimal-phase-calculation.md @@ -6,7 +6,7 @@ Calculate the next decimal phase number for urgent insertions. ```bash # Get next decimal phase after phase 6 -node ~/.claude/get-shit-done/bin/gsd-tools.js phase next-decimal 6 +node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase next-decimal 6 ``` Output: @@ -32,14 +32,14 @@ With existing decimals: ## Extract Values ```bash -DECIMAL_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phase next-decimal "${AFTER_PHASE}") +DECIMAL_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase next-decimal "${AFTER_PHASE}") DECIMAL_PHASE=$(echo "$DECIMAL_INFO" | jq -r '.next') BASE_PHASE=$(echo "$DECIMAL_INFO" | jq -r '.base_phase') ``` Or with --raw flag: ```bash -DECIMAL_PHASE=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phase next-decimal "${AFTER_PHASE}" --raw) +DECIMAL_PHASE=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase next-decimal "${AFTER_PHASE}" --raw) # Returns just: 06.1 ``` @@ -57,7 +57,7 @@ DECIMAL_PHASE=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phase next-decimal Decimal phase directories use the full decimal number: ```bash -SLUG=$(node ~/.claude/get-shit-done/bin/gsd-tools.js generate-slug "$DESCRIPTION" --raw) +SLUG=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs generate-slug "$DESCRIPTION" --raw) PHASE_DIR=".planning/phases/${DECIMAL_PHASE}-${SLUG}" mkdir -p "$PHASE_DIR" ``` diff --git a/get-shit-done/references/git-integration.md b/get-shit-done/references/git-integration.md index 44e2164ee..df086b9c1 100644 --- a/get-shit-done/references/git-integration.md +++ b/get-shit-done/references/git-integration.md @@ -51,7 +51,7 @@ Phases: What to commit: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: initialize [project-name] ([N] phases)" --files .planning/ +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: initialize [project-name] ([N] phases)" --files .planning/ ``` @@ -129,7 +129,7 @@ SUMMARY: .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md What to commit: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-PLAN.md .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-PLAN.md .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md ``` **Note:** Code files NOT included - already committed per-task. @@ -149,7 +149,7 @@ Current: [task name] What to commit: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/ +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/ ``` diff --git a/get-shit-done/references/git-planning-commit.md b/get-shit-done/references/git-planning-commit.md index 11c19e3b2..aad427440 100644 --- a/get-shit-done/references/git-planning-commit.md +++ b/get-shit-done/references/git-planning-commit.md @@ -4,10 +4,10 @@ Commit planning artifacts using the gsd-tools CLI, which automatically checks `c ## Commit via CLI -Always use `gsd-tools.js commit` for `.planning/` files — it handles `commit_docs` and gitignore checks automatically: +Always use `gsd-tools.cjs commit` for `.planning/` files — it handles `commit_docs` and gitignore checks automatically: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs({scope}): {description}" --files .planning/STATE.md .planning/ROADMAP.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs({scope}): {description}" --files .planning/STATE.md .planning/ROADMAP.md ``` The CLI will return `skipped` (with reason) if `commit_docs` is `false` or `.planning/` is gitignored. No manual conditional checks needed. @@ -17,7 +17,7 @@ The CLI will return `skipped` (with reason) if `commit_docs` is `false` or `.pla To fold `.planning/` file changes into the previous commit: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "" --files .planning/codebase/*.md --amend +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "" --files .planning/codebase/*.md --amend ``` ## Commit Message Patterns diff --git a/get-shit-done/references/phase-argument-parsing.md b/get-shit-done/references/phase-argument-parsing.md index b615dc28f..85f90651b 100644 --- a/get-shit-done/references/phase-argument-parsing.md +++ b/get-shit-done/references/phase-argument-parsing.md @@ -14,7 +14,7 @@ From `$ARGUMENTS`: The `find-phase` command handles normalization and validation in one step: ```bash -PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.js find-phase "${PHASE}") +PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs find-phase "${PHASE}") ``` Returns JSON with: @@ -45,7 +45,7 @@ fi Use `roadmap get-phase` to validate phase exists: ```bash -PHASE_CHECK=$(node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap get-phase "${PHASE}") +PHASE_CHECK=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}") if [ "$(echo "$PHASE_CHECK" | jq -r '.found')" = "false" ]; then echo "ERROR: Phase ${PHASE} not found in roadmap" exit 1 @@ -57,5 +57,5 @@ fi Use `find-phase` for directory lookup: ```bash -PHASE_DIR=$(node ~/.claude/get-shit-done/bin/gsd-tools.js find-phase "${PHASE}" --raw) +PHASE_DIR=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs find-phase "${PHASE}" --raw) ``` diff --git a/get-shit-done/references/planning-config.md b/get-shit-done/references/planning-config.md index a7f09b26d..867ac0c2c 100644 --- a/get-shit-done/references/planning-config.md +++ b/get-shit-done/references/planning-config.md @@ -36,18 +36,18 @@ Configuration options for `.planning/` directory behavior. - User must add `.planning/` to `.gitignore` - Useful for: OSS contributions, client projects, keeping planning private -**Using gsd-tools.js (preferred):** +**Using gsd-tools.cjs (preferred):** ```bash # Commit with automatic commit_docs + gitignore checks: -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: update state" --files .planning/STATE.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: update state" --files .planning/STATE.md # Load config via state load (returns JSON): -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js state load) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs state load) # commit_docs is available in the JSON output # Or use init commands which include commit_docs: -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init execute-phase "1") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init execute-phase "1") # commit_docs is included in all init command outputs ``` @@ -56,7 +56,7 @@ INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init execute-phase "1") **Commit via CLI (handles checks automatically):** ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: update state" --files .planning/STATE.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: update state" --files .planning/STATE.md ``` The CLI checks `commit_docs` config and gitignore status internally — no manual conditionals needed. @@ -142,13 +142,13 @@ To use uncommitted mode: Use `init execute-phase` which returns all config as JSON: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init execute-phase "1") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init execute-phase "1") # JSON output includes: branching_strategy, phase_branch_template, milestone_branch_template ``` Or use `state load` for the config values: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js state load) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs state load) # Parse branching_strategy, phase_branch_template, milestone_branch_template from JSON ``` diff --git a/get-shit-done/workflows/add-phase.md b/get-shit-done/workflows/add-phase.md index 6d04e76d0..c64727b2e 100644 --- a/get-shit-done/workflows/add-phase.md +++ b/get-shit-done/workflows/add-phase.md @@ -29,7 +29,7 @@ Exit. Load phase operation context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init phase-op "0") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "0") ``` Check `roadmap_exists` from init JSON. If false: @@ -44,7 +44,7 @@ Exit. **Delegate the phase addition to gsd-tools:** ```bash -RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phase add "${description}") +RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase add "${description}") ``` The CLI handles: diff --git a/get-shit-done/workflows/add-todo.md b/get-shit-done/workflows/add-todo.md index 39c3737fd..e8834a21f 100644 --- a/get-shit-done/workflows/add-todo.md +++ b/get-shit-done/workflows/add-todo.md @@ -12,7 +12,7 @@ Read all files referenced by the invoking prompt's execution_context before star Load todo context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init todos) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init todos) ``` Extract from init JSON: `commit_docs`, `date`, `timestamp`, `todo_count`, `todos`, `pending_dir`, `todos_dir_exists`. @@ -83,7 +83,7 @@ Use values from init context: `timestamp` and `date` are already available. Generate slug for the title: ```bash -slug=$(node ~/.claude/get-shit-done/bin/gsd-tools.js generate-slug "$title" --raw) +slug=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs generate-slug "$title" --raw) ``` Write to `.planning/todos/pending/${date}-${slug}.md`: @@ -118,7 +118,7 @@ If `.planning/STATE.md` exists: Commit the todo and any updated state: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md ``` Tool respects `commit_docs` config and gitignore automatically. diff --git a/get-shit-done/workflows/audit-milestone.md b/get-shit-done/workflows/audit-milestone.md index 53dda8149..e10c23fa1 100644 --- a/get-shit-done/workflows/audit-milestone.md +++ b/get-shit-done/workflows/audit-milestone.md @@ -11,21 +11,21 @@ Read all files referenced by the invoking prompt's execution_context before star ## 0. Initialize Milestone Context ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init milestone-op) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init milestone-op) ``` Extract from init JSON: `milestone_version`, `milestone_name`, `phase_count`, `completed_phases`, `commit_docs`. Resolve integration checker model: ```bash -CHECKER_MODEL=$(node ~/.claude/get-shit-done/bin/gsd-tools.js resolve-model gsd-integration-checker --raw) +CHECKER_MODEL=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs resolve-model gsd-integration-checker --raw) ``` ## 1. Determine Milestone Scope ```bash # Get phases in milestone (sorted numerically, handles decimals) -node ~/.claude/get-shit-done/bin/gsd-tools.js phases list +node ~/.claude/get-shit-done/bin/gsd-tools.cjs phases list ``` - Parse version from arguments or detect current from ROADMAP.md diff --git a/get-shit-done/workflows/check-todos.md b/get-shit-done/workflows/check-todos.md index e16d1bed5..ce6d3eee4 100644 --- a/get-shit-done/workflows/check-todos.md +++ b/get-shit-done/workflows/check-todos.md @@ -12,7 +12,7 @@ Read all files referenced by the invoking prompt's execution_context before star Load todo context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init todos) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init todos) ``` Extract from init JSON: `todo_count`, `todos`, `pending_dir`. @@ -154,7 +154,7 @@ If todo was moved to done/, commit the change: ```bash git rm --cached .planning/todos/pending/[filename] 2>/dev/null || true -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: start work on todo - [title]" --files .planning/todos/done/[filename] .planning/STATE.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: start work on todo - [title]" --files .planning/todos/done/[filename] .planning/STATE.md ``` Tool respects `commit_docs` config and gitignore automatically. diff --git a/get-shit-done/workflows/complete-milestone.md b/get-shit-done/workflows/complete-milestone.md index b91e41cc0..4abfd64f0 100644 --- a/get-shit-done/workflows/complete-milestone.md +++ b/get-shit-done/workflows/complete-milestone.md @@ -40,7 +40,7 @@ When a milestone completes: **Use `roadmap analyze` for comprehensive readiness check:** ```bash -ROADMAP=$(node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap analyze) +ROADMAP=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap analyze) ``` This returns all phases with plan/summary counts and disk status. Use this to verify: @@ -131,7 +131,7 @@ Extract one-liners from SUMMARY.md files using summary-extract: ```bash # For each phase in milestone, extract one-liner for summary in .planning/phases/*-*/*-SUMMARY.md; do - node ~/.claude/get-shit-done/bin/gsd-tools.js summary-extract "$summary" --fields one_liner | jq -r '.one_liner' + node ~/.claude/get-shit-done/bin/gsd-tools.cjs summary-extract "$summary" --fields one_liner | jq -r '.one_liner' done ``` @@ -344,7 +344,7 @@ Update `.planning/ROADMAP.md` — group completed milestone phases: **Delegate archival to gsd-tools:** ```bash -ARCHIVE=$(node ~/.claude/get-shit-done/bin/gsd-tools.js milestone complete "v[X.Y]" --name "[Milestone Name]") +ARCHIVE=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs milestone complete "v[X.Y]" --name "[Milestone Name]") ``` The CLI handles: @@ -432,7 +432,7 @@ Check branching strategy and offer merge options. Use `init milestone-op` for context, or load config directly: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init execute-phase "1") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init execute-phase "1") ``` Extract `branching_strategy`, `phase_branch_template`, `milestone_branch_template` from init JSON. @@ -562,7 +562,7 @@ git push origin v[X.Y] Commit milestone completion. ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "chore: complete v[X.Y] milestone" --files .planning/milestones/v[X.Y]-ROADMAP.md .planning/milestones/v[X.Y]-REQUIREMENTS.md .planning/milestones/v[X.Y]-MILESTONE-AUDIT.md .planning/MILESTONES.md .planning/PROJECT.md .planning/STATE.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "chore: complete v[X.Y] milestone" --files .planning/milestones/v[X.Y]-ROADMAP.md .planning/milestones/v[X.Y]-REQUIREMENTS.md .planning/milestones/v[X.Y]-MILESTONE-AUDIT.md .planning/MILESTONES.md .planning/PROJECT.md .planning/STATE.md ``` ``` diff --git a/get-shit-done/workflows/diagnose-issues.md b/get-shit-done/workflows/diagnose-issues.md index 7b5b866f8..b30245865 100644 --- a/get-shit-done/workflows/diagnose-issues.md +++ b/get-shit-done/workflows/diagnose-issues.md @@ -158,7 +158,7 @@ Update status in frontmatter to "diagnosed". Commit the updated UAT.md: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs({phase_num}): add root causes from diagnosis" --files ".planning/phases/XX-name/{phase_num}-UAT.md" +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs({phase_num}): add root causes from diagnosis" --files ".planning/phases/XX-name/{phase_num}-UAT.md" ``` diff --git a/get-shit-done/workflows/discuss-phase.md b/get-shit-done/workflows/discuss-phase.md index 178c25471..4104f9aca 100644 --- a/get-shit-done/workflows/discuss-phase.md +++ b/get-shit-done/workflows/discuss-phase.md @@ -111,7 +111,7 @@ Phase: "API documentation" Phase number from argument (required). ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init phase-op "${PHASE}") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "${PHASE}") ``` Parse JSON for: `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `has_verification`, `plan_count`, `roadmap_exists`, `planning_exists`. @@ -389,7 +389,7 @@ Created: .planning/phases/${PADDED_PHASE}-${SLUG}/${PADDED_PHASE}-CONTEXT.md Commit phase context (uses `commit_docs` from init internally): ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs(${padded_phase}): capture phase context" --files "${phase_dir}/${padded_phase}-CONTEXT.md" +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(${padded_phase}): capture phase context" --files "${phase_dir}/${padded_phase}-CONTEXT.md" ``` Confirm: "Committed: docs(${padded_phase}): capture phase context" @@ -399,7 +399,7 @@ Confirm: "Committed: docs(${padded_phase}): capture phase context" Update STATE.md with session info: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js state record-session \ +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state record-session \ --stopped-at "Phase ${PHASE} context gathered" \ --resume-file "${phase_dir}/${padded_phase}-CONTEXT.md" ``` @@ -407,7 +407,7 @@ node ~/.claude/get-shit-done/bin/gsd-tools.js state record-session \ Commit STATE.md: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs(state): record phase ${PHASE} context session" --files .planning/STATE.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(state): record phase ${PHASE} context session" --files .planning/STATE.md ``` @@ -417,7 +417,7 @@ Check for auto-advance trigger: 1. Parse `--auto` flag from $ARGUMENTS 2. Read `workflow.auto_advance` from config: ```bash - AUTO_CFG=$(node ~/.claude/get-shit-done/bin/gsd-tools.js config get workflow.auto_advance 2>/dev/null || echo "false") + AUTO_CFG=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs config get workflow.auto_advance 2>/dev/null || echo "false") ``` **If `--auto` flag present OR `AUTO_CFG` is true:** diff --git a/get-shit-done/workflows/execute-phase.md b/get-shit-done/workflows/execute-phase.md index 5c1d25443..6a5390a7c 100644 --- a/get-shit-done/workflows/execute-phase.md +++ b/get-shit-done/workflows/execute-phase.md @@ -16,7 +16,7 @@ Read STATE.md before any operation to load project context. Load all context in one call: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init execute-phase "${PHASE_ARG}") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init execute-phase "${PHASE_ARG}") ``` Parse JSON for: `executor_model`, `verifier_model`, `commit_docs`, `parallelization`, `branching_strategy`, `branch_name`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `plans`, `incomplete_plans`, `plan_count`, `incomplete_count`, `state_exists`, `roadmap_exists`. @@ -51,7 +51,7 @@ Report: "Found {plan_count} plans in {phase_dir} ({incomplete_count} incomplete) Load plan inventory with wave grouping in one call: ```bash -PLAN_INDEX=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phase-plan-index "${PHASE_NUMBER}") +PLAN_INDEX=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase-plan-index "${PHASE_NUMBER}") ``` Parse JSON for: `phase`, `plans[]` (each with `id`, `wave`, `autonomous`, `objective`, `files_modified`, `task_count`, `has_summary`), `waves` (map of wave number → plan IDs), `incomplete`, `has_checkpoints`. @@ -271,7 +271,7 @@ mv .planning/debug/{slug}.md .planning/debug/resolved/ **6. Commit updated artifacts:** ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs(phase-${PARENT_PHASE}): resolve UAT gaps and debug sessions after ${PHASE_NUMBER} gap closure" --files .planning/phases/*${PARENT_PHASE}*/*-UAT.md .planning/debug/resolved/*.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(phase-${PARENT_PHASE}): resolve UAT gaps and debug sessions after ${PHASE_NUMBER} gap closure" --files .planning/phases/*${PARENT_PHASE}*/*-UAT.md .planning/debug/resolved/*.md ``` @@ -339,7 +339,7 @@ Gap closure cycle: `/gsd:plan-phase {X} --gaps` reads VERIFICATION.md → create **Mark phase complete and update all tracking files:** ```bash -COMPLETION=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phase complete "${PHASE_NUMBER}") +COMPLETION=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase complete "${PHASE_NUMBER}") ``` The CLI handles: @@ -352,7 +352,7 @@ The CLI handles: Extract from result: `next_phase`, `next_phase_name`, `is_last_phase`. ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs(phase-{X}): complete phase execution" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md .planning/phases/{phase_dir}/*-VERIFICATION.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(phase-{X}): complete phase execution" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md .planning/phases/{phase_dir}/*-VERIFICATION.md ``` diff --git a/get-shit-done/workflows/execute-plan.md b/get-shit-done/workflows/execute-plan.md index 7cac857d7..7a489adbd 100644 --- a/get-shit-done/workflows/execute-plan.md +++ b/get-shit-done/workflows/execute-plan.md @@ -15,7 +15,7 @@ Read config.json for planning behavior settings. Load execution context (uses `init execute-phase` for full context, including file contents): ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init execute-phase "${PHASE}" --include state,config) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init execute-phase "${PHASE}" --include state,config) ``` Extract from init JSON: `executor_model`, `commit_docs`, `phase_dir`, `phase_number`, `plans`, `summaries`, `incomplete_plans`. @@ -337,13 +337,13 @@ Update STATE.md using gsd-tools: ```bash # Advance plan counter (handles last-plan edge case) -node ~/.claude/get-shit-done/bin/gsd-tools.js state advance-plan +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state advance-plan # Recalculate progress bar from disk state -node ~/.claude/get-shit-done/bin/gsd-tools.js state update-progress +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state update-progress # Record execution metrics -node ~/.claude/get-shit-done/bin/gsd-tools.js state record-metric \ +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state record-metric \ --phase "${PHASE}" --plan "${PLAN}" --duration "${DURATION}" \ --tasks "${TASK_COUNT}" --files "${FILE_COUNT}" ``` @@ -354,11 +354,11 @@ From SUMMARY: Extract decisions and add to STATE.md: ```bash # Add each decision from SUMMARY key-decisions -node ~/.claude/get-shit-done/bin/gsd-tools.js state add-decision \ +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state add-decision \ --phase "${PHASE}" --summary "${DECISION_TEXT}" --rationale "${RATIONALE}" # Add blockers if any found -node ~/.claude/get-shit-done/bin/gsd-tools.js state add-blocker "Blocker description" +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state add-blocker "Blocker description" ``` @@ -366,7 +366,7 @@ node ~/.claude/get-shit-done/bin/gsd-tools.js state add-blocker "Blocker descrip Update session info using gsd-tools: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js state record-session \ +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state record-session \ --stopped-at "Completed ${PHASE}-${PLAN}-PLAN.md" \ --resume-file "None" ``` @@ -380,7 +380,7 @@ If SUMMARY "Issues Encountered" ≠ "None": yolo → log and continue. Interacti ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap update-plan-progress "${PHASE}" +node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap update-plan-progress "${PHASE}" ``` Counts PLAN vs SUMMARY files on disk. Updates progress table row with correct count and status (`In Progress` or `Complete` with date). @@ -389,7 +389,7 @@ Counts PLAN vs SUMMARY files on disk. Updates progress table row with correct co Task code already committed per-task. Commit plan metadata: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md ``` @@ -404,7 +404,7 @@ git diff --name-only ${FIRST_TASK}^..HEAD 2>/dev/null Update only structural changes: new src/ dir → STRUCTURE.md | deps → STACK.md | file pattern → CONVENTIONS.md | API client → INTEGRATIONS.md | config → STACK.md | renamed → update paths. Skip code-only/bugfix/content changes. ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "" --files .planning/codebase/*.md --amend +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "" --files .planning/codebase/*.md --amend ``` diff --git a/get-shit-done/workflows/insert-phase.md b/get-shit-done/workflows/insert-phase.md index 51964a021..9d411b537 100644 --- a/get-shit-done/workflows/insert-phase.md +++ b/get-shit-done/workflows/insert-phase.md @@ -34,7 +34,7 @@ Validate first argument is an integer. Load phase operation context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init phase-op "${after_phase}") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "${after_phase}") ``` Check `roadmap_exists` from init JSON. If false: @@ -48,7 +48,7 @@ Exit. **Delegate the phase insertion to gsd-tools:** ```bash -RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phase insert "${after_phase}" "${description}") +RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase insert "${after_phase}" "${description}") ``` The CLI handles: diff --git a/get-shit-done/workflows/map-codebase.md b/get-shit-done/workflows/map-codebase.md index 3de427249..eda2b00c0 100644 --- a/get-shit-done/workflows/map-codebase.md +++ b/get-shit-done/workflows/map-codebase.md @@ -26,7 +26,7 @@ Documents are reference material for Claude when planning/executing. Always incl Load codebase mapping context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init map-codebase) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init map-codebase) ``` Extract from init JSON: `mapper_model`, `commit_docs`, `codebase_dir`, `existing_maps`, `has_maps`, `codebase_dir_exists`. @@ -262,7 +262,7 @@ Continue to commit_codebase_map. Commit the codebase map: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: map existing codebase" --files .planning/codebase/*.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: map existing codebase" --files .planning/codebase/*.md ``` Continue to offer_next. diff --git a/get-shit-done/workflows/new-milestone.md b/get-shit-done/workflows/new-milestone.md index 688c43258..e8324b865 100644 --- a/get-shit-done/workflows/new-milestone.md +++ b/get-shit-done/workflows/new-milestone.md @@ -71,13 +71,13 @@ Keep Accumulated Context section from previous milestone. Delete MILESTONE-CONTEXT.md if exists (consumed). ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: start milestone v[X.Y] [Name]" --files .planning/PROJECT.md .planning/STATE.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: start milestone v[X.Y] [Name]" --files .planning/PROJECT.md .planning/STATE.md ``` ## 7. Load Context and Resolve Models ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init new-milestone) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init new-milestone) ``` Extract from init JSON: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `commit_docs`, `research_enabled`, `current_milestone`, `project_exists`, `roadmap_exists`. @@ -92,10 +92,10 @@ AskUserQuestion: "Research the domain ecosystem for new features before defining ```bash # If "Research first": persist true -node ~/.claude/get-shit-done/bin/gsd-tools.js config-set workflow.research true +node ~/.claude/get-shit-done/bin/gsd-tools.cjs config-set workflow.research true # If "Skip research": persist false -node ~/.claude/get-shit-done/bin/gsd-tools.js config-set workflow.research false +node ~/.claude/get-shit-done/bin/gsd-tools.cjs config-set workflow.research false ``` **If "Research first":** @@ -246,7 +246,7 @@ If "adjust": Return to scoping. **Commit requirements:** ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: define milestone v[X.Y] requirements" --files .planning/REQUIREMENTS.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: define milestone v[X.Y] requirements" --files .planning/REQUIREMENTS.md ``` ## 10. Create Roadmap @@ -321,7 +321,7 @@ Success criteria: **Commit roadmap** (after approval): ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: create milestone v[X.Y] roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: create milestone v[X.Y] roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md ``` ## 11. Done diff --git a/get-shit-done/workflows/new-project.md b/get-shit-done/workflows/new-project.md index b07e5f0be..868fb7358 100644 --- a/get-shit-done/workflows/new-project.md +++ b/get-shit-done/workflows/new-project.md @@ -40,7 +40,7 @@ The document should describe what you want to build. **MANDATORY FIRST STEP — Execute these checks before ANY user interaction:** ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init new-project) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init new-project) ``` Parse JSON for: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `commit_docs`, `project_exists`, `has_codebase_map`, `planning_exists`, `has_existing_code`, `has_package_file`, `is_brownfield`, `needs_codebase_map`, `has_git`. @@ -212,7 +212,7 @@ Do not compress. Capture everything gathered. ```bash mkdir -p .planning -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: initialize project" --files .planning/PROJECT.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: initialize project" --files .planning/PROJECT.md ``` ## 5. Workflow Preferences @@ -342,7 +342,7 @@ Create `.planning/config.json` with all settings: **Commit config.json:** ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "chore: add project config" --files .planning/config.json +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "chore: add project config" --files .planning/config.json ``` **Note:** Run `/gsd:settings` anytime to update these preferences. @@ -740,7 +740,7 @@ If "adjust": Return to scoping. **Commit requirements:** ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: define v1 requirements" --files .planning/REQUIREMENTS.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: define v1 requirements" --files .planning/REQUIREMENTS.md ``` ## 8. Create Roadmap @@ -873,7 +873,7 @@ Use AskUserQuestion: **Commit roadmap (after approval or auto mode):** ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs: create roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: create roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md ``` ## 9. Done diff --git a/get-shit-done/workflows/pause-work.md b/get-shit-done/workflows/pause-work.md index e78280815..dde5b1a76 100644 --- a/get-shit-done/workflows/pause-work.md +++ b/get-shit-done/workflows/pause-work.md @@ -86,13 +86,13 @@ 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: ```bash -timestamp=$(node ~/.claude/get-shit-done/bin/gsd-tools.js current-timestamp full --raw) +timestamp=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs current-timestamp full --raw) ``` ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/phases/*/.continue-here.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/phases/*/.continue-here.md ``` diff --git a/get-shit-done/workflows/plan-milestone-gaps.md b/get-shit-done/workflows/plan-milestone-gaps.md index f6876e7a8..d1d3a0a1c 100644 --- a/get-shit-done/workflows/plan-milestone-gaps.md +++ b/get-shit-done/workflows/plan-milestone-gaps.md @@ -65,7 +65,7 @@ Gap: Flow "View dashboard" broken at data fetch Find highest existing phase: ```bash # Get sorted phase list, extract last one -PHASES=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phases list) +PHASES=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phases list) HIGHEST=$(echo "$PHASES" | jq -r '.directories[-1]') ``` @@ -132,7 +132,7 @@ mkdir -p ".planning/phases/{NN}-{name}" ## 8. Commit Roadmap Update ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs(roadmap): add gap closure phases {N}-{M}" --files .planning/ROADMAP.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(roadmap): add gap closure phases {N}-{M}" --files .planning/ROADMAP.md ``` ## 9. Offer Next Steps diff --git a/get-shit-done/workflows/plan-phase.md b/get-shit-done/workflows/plan-phase.md index 2bedfc20d..987ced402 100644 --- a/get-shit-done/workflows/plan-phase.md +++ b/get-shit-done/workflows/plan-phase.md @@ -15,7 +15,7 @@ Read all files referenced by the invoking prompt's execution_context before star Load all context in one call (include file contents to avoid redundant reads): ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init plan-phase "$PHASE" --include state,roadmap,requirements,context,research,verification,uat) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init plan-phase "$PHASE" --include state,roadmap,requirements,context,research,verification,uat) ``` Parse JSON for: `researcher_model`, `planner_model`, `checker_model`, `research_enabled`, `plan_checker_enabled`, `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `has_research`, `has_context`, `has_plans`, `plan_count`, `planning_exists`, `roadmap_exists`. @@ -40,7 +40,7 @@ mkdir -p ".planning/phases/${padded_phase}-${phase_slug}" ## 3. Validate Phase ```bash -PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap get-phase "${PHASE}") +PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}") ``` **If `found` is false:** Error with available phases. **If `found` is true:** Extract `phase_number`, `phase_name`, `goal` from JSON. @@ -73,10 +73,10 @@ Display banner: ### Spawn gsd-phase-researcher ```bash -PHASE_DESC=$(node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap get-phase "${PHASE}" | jq -r '.section') +PHASE_DESC=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}" | jq -r '.section') # Use requirements_content from INIT (already loaded via --include requirements) REQUIREMENTS=$(echo "$INIT" | jq -r '.requirements_content // empty' | grep -A100 "## Requirements" | head -50) -STATE_SNAP=$(node ~/.claude/get-shit-done/bin/gsd-tools.js state-snapshot) +STATE_SNAP=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs state-snapshot) # Extract decisions from state-snapshot JSON: jq '.decisions[] | "\(.phase): \(.summary) - \(.rationale)"' ``` @@ -328,7 +328,7 @@ Check for auto-advance trigger: 1. Parse `--auto` flag from $ARGUMENTS 2. Read `workflow.auto_advance` from config: ```bash - AUTO_CFG=$(node ~/.claude/get-shit-done/bin/gsd-tools.js config get workflow.auto_advance 2>/dev/null || echo "false") + AUTO_CFG=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs config get workflow.auto_advance 2>/dev/null || echo "false") ``` **If `--auto` flag present OR `AUTO_CFG` is true:** diff --git a/get-shit-done/workflows/progress.md b/get-shit-done/workflows/progress.md index c37281a04..8c70ebf42 100644 --- a/get-shit-done/workflows/progress.md +++ b/get-shit-done/workflows/progress.md @@ -12,7 +12,7 @@ Read all files referenced by the invoking prompt's execution_context before star **Load progress context (with file contents to avoid redundant reads):** ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init progress --include state,roadmap,project,config) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init progress --include state,roadmap,project,config) ``` Extract from init JSON: `project_exists`, `roadmap_exists`, `state_exists`, `phases`, `current_phase`, `next_phase`, `milestone_version`, `completed_count`, `phase_count`, `paused_at`. @@ -54,7 +54,7 @@ No additional file reads needed. **Get comprehensive roadmap analysis (replaces manual parsing):** ```bash -ROADMAP=$(node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap analyze) +ROADMAP=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap analyze) ``` This returns structured JSON with: @@ -73,7 +73,7 @@ Use this instead of manually reading/parsing ROADMAP.md. - Find the 2-3 most recent SUMMARY.md files - Use `summary-extract` for efficient parsing: ```bash - node ~/.claude/get-shit-done/bin/gsd-tools.js summary-extract --fields one_liner + node ~/.claude/get-shit-done/bin/gsd-tools.cjs summary-extract --fields one_liner ``` - This shows "what we've been working on" @@ -93,7 +93,7 @@ Use this instead of manually reading/parsing ROADMAP.md. ```bash # Get formatted progress bar -PROGRESS_BAR=$(node ~/.claude/get-shit-done/bin/gsd-tools.js progress bar --raw) +PROGRESS_BAR=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs progress bar --raw) ``` Present: diff --git a/get-shit-done/workflows/quick.md b/get-shit-done/workflows/quick.md index 14c859ae3..bb463cd15 100644 --- a/get-shit-done/workflows/quick.md +++ b/get-shit-done/workflows/quick.md @@ -28,7 +28,7 @@ If empty, re-prompt: "Please provide a task description." **Step 2: Initialize** ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init quick "$DESCRIPTION") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init quick "$DESCRIPTION") ``` Parse JSON for: `planner_model`, `executor_model`, `commit_docs`, `next_num`, `slug`, `date`, `timestamp`, `quick_dir`, `task_dir`, `roadmap_exists`, `planning_exists`. @@ -191,7 +191,7 @@ Use Edit tool to make these changes atomically Stage and commit quick task artifacts: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "docs(quick-${next_num}): ${DESCRIPTION}" --files ${QUICK_DIR}/${next_num}-PLAN.md ${QUICK_DIR}/${next_num}-SUMMARY.md .planning/STATE.md +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs(quick-${next_num}): ${DESCRIPTION}" --files ${QUICK_DIR}/${next_num}-PLAN.md ${QUICK_DIR}/${next_num}-SUMMARY.md .planning/STATE.md ``` Get final commit hash: diff --git a/get-shit-done/workflows/remove-phase.md b/get-shit-done/workflows/remove-phase.md index 1fab5231a..0b15f9cfd 100644 --- a/get-shit-done/workflows/remove-phase.md +++ b/get-shit-done/workflows/remove-phase.md @@ -29,7 +29,7 @@ Exit. Load phase operation context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init phase-op "${target}") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "${target}") ``` Extract: `phase_found`, `phase_dir`, `phase_number`, `commit_docs`, `roadmap_exists`. @@ -79,13 +79,13 @@ Wait for confirmation. **Delegate the entire removal operation to gsd-tools:** ```bash -RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phase remove "${target}") +RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase remove "${target}") ``` If the phase has executed plans (SUMMARY.md files), gsd-tools will error. Use `--force` only if the user confirms: ```bash -RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phase remove "${target}" --force) +RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase remove "${target}" --force) ``` The CLI handles: @@ -102,7 +102,7 @@ Extract from result: `removed`, `directory_deleted`, `renamed_directories`, `ren Stage and commit the removal: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "chore: remove phase {target} ({original-phase-name})" --files .planning/ +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "chore: remove phase {target} ({original-phase-name})" --files .planning/ ``` The commit message preserves the historical record of what was removed. diff --git a/get-shit-done/workflows/research-phase.md b/get-shit-done/workflows/research-phase.md index 003f26c32..771b0e44d 100644 --- a/get-shit-done/workflows/research-phase.md +++ b/get-shit-done/workflows/research-phase.md @@ -18,7 +18,7 @@ Resolve model for: @~/.claude/get-shit-done/references/phase-argument-parsing.md ```bash -PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap get-phase "${PHASE}") +PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${PHASE}") ``` If `found` is false: Error and exit. @@ -39,7 +39,7 @@ echo "$PHASE_INFO" | jq -r '.section' cat .planning/REQUIREMENTS.md 2>/dev/null cat .planning/phases/${PHASE}-*/*-CONTEXT.md 2>/dev/null # Decisions from state-snapshot (structured JSON) -node ~/.claude/get-shit-done/bin/gsd-tools.js state-snapshot | jq '.decisions' +node ~/.claude/get-shit-done/bin/gsd-tools.cjs state-snapshot | jq '.decisions' ``` ## Step 4: Spawn Researcher diff --git a/get-shit-done/workflows/resume-project.md b/get-shit-done/workflows/resume-project.md index 7d19e72fe..b3de0fc39 100644 --- a/get-shit-done/workflows/resume-project.md +++ b/get-shit-done/workflows/resume-project.md @@ -20,7 +20,7 @@ Instantly restore full project context so "Where were we?" has an immediate, com Load all context in one call: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init resume) +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init resume) ``` Parse JSON for: `state_exists`, `roadmap_exists`, `project_exists`, `planning_exists`, `has_interrupted_agent`, `interrupted_agent_id`, `commit_docs`. diff --git a/get-shit-done/workflows/set-profile.md b/get-shit-done/workflows/set-profile.md index 463044d23..a0457075c 100644 --- a/get-shit-done/workflows/set-profile.md +++ b/get-shit-done/workflows/set-profile.md @@ -23,8 +23,8 @@ if $ARGUMENTS.profile not in ["quality", "balanced", "budget"]: Ensure config exists and load current state: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js config-ensure-section -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js state load) +node ~/.claude/get-shit-done/bin/gsd-tools.cjs config-ensure-section +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs state load) ``` This creates `.planning/config.json` with defaults if missing and loads current config. @@ -51,7 +51,7 @@ Display confirmation with model table for selected profile: Agents will now use: -[Show table from MODEL_PROFILES in gsd-tools.js for selected profile] +[Show table from MODEL_PROFILES in gsd-tools.cjs for selected profile] Example: | Agent | Model | diff --git a/get-shit-done/workflows/settings.md b/get-shit-done/workflows/settings.md index 2758cb589..179bbb6a6 100644 --- a/get-shit-done/workflows/settings.md +++ b/get-shit-done/workflows/settings.md @@ -12,8 +12,8 @@ Read all files referenced by the invoking prompt's execution_context before star Ensure config exists and load current state: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js config-ensure-section -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js state load) +node ~/.claude/get-shit-done/bin/gsd-tools.cjs config-ensure-section +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs state load) ``` Creates `.planning/config.json` with defaults if missing and loads current config values. diff --git a/get-shit-done/workflows/transition.md b/get-shit-done/workflows/transition.md index eec8132a7..9d7b6a205 100644 --- a/get-shit-done/workflows/transition.md +++ b/get-shit-done/workflows/transition.md @@ -123,7 +123,7 @@ If found, delete them — phase is complete, handoffs are stale. **Delegate ROADMAP.md and STATE.md updates to gsd-tools:** ```bash -TRANSITION=$(node ~/.claude/get-shit-done/bin/gsd-tools.js phase complete "${current_phase}") +TRANSITION=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs phase complete "${current_phase}") ``` The CLI handles: @@ -238,7 +238,7 @@ After (Phase 2 shipped JWT auth, discovered rate limiting needed): Verify the updates are correct by reading STATE.md. If the progress bar needs updating, use: ```bash -PROGRESS=$(node ~/.claude/get-shit-done/bin/gsd-tools.js progress bar --raw) +PROGRESS=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs progress bar --raw) ``` Update the progress bar line in STATE.md with the result. @@ -347,7 +347,7 @@ The `next_phase` and `next_phase_name` fields give you the next phase details. If you need additional context, use: ```bash -ROADMAP=$(node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap analyze) +ROADMAP=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap analyze) ``` This returns all phases with goals, disk status, and completion info. diff --git a/get-shit-done/workflows/verify-phase.md b/get-shit-done/workflows/verify-phase.md index 59a018b3b..dc126500c 100644 --- a/get-shit-done/workflows/verify-phase.md +++ b/get-shit-done/workflows/verify-phase.md @@ -28,14 +28,14 @@ Then verify each level against the actual codebase. Load phase operation context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init phase-op "${PHASE_ARG}") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "${PHASE_ARG}") ``` Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`, `has_plans`, `plan_count`. Then load phase details and list plans/summaries: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap get-phase "${phase_number}" +node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${phase_number}" grep -E "^| ${phase_number}" .planning/REQUIREMENTS.md 2>/dev/null ls "$phase_dir"/*-SUMMARY.md "$phase_dir"/*-PLAN.md 2>/dev/null ``` @@ -50,7 +50,7 @@ Use gsd-tools to extract must_haves from each PLAN: ```bash for plan in "$PHASE_DIR"/*-PLAN.md; do - MUST_HAVES=$(node ~/.claude/get-shit-done/bin/gsd-tools.js frontmatter get "$plan" --field must_haves) + MUST_HAVES=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs frontmatter get "$plan" --field must_haves) echo "=== $plan ===" && echo "$MUST_HAVES" done ``` @@ -64,7 +64,7 @@ Aggregate all must_haves across plans for phase-level verification. If no must_haves in frontmatter (MUST_HAVES returns error or empty), check for Success Criteria: ```bash -PHASE_DATA=$(node ~/.claude/get-shit-done/bin/gsd-tools.js roadmap get-phase "${phase_number}" --raw) +PHASE_DATA=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${phase_number}" --raw) ``` Parse the `success_criteria` array from the JSON output. If non-empty: @@ -100,7 +100,7 @@ Use gsd-tools for artifact verification against must_haves in each PLAN: ```bash for plan in "$PHASE_DIR"/*-PLAN.md; do - ARTIFACT_RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js verify artifacts "$plan") + ARTIFACT_RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify artifacts "$plan") echo "=== $plan ===" && echo "$ARTIFACT_RESULT" done ``` @@ -132,7 +132,7 @@ Use gsd-tools for key link verification against must_haves in each PLAN: ```bash for plan in "$PHASE_DIR"/*-PLAN.md; do - LINKS_RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js verify key-links "$plan") + LINKS_RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify key-links "$plan") echo "=== $plan ===" && echo "$LINKS_RESULT" done ``` diff --git a/get-shit-done/workflows/verify-work.md b/get-shit-done/workflows/verify-work.md index 8db33d739..b9beb7130 100644 --- a/get-shit-done/workflows/verify-work.md +++ b/get-shit-done/workflows/verify-work.md @@ -24,7 +24,7 @@ No Pass/Fail buttons. No severity questions. Just: "Here's what should happen. D If $ARGUMENTS contains a phase number, load context: ```bash -INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.js init verify-work "${PHASE_ARG}") +INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init verify-work "${PHASE_ARG}") ``` Parse JSON for: `planner_model`, `checker_model`, `commit_docs`, `phase_found`, `phase_dir`, `phase_number`, `phase_name`, `has_verification`. @@ -292,7 +292,7 @@ Clear Current Test section: Commit the UAT file: ```bash -node ~/.claude/get-shit-done/bin/gsd-tools.js commit "test({phase_num}): complete UAT - {passed} passed, {issues} issues" --files ".planning/phases/XX-name/{phase_num}-UAT.md" +node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "test({phase_num}): complete UAT - {passed} passed, {issues} issues" --files ".planning/phases/XX-name/{phase_num}-UAT.md" ``` Present summary: