用途
本技能用于在 Flutter 项目中搭建画面定义书(screen specification)的创建环境,并负责生成和更新单个画面的定义书。
触发方式
以下发言会触发该技能:
- 「想创建画面定义书」「生成 screen spec」「想写画面仕様書」
- 「搭建画面定义书的环境」「想导入 screen spec」
- 「生成某某画面的定义书」「某某页面的 spec」
- 「想把画面仕様文档化」
- 「更新画面定义书」「把定义书更新到最新」
主要能力
- 自动解析并确认项目结构
- 通过对话选择所需章节
- 生成模板与自定义命令
- 生成单个画面的定义书
- 对已有画面定义书进行差分检测与更新
动作模式
模式1:初次搭建(环境未构建时)
当项目不存在 docs/screen_specs/template.md 时进入搭建模式,按以下步骤进行:
- 步骤1:项目解析。若存在
CLAUDE.md则读取,获取框架(Flutter)、状态管理(Riverpod、BLoC、Provider 等)、路由库(auto_route、go_router 等)、架构模式,并自动解析 UI 层路径、ViewModel/State 路径、路由文件位置、API 定义位置。若不存在CLAUDE.md,则读取pubspec.yaml,检测框架、状态管理、路由、HTTP 通信(dio、retrofit、http 等),并解析目录结构。解析结果需向用户确认。 - 步骤2:章节选择。默认章节包括基本情報(必需)、屏幕截图、显示项目、事件项目、本画面迁移时事件、处理流程、备注。
- 步骤3:自定义确认,例如增加 analytics 列、设计令牌列或自定义章节。
- 步骤4:生成文件
.claude/commands/screen-spec.md、docs/screen_specs/template.md、docs/screen_specs/README.md。
模式2:画面定义书生成(环境已构建、定义书未创建时)
前提条件为 docs/screen_specs/template.md 与 .claude/commands/screen-spec.md 均已存在,且目标画面的定义书尚不存在。用户提出生成需求后,技能会定位目标文件,读取模板,并按照命令文件中的步骤生成定义书。
模式3:画面定义书更新(定义书已存在时)
对已有定义书进行解析、代码再解析、差分检测(新增、删除、变更)并提示用户,确认后更新定义书,同时同步更新 HTML 版。若需强制新建,可使用:
/screen-spec lib/ui/xxx/widgets/xxx_page.dart --new
使用方式
搭建完成后,可通过以下命令生成画面定义书:
/screen-spec lib/ui/xxx/widgets/xxx_page.dart
对话推进的注意事项
- 各步骤必须等待用户回答后再进入下一步
- 步骤1提问后需等待用户回答
- 用户回答后再进入下一步
- 不要一次提出多个问题
模板文件参照
- 基本模板:
templates/base_template.md - 生成命令模板:
templates/screen_spec_command.md - 显示项目章节:
templates/sections/display_items.md - 事件项目章节:
templates/sections/event_items.md - 本画面迁移时事件章节:
templates/sections/navigation_events.md - 处理流程章节:
templates/sections/process_flow.md
限制
- 覆盖已有文件前必须先向用户确认
- 项目固有配置(如辞书 DB 等)不在通用技能的处理范围内
- 生成的定义书以日语输出
- 更新模式下必须向用户提示差分并取得确认