标签 Git 下的文章

Clawdbot 对接飞书详细教程 手把手搭建你的专属 AI 助手

注意本教程在 Linux 系统下进行

Clawdbot 由于 Claude 的版权问题,已更名为 Moltbot,因此本教程基于最新版本编写。下面进入安装流程

首先准备一台闲置的云服务器或 VPS(推荐使用香港或海外节点)。由于 Clawdbot 运行时权限较大,出于安全考虑,不建议在本地或工作机上安装,推荐在一台独立的空服务器上部署。准备完成后,登录到服务器。

安装

如果你不想安装,可以直接使用阿里云的Clawdbot 一键部署,部署之后可以直接跳到对接飞书

第一步安装 Git

# 安装 Git
sudo apt update
sudo apt install git -y

第二步安装 Node.js

# 安装 NVM
# 国内使用 gitee 的镜像源
curl -o- https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh | bash

# 国外使用
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

# 重新加载环境变量
source ~/.bashrc

# 安装 Node.js 22
nvm install 22

# 查看 nodejs 版本
node -v # 输出 v22 即可,版本只要 22 就行

安装 Moltbot (原 Clawdbot)

# 使用官方脚本安装
curl -fsSL https://molt.bot/install.sh | bash
服务器在国内,如果安装失败的话,可能需要解决网络问题

其他平台安装方式请参考Moltbot (原Clawdbot) 安装文档

你会看到如下图输出
Clawdbot 安装过程 - AI 助手部署初始化
如果首次安装,时间会很长,需要耐心等待。
如果最后输出如下内容:

→ npm install failed; cleaning up and retrying...

新的脚本服务器内存要求变高了,据我使用下来 2G 内存,肯定会 OOM,如果出错的话,建议使用 swap 把硬盘空间当作交互内存使用。

成功之后会输出如下图片
Clawdbot 安装成功 - AI 机器人配置向导
第一个选项选择 yes, 就是询问你是否知道风险的。
第二步选择 QuickStart
Clawdbot QuickStart 快速开始选项
第三步选择模型服务商,这里选择 Qwen,免费额度充足,适合入门使用
Clawdbot 选择 AI 模型服务商 Qwen 千问
选择千问模型后,会提供一个链接,复制并在浏览器中打开,如下图
Clawdbot 千问模型授权链接
打开浏览器后,会看到如下界面。由于我已登录过,所以显示账户信息;如果尚未登录,按照提示完成登录即可。
Clawdbot 千问 AI 账户登录页面
登录完成后,会出现以下选项,提示选择对应的千问模型,如下图
Clawdbot 选择千问 AI 模型版本
选择默认模型即可。接下来会提示选择 channel,这里先跳过,后续再添加
Clawdbot channel 渠道配置选项
继续下面选择 skills,也是选择 No,如下图
Clawdbot skills 技能配置选项
继续下面选择 hooks,也是使用空格选择 No,如下图
Clawdbot hooks 配置选项
然后等待安装完成,最后会出现以下选项,这里选择 TUI
Clawdbot 选择 TUI 终端界面
如果看到 TUI 聊天界面,说明安装成功,可以尝试输入 Hello 进行测试。
Clawdbot TUI 聊天界面 - AI 助手对话测试
然后直接使用 ctrl+c 先关闭,后面我们再来设置

查看服务

可以使用下面的命令来查看

clawdbot status

会看到如下图的结果就说明服务启动了
Clawdbot 服务状态检查 - AI 助手运行中

访问 Web UI 面板

如何访问面板?服务监听在 http://127.0.0.1:18789/ 端口上,我们现在通过 ssh 隧道来访问,输入下面的命令

ssh -N -L 18789:127.0.0.1:18789 用户名@服务器IP
# 回车之后
用户名@服务器IP's password: # 输入密码

然后在浏览器打开 http://127.0.0.1:18789/, 你会看到 Dashboard 了,如下图
Clawdbot Web UI Dashboard 未授权页面
图中显示的是未授权状态,回到服务器,输入以下命令

clawdbot dashboard

会看到下面的面板数据
Clawdbot Dashboard URL 获取命令
复制对应的 Dashboard URL 到浏览器打开,即可正常查看聊天记录。
Clawdbot Web UI 管理面板 - AI 助手聊天记录

