Token导航 LogoToken导航

Agent Skill · 研究检索

ship(发布交付)

ship 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

ship 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为调用外部服务;许可证信息还不明确,第三方扫描有未通过项,按安装量在研究检索类的 73,675 个 Skill 里排第 71,089。

总安装 196周安装 8GitHub Stars 3下载 63核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ship(发布交付)
来源仓库:https://github.com/somnio-software/somnio-ai-tools
仓库路径:skills/ship
安装命令:
npx skills add https://github.com/somnio-software/somnio-ai-tools --skill ship
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/somnio-software/somnio-ai-tools --skill ship

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

用于查找、检索和筛选相关信息。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。适合在多种宿主环境中根据关键词快速定位内容。通过 npx skills add 命令从 somnio-ai-tools 仓库安装。使用前建议确认是否会触发联网或文件操作。

ship 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/ship

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/somnio-software/somnio-ai-tools --skill ship;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要调用外部服务,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

ship 怎么安装?

在终端执行 npx skills add https://github.com/somnio-software/somnio-ai-tools --skill ship。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

ship 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

ship 需要什么权限?

权限级别是调用外部服务。该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

ship 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

ship 用的人多吗?

公开数据是累计安装 196 次,近一周安装 8 次,下载 63 次,GitHub 3 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

ship 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
ship

发布交付 · 本页

1963调用外部服务未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Ship: Fully Automated Ship Workflow

You are running the /ship workflow. This is a non-interactive, fully automated workflow. Do NOT ask for confirmation at any step. The user said /ship which means DO IT. Run straight through and output the PR URL at the end.

Only stop for:

  • On the base branch (abort)
  • Merge conflicts that can't be auto-resolved (stop, show conflicts)
  • In-branch test failures (pre-existing failures are triaged, not auto-blocking)
  • Pre-landing review finds ASK items that need user judgment
  • MINOR or MAJOR version bump needed (ask — see Step 8)

Never stop for:

  • Uncommitted changes (always include them)
  • Version bump choice (auto-pick MICRO or PATCH — see Step 8)
  • CHANGELOG content (auto-generate from diff)
  • Commit message approval (auto-commit)

Re-run behavior (idempotency): Re-running /ship means "run the whole checklist again." Every verification step runs on every invocation. Only *actions* are idempotent:

  • Step 8: If VERSION already bumped, skip the bump but still read the version
  • Step 11: If already pushed, skip the push command
  • Step 12: If PR exists, update the body instead of creating a new PR

Step 0: Detect platform and base branch

First, detect the git hosting platform from the remote URL:

git remote get-url origin 2>/dev/null
  • If the URL contains "github.com" → platform is GitHub
  • Otherwise → unknown (use git-native commands only)

Determine which branch this PR targets, or the repo's default branch:

If GitHub:

  1. gh pr view --json baseRefName -q.baseRefName — if succeeds, use it
  2. gh repo view --json defaultBranchRef -q.defaultBranchRef.name — if succeeds, use it

Git-native fallback:

  1. git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||'
  2. If that fails: git rev-parse --verify origin/main 2>/dev/null → use main
  3. If that fails: git rev-parse --verify origin/master 2>/dev/null → use master

If all fail, fall back to main.

Print the detected base branch name. In every subsequent command, substitute the detected branch name wherever the instructions say "the base branch" or <base>.


Step 1: Pre-flight

  1. Check the current branch. If on the base branch, abort: "You're on the base branch. Ship from a feature branch."
  2. Run git status (never use -uall). Uncommitted changes are always included.
  3. Run git diff <base>...HEAD --stat and git log <base>..HEAD --oneline to understand what's being shipped.

Step 2: Merge the base branch (BEFORE tests)

Fetch and merge the base branch into the feature branch so tests run against the merged state:

git fetch origin <base> && git merge origin/<base> --no-edit

If there are merge conflicts: Try to auto-resolve if they are simple (VERSION, CHANGELOG ordering). If conflicts are complex or ambiguous, STOP and show them.

If already up to date: Continue silently.


Step 3: Run tests (on merged code)

Run the project's test and build pipeline:

