跳转至

智能提交

PRPs-agentic-eng 中 Wirasm 的改编。PRP 工作流系列的一部分。

输入: $ARGUMENTS


阶段 1 — 评估

git status --short

如果输出为空 → 停止:“没有可提交的内容。”

向用户显示变更摘要(新增、修改、删除、未跟踪)。


阶段 2 — 解释与暂存

解释 $ARGUMENTS 并确定暂存对象:

输入 解释 Git 命令
(空 / 未输入) 暂存全部 git add -A
staged 使用已暂存的内容 (无 git add)
*.ts 或 *.py 等 暂存匹配的 glob git add '*.ts'
except tests 暂存全部后,取消暂存测试 git add -A && git reset -- '**/*.test.*' '**/*.spec.*' '**/test_*' 2>/dev/null \|\| true
only new files 仅暂存未跟踪文件 git ls-files --others --exclude-standard \| grep . && git ls-files --others --exclude-standard \| xargs git add
the auth changes 从 status/diff 中解释 — 检测 auth 相关文件 git add <matched files>
特定文件名 暂存这些文件 git add <files>

对于自然语言输入(如 "the auth changes"),交叉引用 git status 输出和 git diff 以识别相关文件。向用户显示要暂存哪些文件以及原因。

git add <determined files>

暂存后,验证:

git diff --cached --stat

如果没有暂存任何内容,停止:“没有与说明匹配的文件。”


阶段 3 — 提交

创建单行命令式提交消息:

{type}: {description}

类型: - feat — 新功能或能力 - fix — 修复 bug - refactor — 不改变行为的代码重构 - docs — 文档变更 - test — 添加或更新测试 - chore — 构建、配置、依赖 - perf — 性能改进 - ci — CI/CD 变更

规则: - 使用命令式(用 "add feature" 而不是 "added feature") - 类型前缀后使用小写 - 末尾不加句号 - 不超过 72 个字符 - 描述 WHAT 发生了变化,而不是 HOW

git commit -m "{type}: {description}"

阶段 4 — 输出

向用户报告:

Committed: {hash_short}
Message:   {type}: {description}
Files:     {count} file(s) changed

Next steps:
  - git push           → リモートにプッシュ
  - /prp-pr            → プルリクエストを作成
  - /code-review       → プッシュ前にレビュー

示例

输入 行为
/prp-commit 暂存全部,自动生成消息
/prp-commit staged 仅提交已暂存的内容
/prp-commit *.ts 暂存并提交所有 TypeScript 文件
/prp-commit except tests 暂存除测试文件外的所有内容
/prp-commit the database migration 从 status 中检测并暂存数据库迁移文件
/prp-commit only new files 仅暂存未跟踪文件

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC