| name | update-command-spec-version |
| description | Update the warp-command-signatures dependency hash in warp to the latest commit from warpdotdev/command-signatures:main.
|
Update Command Spec Version
This skill automates updating the warp-command-signatures git dependency in warpdotdev/warp to the latest commit on warpdotdev/command-signatures:main, then opens a PR with a summary of what changed.
All scripts live in this skill's scripts/ directory.
Prerequisites
gh CLI authenticated with access to warpdotdev/warp and warpdotdev/command-signatures
- SSH access to both repos (they use
ssh://git@github.com/warpdotdev/...)
- Python 3 (for
list_merged_prs.py)
- Rust toolchain with
cargo (for updating Cargo.lock)
Repo locations
The scripts resolve both repos dynamically (see scripts/common.sh) instead of
assuming fixed ~/warp / ~/command-signatures paths:
- command-signatures is inferred from the script location — these scripts
live inside the repo, so the enclosing git worktree is always used.
- warp is taken from the
WARP_DIR environment variable when set; otherwise
it is assumed to be a sibling of the command-signatures repo (same parent
directory, named warp). Export WARP_DIR=/path/to/warp if your checkout
lives elsewhere.
Step-by-step procedure
Run the scripts in order. The skill directory is wherever this SKILL.md lives; reference scripts relative to it.
1. Ensure repos are available
bash <skill-dir>/scripts/ensure_repos.sh
This fetches the command-signatures repo the scripts live in, and fetches (or
clones, if missing) the warp repo resolved from $WARP_DIR or the sibling
directory. See Repo locations above.
2. Get the current and latest hashes
OLD_HASH=$(bash <skill-dir>/scripts/get_current_hash.sh)
NEW_HASH=$(bash <skill-dir>/scripts/get_latest_hash.sh)
If OLD_HASH equals NEW_HASH, tell the user that command-signatures is already up to date and stop.
3. List merged PRs
python3 <skill-dir>/scripts/list_merged_prs.py "$OLD_HASH" "$NEW_HASH"
This outputs JSON with four keys: prs (all PRs), new_completions, bug_fixes, and other. Each entry has number and title.
Review the categorization. The script uses simple heuristics (titles starting with "add" → new completion, titles containing "fix" or "bug" → bug fix). Move any miscategorized entries before composing the description.
4. Create the branch and update dependencies
bash <skill-dir>/scripts/update_and_branch.sh "$NEW_HASH"
This checks out a new branch completions-bot/update-command-signatures-<first 8 chars of NEW_HASH> from origin/master in ~/warp, updates the rev in Cargo.toml, and syncs Cargo.lock.
5. Compose the PR description
Write a PR description following this structure (match the warp PR template). Save it to a temp file, e.g. /tmp/completions_pr_body.md.
## Description
Updates `warp-command-signatures` to <NEW_HASH short>.
### Merged PRs
- <PR title> (warpdotdev/command-signatures#<number>)
- <PR title> (warpdotdev/command-signatures#<number>)
- ...
## Changelog Entries for Stable
CHANGELOG-IMPROVEMENT: <single line covering all new completions, subcommands, generators, and updates>
CHANGELOG-BUG-FIX: <single line covering all bug fixes>
Guidelines for changelog entries:
- Write one
CHANGELOG-IMPROVEMENT line that summarizes all new completions and improvements. If there are many commands, use only their short names. For example: "Added completions for aws ec2, scp, claude, and docker-compose service names."
- Write one
CHANGELOG-BUG-FIX line that summarizes all bug fixes. For example: "Fixed npm install short-form command priority and HTML entity rendering in completion specs."
- Omit a changelog line entirely if there are no PRs in that category.
- If a PR doesn't fit either category, use your judgment — it may belong in the improvement line or may not warrant a changelog entry at all.
6. Submit the PR
bash <skill-dir>/scripts/submit_pr.sh "$NEW_HASH" <absolute_path_to_temp_description_file>
This commits the changes, pushes the branch, and opens a draft PR titled "[Completions] Bump command-signatures to <first 8 chars of NEW_HASH>" against master.