cs-libdoc

Skill file

Preview skill file
---
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:初始化——扫描与清单

1. **确认项目类型 + 条目粒度 + 输出路径**
2. **扫描源码目录**——读 `source_root` 下文件结构,识别公开导出按逻辑分组
3. **生成 `manifest.yaml`**——所有条目初始 `status: pending`;落盘后 `validate-yaml.py --file docs/api/manifest.yaml --yaml-only` 校验;展示给用户 review
4. **用户确认范围**——可标 `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`。

1. **先出样板**——从清单选 2-3 个有代表性的条目(不同 category)走"读源码 → 提取 → 按模板生成"并落盘,状态先 `draft`(不直接进 current——批量模式下样板是"风格参考样本"等整体 review 一起转 current)
2. **用户确认质量标准**——review 这 2-3 篇确认模板 / 详略 / 风格。**这步不能跳**——50 篇全白写就因为用户想要的风格不一样
3. **批量生成**——剩余 `pending` 逐条走"读源码 → 提取 → 生成",可用 subagent 并行;每条 `status: draft`
4. **整体 review**——批量完成展示概况(条目数 / 跳过数 / 待确认数);review 前先 `validate-yaml.py --dir docs/api --require doc_type --require entry --require status` 批量校验
5. **确认落定**——用户确认后把样板和批量产出一起改 `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
- 源码接口不存在却在文档写了——以源码为事实源不编造

Source

Creator's repository · liuzhengdongfortest/codestable

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
What this skill can do
Reads your filesConnects to the internetRuns code on your machine
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk