Community写作与编辑github.com

lggarrison/agent-skills

在仓库中将项目路线图编写和维护为 Markdown 文件。每个路线图包含阶段、具有稳定 ID 和可检查验收标准的工作项、显式依赖关系、未决决策列表以及变更日志。当要求创建、更新、与近期工作同步、重构或审查路线图或交付计划时使用。

agent-skills 是什么?

该技能用于在代码仓库中生成和维护项目路线图(roadmap)。它将路线图视为一种可版本化的文档,与代码同仓管理,确保规划的透明与可追溯。核心功能包括:创建新路线图、更新现有路线图、根据实际交付情况进行调整(reconcile)以及仅审查而不修改。技能强调基于事实的决策记录,而非凭空猜测。通过使用稳定ID(如R-001)、可验证的验收标准以及显式的依赖关系,路线图帮助开发者明确各阶段的入口和出口条件。该技能支持生成单文件(ROADMAP.md)或多文件目录结构,并通过变更日志记录所有修改。最终输出是一个结构化的Markdown模板,包含目标、状态、范围、工作项、风险、未决决策和变更日志等部分。该技能适用于任何使用Git仓库的项目,尤其适合需要长期维护和多人协作的AI代理工具(如Claude Code、Cursor等)。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lggarrison/agent-skills/tree/HEAD/skills/generating-roadmaps

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

在你喜欢的 AI 中提问

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

文档

生成路线图

路线图是一份计划,下一位接手的人无需了解生成它的对话就能直接执行。它说明了项目试图达成什么目标、以何种顺序实现、每个部分完成的标志是什么,以及哪些问题尚未决定。它存放在它所描述的代码旁边的仓库中,因此像其他所有内容一样经过审查和版本控制。

路线图记录决策,而非做出决策。当某些事项尚未决定时,路线图会明确说明。

仓库规则优先

在编写任何内容之前,先查找仓库自身的约定:AGENTS.md、CLAUDE.md、CONTRIBUTING.md、文档或 wiki 模式,以及任何已有的路线图。它们决定路线图的存放位置、携带哪些元数据、如何关联议题以及运行哪些检查。当它们与本技能冲突时,以它们为准。遵循已有路线图的格式,而不要引入第二种格式。

工作流程

1. 明确需求

确定用户想要的是以下哪一种,因为每种所需的工作量不同:

  • 新路线图: 针对项目、功能、迁移、测试工作等。
  • 更新: 添加或更改工作项、重新排序阶段、记录一个决策。
  • 同步: 将现有路线图与实际交付的内容对齐。
  • 审查: 阅读路线图并报告差距,而不重写。

2. 先收集证据,再提问

阅读项目已知的信息:相关代码和测试、已打开和最近关闭的议题、已合并和打开的拉取请求、现有文档以及该区域的提交历史。记录目前存在什么、哪些已经在进行中、以及哪些内容之前已经尝试过。

任何能通过这种方式了解到的信息,就不要向用户提问。

3. 询问需要判断的问题

路线图的好坏取决于其背后的决策,而大部分决策属于用户。分简短轮次提问,而不是一次性列出长清单。当权衡不明显时,解释为什么这个问题重要。合适的话题:

  • 目标: 这项努力值得做的成果是什么?如何知道它已经实现?
  • 范围: 明确排除什么?哪些绝对不能改变(API、数据格式、行为)?
  • 约束: 截止日期、发布、人员、预算、平台。
  • 优先级: 如果只能交付一半,是哪一半?
  • 风险: 什么最不确定?是否应该最先处理?
  • 完成: 哪些测试、指标或审查可以作为完成的证据?

当证据支持时,给出建议。始终允许用户回答“尚未决定”。该答案放在未决决策中,而不是猜测。

对于小型更新,直接跳到写作。对于新路线图,预计需要两到三轮沟通。

4. 选择结构

  • 单个文件(ROADMAP.md,或与仓库匹配的名称)适用于大多数路线图。
  • 一个目录(roadmaps/<slug>/README.md 加上支持页面)仅当计划需要长篇幅的支持材料(如研究笔记、设计草图或测试矩阵)时使用,否则这些材料会淹没工作项。主页面仍然拥有每个工作项 ID 的所有权。

5. 编写

使用下面的模板。以下规则确保其长期有用:

  • 稳定 ID。 为每个工作项分配 ID,例如 R-001。切勿重新编号,切勿重用 ID。放弃的工作保留在文件中,标记为 dropped 并附上原因。
  • 阶段有退出标准。 每个阶段说明完成时什么为真。按依赖关系、风险和价值依次排列阶段。
  • 验收标准可检查。 编写能够验证的标准:一个通过的测试、一个成功的命令、一个可测量的数字。避免使用“健壮”、“改进”和“干净”等词语。
  • 依赖关系显式。 用 ID 列出依赖项。指出团队无法控制的外部因素,例如其他仓库、供应商或决策。
  • 用完整 URL 或仓库相对路径链接证据,以便链接在复制到其他地方后仍然有效。
  • 描述计划,而非会议。 使用现在时,描述当前状态。历史记录放入变更日志。

