一键导入
ship
GAS 扩展交付流水线。审查代码质量 → TypeCheck → 构建 → E2E 验证 → 提交 → 推送 → 打包 VSIX。触发方式:用户提及 "/ship"、"交付"、"提交推送"、"打包发布"、"ship it"、"发版" 等关键词时激活。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
GAS 扩展交付流水线。审查代码质量 → TypeCheck → 构建 → E2E 验证 → 提交 → 推送 → 打包 VSIX。触发方式:用户提及 "/ship"、"交付"、"提交推送"、"打包发布"、"ship it"、"发版" 等关键词时激活。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Manage a private Skill repository: search (local repo + skills.sh), install (to any agent directory), reference external skill repositories as git submodules, keep README and Wiki synchronized for every repository change, publish (version check + AI privacy audit + git push), and maintain ordinary personal-repository listings on skills.sh. Triggers on: "manage skills", "upload skill", "publish skill", "skill search", "skill repo", "skill upload", "reference skill repo", "update wiki", "技能仓库", "上传技能", "发布技能", "技能搜索", "引用技能仓库", "skills.sh 收录", "skills.sh.json", "技能页面分组".
通用 QA Engineer 技能。像真实用户和负责交付的工程师一样操作产品,用截图、日志、可见行为和可复现步骤验证质量,并把探索中发现的稳定路径自动总结为可复用测试用例。统一入口 /qa,支持 run / create / list / explore / loop / watch。触发方式:用户提及 "/qa"、"QA test"、"测试"、"E2E"、"验证 UI"、"回归测试"、"qa-loop"、"qa-watch" 等关键词时激活。
文件化自动 Goal 执行技能,适用于任何仓库或工作区。用于用户要求 auto-goal、Goal 模式、带 goal 文件的 Codex/Claude 原生目标模式、文件维护目标、自修正目标、人机协作目标、子代理辅助执行、跨 Codex/Claude/其他 agent 互操作目标、HTN 递归分解、HGoal 风格执行、Ponytail 风格最小实现审查,或 SkillOpt 风格的目标与流程迭代优化。
Maintain a repository's project Wiki and README as first-class release artifacts. Use when Codex changes repository behavior, adds or updates skills, changes architecture, modifies installation or usage flows, publishes a repository change, or the user asks to update wiki, README, docs index, project knowledge base, onboarding docs, changelog-adjacent documentation, or documentation freshness gates.
Helps users discover and install agent skills from skills.sh, the current skill repository, and referenced skill repositories under references/ when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities.
Create a human-in-the-loop watch skill for interactive tools, desktop apps, browser apps, IDE extensions, or E2E debugging workflows. Use when the user wants a new skill similar to watch-vscode: launch an environment, observe a human-driven session, capture evidence, diagnose issues, patch code, rebuild, restart, and continue the feedback loop.
| name | ship |
| version | 1.0.0 |
| description | GAS 扩展交付流水线。审查代码质量 → TypeCheck → 构建 → E2E 验证 → 提交 → 推送 → 打包 VSIX。触发方式:用户提及 "/ship"、"交付"、"提交推送"、"打包发布"、"ship it"、"发版" 等关键词时激活。 |
一站式交付:审查 → 构建 → 验证 → 提交 → 推送 → (可选)打包 VSIX。
/ship [options]
| 参数 | 说明 | 默认值 |
|---|---|---|
--skip-e2e | 跳过 Playwright E2E 验证 | 不设置 |
--skip-push | 仅 commit,不 push | 不设置 |
--vsix | 构建后打包 VSIX 安装包 | 不设置 |
--message "<msg>" | 自定义 commit message | 自动生成 |
在提交前执行全部质量检查。任何 ❌ 项都阻断流程。
cd packages/vscode-adapter
# TypeScript 类型检查(覆盖 core + vscode-adapter)
npx tsc --noEmit
# 构建(验证 esbuild 无报错)
pnpm build
cd packages/core
# Core 包类型检查
npx tsc --noEmit
# Core 单元测试
pnpm test
对 git diff --name-only 变更的 .ts 文件(排除 .test.ts、.d.ts),检查:
| 模式 | 严重性 | 说明 |
|---|---|---|
console.log | ❌ | 使用 VS Code OutputChannel 替代 |
any 类型 | ❌ | 必须有明确类型(eslint-disable 注释除外) |
非空断言 ! | ⚠️ | 尽量用 optional chaining 或 guard |
TODO / FIXME | ⚠️ | 确认是否应修复再提交 |
| 硬编码密钥/token | ❌ | 使用 SecretStorage |
在进入 commit 前,扫描 staged 文件内容,阻断以下信息进入仓库:
| 模式 | 严重性 | 说明 |
|---|---|---|
| 用户主目录绝对路径 | ❌ | 如 C:\\Users\\<name>、/Users/<name>、/home/<name> |
| 工作区/临时目录绝对路径 | ❌ | 如项目本机绝对路径、AppData、Temp、.codex、.ssh |
| 本地凭据/认证产物 | ❌ | 如 auth.json、cookie、session、refresh token、access token |
| 私有 API Key / Secret | ❌ | 如 sk-、ghp_、Bearer 、OPENAI_API_KEY= |
| 私有服务地址/账号 | ⚠️ | 仅本机可访问的 host、邮箱、用户名,需确认是否应脱敏 |
命中任一 ❌ → 停止 ship,先脱敏、改成占位符、或改为通过 SecretStorage / 环境变量读取。
检查 esbuild.mjs 中 format 是否为 'esm'。如果是 'cjs' → ❌ 阻断(扩展无法加载)。
cd packages/vscode-adapter
pnpm test:agent
启动 VS Code Insiders,执行 smoke test,截图验证。 如果 smoke test 失败 → ❌ 阻断。
## 审查报告
| 检查项 | 结果 |
|--------|------|
| tsc --noEmit (vscode-adapter) | ✅ / ❌ |
| tsc --noEmit (core) | ✅ / ❌ |
| pnpm build | ✅ / ❌ |
| pnpm test (core) | ✅ / ❌ |
| console.log | ✅ 无 / ❌ N处 |
| any 类型 | ✅ 无 / ❌ N处 |
| 本地敏感信息 | ✅ 无 / ❌ N处 |
| ESM format | ✅ / ❌ |
| E2E smoke test | ✅ / ⚠️ 跳过 / ❌ 失败 |
| .omm/ 架构文档 | ✅ 已更新 / ⚠️ 无需更新 |
有 ❌ → 停止流程,输出修复建议。
使用 oh-my-mermaid 保持 .omm/ 架构文档与代码同步。
检查 git diff --name-only 变更文件,如果包含以下路径则必须更新:
| 变更路径 | 影响的 omm 视角 |
|---|---|
packages/*/src/**/*.ts(非 .test.ts) | overall-architecture |
packages/*/package.json | overall-architecture(依赖关系可能变化) |
新增/删除 packages/*/src/ 目录 | overall-architecture + extension-points |
packages/*/src/events/** | data-flow |
packages/*/src/session/** | data-flow |
packages/*/src/capabilities/** | extension-points |
packages/*/src/runtime/** | extension-points |
如果变更文件仅涉及测试、文档、配置文件(.mdc、.md、.json 非 package.json),跳过此步骤。
对受影响的视角,读取变更文件的新内容,更新对应节点的 description.md 和 diagram.mmd。
规则:
.omm/ 子目录节点名称\n文件路径A -->|"关系说明"| Bgit status
git diff --stat
git log --oneline -5
分析 git diff --staged(或 git diff),按 Conventional Commits 生成:
<type>[scope]: <description>
| Type | 用途 |
|---|---|
feat | 新功能 |
fix | 修复 bug |
docs | 仅文档 |
refactor | 重构(无功能变化) |
test | 测试相关 |
build | 构建/依赖 |
chore | 杂项 |
git add -A
git commit -m "$(cat <<'EOF'
<type>[scope]: <description>
<optional body>
EOF
)"
安全检查:提交前扫描 staged 文件,绝不提交:
.env、*.key、credentials.jsonsk-、token、secret 字面值的文件.codex / .ssh / auth.json / cookie / session 凭据的文件除非 --skip-push:
git push origin <当前分支>
如果 push 失败(权限/冲突),输出诊断但不重试。
cd packages/vscode-adapter
pnpm package:vsix
输出 VSIX 文件路径和大小。
## Ship 完成
- 提交: <hash> <message>
- 分支: <branch> → origin/<branch>
- 变更: N files changed, +insertions, -deletions
- E2E: ✅ 通过 / ⚠️ 跳过
- VSIX: <path> (<size>) / 未打包
如果只想执行审查不提交,使用 /finish-work:
tsc --noEmit 两个包都通过?pnpm build 成功?pnpm test (core) 通过?console.log?any 类型?format: 'esm'?pnpm test:agent 截图正常?.omm/ 架构文档已同步?提交推送后需要创建 PR 时:
git push -u origin HEAD
gh pr create --title "<type>[scope]: <description>" --body "$(cat <<'EOF'
## Summary
<1-3 bullet points>
## Test plan
- [ ] `tsc --noEmit` passes
- [ ] `pnpm build` succeeds
- [ ] `pnpm test` passes
- [ ] `pnpm test:agent` screenshots verified
## Screenshots
<attach relevant dist/screenshots/*.png>
EOF
)"
git push --force(除非用户明确要求且不在 main/master)--no-verify 跳过 hooks开发流程:
编码 → 测试 → /ship → (可选 /create-pr)
│
┌────────────┼───────────┬──────────────┬─────────────┬──────────┐
↓ ↓ ↓ ↓ ↓ ↓
Phase 1 Phase 1.5 Phase 2 Phase 3 Phase 4 Phase 5
Review Arch Docs Commit Push Package Summary
├ tsc omm write Conventional origin/br VSIX
├ build 增量更新 Commits
├ test .omm/
├ patterns
└ E2E smoke
| 命令 | 职责 |
|---|---|
/finish-work | 仅审查清单(被 /ship Phase 1 调用) |
/ship | 审查 + 提交 + 推送 + (可选)打包(本命令) |
/create-pr | 推送后创建 GitHub PR |
/qa run | 单次场景 E2E 测试 |
/qa-loop | 测试→修复→回归循环 |