Skip to content
Back to skills

Autopilot Commit

ASecurity

当用户需要提交代码、运行 git commit、或说"提交"时使用。

  • 27 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 12, 2026
ai-agentsbashreactgitapi

Works with

  • api

Security analysis

A100/100

Scanned October 12, 2026

npx -y skills add strzhao/autopilot --skill autopilot-commit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Autopilot Commit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Autopilot Commit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/strzhao-autopilot-commit/badge)](https://www.skillsdirectory.com/skills/strzhao-autopilot-commit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: autopilot-commit
description: 当用户需要提交代码、运行 git commit、或说"提交"时使用。
---

# Git 智能提交工作流

这是一个高效的 Git 提交工具,在提交前自动分析代码改动,调用相关优化技能,并生成高质量的提交信息。

## 核心原则

**信任 AI 的智能判断**:您已经具备强大的代码分析能力,本工具旨在提供框架而非限制您的判断。

**高自由度设计**:React 检测、优化应用、提交信息生成都依赖上下文判断,您可以根据具体情况选择最佳方法。

**简洁高效**:只提供必要的工作框架,避免过度指导。

**并行优先**:Phase 2 中的任务彼此独立,应在同一轮响应中并行发起(多个 Agent 或工具调用)。只有存在数据依赖时才串行等待。某个任务被跳过时不需要等待——直接标记跳过,继续推进。

**假设需要证据**:代码中对外部世界的假设(数据格式、接口行为、环境状态、第三方响应结构)不能仅凭文档或推理确认。提交前必须有运行时证据证明关键假设成立。这条原则贯穿 Bugfix 验证和代码理解测验。

## 上下文感知

autopilot-commit 有两种调用场景,需要智能判断并跳过多余步骤:

- **主链路模式**:当前项目根目录存在活跃 autopilot 状态文件(`.autopilot/runtime/active.ptr` 指向的 `.autopilot/runtime/requirements/<slug>/state.md`,worktree 中位于 `.autopilot/runtime/sessions/<name>/requirements/<slug>/state.md`)且 phase 为 `"merge"` → 代码已通过五层 QA,跳过 Phase 1.5(代码优化)、Bugfix 验证、代码理解测验。再优化可能破坏已验证状态。
- **独立模式**:其他所有情况 → 执行完整流程。

## 工作框架

创建一个简洁的任务列表来跟踪进度:

```
使用 TaskCreate 工具创建 Git 提交工作流:

Phase 1 — 基础分析(串行)
- [ ] 分析 Git 状态:检查可提交更改,分析改动内容和类型

Phase 1.5 — 代码优化(串行,会修改代码,后续任务需基于优化后的代码)
- [ ] 代码优化(条件性):检测 React 代码 + 调用优化技能 + 用户确认
      跳过条件:主链路模式 / 无需优化

Phase 2 — 独立任务(并行执行,基于优化后的代码)
- [ ] Bugfix 验证(主链路模式跳过)
- [ ] 代码理解测验(主链路模式跳过)
- [ ] 项目元数据更新(CLAUDE.md + 版本号)

Phase 3 — 收尾流程(串行,等待 Phase 2 全部完成)
- [ ] 执行智能提交 + 任务同步(ai-todo)+ 提交总结
```

**调度原则**:
- Phase 1.5 串行执行,因为代码优化会修改文件,后续 bugfix 验证和代码测验必须基于优化后的代码
- Phase 1.5 无需优化时直接跳过,不阻塞流程
- Phase 2 的任务之间没有数据依赖,应尽可能在一轮响应中并行发起
- 需要用户交互的任务(如代码测验)与其他任务同时发起,等待用户回答期间其他任务已完成
- 任何 Phase 2 任务的失败或跳过不阻塞其他任务
- Phase 3 必须等待 Phase 2 全部完成(包括用户交互结束)

## 关键决策点

### 1. 代码优化(Phase 1.5,串行)

**为何前置**:代码优化会修改文件,必须在 bugfix 验证和代码测验之前完成,否则后续任务验证的是优化前的代码。

自主判断改动中是否涉及 React/前端代码,决定调用哪些优化技能:
- **react best practice**:React 最佳实践(检测到 React 代码时调用)
- **code simple**:代码简化(建议总是调用)

调用前向用户展示建议的改动,获得确认后应用。技能调用失败时记录警告并跳过(优雅降级)。

### 2. Bugfix 验证

**目的**:bugfix 提交时,拿到运行时证据证明修复生效——"修了就要验"。

**触发条件**:commit type 为 `fix`。**无测试框架不等于跳过,而是切换验证模式。**

**两种验证模式**:

- **自动化测试模式**(项目有测试框架):找到或创建对应测试 → 补充 bug 场景用例 → 运行相关测试确认通过 → 测试文件加入暂存区。
- **运行时验证模式**(无测试框架,或 bug 涉及外部系统交互):实际执行代码路径,获取运行时输出作为证据。手段由 AI 自主判断——curl 调接口、写临时脚本跑一次、启动 dev server 手动触发、读日志——任何能产出可观察证据的方式都行。

**核心原则**:
- 一个 bug 一份证据,不过度扩展
- **假设需要证据**:如果修复依赖了对外部系统行为的假设(响应结构、字段名、状态码、数据格式),这些假设必须在提交前通过运行时手段验证。"我看了文档"不算证据,"我跑了一下,实际返回是 X"才算。
- 验证失败时报告详情,让用户决定是否继续提交

### 3. 提交信息生成

**语言**:全部使用中文(type 标签除外)

**格式**:`type(scope): 业务描述 (技术说明)`

- **业务描述**:用用户/产品视角说"发生了什么",简洁优先,一眼看懂
- **技术说明**:用括号补充技术实现,可省略

**type 选取**:
- `feat` 新功能 / `fix` 修复 / `perf` 性能 / `refactor` 重构
- `style` 样式 / `docs` 文档 / `chore` 杂项 / `test` 测试

**示例**:
```
feat(报告): 支持一键导出 PDF (新增导出 API + 前端按钮)
fix(登录): 修复登录后页面空白 (useEffect 缺少依赖导致重渲染)
perf(列表): 长列表滚动更流畅 (虚拟化渲染,DOM 节点从 500→30)
refactor(Auth): 简化鉴权逻辑 (合并重复的 token 校验分支)
chore: 升级依赖版本
```

**禁止**:
- 禁止英文描述(type 标签除外)
- 禁止堆砌技术词汇而忽略业务含义
- 禁止模糊措辞,如「优化代码」「更新逻辑」

### 4. 代码理解测验

**目的**:Vibe Coding 时代,开发者的核心价值是有效监督 AI 产出。测验聚焦"为什么"和"会怎样",而非代码表面细节。

**防合理化指南**:

| 借口 | 现实 |
|------|------|
| "改动很小,不需要测验" | 小改动也需要开发者理解上下文。 |
| "用户赶时间" | 跳过测验 = 让用户签收看不懂的代码。2 分钟的测验防止日后的维护灾难。 |
| "这只是重构,逻辑没变" | 重构改变了结构,开发者需要理解新结构的设计权衡。 |

**基本原则**:
- **智能跳过**:简单改动(格式、重命名、配置、注释、依赖更新)直接跳过
- **监督者视角**:问"如果我要对这段代码负责,我需要理解什么?"
- **聚焦决策层**:设计权衡、系统影响、失败模式——AI 不会主动告诉你的东西
- **远离细节层**:语法、API 参数、变量名、代码位置——这些是 AI 擅长的,不需要人记

**出题指南**:
- 使用 `AskUserQuestion`,1-2 道场景判断题
- 用"如果...会怎样"或"为什么不..."的句式,考察判断力而非记忆力
- **优先覆盖核心数据流假设**:代码对输入数据的结构、格式、字段名做了什么假设?这些假设错了会怎样?
- 示例:「选择 A 方案而非 B,牺牲了什么?」「如果上游返回的数据结构和预期不同,这段代码会怎样?」「这段代码假设了 X 的格式是 Y,这个假设的依据是什么?」

**答错处理**:
- 解释正确答案,引用具体代码
- 用户可选择重新作答或确认已理解后继续
- 目的是培养监督直觉,不是考试

### 5. 项目元数据更新

**两项子任务**,根据改动类型决定是否执行:

**a) CLAUDE.md 更新** — 当新增/删除模块、结构变化、配置变更、工作流调整时:
- 读取现有 CLAUDE.md → 对比改动 → Edit 最小化更新
- 跳过:纯代码修改(bug fix/重构/性能优化)、样式/测试/注释、CLAUDE.md 已在改动中
- 更新原则:最小改动、保持风格、事实优先(不写计划中的功能)
- 如果 `.autopilot/` 存在且有新增内容,确认 CLAUDE.md 中有对知识库目录的提及

**c) `.autopilot/` 知识库变更检查(始终执行,无论模式)**

无论主链路还是独立模式,本子任务都必须运行。目的是让 `.autopilot/knowledge/` 下的知识沉淀**主动浮现**到 commit 决策流,避免 AI 在 `git status` 满屏改动中遗漏掉知识库的更新。

执行步骤:

1. 运行 `git status --porcelain .autopilot/knowledge/`,列出该目录下所有未 staged / 未 commit 的改动
2. 若有改动 → 逐项 Read 改动文件(`decisions.md` / `patterns.md` / `index.md` / `domains/*.md`),判断是有效知识沉淀还是误编辑
3. 默认 stage 并随本次主提交一并 commit;若发现内容不属于本次任务(如他人遗留草稿),单独询问用户
4. 同时检查 `git status --porcelain .autopilot/runtime/` **必须为空**(runtime/ 应由 `.gitignore` 拦截)。若非空 → 警告:`.gitignore` 缺少 `.autopilot/runtime/` 规则或有误入库历史,建议运行 `/autopilot doctor` 排查

> 这条规则与 Layer 1(`.gitignore` 拓扑拦截)和 Layer 3(doctor Dim 12 巡检)共同构成三层防御。

**b) 版本号升级** — 当 commit type 为 `feat`/`fix`/`perf` 时:
- `feat` → minor 升级(1.2.x → 1.3.0),breaking change → major 升级
- `fix`/`perf` → patch 升级(1.2.0 → 1.2.1)
- **发现 → 更新 → 校验**:
  1. **发现**:读 CLAUDE.md 了解项目的版本文件分布规范,再用 `grep -rn '当前版本号'` 确认所有包含版本号的文件
  2. **更新**:逐个更新发现的版本文件,每个 `git add`
  3. **校验**:更新后再次 grep 确认所有版本文件的版本号一致,不一致则修正
- 跳过:chore/style/docs/test/refactor、WIP 提交

### 6. 任务同步

**目的**:提交完成后,将本次提交与任务管理系统同步,保持开发进度可追踪。

**前置检查**:使用 Bash 工具执行 `which ai-todo` 检查是否可用,不可用则静默跳过。

**执行步骤**:
1. **了解任务全局**:先运行 `ai-todo tasks:tree` 查看完整任务树
2. **命令发现**:通过 `ai-todo --help` 查看当前可用命令
3. **智能关联**:根据提交信息、分支名、改动内容,在任务树中找到最匹配的任务(优先在项目空间下匹配)
4. **更新进度**:关联到具体任务后,更新进度、添加工作日志、或标记完成
5. **创建新任务**:如果没有关联任务,根据任务树找到合适的父任务/项目空间,**在正确的层级下创建**
6. **优雅降级**:任何 ai-todo 操作失败都不应阻断已完成的 Git 提交

### 7. 提交总结

工作流最后一步,输出一个表格让用户快速掌握本次提交全貌。面向用户表达,不讲细碎技术点。多 git 仓库时分开说明。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.