agentleFS
Job-YangJob-Yang/jobbyang-ai-skills/skills/sansi-erhouxing/SKILL.md

sansi-erhouxing

Skill100 starsChanged 9 days agoMITView on GitHub

三思而后行:改任何已成形文档之前,先看全文骨架再动手,别只盯一段、别补丁摞补丁。用户说「改稿/加一节/精简润色已有段落/按评审意见改」时用。小改有投入闸门:≤3 句的微调只列影响面、免通读全文。前置动作技能,跟写作/改稿技能并行不占名额;从零新写、一句话答疑不启用。

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

Files
SKILL.md

三思而后行 · 改前通读的自律流程

改任何已成形的文档之前,先看整体,再动手。软约束,不阻断交付,只挡在"要动手改"这个动作前面。

范围说明:只管文档类产物(文章、调研、方案、技能文档等成形文字)的修改。代码/工程改动不在本技能范围。 它是前置动作,跟写作/改稿技能并行,不是二选一。 那些技能管怎么把内容写好,本技能管动手之前先看整体——顺序是:先三思(看骨架、判断这处怎么改才不破坏整体),再动手写/改。 本技能不吞文体:改的是哪类成稿(分享/观点硬文/方案/畅想),改完仍由那个文体主导,不从零新写、也不是只做一遍润色;实质修改先过本技能看骨架,再回原文体成稿。


0. 投入闸门:先定改动大小,再定走哪条道

不是所有改动都值得通读全文。先数清楚改动多大,再选流程——投入和问题大小匹配,小改大查是纯开销,大改小查是留硬伤。

档位判据(数得出来的才算)走哪条道
微改改动 ≤3 句;不新增、不删除整段;不改任何一节的观点,只调措辞/改错/补一句事实微改道:免通读全文,只做第二步"列影响面"(含前后向引用核对,见 §2)。说得出"这处改了谁会跟着变"才许下笔
小改改一节内的内容、或 4 句以上的措辞加工、或新增 1 个自然段小改道:通读骨架出骨架清单(§2 第一步)+ 列影响面 + 三问过闸
大改删除整段/整节、合并章节、新增一节、通篇优化(没指改哪儿)、改一节的观点大改道:完整流程全跑,三个检查器(围栏登记、首句连读)全上,报告写下来

判据模糊时按大的那档走。 数不准"删一段算微改还是小改"——删段落一律大改道,Chesterton 围栏检查必做(§2 问一)。


1. 触发场景(反模式清单)

命中任一即启动:

  • 评审/反馈意见指出某处有问题,准备直接冲上去改那一处,没回头看全文。
  • 用户说「改一下」「加一段」「顺手改一下」「只改这一处」「补一下」「快速改一下」。
  • 用户说「润色一下」「精简一下」「压缩这段」「顺一顺」——文字加工也是改已有内容,先看这段在骨架里的位置再动。
  • 用户丢一整篇说「优化一下」「通篇顺一顺」,没指改哪儿——别逐句润色,先抽骨架,自己找出承接断了、论据放错节、结论收不全的地方(细则见 doc-scope.md)。
  • 新增一段/一节准备挂在已有文档末尾。
  • 迭代一个已有技能文档、方案、配置说明。

不触发:从零新起一篇(没有既有骨架可通读)、纯一句话答疑、明确说"随手写个一次性草稿"。


2. 三步硬约束(按 §0 选定的档位跑)

底子是三条业界经典:Shotgun Surgery(改一处连带看多处)、Chesterton's Fence(拆之前先搞清它为什么在)、Outline-First(骨架先立)。源头见 references/prior-art.md。每条经典现在都配了一个能照做、能检查做没做的动作。

第一步:通读骨架 → 产物:骨架清单

按载体读到位,然后必须写出骨架清单这个产物(微改道可免)。格式硬规定:

【骨架清单】《文档名》
1. 第1节观点(一句陈述句,不是标题)。
2. 第2节观点。
3. 第3节观点。   ← 标注:本次改动落点
4. 第4节观点。
5. 第5节观点。

要求:5–10 行;每节一句陈述句(标题是形式,观点才是骨头);用 ← 标出本次改动落点。 读完把清单顺一遍:相邻两节的观点接得上吗?立不住的节就是空模板,先标记。

