2 人 + AI · 方法论交付物

用 AI 安全重构
大型系统到 Cosmos

一页最小内核 就能开始:5W2H 逐级确认 + 安全网兜底,把大型遗留后端增量迁移到 Cosmos。
诊断阶段零风险——关卡④确认前,不改一行代码。

1页就能开始
10步可复制 SOP
5条硬约束
0诊断期代码改动
SCROLL
START · 砍无可砍的核心

一页最小内核,读完就能开干

不用先读完所有文档、不用先搭一堆前置。agent 读这一页,挑个低风险模块,就能安全地开始、一个个滚下去。深度(全景测绘 / 架构 / gateway)按需再取。

约束(违反即回滚)

行为等价API 冻结前端不改 不迁数据小步可回滚没绿不算完成
红线:动这个模块前先有它的网(没网不是重构,是乱改)· 重构与功能不混 commit · 测试没绿 / diff≠0 不提交

核心循环(一次一个模块,滚起来)

  1. 选 1 个低风险模块(别从最难的开始)
  2. 先建网:录它的真实行为为 golden 测试 + 锁对外契约
  3. 在稳定接缝(gateway/ACL)后实现 Cosmos 新版
  4. 影子 diff:旧 vs 新 → diff=0 且测试绿 → 提交
  5. 任一不过 → 修复或回滚,不降标准假装通过 → 滚下一个
CORE PRINCIPLE · 主要矛盾论

先抓主要矛盾,
否则再多技巧都是绕远路

超大型项目重构最难的从来不是 Cosmos、不是 LLM、不是性能——而是「系统认知量 ≫ AI/单人上下文」。这条总矛盾解决了,下面 10 步才滚得动;这条卡住,做再多次要矛盾的优化都没用。

总主要矛盾

系统认知量 ≫ 单次上下文

大项目无法被 AI 或单人一次吃透。强行整库分析 → 上下文爆炸、AI 走神、改完不知道改了什么。

解法:切片理解、切片执行;每片单独问"这片的主要矛盾是什么"。understand 分批 + brainstorming 锁主线 + loop 接力。

每模块主要矛盾

动手前的三句强制问

  1. 这模块为什么非重构不可?(性能?耦合?技术债?业务规则错?)
  2. 本次非动不可的是什么?哪些是分心的次要矛盾?
  3. 解决这一个,能让别的连带好解决吗?

规则:每模块开 brainstorming 列 ≥3 个候选;主要矛盾未确认前禁止编码。

Why it matters

为什么这套能托住大型重构

直接让 LLM 改大项目,常只做表面、引入 bug、权限过宽。这套把风险关进笼子:先对齐、后动手,每步可证、可回滚。

零风险诊断

分析→演示→访谈→出方案,全程不改代码。先看清值不值得迁。

安全网守护等价

characterization + 契约 golden + 影子 diff,用旧系统真实行为兜每一步。

增量可回滚

Strangler-Fig 逐模块替换,旧系统全程在跑、不迁数据,异常秒级回滚。

2 人 + AI

小团队推进大型迁移。深度(架构/gateway/拓展性)按需取,不是开始门槛。

10 STEPS · 大项目重构 SOP

十步可复制:左边人类做什么,
右边复制给 AI

每步两条线:左栏一句话告诉你下一步做什么;右栏一段提示词直接复制给 Claude。AI 会按规矩走、停下等你确认,方向错了当场拦截——而不是写完一堆代码才发现跑偏。

PHASE A · 装备
01

装好 cc.gjs.ink 整套配置

主要矛盾:AI 没工具 = 赤手空拳

你做

在你要重构的项目目录下打开 Claude Code,把右边那段直接发给它。AI 会自己访问 cc.gjs.ink 拉最新安装步骤,装好 3 插件 + 34 Skill + MCP,全程保留你已有的全局配置。

站点 down 或想锁版本 → 看 RUNBOOK 兜底命令。

→ Claude 报告安装成功 + 你重启 Claude Code

复制给 Claude
访问 https://cc.gjs.ink/ ,读取页面上提供的「一键安装提示词」,然后照它执行,把这套 Claude Code 增强配置(来自 hongnono-wdh/claude-config,含插件 + Skill + MCP)装好。要求:
1. 严格按页面上最新的步骤执行;
2. 保留我已有的全局配置,绝不整体覆盖;
3. 每一步执行后确认成功,最后逐项验证安装结果;
4. 装完告诉我需要重启 Claude Code,让插件 / Skill 生效。
PHASE B · 看清楚(理解阶段,零代码改动)
02

验证 understand-anything + superpowers 可用

主要矛盾:工具缺一不可,先验再用

你做

cc.gjs.ink 那一步已经把 understand-anything、superpowers 装在内。重启 Claude Code 后第一件事是让它**自检 skill 列表**,缺哪个补哪个。

→ 7 个 understand-* + brainstorming 全部可调用。

复制给 Claude
重启后第一件事:确认下面这些 skill 已经全部可用:
- /understand · /understand-dashboard · /understand-explain
- /understand-domain · /understand-diff · /understand-chat · /understand-onboard
- /brainstorming · /dispatching-parallel-agents · /executing-plans · /loop
任何一个缺失,按 RUNBOOK.md 的兜底列表补装:
  /plugin marketplace add Lum1104/Understand-Anything
  /plugin install understand-anything@understand-anything
  /plugin install superpowers@claude-plugins-official
全部齐了再告诉我,齐了才能进下一步。
03

用 understand 建知识图谱

主要矛盾:先切片再吃,避免上下文爆炸

你做

让 AI 评估代码量级,决定整库还是分批 understand。大库(>30 万行 或 >5000 文件)禁止整库 understand——开销爆炸。只对核心业务域分批建,外围/平台跳过。

→ 图谱产物路径 + 覆盖范围 + 跳过原因清单都明确。

复制给 Claude
我要重构这个项目,先建知识图谱:
1. 用 ls / find / wc / git ls-files 评估代码量级:文件数、总行数、顶级目录数。
2. 决策:
   - 文件数 < 5000 或总行数 < 30 万 → 整库 /understand。
   - 否则 → 不要全仓 understand(开销爆炸)。先列顶级模块清单,按"核心业务域"分批,只对核心域跑 /understand <子目录>,外围/平台代码跳过。
3. 报告:图谱产物路径、覆盖了哪些目录、跳过了哪些目录(说明为什么跳)。
建图谱期间禁止改任何代码,禁止进入下一步。
04

打开 understand 面板查看模块

主要矛盾:图谱可能错,人必须亲眼对一次

你做

让 AI 启动 dashboard,你自己也要逛 5 分钟——不能全交给 AI。图谱是 AI 产物可能算错,后面三关都基于它,人眼对一次是保命动作。

→ dashboard 可访问 + 你抽查 2-3 核心模块 + AI 列出算错处。

复制给 Claude
图谱建好后:
1. 启动 /understand-dashboard,告诉我访问地址。
2. 给我列"建议先看的 5 个核心模块",每个附一句"看这个模块该重点关注什么"。
3. 同时你自己抽样校验 2-3 个核心模块的图谱:图谱里的依赖/职责,与真实代码是否一致?算错的列出来。
等我在 dashboard 上逛过、确认大方向对了,再进入下一步。
PHASE C · 对齐主线(最关键的一步)
05

业务模块清单 + 确认主要矛盾和重构思路

主要矛盾:方向对了,后面才有效

你做

这是 10 步里最关键的一步——做错全部白做。 AI 用 brainstorming 反问你"为什么重构、最痛的点、怎样算成功、硬约束",列 3-5 条主要矛盾候选你来选;选定后才给重构思路。

→ 业务模块清单 + 主要矛盾 + 重构思路三份都明确,你回"正确"。

复制给 Claude
进入【对齐阶段】——这是 10 步里最关键的一步,做错全部白做。

1. 用 /understand-domain 提取业务领域 / 流程 / 步骤,整理"业务模块清单":每个模块 → 职责、对外接口、依赖、是否核心、是否疑似死代码。
2. 主动调用 superpowers 的 brainstorming skill,跟我对齐"为什么要重构":
   - 先反问我:当前最痛的点是什么?怎样算成功?硬约束(停服、API、前端、预算、deadline)?
   - 基于我回答,列 3-5 条"总主要矛盾"候选,让我选 / 补 / 否决。
3. 我确认了主要矛盾后,再给"重构思路与逻辑":
   - 目标架构 + 每条要点对应解决哪个主要矛盾
   - 哪些模块要替换、哪些保留、哪些不动(次要矛盾不分心)
   - 明确"非动不可" vs "动了也没用"
4. 停下来问我:"业务模块清单 + 主要矛盾 + 重构思路,正确吗?"

我答"正确"之前禁止进入下一步,禁止改任何代码。
PHASE D · 滚起来(小步快滚,每模块都做)
06

每模块开工前先 brainstorming

主要矛盾:先想清楚再动手

你做

brainstorming 不是一次性步骤,是贯穿整个重构的强制刹车。每个新模块开工前、卡住 2 次时,都让 AI 先列:主要矛盾、≥3 个候选方案、不做的边界。写进日志后才允许编码。

→ docs/refactor-log/<模块>.md 出现方案对比文档 + 你确认决策。

复制给 Claude
建立"开模块前必做"的强制清单——每次开始重构一个新模块前都执行:
1. 调用 superpowers brainstorming skill,列出这个模块的:
   - 主要矛盾(这个模块为什么必须重构、最大风险/不确定性是什么)
   - 替代方案 ≥ 3 个,比较利弊
   - 不做哪些(划定本次不动的边界,避免一锅炒)
2. 把 brainstorming 产出写入 docs/refactor-log/<模块>.md:包括决策 + 理由 + 替代方案。
3. 把决策结论摘要给我,等我确认后才进入实际编码。

卡住 2 次以上 → 回到这里重新 brainstorming(同时调 nopua skill 换思路),不许硬刚。
07

重构日志 + 并发任务

主要矛盾:长期工作必须可追溯、可回滚

你做

每个模块挂一份日志,每完成 checkpoint 就更新日志 + 原子提交。多模块并发用 dispatching-parallel-agents 或 TeamCreate,互斥分工避免冲突。重构和功能改动绝不混 commit。

→ docs/refactor-log/ + INDEX.md 成型 + 跑过一次并发子代理。

复制给 Claude
建立重构工作日志机制:
1. docs/refactor-log/ 下每个模块一份 .md:目标、主要矛盾、TODO、checkpoints、决策记录、回滚指令、当前状态。
2. 维护 docs/refactor-log/INDEX.md:所有模块清单 + 当前状态 + 上次 checkpoint。
3. 并发多模块重构时,用 superpowers 的 dispatching-parallel-agents 或 TeamCreate:
   - 每个 teammate 负责互斥的模块/文件,避免覆盖冲突。
   - 每完成一个 checkpoint,立即更新自己的日志 + 提交原子 commit(绝不和功能改动混 commit)。
   - 主代理定期 TaskList 检查所有 teammate 进度。
4. 每天结束:主代理读所有日志,汇总成"今天进展 + 明天主要矛盾"给我。

没有日志记录的改动视为"未完成",回滚或补记录。
08

每次 commit 前后都跑 understand

主要矛盾:边改边看清楚,别忘了代码原本干嘛

你做

不是只在开始时跑一次 understand。每个 checkpoint:编码前 explain 当前文件 + domain 确认对应业务流程;编码后 diff 评估影响面;结构大改后增量刷图谱。

→ 每个 checkpoint commit message 附 understand 结论摘要。

复制给 Claude
每个 checkpoint 编码前后强制执行(写入 SOP):

编码前:
1. /understand-explain <当前文件> — 吃透目标文件结构、依赖、被引用情况。
2. /understand-domain — 确认你要改的代码对应哪个业务流程的哪个步骤。

编码后、commit 前:
3. /understand-diff — 评估改动影响面与风险,列出受影响的下游模块。
4. 若改动涉及结构调整:跑增量 /understand 刷图谱(或对该子目录单独 /understand <path>)。
5. 把每次 understand 的结论摘要写进当前模块的 refactor-log。

跳过 understand 视为"未完成",该次 checkpoint 必须回滚重做。
PHASE E · 收尾 & 长跑
09

完整验收:单元 + 集成 + 用户视角 + e2e

主要矛盾:业务等价是唯一不可破的底线

你做

模块完成后跑完整验收:单元 → 接口集成 + golden + 影子 diff → 列出涉及业务流程逐个跑 → 前端拉起跑 e2e 截图对比。任何一项不过禁止合并,不允许"先合并再补"。

→ 验收报告(覆盖率 / 契约 diff / e2e 通过率 / 不一致项)全绿。

复制给 Claude
模块重构完成后,进入"完整验收"——所有项不过禁止合并:

1. 单元测试:覆盖率不低于原模块;用 characterization 测试锁定原行为。
2. 接口集成测试:该模块所有对外接口写 contract + golden snapshot 测试;新旧版本并行跑,影子 diff = 0 才算通过。
3. 用户视角验证:列出涉及该模块的所有用户业务流程(来自 /understand-domain 产出),逐个跑一次(先脚本、再人工抽样),确认页面表现与旧系统一致。
4. 端到端(e2e):调用 webapp-testing 或 playwright-cli skill,把前端代码拉起来,从浏览器发请求,覆盖核心用户路径,截图前后对比。
5. 输出"验收报告":覆盖率 / 契约 diff / e2e 通过率 / 不一致项处理方案。

任何一项不过,回对应步骤继续修,不允许"先合并再补"。
10

用 /loop 长跑:goal + 日志 + SOP

主要矛盾:人的注意力稀缺,AI 要能自己推进

你做

项目跑数周/数月,单次会话不够长。用 /loop 让 AI 周期自动推进:读 goal + 日志 + SOP → 决定本轮做什么 → 执行 → 更新日志 → 提交 → 给你纪要。卡住 2 次自动 nopua 换思路。

→ goal / log INDEX / SOP 三个文件就位 + /loop 跑起来 + 第一份纪要送到。

复制给 Claude
长任务长跑模式:

1. docs/refactor-goal.md — 当前阶段目标(具体到模块级,单一明确,可验证)。
2. docs/refactor-log/INDEX.md — 所有正在进行模块的日志索引 + 当前状态 + 上次 checkpoint。
3. docs/refactor-sop.md — 每次循环必做的事(基于步骤 6/7/8/9 的当前阶段子集)。
4. 启动 /loop(30-60 分钟较常用):
   a. 读 goal + log + SOP,决定本轮做什么(不许做 SOP 外的事)。
   b. 调 brainstorming 确认本轮主要矛盾。
   c. 执行 + 更新日志 + 原子提交。
   d. 给我一份本轮纪要(完成 / 卡住 / 待我决策)。
5. 卡住 2 次以上 → 自动调 nopua skill 换思路,不许硬刚同一方向。
6. 动到禁区(前端 / 数据迁移 / 生产配置)一律拦截。

我每天/每周看一次纪要,调整 goal / SOP,剩下时间不打扰你。
诚实声明 · 不可消除

两个风险,工具消不掉,靠人补

这套方案显著提升成功率,但不保证成功。我们把隐性假设摆到最显眼处,而不是包装成"自动驾驶"。

覆盖盲区

golden 只锁测到的 I/O;旧系统里没被测到的隐性规则,LLM 不理解就不写测试,重写后测试全绿也发现不了它静默消失。缓解:真实流量回放找盲区 + 核心模块逐分支人工确认。

非专家审 Cosmos

P3+ 架构决策、确定性改造、GetSigners parity 若由不懂 Cosmos 的人"审批",等于橡皮图章,而爆炸半径是整链 halt 全站宕

适用前提:诊断四关卡非资深也能跑(零代码、零风险);但真进入重构(P3+),需 ≥1 名能独立审 Cosmos 的工程师,并建议在 P3 批准前、上线前各做一次真人安全审计。
Ship it

用 Claude Code 打开仓库,现在开始

一页最小内核 + 按需深度,全部开源。