Skip to content

Conversation

raedkit
Copy link

@raedkit raedkit commented Sep 10, 2025

Description

This PR updates the release process to include a dedicated Windsurf package and modifies the CLI to use it directly, maintaining strict parity with the Copilot flow.

Key Changes

  1. Release Process:

    • Added a new sdd-windsurf-package build in both release.yml and manual-release.yml
    • The package includes .windsurf/workflows/ with the necessary workflow files
    • Published as spec-kit-template-windsurf-<version>.zip in GitHub Releases
  2. CLI Updates:

    • CLI directly downloads the Windsurf asset when --ai windsurf is used

@raedkit raedkit requested a review from localden as a code owner September 10, 2025 16:58
@raedkit raedkit mentioned this pull request Sep 10, 2025
specify init my-project --ai claude
specify init my-project --ai gemini
specify init my-project --ai copilot --no-git
specify init my-project --ai windsurf

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line 733 onwards: The elif block should have windsurf check as well.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sorry, but I don't get your point. Could you explain more precisely please ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cli checks for the existence of tools before initialising them: https://github.com/github/spec-kit/pull/151/files#diff-8e3e8dfe8740d05f4d06dd457ea293ec88ac0ecc9bba6eb182f0f767db67ce9eR733-R748

You need to add the check_tool call to include Windsurf

    # Check agent tools unless ignored
    if not ignore_agent_tools:
        agent_tool_missing = False
        if selected_ai == "claude":
          ...
        elif selected_ai == "windsurf":
            if not check_tool("windsurf", "Install from: https://windsurf.com/download"):
                console.print("[red]Error:[/red] Windsurf IDE is required for Windsurf projects")
                agent_tool_missing = True
          ...

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as stated in the README.md "The CLI will check if you have Claude Code or Gemini CLI installed." and this means it checks only the CLI commands not the IDEs like VSCode (used by Github Copilot).
If we change this, we need to do the same thing for VSCode for Github Copilot.

@localden
Copy link
Collaborator

@raedkit also just cross-checking, but do these commands actually work with Windsurf?

Their documentation is a bit ambiguous, stating that slash commands are not supported, but I also see that you're packing yours in workflows, which seem to be working fine.

@localden localden self-assigned this Sep 10, 2025
@localden localden added the merge-candidate Reasonable change that is going to be merged after a review. label Sep 10, 2025
@raedkit
Copy link
Author

raedkit commented Sep 10, 2025

@raedkit also just cross-checking, but do these commands actually work with Windsurf?

Their documentation is a bit ambiguous, stating that slash commands are not supported, but I also see that you're packing yours in workflows, which seem to be working fine.

It's working fine, but the issue is that Windsurf have its own plan file. Which means that there's an ephemeral memory that I'm unable to modify which remind him each while to check its plan and not tasks.md. But it works ..
Need some extensive testing, if someone else want to test it and give me his feedback

@localden localden added the needs-verification Pull request or bug report that requires validation and testing before it can be acted on. label Sep 10, 2025
@localden
Copy link
Collaborator

Tagging this as needs-verification to make sure that we're checking the changes before they merge. If this gets properly tested, zero issues with this going in.

@adam-paterson
Copy link
Contributor

@localden Fellow Windsurf user here, I'm happy to verify if you'd like?

specify init my-project --ai claude
specify init my-project --ai gemini
specify init my-project --ai copilot --no-git
specify init my-project --ai windsurf
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cli checks for the existence of tools before initialising them: https://github.com/github/spec-kit/pull/151/files#diff-8e3e8dfe8740d05f4d06dd457ea293ec88ac0ecc9bba6eb182f0f767db67ce9eR733-R748

You need to add the check_tool call to include Windsurf

    # Check agent tools unless ignored
    if not ignore_agent_tools:
        agent_tool_missing = False
        if selected_ai == "claude":
          ...
        elif selected_ai == "windsurf":
            if not check_tool("windsurf", "Install from: https://windsurf.com/download"):
                console.print("[red]Error:[/red] Windsurf IDE is required for Windsurf projects")
                agent_tool_missing = True
          ...

@localden
Copy link
Collaborator

@raedkit can you please incorporate the change suggestion from @adam-paterson? Also, please refresh your codebase with the latest main commits - looks like there are some conflicts that need to be resolved.

@raedkit
Copy link
Author

raedkit commented Sep 20, 2025

I see @localden has done all the necessary and integrated Windsurf. I will close this PR.
@localden are you OK with this ?

@raedkit raedkit closed this Sep 20, 2025
@localden
Copy link
Collaborator

Yep, thanks @raedkit - I'm making sure to reference your contribution in the changelog.

@topherfangio
Copy link

@localden @raedkit Are there any docs on how to use this new functionality?

@raedkit
Copy link
Author

raedkit commented Sep 22, 2025

@localden @raedkit Are there any docs on how to use this new functionality?

You could check the video published by @localden on YouTube. It's the same logic across all IDEs and CLIs.
You could find the video on README.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement merge-candidate Reasonable change that is going to be merged after a review. needs-verification Pull request or bug report that requires validation and testing before it can be acted on. new-agent
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants