Files
ChildHood/.claude/skills/requirements-analysis/SKILL.md
T

6.8 KiB
Raw Blame History

name, description
name description
requirements-analysis This skill should be used when the user or game-dev agent needs to "design a technical plan", "write a tech design document", "analyze requirements", "do requirements analysis", "做需求分析", "设计技术方案", "写技术设计文档", or "分析需求". Provides an 8-step structured requirements analysis workflow that produces a comprehensive technical design document from an execution document for UE5 game systems.

需求分析 Skill

8 步结构化需求分析工作流,从执行文档(执行案)到技术设计文档。为 UE5 游戏系统的程序设计提供系统化的分析方法论。

触发条件

  • 程序设计阶段自动触发:game-dev agent 进入程序设计时自动使用此 skill
  • 用户手动触发:用户说"做需求分析"、"设计技术方案"、"写技术设计文档"等时触发

输入

按序阅读以下文档,获取完整的上下文信息:

  1. 执行文档 (docs/design/<系统名>-执行案.md) — 行为规则细节(主要输入)
  2. 配置表 (GameConfig/) — 可调参数

8 步分析工作流

需求功能点罗列

从执行文档中提取每个行为规则作为功能点,按实现方式分为两大类:

UE 内置功能:使用 UE5 引擎原生能力即可覆盖的功能点。典型包括:

  • Enhanced Input 输入映射与回调
  • SpringArm 摄像机跟随、碰撞处理、Camera Lag
  • CMC(CharacterMovementComponent)移动参数配置
  • SetViewTargetWithBlend 摄像机切换
  • 碰撞检测(SphereComponent / BoxComponent Overlap)
  • UMG Widget 生命周期管理
  • DataAsset / DataTable 数据配置

自定义实现:需要编写 C++ 或蓝图代码的功能点。包括:

  • 自定义状态机与状态转换逻辑
  • 跨系统协调与事件分发
  • 自定义 UI 交互逻辑
  • 特殊的游戏规则判定

以表格形式输出,每个功能点标注对应的执行案条目编号。分类原则:UE 内置能力覆盖 80% 以上需求且行为一致 → UE 内置;否则 → 自定义实现。

功能领域图

识别当前系统由哪些功能模块组成,以及模块之间的交互关系。

关键约束:只关注功能领域和领域之间的关系,不细分到类级别。这是自顶向下的模块级设计,在深入类设计之前先建立全局视图。

使用 Mermaid flowchart 绘制:

  • 使用 subgraph 划分层(如输入层、核心层、数据层、表现层)
  • 实线 --> 表示主数据流 / 同步调用
  • 虚线 -.-> 表示事件通知 / 异步通信
  • 配合模块职责说明表格

类设计图

将功能领域图细化为具体的类设计。展示每个类的关键数据成员和关键接口,以及类之间的关系。

使用 Mermaid classDiagram 绘制,必须明确标注关系类型:

关系 箭头 UE5 典型场景
继承 <|-- ACharacter 的子类
实现 ..|> UInterface 的实现类
组合 *-- Character 持有 Component(生命周期绑定)
聚合 o-- 引用其他 Actor/Component(非拥有)
依赖 ..> 方法参数、临时引用

同时提供新增类表格、修改类表格、新增蓝图表格。类命名遵循 UE5 前缀规范(A/U/I/F/E)。

时序图(条件性)

⚠️ 仅当特性满足以下任一条件时绘制:涉及 3+ 个系统协调、有条件分支或循环流程、跨层级通信(UI ↔ 逻辑 ↔ 数据)。简单特性跳过。

使用 Mermaid sequenceDiagram 追踪复杂特性的跨系统调用流程:

  • 从玩家输入或系统入口开始
  • 经过哪些系统的哪些接口
  • 到最终完成或返回
  • 使用 activate/deactivate 展示调用栈深度
  • 标注关键判断分支

核心数据结构

定义系统所需的枚举、结构体、配置数据。

以 UE5 C++ 头文件风格书写:

  • 使用 UENUM(BlueprintType) 标记枚举
  • 使用 USTRUCT(BlueprintType) 标记结构体
  • 使用 UPROPERTY(EditAnywhere, ...) 标记可配置属性
  • 每个字段提供中文注释说明和合理的默认值
  • 区分"配置参数"和"运行时状态"

复杂接口描述(条件性)

⚠️ 仅当接口有 5+ 个决策分支或协调多个子系统状态时需要。简单接口(纯数据查询、简单赋值)跳过。

对复杂接口,选择最适合的方式描述其执行逻辑:

  • 流程图(Mermaid flowchart):适合有多条件分支和并行路径的逻辑
  • 伪代码:适合有明确顺序步骤、需要展示具体判断条件的逻辑
  • 鲁棒图:适合展示边界/控制/数据三种元素的交互

描述时必须包含:前置检查(快速失败)→ 核心逻辑 → 异步操作标注 → 边界情况处理。

技术难点/风险

识别并评估实现过程中可能遇到的技术难点和风险:

  • 按等级分类:🔴 高(可能导致方案不可行)、🟡 中(需要额外工作但可控)、🟢 低(已知解法)
  • 每个风险包含:风险描述、详细说明、缓解措施
  • 特别关注:UE5 限制、性能瓶颈、跨系统时序问题、数据一致性

工期预估

给出工作量和实现拆分建议:

  • 总工期:以天为单位(X-Y 天范围)
  • 代码量:新增/修改的 C++ 行数 + 蓝图数量
  • 实现拆分:推荐按系统/模块/功能点拆分为可独立验证的子任务,每个子任务标注预估时间、依赖关系、验证方式

拆分原则:每个子任务可在半天到一天内完成,有明确的验证标准,子任务之间依赖关系清晰。


输出

最终产出为技术设计文档,保存到 docs/technical/<系统名>-技术方案.md。

文档必须遵循 references/output-template.md 中定义的标准模板结构。8 步分析的结果整合到模板的对应章节中,同时保留现有的必要章节(美术资源需求、数据流、可调参数汇总、文件结构)。

简化规则:时序图和复杂接口描述可根据复杂度判定跳过(见条件步骤判定速查)。


条件步骤判定速查

步骤 激活条件 跳过条件
时序图 3+ 系统协调 / 有分支循环 / 跨层级通信 单系统内部 / 纯配置
复杂接口描述 5+ 决策分支 / 协调多子系统 / 有异步等待 简单查询 / 2-4 分支简单逻辑

详细判定启发式参见 references/diagram-guide.md 第 3 节。


参考文件

文件 内容 何时查阅
references/diagram-guide.md Mermaid 语法速查、项目约定、复杂度判定 绘制任何图表前查阅
references/output-template.md 完整技术设计文档模板 开始写文档前查阅,确保结构完整
references/examples.md 需求分析的注释示例(来自现有技术文档) 需要参考输出效果时查阅