至此 Clawdbot 已安装完成,可以正常访问了。然后聊天框里面首次输入 Hello, Clawdbot 会询问你他应该叫什么,应该叫你什么。就是你需要给它设置个名字,还有 bot 改叫你什么。你可以在聊天框这么输入

Name: Clawdbot

My Name: Boss

对接飞书

首先安装飞书插件,输入以下命令

clawdbot plugins install @m1heng-clawd/feishu

登录飞书开放平台 https://open.feishu.cn,点击「开发者后台 -> 创建企业自建应用」,如下图
飞书开放平台创建企业自建应用 - Clawdbot 对接
然后点击创建应用,如下
飞书创建应用 - Clawdbot AI 机器人
创建完成后,首先到凭据管理中获取 App ID 和 App Secret,注意保存,后续配置需要使用。
飞书 App ID 和 App Secret 凭据管理
然后添加机器人,如下操作
飞书添加机器人能力 - Clawdbot AI 助手
首先配置个名字
飞书机器人名称配置 - Clawedbot

飞书的其他配置先暂停,回到服务器配置 Clawdbot 的飞书参数

添加飞书配置

clawdbot config set channels.feishu.appId "飞书 app id"

clawdbot config set channels.feishu.appSecret "飞书 app secret"

clawdbot config set channels.feishu.enabled true

# 推荐使用 websocket
clawdbot config set channels.feishu.connectionMode websocket

clawdbot config set channels.feishu.dmPolicy pairing

clawdbot config set channels.feishu.groupPolicy allowlist

clawdbot config set channels.feishu.requireMention true

配置完成之后,重启

clawdbot gateway restart

重启完成后回到飞书,找到「事件和回调」,选择长连接模式,如下图
飞书事件和回调配置 - Clawdbot 长连接模式
如果配置成功,说明连接已建立。继续下面的配置,添加事件,选择「接收消息」事件
飞书添加接收消息事件 - Clawdbot AI 助手
事件添加完成之后,还需要开通权限,有以下权限全部勾选

权限Scope(范围)Description(说明)
contact:user.base:readonly用户信息获取基础用户信息
im:message消息 全部勾选发送和接收消息

如下图
飞书权限配置 - Clawdbot 用户信息权限

飞书消息权限配置 - Clawdbot AI 机器人

以上步骤全部完成后,即可与机器人对话。但在此之前需要先创建一个版本
飞书应用版本发布 - Clawdbot AI 助手上线

注意:每次修改配置后都需要重新发布版本,建议全部配置完成后再统一发布。

发布完成后,回到飞书客户端,可以看到应用已上线,点击打开应用
飞书应用发布成功 - Clawdbot AI 机器人
向机器人发送 Hello,即可收到 Moltbot 的回复
飞书 Clawdbot AI 助手回复测试成功

如有勘误 还请指正

Clawdbot (moltbot) 对接飞书详细教程 手把手搭建你的专属 AI 助手

可以让 ai 在修改完代码后自动进行本地的一个提交,方便随时回退代码。
很多时候写代码忘记提交导致回退一个大版本心都死了!

  • 本地存档,绝不 Push

注意,这个 skill 默认自动执行,你也可以自己修改后手动执行(改改提示词的事~)

欢迎使用也欢迎 star。


📌 转载信息
原作者:
ryderwe
转载时间:
2026/1/24 06:40:06

只好自己做了

最主要还是交互: 用户直接把噪音很多的灵感写到 obsidian/tg/qq 等等 主要是需要顺手就发的交互 可以关键词限制

同步此灵感到 git 仓库

定时/检测到 git 仓库新增条目

自动分析新增条目 并先拆解任务 功能特性 验收标准邮件发送给用户

用户看到邮件/tg 消息可以补充或修改思路 直到终版文档批准

支持并行

llm 可以多开几个沙盒 yolo 模式 (可以歇斯底里 一直打磨 直到过验收或者用户检测)

返回最终项目到仓库并提醒用户查收

:反正额度用不完 赶紧造

Claude Code 的创造者 Boris Cherny 描述了他如何在Anthropic上使用 Claude Code,强调了诸如运行并行实例、共享学习成果、自动化提示和严格验证结果等实践,以随着时间的推移提高生产力。

 

Cherny 没有定制 Claude Code,因为他发现它开箱即用,非常好用,可以并行运行许多会话,包括在他的MacBook终端本地运行的 5 个会话和在 Anthropic 的网站上运行的 5-10 个会话。为了避免冲突,每个本地会话使用自己git checkout,而不是分支或工作树。他从 CLI 开始与&进行远程会话,并经常使用-teleport将它们来回移动。然而,由于意外情况,这些会话中有10-20%被放弃了。

 

Cherny 更喜欢使用 Opus 4.5 进行所有编码工作,他重视其比 Sonnet 更高的质量和可靠性,尽管 Sonnet 的速度较慢。他还发现 Opus 更擅长使用工具,并指出其总体上比小模型更快。

 

Anthropic 的每个团队都在 git 中维护一个CLAUDE.md文件,以便 Claude 可以随着时间的推移而改进,以及最佳实践,如风格约定、设计指南、PR模板等。Cherny 经常经常在同事的 PR 上使用@.claude标签,将学习成果添加到CLAUDE.md中,确保每个 PR 的知识都被保存下来。Cherny 说,目前,他们的CLAUDE.md有 2.5k 的 token。

 

他的工作流程的一个关键方面是,先制定一个计划,然后迭代完善,再切换到自动编辑:

 

如果我的目标是写一个 Pull Request,我会使用 Plan 模式,然后和 Claude 来回交流,直到我喜欢它的计划。从那里,我切换到自动接受编辑模式,Claude 通常可以一次性完成。一个好的计划真的很重要!

 

Cherny 使用斜杠命令执行提交、PR、简化和验证等日常工作流程来启动子智能体。所有的命令都存储在.claude/commands/中,这也有助于减少对明确提示的需求。

 

例如,Claude 和我每天使用/commit-push-pr 斜杠命令数十次。该命令使用内联 bash 预先计算 git 状态和其他一些信息,以使命令快速运行,并避免与模型来回切换。

 

虽然 Claude 的代码通常格式良好,但不一致有时会导致 CI 失败。为了防止这种情况发生,Cherny 运行了一个 PostToolUse 钩子来清理代码:

 

"PostToolUse" : [     "matcher": "WritelEdit",      "hooks": [                 {                       "type": "command",                       "command": "bun run format || true"                 }           ]
复制代码

 

出于安全考虑,Cherny 几乎从不使用--dangerously-skip-permissions。相反,他通过/permissions启用在他的环境中安全的常用 bash 命令。这省去了他在诸如bun run build:*bun run test:*cc:*等命令上不必要的许可提示。他使用--dangerously-skip-permissions的唯一情况是在沙箱中运行长期任务,以防止 Claude 重复停止。

 

最重要的技巧是给 Claude 提供一种通过反馈循环验证其工作的方法,例如运行 bash 命令、测试套件、或通过浏览器或模拟器测试应用程序。这可以将最终结果的质量提高 2-3 倍:

 

Claude 会使用 Claude Chrome 扩展测试我给他的每一个 claude.ai/code 变更。它打开一个浏览器,测试 UI,不断迭代,直到代码正常运行,用户体验很好。

 

总的来说,Cherny 解释说,这种工作流程让他的团队专注于代码审查和指导,并指出当工程师阅读 PR 时,代码已经处于良好的可用状态。

 

Cherny 的推文在 X.com 上引发了广泛的讨论,包括一些我们在这里包含的有用澄清,但请务必阅读原文以了解全部细节。

 

原文链接:

https://www.infoq.com/news/2026/01/claude-code-creator-workflow/

我再来说一次 vercel 自动部署问题。之前发过两个帖子,也有热心的网友帮我想办法,能自动部署后,我还是不甘心,想办法找出原因。今天问题终于找到了。也许对于高手来说,是个很弱智的错误。简单说一下怎么发现问题的。
我又做了个项目,https://www.cluesbysam.net/ ,这次提交到 git 后没自动部署。但是发现了问题。
在创建 git 项目的时候,选择 Private ,就不会自动部署。我之前能自动部署的那个项目,https://dreamyroomlevel.org/ 在 git 创建的时候,默认是 public ,我没改,结果就能自动部署。后来这个项目,我改成 Private ,更新代码后就不会自动部署。唉,太丢人了。

Claude Code 的创造者 Boris Cherny 描述了他如何在Anthropic上使用 Claude Code,强调了诸如运行并行实例、共享学习成果、自动化提示和严格验证结果等实践,以随着时间的推移提高生产力。

 

Cherny 没有定制 Claude Code,因为他发现它开箱即用,非常好用,可以并行运行许多会话,包括在他的MacBook终端本地运行的 5 个会话和在 Anthropic 的网站上运行的 5-10 个会话。为了避免冲突,每个本地会话使用自己git checkout,而不是分支或工作树。他从 CLI 开始与&进行远程会话,并经常使用-teleport将它们来回移动。然而,由于意外情况,这些会话中有10-20%被放弃了。

 

Cherny 更喜欢使用 Opus 4.5 进行所有编码工作,他重视其比 Sonnet 更高的质量和可靠性,尽管 Sonnet 的速度较慢。他还发现 Opus 更擅长使用工具,并指出其总体上比小模型更快。

 

Anthropic 的每个团队都在 git 中维护一个CLAUDE.md文件,以便 Claude 可以随着时间的推移而改进,以及最佳实践,如风格约定、设计指南、PR模板等。Cherny 经常经常在同事的 PR 上使用@.claude标签,将学习成果添加到CLAUDE.md中,确保每个 PR 的知识都被保存下来。Cherny 说,目前,他们的CLAUDE.md有 2.5k 的 token。

 

他的工作流程的一个关键方面是,先制定一个计划,然后迭代完善,再切换到自动编辑:

 

如果我的目标是写一个 Pull Request,我会使用 Plan 模式,然后和 Claude 来回交流,直到我喜欢它的计划。从那里,我切换到自动接受编辑模式,Claude 通常可以一次性完成。一个好的计划真的很重要!

 

Cherny 使用斜杠命令执行提交、PR、简化和验证等日常工作流程来启动子智能体。所有的命令都存储在.claude/commands/中,这也有助于减少对明确提示的需求。

 

例如,Claude 和我每天使用/commit-push-pr 斜杠命令数十次。该命令使用内联 bash 预先计算 git 状态和其他一些信息,以使命令快速运行,并避免与模型来回切换。

 

虽然 Claude 的代码通常格式良好,但不一致有时会导致 CI 失败。为了防止这种情况发生,Cherny 运行了一个 PostToolUse 钩子来清理代码:

 

"PostToolUse" : [     "matcher": "WritelEdit",      "hooks": [                 {                       "type": "command",                       "command": "bun run format || true"                 }           ]
复制代码

 

出于安全考虑,Cherny 几乎从不使用--dangerously-skip-permissions。相反,他通过/permissions启用在他的环境中安全的常用 bash 命令。这省去了他在诸如bun run build:*bun run test:*cc:*等命令上不必要的许可提示。他使用--dangerously-skip-permissions的唯一情况是在沙箱中运行长期任务,以防止 Claude 重复停止。

 

最重要的技巧是给 Claude 提供一种通过反馈循环验证其工作的方法,例如运行 bash 命令、测试套件、或通过浏览器或模拟器测试应用程序。这可以将最终结果的质量提高 2-3 倍:

 

Claude 会使用 Claude Chrome 扩展测试我给他的每一个 claude.ai/code 变更。它打开一个浏览器,测试 UI,不断迭代,直到代码正常运行,用户体验很好。

 

总的来说,Cherny 解释说,这种工作流程让他的团队专注于代码审查和指导,并指出当工程师阅读 PR 时,代码已经处于良好的可用状态。

 

Cherny 的推文在 X.com 上引发了广泛的讨论,包括一些我们在这里包含的有用澄清,但请务必阅读原文以了解全部细节。

 

https://www.infoq.com/news/2026/01/claude-code-creator-workflow/

去年底(距今也没有多久),发现我为上上家公司写的 Git 构建脚本还在用,于是我花业余时间写了一个新的脚本,用来构建仅依赖 libc 或者静态编译 Git 的项目,现在分享出来:https://github.com/baulk/git-minimal,旨在提供最新版无依赖的 git 二进制。

Release 可下载 deb/rpm/apk(alpine) 安装包,还有 tar.xz 压缩包(压缩包里有启动器,修正了路径和 SSL 证书,证书下载自 cURL 站点),压缩包(安装包)中还有开启了 HTTP/3 的 cURL 最新版本。

风味

包名 libc 可运行的系统
git-minimal glibc Linux ,x86_64 ,glibc >= 2.39
git-minimal-static glibc (静态链接) Linux ,x86_64
git-minimal-musl musl (静态链接) Linux ,x86_64/aarch64

由于 musl 的内存分配器比较差,git-minimal 在链接阶段链接了 mimalloc 。

序言

很多入职开发前的伙伴,可能或多或少接触过 git,

实际用的最多的命令也就是 git clone,git push,

以为 git 的流程也就这样,实则不然,实际上企业中的 git 流程,由五大分支构成

理论

提示

只有 main 主分支和 develop 开发分支是贯穿项目生命周期本身,其他分支都会中途离场
所以也说 maindevelop 是上二分支,其他分支是下三分支

  • 主分支 (main/master): 项目的生产发布分支,始终保持稳定可发布状态

  • 热修复分支 (hotfix/*): 从 main 分支创建,用于紧急修复线上 BUG, 修复后同时合并回 maindevelop

  • 开发分支 (develop): 日常开发的主分支,所有功能开发的集成分支

  • 特性分支 (feature/*): 从 develop 创建,开发新功能,完成后合并回 develop

  • 预发布分支 (release/*): 从 develop 创建,用于发布前的测试和最终调整,测试通过后合并回 main(打版本标签) 和 develop

分支合并关系

feature/* → develop

develop → release/*

release/* → main + develop

hotfix/* → main + develop

主分支

作用:存放 稳定 , 可随时部署到生产环境的代码

特点:

  • 分支上每一个提交对都应一个正式发布的版本

  • 不允许在此分支直接开发

  • 通常被打上版本标签 (如: v1.0.0 或 v20260101)

开发分支

作用:存放 最新开发成果 的集成分支,是功能开发的集线器

特点:

  • develop 分支上的代码到达稳定状态并准备发布时,会合并到 main 分支 (如果有 release 分支,则合并到此分支)

  • 所有功能的分支、发布分支都从 develop 分支拉取

功能分支

来源: develop

合并目标: develop

命令惯例:feature/user-authentication,feature/payment-integration

作用: 开发新功能

生命周期:

  • develop 分支拉取

  • 开发完成后,合并回 develop

  • 合并后,该功能分支通常被删除

发布分支

来源: develop

合并目标:developmain

命名惯例:release/1.2.0,release/2026-spring

作用:为发布新版本做准备。在此分支上,只做 BUG 修复 , 生成版本号 , 整理文档 等发布准备工作,不再添加新功能

生命周期:

  • develop 分支的功能足够进行一次发布时,从 develop 拉出 release 分支

  • 在此分支上进行最后的测试和修复

  • 准备就绪后,将 release 分支合并到 main 分支 并打上版本标签

  • 同时,必须合并回 develop 分支,因为 release 分支上修复的 BUG 可能 develop 分支上还没修复

热修复分支

来源:main

合并目标: maindevelop

命名惯例:hotfix/critical-security-patch,hotfix/1.2.1

作用:快速修复生产环境 (main 分支) 上的紧急 BUG

生命周期:

  • main 分支上出现 BUG 的提交点 (通常是最近的标签) 拉取

  • 修复完成后,合并回 main 分支并打上新的版本标签 (如:v1.0.1)

  • 同时,必须合并回 develop 分支,确保修复在后续开发中也生效

人话

恭喜你能看到这里,理论看起来确实是枯燥的,感谢你自己的坚持,

希望评论区就 gitflow 能展开相关讨论,而不是一味的刷 感谢分享 感谢大佬,

我分享文章也是希望有思想和经验上的交流碰撞

实际上,普通的开发入职后,如果有开发需求,一般都是从 develop 分支拉取代码后,

本地新建 feature/xxx 功能分支,在 feature/xxx 分支上进行开发的

功能开发到一定阶段后,比如一阶段完成了核心需求 (因为产品可能在开发内提出新需求,这很常见),

就可以合并到 develop 分支,develop 在积累了多个功能分支合并后,

就可以发布到 release 发布分支,这一分支不再接受新功能合并,只允许修补 BUG

这一过程就是提测,让测试工程师核验功能完整性,如果有 BUG 要及时修复

修复的时候拉取的是 release 分支,然后提交的时候也是推送到这个分支

release 分支准备完善 (修复了测试工程师检测到的 BUG), 就可以准备往主分支 (main) 发布了,

这就是一次完整的 git flow 发布流程,当然还有线上有 BUG, 需要做紧急修复

这个时候,就是直接拉取 main 分支并在本地创建热修复分支 hotfix,

在 BUG 被修复后,就可以合并回 main 分支 和 develop 分支了

是的,这里要注意,hotfix 要合并到 2 个分支里,

而不是 hotfix->main->develop 这是错误的做法 , 因为造成 develop 被 main 污染 (额外的标签记录以及其他)


大家有什么想法也可以在评论区里说一下,也可能有我没有讲到地方,大家也可以补充


📌 转载信息
原作者:
Waviness6884
转载时间:
2026/1/4 12:16:14

「代码审查不是为了证明你是对的,而是为了证明代码没有错。」

在传统的软件工程中,代码审查(Code Review)往往是最容易被忽视却又最关键的环节。开发者忙于交付功能,审查者碍于情面不愿直言,最终让带着缺陷的代码溜进生产环境。

今天,我要介绍一个颠覆性的 AI 代码审查工作流 —— 它不懂得「客气」,只懂得「找茬」。


一、什么是「对抗式」代码审查?

这个工作流的核心哲学很简单:NEVER accepts “looks good”(永远不要接受「看起来不错」)。

它被设计成一个持有批判立场的高级开发者,必须在每次审查中找出 3-10 个具体问题。这不是为了刁难,而是为了确保:

  • 任务标记为 [x] 的真的是完成了
  • 验收标准真的是实现了,不是糊弄
  • 代码质量经得起安全、性能、可维护性考验
description: "Perform an ADVERSARIAL Senior Developer code review
that finds 3-10 specific problems in every story. Challenges everything:
code quality, test coverage, architecture compliance, security, performance.
NEVER accepts `looks good`"


二、工作流全流程解析

步骤 1:加载故事 + 发现真相

审查的第一步是「对账」—— 对比开发者声称改了什么Git 仓库实际改了什么

git status --porcelain  # 找未提交的改动
git diff --name-only    # 看修改了哪些文件
git diff --cached --name-only  # 看暂存区的文件 

发现真相的三个维度:

  1. Git 有改动,但故事文件里没记录 → 文档不完整
  2. 故事声称改了文件,但 Git 没痕迹 → 虚假声明
  3. 有未提交改动没追踪 → 透明度问题

步骤 2:构建「攻击计划」

系统会自动提取:

  • 所有验收标准(Acceptance Criteria)
  • 所有任务及其完成状态
  • 开发者记录的文件列表

然后制定审查计划:

  1. AC 验证:每个验收标准真的实现了吗?
  2. 任务审计:每个打钩的任务真的完成了吗?
  3. 代码质量:安全、性能、可维护性
  4. 测试质量:是真测试还是占位符?

步骤 3:执行对抗式审查

这是最核心的环节。AI 会逐文件逐行检查:

🔴 CRITICAL ISSUES(必须修)
├── 任务标记 [x] 但实际没实现
├── 验收标准没有实现
├── 故事声称改了文件但 Git 无证据
└── 安全漏洞

🟡 MEDIUM ISSUES(应该修)
├── 改了文件但没记录到故事文件列表
├── 未提交的改动未追踪
├── 性能问题
├── 测试覆盖率/质量不足
└── 代码可维护性问题

🟢 LOW ISSUES(可以修)
├── 代码风格改进
├── 文档缺失
└── Git 提交信息质量

关键机制:如果发现问题少于 3 个,AI 会被要求继续深挖

<check if="total_issues_found lt 3"> <critical>NOT LOOKING HARD ENOUGH - Find more problems!</critical> <!-- 重新检查边界情况、架构违规、集成问题... --> </check> 

步骤 4:呈现发现 + 自动修复

审查结果呈现后,开发者有三种选择:

选项行动
自动修复AI 直接修改代码和测试
创建行动项将问题加入故事的待办任务
深入查看显示问题的详细解释和代码示例

步骤 5:状态同步

最后,系统会自动:

  1. 更新故事状态(done /in-progress)
  2. 同步到 sprint-status.yaml
  3. 记录审查历史到 Change Log


三、与传统 Code Review 的对比

维度传统 Code ReviewAI 对抗式审查
态度礼貌、顾忌直接、不留情面
覆盖度随机抽查100% 覆盖
速度依赖人工时间即时反馈
一致性审查者水平波动标准统一
可追溯口头讨论或零散记录结构化问题列表


四、实战案例示例

假设开发者提交了一个「用户认证」功能:

开发者声称:

[x] 实现登录 API
[x] 添加 JWT 验证
[x] 编写单元测试

AI 对抗式审查发现:

🔴 CRITICAL: 任务标记 [x] 但未实现
├── src/auth/login.ts:45 - JWT 密钥硬编码,应从环境变量读取
└── tests/auth.test.js - 所有测试都使用 t.skip() 跳过

🟡 MEDIUM: 性能问题
└── src/auth/login.ts:23 - 每次登录都查询数据库获取用户权限
   建议:使用 Redis 缓存用户权限

🟡 MEDIUM: 测试质量不足
└── tests/auth.test.js - 缺少错误场景测试(密码错误、用户不存在)

结果?开发者必须修复这些问题才能标记为「完成」。


五、真实对话记录

想看看 AI 对抗式代码审查的真实运行过程吗?

完整对话记录:对话记录 - Cascade Chat Conversation

在这个真实对话中,你可以看到 AI 如何:

  • 逐个检查验收标准的实现情况
  • 发现被标记为「完成」但实际上未完成的任务
  • 指出代码中的安全和性能问题
  • 要求开发者修复后才通过审查


六、工作流架构图

开发者提交代码

AI 对抗式审查

加载故事和 Git 变更

构建攻击计划

执行深度审查

发现问题数量 < 3?

继续深挖问题

输出审查结果

呈现问题列表

开发者选择

自动修复

创建行动项

深入查看

更新状态

同步到 sprint-status.yaml


七、如何集成到你的项目?

这个工作流是 BMAD v6 框架的一部分。基本集成步骤:

  1. 安装 BMAD v6: npx bmad-method@alpha install
  2. 实现故事/dev-story
  3. 触发审查/code-review


八、总结:为什么「找茬」很重要?

代码审查的本质是质量门禁。在 AI 辅助开发时代,我们不再需要人类做机械性的代码扫描,但我们需要一个永不妥协的质量守门员

这个 AI 代码审查工作流的独特价值在于:

  • 不讲人情:只认代码,不认关系
  • 事必躬亲:逐文件验证,不遗漏
  • 知识驱动:结合架构文档、项目上下文综合判断
  • 可自愈:发现问题时可以自动修复

正如工作流文档所说:

“YOU are so much better than the dev agent that wrote this slop”

这种「对抗」不是对抗开发者,而是对抗缺陷、对抗技术债务、对抗生产环境的故障。


延伸阅读



📌 转载信息
转载时间:
2026/1/2 21:51:33

整理一下自己各个平台长期在用的 Obsidian 插件

Android (HarmonyOS6 卓易通)

  • Self-hosted LiveSync

macOS

  • Self-hosted LiveSync

ArchLinux

  • Self-hosted LiveSync
  • Git
  • PlantUML
  • WakeTime

iPhone

  • Self-hosted LiveSync

总结一下主要插件的用途:

  • Self-hosted LiveSync:基于自建的 CouchDB 全平台实时同步数据,可以一键同步配置,很方便,很可靠。遇到冲突可以像 git 一样选择保留哪一个,一般很少遇到冲突,同步速递也算比较快。
  • Git: 仅在常用的一台设备安装,定时将笔记仓库自动 commit 并 push 到 git 做备份;
  • PlantUML:用于渲染 PlantUML 图示;
  • WakeTime:用于统计在 OB 平台编辑笔记的时间。

准备探索一下的插件

  • S3 Image Uploader:准备用于图片自动上传 S3。笔记里插入图片后的同步是个大问题,直接存在本地如果量大了同步负担太重。我目前使用自建的 Chevereto 生成外链插入,这种方式电脑操作还可以,手机操作负担太重了,所以找到这个自动上传 S3 的插件,还不知道效果怎么样,有空了再试试。OB 市场能搜到的大部分都是不支持移动设备,看这个是可以。

这个组合稳定用了很久了,欢迎补充


📌 转载信息
原作者:
qtls
转载时间:
2025/12/29 12:32:14