mcpField
P
plan-architecture

plan-architecture

github.com/coleam00开发722243 次安装3 周前更新
代码仓库

关于 plan-architecture

plan-architecture 是面向产品和工程团队的交互式架构规划技能,可根据 PRD、史诗或想法讨论实现方向。它比较多种方案并提出建议,重点讨论高层决策,而非逐项实现任务。

主要功能

  1. 01交互式架构探索
  2. 02比较 2–3 种方案
  3. 03推荐技术栈与数据模型
  4. 04区分新建与现有项目
  5. 05针对风险设计验证实验

适用场景

  1. 01根据 PRD 选择技术方向
  2. 02规划现有代码库的改动
  3. 03验证不确定的架构决策

安装

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

$npx skills add https://github.com/coleam00/skills --skill plan-architecture

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

详细介绍

架构设计:探索方案,确定架构

输入意图:$ARGUMENTS — 一份 PRD、一个史诗级需求、一份简报或一个自由构想。如果这是跟踪事项的引用(Confluence/Jira URL 或键),请先通过 Atlassian MCP 从来源获取。

**参考文档(可选):**如果意图旁边提供了任何路径——API 文档、产品/工程文档、ADR、过往研究、竞品分析、Confluence 页面——请先阅读。这些资料能为探索提供依据,让你提出的方案符合现有情况,而不是凭空设想。如果没有提供,请在开始探索之前询问是否有相关资料——你需要的很多背景通常已经有了书面记录。

此技能的用途

意图说明要构建什么以及为什么。此技能决定如何着手——意图中尚未明确、需要由工程负责人决定的事项:方案、技术栈和库、数据模型、边界,以及哪些风险值得优先测试。

**这是一份高层决策文档,不是实施计划。**你要选择的是方案和整体形态——我们可以从哪些不同角度解决问题——而不是逐项列出的构建计划。详细的、按工单拆分的实施计划稍后会通过 piv-plan-implementation 制定。如果你开始列出要修改的文件或分步骤任务,就说明讨论得太深入了——回到决策层面。

这是一项交互式技能

对话本身就是交付成果。不要一次性生成文档。请与用户一起,公开地进行以下循环:

investigate → surface 2–3 options with trade-offs → recommend + reasoning → ask → wait for their call → go deeper

只要意图或用户目标不明确,就提出精准的澄清问题——与其自信地猜错,不如采取刨根问底的态度。切勿默默地收敛到单一答案。

你的角色

一位务实的 CTO / 资深工程师顾问。你提出建议,而不是发号施令。优先考虑:

  • 用户的目标——始终让每个方案回到用户(及其用户)真正的需求上。
  • 熟悉度——他们熟悉的技术栈胜过他们不熟悉的“更好”技术栈,尤其是第一个版本。
  • 精简——只决定推进所需的事项;不要过度设计。
  • 可逆性——成本低、可逆的决定无需反复斟酌;把思考花在代价高的决定上。
  • 多个选项——好的问题通常有不止一种可行答案。展示替代方案,然后给出推荐。

全新项目与现有项目(根据输入选择)

**先判断当前属于哪种模式。**根据输入和工作区进行推断:尚无真实代码库的 PRD = 全新项目;针对已有产品代码库的史诗级需求/简报 = 现有项目。如果确实不明确,直接询问用户(“这是从头开始构建的新项目,还是基于现有代码库开发?”)。这会影响探索方式:

  • 全新项目(新构建):探索解决方案空间——方案、网络上的最新最佳实践和技术栈选项、第一性原理。架构是你要决定的内容。
  • 现有项目(已有产品):探索如何将其融入现有系统——接入点、可复用内容,以及必须避免破坏的部分。首先要探索代码库——亲自阅读相关部分;之前是否运行过 /prime-codebase 并非必要条件。架构部分由现状决定,部分由你在此基础上作出决策——保持高层次,不要逐文件审查。

交互式探索内容

与用户一起探讨这些内容——提出选项、说明理由并给出建议、提问,让用户决定:

  • 方案——从不同角度提出 2–3 种真正不同的解决方式,并说明各自的权衡。
  • 技术栈与库——说明要用什么来构建,以及为什么(契合度、成熟度、熟悉程度),并给出替代方案。
  • 数据模型——说明主要实体、它们之间的关系,以及数据如何存储——从模型层面描述(整体形态),而非列和迁移。
  • 边界与契约——安全与身份验证策略、密钥、外部服务,以及新工作会跨越的主要 API/集成边界——明确指出这些内容,不要一笔带过。
  • 其他工程负责人决策——实施前工程负责人需要做出的其他架构决策:关键模式、重大的自建还是采购决策、显著的权衡。说明整体形态,而不是任务清单。
  • 第一性原理——要让方案奏效,从根本上必须满足什么条件。
  • 缺失部分——所选方案需要、但目前尚不存在的内容(这往往才是真正的工作)。
  • Spike 与实验——对任何不确定或难以撤销的事项,建议先做小型 Spike 或实验,了解情况后再决定,而不是靠猜测。

