$npx -y skills add echoVic/boss-skill --skill design-variants设计变体模式,产出2-3个设计方案及 tradeoff 分析,供用户选择后确定最终方案
| 1 | # 设计变体模式 |
| 2 | |
| 3 | ## 适用场景 |
| 4 | |
| 5 | 当设计方向不确定、存在多种合理方案、或用户希望看到不同风格的对比时,启用变体模式。 |
| 6 | **不建议在简单功能或设计方向明确时使用**——避免决策疲劳。 |
| 7 | |
| 8 | ## 核心方法 |
| 9 | |
| 10 | ### 步骤 1:变体策略确定 |
| 11 | |
| 12 | 分析 PRD 后确定变体差异维度。常见维度组合: |
| 13 | |
| 14 | | 策略 | 维度 | 适用场景 | |
| 15 | |------|------|----------| |
| 16 | | 风格变体 | 简约 vs 丰富 vs 极简 | 品牌/调性不确定 | |
| 17 | | 布局变体 | 单栏 vs 双栏 vs 卡片 | 内容组织方式不确定 | |
| 18 | | 交互变体 | 步骤式 vs 单页式 vs 对话式 | 用户流程不确定 | |
| 19 | | 复杂度变体 | MVP vs 标准 vs 豪华 | 功能范围不确定 | |
| 20 | |
| 21 | **原则:每个变体应该有清晰的设计理念差异,而非仅仅是颜色/字体的不同。** |
| 22 | |
| 23 | ### 步骤 2:变体设计 |
| 24 | |
| 25 | 为每个变体(2-3个)产出: |
| 26 | |
| 27 | 1. **设计理念**:一句话说明这个方案的核心思路 |
| 28 | 2. **视觉方案**:基于 design-system 的具体实现 |
| 29 | 3. **组件选择**:使用哪些组件、如何组合 |
| 30 | 4. **交互流程**:用户的操作路径 |
| 31 | 5. **Tradeoff 分析**:优势和劣势 |
| 32 | |
| 33 | ### 步骤 3:对比矩阵 |
| 34 | |
| 35 | 生成结构化对比,帮助用户快速决策: |
| 36 | |
| 37 | | 维度 | 方案 A | 方案 B | 方案 C | |
| 38 | |------|--------|--------|--------| |
| 39 | | 视觉复杂度 | 高/中/低 | - | - | |
| 40 | | 开发成本 | X 天 | - | - | |
| 41 | | 用户学习曲线 | 陡/平/无 | - | - | |
| 42 | | 可扩展性 | 高/中/低 | - | - | |
| 43 | | 品牌一致性 | 高/中/低 | - | - | |
| 44 | | 移动端适配 | 优/良/差 | - | - | |
| 45 | |
| 46 | ### 步骤 4:推荐与等待 |
| 47 | |
| 48 | 1. 给出推荐方案及推荐理由 |
| 49 | 2. 将变体输出到 `.boss/<feature>/ui-design-variants.json` |
| 50 | 3. 设置状态为 `NEEDS_CONTEXT`,等待用户选择 |
| 51 | 4. 用户选择后,将选中方案写入正式的 `ui-design.json` 和 `ui-spec.md` |
| 52 | |
| 53 | ## 输出要求 |
| 54 | |
| 55 | ### JSON 产物格式 |
| 56 | |
| 57 | 输出到 `.boss/<feature>/ui-design-variants.json`: |
| 58 | |
| 59 | ```json |
| 60 | { |
| 61 | "schemaVersion": "1.0.0", |
| 62 | "artifact": "ui-design-variants", |
| 63 | "feature": "<feature-name>", |
| 64 | "updatedAt": "<ISO-8601>", |
| 65 | "strategy": "风格变体|布局变体|交互变体|复杂度变体", |
| 66 | "variants": [ |
| 67 | { |
| 68 | "variantId": "A", |
| 69 | "name": "方案A: [名称]", |
| 70 | "concept": "[一句话设计理念]", |
| 71 | "tradeoffs": { |
| 72 | "pros": ["优势1", "优势2", "优势3"], |
| 73 | "cons": ["劣势1", "劣势2"] |
| 74 | }, |
| 75 | "designData": { |
| 76 | "mode": "wireframe", |
| 77 | "pages": [], |
| 78 | "components": [], |
| 79 | "prototype": {}, |
| 80 | "implementationHints": {} |
| 81 | } |
| 82 | } |
| 83 | ], |
| 84 | "comparison": { |
| 85 | "dimensions": ["视觉复杂度", "开发成本", "用户学习曲线", "可扩展性", "品牌一致性", "移动端适配"], |
| 86 | "matrix": [ |
| 87 | {"dimension": "视觉复杂度", "A": "中", "B": "低", "C": "高"} |
| 88 | ] |
| 89 | }, |
| 90 | "recommendation": { |
| 91 | "variantId": "A", |
| 92 | "reason": "[推荐理由]" |
| 93 | }, |
| 94 | "selectedVariantId": null |
| 95 | } |
| 96 | ``` |
| 97 | |
| 98 | ### 状态报告 |
| 99 | |
| 100 | ``` |
| 101 | [BOSS_STATUS] |
| 102 | status: NEEDS_CONTEXT |
| 103 | summary: 已产出 N 个设计变体,等待用户选择最终方案 |
| 104 | missing: 用户尚未选择设计方案(方案A/B/C) |
| 105 | [/BOSS_STATUS] |
| 106 | ``` |
| 107 | |
| 108 | ### 用户选择后的行为 |
| 109 | |
| 110 | 收到用户选择后: |
| 111 | 1. 更新 `ui-design-variants.json` 的 `selectedVariantId` 字段 |
| 112 | 2. 将选中方案的 `designData` 写入正式 `ui-design.json` |
| 113 | 3. 基于选中方案生成完整的 `ui-spec.md` |
| 114 | 4. 报告 `DONE` 状态 |