specify-cli 0.0.20__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. specify_cli-0.0.20/.devcontainer/devcontainer.json +77 -0
  2. specify_cli-0.0.20/.devcontainer/post-create.sh +100 -0
  3. specify_cli-0.0.20/.gitattributes +1 -0
  4. specify_cli-0.0.20/.github/CODEOWNERS +3 -0
  5. specify_cli-0.0.20/.github/workflows/docs.yml +68 -0
  6. specify_cli-0.0.20/.github/workflows/lint.yml +18 -0
  7. specify_cli-0.0.20/.github/workflows/pypi.yml +45 -0
  8. specify_cli-0.0.20/.github/workflows/release.yml +60 -0
  9. specify_cli-0.0.20/.github/workflows/scripts/check-release-exists.sh +21 -0
  10. specify_cli-0.0.20/.github/workflows/scripts/create-github-release.sh +48 -0
  11. specify_cli-0.0.20/.github/workflows/scripts/create-release-packages.sh +242 -0
  12. specify_cli-0.0.20/.github/workflows/scripts/generate-release-notes.sh +40 -0
  13. specify_cli-0.0.20/.github/workflows/scripts/get-next-version.sh +24 -0
  14. specify_cli-0.0.20/.github/workflows/scripts/update-version.sh +23 -0
  15. specify_cli-0.0.20/.gitignore +45 -0
  16. specify_cli-0.0.20/.markdownlint-cli2.jsonc +24 -0
  17. specify_cli-0.0.20/AGENTS.md +394 -0
  18. specify_cli-0.0.20/CHANGELOG.md +167 -0
  19. specify_cli-0.0.20/CODE_OF_CONDUCT.md +74 -0
  20. specify_cli-0.0.20/CONTRIBUTING.md +149 -0
  21. specify_cli-0.0.20/LICENSE +22 -0
  22. specify_cli-0.0.20/PKG-INFO +12 -0
  23. specify_cli-0.0.20/README.md +633 -0
  24. specify_cli-0.0.20/SECURITY.md +31 -0
  25. specify_cli-0.0.20/SUPPORT.md +19 -0
  26. specify_cli-0.0.20/docs/.gitignore +9 -0
  27. specify_cli-0.0.20/docs/README.md +35 -0
  28. specify_cli-0.0.20/docs/docfx.json +71 -0
  29. specify_cli-0.0.20/docs/index.md +66 -0
  30. specify_cli-0.0.20/docs/installation.md +92 -0
  31. specify_cli-0.0.20/docs/local-development.md +175 -0
  32. specify_cli-0.0.20/docs/quickstart.md +123 -0
  33. specify_cli-0.0.20/docs/toc.yml +18 -0
  34. specify_cli-0.0.20/media/bootstrap-claude-code.gif +0 -0
  35. specify_cli-0.0.20/media/logo_large.webp +0 -0
  36. specify_cli-0.0.20/media/logo_small.webp +0 -0
  37. specify_cli-0.0.20/media/spec-kit-video-header.jpg +0 -0
  38. specify_cli-0.0.20/media/specify_cli.gif +0 -0
  39. specify_cli-0.0.20/memory/constitution.md +50 -0
  40. specify_cli-0.0.20/pyproject.toml +24 -0
  41. specify_cli-0.0.20/scripts/bash/check-prerequisites.sh +166 -0
  42. specify_cli-0.0.20/scripts/bash/common.sh +156 -0
  43. specify_cli-0.0.20/scripts/bash/create-new-feature.sh +260 -0
  44. specify_cli-0.0.20/scripts/bash/setup-plan.sh +61 -0
  45. specify_cli-0.0.20/scripts/bash/update-agent-context.sh +772 -0
  46. specify_cli-0.0.20/scripts/powershell/check-prerequisites.ps1 +148 -0
  47. specify_cli-0.0.20/scripts/powershell/common.ps1 +137 -0
  48. specify_cli-0.0.20/scripts/powershell/create-new-feature.ps1 +290 -0
  49. specify_cli-0.0.20/scripts/powershell/setup-plan.ps1 +62 -0
  50. specify_cli-0.0.20/scripts/powershell/update-agent-context.ps1 +439 -0
  51. specify_cli-0.0.20/spec-driven.md +403 -0
  52. specify_cli-0.0.20/src/specify_cli/__init__.py +1210 -0
  53. specify_cli-0.0.20/templates/agent-file-template.md +28 -0
  54. specify_cli-0.0.20/templates/checklist-template.md +40 -0
  55. specify_cli-0.0.20/templates/commands/analyze.md +187 -0
  56. specify_cli-0.0.20/templates/commands/checklist.md +297 -0
  57. specify_cli-0.0.20/templates/commands/clarify.md +180 -0
  58. specify_cli-0.0.20/templates/commands/constitution.md +78 -0
  59. specify_cli-0.0.20/templates/commands/implement.md +138 -0
  60. specify_cli-0.0.20/templates/commands/plan.md +87 -0
  61. specify_cli-0.0.20/templates/commands/specify.md +252 -0
  62. specify_cli-0.0.20/templates/commands/tasks.md +131 -0
  63. specify_cli-0.0.20/templates/plan-template.md +104 -0
  64. specify_cli-0.0.20/templates/spec-template.md +115 -0
  65. specify_cli-0.0.20/templates/tasks-template.md +251 -0
  66. specify_cli-0.0.20/templates/vscode-settings.json +14 -0
