Skip to content

specify integration upgrade exits 0 when nothing is installed: intended? #5338

Open

Description

@alfredoperez

What happens (v1.2.6 and main)
In a project with no integration recorded, specify integration upgrade prints No integration is currently installed. and exits 0. test_command_upgrade.py asserts that exit code, so it looks deliberate, which is why I'm asking rather than calling it a bug.

Why it matters
Tools and scripts chain upgrades, for example specify self upgrade && specify integration upgrade && .... Exit 0 reads as "upgraded", so the chain carries on and reports success when nothing changed. Our editor extension's Upgrade button hit exactly this.

Reproduction

cd "$(mktemp -d)" && git init -q && mkdir .specify
uvx -q --from git+https://github.com/github/spec-kit.git@v1.2.6 specify integration upgrade; echo "exit=$?"
# No integration is currently installed.
# exit=0

Proposed fix
In integrations/command_upgrade.py, raise typer.Exit(1) instead of typer.Exit(0) on that branch, and update the one test to expect 1. If you'd rather keep 0 for interactive use, a --strict flag that exits 1 would also work for scripts. I can open the PR either way.

AI disclosure: found and reproduced with Claude Code (Claude Opus 5.5, default settings) in a throwaway sandbox; I checked the code and the test before filing.

Activity

  1. added
    triage-must-haveVerdict: high-value, important work for Spec Kit — do first
    on Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    triage-must-haveVerdict: high-value, important work for Spec Kit — do first

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions