一个把代码库画成地图,一个把工程纪律压成 3.9KB:2.3K 星 Floorplan 和 6.6K 星 ub-mode

一个把代码库画成地图,一个把工程纪律压成 3.9KB:2.3K 星 Floorplan 和 6.6K 星 ub-mode

十月底这波 GitHub 新项目有个共同的转向:不再比谁的模型更强,而是收拾 AI 写代码留下的现场。Floorplan 2,285 星,10 月 27 日建仓,干的是“把你那个能跑但看不懂的项目,画成一张能点的地图”;ub-mode 6,590 星,10 月 25 日建仓,Uncle Bob 亲手写的,干的是“让 Agent 改代码时按工程规矩来”。一个负责看懂,一个负责写对。

Floorplan:给 AI 搭的项目补一张地图

你让 Claude Code 或 Codex 从零搭了个应用,跑起来了,但问一句“用户下单这条链路经过哪些文件、调了哪个接口、写了哪张表”,多半答不上来。Floorplan 就是冲这个来的:一个 Claude Code / Codex 插件,读你的代码库,给每个部分、每个文件、每个网络请求起一个人话名字——“在结账时收信用卡”,而不是“Stripe API wrapper”——再把它们之间的连接画出来。跨仓库也能对上:前端发出的请求,会匹配到另一个仓库里应答它的那个端点。

地图分四层:整个应用、某个部分、一组文件、单个文件和它的端点。每一层都标了“谁在用它”和“它在用什么”。还能直接在地图上提问,比如“退款怎么回到用户卡里”,返回一段答案加一张只包含相关零件的小地图,配一条按顺序走的说明。健康检查会翻出写死在代码里的密码、不用登录就能调的端点、没人用的文件、大到不敢改的文件,每条都给一段能直接粘给 Agent 的修复提示。

它只写自己那个 floorplan/ 目录(外加 CLAUDE.local.md 里的一小段),不碰你的代码,也不进 git;更新时只重读改动过的文件。Node 18+,零依赖,用你已有的 Claude 或 ChatGPT 套餐,不要 API key。目前 v0.2.0,17 个 open issue,早期项目该有的样子。

ub-mode:把工程纪律压成 3,958 字节

Uncle Bob(Robert C. Martin)10 月 25 日扔出来的,整个仓库三个文件:LICENSE、README、SKILL.md。SKILL.md 只有 3,958 字节,三段:

先跑通——一个决定只放一处、先把数据形状定死、写失败测试、从第一性原理重设计、攻击前提、先减后加、把活拆成可验证的小单元、该造工具就造工具;

再写对——修根因、测行为不测实现、CRAP 低于 10、结构重复低于 0.8、跑变异测试、重构;

最后留痕——记动作日志、守住上下文窗口、清 worktree、小步提交。

真正值钱的不是这些规矩(软件工程课上都有),是他配的三个能跑的闸门:crapper 算出每个函数的圈复杂度、覆盖率和 CRAP 分,CRAP 必须低于 10;dryer 查结构重复,相似度到 0.8 就算;mutator 跑变异测试,把测试没覆盖的、变异后还活着的都揪出来。再加一个 uml-viewer,把组件、覆盖率、CRAP、变异分数和依赖方向画在一张图上。装法就是把 SKILL.md 拷进 ~/.claude/skills/ub-mode/,然后 /ub-mode 调用。MIT,6,590 星,372 个 fork。

ub-mode 的改动流水线:先写失败测试,再做最小实现,过三道闸门,重构后小步提交
ub-mode 的改动流水线:闸门不过就回去改结构,行为不变才算过关(按 SKILL.md 与三个配套工具整理,点开看大图)

实话

两个项目都不是“新能力”,是新约束,而且边界都很清楚。

Floorplan 画出来的地图,是模型读完代码后写的描述,不是编译器或静态分析给出的事实。它说“改这里会影响结算”,可信度取决于模型有没有真读到那段代码;大仓库里漏读一段,地图就少一条线,而你看不出来。健康检查也只有四类问题,别当安全审计用——真要审计,Cloudflare 那套六阶段、每条发现都要能独立复现的路子更靠谱(之前写过)。

ub-mode 的规矩老得掉牙:TDD、CRAP、变异测试都是十几年前的东西。它的价值在于“写进 skill,让 Agent 每次都过一遍”,不在观点新。但闸门要你自己装、自己接 CI,而且只对能测的代码有效:前端样式、配置、构建脚本,CRAP 和变异测试基本使不上劲。Uncle Bob 有些主张很硬,比如“不要给编译器消音”“CRAP 必须低于 10”,小项目上照抄会显得教条——好在 skill 就是一段文本,改一行就行。

我的用法:先拿 Floorplan 把手上那个“能跑但不敢动”的项目过一遍,看清链路;再把 ub-mode 当 code review 的检查表,只取能落地的几条。两个加起来是“看懂 → 改对”的闭环。至于需求本身对不对,它们都管不了——那还是人的活。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注