-
Notifications
You must be signed in to change notification settings - Fork 5.1k
feat(shell): add fish support to check-prerequisites
#1359
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds fish shell support for the check-prerequisites script, providing an alternative implementation alongside the existing bash version. The script validates prerequisite files and directories for the Spec-Driven Development workflow.
- Implements fish shell version of prerequisite checking functionality
- Provides JSON and text output modes with various options (--json, --require-tasks, --include-tasks, --paths-only)
- Maintains consistency with the bash version's interface and behavior
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The functions check_file and check_dir are called but not defined in this script. According to the bash version in common.sh, these functions output a checkmark or X symbol based on whether a file/directory exists. They should be defined in common.fish (which doesn't exist) or within this script.
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These echo statements output two spaces instead of empty lines. For consistency with the bash version, these should be echo "" to output empty lines. The bash version uses empty lines in the help text for better readability.
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The script attempts to source a file common.fish that does not exist in the repository. This will cause the script to fail at runtime. The bash version references common.sh which exists, but there is no fish shell equivalent. You need to either create a common.fish file with the required functions and variables, or inline the necessary functionality into this script.
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The function get_feature_paths is called but not defined in this script. This function should be defined in common.fish (which doesn't exist) or within this script. According to the bash version, this function should output variable assignments for REPO_ROOT, CURRENT_BRANCH, HAS_GIT, FEATURE_DIR, FEATURE_SPEC, IMPL_PLAN, TASKS, RESEARCH, DATA_MODEL, QUICKSTART, and CONTRACTS_DIR.
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The function check_feature_branch is called but not defined in this script. This function should be defined in common.fish (which doesn't exist) or within this script. According to the bash version in common.sh, this function validates that the branch name follows the feature branch naming convention (NNN-feature-name format) and handles git/non-git repositories.
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variables RESEARCH, DATA_MODEL, CONTRACTS_DIR, and QUICKSTART are used here but are never defined in this script. These should be set by the get_feature_paths function output, but since that function is not available, these variables will be undefined, causing the conditional checks to fail.
No description provided.