6. 检查

在交付之前:

  • 每个工作项都有 ID、状态和至少一个验收标准。
  • 每个依赖项指向一个存在的 ID。
  • 没有阶段依赖于后续阶段。
  • 每个未决问题都在未决决策下,而不是隐藏在工作项中。
  • 链接可解析,文件路径存在。
  • 仓库的格式化和文档检查通过。
  • 变更日志中有本次变更的条目。

7. 报告

告诉用户你创建或更改了什么、记录了什么决策,以及哪些问题仍然未决。

同步路线图与实际交付

随着工作落地,路线图会偏离。要同步:

  1. 列出状态不是 done 或 dropped 的工作项。
  2. 针对每个工作项,查找已合并的拉取请求、已关闭的议题以及满足其验收标准的代码。
  3. 仅在每个标准都满足时才将工作项标记为 done。链接证据。
  4. 如果工作交付方式与计划不同,更新工作项以说明实际发生的情况,并在变更日志中注明差异。
  5. 将发现的任何新工作作为新工作项添加,并使用新的 ID。
  6. 向用户总结变更。在删除任何内容之前先询问。

审查路线图

当只要求审查时,不要重写。按重要性从高到低报告:

  • 目标或阶段没有完成标志;
  • 验收标准模糊的工作项;
  • 缺失或循环的依赖关系;
  • 看似已决定但证据不支持的决策;
  • 代码或议题跟踪器显示已完成或不再相关的工作项;
  • 缺失的风险:最困难或最不明确的部分被安排在后期。

模板

# <项目或功能> 路线图

**目标:** <用一两句话说明成果>
**状态:** <草稿 | 活跃 | 完成 | 已取代>
**最后更新:** <YYYY-MM-DD>

## 背景

为什么这项工作现在重要、目前存在什么,以及证据链接。

## 范围

- **包括:** …
- **排除:** …
- **不得更改:** …

## 状态图例

| 状态          | 含义                                         |
| ------------- | -------------------------------------------- |
| `planned`     | 已同意,尚未开始                             |
| `in-progress` | 有人正在进行中                               |
| `blocked`     | 等待依赖项或决策(说明是什么)               |
| `done`        | 每个验收标准均已满足,附证据                 |
| `dropped`     | 不执行(说明原因)                           |

## 阶段 1:<名称>

**退出标准:** <阶段完成时什么为真>

### R-001:<简短标题>

- **状态:** planned
- **原因:** <此工作项解决的问题>
- **验收标准:**
  - [ ] <可检查的陈述>
- **依赖项:** <ID,或“无”>
- **证据:** <议题、拉取请求或文件链接>

## 阶段 2:<名称>

…

## 未决决策

| ID    | 问题 | 选项 | 阻塞 | 负责人 |
| ----- | ---- | ---- | ---- | ------ |
| D-001 | …    | …    | R-004| …      |

## 风险

| 风险 | 可能性 | 影响 | 缓解措施 |
| ---- | ------ | ---- | -------- |

## 变更日志

- <YYYY-MM-DD>: <变更内容及原因>

删除不适用的章节。一个小型路线图可能只包含一个目标、一个阶段和一个变更日志。

不要做

  • 因为路线图看起来不完整而编造一个决策。
  • 用没有具体成果的通用项(“添加文档”、“改进测试”)填充计划。
  • 重新编号工作项,或删除已放弃的项。
  • 仅凭拉取请求标题就将工作项标记为 done,而不检查验收标准。
  • 将路线图的全部内容复制到议题中,反之亦然。应使用链接。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

lggarrison/agent-skills

Writes, debugs, and reviews end-to-end tests that drive a whole app through a browser, a CLI, or an API the way a user would. Covers choosing which journeys deserve an e2e test, stable locators, waiting on conditions instead of time, isolated test data, debugging failures from traces, and fixing flaky tests at the cause. Defaults to Playwright when a repo has no e2e tool yet. Use when adding or changing an e2e test, an e2e test fails or is flaky in CI, or reviewing e2e tests in a diff.

lggarrison/agent-skills

Code review rules for pull requests. Use when reviewing a PR or a diff, or re-reviewing a PR after new commits: what to flag, the severity bar, the comment format, and how to converge over review rounds instead of raising new minor issues every time.

lggarrison/agent-skills

Sets up or audits a repository's baseline files, including license, security policy, contributing guide, README, editor and Git hygiene, PR and issue templates, Dependabot, CI, and for Node.js/TypeScript projects the lint, format, test, hook, and publish tooling. Includes starter PR and issue templates. Use when bootstrapping a new repository, adding missing community or GitHub files to an existing one, or checking a repository against a new-repo checklist.

lggarrison/agent-skills

Sets up and maintains a Markdown wiki inside a repository that agents keep current, in the "LLM wiki" style. Use when asked to create a project wiki, add a source to it, answer a question from it, update it after a code change, check it for broken links or stale pages, or reorganize it.

相关技能