End-to-end change-shipping closed loop for non-trivial work — research → proposal doc → phased guarded implementation → PR self-review → harden → merge. Use when taking a substantial change from idea to merged PR, when a task needs a written proposal before code, when implementing in reversible phases behind a guarded commit chain (assert + test + verify, all green before commit), or when self-reviewing your own PR. Complements automating-devops (which is the git/CI/release knowledge reference); this skill is the orchestration spine that sequences a change from zero to merged.
npx skills add https://github.com/telagod/code-abyss --skill shipping-changes
<!-- safety-scan: ignore TOOLS_PRIVILEGED 知识型 skill,仅 Read;文中 git/gh/npm 命令由 agent 自有工具执行,非本 skill 落盘运行 -->
> 大改动不是一锤子。调研定题 → 提案对齐 → 分阶段守卫式推进 → PR 自审 → 补护栏 → 合并。每一关绿了才进下一关。
| 场景 | 使用 | 理由 |
|------|------|------|
| 一个改动牵动多文件 / 多模块 / 公共路径 | ✅ | 回归面大,值得先提案再施工 |
| 重构、架构调整、协议/格式变更 | ✅ | 需要写实蓝图 + 字段映射对齐 |
| 改动可拆成可独立 revert 的阶段 | ✅ | 守卫链分阶段,控爆炸半径 |
| 自审自己的 PR | ✅ | 用挑刺视角找自己埋的雷 |
关 0 调研定题 —— 摸清现状 + 业界最佳实践,定问题域(不臆造)
关 1 提案文档 —— docs/<topic>.md:诊断 + 蓝图 + 字段映射 + 迁移路径 + 风险回滚
关 2 对齐 —— 魔尊 review 提案;歧义/破坏性/高成本处停下确认
关 3 分阶段实现 —— 每阶段单一关注点、可独立 revert;单点 PoC 绿了再横推
关 4 守卫链提交 —— assert + test + verify 全绿才 commit;任一红即阻断,不提交
关 5 PR 自审 —— 挑刺视角过 diff,把发现挂到 PR 上(含已知取舍)
关 6 补护栏 —— 把自审揪出的隐患钉成测试,follow-up 推上分支
收口 合并 —— 确认 mergeable + CI 全绿 → merge → 同步本地 main
> 这是全链最值钱的一环——绝不提交未验证的改动。
# 守卫式链:前一步红,后续全部不执行(&& 短路),自然阻断提交
node /tmp/assert.js \ # 自定义不变量断言(如:零宏泄漏、无跨配串味)
&& npm test \ # 全量测试
&& npm run verify:skills \ # 项目专属闸门
&& git add -A && git commit -F msg.txt \
&& git push -u origin <branch>
> ⚠ 反模式(血泪):别把 test 与 commit 塞进同一个 { ...; ... } / ; 顺序块——块内命令各自独立执行,test 红了 commit 照样跑,守卫退化成「记录」而非「阻断」。必须用 && 串成短路链,让前一关的非零退出码真正掐断后续。改了源,先想哪条旧断言要同步改,否则 test 必红。
| 原则 | 说明 |
|------|------|
| 单一关注点 | 一阶段只做一类改动(接线 / 数据迁移 / 新增层 / 测试),便于 revert |
| 向后兼容优先 | 新路径在旧产物缺省时退化为旧行为(byte-compat),降低回归风险 |
| 单点 PoC + 低风险先行 | 先拿代表性目标开刀,纯增量/行为等价的阶段先做;绿了再横推、再推中高风险阶段 |
如果 abyss 可用(command -v abyss),提交前对每个修改过的函数跑影响面分析:
abyss impact <changed-function> --json
abyss map 中的 coupling 对挑刺视角,按等级分类挂到 PR:
> 自审要诚实标注「已知不一致仍在」「为兼容做的妥协」,而非粉饰。误报要核实后澄清(例:扫描器把角色名当人称漏网)。
mergeable=CLEAN + CI 全绿;合并后同步本地 main,删远端分支。参见 automating-devops——git/CI/release 的知识底座;本 skill 只管「怎么把一个改动从零推到合并」的编排。
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
Interact with Zotero reference management libraries using the pyzotero Python client. Retrieve, create, update, and delete items, collections, tags, and attachments via the Zotero Web API v3. Use this skill when working with Zotero libraries programmatically, managing bibliographic references, exporting citations, searching library contents, uploading PDF attachments, or building research automation workflows that integrate with Zotero.
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
Create, analyze, and visualize complex networks and graphs in Python with NetworkX. Use when working with network/graph data structures, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks (random, scale-free, small-world), reading/writing graph file formats, or drawing network topologies. Common applications include social, biological, transportation, and citation networks.
Use NeuroKit2 to build or audit reproducible research workflows for physiological time-series preprocessing, event/interval analysis, multimodal alignment, variability, and complexity. Trigger when code imports neurokit2 or needs its current APIs, schemas, and method-aware validation—not for diagnosis or device validation.
Interact with Zotero reference management libraries using the pyzotero Python client. Retrieve, create, update, and delete items, collections, tags, and attachments via the Zotero Web API v3. Use this skill when working with Zotero libraries programmatically, managing bibliographic references, exporting citations, searching library contents, uploading PDF attachments, or building research automation workflows that integrate with Zotero.
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
A practical, jargon-free guide to fp-ts functional programming - the 80/20 approach that gets results without the academic overhead. Use when writing TypeScript with fp-ts library.
Take telagod/shipping-changes from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.