MiniMax Code CLI 接上本地项目、改完先看 diff 再决定合不合

文章导读
MiniMax Code CLI 改出来的代码能不能直接信,取决于你有没有把审阅节点放在提交之前。比较稳的接法是:先让它只读、把项目结构摸清楚,再用一个小需求跑通「改—跑—测」闭环,然后逐个文件看 diff,最后决定是部分提交、整体还原,还是先扔到分支上。
📋 目录
  1. Ⅰ 让它先读项目结构再动手
  2. Ⅱ 用一个小需求跑完整的改-跑-测循环
  3. Ⅲ 逐个文件审 diff,标出顺带改动
  4. Ⅳ 在提交与丢弃之间做出选择
  5. Ⅴ 把跑顺的提示词和命令记成清单
A A

MiniMax Code CLI 改出来的代码能不能直接信,取决于你有没有把审阅节点放在提交之前。比较稳的接法是:先让它只读、把项目结构摸清楚,再用一个小需求跑通「改—跑—测」闭环,然后逐个文件看 diff,最后决定是部分提交、整体还原,还是先扔到分支上。

判断标准有三条:改动是否落在需求范围内的文件、测试是否真跑过、diff 是否能被逐行读懂。适用场景是本地已有 git 仓库的项目,操作上先隔离工作区,再用 git diff 分文件复核。风险边界是它可能顺带重构无关文件,这类改动先还原、再单独讨论,不要混进同一次提交。

让它先读项目结构再动手

在不了解目录组织的情况下让它动手,最常见的后果是文件放错位置、入口找错、测试跑不起来。所以第一步用只读提示词把它的注意力钉在结构上:

先不要修改任何文件。请完成三件事:
1. 列出仓库根目录和 src/ 下两级目录;
2. 标出入口文件、配置文件、测试目录的位置;
3. 给出你接下来计划读取的文件清单,并逐个说明为什么需要读。
输出完先等我确认,再动手。

把 src/ 换成你项目的主源码目录,把测试目录名换成 tests/、__tests__/ 或 spec/。计划读的文件清单如果明显跑偏(比如它盯上构建产物),说明结构提示还不够,先补充说明再放行。

记录它实际读了哪些文件,优先看会话日志或工具调用输出。多数这类 CLI 会打印读取目录、读取文件的调用记录,把标准输出落盘即可:

# 命令名与参数以你本地 `--help` 为准
minimax-code <你的参数> 2>&1 | tee session.log
git status `--short`

如果当前版本没有调用日志,可以退一步让它把读过的文件以列表回显,再用 git status `--short` 对照改动范围。要提醒的是,自报的清单只能当线索,不能当证据;真正可信的是日志和仓库状态。

用一个小需求跑完整的改-跑-测循环

选一个几十行以内的需求,例如给某个函数加一个边界判断、给某个接口补一个参数校验。任务描述模板:

目标:为 <模块> 增加 <具体行为>
允许修改:src/<模块>/
不要修改:依赖清单、lock 文件、其他模块
验收:<测试命令> 全部通过
完成后请输出:改动的文件清单 + 每处改动的理由

测试命令按语言替换,比如 npm test -- `--run`、pnpm vitest run、pytest -q tests/test_x.py、go test ./...、cargo test。动手之前先跑一次基线并记下结果,否则失败出现时你分不清是它引入的,还是本来就不绿。

测试失败后,把失败断言和堆栈直接贴回去,并加一句约束:

这是刚才的失败输出:
<粘贴失败断言与堆栈>
只修改导致失败的相关文件,不要重写整个模块,
不要修改测试用例来让它变绿。

最后这条约束很关键。它顺手改测试来通过验收,是这类工具最容易越界的一种行为,日志截断时保留失败断言和堆栈即可,不必把几千行输出全塞进去。

MiniMax Code CLI 接上本地项目、改完先看 diff 再决定合不合

逐个文件审 diff,标出顺带改动

先用 git status `--short` 看改动范围,再用 git diff `--stat` 看每个文件改了多少行。行数和需求规模明显不匹配的文件,优先打开细看;已经暂存的部分单独看:

git status `--short`
git diff `--stat`
git diff -- src/a.ts
git diff `--cached` -- src/a.ts

顺带改动的典型形态:整文件重新格式化、重命名与需求无关的变量、调整依赖版本、删除「看起来没用」的代码、顺手改注释和字符串。判断时问一句:这处改动和需求有因果关系吗?没有因果关系的,保留至少要满足两条——改动小且能读懂、有测试覆盖、能独立成一次提交、你能一句话说清它的收益。不满足就先还原:

git restore -- src/a.ts
# 老版本 git 用:git checkout -- src/a.ts

注意 git restore 会丢掉该文件全部未提交改动。如果里面还混着你要保留的部分,先 git add -p 把要留的块暂存,或者用 git stash push -u -m 'review' 存一份再还原。

在提交与丢弃之间做出选择

选择性提交的思路是:只把需求内的文件放进暂存区,工作区剩下的脏文件不参与本次提交。

git add -p                 # 逐块确认,混改文件用这个
git add src/a.ts src/b.ts  # 文件级隔离
l gt;git commit -m 'feat: xxx'

整体放弃:git restore .(老版本 git checkout -- .)。这个命令管不到未跟踪的新文件,先 git clean -n 看清楚会删什么,确认后再考虑 git clean -f。还想留个念想的,用 git stash push -u -m 'code-cli 尝试',之后随时 git stash list 找回来。

分支处理和主分支处理的差别在于回退成本。在分支上试(git switch -c try/xxx),不满意就切回去删分支,不会污染主干历史;直接在主干改,就得提前打点——先把干净状态提交掉,再让 CLI 动手,提交前把顺带改动清出去。团队仓库里更推荐前者,尤其是还摸不准它的改动风格时。

把跑顺的提示词和命令记成清单

把下面几条存成自己的片段(比如仓库里的 docs/code-cli-notes.md),下次同类任务直接复制,不用每次重想:

  1. 结构摸底:只读提示词 + tee session.log + git status `--short`,确认它读的文件和理由是否合理。
  2. 小需求改-跑-测:目标 / 允许修改 / 不要修改 / 验收命令 / 输出要求五段模板,配套 npm test -- `--run` 或 pytest -q、go test ./...。跑前先记基线。
  3. 失败回灌:粘贴失败断言与堆栈,附加约束「只改相关文件、不许改测试让它变绿」。
  4. 分文件审 diff:git status `--short` → git diff `--stat` → git diff -- <path> → git diff `--cached` -- <path>,逐文件过一遍再决定留哪些。
  5. 收尾三选一:要留的 git add -p && git commit;顺带改动 git restore -- <path>;整体放弃 git stash push -u -m 'code-cli 尝试' 或切回原分支删掉试错分支。

具体参数名和日志格式建议用本地 `--help` 和一次真实运行确认,不同版本可能不一样;命令与流程本身不依赖具体版本,换工具也能照搬。