mcpField
E
elixir-docs-review

elixir-docs-review

github.com/existential-birds测试与质量8588 次安装11 周前更新
代码仓库

关于 elixir-docs-review

用于审查 Elixir 文档、规格声明和 doctest 的技能,提供检查清单、情境规则与证据门槛,重点覆盖公开 API。

主要功能

  1. 01模块与函数文档检查
  2. 02公开 API 规格覆盖检查
  3. 03doctest 适用性与执行检查
  4. 04交叉引用和元数据检查
  5. 05基于证据的审查门槛

适用场景

  1. 01审查公开 Elixir 模块的文档
  2. 02检查导出函数是否有 @doc 和 @spec
  3. 03评估纯函数的 doctest 覆盖情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/existential-birds/beagle --skill elixir-docs-review

安装后在 Claude Code 中输入/elixir-docs-review确认已加载。

附带文件references/doc-quality.mdreferences/spec-coverage.md

详细介绍

Elixir 文档审查

快速参考

问题类型参考资料
@moduledoc、@doc 质量、反模式references/doc-quality.md
@spec、@type、@typedoc 覆盖情况references/spec-coverage.md

审查清单

模块文档
  • 所有公开模块都有 @moduledoc
  • 首行摘要简洁明了(一行,供工具用作摘要)
  • 适当时,@moduledoc 包含 ## Examples
  • @moduledoc false 仅用于内部模块/实现模块
函数文档
  • 所有公开函数都有 @doc
  • 所有公开函数都有 @spec
  • @doc 清晰描述返回值
  • 多子句函数在第一个子句之前编写文档
  • 需要澄清参数名称时,声明函数头
Doctest
  • 纯函数、确定性函数有 doctest
  • 有副作用的操作(数据库、HTTP 等)不写 doctest
  • Doctest 确实会运行(模块已包含在测试文件中)
交叉引用
  • 模块引用使用反引号自动链接(MyModule)
  • 函数引用使用正确的元数格式(function/2)
  • 类型引用使用 t: 前缀(t:typename/0)
  • 有自动链接时,不使用纯文本引用
元数据
  • 新增公开 API 时添加 @since 注解
  • 适当时添加 @deprecated,并提供迁移指引

有效模式(不要标记)

  • 回调实现上的 @doc false — 已在行为层级编写文档
  • 协议实现上的 @doc false — 协议文档已说明其意图
  • 私有函数缺少 @spec — 内部函数的 @spec 可选
  • 简单实用工具模块的 @moduledoc 简短且不含 ## Examples — 并非每个模块都需要示例
  • 使用 @impl true 且没有单独的 @doc — 继承行为文档

上下文相关规则

问题仅在以下情况标记
缺少 @moduledoc模块是公开的,且不是协议实现
缺少 @spec函数是公开且已导出的
缺少 doctest函数是纯函数且具有确定性
泛泛的 @doc文档只是重述函数名称,没有提供额外价值

检查关卡(按顺序执行,不要跳过)

按顺序进行。前一步未通过前,不要起草或提交问题发现。

  1. 锁定范围 — 通过条件: 列出正在审查的确切 .ex/.exs 文件路径(或 Module 名称);不得使用“整个项目”这类模糊范围。
  2. 阅读完整上下文 — 通过条件: 对每个候选问题,都阅读完整的相关定义(多子句函数的所有子句;模块级问题需阅读完整的 @moduledoc 块),不能只看差异片段或搜索结果。
  3. 证据组合 — 通过条件: 每条待提交的问题发现都使用 [FILE:LINE] ISSUE_TITLE 标题(允许行号范围),并且包含相关 @doc / @spec / doctest 文本的原文引述或指向。Module.function/arity 可作为补充上下文,但不能替代 [FILE:LINE] 定位信息。对于“doctest 失败”的问题,通过条件: 引用相关文件或行的 mix test 输出,或提供确切的错误字符串。
  4. 先遵循协议再报告 — 通过条件: 在确定问题清单之前,加载并遵循 review-verification-protocol(其报告前检查清单),而不是事后执行。

何时加载参考资料

  • 审查 @moduledoc 或 @doc 质量、发现反模式时 -> doc-quality.md
  • 审查 @spec、@type 或 @typedoc 覆盖情况时 -> spec-coverage.md

评论

支持 Markdown