К основному содержанию
скилл CX Codex

verify-and-ship — скилл для Claude Code: проверка и релиз

Скилл проводит изменения через проверку критериев задачи, тесты, обновление changelog, коммит и создание pull request.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add cyrusagents/cyrus --skill verify-and-ship -a claude-code
Открыть на GitHub

Что делает verify-and-ship

Скилл включается после того, как правки уже написаны, и доводит работу до пуша. Сначала он берёт детали задачи через инструмент трекера get_issue, вытаскивает оттуда критерии приёмки и сверяет с ними реализацию. Если явных критериев нет, проверка идёт по смыслу заголовка и описания.

Дальше объём проверок выбирается по характеру изменений. Для скриптов релиза, метаданных сборки, CI и правок документации хватает синтаксической проверки, безопасного dry run или просмотра артефактов — результат просто фиксируется в описании PR. Новые автотесты добавляются только тогда, когда ловят конкретный сбой, например публикацию не того артефакта. Прогонять весь набор тестов на каждой правке скилл не требует.

Потом обновляется CHANGELOG.md или CHANGELOG.internal.md: ветка сравнивается с базовой через git diff, и запись правится на месте, если для этой задачи она уже есть. Завершают всё коммит, пуш и создание или обновление PR/MR через gh либо glab. Скилл опирается на контекст задачи: базовую ветку, ссылку на репозиторий и имя бота. Без этих данных он не определит, куда пушить и какой базовый бранч указывать.

Какие задачи решает

  • сверить реализацию с критериями приёмки из задачи
  • выбрать объём проверок под характер правок, без лишнего прогона тестов
  • обновить запись в changelog вместо создания дубля
  • закоммитить и запушить ветку с понятным сообщением
  • создать черновик PR или MR и заполнить описание

Примеры запросов агенту

  • проверь изменения по критериям задачи и подготовь PR
  • обнови changelog и запушь ветку
  • создай draft MR в GitLab для этой задачи

Как установить verify-and-ship

1Через Skills CLI (Vercel)

npx skills add cyrusagents/cyrus --skill verify-and-ship -a claude-code

2Вручную: положить файлы

~/.claude/skills/verify-and-ship/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/verify-and-ship/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о verify-and-ship

Как установить verify-and-ship в Claude?

Выполните npx skills add cyrusagents/cyrus --skill verify-and-ship -a claude-code. Скилл окажется в ~/.claude/skills/verify-and-ship/SKILL.md.

Что делает verify-and-ship?

Проверяет изменения по критериям приёмки, выбирает подходящие проверки, обновляет changelog, коммитит, пушит и создаёт или обновляет pull request либо merge request.

Какие инструменты нужны для работы скилла?

Для GitHub используется gh, для GitLab — glab. Ещё скиллу нужен доступ к трекеру задач через get_issue, чтобы забрать критерии приёмки.

Исходный текст

SKILL.md · Apache-2.0
---
name: verify-and-ship
description: Choose proportionate validation, fix failures, update the changelog, commit, push, and create/update the pull request or merge request.
---

# Verify and Ship

After implementing your changes, follow these steps to verify quality and ship the work.

## 1. Acceptance Criteria Validation (CRITICAL)

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.

## 2. Quality Checks

Choose validation by changed behavior, risk, and existing coverage. Verification
is required; new automated tests and a full-suite run are not required for every
change. Follow repository-specific checks and CI gates where applicable.

- **Direct verification** — For routine release scripts, packaging/build metadata,
  CI, documentation, and instruction edits, prefer syntax checks, a safe dry run,
  artifact inspection, an isolated install smoke check, or a consistency review
  when those are sufficient. Record the command/result or review performed in
  the PR; no new test file or validation report is needed merely to show work.
- **Automated tests** — Run relevant existing tests. Add or retain a regression
  test only when it catches a concrete consequential failure and its protection
  justifies its maintenance. Examples include publishing the wrong artifact,
  unintentionally moving stable tags, or accepting invalid release evidence.
  Explain the failure each new test catches. Do not add brittle assertions on
  documentation wording or source text, tests that mirror implementation, or
  elaborate scaffolding for low-risk edits. A script filename alone neither
  requires tests nor exempts consequential behavior from protection.
- **Scope** — Broaden testing when shared behavior, failures, or unresolved risk
  warrants it; do not automatically run the full suite or generate coverage
  reports. Once sufficient checks pass, stop repeating them unless changes or
  new evidence justify another run. Investigate relevant failures rather than
  retrying unchanged commands. Report any unresolved failures honestly.
- **Lint, types, build** — Run checks relevant to the changed files and required
  repository gates. Fix introduced failures.
- **Review** — Check correctness, scope, and maintainability, including whether
  proposed tests provide useful protection.

