ECC 智能提交(Smart Commit)实战指南:用自然语言精准定位文件,让 `/prp-commit` 自动完成 Git 暂存与提交

📅 发布时间:2026/9/10 10:44:24
ECC 智能提交(Smart Commit)实战指南:用自然语言精准定位文件,让 `/prp-commit` 自动完成 Git 暂存与提交
ECC 智能提交Smart Commit实战指南用自然语言精准定位文件让/prp-commit自动完成 Git 暂存与提交【免费下载链接】ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.项目地址: https://gitcode.com/GitHub_Trending/ev/ECC/prp-commit是 ECCThe agent harness performance optimization system命令体系中 PRP 工作流系列的一员它把「暂存哪些文件」这件 Git 操作中最容易出错的事交给自然语言来描述你只需说the auth changes、except tests或only new files命令就会自动解析意图、暂存对应文件、生成符合 Conventional Commits 规范的提交信息并完成提交。读完本文你将掌握该命令的四阶段执行模型、全部输入解析模式、提交信息规范以及它在 PRP 工作流PRD → Plan → Implement → Commit → PR中的精确位置与上下游衔接方式。命令概览面向 Agent 的自然语言快速提交/prp-commit的定义文件位于 commands/prp-commit.md在 docs/COMMAND-REGISTRY.json 的命令注册表中被登记为{ command: prp-commit, description: Quick commit with natural language file targeting — describe what to commit in plain English, type: testing, primaryAgents: [], allAgents: [], skills: [], path: commands/prp-commit.md }命令头部元信息定义了它的调用方式description自然语言指定文件的快速提交——用平实语言描述要提交什么日文版写作「自然言語でファイルを指定するクイックコミット」。argument-hint[ターゲットの説明]空欄 すべての変更即参数可空留空表示提交全部更改。输入$ARGUMENTS——用户在斜杠命令后附加的自然语言描述或文件名/glob。命令文档开头标注了出处PRPs-agentic-eng の Wirasm による適応。PRPワークフローシリーズの一部。改编自 Wirasm 的 PRPs-agentic-eng属于 PRP 工作流系列。它在仓库中拥有日文docs/ja-JP/commands/prp-commit.md和中文docs/zh-CN/commands/prp-commit.md等多语言版本便于不同语言环境的 Agent 与开发者使用。整个命令的执行被划分为四个阶段ASSESS评估→ INTERPRET STAGE解析与暂存→ COMMIT提交→ OUTPUT输出。下面逐一展开。阶段 1 — ASSESS先看清工作区现状任何提交的第一步都不是「动手」而是「看清现状」。命令首先执行git status --short如果输出为空 →立即停止并提示コミットするものがありません。没有可提交的内容。如果存在变更则向用户展示一份变更摘要区分四类状态新增added、修改modified、删除deleted、未跟踪untracked。这一步的价值在于它把「工作区到底发生了什么」显式呈现给用户为后续的自然语言解析提供事实基础——git status的输出不仅是给用户看的更是阶段 2 中用来「匹配自然语言描述」的检索语料。阶段 2 — INTERPRET STAGE解析意图并暂存这是整个命令的核心。它解析$ARGUMENTS将其映射到具体的 Git 暂存操作。原文档给出了完整的输入—解释—命令对照表输入解释Git 命令空白 / 未输入暂存所有内容git add -Astaged使用已暂存的内容不执行 git add*.ts或*.py等暂存匹配的 globgit add *.tsexcept tests全部暂存后取消暂存测试git add -A git reset -- **/*.test.* **/*.spec.* **/test_* 2/dev/null \|\| trueonly new files仅暂存未跟踪文件git ls-files --others --exclude-standard \| grep . git ls-files --others --exclude-standard \| xargs git addthe auth changes从 status/diff 中解释——检测 auth 相关文件git add 匹配到的文件具体文件名暂存这些文件git add files自然语言输入的处理方式对于the auth changes这类自然语言输入命令要求交叉引用git status输出与git diff来识别相关文件先看哪些文件发生了变更再结合 diff 内容判断哪些与用户描述的主题如认证 auth相关。关键要求是向用户展示你暂存了哪些文件、以及为什么暂存它们——这一透明性原则让 Agent 的自动判断始终处于用户的可监督之下。暂存后的强制验证无论以何种方式完成暂存随后都要执行验证git add 确定的文件 git diff --cached --stat若暂存区为空 →停止提示説明に一致するファイルがありません。没有文件匹配你的描述。这一「暂存后必验证」的机制从流程上杜绝了「命令执行成功但什么都没暂存」的静默失败——git diff --cached --stat是对暂存结果的客观确认。阶段 3 — COMMIT生成符合规范的提交信息暂存确认无误后命令以祈使语气生成单行提交信息格式为{type}: {description}类型type一览类型含义feat新功能或能力fix缺陷修复refactor不改变行为的代码重构docs文档变更test测试的新增或更新chore构建、配置、依赖perf性能改进ciCI/CD 变更这 8 种类型与 Conventional Commits 规范完全对齐确保了整个 PRP 工作流产出的提交历史风格统一——这一点在下游/prp-pr命令中会被直接复用prp-pr在分析提交时会按类型前缀归纳 PR 标题与变更摘要见 commands/prp-pr.md 的 Commit Analysis 部分。信息编写五条规则祈使语气写add feature而不是added feature类型前缀之后小写末尾不加句号72 字符以内描述「改了什么WHAT」而非「怎么改的HOW」。随后执行真正的提交git commit -m {type}: {description}阶段 4 — OUTPUT结构化汇报与下一步引导提交完成后命令以固定格式向用户汇报结果Committed: {hash_short} Message: {type}: {description} Files: {count} file(s) changed Next steps: - git push → 推送到远程 - /prp-pr → 创建拉取请求 - /code-review → 推送前进行审查这一输出同时承担了两个职责一是给出可验证的客观结果短哈希、提交信息、变更文件数二是衔接工作流的下游环节——git push推送远程、/prp-pr创建 PR、/code-review推送前审查。在 PRP 工作流中的位置与上下游衔接/prp-commit不是孤立命令它处于 ECC 的 PRPPlan-Review-Publish工作流链条之中。整套链条在commands/目录下依次为/prp-prd以问题优先、假设驱动的方式生成 PRD/prp-plan从 PRD 阶段生成包含全部模式、约定与验证命令的实施计划/prp-implement按计划逐任务执行并持续验证/prp-commit将实现成果以规范提交固化/prp-pr基于未推送的提交创建 Pull Request。从源码结构看这种衔接是双向的上游指向commands/prp-implement.md 的 Next Steps 明确写着Run /prp-commit to commit with a descriptive message即实现完成后下一步就是调用本命令下游依赖commands/prp-pr.md 在 VALIDATE 阶段检查工作区时若发现未提交的变更会提示Use /prp-commit to commit——提交信息的规范性直接影响后续 PR 标题与变更摘要的自动生成质量。实战示例速查原文档给出了 6 个典型调用场景覆盖了阶段 2 的各类输入模式你说实际发生/prp-commit暂存所有内容自动生成提交信息/prp-commit staged仅提交已经暂存的内容/prp-commit *.ts暂存所有 TypeScript 文件并提交/prp-commit except tests暂存除测试文件以外的所有内容/prp-commit the database migration从 status 中检出数据库迁移文件并暂存/prp-commit only new files仅暂存未跟踪文件最佳实践与使用建议结合命令定义与 PRP 工作流整体设计可以总结出以下使用要点留空即全量需要一次性提交所有变更时直接/prp-commit即可无需任何参数细分提交优先于大杂烩only new files、*.ts、except tests等模式允许你把不同类型的工作拆成语义清晰的多次提交这比一个大而全的提交更利于后续/prp-pr生成结构化 PR自然语言描述要对应「变更主题」而非「文件路径」如the auth changes、the database migration命令会依据git status与git diff做交叉匹配描述越贴近实际变更内容匹配越准确提交前留意输出中的验证信息阶段 2 的git diff --cached --stat与阶段 4 的 Files 计数都是确认「暂存了预期内容」的客观信号若出现没有文件匹配你的描述的停止提示应先确认描述与工作区变更是否一致遵循提交信息五条规则祈使语气、前缀后小写、无句号、72 字符内、写 WHAT 不写 HOW这些规则产出的规范提交历史正是 PRP 工作流下游自动生成 PR 标题与变更摘要的基础。小结/prp-commit用四个阶段把「评估工作区 → 解析自然语言意图 → 暂存 → 规范提交 → 汇报与衔接」串成了一条可预测、可验证的自动化链路。它在 ECC 命令体系中承担着 PRP 工作流「成果固化」的关键一环向下承接prp-implement的实现产出向上为prp-pr提供规范化的提交素材。对 Agent 使用者而言它把 Git 提交从「手工选择文件 手工写信息」降维为「一句话描述」同时用透明的暂存展示和强制验证保证了每一次提交都在用户的监督与确认之下。【免费下载链接】ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.项目地址: https://gitcode.com/GitHub_Trending/ev/ECC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考