凌晨三点,你终于重构完那个臃肿的认证模块。函数签名改了,环境变量换了,JSDoc也更新了。但三天后,新同事照着旧文档调API,接口报错。他不敢问你,对着屏幕试了两个小时——这种事每天都在发生。

文档腐烂(Documentation rot)的诡异之处在于:代码错了会编译失败,测试挂了会亮红灯,但文档过时了,系统一声不吭。它像暗礁一样沉在水下,直到有人撞上去。

开发者并非不在乎文档,而是维护文档是一种"隐形劳动"——没有CI检查,没有编译报错,没有测试失败。文档在沉默中腐烂。

living-docs 是一个Claude Code插件,试图修复这个反馈闭环。

代码改动后,运行 /living-docs,它会:

• 对比上次提交后的代码变更

• 提取语义标记——函数名、参数、环境变量、CLI标志、配置键、API端点

• 找到所有引用它们的文档文件

• 对比文档描述与代码实际行为

• 精确定位问题所在,并给出修复建议

• 仅对过时行进行精准编辑

以下是将环境变量重命名、为函数添加参数后的输出示例:

正在扫描文档与上次提交后的变更...

过时 docs/api.md 2处问题

过时 docs/configuration.md 1处问题

过时 src/auth.ts (JSDoc) 1处问题

正常 README.md

─────────────────────────────────────────────────────────

docs/api.md · 第112行

─────────────────────────────────────────────────────────

类型:过时签名

变更:authenticate(token) → authenticate(token, options?)

原内容:authenticate(token) - 验证JWT

现内容:authenticate(token, options?)

options.strict — 拒绝缺少exp的令牌。默认值:false。

options.audience — 验证aud声明。默认值:不检查。

─────────────────────────────────────────────────────────

docs/configuration.md · 第58行

─────────────────────────────────────────────────────────

类型:环境变量重命名

变更:AUTH_SECRET → AUTH_SIGNING_KEY

应用全部4处修复? [Y/n/sel

它不生成新文档,只确保现有文档与代码保持一致。在文档谎言造成损失之前,将其拦截。