@@ -0,0 +1,77 @@
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the
2
+ // README at: https://github.com/devcontainers/templates/tree/main/src/python
3
+ {
4
+ "name": "SpecKitDevContainer",
5
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6
+ "image": "mcr.microsoft.com/devcontainers/python:3.13-trixie", // based on Debian "Trixie" (13)
7
+ "features": {
8
+ "ghcr.io/devcontainers/features/common-utils:2": {
9
+ "installZsh": true,
10
+ "installOhMyZsh": true,
11
+ "installOhMyZshConfig": true,
12
+ "upgradePackages": true,
13
+ "username": "devcontainer",
14
+ "userUid": "automatic",
15
+ "userGid": "automatic"
16
+ },
17
+ "ghcr.io/devcontainers/features/dotnet:2": {
18
+ "version": "lts"
19
+ },
20
+ "ghcr.io/devcontainers/features/git:1": {
21
+ "ppa": true,
22
+ "version": "latest"
23
+ },
24
+ "ghcr.io/devcontainers/features/node": {
25
+ "version": "lts"
26
+ }
27
+ },
28
+
29
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
30
+ "forwardPorts": [
31
+ 8080 // for Spec-Kit documentation site
32
+ ],
33
+ "containerUser": "devcontainer",
34
+ "updateRemoteUserUID": true,
35
+ "postCreateCommand": "chmod +x ./.devcontainer/post-create.sh && ./.devcontainer/post-create.sh",
36
+ "postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
37
+ "customizations": {
38
+ "vscode": {
39
+ "extensions": [
40
+ "mhutchie.git-graph",
41
+ "eamodio.gitlens",
42
+ "anweber.reveal-button",
43
+ "chrisdias.promptboost",
44
+ // Github Copilot
45
+ "GitHub.copilot",
46
+ "GitHub.copilot-chat",
47
+ // Codex
48
+ "openai.chatgpt",
49
+ // Kilo Code
50
+ "kilocode.Kilo-Code",
51
+ // Roo Code
52
+ "RooVeterinaryInc.roo-cline",
53
+ // Amazon Developer Q
54
+ "AmazonWebServices.amazon-q-vscode",
55
+ // Claude Code
56
+ "anthropic.claude-code"
57
+ ],
58
+ "settings": {
59
+ "debug.javascript.autoAttachFilter": "disabled", // fix running commands in integrated terminal
60
+
61
+ // Specify settings for Github Copilot
62
+ "git.autofetch": true,
63
+ "chat.promptFilesRecommendations": {
64
+ "speckit.constitution": true,
65
+ "speckit.specify": true,
66
+ "speckit.plan": true,
67
+ "speckit.tasks": true,
68
+ "speckit.implement": true
69
+ },
70
+ "chat.tools.terminal.autoApprove": {
71
+ ".specify/scripts/bash/": true,
72
+ ".specify/scripts/powershell/": true
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
@@ -0,0 +1,100 @@
1
+ #!/bin/bash
2
+
3
+ # Exit immediately on error, treat unset variables as an error, and fail if any command in a pipeline fails.
4
+ set -euo pipefail
5
+
6
+ # Function to run a command and show logs only on error
7
+ run_command() {
8
+ local command_to_run="$*"
9
+ local output
10
+ local exit_code
11
+
12
+ # Capture all output (stdout and stderr)
13
+ output=$(eval "$command_to_run" 2>&1) || exit_code=$?
14
+ exit_code=${exit_code:-0}
15
+
16
+ if [ $exit_code -ne 0 ]; then
17
+ echo -e "\033[0;31m[ERROR] Command failed (Exit Code $exit_code): $command_to_run\033[0m" >&2
18
+ echo -e "\033[0;31m$output\033[0m" >&2
19
+
20
+ exit $exit_code
21
+ fi
22
+ }
23
+
24
+ # Installing CLI-based AI Agents
25
+
26
+ echo -e "\n🤖 Installing Copilot CLI..."
27
+ run_command "npm install -g @github/copilot@latest"
28
+ echo "✅ Done"
29
+
30
+ echo -e "\n🤖 Installing Claude CLI..."
31
+ run_command "npm install -g @anthropic-ai/claude-code@latest"
32
+ echo "✅ Done"
33
+
34
+ echo -e "\n🤖 Installing Codex CLI..."
35
+ run_command "npm install -g @openai/codex@latest"
36
+ echo "✅ Done"
37
+
38
+ echo -e "\n🤖 Installing Gemini CLI..."
39
+ run_command "npm install -g @google/gemini-cli@latest"
40
+ echo "✅ Done"
41
+
42
+ echo -e "\n🤖 Installing Augie CLI..."
43
+ run_command "npm install -g @augmentcode/auggie@latest"
44
+ echo "✅ Done"
45
+
46
+ echo -e "\n🤖 Installing Qwen Code CLI..."
47
+ run_command "npm install -g @qwen-code/qwen-code@latest"
48
+ echo "✅ Done"
49
+
50
+ echo -e "\n🤖 Installing OpenCode CLI..."
51
+ run_command "npm install -g opencode-ai@latest"
52
+ echo "✅ Done"
53
+
54
+ echo -e "\n🤖 Installing Amazon Q CLI..."
55
+ # 👉🏾 https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-verify-download.html
56
+
57
+ run_command "curl --proto '=https' --tlsv1.2 -sSf 'https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip' -o 'q.zip'"
58
+ run_command "curl --proto '=https' --tlsv1.2 -sSf 'https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip.sig' -o 'q.zip.sig'"
59
+ cat > amazonq-public-key.asc << 'EOF'
60
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
61
+
62
+ mDMEZig60RYJKwYBBAHaRw8BAQdAy/+G05U5/EOA72WlcD4WkYn5SInri8pc4Z6D
63
+ BKNNGOm0JEFtYXpvbiBRIENMSSBUZWFtIDxxLWNsaUBhbWF6b24uY29tPoiZBBMW
64
+ CgBBFiEEmvYEF+gnQskUPgPsUNx6jcJMVmcFAmYoOtECGwMFCQPCZwAFCwkIBwIC
65
+ IgIGFQoJCAsCBBYCAwECHgcCF4AACgkQUNx6jcJMVmef5QD/QWWEGG/cOnbDnp68
66
+ SJXuFkwiNwlH2rPw9ZRIQMnfAS0A/0V6ZsGB4kOylBfc7CNfzRFGtovdBBgHqA6P
67
+ zQ/PNscGuDgEZig60RIKKwYBBAGXVQEFAQEHQC4qleONMBCq3+wJwbZSr0vbuRba
68
+ D1xr4wUPn4Avn4AnAwEIB4h+BBgWCgAmFiEEmvYEF+gnQskUPgPsUNx6jcJMVmcF
69
+ AmYoOtECGwwFCQPCZwAACgkQUNx6jcJMVmchMgEA6l3RveCM0YHAGQaSFMkguoAo
70
+ vK6FgOkDawgP0NPIP2oA/jIAO4gsAntuQgMOsPunEdDeji2t+AhV02+DQIsXZpoB
71
+ =f8yY
72
+ -----END PGP PUBLIC KEY BLOCK-----
73
+ EOF
74
+ run_command "gpg --batch --import amazonq-public-key.asc"
75
+ run_command "gpg --verify q.zip.sig q.zip"
76
+ run_command "unzip -q q.zip"
77
+ run_command "chmod +x ./q/install.sh"
78
+ run_command "./q/install.sh --no-confirm"
79
+ run_command "rm -rf ./q q.zip q.zip.sig amazonq-public-key.asc"
80
+ echo "✅ Done"
81
+
82
+ echo -e "\n🤖 Installing CodeBuddy CLI..."
83
+ run_command "npm install -g @tencent-ai/codebuddy-code@latest"
84
+ echo "✅ Done"
85
+
86
+ # Installing UV (Python package manager)
87
+ echo -e "\n🐍 Installing UV - Python Package Manager..."
88
+ run_command "pipx install uv"
89
+ echo "✅ Done"
90
+
91
+ # Installing DocFx (for documentation site)
92
+ echo -e "\n📚 Installing DocFx..."
93
+ run_command "dotnet tool update -g docfx"
94
+ echo "✅ Done"
95
+
96
+ echo -e "\n🧹 Cleaning cache..."
97
+ run_command "sudo apt-get autoclean"
98
+ run_command "sudo apt-get clean"
99
+
100
+ echo "✅ Setup completed. Happy coding! 🚀"
@@ -0,0 +1 @@
1
+ * text=auto eol=lf
@@ -0,0 +1,3 @@
1
+ # Global code owner
2
+ * @localden
3
+
@@ -0,0 +1,68 @@
1
+ # Build and deploy DocFX documentation to GitHub Pages
2
+ name: Deploy Documentation to Pages
3
+
4
+ on:
5
+ # Runs on pushes targeting the default branch
6
+ push:
7
+ branches: ["main"]
8
+ paths:
9
+ - 'docs/**'
10
+
11
+ # Allows you to run this workflow manually from the Actions tab
12
+ workflow_dispatch:
13
+
14
+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
15
+ permissions:
16
+ contents: read
17
+ pages: write
18
+ id-token: write
19
+
20
+ # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
21
+ # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
22
+ concurrency:
23
+ group: "pages"
24
+ cancel-in-progress: false
25
+
26
+ jobs:
27
+ # Build job
28
+ build:
29
+ runs-on: ubuntu-latest
30
+ steps:
31
+ - name: Checkout
32
+ uses: actions/checkout@v4
33
+ with:
34
+ fetch-depth: 0 # Fetch all history for git info
35
+
36
+ - name: Setup .NET
37
+ uses: actions/setup-dotnet@v4
38
+ with:
39
+ dotnet-version: '8.x'
40
+
41
+ - name: Setup DocFX
42
+ run: dotnet tool install -g docfx
43
+
44
+ - name: Build with DocFX
45
+ run: |
46
+ cd docs
47
+ docfx docfx.json
48
+
49
+ - name: Setup Pages
50
+ uses: actions/configure-pages@v5
51
+
52
+ - name: Upload artifact
53
+ uses: actions/upload-pages-artifact@v3
54
+ with:
55
+ path: 'docs/_site'
56
+
57
+ # Deploy job
58
+ deploy:
59
+ environment:
60
+ name: github-pages
61
+ url: ${{ steps.deployment.outputs.page_url }}
62
+ runs-on: ubuntu-latest
63
+ needs: build
64
+ steps:
65
+ - name: Deploy to GitHub Pages
66
+ id: deployment
67
+ uses: actions/deploy-pages@v4
68
+
@@ -0,0 +1,18 @@
1
+ name: Lint
2
+
3
+ on:
4
+ push:
5
+ branches: ["main"]
6
+ pull_request:
7
+
8
+ jobs:
9
+ markdownlint:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Checkout
13
+ uses: actions/checkout@v4
14
+
15
+ - name: Run markdownlint-cli2
16
+ uses: DavidAnson/markdownlint-cli2-action@v19
17
+ with:
18
+ globs: '**/*.md'
@@ -0,0 +1,45 @@
1
+ name: PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [created]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - name: Set up Python
18
+ uses: actions/setup-python@v5
19
+ with:
20
+ python-version: '3.11'
21
+
22
+ - name: Install build dependencies
23
+ run: |
24
+ python -m pip install --upgrade pip
25
+ pip install build twine hatchling
26
+
27
+ - name: Build package
28
+ run: |
29
+ python -m build
30
+
31
+ - name: Check distribution
32
+ run: |
33
+ python -m twine check dist/*
34
+
35
+ - name: Upload distribution to PyPI
36
+ uses: pypa/gh-action-pypi-publish@release/v1
37
+ with:
38
+ user: __token__
39
+ password: ${{ secrets.AI_CODESPARK_PYPI_TOKEN }}
40
+
41
+ - name: Upload artifacts
42
+ uses: actions/upload-artifact@v4
43
+ with:
44
+ name: dist
45
+ path: dist/
@@ -0,0 +1,60 @@
1
+ name: Create Release
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ paths:
7
+ - 'memory/**'
8
+ - 'scripts/**'
9
+ - 'templates/**'
10
+ - '.github/workflows/**'
11
+ workflow_dispatch:
12
+
13
+ jobs:
14
+ release:
15
+ runs-on: ubuntu-latest
16
+ permissions:
17
+ contents: write
18
+ pull-requests: write
19
+ steps:
20
+ - name: Checkout repository
21
+ uses: actions/checkout@v4
22
+ with:
23
+ fetch-depth: 0
24
+ token: ${{ secrets.GITHUB_TOKEN }}
25
+ - name: Get latest tag
26
+ id: get_tag
27
+ run: |
28
+ chmod +x .github/workflows/scripts/get-next-version.sh
29
+ .github/workflows/scripts/get-next-version.sh
30
+ - name: Check if release already exists
31
+ id: check_release
32
+ run: |
33
+ chmod +x .github/workflows/scripts/check-release-exists.sh
34
+ .github/workflows/scripts/check-release-exists.sh ${{ steps.get_tag.outputs.new_version }}
35
+ env:
36
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37
+ - name: Create release package variants
38
+ if: steps.check_release.outputs.exists == 'false'
39
+ run: |
40
+ chmod +x .github/workflows/scripts/create-release-packages.sh
41
+ .github/workflows/scripts/create-release-packages.sh ${{ steps.get_tag.outputs.new_version }}
42
+ - name: Generate release notes
43
+ if: steps.check_release.outputs.exists == 'false'
44
+ id: release_notes
45
+ run: |
46
+ chmod +x .github/workflows/scripts/generate-release-notes.sh
47
+ .github/workflows/scripts/generate-release-notes.sh ${{ steps.get_tag.outputs.new_version }} ${{ steps.get_tag.outputs.latest_tag }}
48
+ - name: Create GitHub Release
49
+ if: steps.check_release.outputs.exists == 'false'
50
+ run: |
51
+ chmod +x .github/workflows/scripts/create-github-release.sh
52
+ .github/workflows/scripts/create-github-release.sh ${{ steps.get_tag.outputs.new_version }}
53
+ env:
54
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
55
+ - name: Update version in pyproject.toml (for release artifacts only)
56
+ if: steps.check_release.outputs.exists == 'false'
57
+ run: |
58
+ chmod +x .github/workflows/scripts/update-version.sh
59
+ .github/workflows/scripts/update-version.sh ${{ steps.get_tag.outputs.new_version }}
60
+
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # check-release-exists.sh
5
+ # Check if a GitHub release already exists for the given version
6
+ # Usage: check-release-exists.sh <version>
7
+
8
+ if [[ $# -ne 1 ]]; then
9
+ echo "Usage: $0 <version>" >&2
10
+ exit 1
11
+ fi
12
+
13
+ VERSION="$1"
14
+
15
+ if gh release view "$VERSION" >/dev/null 2>&1; then
16
+ echo "exists=true" >> $GITHUB_OUTPUT
17
+ echo "Release $VERSION already exists, skipping..."
18
+ else
19
+ echo "exists=false" >> $GITHUB_OUTPUT
20
+ echo "Release $VERSION does not exist, proceeding..."
21
+ fi
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # create-github-release.sh
5
+ # Create a GitHub release with all template zip files
6
+ # Usage: create-github-release.sh <version>
7
+
8
+ if [[ $# -ne 1 ]]; then
9
+ echo "Usage: $0 <version>" >&2
10
+ exit 1
11
+ fi
12
+
13
+ VERSION="$1"
14
+
15
+ # Remove 'v' prefix from version for release title
16
+ VERSION_NO_V=${VERSION#v}
17
+
18
+ gh release create "$VERSION" \
19
+ .genreleases/spec-kit-template-copilot-sh-"$VERSION".zip \
20
+ .genreleases/spec-kit-template-copilot-ps-"$VERSION".zip \
21
+ .genreleases/spec-kit-template-claude-sh-"$VERSION".zip \
22
+ .genreleases/spec-kit-template-claude-ps-"$VERSION".zip \
23
+ .genreleases/spec-kit-template-gemini-sh-"$VERSION".zip \
24
+ .genreleases/spec-kit-template-gemini-ps-"$VERSION".zip \
25
+ .genreleases/spec-kit-template-cursor-agent-sh-"$VERSION".zip \
26
+ .genreleases/spec-kit-template-cursor-agent-ps-"$VERSION".zip \
27
+ .genreleases/spec-kit-template-opencode-sh-"$VERSION".zip \
28
+ .genreleases/spec-kit-template-opencode-ps-"$VERSION".zip \
29
+ .genreleases/spec-kit-template-qwen-sh-"$VERSION".zip \
30
+ .genreleases/spec-kit-template-qwen-ps-"$VERSION".zip \
31
+ .genreleases/spec-kit-template-windsurf-sh-"$VERSION".zip \
32
+ .genreleases/spec-kit-template-windsurf-ps-"$VERSION".zip \
33
+ .genreleases/spec-kit-template-codex-sh-"$VERSION".zip \
34
+ .genreleases/spec-kit-template-codex-ps-"$VERSION".zip \
35
+ .genreleases/spec-kit-template-kilocode-sh-"$VERSION".zip \
36
+ .genreleases/spec-kit-template-kilocode-ps-"$VERSION".zip \
37
+ .genreleases/spec-kit-template-auggie-sh-"$VERSION".zip \
38
+ .genreleases/spec-kit-template-auggie-ps-"$VERSION".zip \
39
+ .genreleases/spec-kit-template-roo-sh-"$VERSION".zip \
40
+ .genreleases/spec-kit-template-roo-ps-"$VERSION".zip \
41
+ .genreleases/spec-kit-template-codebuddy-sh-"$VERSION".zip \
42
+ .genreleases/spec-kit-template-codebuddy-ps-"$VERSION".zip \
43
+ .genreleases/spec-kit-template-amp-sh-"$VERSION".zip \
44
+ .genreleases/spec-kit-template-amp-ps-"$VERSION".zip \
45
+ .genreleases/spec-kit-template-q-sh-"$VERSION".zip \
46
+ .genreleases/spec-kit-template-q-ps-"$VERSION".zip \
47
+ --title "Spec Kit Templates - $VERSION_NO_V" \
48
+ --notes-file release_notes.md