How to install cs-libdoc
npx skills add https://github.com/liuzhengdongfortest/codestable --skill cs-libdocFull instructions (SKILL.md)
Source of truth, from liuzhengdongfortest/codestable.
name: cs-libdoc description: 给库的公开表面(组件 / 函数 / 命令)逐条目生成参考文档,带清单追踪,支持单条目和批量。信息源是源码本身(与 guidedoc 任务导向不同)。触发:用户说"写 API 文档"、"组件文档"、"libdoc",或 acceptance 后发现新增公开接口。
cs-libdoc
启动必读
开始任何判断或动作前,先读取 .codestable/attention.md;缺失则视为骨架不完整,提示先补齐或运行 cs-onboard,不要回退到外部 AI 入口文件。
guidedoc 教你"怎么用 X 做 Y",libdoc 告诉你"X 的每个零件长什么样、怎么配"。
guidedoc 写错可能是表达不清,libdoc 写错就是错——信息源是源码本身,类型 / 默认值 / 签名都有唯一正确答案。核心规则:不靠猜、不复制改名、每个条目独立读源码。
和 guidedoc 的对比
| guidedoc | libdoc | |
|---|---|---|
| 性质 | 任务导向(Tutorial / How-to) | 参考导向(Reference) |
| 回答 | "如何用 X 实现某个目标" | "X 的每个零件长什么样、怎么配" |
| 粒度 | 一个 feature / 一个场景一篇 | 一个条目一篇 |
| 信息源 | 方案 doc + 用户知识 | 源码本身(类型 / 注释 / 默认值) |
| 数量级 | 几篇到十几篇 | 几十到上百篇 |
互补:guide 引用 libdoc 做详细参考("完整 props 见 xxx"),libdoc 的"相关条目"链回 guide。
"条目(entry)"
| 项目类型 | 条目粒度 |
|---|---|
| UI 组件库 | 一个组件 = 一个条目 |
| 工具函数库 | 一个模块或函数族 = 一个条目 |
| API Client | 一个 endpoint 族 = 一个条目 |
| CLI 工具 | 一个子命令 = 一个条目 |
初始化阶段确认条目粒度后续保持一致——粒度变来变去清单和搜索都会乱。
涉及路径
libdoc 产物不在 .codestable/ 下——API 参考是面向外部读者的可发布产物。
- 条目文档 →
docs/api/{slug}.md - 条目清单 →
docs/api/manifest.yaml
docs/api/ 是默认约定,项目已有其他约定(reference/ / components/)就以项目为准——开始前先确认。
manifest / 模板 / 源码提取
参考材料在同目录 reference.md:
manifest.yaml完整格式与 status 语义- 条目文档 frontmatter 和正文模板
- 源码提取清单(接口签名、默认值、导出方式等)
本技能正文只保留流程约束:libdoc 以源码为事实源,不靠猜,不复制上一个条目改名。
工作流
Phase 1:初始化——扫描与清单
- 确认项目类型 + 条目粒度 + 输出路径
- 扫描源码目录——读
source_root下文件结构,识别公开导出按逻辑分组 - 生成
manifest.yaml——所有条目初始status: pending;落盘后validate-yaml.py --file docs/api/manifest.yaml --yaml-only校验;展示给用户 review - 用户确认范围——可标
skipped(内部实现)/ 调整分类 / 合并或拆分
Phase 2:生成
模式 A:单条目模式
适合 1-3 个条目或首次试跑确认质量。
选定条目 → 读 source_files → 按模板生成 → 用户 review → 落盘 → validate-yaml.py --file {路径} --require doc_type --require entry --require status → manifest 对应条目 status: current
模式 B:批量模式
适合清单里大量 pending。
- 先出样板——从清单选 2-3 个有代表性的条目(不同 category)走"读源码 → 提取 → 按模板生成"并落盘,状态先
draft(不直接进 current——批量模式下样板是"风格参考样本"等整体 review 一起转 current) - 用户确认质量标准——review 这 2-3 篇确认模板 / 详略 / 风格。这步不能跳——50 篇全白写就因为用户想要的风格不一样
- 批量生成——剩余
pending逐条走"读源码 → 提取 → 生成",可用 subagent 并行;每条status: draft - 整体 review——批量完成展示概况(条目数 / 跳过数 / 待确认数);review 前先
validate-yaml.py --dir docs/api --require doc_type --require entry --require status批量校验 - 确认落定——用户确认后把样板和批量产出一起改
status: current
批量模式硬规则:
- 每个条目独立读源码——即使批量也不允许复制上一个改名。两个看起来很像的接口经常有微妙差异
- 样板确认不可跳
- 源码结构特殊(动态导出 / 代码生成)暂标
skipped加 note——硬猜出来的文档比没文档更有害
Phase 3:增量更新
代码变更后同步文档。三种入口任选:
search-yaml.py搜status=outdated——架构 check 或上次更新已标记的- 对比
manifest.yaml里last_scanned之后变更的源码文件 search-yaml.py --sort-by last_reviewed --order asc按最久没复核的排在前主动复核
重新读源码 → 对比已有文档 → 增量更新变化部分 → validate-yaml.py 校验 → status: current + last_reviewed 当天。
与其他工作流的关系
| 来源 | 关系 |
|---|---|
cs-feat-accept | 验收后新增/修改库公开接口 → 推送"需要更新 libdoc 吗?" |
cs-guide | guide 引用 libdoc 做详细参考;libdoc "相关条目"链回 guide |
cs-arch (check) | 检测到接口变更但 libdoc 未同步时把对应条目标 outdated,本技能 Phase 3 处理 |
cs-feat-design | 方案第 2 节可作 libdoc 补充信息源(但以源码为准) |
cs-trick | libdoc "注意事项"与 tricks 重合时交叉引用而不重复写 |
退出条件
Phase 1:manifest.yaml 已落盘 + 用户已确认范围(含 skipped 理由)+ 粒度和输出路径已确认
Phase 2 单条目:条目按模板生成 + frontmatter 完整 + API 参考节信息来源于源码提取(非编造)+ 用户确认 + manifest 已更新
Phase 2 批量:样板(2-3 篇)已获用户确认 + 所有 pending 条目已生成或标 skipped + 用户做了整体 review + manifest 所有条目 status 已同步
Phase 3:outdated 条目已全部更新或确认不需更新 + manifest 无残留 outdated(除非用户明确暂缓)
容易踩的坑
- 没扫清单就写文档——可能遗漏或重复
- 没读源码就写 API 参考——libdoc 核心价值是准确反映源码
- 复制上一个条目改名——必然漏掉微妙差异
- 批量模式跳过样板确认——50 篇全白写
- 把 spec 信息(不变量 / 测试约束)写进 libdoc——属于
.codestable/ - libdoc 和 guidedoc 内容高度重叠——其中一份定位有误
manifest.yaml直接删行——改status: skipped并写 note- 源码接口不存在却在文档写了——以源码为事实源不编造
Related skills
More from liuzhengdongfortest/codestable and the wider catalog.
cs-feat-design
feature 流程阶段 1——为新功能起草 {slug}-design.md 和 {slug}-checklist.yaml,先交给 cs-feat-design-review 做人审前方案审查,再由用户整体确认为 approved。触发:用户说"开始设计方案"、"写 design doc"、"准备实现 XX",前提是已知道做什么、为谁、怎么算成功。
cs-feat-accept
feature 流程阶段 3——验收闭环:对照 design 核实现 + review 报告 + QA 报告或验收现场验证证据 + 盘点 cs-domain 候选(提示而非代写)+ 回写 requirement / roadmap,最后产出 {slug}-acceptance.md。触发:用户说"功能写完了验收一下"、"做最后检查"、"准备 merge"、"出验收报告"。前置依赖 cs-feat-impl 完成、cs-code-review 通过;如果未单独执行 cs-feat-qa,accept 必须现场补齐同等验证证据。
cs-onboard
把新仓库或有零散文档的仓库接入 CodeStable 体系,两条路径自动判断:空仓库从零搭骨架,已有文档走审计 + 迁移映射。触发:用户说"在这个项目里用 CodeStable"、"搭 CodeStable 结构"、"初始化 CodeStable"、"迁移到 CodeStable"。
cs-brainstorm
想法还模糊时的讨论入口,做分诊后路由到 feature-design / feature-brainstorm / roadmap。AI 是思考伙伴不是记录员。触发:用户说"有个想法还没想清楚"、"先 brainstorm 一下"、"聊一聊这块"、"方向还在摇摆"。不处理 bug 和重构。
cs-feat-impl
feature 流程阶段 2——按 {slug}-checklist.yaml 里 design 切好的 paradigm 维度 steps 推进,每步具体改哪个文件由 implement 自决,写完用统一格式汇报;也处理 cs-code-review 返回的 review-fix 和 cs-feat-qa 返回的 qa-fix。触发:用户说"方案确认了开始实现"、"按方案写代码"、"开工"、"修 review blocking"、"修 QA 失败项"。前提是 design 已 approved 且有 checklist。遇到方案外情况要回方案谈不要硬冲。
cs-refactor
代码优化的子流程入口,处理"行为不变、结构变"的工作(结构 / 性能 / 可读性),按 scan → design → apply 分步执行每步人工放行。触发:用户说"优化一下 / 重构 / 重写 / 拆一下 / 性能不行 / 代码太长"且不夹带行为改动。不处理新需求 / bug / 跨模块架构重划。