diff --git a/commands/gsd/new-project.md b/commands/gsd/new-project.md index 508b08dd9..339f50f96 100644 --- a/commands/gsd/new-project.md +++ b/commands/gsd/new-project.md @@ -9,6 +9,10 @@ allowed-tools: - Task - AskUserQuestion --- + +**Copilot (VS Code):** Use `vscode_askquestions` wherever this workflow calls `AskUserQuestion`. They are equivalent — `vscode_askquestions` is the VS Code Copilot implementation of the same interactive question API. + + **Flags:** - `--auto` — Automatic mode. After config questions, runs research → requirements → roadmap without further interaction. Expects idea document via @ reference. diff --git a/get-shit-done/bin/lib/init.cjs b/get-shit-done/bin/lib/init.cjs index 544413d25..989f3ef84 100644 --- a/get-shit-done/bin/lib/init.cjs +++ b/get-shit-done/bin/lib/init.cjs @@ -276,7 +276,7 @@ function cmdInitNewProject(cwd, raw) { '.ex', '.exs', // Elixir '.clj', // Clojure ]); - const skipDirs = new Set(['node_modules', '.git', '.planning', '.claude', '__pycache__', 'target', 'dist', 'build']); + const skipDirs = new Set(['node_modules', '.git', '.planning', '.claude', '.codex', '__pycache__', 'target', 'dist', 'build']); function findCodeFiles(dir, depth) { if (depth > 3) return false; let entries; diff --git a/get-shit-done/workflows/new-project.md b/get-shit-done/workflows/new-project.md index a5f50f8b9..d3861db9f 100644 --- a/get-shit-done/workflows/new-project.md +++ b/get-shit-done/workflows/new-project.md @@ -66,6 +66,29 @@ AGENT_SKILLS_ROADMAPPER=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" a 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`, `project_path`. +**Detect runtime and set instruction file name:** + +Derive `RUNTIME` from the invoking prompt's `execution_context` path: +- Path contains `/.codex/` → `RUNTIME=codex` +- Path contains `/.gemini/` → `RUNTIME=gemini` +- Path contains `/.config/opencode/` or `/.opencode/` → `RUNTIME=opencode` +- Otherwise → `RUNTIME=claude` + +If `execution_context` path is not available, fall back to env vars: +```bash +if [ -n "$CODEX_HOME" ]; then RUNTIME="codex" +elif [ -n "$GEMINI_CONFIG_DIR" ]; then RUNTIME="gemini" +elif [ -n "$OPENCODE_CONFIG_DIR" ] || [ -n "$OPENCODE_CONFIG" ]; then RUNTIME="opencode" +else RUNTIME="claude"; fi +``` + +Set the instruction file variable: +```bash +if [ "$RUNTIME" = "codex" ]; then INSTRUCTION_FILE="AGENTS.md"; else INSTRUCTION_FILE="CLAUDE.md"; fi +``` + +All subsequent references to the project instruction file use `$INSTRUCTION_FILE`. + **If `project_exists` is true:** Error — project already initialized. Use `/gsd:progress`. **If `has_git` is false:** Initialize git: @@ -1106,18 +1129,18 @@ Use AskUserQuestion: **If "Review full file":** Display raw `cat .planning/ROADMAP.md`, then re-ask. -**Generate or refresh project CLAUDE.md before final commit:** +**Generate or refresh project instruction file before final commit:** ```bash -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" generate-claude-md +node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" generate-claude-md --output "$INSTRUCTION_FILE" ``` -This ensures new projects get the default GSD workflow-enforcement guidance and current project context in `CLAUDE.md`. +This ensures new projects get the default GSD workflow-enforcement guidance and current project context in `$INSTRUCTION_FILE`. **Commit roadmap (after approval or auto mode):** ```bash -node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs: create roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md CLAUDE.md +node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs: create roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md "$INSTRUCTION_FILE" ``` ## 9. Done @@ -1138,7 +1161,7 @@ Present completion summary: | Research | `.planning/research/` | | Requirements | `.planning/REQUIREMENTS.md` | | Roadmap | `.planning/ROADMAP.md` | -| Project guide | `CLAUDE.md` | +| Project guide | `$INSTRUCTION_FILE` | **[N] phases** | **[X] requirements** | Ready to build ✓ ``` @@ -1220,7 +1243,7 @@ PHASE1_HAS_UI=$(echo "$PHASE1_SECTION" | grep -qi "UI hint.*yes" && echo "true" - `.planning/REQUIREMENTS.md` - `.planning/ROADMAP.md` - `.planning/STATE.md` -- `CLAUDE.md` +- `$INSTRUCTION_FILE` (`AGENTS.md` for Codex, `CLAUDE.md` for all other runtimes) @@ -1242,7 +1265,7 @@ PHASE1_HAS_UI=$(echo "$PHASE1_SECTION" | grep -qi "UI hint.*yes" && echo "true" - [ ] ROADMAP.md created with phases, requirement mappings, success criteria - [ ] STATE.md initialized - [ ] REQUIREMENTS.md traceability updated -- [ ] CLAUDE.md generated with GSD workflow guidance +- [ ] `$INSTRUCTION_FILE` generated with GSD workflow guidance (AGENTS.md for Codex, CLAUDE.md otherwise) - [ ] User knows next step is `/gsd:discuss-phase 1` **Atomic commits:** Each phase commits its artifacts immediately. If context is lost, artifacts persist.