关于 oma-scm
oma-scm 是用于执行 Git 操作和配置管理任务的技能,面向维护代码仓库历史、分支与发布流程的开发者。它强调明确操作范围、可追踪提交和可恢复历史。
主要功能
- 01检查工作区与变更
- 02按逻辑拆分提交
- 03遵循提交信息规范
- 04管理分支与历史操作
- 05推送前验证远程状态
适用场景
- 01按请求暂存并提交变更
- 02检查或处理分支与历史
- 03执行合并、变基及冲突处理
- 04审查发布和仓库配置管理
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gracefullight/ stock-checker --skill oma-scm安装后在 Claude Code 中输入/oma-scm确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
resources/cm-operations.mdcodeowners-playbook.mdconventional-commits.mdmerge-risk.mdonboarding-risk-signals.md详细介绍
软件配置管理
调度
目标
在明确范围内执行 Git 操作,确保提交可追溯且历史可恢复。
意图签名
- 提交、暂存、推送、创建分支、合并、变基、解决冲突、管理工作树,或检查 SCM 治理。
适用场景
- 提交和推送请求,包括 Conventional Commit 消息和逻辑拆分。
- 分支与历史操作、发布、基线、CODEOWNERS 和配置管理审查。
不适用场景
- 实现功能或修复应用代码 → 使用负责该领域的专家。
- 通用需求规划 → 使用
oma-pm;安全/测试审查 → 使用oma-qa。
预期输入
请求的 Git 操作、仓库状态,以及项目配置中生效的 scm 设置。
预期输出
请求的 Git 更改或建议计划、提交/分支标识、已执行的检查,以及未解决的工作。
依赖项
Git CLI;项目配置和钩子。仅针对所选操作阅读下方参考资料。
结构化流程
入口
检查分支、上游、已暂存/未暂存更改,以及现有授权。根据下方内容选择提交路径,或在涉及更广泛操作时选择配置管理资源。
转换
- 仅提交的请求:提交后结束。只有在用户请求或适用工作流要求时,才推送或创建 PR。
- 独立更改:按功能拆分。一个逻辑更改即使涉及代码、测试和文档,也应保持为一个提交;明确的分组指示优先。文件数仅作为平局时的判断依据(最多五个文件时倾向于合为一个提交)。
- 治理、工作树、发布或历史操作:加载
resources/cm-operations.md。 - 大型合并:在选择合并顺序或恢复步骤之前,加载
resources/merge-risk.md。 - 推送到默认分支:遵循下方的“推送与 PR 安全”部分。
失败与恢复
| 失败 | 恢复 |
|---|---|
| 存在无关的未提交或已暂存文件 | 将其排除在请求的提交之外;绝不要未经说明就将其并入 amend |
| 提交钩子拒绝消息 | 根据钩子要求修正消息或实际缺陷;不要绕过钩子 |
| 推送出现非快进错误 | 获取更新、检查分歧,并在本地整合;不要重试强制推送 |
| 存在冲突更改 | 保留双方意图,解决冲突,并在完成前运行受影响的检查 |
| 拟议差异中可能包含密钥 | 暂停暂存,并指出受影响的路径,不要暴露密钥值 |
退出
报告创建的提交/引用和验证结果。提交失败、推送被拒或冲突未解决,都不算完成。
逻辑操作
标准命令路径
- 检查工作树和近期惯例:
git status -sb git diff --staged git diff git log --oneline -5 - 根据“转换”选择逻辑提交组。阅读
resources/conventional-commits.md,了解消息语法、类型、页脚和分支命名;遵循仓库钩子/配置限制。 - 展示所选消息。暂存明确指定的路径,检查已暂存差异,并使用准备好的消息文件进行提交:
git add -- <specific-files> git diff --cached --check git diff --cached git commit -F <message-file> - 检查生成的提交和剩余工作树。如果请求了推送,则遵循“推送与 PR 安全”部分,然后报告远程结果。
防护措施
- 明确、无歧义的用户指令优先于 SCM 默认设置,包括提交分组和直接推送到默认分支。现有授权持续有效;不要再次请求授权。疑似机密的内容仍须在暂存前停止操作。
- 暂存明确指定的路径。未经明确授权,不要使用
git add -A或git add .,也绝不要包含凭据或机密文件。 - 未经明确授权,不要改写共享历史。获准改写时,使用
--force-with-lease,绝不要使用普通的--force。 - 修改提交前,先查看暂存区差异。未推送的提交可在请求范围内修改或重新整理;已推送的提交属于共享历史。
- 面向用户的回复遵循已配置的语言;提交信息、分支名称以及 PR 标题和正文均使用英文。
推送与 PR 安全(仅在收到请求时)
- 推送前确认分支、上游以及领先/落后状态。
- 如果
scm.require_pr_for_default_branch为 true,则默认分支变更应使用主题分支并创建 PR,除非用户明确要求直接推送。 - 保留仓库要求的钩子/检查。失败时必须修复或准确说明部分完成情况,不得声称操作成功。
- 确认请求的提交已到达目标远程分支。
修改、修正提交、自动压缩提交
如果存在上游,使用 git log --oneline @{u}..HEAD 判断目标提交是否已共享。如果没有上游,先检查远程引用,再判断提交是否未共享。不要将无关的暂存更改纳入操作。
资源范围与影响
Git 操作会更改索引、本地提交/引用、工作树,并可能更改远程引用。只读取相关的项目配置;绝不要在消息或报告中复制凭据值。授权与验证请遵循 .agents/skills/_shared/core/execution-policy.md。
参考
- 提交语法、类型、共同作者政策和分支命名:提交请求参阅
resources/conventional-commits.md - 配置管理操作:治理/历史/工作树任务参阅
resources/cm-operations.md - 合并风险与回滚:大型合并参阅
resources/merge-risk.md - 归属详情:CODEOWNERS 工作参阅
resources/codeowners-playbook.md - 入门风险指标:仓库风险评估参阅
resources/onboarding-risk-signals.md - 发布可观测性:发布标记与基线比较参阅
../oma-observability/SKILL.md§Integrations
评论
支持 Markdown