diff --git a/.github/workflows/scripts/create-release-packages.sh b/.github/workflows/scripts/create-release-packages.sh index 6b66eae..0021c56 100644 --- a/.github/workflows/scripts/create-release-packages.sh +++ b/.github/workflows/scripts/create-release-packages.sh @@ -161,8 +161,8 @@ build_variant() { mkdir -p "$base_dir/.windsurf/workflows" generate_commands windsurf md "\$ARGUMENTS" "$base_dir/.windsurf/workflows" "$script" ;; codex) - mkdir -p "$base_dir/.codex/commands" - generate_commands codex md "\$ARGUMENTS" "$base_dir/.codex/commands" "$script" ;; + mkdir -p "$base_dir/.codex/prompts" + generate_commands codex md "\$ARGUMENTS" "$base_dir/.codex/prompts" "$script" ;; esac ( cd "$base_dir" && zip -r "../spec-kit-template-${agent}-${script}-${NEW_VERSION}.zip" . ) echo "Created $GENRELEASES_DIR/spec-kit-template-${agent}-${script}-${NEW_VERSION}.zip" diff --git a/src/specify_cli/__init__.py b/src/specify_cli/__init__.py index 4eb36fb..4e1d111 100644 --- a/src/specify_cli/__init__.py +++ b/src/specify_cli/__init__.py @@ -28,6 +28,7 @@ import sys import zipfile import tempfile import shutil +import shlex import json from pathlib import Path from typing import Optional, Tuple @@ -983,12 +984,24 @@ def init( # Boxed "Next steps" section steps_lines = [] if not here: - steps_lines.append(f"1. [bold green]cd {project_name}[/bold green]") + steps_lines.append(f"1. Go to the project folder: [cyan]cd {project_name}[/cyan]") step_num = 2 else: steps_lines.append("1. You're already in the project directory!") step_num = 2 + # Add Codex-specific setup step if needed + if selected_ai == "codex": + codex_path = project_path / ".codex" + quoted_path = shlex.quote(str(codex_path)) + if os.name == "nt": # Windows + cmd = f"setx CODEX_HOME {quoted_path}" + else: # Unix-like systems + cmd = f"export CODEX_HOME={quoted_path}" + + steps_lines.append(f"{step_num}. Set [cyan]CODEX_HOME[/cyan] environment variable before running Codex: [cyan]{cmd}[/cyan]") + step_num += 1 + steps_lines.append(f"{step_num}. Start using slash commands with your AI agent:") steps_lines.append(" 2.1 [cyan]/constitution[/] - Establish project principles") steps_lines.append(" 2.2 [cyan]/specify[/] - Create specifications") @@ -1000,6 +1013,20 @@ def init( console.print() console.print(steps_panel) + # Add Codex warning if using Codex + if selected_ai == "codex": + warning_text = """[bold yellow]Important Note:[/bold yellow] + +Custom prompts do not yet support arguments in Codex. You may need to manually +specify additional project instructions directly in prompt files located in +[cyan].codex/prompts/[/cyan]. + +For more information, see: [cyan]https://github.com/openai/codex/issues/2890[/cyan]""" + + warning_panel = Panel(warning_text, title="Slash Commands in Codex", border_style="yellow", padding=(1,2)) + console.print() + console.print(warning_panel) + @app.command() def check(): """Check that all required tools are installed."""