mcpField

alan-plan

github.com/supatest-aiAgent 工作流01.8k 次安装13 周前更新
代码仓库

关于 alan-plan

alan-plan 是用于分析任务并制定可执行实施计划的技能。它强调先探索代码库、在起草前澄清歧义,并将计划保存为 Alan 文档。

主要功能

  1. 01分析代码库与约束
  2. 02规划前澄清需求
  3. 03编写可执行的 Markdown 计划
  4. 04为复杂计划添加 Mermaid 图
  5. 05将计划保存为 Alan 文档

适用场景

  1. 01为需求不明确的功能制定计划
  2. 02梳理跨组件的实施步骤
  3. 03根据反馈修订计划

MCP 相关

使用 Alan MCP 工具读取现有计划并保存新计划或修订版,同时显式传入任务、会话和团队上下文。

安装

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

$npx skills add https://github.com/supatest-ai/alan-skills --skill alan-plan

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

详细介绍

计划创建

你正在制定一份实施计划。你的工作是分析问题,并用 Markdown 编写一份清晰、可执行的计划。


如何制定计划

  1. 分析 — 阅读任务描述和任何链接的上下文。探索代码库,了解其架构、依赖项、约束和风险。可以自由使用 Read、Grep、Glob。不要编写或修改任何文件。

    如果这是一个修订请求(用户提到了对现有计划的反馈,或提到了计划文档),请先使用 mcp__alan__get_artifact 获取现有计划,了解之前提出的内容。

  2. 澄清 — 起草之前,先评估范围是否足够明确,能否据此制定计划。如果不明确,请提问,一次一个问题。

    资深工程师就是这样工作的:不猜测,不默默填补空缺,不基于假设制定计划。他们会持续提问,直到充分理解问题。沿着决策树的每个分支逐一梳理,消除歧义后再将其写入计划。

    • 每条消息只问一个问题。 不要一次列出 10 个问题。
    • 如果可以通过探索代码库找到答案,就去探索,而不是提问。
    • 如果范围或需求确实不清楚,请直接说明:“我需要进一步了解 X,才能制定好这份计划。”
    • 不要犹豫是否要提问。这不是增加阻碍,而是质量把关。基于假设制定的计划,还不如不制定。

    紧急情况下的例外:何时跳过此步骤。 如果任务描述详尽、子任务明确、存在相关文档,且代码库探索已解答所有待解决问题,就直接进入起草。不要为了澄清而澄清。看情况判断。

  3. 起草 — 用自然、自由形式的 Markdown 编写计划。结构应根据具体问题灵活安排:

    • 步骤项目符号列表
    • 分阶段说明及其依赖关系
    • 附带权衡说明的决策树
    • 按文件列出的变更清单
    • 任何最能清晰传达计划的形式

    没有规定格式。好的计划清晰、具体且可执行。适时提供文件路径、函数名及理由。

    注重可视化。 计划支持原生渲染 Mermaid。用图示帮助读者先把握整体,再了解细节——根据要说明的内容选择合适的类型:

    图示适用场景Mermaid 类型
    时序图服务间交互、API 调用链、请求生命周期sequenceDiagram
    ER(架构)数据库表及其关系、架构变更erDiagram
    流程图逻辑与流程、决策路径、分支逻辑flowchart TD
    状态图实体生命周期、状态转换、工作流状态stateDiagram-v2
    C4 容器图系统架构概览、服务拓扑、边界C4Container
    数据流图数据在系统中的端到端流动方式flowchart LR

    选择规则: 先看计划章节要说明什么,再选择相应图示:

    • “这些服务如何通信?” → 时序图
    • “哪些表会发生变化?” → ER 图
    • “逻辑是什么?” → 流程图
    • “可能有哪些状态?” → 状态图
    • “高层架构是什么?” → C4 容器图
    • “数据如何流动?” → 数据流图(从左到右的流程图)

    将图示放在相关章节的顶部,为后续文字说明提供背景。不要为简单的变更绘图;当计划涉及多个组件、服务或不明显的关系时,再使用图示。大多数涉及架构变更的计划都应至少包含一张图。

  4. 保存 — 必须调用 mcp__alan__create_plan MCP 工具来保存计划。若跳过此步骤,计划将会丢失。 如果提示词中包含当前任务上下文,请使用该上下文。否则:

    • 任务 ID 可从 ALAN_TASK_ID 环境变量中获取。
    • 对话 ID 可从 ALAN_SESSION_ID 环境变量中获取。
    • 创建计划前,请使用 Alan MCP 上下文/工具解析 teamId。

    始终显式传入 taskId、conversationId 和 teamId。不要用一个 ID 替代另一个。

    Tool: mcp__alan__create_plan
    Parameters: {
      "title": "Short descriptive title — Version N",
      "content": "<your full markdown plan>",
      "summary": "One-line summary of what this plan achieves",
      "taskId": "<active task ID or value of ALAN_TASK_ID, if set>",
      "conversationId": "<active conversation ID or value of ALAN_SESSION_ID>",
      "teamId": "<resolved team ID>"
    }
    
  5. 退出计划模式 — 持久化后,调用 ExitPlanMode,向用户呈现计划以供审批。开头应先写计划标题,并尽可能附上制品链接(/teams/<teamId>/docs?artifactId=<artifactId>)。不要以原始 UUID 开头;只有在没有可用标题或链接时,才将其作为次要调试上下文附上。用户会批准、拒绝或提出问题。

处理反馈与修订

反馈不是补丁请求,而是表明你对需求的理解不完整。应将其视为新一轮分析,而不是快速编辑。

  1. 理解反馈 — 仔细阅读每一点。用户实际表达的是什么?这是纠正、担忧、遗漏的要求,还是方向变更?不要自以为明白;如果有任何含糊之处,请提问。

  2. 重新规划前先提问 — 如果反馈引发疑问、改变范围,或提出你此前未考虑的约束,请先提问。获得明确答复后再修改。一个好问题可以避免糟糕的修订。不要默默地将反馈重新解读成你更容易处理的内容。

  3. 重新分析 — 回到代码库。反馈可能揭示了你在第一轮中遗漏的内容。重新阅读相关代码。检查反馈所质疑的假设。这是再次进入阶段 1(分析),不是走捷径。

  4. 修订计划 — 现在基于更深入的理解重写计划。明确回应每一点反馈。如果改变了方案,请解释原因。

  5. 持久化修订 — 保存时:

    • 使用相同标题,并递增版本号:“标题 — Version 2”“标题 — Version 3”等。
    • 将 parentId 设为上一版计划的制品 ID,以此创建版本链,并将旧计划标记为“已取代”
    • 明确指出具体反馈点,表明已逐一处理
    • 如果反馈包含引用文本(例如 On "Setup DB":),请针对相应章节进行处理

如果需要在修订时参考先前计划的完整内容,请使用 mcp__alan__get_artifact 获取该计划。

可用的计划制品工具

工具用途
mcp__alan__create_plan持久化新计划(或通过 parentId 创建修订版)
mcp__alan__get_artifact按 ID 获取现有计划/制品
mcp__alan__update_artifact更新现有制品的内容/元数据
mcp__alan__add_artifact_comment向计划制品添加评论
mcp__alan__resolve_artifact_comment解决计划制品上的评论

不要

  • 编写或修改任何源文件
  • 执行破坏性命令
  • 跳过 create_plan MCP 调用——计划必须持久化
  • 使用刻板的章节格式——以最适合计划表达的自然方式撰写

评论

支持 Markdown