Community写作与编辑github.com

mrgnhnt96/impa

编写并更新与项目代码共存的技術文档,逐一核验每一条命令、標誌、路径和默认值,然后主动发起独立审查。在用户需要 README、文档站点或文档目录、API 或 CLI 参考、快速入门、教程、操作指南、故障排除页面、变更日志、迁移指南、运行手册、决策记录、贡献指南,或代理指令文件(如 AGENTS.md 或 CLAUDE.md),或者要求更新、重组或修复上述任何文档时使用,即使他们只说“记录下这个”或“文档过时了”。仓储文档都属于此技能,即使用户说的是“doc”。不要用于营销或落地页(请用 beedle),也不用于工件页面、报告、计划、交接单或演示文稿(请用 mudora),也不要用于仅审查文档而不做修改(请用 impa-review)。

impa 是什么?

Impa 是一个 AI 代理技能,专注于为软件项目编写和维护技术文档,确保文档准确、及时且完整。它通过一系列严格的步骤来保证质量:先全面阅读项目代码和现有文档,然后根据项目类型和读者需求选择合适的文档类型,并制定一个可传承的计划文件。在写作过程中,Impa 遵循一套详细的写作规则,避免常见陷阱,如信息冗余、事实缺失或格式不一致。最关键的是,它会在每个工作轮次结束时自动对文档进行独立审查,包括验证所有命令、路径和默认值是否与代码一致,并运行项目自身的审计工具。这一技能适用于各种文档类型——从 README、API 参考到代理指令文件——并能在不同编辑器或平台中工作,是确保项目文档始终与代码同步、可操作且对开发者和 AI 代理都有用的强大工具。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mrgnhnt96/impa/tree/HEAD

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

impa 是做什么的?

编写开发人员或代理可以据此行动的技术文档,并且文档内容与代码保持一致。目标是让文档正确、最新、完整,适合读者的任务,易于查找,包含可运行的示例,清晰直接,且不冗长。

一个轮次就是用户要求的一项工作。每个轮次结束时都会主动进行一次审查。

步骤

1. 阅读项目

在编写任何内容之前,先阅读项目已有的内容:

  • .impa/plan.md,如果项目存在该文件。
  • 文档:README、docs/、站点源代码和配置、变更日志、贡献指南和指令文件。注意任何生成器,以及 CI 中的文档检查。
  • 读者会接触到的代码:入口点、命令解析器、配置架构、环境变量、错误消息、公共 API 和清单。

判断项目的类型(库、CLI、服务、最终用户应用、内部工具)以及文档的读者是谁,包括是否有代理。仅当项目本身无法回答这些问题时,才向用户提问。

坚持使用项目已有的文档工具。如果没有,则使用纯 Markdown 文件。

2. 选择文档类型

阅读 reference/doc-types.md。从该项目类型所需的行开始,仅在其触发条件满足时添加被触发的行,然后停止。一个页面只做一件事。如果用户要求一个页面,就只写那个页面,不要添加其他页面。

不要重组用户未要求你重组的文档。

3. 维护计划

在项目中编写或更新 .impa/plan.md。下一个轮次将读取此文件:

# 文档计划

项目类型: CLI
读者: 使用 CLI 的开发人员,以及在此仓库中工作的编码代理
文档工具: 纯 Markdown
示例验证等级: rung 3

## 页面

| 页面 | 类型 | 职责 | 读者 |
| --- | --- | --- | --- |
| README.md | README | 说明这是什么以及如何开始 | 刚接触的人 |

## 体裁风格

标题大小写、任务标题形式、缩写、“我们”、占位符格式、`$` 提示符。与项目已有的保持一致。

## 等待人工操作

## 经验教训

计划包含页面和选择。不要把你的理由写进去,因为审阅者会读取它。

4. 按规则编写

如果项目已有文档,首先复制它们,如 review/round.md 中“编辑前”所述。轮次的差异来自于该副本。

先阅读 reference/principles.md,然后阅读工作所需的内容。小编辑只阅读所需的部分。

阅读内容何时阅读
structure.md, wording.md, leave-out.md你编写的每个页面
examples.md任何包含代码的页面
accuracy.md验证前,以及设置生成参考时
agent-readers.md指令文件、技能、工具描述以及代理获取的站点

