بنقرة واحدة
verify-and-ship
// Run all quality checks (tests, lint, typecheck), fix failures, update the changelog, commit, push, and create/update the pull request or merge request.
// Run all quality checks (tests, lint, typecheck), fix failures, update the changelog, commit, push, and create/update the pull request or merge request.
Configure GitHub for Cyrus — gh CLI login and git config for PRs, with optional webhook setup to enable @mention responses in PR comments, automated rebases and merges, and auto-fixing based on CI failures (coming soon).
Configure Slack integration for Cyrus — create a Slack app from manifest, then guide the user to save credentials.
Orchestrate F1 test drives to validate the Cyrus agent system end-to-end across issue-tracker, EdgeWorker, and activity rendering.
Invoke when dev-testing a Cyrus change that spans CYPACK (edgeworker + CLI) and CYHOST (Vercel-hosted GUI) and the hosted GUI needs to point at an unreleased `cyrus-core` from this repo. Publishes `cyrus-core` (and `claude-runner` if needed) as a `-test.N` prerelease under the npm `test` dist-tag so CYHOST can install it via `cyrus-core@test` without affecting the `latest` dist-tag or shipping a real release.
Create a Linear OAuth application and configure Cyrus to use it — supports agent-browser automation or guided manual setup.
Print a summary of the Cyrus setup and offer to start the agent.
| name | verify-and-ship |
| description | Run all quality checks (tests, lint, typecheck), fix failures, update the changelog, commit, push, and create/update the pull request or merge request. |
After implementing your changes, follow these steps to verify quality and ship the work.
Use the issue tracker get_issue tool to fetch the current issue details. Extract ALL acceptance criteria from the issue description and verify each one is satisfied by the implementation. If no explicit criteria exist, validate against the implied requirements from the issue title and description.
Run all applicable quality checks:
Check if the project has changelog files:
ls -la CHANGELOG.md CHANGELOG.internal.md 2>/dev/null || echo "NO_CHANGELOG"
If changelog files exist, diff against the base branch to detect entries already added by this branch:
# See what changelog lines this branch has added compared to the base branch
# Replace <base_branch> with the actual base branch from the issue context
git diff <base_branch> -- CHANGELOG.md CHANGELOG.internal.md 2>/dev/null
Handling existing entries:
Adding or updating entries:
## [Unreleased] in the appropriate subsection (### Added, ### Changed, ### Fixed, ### Removed)([ISSUE-ID](linear_url), [#NUMBER](PR_OR_MR_URL)))Determine the platform from the repository context (<github_url> or <gitlab_url> in the issue context). Use the appropriate tool for the platform.
<github_url> is present)git push -u origin HEAD
gh pr view --json url,number 2>/dev/null || gh pr create --draft --base [base_branch from context] --title "[descriptive title]" --body "Work in progress"
<gitlab_url> is present)git push -u origin HEAD
glab mr view 2>/dev/null || glab mr create --draft --target-branch [base_branch from context] --title "[descriptive title]" --description "Work in progress"
Update the PR/MR with a comprehensive description:
<github_username> is available in the assignee context, add Assignee: @username ([Display Name](linear_profile_url)) at the top of the body. If only a linear profile URL is available, use Assignee: [Display Name](linear_profile_url).<!-- generated-by-cyrus --> as a hidden HTML comment at the end of the body<github_bot_username> or <gitlab_bot_username> in the <agent_context> block of the system prompt. If <agent_context> is not present, default to cyrusagent:
---
> **Tip:** I will respond to comments that @ mention @<bot_username> on this PR/MR. You can also submit a review with all your feedback at once, and I will automatically wake up to address each comment.
Remove any "WIP:" or "Draft:" prefix from the title. Check <agent_guidance> — only mark the PR/MR as ready if guidance does NOT specify keeping them as drafts.
Verify the PR/MR targets the correct base branch from <base_branch> in the issue context.