pnpm run build 2>&1 | tee /tmp/ship_build.txt
pnpm run lint 2>&1 | tee /tmp/ship_lint.txt
pnpm run test 2>&1 | tee /tmp/ship_tests.txt

After all complete, read the output files and check pass/fail.

If any test fails: Do NOT immediately stop. Apply the Test Failure Ownership Triage:

Test Failure Ownership Triage

For each failing test:

  1. Get the files changed on this branch: git diff origin/<base>...HEAD --name-only
  2. Classify the failure:

- In-branch if: the failing test file or the code it tests was modified on this branch, OR you can trace the failure to a change in the branch diff. - Likely pre-existing if: neither the test file nor the code it tests was modified on this branch, AND the failure is unrelated to any branch change. - When ambiguous, default to in-branch.

  1. Handle in-branch failures: STOP. Show them and do not proceed.
  2. Handle pre-existing failures: Use AskUserQuestion: These test failures appear pre-existing (not caused by your branch changes): [list each failure with file:line and brief error] A) Investigate and fix now B) Skip — ship anyway

If all pass: Continue silently — note the counts briefly.


Step 4: Test Coverage Audit

Dispatch this step as a subagent using the Agent tool. The subagent runs the coverage audit in a fresh context window.

Subagent prompt: Pass the following instructions to the subagent, with <base> substituted:

You are running a ship-workflow test coverage audit for a NestJS monorepo with 4-layer Clean Architecture (domain, application, infrastructure, api). Run git diff <base>...HEAD to see what changed. Do not commit or push — report only. 1. Trace every codepath changed in the diff. Read every changed file (full file, not just diff). For each, trace data flow through every branch (if/else, switch, guard, early return, error path). 2. Check each branch against existing tests. For each function/method changed, search for corresponding .spec.ts files. Score quality: - ★★★ Tests behavior with edge cases AND error paths - ★★ Tests correct behavior, happy path only - ★ Smoke test / existence check / trivial assertion 3. Output ASCII coverage diagram: CODE PATH COVERAGE =========================== [+] src/application/units/commands/sync-unit.handler.ts ├── [★★★ TESTED] Happy path — sync-unit.handler.spec.ts:42 ├── [GAP] Error when unit not found — NO TEST └── [GAP] Partial update scenario — NO TEST 4. Generate tests for uncovered paths (if test framework exists): - Read 2-3 existing .spec.ts files to match conventions exactly - Generate unit tests. Mock external dependencies (TypeORM repos, external APIs). - Run each test. Passes → keep. Fails → fix once. Still fails → delete silently. After your analysis, output a single JSON object on the LAST LINE: {"coverage_pct":N,"gaps":N,"diagram":"<markdown diagram>","tests_added":["path",...]}

Parent processing:

  1. Parse the LAST line as JSON.
  2. Store for the PR body's ## Test Coverage section.
  3. Print: Coverage: {coverage_pct}%, {gaps} gaps. {tests_added.length} tests added.

If the subagent fails: Fall back to running the audit inline.


Step 5: Pre-Landing Review

Review the diff for structural issues that tests don't catch.

  1. Run git diff origin/<base> to get the full diff.
  2. Apply this review checklist in two passes:

Pass 1 (CRITICAL) — must fix before shipping:

  • SQL & Data Safety: Raw SQL with string interpolation, missing transactions on multi-table writes, missing WHERE on UPDATE/DELETE, unvalidated user input in queries
  • Security: Exposed secrets, missing gitignored files and directories properly, missing auth guards on endpoints, XSS via unsanitized output, CORS misconfiguration
  • Breaking Changes: Removed/renamed public API endpoints, changed response shapes, removed required fields

Pass 2 (INFORMATIONAL) — fix or note:

  • Architecture: Layer boundary violations (framework imports in domain/), DTOs mixed with entities, missing barrel exports
  • Error Handling: Inline string error messages (should use error enums), swallowed errors, missing Problem Details format
  • Performance: N+1 queries, missing pagination, unbounded queries, missing indexes
  • Code Quality: Dead code, orphan code, unused imports, duplicated logic, overly complex conditionals

Confidence Calibration

Every finding MUST include a confidence score (1-10):

