mcpField
F
finish-work

finish-work

github.com/fixmyberlin开发055 次安装2 天前更新
代码仓库

关于 finish-work

面向仓库或单体仓库包开发者的收尾技能,用于验证改动、暂存相关文件并规范提交信息,同时遵守不提交请求且未经允许不推送。

主要功能

  1. 01运行项目检查并修复失败
  2. 02仅暂存相关改动
  3. 03使用结构化提交信息
  4. 04遵守明确的不提交请求
  5. 05未经允许不推送

适用场景

  1. 01完成一项已实现的改动
  2. 02验证并提交修复
  3. 03准备提交说明但不提交

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fixmyberlin/fixmyskills --skill finish-work

安装后在 Claude Code 中输入/finish-work确认已加载。

详细介绍

原文在翻译后有更新,译文可能不是最新。

完成工作

在项目根目录运行,或在每个有变更的 monorepo 包(app/、processing/ 等)中运行。

工作流

  1. 验证:读取 package.json 中的 scripts.check,运行 bun run check,修复根本原因,然后重新运行,直到检查通过。lint/format 可能会重写文件。
  2. 将修复放在一起:把 lint/format 变更与功能变更一起暂存;不要单独提交“lint”或“format”提交。
  3. 按照下方格式编写提交消息。
  4. 默认:提交。 除非用户明确表示不想提交,否则按下方的提交流程操作。
  5. 只有在明确表示不提交时才仅起草。 显示提交消息并停止;不要运行 git commit。

不提交的意图包括:明确推迟(“不要提交”“仅起草”“仅要消息”“提交消息会是什么”)、仅要求检查/修复(未要求收尾的“运行检查”“修复 lint”“修复 CI”)、仅审查或提问,或用户表示会自行提交。

意图模糊时,优先提交——尤其是在实现变更后,或用户调用 finish-work 来收尾时。

提交流程:并行运行 git status、git diff 和 git log -5;仅暂存相关文件;通过 HEREDOC 运行 git commit;运行 git status 进行验证。

安全须知:未经要求不要推送。不要使用 --no-verify。不要 amend 已推送的提交。不要暂存密钥或无关的未提交文件。

如果已经提交,而验证仅修复了 lint/format:当 HEAD 尚未推送时,运行 git commit --amend --no-edit;否则暂存后先询问是否要 amend。

E2E 不在 check 中。对于 UI/路由/认证变更,还要运行 bun run e2e(或在有定义时运行 check-full)。参阅 playwright-skill。

脚本名称:参阅 package-json-scripts.md。

提交消息

<Topic>: <Desc>

- <user-facing outcome bullet>
Ping https://github.com/org/repo/pull/123
  • Topic: 范围(Map、Auth、Processing、Dev 等)。FMC 仅限内部的变更(依赖项、CI、工具)使用 Dev。
  • Desc: 描述期望结果,使用祈使语气,而非文件名。
  • Body: 使用项目符号说明合并后用户/运维人员能看到、执行或获得什么。如对话中已说明原因,请一并写明。聚焦结果;不要罗列文件、符号、重构或 diff 步骤。Body 会用于 user-changelog,因此即使不看补丁也应清晰易懂。
  • Ping: 如果用户提到了 PR/issue,为每项添加一行 Ping <full-url>。

示例:

Region map: clamp initial viewport to bounds

- Users: map fits selected region on load instead of generic Germany view (confusing deep links)
- Preserve explicit zoom in URL so shared links do not jump
Ping https://github.com/FixMyBerlin/tilda-geo/issues/5678

仅限内部的变更(没有面向用户的变化):可以使用维护者视角的项目符号;若没有相关内容,则省略面向用户的项目符号。

相关

close-worktree(将 worktree 合并到 develop;有未提交变更时会调用此技能) | unslop-code(LLM 后清理;每个阶段提交时都会调用此技能) | playwright-skill | tech-stack | review-dependabot / babysit | user-changelog

评论

支持 Markdown