mirror of
https://github.com/github/spec-kit.git
synced 2026-01-30 12:42:02 +00:00
Merge branch 'main' into patch-1
This commit is contained in:
@@ -77,6 +77,7 @@ AI_CHOICES = {
|
||||
"kilocode": "Kilo Code",
|
||||
"auggie": "Auggie CLI",
|
||||
"roo": "Roo Code",
|
||||
"q": "Amazon Q Developer CLI",
|
||||
}
|
||||
# Add script type choices
|
||||
SCRIPT_TYPE_CHOICES = {"sh": "POSIX Shell (bash/zsh)", "ps": "PowerShell"}
|
||||
@@ -750,7 +751,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, or use '.' for current directory)"),
|
||||
ai_assistant: str = typer.Option(None, "--ai", help="AI assistant to use: claude, gemini, copilot, cursor, qwen, opencode, codex, windsurf, kilocode, or auggie"),
|
||||
ai_assistant: str = typer.Option(None, "--ai", help="AI assistant to use: claude, gemini, copilot, cursor, qwen, opencode, codex, windsurf, kilocode, auggie or q"),
|
||||
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"),
|
||||
@@ -765,7 +766,7 @@ 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, opencode, Codex CLI, Windsurf, Kilo Code, or Auggie CLI)
|
||||
2. Let you choose your AI assistant (Claude Code, Gemini CLI, GitHub Copilot, Cursor, Qwen Code, opencode, Codex CLI, Windsurf, Kilo Code, Auggie CLI, or Amazon Q Developer 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)
|
||||
@@ -782,6 +783,7 @@ def init(
|
||||
specify init my-project --ai codex
|
||||
specify init my-project --ai windsurf
|
||||
specify init my-project --ai auggie
|
||||
specify init my-project --ai q
|
||||
specify init --ignore-agent-tools my-project
|
||||
specify init . --ai claude # Initialize in current directory
|
||||
specify init . # Initialize in current directory (interactive AI selection)
|
||||
@@ -906,6 +908,10 @@ def init(
|
||||
if not check_tool("auggie", "https://docs.augmentcode.com/cli/setup-auggie/install-auggie-cli"):
|
||||
install_url = "https://docs.augmentcode.com/cli/setup-auggie/install-auggie-cli"
|
||||
agent_tool_missing = True
|
||||
elif selected_ai == "q":
|
||||
if not check_tool("q", "https://github.com/aws/amazon-q-developer-cli"):
|
||||
install_url = "https://aws.amazon.com/developer/learning/q-developer-cli/"
|
||||
agent_tool_missing = True
|
||||
# GitHub Copilot and Cursor checks are not needed as they're typically available in supported IDEs
|
||||
|
||||
if agent_tool_missing:
|
||||
@@ -1030,7 +1036,8 @@ def init(
|
||||
"kilocode": ".kilocode/",
|
||||
"auggie": ".augment/",
|
||||
"copilot": ".github/",
|
||||
"roo": ".roo/"
|
||||
"roo": ".roo/",
|
||||
"q": ".amazonq/"
|
||||
}
|
||||
|
||||
if selected_ai in agent_folder_map:
|
||||
@@ -1108,6 +1115,7 @@ def check():
|
||||
tracker.add("opencode", "opencode")
|
||||
tracker.add("codex", "Codex CLI")
|
||||
tracker.add("auggie", "Auggie CLI")
|
||||
tracker.add("q", "Amazon Q Developer CLI")
|
||||
|
||||
git_ok = check_tool_for_tracker("git", tracker)
|
||||
claude_ok = check_tool_for_tracker("claude", tracker)
|
||||
@@ -1121,6 +1129,7 @@ def check():
|
||||
opencode_ok = check_tool_for_tracker("opencode", tracker)
|
||||
codex_ok = check_tool_for_tracker("codex", tracker)
|
||||
auggie_ok = check_tool_for_tracker("auggie", tracker)
|
||||
q_ok = check_tool_for_tracker("q", tracker)
|
||||
|
||||
console.print(tracker.render())
|
||||
|
||||
@@ -1128,7 +1137,7 @@ def check():
|
||||
|
||||
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 windsurf_ok or kilocode_ok or opencode_ok or codex_ok or auggie_ok):
|
||||
if not (claude_ok or gemini_ok or cursor_ok or qwen_ok or windsurf_ok or kilocode_ok or opencode_ok or codex_ok or auggie_ok or q_ok):
|
||||
console.print("[dim]Tip: Install an AI assistant for the best experience[/dim]")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user