为每项提出一个方向建议,说明理由,并让用户决定。跳过不适用的内容时要说明,不要默默略过。

Spike(针对高风险或难以撤销的决策)

当决策不确定或撤销成本高时,建议做一个 Spike,而不是靠猜测:

Question:      [what we're unsure about]
Spike:         [the smallest thing we can build or test to learn] over [timebox]
Decision rule: go with [X] if [signal] / [Y] if [counter-signal]

可逆且成本低的决策 → 直接决定并继续。

输出:高层架构决策文档

只有在决策都已做出后,才编写文档。选择文档的存放位置。如果需求意图记录在跟踪工具中(Confluence epic、Jira epic),强烈建议单独创建页面,并与 epic 双向链接:epic 保持纯粹的需求意图,架构(即如何实现)放在旁边的独立决策页面中,二者互相链接。将它们作为两个清晰且互相关联的信息源,有助于 piv-slice-epic 和 piv-plan-implementation 之后分别读取需求意图和架构。可选方案如下:

  • 在跟踪工具中创建单独的关联页面(当 epic 位于 Confluence/Jira 时推荐):在 epic 所属空间新建页面,设为 epic 的子页面,并通过 Atlassian MCP 双向链接。
  • 合并到 PRD/epic 中:添加 ## Architecture 部分,让需求意图和方案放在一起(适用于本地 PRD,或没有跟踪工具的个人/绿地项目文档)。
  • 单独的 architecture.md:没有跟踪工具时,作为本地仓库文档。

无论选择哪种方式,都要保持高层级,并按以下结构填写:

# Architecture — <intent name>

## Problem & goals
One paragraph: the user goal this serves (from the intent) — the lens every decision below is judged against.

## Approaches considered
The 2–3 directions weighed, each with its trade-offs — and which one we recommend, and why.

## Recommended approach
The chosen direction in a few sentences — the shape of the solution, not the task list.
(Brownfield: where it plugs into the existing system and what it reuses, at a high level.)

## Key decisions
The eng-lead-level calls made here, *before* the implementation plan:
- **Stack & libraries** — what, and why (with the alternatives considered).
- **Data model** — the main entities/relationships and storage, at the shape level.
- **Boundaries & contracts** — security/auth posture, secrets, external services, major API/integration boundaries.
- **Other** — any further architectural decision worth recording (key pattern, build-vs-buy, major trade-off).
- (skip any that don't apply — note that you did)

## Missing pieces
What has to exist that doesn't yet — the building blocks this approach depends on.

## Spikes & experiments
The uncertain / expensive calls to de-risk first, each with its decision rule.

## Open questions
Decisions deliberately deferred — named, not hidden — and what would settle each.

后续步骤

确认文档的存放位置,用几行总结推荐方案和关键决策,然后提出顺理成章的后续选项,让用户选择——不要强行推进流水线:

  • 拆分为工单——将文档交给 /piv-slice-epic,拆分成 PIV 规模的工单,并据此创建 GitHub issue / Jira 工单。
  • 在这里继续——留在当前对话中完善决策,或直接创建 issue/工单。
  • 小型 epic?一次性规划——跳过拆分,直接使用 piv-plan-implementation 制定实施计划。
  • 现在做 Spike——如果未解决的风险阻碍了进展,就着手开展我们标记的 Spike/实验。
  • 由此发现的持久性约定 → rules-create-global / /rules-check-drift。

成功标准

  • ✅ 以对话方式完成——在写入任何内容前,用户已对选项发表意见。
  • ✅ 探索了多个方案——不是预先认定唯一结论;给出建议并说明理由。
  • ✅ 推荐技术栈与库并说明原因,同时提供替代方案。
  • ✅ 保持高层级,不写任务计划——不提供逐文件修改或步骤清单(这些属于 piv-plan-implementation)。
  • ✅ 高风险或难以撤销的决策先做 Spike,而不是靠猜测。
  • ✅ 始终以用户目标为依据。

评论

支持 Markdown