mcpField
D
decision-mapping

decision-mapping

github.com/mattpocockAgent 工作流305.7k42.2k 次安装1 天前更新
代码仓库

关于 decision-mapping

将初步想法转为多会话计划的技能,以精简且纳入 Git 跟踪的 Markdown 决策图记录。它把工作拆分为带依赖关系的研究、原型、讨论或任务工单,并按每个会话处理一个工单。

主要功能

  1. 01精简的 Markdown 决策图
  2. 02带依赖关系的规划工单
  3. 03研究、原型、讨论和任务类型
  4. 04工单认领与状态跟踪
  5. 05包含后续步骤的会话交接

适用场景

  1. 01规划跨多个会话的工程工作
  2. 02跟踪待决事项及其前置条件
  3. 03拆分研究与原型工作
  4. 04协调并行处理已解锁工单

安装

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

$npx skills add https://github.com/mattpocock/skills --skill decision-mapping

安装后在 Claude Code 中输入/decision-mapping确认已加载。

详细介绍

当一个模糊的想法需要多个 Agent 会话才能转化为计划时,会调用此技能。它会在一个 Markdown 文件中创建有状态的决策地图,并引导用户依次处理一系列工单,以解决未决问题。这些问题可能需要原型设计、调研或追问。该地图与领域无关,可用于规划工程工作、课程内容或任何符合相同结构的事务。

决策地图

决策地图是一个紧凑的单一 Markdown 文件,每个规划事项对应一个文件,并与项目一同纳入 git 版本管理。它是权威的工件。整个地图会作为上下文加载到每个会话中,因此必须保持紧凑。

工单期间创建的资产应从地图中链接引用,而不是在地图中重复内容。

结构

条目(“工单”)各自构成一个章节,由简短的 dash-case 标识符作为键。该标识符读起来像一个迷你标题,例如 relational-db、auth-strategy、cache-layer。标识符应足够简短以节省 token,并且在整个地图内唯一。

## relational-db: Relational Or Non-Relational Database?

Blocked by: <slug>, <slug>
Status: open | in-progress | resolved
Type: Research | Prototype | Grilling | Task

### Question

<question-here>

### Answer

<answer-here>

标识符是规范 ID,用于每条 Blocked by 依赖边和正文中的引用。冒号后的标题是可选的。当工单的 Blocked by 列表中的所有工单都为 resolved 时,该工单即为未阻塞。会话通过设置 Status: in-progress 并在开始任何工作前保存地图来认领工单,使并发会话可以跳过该工单。

每张工单的大小必须适合单个 100K token 的 Agent 会话。

工单类型

工单分为四种类型:

  • 研究:阅读文档、第三方 API,或知识库等本地资源。会创建一份 Markdown 摘要作为资产。当需要当前工作目录之外的知识时使用。
  • 原型:通过制作廉价、粗略、具体的工件来供人反应,从而提高讨论的保真度。工件可以是大纲、粗略方案、桩代码,或通过 /prototype 技能生成的 UI/逻辑代码。会将原型创建为资产。当关键问题是“应该长什么样”或“应该如何表现”时使用。
  • 追问:与 Agent 的对话。使用 /grilling 和 /domain-modeling 技能,每次只问一个问题。这是默认情况。
  • 任务:在讨论能够推进之前必须完成的纯手工工作,不涉及需要决定、原型设计或调研的内容。例如在不同位置之间迁移数据、注册第三方服务、开通访问权限。Agent 能自动化的部分会尽量自动完成,否则会向人工交付一份精确的清单,由其手动完成。任务在工作完成后即为已解决。答案需记录已完成的操作,以及后续工单所依赖的任何结果性事实,例如凭据位置、新的 URL、行数等。

战争迷雾

地图在前沿之外_刻意_保持不完整。你的工作是调查前沿,并通过解决工单来推进前沿。一次驱散一个节点的迷雾,直到通往终点的路径清晰,且不再有剩余工单。

调用

有两个分支。无论哪种情况,每个会话都以交接结束。每个会话绝不解决超过一张工单。

创建地图

用户以一个模糊的想法调用。

  1. 运行 /grilling 和 /domain-modeling 会话,以找出未决决策。每次只问一个问题。
  2. 编写一份新的决策地图。大部分为迷雾,标明前沿,并就地解决可以轻易决定的条目。
  3. 交接。创建地图是一个会话的工作,不要同时解决工单。
处理地图

用户通过地图的路径调用本技能。工单 slug 是可选的。若未提供,你应自行选择下一个决策,而不是由用户指定。

  1. 将整个地图加载为上下文。
  2. 选择工单。若用户指定了工单,则使用该工单。否则,按文档顺序选取第一个状态为 open 且未被阻塞的工单。认领该工单:在开展任何工作前,将 Status: in-progress 设为该工单状态并保存。
  3. 解决该工单,并按需调用技能,包括 ## Notes 块中指定的技能。如有疑问,使用 /grilling 和 /domain-modeling。
  4. 将答案记录在工单正文中,并将 Status: resolved 设为该工单状态。
  5. 添加新发现的工单,并设置正确的 Blocked by 依赖关系。若已做出的决策使地图中其他部分失效,则更新或删除相应节点。
  6. 交接。

用户可能会并行运行未被阻塞的工单,因此其他 Agent 可能会在各自的会话中编辑该地图。

交接

每次会话结束时,清空上下文并打开一个或多个新会话。最后给出一个用户可直接复制粘贴的下一步区块。分两种情况:

仍有未完成的工单。 列出当前未被阻塞的工单,然后给出两种可复制粘贴的选项:一个用于单个会话的通用命令(由你选择下一个工单),以及每个未被阻塞工单各一个的指定命令,用于并行运行。每个新窗口粘贴一行,可以只打开其中一个、部分或全部。

下一步:3 个工单未被阻塞:auth-strategy、cache-layer、rate-limits。 清空上下文,然后打开新会话。

单个会话:解决下一个未被阻塞的工单:

Invoke /decision-mapping with the map at <path>.

并行:每个窗口粘贴一行,最多可粘贴全部 3 行:

Invoke /decision-mapping with the map at <path>, ticket auth-strategy.
Invoke /decision-mapping with the map at <path>, ticket cache-layer.
Invoke /decision-mapping with the map at <path>, ticket rate-limits.

没有未完成的工单。 迷雾已被推开到足够远,通往终点的路径已经清晰,地图即已完成。(初始的 grilling 也可能完全没有发现迷雾,在这种情况下从一开始就无需构建地图。)建议直接开始实现,或使用 /to-prd 安排多会话的实现工作。

备注

一个可选区块,用于声明领域、每个会话都应 consult 的技能,以及规划过程中发现的自由格式常规偏好。

评论

支持 Markdown