填好的样例(假设要改《内部 API 文档为什么没人看》第 3 节):

【骨架清单】《内部 API 文档为什么没人看》
1. 文档没人看不是写得差,是不回答"这事关我吗"。
2. 病因一:没想读者——写给所有人等于没写给任何人。
3. 病因二:太长——读者要的 3 行被埋在 30 页里。   ← 本次改动落点
4. 病因三:过时——截图旧、照着做对不上。
5. 解法:按读者分档重写,先治病因二和三。

看到落点在 §3,顺手就该发现:§5 的解法写着"先治二和三"——§3 的观点一动,§5 的解法条目就得跟着动。这一步不写清单,这个牵连看不见。

第二步:列影响面 → 产物:影响面清单 + 前后向引用核对表

两栏写下来,再加一张核对表(微改道只跑这一步):

  • 这次要动的点:准备改/新增/删除的具体位置。
  • 跟这个点相关的既有逻辑:前后章、已有的类似论述、下游依赖此处的章节。

检查器①|前后向引用核对表(对着文档真的查,不是凭印象):

我要改的点前向:它依赖谁(它引用的编号/概念/术语/数据)后向:谁引用它(哪节提到这个概念、用了这个编号)
例:§3"太长"无(此处首提)§2 的类比"3 行埋在 30 页";§5 解法"先治二"

规则:后向那栏列不全,不许下笔。常见漏项:章节编号(§3 变 §2 后正文里"见第三节"全失效)、被别节当例子用的术语、结论节里对应病因的解法条目。

第三步:三问过闸(一问一个动作,不许心里默念)

问一:这个点之前动过吗?(Chesterton's Fence) → 前置一步:核对用户给的删除/合并理由。 用户说"这段重复/没用/跟别节撞了"才要删或合并时,先花一步对着文档核一遍:他给的理由成立吗?把核对结论明牌写成一句——"理由成立 / 不成立 / 部分成立" + 一句证据(例:"第 3 节'太长'与第 2 节'没想读者'不重复,是并列病因,理由不成立")。结论不影响执行——用户坚持要删照删——但理由核错了必须说破,因为它决定围栏表"谁兜底"那栏怎么写。 → 检查器②|围栏登记表:只要涉及删除/整段大改,动手前必须填这一行——

| 要删/大改的段落 | 它原本服务谁(哪个论点/哪个下游引用/哪次评审或版本留下的) | 删了之后谁兜底 |

写不出"它原本服务谁"这一行 = 还没搞懂它为什么在,不许删;写得出但"谁兜底"是空 = 也不许删,回去补兜底方案再动手。

问二:修法的风险比原问题大吗?(Band-Aid 反模式) → 动作:把准备用的修法写一句话,再写一句"这个修法可能引入什么新问题"。写不出新问题 = 没想清楚;新问题比原问题扎眼 = 换修法,别硬扛。

问三:改这一处,会不会破坏整体连贯?(Shotgun Surgery) → 检查器③|相邻节首句连读 + 缺口如实登记:改完任何一节,把改动节 + 它前一节 + 后一节的首句抽出来连读一遍,结果写成一句登记:

  • 读着顺 → 登记"连读顺,无缺口"。
  • 读着别扭、要靠"其实""另外"硬接 → 先如实登记缺口:"缺口:从 X 节跳到 Y 节,缺一句什么"(例:§2 讲病因一,§4 直接讲截图旧,中间缺一个"还有别的病因"的转进)。登记之后再决定补不补过渡句;即使最终判断不补,这条缺口登记也必须留在报告里。
  • 禁止把别扭论证成通顺:不许用"并列清单本来就不需要过渡""它们是平行关系"这类理由直接判无缺口。顺不顺是读出来的,不是论证出来的。

三问任一不过,给「不改」或「回骨架重设计」,不许硬修。


3. 改动类型 → 走哪些检查(速查)

完整矩阵见 references/check-routing.md。最小集:

改动类型必跑动作
调措辞(≤3 句、不动观点)只跑影响面两栏 + 引用核对表后向栏
改一处(一节内内容)骨架清单 + 影响面全表 + 首句连读测试
删整段/整节微改道豁免取消,按大改:理由核对(用户说的"重复/没用"成立吗)+ 骨架清单 + 围栏登记表(必填)+ 引用核对表全栏 + 首句连读(别扭先登记缺口)
合并章节理由核对("两节重复"成立吗)+ 围栏登记(两边各填一行)+ 引用核对(编号失效排查)+ 首句连读(别扭先登记缺口)
新增一节骨架清单先标插入位置 + 重叠排查(已有章节覆盖过吗)+ 首句连读
通篇优化(没指改哪儿)抽骨架 → 体检四步(承接/论据归位/闭合,细则 doc-scope.md)→ 体检查出的问题即改稿清单

4. 骨架优先(文档场景专用)

新写和大改文档时:骨架先立,内容后填,过渡最后加(对应 Outline-First)。列骨架 → 顺骨架 → 填内容 → 加过渡,每一步的判据、"没指定改哪儿怎么抽骨架体检"、"改一节后回扫哪三条",细则全在 references/doc-scope.md,本页不重复。


5. 产出:改前通读报告

大改道写下来,小改道口头说清,微改道一句话交代:

【改前通读报告】
## 投入判定:微改 / 小改 / 大改 —— 判据:……
## 骨架清单:(5–10 行,落点已标注)
## 影响面:要动的点…… / 牵连的既有逻辑……
## 三问:
1. 历史动过吗? → ……(涉及删除/合并时:先附理由核对一句"用户说的重复/没用成立吗",再附围栏登记表一行)
2. 修法风险? → 修法一句话…… / 新问题……
3. 连贯吗? → 首句连读结果:顺 / 补了哪句过渡
## 决定:改 / 不改(理由)/ 回骨架重设计

三问任一不过,给「不改」或「回骨架」,不许硬修。


6. 反模式硬禁止

  • 「先改上再说,以后统一整理」:补丁摞补丁的入口,禁止。
  • 「小问题快速改一下」:再小也要过投入闸门——≤3 句免通读可以,免列影响面不行。
  • 「只改这一处,不动其他的」:不看引用核对表就不知道要不要动其他。
  • 「说优化就逐句润色」:没指改哪儿时先抽骨架,论据放错节、结论收不全这类骨架病逐句读永远读不出来。
  • 「新增的挂在末尾」:挂末尾也是骨架的一部分,先查 §3 重叠排查。
  • 「上次刚删的又加回来」:不过问一动笔,禁止。
  • 「凭感觉挺顺」:连贯与否必须列首句连读,不许凭感觉下结论。

7. 力度与豁免

  • 大改道(对外文档/已发布技能文档更新/删段合并):三步全跑,报告写下来。
  • 小改道(内部文档修改/手记类):三步跑,报告口头说清。
  • 微改道(≤3 句措辞/typo/事实补一句):只列影响面 + 引用核对后向栏,一句话交代改动落点。
  • 豁免:一次性丢弃的草稿、纯一句话答疑,跳过;豁免要在心里对自己说一句"这是草稿,不是产出",说出口才算数。

8. 出稿前自检

  • 投入闸门先判档了吗?判据是数出来的,不是感觉的?
  • (小/大改道)骨架清单写了吗:5–10 行、每节一句陈述句、落点标了吗?
  • 影响面两栏列全了吗?引用核对表后向栏(谁引用了我要改的点)查了吗?
  • 涉及删除时,围栏登记表那一行写了吗——"原本服务谁"和"谁兜底"都不空?
  • 连贯判断是列首句连读得出的,还是凭感觉?
  • 三问任一"不过",有没有硬修?

任一答不上,回去补。软约束不是可跳过,是"跑不过不阻断,但要显式说出豁免理由"。


9. 文件路由

文件什么时候读
SKILL.md(本文件)每次启用都读。含投入闸门、三步 + 三个检查器、改动类型速查
references/check-routing.md拿不准本次改动"最小检查集"是哪几项时(改一处/删整段/合并章节/新增一节/调措辞 各自的完整动作清单)
references/doc-scope.md通篇优化/新写大改文档时:骨架四步判据、无指定改动点的骨架体检四步、改一节后的回扫规矩
references/prior-art.md需要跟人解释"这套流程凭什么"时:Shotgun Surgery / Chesterton's Fence / Outline-First 的出处

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.