关于 provider-docs
使用 Schema 描述、模板和 tfplugindocs 编写 Terraform Provider 文档的工作流指南,帮助维护生成文档、示例和验证的准确性,并检查 Registry 发布准备情况。
主要功能
- 01将代码变更对应到文档目标
- 02编写 Schema 描述和模板
- 03使用 tfplugindocs 生成文档
- 04校验生成的 Markdown 和 HCL 示例
- 05检查 Registry 发布要求
适用场景
- 01编写 Provider 资源或数据源文档
- 02Schema 变更后更新文档
- 03准备向 Registry 发布 Provider 文档
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ hashicorp/ agent-skills --skill provider-docs安装后在 Claude Code 中输入/provider-docs确认已加载。
附带文件agents/openai.yamlreferences/hashicorp-provider-docs.md
详细介绍
Terraform Provider 文档
遵循此工作流
- 确认范围和文档目标。
- 将代码更改映射到确切的文档目标:Provider 索引、资源、数据源、临时资源、列表资源、函数、操作或指南。
- 确定内容应来自架构描述、模板,还是两者兼有。
- 先编写架构描述。
- 为架构字段添加准确的面向用户的描述,使生成的文档与实际行为保持一致。
- 确保措辞具体说明参数用途、约束、默认值和计算行为。
- 在
docs/中添加或更新模板文件。
- 只创建与已实现的 Provider 对象对应的文件。
- 使用 HashiCorp 推荐的模板路径:
docs/index.md.tmpldocs/data-sources/<name>.md.tmpldocs/resources/<name>.md.tmpldocs/ephemeral-resources/<name>.md.tmpldocs/list-resources/<name>.md.tmpldocs/functions/<name>.md.tmpldocs/actions/<name>.md.tmpl(tfplugindocs 会为 Terraform v1.14.0+ 生成操作文档)docs/guides/<name>.md.tmpl
- 模板应聚焦于概述和示例;字段级详细信息依赖生成的章节。
- HCL 示例应放在
examples/目录中——每个文件放一个示例,并通过tffile引入模板,而不是直接写在模板中(参见references/hashicorp-provider-docs.md中的 Example File Conventions)。示例不得包含terraform、provider或output块。 - 操作页面应遵循
references/hashicorp-provider-docs.md中的结构(Action Pages 章节):示例必须同时展示action块和action_trigger生命周期配置;操作页面不包含属性或输出章节。
- 使用
tfplugindocs生成文档。
- 如果仓库已配置默认值,优先使用:
go generate ./...
- 否则直接运行生成器:
go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs generate --provider-name <provider_name>
- 每次修改架构或模板后,都应重新运行生成器。
- 验证生成的 Markdown。
- 确认
docs/中的文件与当前 Provider 实现一致。 - 确认示例是有效的 HCL,并反映当前的参数和属性名称。
- 确认文档中的必填、可选和计算语义与架构行为一致。
- 发布前遵循 Registry 发布规则。
- 使用带
v前缀的语义化版本标签(例如v1.2.3)。 - 从默认分支创建发布标签。
- 在仓库根目录保留
terraform-registry-manifest.json。 - 预计文档会在 Registry 中按版本管理,并可通过版本选择器切换。
- 按需预览发布效果或排查问题。
- 如果准确性风险较高,请使用 HashiCorp 的预览流程,在发布前检查渲染后的文档。
- 如果文档未显示在 Registry 中,请检查标签格式、标签来源分支、清单文件是否存在,以及 Provider 的发布状态。
遵守质量标准
- 确保文档准确描述实际行为;绝不描述不受支持的参数或属性。
- 示例应简洁、贴近实际且可运行。
- 确保 Provider、资源和数据源中的术语与命名保持一致。
- 避免在手动编写的模板中重复生成的参数或属性代码块。
- 尽可能将文档更改与架构或 API 更改放在同一个 PR 中。
按需加载参考资料
- 阅读
references/hashicorp-provider-docs.md,了解有源代码依据的规则和官方链接。 - 仅加载当前更改所需的章节,以精简上下文。
评论
支持 Markdown