| name | design-tech-stack |
| description | 根据功能需求设计项目技术栈,或基于已有技术栈进行增量更新与评估。 触发场景: (1) 用户要求为新项目从零设计完整技术架构与选型方案; (2) 用户需要基于功能需求文档输出可落地的技术栈设计文档; (3) 用户希望对现有技术栈进行增量更新或架构演进评估; (4) 用户提及"技术栈"、"技术选型"、"架构设计"、"tech stack"、"选型方案"、"技术方案"等关键词; (5) 用户提供功能需求文档,需要将其映射为技术实现方案。 核心特征:在关键技术选型关节点(前端框架、后端语言、数据库、部署方式、 认证方案、实时通信、AI 集成、架构模式)提供选项对比与约束分析, 而非单方面决定。按三步连续流程执行:需求收集 → 架构选型 → 文档输出, 每步完成后等待用户确认再推进。
|
技术栈设计 Skill
核心原则
- 交互式决策:关键技术选型必须提供选项对比并等待用户确认,禁止单方面决定。
- 需求对齐:每项选型需明确对应功能需求与约束条件。
- 落地优先:优先成熟、社区活跃、团队可驾驭的方案。
- 风险可控:新引入技术必须给出后备方案与迁移成本评估。
- 中文输出:所有输出文本使用中文,代码与专有名词除外。
执行流程
本 Skill 按三个连续步骤执行,每步完成后等待用户确认再推进下一步。若被要求重做某步骤,仅修复该步骤的输出问题即可。
步骤 1:需求与上下文确认
目标:收集技术约束,判定设计场景。
- 扫描
docs/ 目录(按 .claude/workflows/project-design-pipeline/references/directory-convention.md 约定的路径),收集已有的设计文档。
- 提取约束:团队技术背景、部署环境与运维能力、预期规模(并发/数据量)、合规与预算限制、已有基础设施。
- 判定场景:
- 情景 A(全新设计):无已有技术栈文档 → 构建完整体系。
- 情景 B(增量更新):存在技术栈文档 → 基于现有架构适配新需求,优先复用已有组件。
- 输出需求上下文摘要到
.tmp/requirements-context.md,内容需覆盖:
- 已提取的所有约束条件及其来源
- 场景判定结论与判定依据
- 待用户确认的不确定项(如信息不完整的约束、需用户补充的判断)
步骤 1 完成。发起 AskUserQuestion 等待用户确认,选项为:"通过"(进入下一步)、"继续完善"(补充或修正需求信息)、"放弃"(终止工作流)。产出文件:.tmp/requirements-context.md。
步骤 2:架构关节点选型
目标:在关键技术关节点逐一提供方案对比,等待用户确认。
- 读取步骤 1 产出的
.tmp/requirements-context.md。
- 在以下 8 个关节点中,根据需求特征选择性提问(不要求全部覆盖):
- 前端框架、后端语言、数据存储、实时通信、认证方案、AI 集成、部署方式、架构模式
- 每个关节点提供 2-4 个候选方案,附一句话优劣说明和基于约束的首选推荐。
- 如需详细对比数据,按需读取
references/decision-matrix.md 对应章节。
- 汇总选型决策,输出到
.tmp/architecture-decisions.md,内容需覆盖:
- 每个已分析关节点的候选方案对比表
- 首选推荐及推荐理由(引用约束条件)
- 标注本阶段未覆盖的关节点及跳过原因
步骤 2 完成。发起 AskUserQuestion 等待用户确认,选项为:"通过"(进入下一步)、"继续完善"(调整或补充选型决策)、"放弃"(终止工作流)。产出文件:.tmp/architecture-decisions.md。
步骤 3:分层细化与文档输出
目标:将已确认选型细化为完整技术栈设计文档。
- 读取步骤 2 确认的
.tmp/architecture-decisions.md。
- 按以下维度逐层细化(按需选择,非全部必须):
- 前端:框架、构建工具、状态管理、UI 库、测试方案
- 后端:语言/框架、API 风格、异步模型、测试方案
- 存储:关系型数据库、缓存、NoSQL、对象存储、向量数据库
- 中间件:消息队列、搜索引擎、任务调度
- 实时通信:WebSocket / SSE / 长轮询 / MQTT
- 安全:认证、鉴权、传输加密、敏感数据处理
- 运维:部署编排、CI/CD、监控告警、日志收集
- 每项选型标注:核心作用、版本建议、需求关联、变更影响(增量更新场景)。
- 生成完整技术栈概览表格。
- 按
references/output-template.md 模板生成文档:
- 情景 A:输出到
docs/项目名称-技术栈设计.md
- 情景 B:全量重写原文档(保留原结构,头部追加版本记录行)
步骤 3 完成。发起 AskUserQuestion 等待用户终审确认,选项为:"通过"(确认最终方案)、"继续完善"(修正或补充技术栈细节)、"放弃"(终止工作流)。产出文件:docs/项目名称-技术栈设计.md。
约束与禁忌
- 禁止单方面决定:在任何关节点,必须提供选项对比并等待用户确认,不得直接输出唯一结论。
- 禁止忽略约束:若需求文档明确说明"团队无 K8s 经验",不得推荐 K8s 部署方案。
- 禁止过度设计:日活 < 1k 的项目不得推荐微服务或 K8s 自建集群。
- 变更最小化:情景 B 下,若现有组件能覆盖新需求,必须明确标注"复用现有 XX,无需引入新技术"。
- 禁止跳步输出:步骤 1/2 确认前,不得直接生成步骤 3 的最终文档。
参考文件索引
| 文件 | 归属 | 用途 | 加载时机 |
|---|
references/decision-matrix.md | Skill 独有 | 技术选型决策维度与常见方案对比 | 步骤 2 关节点分析 / 步骤 3 细化对比 |
references/output-template.md | Skill 独有 | 标准化技术栈设计文档模板 | 步骤 3 输出文档 |
.claude/workflows/project-design-pipeline/references/directory-convention.md | 工作流共享 | 全局目录结构约定(产物路径、命名规则) | 步骤 1 启动时 |