ScoreMeaning
9-10Verified by reading specific code. Concrete bug demonstrated.
7-8High confidence pattern match. Very likely correct.
5-6Moderate. Could be a false positive. Show with caveat.
3-4Low confidence. Suppress from main report.
1-2Speculation. Only report if severity would be P0.

Finding format: [SEVERITY] (confidence: N/10) file:line — description

Fix-First Flow

  1. Classify each finding as AUTO-FIX or ASK:

- AUTO-FIX: Dead code removal, unused imports, missing barrel exports, obvious formatting - ASK: Anything that changes behavior, security fixes, architectural decisions

  1. Auto-fix all AUTO-FIX items. Output one line per fix: [AUTO-FIXED] [file:line] Problem → what you did
  2. If ASK items remain, present them in ONE AskUserQuestion:

- List each with severity, problem, recommended fix - Per-item options: A) Fix B) Skip

  1. After all fixes:

- If ANY fixes were applied: commit fixed files (git add <files> && git commit -m "fix: pre-landing review fixes"), then re-run tests (Step 3). - If no fixes applied: continue to Step 8.

  1. Output summary: Pre-Landing Review: N issues — M auto-fixed, K asked (J fixed, L skipped)

Step 6: Scope Drift Detection

Check: did the branch build what was stated — nothing more, nothing less?

  1. Read commit messages (git log origin/<base>..HEAD --oneline).
  2. Identify the stated intent from the branch name and commits.
  3. Run git diff origin/<base>...HEAD --stat and compare files changed against intent.
  4. Detect:

- SCOPE CREEP: Files changed that are unrelated to the stated intent - MISSING REQUIREMENTS: Expected work not present in the diff

  1. Output: Scope Check: [CLEAN / DRIFT DETECTED / REQUIREMENTS MISSING] Intent: <1-line summary> Delivered: <1-line summary>
  2. This is INFORMATIONAL — does not block. Continue.

Step 7: Plan Completion Audit

Dispatch as a subagent. Searches for an active plan file related to the current branch.

Subagent prompt:

You are running a ship-workflow plan completion audit. The base branch is <base>. 1. Search for plan files: find ~/.claude/plans ~/.gstack/projects -name "*.md" -mmin -1440 2>/dev/null | head -10 2. If a plan references the current branch, read it and extract every actionable item. 3. Cross-reference each item against git diff origin/<base>...HEAD. 4. Classify: DONE, PARTIAL, NOT DONE, CHANGED. Output JSON on the LAST LINE: {"total_items":N,"done":N,"changed":N,"deferred":N,"summary":"<markdown checklist>"}

Parent processing:

  • If deferred > 0: present deferred items via AskUserQuestion.
  • Embed summary in PR body.
  • If no plan file found: skip with "No plan file detected."

Step 8: Version bump (auto-decide)

Idempotency check: Compare VERSION against the base branch.

BASE_VERSION=$(git show origin/<base>:VERSION 2>/dev/null || echo "0.0.0.0")
CURRENT_VERSION=$(cat VERSION 2>/dev/null || echo "0.0.0.0")
echo "BASE: $BASE_VERSION  HEAD: $CURRENT_VERSION"
if [ "$CURRENT_VERSION" != "$BASE_VERSION" ]; then echo "ALREADY_BUMPED"; fi

If ALREADY_BUMPED, skip the bump but read the current version. Otherwise:

  1. Read VERSION (4-digit format: MAJOR.MINOR.PATCH.MICRO)
  2. Auto-decide the bump level:

- Count lines changed (git diff origin/<base>...HEAD --stat | tail -1) - MICRO (4th digit): < 50 lines changed, trivial tweaks, config - PATCH (3rd digit): 50+ lines, no feature signals - MINOR (2nd digit): ASK if feature signals detected (new routes, migrations, feat/ branch) - MAJOR (1st digit): ASK — only for milestones or breaking changes

  1. Compute and write the new version to VERSION.

Step 9: CHANGELOG (auto-generate)

  1. Read CHANGELOG.md header to know the format.
  2. Enumerate every commit: git log <base>..HEAD --oneline
  3. Read the full diff: git diff <base>...HEAD
  4. Group commits by theme (features, fixes, cleanup, infra).
  5. Write the CHANGELOG entry:

- Sections: ### Added, ### Changed, ### Fixed, ### Removed - Format: ## [X.Y.Z.W] - YYYY-MM-DD - Lead with what the user can now do that they couldn't before.

  1. Cross-check: every commit must map to at least one bullet point.

Step 10: Commit (bisectable chunks)

  1. Analyze the diff and group changes into logical commits.
  2. Commit ordering (earlier commits first):

- Infrastructure: migrations, config changes - Domain & Application: entities, value objects, use cases, services (with tests) - Infrastructure implementations: repositories, TypeORM entities (with tests) - API layer: controllers, DTOs (with tests) - VERSION + CHANGELOG: always in the final commit

  1. Rules:

- A service and its test file go in the same commit - Each commit must be independently valid — no broken imports - If total diff is small (< 50 lines across < 4 files), a single commit is fine

  1. Compose commit messages:

- Invoke the /git-commit-format skill using the Skill tool. - Never include Co-Authored-By or any AI attribution trailer (per project convention)


Step 11: Verification Gate

IRON LAW: NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.

Before pushing, re-verify if code changed during Steps 4-6:

  1. Re-run tests if ANY code changed after Step 3's test run: pnpm run build && pnpm run lint && pnpm run test
  2. Rationalization prevention:

- "Should work now" → RUN IT. - "I already tested earlier" → Code changed since then. Test again. - "It's a trivial change" → Trivial changes break production.

If tests fail here: STOP. Do not push.


Step 12: Push

Idempotency check:

BRANCH_NAME=$(git branch --show-current)
git fetch origin "$BRANCH_NAME" 2>/dev/null
LOCAL=$(git rev-parse HEAD)
REMOTE=$(git rev-parse "origin/$BRANCH_NAME" 2>/dev/null || echo "none")
echo "LOCAL: $LOCAL  REMOTE: $REMOTE"
[ "$LOCAL" = "$REMOTE" ] && echo "ALREADY_PUSHED" || echo "PUSH_NEEDED"

If ALREADY_PUSHED, skip. Otherwise:

git push -u origin "$BRANCH_NAME"

Step 13: Create PR

Idempotency check:

gh pr view --json url,number,state -q 'if .state == "OPEN" then "PR #\(.number): \(.url)" else "NO_PR" end' 2>/dev/null || echo "NO_PR"

If an open PR already exists: update the PR body using gh pr edit --body "...".

If no PR exists: create one.

The PR body should contain:

## Summary
<Summarize ALL changes. Group commits into logical sections. Every commit
must appear in at least one section.>

## Test Coverage
<Coverage diagram from Step 4, or "All new code paths have test coverage.">

## Pre-Landing Review
<Findings from Step 5, or "No issues found.">

## Scope Drift
<From Step 6, or omit if CLEAN>

## Plan Completion
<From Step 7, or "No plan file detected.">

## Test plan
- [x] TypeScript compilation passes (strict mode)
- [x] ESLint passes
- [x] All Jest tests pass (N tests)
- [x] No regressions in affected modules

Create the PR:

gh pr create --base <base> --title "<type>(<scope>): <summary>" --body "$(cat <<'EOF'
<PR body from above>
EOF
)"

Output the PR URL.


Important Rules

  • Never skip tests. If tests fail, stop.
  • Never force push. Use regular git push only.
  • Never ask for trivial confirmations (e.g., "ready to push?", "create PR?").
  • Always use the 4-digit version format from the VERSION file.
  • Date format in CHANGELOG: YYYY-MM-DD
  • Split commits for bisectability — each commit = one logical change.
  • Never push without fresh verification evidence. If code changed after Step 3 tests, re-run before pushing.
  • Never include Co-Authored-By trailers in commit messages (per project convention).
  • The goal is: user says /ship, next thing they see is the PR URL.

平台分布

Codex

38.13%
按下载量换算24

Claude

31.77%
按下载量换算20

Cursor

18.06%
按下载量换算11

Gemini CLI

8.86%
按下载量换算6

安全审计

Gen Agent Trust Hub

通过

Socket

可疑

Snyk

未通过

权限和风险

调用外部服务

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills