From b1591282f62a0e6c92fd662c419b714b851af3ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Den=20Delimarsky=20=F0=9F=8C=BA?= <53200638+localden@users.noreply.github.com> Date: Sun, 14 Sep 2025 09:08:37 -0700 Subject: [PATCH 1/7] Update with video header --- README.md | 6 ++++++ media/spec-kit-video-header.jpg | Bin 0 -> 104337 bytes 2 files changed, 6 insertions(+) create mode 100644 media/spec-kit-video-header.jpg diff --git a/README.md b/README.md index 153d1db..f0748c8 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,12 @@ Use **`/tasks`** to create an actionable task list, then ask your agent to imple For detailed step-by-step instructions, see our [comprehensive guide](./spec-driven.md). +## πŸ“½οΈ Video Overview + +Want to see Spec Kit in action? Watch our [video overview](https://www.youtube.com/watch?v=a9eR1xsfvHg&pp=0gcJCckJAYcqIYzv)! + +[![Spec Kit video header](/media/spec-kit-video-header.jpg)](https://www.youtube.com/watch?v=a9eR1xsfvHg&pp=0gcJCckJAYcqIYzv) + ## πŸ”§ Specify CLI Reference The `specify` command supports the following options: diff --git a/media/spec-kit-video-header.jpg b/media/spec-kit-video-header.jpg new file mode 100644 index 0000000000000000000000000000000000000000..783eee9cd242bc19ab61b5b6a02be3d12ba8bbe8 GIT binary patch literal 104337 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 Date: Sun, 14 Sep 2025 09:09:58 -0700 Subject: [PATCH 2/7] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0748c8..a919545 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ - [πŸ€” What is Spec-Driven Development?](#-what-is-spec-driven-development) - [⚑ Get started](#-get-started) +- [πŸ“½οΈ Video Overview](#️-video-overview) - [πŸ”§ Specify CLI Reference](#-specify-cli-reference) - [πŸ“š Core philosophy](#-core-philosophy) - [🌟 Development phases](#-development-phases) From 70b3db27db32c142f8a37cdfe0a16e6b1fc99e69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Den=20Delimarsky=20=F0=9F=8C=BA?= <53200638+localden@users.noreply.github.com> Date: Sun, 14 Sep 2025 21:11:13 -0700 Subject: [PATCH 3/7] Update Specify definition --- CHANGELOG.md | 22 ++++++++++++++++++++++ pyproject.toml | 4 ++-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..91eb47a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,22 @@ +# Changelog + +All notable changes to the Specify CLI will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.0.4] - 2025-09-14 + +### Added + +- SOCKS proxy support for corporate environments via `httpx[socks]` dependency + +### Fixed + +N/A + +### Changed + +N/A \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index bd24288..7eeeb52 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,12 +1,12 @@ [project] name = "specify-cli" -version = "0.0.3" +version = "0.0.4" description = "Setup tool for Specify spec-driven development projects" requires-python = ">=3.11" dependencies = [ "typer", "rich", - "httpx", + "httpx[socks]", "platformdirs", "readchar", "truststore>=0.10.4", From 558e68286565ec5bddb251689a585d341966d7e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Den=20Delimarsky=20=F0=9F=8C=BA?= <53200638+localden@users.noreply.github.com> Date: Mon, 15 Sep 2025 17:16:18 -0700 Subject: [PATCH 4/7] Update for Cursor rules & script path --- .../scripts/create-release-packages.sh | 11 +++++++---- scripts/bash/update-agent-context.sh | 13 +++++++++---- scripts/powershell/update-agent-context.ps1 | 17 ++++++++++++----- templates/plan-template.md | 14 +++++++++----- 4 files changed, 37 insertions(+), 18 deletions(-) diff --git a/.github/workflows/scripts/create-release-packages.sh b/.github/workflows/scripts/create-release-packages.sh index 3f5e701..25b9282 100644 --- a/.github/workflows/scripts/create-release-packages.sh +++ b/.github/workflows/scripts/create-release-packages.sh @@ -114,12 +114,15 @@ build_variant() { local plan_tpl="$base_dir/.specify/templates/plan-template.md" if [[ -f "$plan_tpl" ]]; then plan_norm=$(tr -d '\r' < "$plan_tpl") - variant_line=$(printf '%s\n' "$plan_norm" | grep -E ".*//; s/^[[:space:]]+//; s/[[:space:]]+$//") - if [[ -n $variant_line ]]; then + # Extract script command from YAML frontmatter + script_command=$(printf '%s\n' "$plan_norm" | awk -v sv="$script" '/^[[:space:]]*'"$script"':[[:space:]]*/ {sub(/^[[:space:]]*'"$script"':[[:space:]]*/, ""); print; exit}') + + if [[ -n $script_command ]]; then tmp_file=$(mktemp) - sed "s|VARIANT-INJECT|${variant_line}|" "$plan_tpl" | tr -d '\r' | sed "s|__AGENT__|${agent}|g" | sed '/ - +# Implementation Plan: [FEATURE] **Branch**: `[###-feature-name]` | **Date**: [DATE] | **Spec**: [link] **Input**: Feature specification from `/specs/[###-feature-name]/spec.md` @@ -174,7 +178,7 @@ ios/ or android/ - Quickstart test = story validation steps 5. **Update agent file incrementally** (O(1) operation): - VARIANT-INJECT + - Run {SCRIPT} for your AI assistant - If exists: Add only NEW tech from current plan - Preserve manual additions between markers - Update recent changes (keep last 3) @@ -187,7 +191,7 @@ ios/ or android/ *This section describes what the /tasks command will do - DO NOT execute during /plan* **Task Generation Strategy**: -- Load `/templates/tasks-template.md` as base +- Load `.specify/templates/tasks-template.md` as base - Generate tasks from Phase 1 design docs (contracts, data model, quickstart) - Each contract β†’ contract test task [P] - Each entity β†’ model creation task [P] From dd57e9d444415ec58f6bdde0f051fbc1aaea5667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Den=20Delimarsky=20=F0=9F=8C=BA?= <53200638+localden@users.noreply.github.com> Date: Mon, 15 Sep 2025 17:29:50 -0700 Subject: [PATCH 5/7] Update template paths --- scripts/bash/update-agent-context.sh | 2 +- scripts/powershell/update-agent-context.ps1 | 2 +- templates/commands/specify.md | 4 ++-- templates/commands/tasks.md | 4 ++-- templates/plan-template.md | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/bash/update-agent-context.sh b/scripts/bash/update-agent-context.sh index a48095b..2ad22cb 100644 --- a/scripts/bash/update-agent-context.sh +++ b/scripts/bash/update-agent-context.sh @@ -13,7 +13,7 @@ NEW_FRAMEWORK=$(grep "^**Primary Dependencies**: " "$NEW_PLAN" 2>/dev/null | hea NEW_DB=$(grep "^**Storage**: " "$NEW_PLAN" 2>/dev/null | head -1 | sed 's/^**Storage**: //' | grep -v "N/A" | grep -v "NEEDS CLARIFICATION" || echo "") NEW_PROJECT_TYPE=$(grep "^**Project Type**: " "$NEW_PLAN" 2>/dev/null | head -1 | sed 's/^**Project Type**: //' || echo "") update_agent_file() { local target_file="$1" agent_name="$2"; echo "Updating $agent_name context file: $target_file"; local temp_file=$(mktemp); if [ ! -f "$target_file" ]; then - echo "Creating new $agent_name context file..."; if [ -f "$REPO_ROOT/templates/agent-file-template.md" ]; then cp "$REPO_ROOT/templates/agent-file-template.md" "$temp_file"; else echo "ERROR: Template not found"; return 1; fi; + echo "Creating new $agent_name context file..."; if [ -f "$REPO_ROOT/.specify/templates/agent-file-template.md" ]; then cp "$REPO_ROOT/templates/agent-file-template.md" "$temp_file"; else echo "ERROR: Template not found"; return 1; fi; sed -i.bak "s/\[PROJECT NAME\]/$(basename $REPO_ROOT)/" "$temp_file"; sed -i.bak "s/\[DATE\]/$(date +%Y-%m-%d)/" "$temp_file"; sed -i.bak "s/\[EXTRACTED FROM ALL PLAN.MD FILES\]/- $NEW_LANG + $NEW_FRAMEWORK ($CURRENT_BRANCH)/" "$temp_file"; if [[ "$NEW_PROJECT_TYPE" == *"web"* ]]; then sed -i.bak "s|\[ACTUAL STRUCTURE FROM PLANS\]|backend/\nfrontend/\ntests/|" "$temp_file"; else sed -i.bak "s|\[ACTUAL STRUCTURE FROM PLANS\]|src/\ntests/|" "$temp_file"; fi; if [[ "$NEW_LANG" == *"Python"* ]]; then COMMANDS="cd src && pytest && ruff check ."; elif [[ "$NEW_LANG" == *"Rust"* ]]; then COMMANDS="cargo test && cargo clippy"; elif [[ "$NEW_LANG" == *"JavaScript"* ]] || [[ "$NEW_LANG" == *"TypeScript"* ]]; then COMMANDS="npm test && npm run lint"; else COMMANDS="# Add commands for $NEW_LANG"; fi; sed -i.bak "s|\[ONLY COMMANDS FOR ACTIVE TECHNOLOGIES\]|$COMMANDS|" "$temp_file"; diff --git a/scripts/powershell/update-agent-context.ps1 b/scripts/powershell/update-agent-context.ps1 index b90fdf4..4578ed3 100644 --- a/scripts/powershell/update-agent-context.ps1 +++ b/scripts/powershell/update-agent-context.ps1 @@ -31,7 +31,7 @@ $newProjectType = Get-PlanValue 'Project Type' function Initialize-AgentFile($targetFile, $agentName) { if (Test-Path $targetFile) { return } - $template = Join-Path $repoRoot 'templates/agent-file-template.md' + $template = Join-Path $repoRoot '.specify/templates/agent-file-template.md' if (-not (Test-Path $template)) { Write-Error "Template not found: $template"; return } $content = Get-Content $template -Raw $content = $content.Replace('[PROJECT NAME]', (Split-Path $repoRoot -Leaf)) diff --git a/templates/commands/specify.md b/templates/commands/specify.md index 41b8f6f..1279231 100644 --- a/templates/commands/specify.md +++ b/templates/commands/specify.md @@ -1,8 +1,8 @@ --- description: Create or update the feature specification from a natural language feature description. scripts: - sh: scripts/bash/create-new-feature.sh --json "{ARGS}" - ps: scripts/powershell/create-new-feature.ps1 -Json "{ARGS}" + sh: .specify/scripts/bash/create-new-feature.sh --json "{ARGS}" + ps: .specify/scripts/powershell/create-new-feature.ps1 -Json "{ARGS}" --- Given the feature description provided as an argument, do this: diff --git a/templates/commands/tasks.md b/templates/commands/tasks.md index 29b4cd2..8988879 100644 --- a/templates/commands/tasks.md +++ b/templates/commands/tasks.md @@ -1,8 +1,8 @@ --- description: Generate an actionable, dependency-ordered tasks.md for the feature based on available design artifacts. scripts: - sh: scripts/bash/check-task-prerequisites.sh --json - ps: scripts/powershell/check-task-prerequisites.ps1 -Json + sh: .specify/scripts/bash/check-task-prerequisites.sh --json + ps: .specify/scripts/powershell/check-task-prerequisites.ps1 -Json --- Given the context provided as an argument, do this: diff --git a/templates/plan-template.md b/templates/plan-template.md index d2945d9..f148530 100644 --- a/templates/plan-template.md +++ b/templates/plan-template.md @@ -1,8 +1,8 @@ --- description: "Implementation plan template for feature development" scripts: - sh: ".specify/scripts/bash/update-agent-context.sh __AGENT__" - ps: ".specify/scripts/powershell/update-agent-context.ps1 -AgentType __AGENT__" + sh: .specify/scripts/bash/update-agent-context.sh __AGENT__ + ps: .specify/scripts/powershell/update-agent-context.ps1 -AgentType __AGENT__ --- # Implementation Plan: [FEATURE] @@ -178,7 +178,7 @@ ios/ or android/ - Quickstart test = story validation steps 5. **Update agent file incrementally** (O(1) operation): - - Run {SCRIPT} for your AI assistant + - Run `{SCRIPT}` for your AI assistant - If exists: Add only NEW tech from current plan - Preserve manual additions between markers - Update recent changes (keep last 3) From 5828e58f84039b41e4a188d256491f18ab96bf70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Den=20Delimarsky=20=F0=9F=8C=BA?= <53200638+localden@users.noreply.github.com> Date: Mon, 15 Sep 2025 17:44:18 -0700 Subject: [PATCH 6/7] Update scripts --- .github/workflows/scripts/create-release-packages.sh | 8 ++++++-- templates/commands/specify.md | 4 ++-- templates/commands/tasks.md | 4 ++-- templates/plan-template.md | 4 ++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/scripts/create-release-packages.sh b/.github/workflows/scripts/create-release-packages.sh index 25b9282..0ea28e0 100644 --- a/.github/workflows/scripts/create-release-packages.sh +++ b/.github/workflows/scripts/create-release-packages.sh @@ -116,11 +116,15 @@ build_variant() { plan_norm=$(tr -d '\r' < "$plan_tpl") # Extract script command from YAML frontmatter script_command=$(printf '%s\n' "$plan_norm" | awk -v sv="$script" '/^[[:space:]]*'"$script"':[[:space:]]*/ {sub(/^[[:space:]]*'"$script"':[[:space:]]*/, ""); print; exit}') - if [[ -n $script_command ]]; then + # Always prefix with .specify/ for plan usage + script_command=".specify/$script_command" tmp_file=$(mktemp) # Replace {SCRIPT} placeholder with the script command and __AGENT__ with agent name - sed "s|{SCRIPT}|${script_command}|g" "$plan_tpl" | tr -d '\r' | sed "s|__AGENT__|${agent}|g" > "$tmp_file" && mv "$tmp_file" "$plan_tpl" + substituted=$(sed "s|{SCRIPT}|${script_command}|g" "$plan_tpl" | tr -d '\r' | sed "s|__AGENT__|${agent}|g") + # Strip YAML frontmatter from plan template output (keep body only) + stripped=$(printf '%s\n' "$substituted" | awk 'BEGIN{fm=0;dash=0} /^---$/ {dash++; if(dash==1){fm=1; next} else if(dash==2){fm=0; next}} {if(!fm) print}') + printf '%s\n' "$stripped" > "$plan_tpl" else echo "Warning: no plan-template script command found for $script in YAML frontmatter" >&2 fi diff --git a/templates/commands/specify.md b/templates/commands/specify.md index 1279231..41b8f6f 100644 --- a/templates/commands/specify.md +++ b/templates/commands/specify.md @@ -1,8 +1,8 @@ --- description: Create or update the feature specification from a natural language feature description. scripts: - sh: .specify/scripts/bash/create-new-feature.sh --json "{ARGS}" - ps: .specify/scripts/powershell/create-new-feature.ps1 -Json "{ARGS}" + sh: scripts/bash/create-new-feature.sh --json "{ARGS}" + ps: scripts/powershell/create-new-feature.ps1 -Json "{ARGS}" --- Given the feature description provided as an argument, do this: diff --git a/templates/commands/tasks.md b/templates/commands/tasks.md index 8988879..29b4cd2 100644 --- a/templates/commands/tasks.md +++ b/templates/commands/tasks.md @@ -1,8 +1,8 @@ --- description: Generate an actionable, dependency-ordered tasks.md for the feature based on available design artifacts. scripts: - sh: .specify/scripts/bash/check-task-prerequisites.sh --json - ps: .specify/scripts/powershell/check-task-prerequisites.ps1 -Json + sh: scripts/bash/check-task-prerequisites.sh --json + ps: scripts/powershell/check-task-prerequisites.ps1 -Json --- Given the context provided as an argument, do this: diff --git a/templates/plan-template.md b/templates/plan-template.md index f148530..e88aa1e 100644 --- a/templates/plan-template.md +++ b/templates/plan-template.md @@ -1,8 +1,8 @@ --- description: "Implementation plan template for feature development" scripts: - sh: .specify/scripts/bash/update-agent-context.sh __AGENT__ - ps: .specify/scripts/powershell/update-agent-context.ps1 -AgentType __AGENT__ + sh: scripts/bash/update-agent-context.sh __AGENT__ + ps: scripts/powershell/update-agent-context.ps1 -AgentType __AGENT__ --- # Implementation Plan: [FEATURE] From b18ef208cb8ba7b1eba04fe5dfcf3c24fda84a3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Den=20Delimarsky=20=F0=9F=8C=BA?= <53200638+localden@users.noreply.github.com> Date: Mon, 15 Sep 2025 19:08:26 -0700 Subject: [PATCH 7/7] Update template. --- templates/commands/plan.md | 2 +- templates/plan-template.md | 43 +++++++------------------------------- 2 files changed, 9 insertions(+), 36 deletions(-) diff --git a/templates/commands/plan.md b/templates/commands/plan.md index 4c5cbf3..18a0b5c 100644 --- a/templates/commands/plan.md +++ b/templates/commands/plan.md @@ -19,7 +19,7 @@ Given the implementation details provided as an argument, do this: 4. Execute the implementation plan template: - Load `/templates/plan-template.md` (already copied to IMPL_PLAN path) - Set Input path to FEATURE_SPEC - - Run the Execution Flow (main) function steps 1-10 + - Run the Execution Flow (main) function steps 1-9 - The template is self-contained and executable - Follow error handling and gate checks as specified - Let the template guide artifact generation in $SPECS_DIR: diff --git a/templates/plan-template.md b/templates/plan-template.md index e88aa1e..4f9e401 100644 --- a/templates/plan-template.md +++ b/templates/plan-template.md @@ -17,18 +17,19 @@ scripts: 2. Fill Technical Context (scan for NEEDS CLARIFICATION) β†’ Detect Project Type from context (web=frontend+backend, mobile=app+api) β†’ Set Structure Decision based on project type -3. Evaluate Constitution Check section below +3. Fill the Constitution Check section based on the content of the constitution document. +4. Evaluate Constitution Check section below β†’ If violations exist: Document in Complexity Tracking β†’ If no justification possible: ERROR "Simplify approach first" β†’ Update Progress Tracking: Initial Constitution Check -4. Execute Phase 0 β†’ research.md +5. Execute Phase 0 β†’ research.md β†’ If NEEDS CLARIFICATION remain: ERROR "Resolve unknowns" -5. 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, or `GEMINI.md` for Gemini CLI). -6. Re-evaluate Constitution Check section +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, or `GEMINI.md` for Gemini CLI). +7. Re-evaluate Constitution Check section β†’ If new violations: Refactor design, return to Phase 1 β†’ Update Progress Tracking: Post-Design Constitution Check -7. Plan Phase 2 β†’ Describe task generation approach (DO NOT create tasks.md) -8. STOP - Ready for /tasks command +8. Plan Phase 2 β†’ Describe task generation approach (DO NOT create tasks.md) +9. STOP - Ready for /tasks command ``` **IMPORTANT**: The /plan command STOPS at step 7. Phases 2-4 are executed by other commands: @@ -52,35 +53,7 @@ scripts: ## Constitution Check *GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.* -**Simplicity**: -- Projects: [#] (max 3 - e.g., api, cli, tests) -- Using framework directly? (no wrapper classes) -- Single data model? (no DTOs unless serialization differs) -- Avoiding patterns? (no Repository/UoW without proven need) - -**Architecture**: -- EVERY feature as library? (no direct app code) -- Libraries listed: [name + purpose for each] -- CLI per library: [commands with --help/--version/--format] -- Library docs: llms.txt format planned? - -**Testing (NON-NEGOTIABLE)**: -- RED-GREEN-Refactor cycle enforced? (test MUST fail first) -- Git commits show tests before implementation? -- Order: Contractβ†’Integrationβ†’E2Eβ†’Unit strictly followed? -- Real dependencies used? (actual DBs, not mocks) -- Integration tests for: new libraries, contract changes, shared schemas? -- FORBIDDEN: Implementation before test, skipping RED phase - -**Observability**: -- Structured logging included? -- Frontend logs β†’ backend? (unified stream) -- Error context sufficient? - -**Versioning**: -- Version number assigned? (MAJOR.MINOR.BUILD) -- BUILD increments on every change? -- Breaking changes handled? (parallel tests, migration plan) +[Gates determined based on constitution file] ## Project Structure