audit.md 和 sources.md 不用于编写:前者是 impa audit 的构建列表,后者保存引用来源。

这些规则旨在避免的陷阱:

  • 先给出答案。 页面以一句话开头,说明它的作用。然后介绍常见情况,最后介绍边缘情况。
  • 简短意味着没有废话,仅此而已。 删去前言、历史记录和重复。保留默认值、限制、错误、先决条件和示例:leave-out.md 中的保留列表之所以存在,是因为删减这些内容会伤害读者。
  • 生成可以生成的内容(A1)。 工具可以从代码中产生的标志、签名、默认值和架构不应手动输入。使用项目的生成器,或者告诉用户添加一个生成器会有所帮助。
  • 每个事实只有一个来源。 陈述一次并就链接到它。
  • 匹配体裁风格。 一致性优先。规则集中的措辞选择对于没有自己风格的项目来说是默认值。
  • 前置元数据: 如果文档工具允许,给文档目录中的页面添加 type(T2)。绝不要在 README、变更日志或指令文件中添加前置元数据:GitHub 会将其显示为第一句话上方的表格,并且工具会整体读取这些文件。
  • 指令文件只包含代理无法从仓库中自行推断出的内容(G1)。 生成的指令文件需要有人编辑后才能提交(G11),因此要告诉用户这一点。
  • 绝不凭空编造。 找不到的事实就是你不能写的句子。不要留下占位符,不要有空标题或 TODO(T4)。如果页面没有该值就无法工作,请使用明显的哨兵值,如 API_URL_TODO,并将其添加到计划中的“等待人工操作”部分。

5. 根据代码验证

逐条检查页面声明的每项内容,与它所描述的代码进行对照。在安全的情况下运行它,因为阅读可能会遗漏运行时才能发现的问题。

页面声明对照检查对象
命令、子命令或标志解析器的源代码,以及实际的 --help
路径或文件文件树,除非页面说明这是由读者创建的
默认值、限制、单位、顺序、副作用设置该值的代码行。不是帮助文本、注释或旧文档
环境变量、配置键代码读取该值的位置
错误消息源代码中的确切字符串
版本、支持的平台清单或 CI 配置
API 名称、签名、返回值定义
示例编译或运行它,达到项目的示例验证等级(examples.md)
安装、快速入门、教程从干净状态开始,在一个临时文件夹中遵循每一步

永远不要运行任何涉及真实数据、真实资金或共享系统的操作。说明你没有运行哪些操作。

现有文档不是证据,即使是你要保留的部分也是如此。无法验证的声明应被删除或报告,绝不能基于信任保留。

当文档与代码不一致时,代码本身可能是一个 bug。记录代码实际的行为,告知用户这一情况,并且除非用户要求,否则不要修改代码。

6. 运行审计

impa audit --dir <project>

修复真实的问题。如果命令失败,或者二进制文件没有 audit 命令,告知用户审计未运行并继续。一次干净的审计证明不了什么:它只检查名称是否存在,而不是检查围绕它的语句是否为真。绝不要伪造一个值来获得干净的运行结果。

7. 审查轮次

主动遵循 review/round.md。首次审查覆盖整个文档集,之后审查差异及其涉及的部分。它通过 impa review 在后台运行。

仅当用户在此轮次中要求跳过时才跳过,并报告它被跳过了。在审查完成之前,不要认为文档已完成。

不要读取 review/method.md 或 review/checklist.md。只有审阅者才能加载这些文件。

8. 报告

告知用户:

  • 你编写或更改了什么,以及你选择了哪些文档类型。
  • 你无法验证或未运行哪些内容。
  • 文档与代码不一致的地方,以及你对此采取了什么措施。
  • 审查结果:结论、发现的问题、你修复的内容、仍然存在的问题、谁可以采取行动以及成本。

如果结论是“在有人采取行动之前无法发布”,则以此开头。

除非用户要求,否则不要提交、推送或发布。

9. 总结经验

当用户纠正了某些内容,或者一个轮次显示了此项目中存在的一个陷阱时,将其添加到 .impa/plan.md 的“经验教训”部分。如果一个规则对所有项目都不适用,请向用户说明:修复方法应归属于此技能,而不是某一个项目的计划。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能