Where the repository uses F1, apply its canonical
`skills/f1-test-drive/SKILL.md` applicability policy before invoking a drive or
requesting evidence. Nonapplicable changes need proportionate checks and a brief
PR note, without an F1 run or report. Do not infer an F1 requirement from this
skill. Preserve existing safeguards for consequential failures.

## 3. Changelog Update

Check if the project has changelog files:
```bash
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:

```bash
# 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:**
- If the diff shows this branch already added a changelog entry for the current issue (matching the issue identifier), **update that entry in-place** (e.g., to add the PR/MR link or refine the description). Do NOT add a duplicate entry.
- If the diff shows this branch added changelog entries for a different issue or no entries at all, add a new entry.

**Adding or updating entries:**
- Place entries under `## [Unreleased]` in the appropriate subsection (`### Added`, `### Changed`, `### Fixed`, `### Removed`)
- Focus on end-user impact — be concise but descriptive
- Include the Linear issue identifier and PR/MR link (format: `([ISSUE-ID](linear_url), [#NUMBER](PR_OR_MR_URL))`)
- Follow [Keep a Changelog](https://keepachangelog.com/) format

## 4. Commit and Push

- Stage all relevant changes (including changelog updates)
- Commit with clear, descriptive messages following the project's commit conventions
- Push to the remote repository

## 5. Create or Update PR/MR

Determine the platform from the repository context (`<github_url>` or `<gitlab_url>` in the issue context). Use the appropriate tool for the platform.

### GitHub (when `<github_url>` is present)

```bash
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 (when `<gitlab_url>` is present)

```bash
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"
```

### PR/MR Description

Update the PR/MR with a comprehensive description:
- **Assignee attribution**: If `<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)`.
- **Summary** of changes, implementation approach, and testing performed
- **Link** to the Linear issue
- **Cyrus marker**: Include `<!-- generated-by-cyrus -->` as a hidden HTML comment at the end of the body
- **Interaction tip**: Add this at the end (before the marker), using the bot username from `<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.

© cyrusagents · Apache-2.0 · cyrusagents/cyrus

Похожие скиллы

Все скиллы по теме «Git и GitHub» →
shepherd chrisbanes Отслеживает открытые pull request и merge request, разбирает замечания ревьюеров и падения CI, а также готовит правки к пушу. CX Codex +1 1 200установок stack kitlangton Скилл для работы со стеками PR и MR там, где ветки вливаются squash-мержем и удаляются. Помогает чинить и синхронизировать цепочки изменений. CX Codex +1 474установок conventional-git samber Скилл задаёт правила именования веток и коммитов по стандарту Conventional Commits v1.0.0. Помогает поддерживать чистую историю проекта в GitHub и GitLab. CX Codex +1 4 600установок ship-it jssblck Доводит завершённую правку до готового пул-реквеста: коммитит, пушит, открывает PR и следит за CI до зелёного. CX Codex +1 1 700установок pr-review-expert Alireza Rezvani Разбирает изменения в GitHub PR и GitLab MR: ищет риски безопасности, возможные поломки и пробелы в тестах. Пригодится перед слиянием изменений. 675установок secrets-in-git-history UseOSINT Скилл учит агента искать ключи, токены и адреса в истории git и на GitHub, а не только в текущем коде. CX Codex +1 1 900установок

Из того же набора18

cyrus-setup-slack Настраивает интеграцию Cyrus со Slack через приложение из готового манифеста. Нужен, когда агент должен отвечать на сообщения в каналах Slack. CX Codex +1 905установок summarize Скилл готовит итоговый отчёт о задаче для сессии агента в Linear. Пригодится, когда нужно структурировать статус работы без ручной отправки сообщений. CX Codex +1 886установок investigate Ищет файлы и функции в репозитории, собирает контекст и готовит ответ в формате Markdown для Linear. Пригодится при разборе задач и багов. CX Codex +1 863установок implementation Направляет агента при написании рабочего кода: требует соблюдать архитектурные паттерны проекта, обрабатывать ошибки и не делать лишних правок. CX Codex +1 850установок release Скилл проводит релиз Cyrus CLI через trusted-publishing: подготовка, проверка, публикация и финал. Пригодится, когда нужно выпустить версию, не трогая пакеты руками. CX Codex +1 829установок debug Разбирает баг от воспроизведения до минимального исправления. Нужен, когда важно найти причину ошибки и проверить результат. CX Codex +1 826установок f1-test-drive Проверяет, нужна ли F1-валидация для изменений, и проводит тестовый сценарий для затронутых рабочих процессов. CX Codex +1 804установок cyrus-setup-gitlab Настраивает glab и git-идентичность, чтобы Cyrus мог создавать ветки, коммиты и merge request'ы в вашем проекте. CX Codex +1 785установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой