You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
docs: say how to replace an older install before specify init - #5004
In #4994 a fresh-looking install of specify-cli reports CLI 0.1.6, and specify init fails with No such option: --integration, then No matching release asset found for claude. The README tells you to run uv tool install specify-cli, and when specify-cli is already installed, that command keeps the installed version. uv still exits 0 and prints Installed 1 executable: specify, so it looks like it worked. uv tool upgrade specify-cli doesn't help either when the old install came from a Git tag. PyPI's oldest specify-cli release is 0.9.4, so 0.1.6 must be an earlier Git install that was left in place.
Reproduced with uv 0.12.21, using a scratch UV_TOOL_DIR/UV_TOOL_BIN_DIR:
$ uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v0.1.6
$ specify version # CLI Version 0.1.6
$ uv tool install specify-cli # exit 0: "Checked 22 packages ... Installed 1 executable: specify"
$ specify version # CLI Version 0.1.6
$ uv tool upgrade specify-cli # "Nothing to upgrade"
$ specify init demo --integration claudeNo such option: --integration
$ specify init demo --ai claude --script sh --ignore-agent-toolsNo matching release asset found for claude (expected pattern: spec-kit-template-claude-sh)Initialization failed: 1
$ uv tool install --force specify-cli
$ specify version # CLI Version 1.2.1
The same happens over a PyPI install: with 1.1.3 installed, uv tool install specify-cli keeps 1.1.3. pipx install specify-cli keeps it too (it does say to pass --force), and pip install specify-cli stops at Requirement already satisfied.
This PR adds that to the two places that show the install commands:
README.md, under the Get started commands: if Spec Kit is already installed, check specify version and reinstall with uv tool install --force specify-cli before specify init.
docs/installation.md, under "Install from PyPI": the same, with the pipx and pip equivalents (the commands docs/install/pypi.md already gives for upgrades), plus the two error messages an old CLI prints, so the page can be found by searching for them.
I didn't run the test suite, since nothing outside the two Markdown files changed. I ran every command in the description, plus the 1.1.3, pipx and pip cases, against PyPI and GitHub with uv 0.12.21, each in its own scratch tool directory.
AI Disclosure
I did not use AI assistance for this contribution
I did use AI assistance (fill in the disclosure below)
AI disclosure: Claude Code (model: claude-opus-5-5, default reasoning effort, autonomous) reproduced the install behaviour with uv, pipx and pip, wrote the docs change and this description, and made the commit (it carries an Assisted-by trailer). Extent: docs only.
`uv tool install specify-cli` keeps an already installed specify-cli,
so a machine with an old CLI (0.1.6 in github#4994) keeps it and `specify init`
fails. Note the --force/--upgrade commands next to the install commands.
Refs github#4994
Assisted-by: Claude Code (model: claude-opus-5-5, autonomous)
`pip install --upgrade specify-cli` doesn't replace a `uv tool` install,
so the old `specify` can stay first on PATH and `specify init` keeps
failing. Say to use the same tool as the original install, as
docs/install/pypi.md already does for upgrades.
Refs github#4994
Assisted-by: Codex CLI (model: gpt-6.1-sol, autonomous)
Assisted-by: Claude Code (model: claude-opus-5-5, autonomous)
Addressed Copilot's finding in 7bab9c8. The sentence on replacing an older install now says to use the same tool as the original install, since a different tool can install a second copy and leave the old specify first on PATH. That matches the Upgrade section of docs/install/pypi.md. Docs only; markdownlint passes on the file.
Drafted on behalf of @kartsan03 by Claude Code (model: claude-opus-5-5, autonomous). The docs change was made by Codex CLI (model: gpt-6.1-sol, autonomous) and reviewed by Claude Code.
The reason will be displayed to describe this comment to others. Learn more.
🟢 Approval recommended
The documentation matches existing upgrade guidance, with only optional editorial refinements remaining.
No open issues 🎉
1 previously missed issue
In code that hasn't changed since last review
Clarify CLI version comparison with the latest PyPI release
README.md:83
Optional: clarify what to compare the installed version against. specify version reports the installed CLI version, but does not say whether it is current. Both “if it's older” here and “Run specify version to check” in docs/installation.md:53 leave that comparison implicit. Link to the latest specify-cli release on PyPI in both notes and ask readers to compare its version with the reported CLI version.
`specify version` only prints the installed version, so "if it's older"
left the comparison to the reader. Link the latest specify-cli release on
PyPI in both notes and say to compare against it.
Refs github#4994
Assisted-by: Codex CLI (model: gpt-6.1-sol, autonomous)
Assisted-by: Claude Code (model: claude-opus-5-5, autonomous)
Addressed Copilot's optional README finding in 0635468. specify version only prints the installed version, so both notes (README and docs/installation.md) now link the latest specify-cli release on PyPI and say to compare the two before reinstalling. Docs only; markdownlint passes on both files.
Drafted on behalf of @kartsan03 by Claude Code (model: claude-opus-5-5, autonomous). The docs change was made by Codex CLI (model: gpt-6.1-sol, autonomous) and reviewed by Claude Code.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
triage-must-haveVerdict: high-value, important work for Spec Kit — do first
3 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
In #4994 a fresh-looking install of
specify-clireports CLI 0.1.6, andspecify initfails withNo such option: --integration, thenNo matching release asset found for claude. The README tells you to runuv tool install specify-cli, and whenspecify-cliis already installed, that command keeps the installed version. uv still exits 0 and printsInstalled 1 executable: specify, so it looks like it worked.uv tool upgrade specify-clidoesn't help either when the old install came from a Git tag. PyPI's oldestspecify-clirelease is 0.9.4, so 0.1.6 must be an earlier Git install that was left in place.Reproduced with uv 0.12.21, using a scratch
UV_TOOL_DIR/UV_TOOL_BIN_DIR:The same happens over a PyPI install: with 1.1.3 installed,
uv tool install specify-clikeeps 1.1.3.pipx install specify-clikeeps it too (it does say to pass--force), andpip install specify-clistops atRequirement already satisfied.This PR adds that to the two places that show the install commands:
README.md, under the Get started commands: if Spec Kit is already installed, checkspecify versionand reinstall withuv tool install --force specify-clibeforespecify init.docs/installation.md, under "Install from PyPI": the same, with thepipxandpipequivalents (the commandsdocs/install/pypi.mdalready gives for upgrades), plus the two error messages an old CLI prints, so the page can be found by searching for them.Docs only, +6 lines. Refs #4994
Testing
uv run specify --helpuv sync && uv run pytestI didn't run the test suite, since nothing outside the two Markdown files changed. I ran every command in the description, plus the 1.1.3, pipx and pip cases, against PyPI and GitHub with uv 0.12.21, each in its own scratch tool directory.
AI Disclosure
AI disclosure: Claude Code (model: claude-opus-5-5, default reasoning effort, autonomous) reproduced the install behaviour with uv, pipx and pip, wrote the docs change and this description, and made the commit (it carries an
Assisted-bytrailer). Extent: docs only.