name: phase-design description: 将PRD文档转化为标准化设计方案,输出三种格式(MD/JSON/YAML)供下游使用
本技能负责设计阶段,将需求文档(PRD)转化为结构化的设计方案,采用分层架构(L4布局层 + L5模块层),输出三种独立格式供下游消费。
上游输入: - phase-requirement 输出的 PRD 文档.md - 或用户直接提供的系统需求描述
下游输出: - 设计方案.md(详细设计描述) - 设计方案.json(DSL JSON数据结构) - 设计参数.yaml(SPEC YAML参数配置)
本技能采用 L4 + L5 两层架构:
┌─────────────────────────────────────────────────────────┐
│ L4-Layouts-designer │
│ 布局层 - 页面级设计 │
├─────────────────────────────────────────────────────────┤
│ • 7种标准布局模式(LayoutPage-1~7) │
│ • 20种页面类型规范 │
│ • 组件令牌系统(component_tokens.md) │
│ • 栅格系统与响应式设计 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ L5-Module-designer │
│ 模块层 - 区域级设计 │
├─────────────────────────────────────────────────────────┤
│ • BEM命名规范 │
│ • 四层容器结构(Page→Section→Block→Element) │
│ • 模块HTML模板库(module-templates.md) │
│ • 字段描述规范 │
└─────────────────────────────────────────────────────────┘
输入来源: 1. PRD 文档(含页面清单、模块字段、操作交互) 2. 用户直接提供的系统需求
提取要素: - 系统类型(CRM/OA/ERP等) - 页面清单 - 功能模块与字段 - 操作交互需求
7种标准布局:
| 布局 | 结构 | 适用场景 |
|---|---|---|
| LayoutPage-1 | 顶栏 + 内容区 | 门户/官网 |
| LayoutPage-2 | 侧边栏 + 顶栏 + 内容区 | 管理后台(OA/CRM/HRM/ERP) |
| LayoutPage-3 | 左侧固定 + 右侧内容 | 文档/详情页 |
| LayoutPage-4 | 多标签页 | 重型后台系统 |
| LayoutPage-5 | 数据看板 | BI/数据分析 |
| LayoutPage-6 | 卡片式布局 | 轻量级管理后台 |
| LayoutPage-7 | 混合布局 | 复杂门户系统 |
页面类型映射:
| 系统类型 | 推荐布局 | 典型页面组合 |
|---|---|---|
| OA/CRM/HRM/ERP | LayoutPage-2 | Dashboard + 列表 + 详情 + 表单 |
| 银行/电商门户 | LayoutPage-1 | 门户首页 + 资讯列表 + 详情 |
| 数据看板 | LayoutPage-5 | 多图表Dashboard |
| 重型后台 | LayoutPage-4 | 多标签页列表/详情 |
BEM命名规范:
Block(模块) → .user-module
Block__Element(元素) → .user-module__header
Block--Modifier(修饰)→ .user-module--collapsed
四层容器结构:
Page(页面层)
└── Section(区域层)
└── Block(模块层)
└── Element(组件层)
标准区域划分: 1. 头部区域(Header Section):页面标题、面包屑、全局操作 2. 筛选区域(Filter Section):搜索、筛选条件、批量操作 3. 内容区域(Content Section):数据表格、卡片列表、详情信息 4. 操作区域(Action Section):分页、底部按钮、悬浮操作
组件令牌系统:位于 L4-Layouts-designer/references/component_tokens.md
令牌格式:[类别]::[组件]::[变体]
| 前缀 | 类别 | 示例 |
|---|---|---|
GEN:: |
General 通用 | GEN::Button::primary |
LAY:: |
Layout 布局 | LAY::Grid::2col |
NAV:: |
Navigation 导航 | NAV::Menu::sidebar |
ENT:: |
Entry 录入 | ENT::Input::text |
DISP:: |
Display 展示 | DISP::Table::selection |
FB:: |
Feedback 反馈 | FB::Modal::confirm |
组件令牌与BEM的关系: - 组件令牌描述「是什么」组件(语义层面) - BEM命名描述「在哪里」放置(位置层面) - 解耦原则:令牌不强制绑定特定BEM容器,可灵活放置
输出1:设计方案.md - 详细的设计描述文档 - 按区域划分的设计详情 - 人类可读的设计说明
输出2:设计方案.json - DSL JSON数据结构 - 机器可解析的设计数据 - 供自动化工具使用
输出3:设计参数.yaml - SPEC YAML参数配置 - 设计系统Token值 - 供前端工程化使用
保留Python引擎仅用于辅助查询,精简后的命令:
| 命令 | 用途 | 示例 |
|---|---|---|
match_layout |
快速匹配布局 | python3 design_engine.py match_layout "CRM系统" |
get_page_layout |
获取页面布局规范 | python3 design_engine.py get_page_layout "list_table" |
read_ref |
读取参考文档 | python3 design_engine.py read_ref "00-page-layouts.md" |
7w4.net有更好的技能插件。
phase-design/
├── SKILL.md # 本文件(主入口)
├── design_engine.py # Python引擎(精简版)
│
├── L4-Layouts-designer/ # 布局层
│ ├── skill.md # L4技能定义
│ └── references/
│ ├── 00-page-layouts.md # 7种标准布局
│ ├── 01-dashboard.md # Dashboard规范
│ ├── 02-list-table.md # 列表页规范
│ ├── ... # 其他页面类型
│ ├── component_tokens.md # 组件令牌系统(来自M版)
│ └── layout-grid.md # 栅格系统
│
├── L5-Module-designer/ # 模块层
│ ├── skill.md # L5技能定义
│ └── references/
│ ├── bem-naming.md # BEM命名规范
│ ├── module-structure.md # 四层容器结构
│ ├── module-templates.md # 模块HTML模板库(新增)
│ └── module-best-practices.md # 最佳实践
│
└── templates/ # 输出模板
├── design-output-template.md # MD输出模板
├── dsl-json-template.json # JSON输出模板
└── spec-yaml-template.yaml # YAML输出模板
输入:PRD文档.md(含页面清单、模块字段)
↓
Step 1: 提取页面清单
- 客户列表页
- 客户详情页
- 商机看板
Step 2: L4选择布局
- 系统类型:CRM
- 推荐布局:LayoutPage-2(侧边栏+顶栏+内容区)
- 页面类型:列表页(02) + 详情页(10) + Dashboard(01)
Step 3: L5规划模块
- 头部区域:页面标题 + 面包屑
- 筛选区域:搜索框 + 筛选条件 + 新建按钮
- 内容区域:数据表格(客户列表)
- 操作区域:分页器
Step 4: 选择组件令牌
- `GEN::Button::primary` → 新建客户按钮
- `ENT::Input::search` → 搜索框
- `DISP::Table::selection` → 客户列表表格
Step 5: 生成三种输出
- 设计方案.md(按区域划分)
- 设计方案.json(DSL结构)
- 设计参数.yaml(SPEC参数)
输入:"做一个简单的客户管理系统"
↓
Step 1: 快速推断需求
- 系统类型:CRM
- 核心页面:客户列表、客户详情、Dashboard
后续步骤同上...
按以下结构组织(详见 templates/design-output-template.md):
# [页面名称] 设计方案
## 页面信息
## 页面描述
## 整体页面布局结构
## 区域详细设计(按区域划分)
### 区域1: [区域名称]
### 区域2: [区域名称]
...
## 组件令牌汇总
## 设计规范
DSL JSON结构(详见 templates/dsl-json-template.json):
{
"version": "1.0",
"pages": [{
"id": "",
"layout": "",
"sections": [{
"id": "",
"components": []
}]
}]
}
SPEC YAML参数(详见 templates/spec-yaml-template.yaml):
Global:
layout: ""
theme: {}
Regions: []
Modules: []
这个 Skill 质量较好,专注于把需求文档变成设计方案。它把页面设计拆成布局层和模块层两层来讲,配有详细的组件规范和示例,输出格式也很完整。不过文件数量多、层级深,文档内容偏长,初次使用可能需要花时间熟悉。适合有一定基础的开发者使用。