diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b90568cf63..4be4840538 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -81,7 +81,7 @@ jobs: cat > release_notes.md << EOF Template release ${{ steps.get_tag.outputs.new_version }} - Updated specification-driven development templates for GitHub Copilot, Claude Code, Gemini CLI, Cursor, Qwen, and opencode. + Updated specification-driven development templates for GitHub Copilot, Claude Code, Gemini CLI, Cursor, Qwen, opencode, and Auggie CLI. Now includes per-script variants for POSIX shell (sh) and PowerShell (ps). @@ -98,6 +98,8 @@ jobs: - spec-kit-template-opencode-ps-${{ steps.get_tag.outputs.new_version }}.zip - spec-kit-template-qwen-sh-${{ steps.get_tag.outputs.new_version }}.zip - spec-kit-template-qwen-ps-${{ steps.get_tag.outputs.new_version }}.zip + - spec-kit-template-auggie-sh-${{ steps.get_tag.outputs.new_version }}.zip + - spec-kit-template-auggie-ps-${{ steps.get_tag.outputs.new_version }}.zip EOF echo "Generated release notes:" @@ -122,6 +124,8 @@ jobs: spec-kit-template-opencode-ps-${{ steps.get_tag.outputs.new_version }}.zip \ spec-kit-template-qwen-sh-${{ steps.get_tag.outputs.new_version }}.zip \ spec-kit-template-qwen-ps-${{ steps.get_tag.outputs.new_version }}.zip \ + spec-kit-template-auggie-sh-${{ steps.get_tag.outputs.new_version }}.zip \ + spec-kit-template-auggie-ps-${{ steps.get_tag.outputs.new_version }}.zip \ --title "Spec Kit Templates - $VERSION_NO_V" \ --notes-file release_notes.md env: diff --git a/.github/workflows/scripts/create-release-packages.sh b/.github/workflows/scripts/create-release-packages.sh index 96fab0e4ed..61a728e179 100644 --- a/.github/workflows/scripts/create-release-packages.sh +++ b/.github/workflows/scripts/create-release-packages.sh @@ -6,7 +6,7 @@ set -euo pipefail # Usage: .github/workflows/scripts/create-release-packages.sh # Version argument should include leading 'v'. # Optionally set AGENTS and/or SCRIPTS env vars to limit what gets built. -# AGENTS : space or comma separated subset of: claude gemini copilot qwen opencode (default: all) +# AGENTS : space or comma separated subset of: claude gemini copilot qwen opencode auggie (default: all) # SCRIPTS : space or comma separated subset of: sh ps (default: both) # Examples: # AGENTS=claude SCRIPTS=sh $0 v0.2.0 @@ -150,13 +150,16 @@ build_variant() { opencode) mkdir -p "$base_dir/.opencode/command" generate_commands opencode md "\$ARGUMENTS" "$base_dir/.opencode/command" "$script" ;; + auggie) + mkdir -p "$base_dir/.augment/commands" + generate_commands auggie md "\$ARGUMENTS" "$base_dir/.augment/commands" "$script" ;; esac ( cd "$base_dir" && zip -r "../spec-kit-template-${agent}-${script}-${NEW_VERSION}.zip" . ) echo "Created spec-kit-template-${agent}-${script}-${NEW_VERSION}.zip" } # Determine agent list -ALL_AGENTS=(claude gemini copilot cursor qwen opencode) +ALL_AGENTS=(claude gemini copilot cursor qwen opencode auggie) ALL_SCRIPTS=(sh ps) norm_list() { diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c763a3709..acd4c61d71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.0.7] - 2025-09-18 + +### Added + +- Auggie CLI support as additional AI assistant option + ## [0.0.6] - 2025-09-17 ### Added @@ -32,4 +38,3 @@ N/A ### Changed N/A - diff --git a/README.md b/README.md index 3c654407fb..df7e92eaf8 100644 --- a/README.md +++ b/README.md @@ -81,14 +81,14 @@ The `specify` command supports the following options: | Command | Description | |-------------|----------------------------------------------------------------| | `init` | Initialize a new Specify project from the latest template | -| `check` | Check for installed tools (`git`, `claude`, `gemini`, `code`/`code-insiders`, `opencode`, `cursor-agent`) | +| `check` | Check for installed tools (`git`, `claude`, `gemini`, `code`/`code-insiders`, `opencode`, `cursor-agent`, `auggie`) | ### `specify init` Arguments & Options | Argument/Option | Type | Description | |------------------------|----------|------------------------------------------------------------------------------| | `` | Argument | Name for your new project directory (optional if using `--here`) | -| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `opencode`, or `cursor` | +| `--ai` | Option | AI assistant to use: `claude`, `gemini`, `copilot`, `opencode`, `cursor`, or `auggie` | | `--script` | Option | Script variant to use: `sh` (bash/zsh) or `ps` (PowerShell) | | `--ignore-agent-tools` | Flag | Skip checks for AI agent tools like Claude Code | | `--no-git` | Flag | Skip git repository initialization | @@ -170,7 +170,7 @@ Our research and experimentation focus on: ## 🔧 Prerequisites - **Linux/macOS** (or WSL2 on Windows) -- AI coding agent: [Claude Code](https://www.anthropic.com/claude-code), [GitHub Copilot](https://code.visualstudio.com/), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Cursor](https://cursor.sh/), [Qwen CLI](https://github.com/QwenLM/qwen-code) or [opencode](https://opencode.ai/) +- AI coding agent: [Claude Code](https://www.anthropic.com/claude-code), [GitHub Copilot](https://code.visualstudio.com/), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Cursor](https://cursor.sh/), [Qwen CLI](https://github.com/QwenLM/qwen-code), [opencode](https://opencode.ai/), or [Auggie CLI](https://www.augmentcode.com/product/CLI) - [uv](https://docs.astral.sh/uv/) for package management - [Python 3.11+](https://www.python.org/downloads/) - [Git](https://git-scm.com/downloads) @@ -209,11 +209,12 @@ specify init --ai gemini specify init --ai copilot specify init --ai qwen specify init --ai opencode +specify init --ai auggie # Or in current directory: specify init --here --ai claude ``` -The CLI will check if you have Claude Code, Gemini CLI, Qwen CLI or opencode installed. If you do not, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command: +The CLI will check if you have Claude Code, Gemini CLI, Qwen CLI, opencode, or Auggie CLI installed. If you do not, or you prefer to get the templates without checking for the right tools, use `--ignore-agent-tools` with your command: ```bash specify init --ai claude --ignore-agent-tools @@ -227,6 +228,8 @@ Go to the project folder and run your AI agent. In our example, we're using `cla You will know that things are configured correctly if you see the `/specify`, `/plan`, and `/tasks` commands available. +**For Auggie CLI users:** Use commands like `auggie /specify`, `auggie /plan`, and `auggie /tasks` from the terminal. Commands are available in the `.augment/commands/` directory. + The first step should be creating a new project scaffolding. Use `/specify` command and then provide the concrete requirements for the project you want to develop. >[!IMPORTANT] diff --git a/docs/installation.md b/docs/installation.md index 7cf9a6ae97..6904b664f7 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -3,7 +3,7 @@ ## Prerequisites - **Linux/macOS** (or Windows; PowerShell scripts now supported without WSL) -- AI coding agent: [Claude Code](https://www.anthropic.com/claude-code), [GitHub Copilot](https://code.visualstudio.com/), or [Gemini CLI](https://github.com/google-gemini/gemini-cli) +- AI coding agent: [Claude Code](https://www.anthropic.com/claude-code), [GitHub Copilot](https://code.visualstudio.com/), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or [Auggie CLI](https://www.augmentcode.com/product/CLI) - [uv](https://docs.astral.sh/uv/) for package management - [Python 3.11+](https://www.python.org/downloads/) - [Git](https://git-scm.com/downloads) @@ -32,6 +32,7 @@ You can proactively specify your AI agent during initialization: uvx --from git+https://github.com/github/spec-kit.git specify init --ai claude uvx --from git+https://github.com/github/spec-kit.git specify init --ai gemini uvx --from git+https://github.com/github/spec-kit.git specify init --ai copilot +uvx --from git+https://github.com/github/spec-kit.git specify init --ai auggie ``` ### Specify Script Type (Shell vs PowerShell) diff --git a/pyproject.toml b/pyproject.toml index 3daa03d20a..79718810a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "specify-cli" -version = "0.0.6" +version = "0.0.7" description = "Setup tool for Specify spec-driven development projects" requires-python = ">=3.11" dependencies = [ diff --git a/scripts/bash/update-agent-context.sh b/scripts/bash/update-agent-context.sh index 249a061499..8834f5d87e 100644 --- a/scripts/bash/update-agent-context.sh +++ b/scripts/bash/update-agent-context.sh @@ -4,7 +4,7 @@ REPO_ROOT=$(git rev-parse --show-toplevel) CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) FEATURE_DIR="$REPO_ROOT/specs/$CURRENT_BRANCH" NEW_PLAN="$FEATURE_DIR/plan.md" -CLAUDE_FILE="$REPO_ROOT/CLAUDE.md"; GEMINI_FILE="$REPO_ROOT/GEMINI.md"; COPILOT_FILE="$REPO_ROOT/.github/copilot-instructions.md"; CURSOR_FILE="$REPO_ROOT/.cursor/rules/specify-rules.mdc"; QWEN_FILE="$REPO_ROOT/QWEN.md"; AGENTS_FILE="$REPO_ROOT/AGENTS.md" +CLAUDE_FILE="$REPO_ROOT/CLAUDE.md"; GEMINI_FILE="$REPO_ROOT/GEMINI.md"; COPILOT_FILE="$REPO_ROOT/.github/copilot-instructions.md"; CURSOR_FILE="$REPO_ROOT/.cursor/rules/specify-rules.mdc"; QWEN_FILE="$REPO_ROOT/QWEN.md"; AGENTS_FILE="$REPO_ROOT/AGENTS.md"; AUGGIE_FILE="$REPO_ROOT/.augment/rules/specify-rules.md" AGENT_TYPE="$1" [ -f "$NEW_PLAN" ] || { echo "ERROR: No plan.md found at $NEW_PLAN"; exit 1; } echo "=== Updating agent context files for feature $CURRENT_BRANCH ===" @@ -54,13 +54,15 @@ case "$AGENT_TYPE" in cursor) update_agent_file "$CURSOR_FILE" "Cursor IDE" ;; qwen) update_agent_file "$QWEN_FILE" "Qwen Code" ;; opencode) update_agent_file "$AGENTS_FILE" "opencode" ;; + auggie) update_agent_file "$AUGGIE_FILE" "Auggie CLI" ;; "") [ -f "$CLAUDE_FILE" ] && update_agent_file "$CLAUDE_FILE" "Claude Code"; \ [ -f "$GEMINI_FILE" ] && update_agent_file "$GEMINI_FILE" "Gemini CLI"; \ [ -f "$COPILOT_FILE" ] && update_agent_file "$COPILOT_FILE" "GitHub Copilot"; \ [ -f "$CURSOR_FILE" ] && update_agent_file "$CURSOR_FILE" "Cursor IDE"; \ [ -f "$QWEN_FILE" ] && update_agent_file "$QWEN_FILE" "Qwen Code"; \ [ -f "$AGENTS_FILE" ] && update_agent_file "$AGENTS_FILE" "opencode"; \ - if [ ! -f "$CLAUDE_FILE" ] && [ ! -f "$GEMINI_FILE" ] && [ ! -f "$COPILOT_FILE" ] && [ ! -f "$CURSOR_FILE" ] && [ ! -f "$QWEN_FILE" ] && [ ! -f "$AGENTS_FILE" ]; then update_agent_file "$CLAUDE_FILE" "Claude Code"; fi ;; - *) echo "ERROR: Unknown agent type '$AGENT_TYPE' (expected claude|gemini|copilot|cursor|qwen|opencode)"; exit 1 ;; + [ -f "$AUGGIE_FILE" ] && update_agent_file "$AUGGIE_FILE" "Auggie CLI"; \ + if [ ! -f "$CLAUDE_FILE" ] && [ ! -f "$GEMINI_FILE" ] && [ ! -f "$COPILOT_FILE" ] && [ ! -f "$CURSOR_FILE" ] && [ ! -f "$QWEN_FILE" ] && [ ! -f "$AGENTS_FILE" ] && [ ! -f "$AUGGIE_FILE" ]; then update_agent_file "$CLAUDE_FILE" "Claude Code"; fi ;; + *) echo "ERROR: Unknown agent type '$AGENT_TYPE' (expected claude|gemini|copilot|cursor|qwen|opencode|auggie)"; exit 1 ;; esac -echo; echo "Summary of changes:"; [ -n "$NEW_LANG" ] && echo "- Added language: $NEW_LANG"; [ -n "$NEW_FRAMEWORK" ] && echo "- Added framework: $NEW_FRAMEWORK"; [ -n "$NEW_DB" ] && [ "$NEW_DB" != "N/A" ] && echo "- Added database: $NEW_DB"; echo; echo "Usage: $0 [claude|gemini|copilot|cursor|qwen|opencode]" +echo; echo "Summary of changes:"; [ -n "$NEW_LANG" ] && echo "- Added language: $NEW_LANG"; [ -n "$NEW_FRAMEWORK" ] && echo "- Added framework: $NEW_FRAMEWORK"; [ -n "$NEW_DB" ] && [ "$NEW_DB" != "N/A" ] && echo "- Added database: $NEW_DB"; echo; echo "Usage: $0 [claude|gemini|copilot|cursor|qwen|opencode|auggie]" diff --git a/scripts/powershell/update-agent-context.ps1 b/scripts/powershell/update-agent-context.ps1 index e9f3455086..08fbb72f21 100644 --- a/scripts/powershell/update-agent-context.ps1 +++ b/scripts/powershell/update-agent-context.ps1 @@ -15,6 +15,7 @@ $copilotFile = Join-Path $repoRoot '.github/copilot-instructions.md' $cursorFile = Join-Path $repoRoot '.cursor/rules/specify-rules.mdc' $qwenFile = Join-Path $repoRoot 'QWEN.md' $agentsFile = Join-Path $repoRoot 'AGENTS.md' +$auggieFile = Join-Path $repoRoot '.augment/rules/specify-rules.md' Write-Output "=== Updating agent context files for feature $currentBranch ===" @@ -75,6 +76,7 @@ switch ($AgentType) { 'cursor' { Update-AgentFile $cursorFile 'Cursor IDE' } 'qwen' { Update-AgentFile $qwenFile 'Qwen Code' } 'opencode' { Update-AgentFile $agentsFile 'opencode' } + 'auggie' { Update-AgentFile $auggieFile 'Auggie CLI' } '' { foreach ($pair in @( @{file=$claudeFile; name='Claude Code'}, @@ -82,16 +84,18 @@ switch ($AgentType) { @{file=$copilotFile; name='GitHub Copilot'}, @{file=$cursorFile; name='Cursor IDE'}, @{file=$qwenFile; name='Qwen Code'}, - @{file=$agentsFile; name='opencode'} + @{file=$agentsFile; name='opencode'}, + @{file=$auggieFile; name='Auggie CLI'} )) { if (Test-Path $pair.file) { Update-AgentFile $pair.file $pair.name } } - if (-not (Test-Path $claudeFile) -and -not (Test-Path $geminiFile) -and -not (Test-Path $copilotFile) -and -not (Test-Path $cursorFile) -and -not (Test-Path $qwenFile) -and -not (Test-Path $agentsFile)) { + + if (-not (Test-Path $claudeFile) -and -not (Test-Path $geminiFile) -and -not (Test-Path $copilotFile) -and -not (Test-Path $cursorFile) -and -not (Test-Path $qwenFile) -and -not (Test-Path $agentsFile) -and -not (Test-Path $auggieFile)) { Write-Output 'No agent context files found. Creating Claude Code context file by default.' Update-AgentFile $claudeFile 'Claude Code' } } - Default { Write-Error "ERROR: Unknown agent type '$AgentType'. Use: claude, gemini, copilot, cursor, qwen, opencode or leave empty for all."; exit 1 } + Default { Write-Error "ERROR: Unknown agent type '$AgentType'. Use: claude, gemini, copilot, cursor, qwen, opencode, auggie or leave empty for all."; exit 1 } } Write-Output '' @@ -101,4 +105,4 @@ if ($newFramework) { Write-Output "- Added framework: $newFramework" } if ($newDb -and $newDb -ne 'N/A') { Write-Output "- Added database: $newDb" } Write-Output '' -Write-Output 'Usage: ./update-agent-context.ps1 [claude|gemini|copilot|cursor|qwen|opencode]' +Write-Output 'Usage: ./update-agent-context.ps1 [claude|gemini|copilot|cursor|qwen|opencode|auggie]' diff --git a/src/specify_cli/__init__.py b/src/specify_cli/__init__.py index 5d5fdd41d0..9c8170ad36 100644 --- a/src/specify_cli/__init__.py +++ b/src/specify_cli/__init__.py @@ -59,7 +59,8 @@ "gemini": "Gemini CLI", "cursor": "Cursor", "qwen": "Qwen Code", - "opencode": "opencode" + "opencode": "opencode", + "auggie": "Auggie CLI" } # Add script type choices SCRIPT_TYPE_CHOICES = {"sh": "POSIX Shell (bash/zsh)", "ps": "PowerShell"} @@ -355,7 +356,7 @@ def check_tool_for_tracker(tool: str, install_hint: str, tracker: StepTracker) - def check_tool(tool: str, install_hint: str) -> bool: """Check if a tool is installed.""" - + # Special handling for Claude CLI after `claude migrate-installer` # See: https://github.com/github/spec-kit/issues/123 # The migrate-installer command REMOVES the original executable from PATH @@ -364,7 +365,7 @@ def check_tool(tool: str, install_hint: str) -> bool: if tool == "claude": if CLAUDE_LOCAL_PATH.exists() and CLAUDE_LOCAL_PATH.is_file(): return True - + if shutil.which(tool): return True else: @@ -409,7 +410,7 @@ def init_git_repo(project_path: Path, quiet: bool = False) -> bool: if not quiet: console.print("[green]✓[/green] Git repository initialized") return True - + except subprocess.CalledProcessError as e: if not quiet: console.print(f"[red]Error initializing git repository:[/red] {e}") @@ -423,7 +424,7 @@ def download_template_from_github(ai_assistant: str, download_dir: Path, *, scri repo_name = "spec-kit" if client is None: client = httpx.Client(verify=ssl_context) - + if verbose: console.print("[cyan]Fetching latest release information...[/cyan]") api_url = f"https://api.github.com/repos/{repo_owner}/{repo_name}/releases/latest" @@ -451,7 +452,7 @@ def download_template_from_github(ai_assistant: str, download_dir: Path, *, scri asset for asset in release_data.get("assets", []) if pattern in asset["name"] and asset["name"].endswith(".zip") ] - + if not matching_assets: console.print(f"[red]No matching release asset found[/red] for pattern: [bold]{pattern}[/bold]") asset_names = [a.get('name','?') for a in release_data.get('assets', [])] @@ -724,7 +725,7 @@ def ensure_executable_scripts(project_path: Path, tracker: StepTracker | None = @app.command() def init( project_name: str = typer.Argument(None, help="Name for your new project directory (optional if using --here)"), - ai_assistant: str = typer.Option(None, "--ai", help="AI assistant to use: claude, gemini, copilot, cursor, qwen or opencode"), + ai_assistant: str = typer.Option(None, "--ai", help="AI assistant to use: claude, gemini, copilot, cursor, qwen, opencode, or auggie"), script_type: str = typer.Option(None, "--script", help="Script type to use: sh or ps"), ignore_agent_tools: bool = typer.Option(False, "--ignore-agent-tools", help="Skip checks for AI agent tools like Claude Code"), no_git: bool = typer.Option(False, "--no-git", help="Skip git repository initialization"), @@ -737,12 +738,12 @@ def init( This command will: 1. Check that required tools are installed (git is optional) - 2. Let you choose your AI assistant (Claude Code, Gemini CLI, GitHub Copilot, Cursor, Qwen Code or opencode) + 2. Let you choose your AI assistant (Claude Code, Gemini CLI, GitHub Copilot, Cursor, Qwen Code, opencode, or Auggie CLI) 3. Download the appropriate template from GitHub 4. Extract the template to a new project directory or current directory 5. Initialize a fresh git repository (if not --no-git and no existing repo) 6. Optionally set up AI assistant commands - + Examples: specify init my-project specify init my-project --ai claude @@ -751,6 +752,7 @@ def init( specify init my-project --ai cursor specify init my-project --ai qwen specify init my-project --ai opencode + specify init my-project --ai auggie specify init --ignore-agent-tools my-project specify init --here --ai claude specify init --here @@ -838,6 +840,10 @@ def init( if not check_tool("opencode", "Install from: https://opencode.ai"): console.print("[red]Error:[/red] opencode CLI is required for opencode projects") agent_tool_missing = True + elif selected_ai == "auggie": + if not check_tool("auggie", "Install from: https://www.augmentcode.com/product/CLI"): + console.print("[red]Error:[/red] Auggie CLI is required for Auggie CLI projects") + agent_tool_missing = True # GitHub Copilot and Cursor checks are not needed as they're typically available in supported IDEs if agent_tool_missing: @@ -881,10 +887,10 @@ def init( ("extract", "Extract template"), ("zip-list", "Archive contents"), ("extracted-summary", "Extraction summary"), - ("chmod", "Ensure scripts executable"), + ("chmod", "Ensure scripts executable"), ("cleanup", "Cleanup"), ("git", "Initialize git repository"), - ("final", "Finalize") + ("final", "Finalize"), ]: tracker.add(key, label) @@ -975,6 +981,11 @@ def init( steps_lines.append(" - Use /specify to create specifications") steps_lines.append(" - Use /plan to create implementation plans") steps_lines.append(" - Use /tasks to generate tasks") + elif selected_ai == "auggie": + steps_lines.append(f"{step_num}. Use / commands with Auggie CLI") + steps_lines.append(" - Use /specify to create specifications") + steps_lines.append(" - Use /plan to create implementation plans") + steps_lines.append(" - Use /tasks to generate tasks") # Removed script variant step (scripts are transparent to users) step_num += 1 @@ -995,7 +1006,7 @@ def check(): # Create tracker for checking tools tracker = StepTracker("Check Available Tools") - + # Add all tools we want to check tracker.add("git", "Git version control") tracker.add("claude", "Claude Code CLI") @@ -1004,10 +1015,10 @@ def check(): tracker.add("code", "VS Code (for GitHub Copilot)") tracker.add("cursor-agent", "Cursor IDE agent (optional)") tracker.add("opencode", "opencode") - + tracker.add("auggie", "Auggie CLI") # Check each tool git_ok = check_tool_for_tracker("git", "https://git-scm.com/downloads", tracker) - claude_ok = check_tool_for_tracker("claude", "https://docs.anthropic.com/en/docs/claude-code/setup", tracker) + claude_ok = check_tool_for_tracker("claude", "https://docs.anthropic.com/en/docs/claude-code/setup", tracker) gemini_ok = check_tool_for_tracker("gemini", "https://github.com/google-gemini/gemini-cli", tracker) qwen_ok = check_tool_for_tracker("qwen", "https://github.com/QwenLM/qwen-code", tracker) # Check for VS Code (code or code-insiders) @@ -1016,17 +1027,17 @@ def check(): code_ok = check_tool_for_tracker("code-insiders", "https://code.visualstudio.com/insiders/", tracker) cursor_ok = check_tool_for_tracker("cursor-agent", "https://cursor.sh/", tracker) opencode_ok = check_tool_for_tracker("opencode", "https://opencode.ai/", tracker) - + auggie_ok = check_tool_for_tracker("auggie", "https://www.augmentcode.com/product/CLIe", tracker) # Render the final tree console.print(tracker.render()) - + # Summary console.print("\n[bold green]Specify CLI is ready to use![/bold green]") - + # Recommendations if not git_ok: console.print("[dim]Tip: Install git for repository management[/dim]") - if not (claude_ok or gemini_ok or cursor_ok or qwen_ok or opencode_ok): + if not (claude_ok or gemini_ok or cursor_ok or qwen_ok or opencode_ok or auggie_ok): console.print("[dim]Tip: Install an AI assistant for the best experience[/dim]") diff --git a/templates/plan-template.md b/templates/plan-template.md index cb3eca1f9f..f01c87e300 100644 --- a/templates/plan-template.md +++ b/templates/plan-template.md @@ -24,7 +24,7 @@ scripts: → Update Progress Tracking: Initial Constitution Check 5. Execute Phase 0 → research.md → If NEEDS CLARIFICATION remain: ERROR "Resolve unknowns" -6. Execute Phase 1 → contracts, data-model.md, quickstart.md, agent-specific template file (e.g., `CLAUDE.md` for Claude Code, `.github/copilot-instructions.md` for GitHub Copilot, `GEMINI.md` for Gemini CLI, `QWEN.md` for Qwen Code or `AGENTS.md` for opencode). +6. Execute Phase 1 → contracts, data-model.md, quickstart.md, agent-specific template file (e.g., `CLAUDE.md` for Claude Code, `.github/copilot-instructions.md` for GitHub Copilot, `GEMINI.md` for Gemini CLI, `QWEN.md` for Qwen Code, `AGENTS.md` for opencode, or `.augment/rules/specify-rules.md` for Auggie CLI). 7. Re-evaluate Constitution Check section → If new violations: Refactor design, return to Phase 1 → Update Progress Tracking: Post-Design Constitution Check @@ -32,7 +32,7 @@ scripts: 9. STOP - Ready for /tasks command ``` -**IMPORTANT**: The /plan command STOPS at step 7. Phases 2-4 are executed by other commands: +**IMPORTANT**: The /plan command STOPS at step 9. Phases 2-4 are executed by other commands: - Phase 2: /tasks command creates tasks.md - Phase 3-4: Implementation execution (manual or via tools) @@ -158,7 +158,7 @@ ios/ or android/ - Keep under 150 lines for token efficiency - Output to repository root -**Output**: data-model.md, /contracts/*, failing tests, quickstart.md, agent-specific file +**Output**: data-model.md, /contracts/*, failing tests, quickstart.md, agent-specific file (CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, or .augment/rules/specify-rules.md) ## Phase 2: Task Planning Approach *This section describes what the /tasks command will do - DO NOT execute during /plan*