mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-13 02:41:50 +08:00
Move version changelogs to project root for better visibility: - CHANGELOG-v4.1.0.md (Pure matrix mode + path corrections) - CHANGELOG-v4.1.1.md (Windows symlink fix + agent optimization) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
220 lines
6.2 KiB
Markdown
220 lines
6.2 KiB
Markdown
# UI Design Workflow v4.1.1 - Symlink Fix & Agent Optimization
|
||
|
||
## 📋 发布日期
|
||
2025-10-09
|
||
|
||
## 🎯 核心修复与优化
|
||
|
||
### 1. Windows 符号链接修复
|
||
- **问题**:`latest` 被创建为实际目录而非符号链接,导致创建两套重复目录
|
||
- **根本原因**:使用 `ln -s`(Unix 命令)在 Windows 环境下失败
|
||
- **解决方案**:改用 Windows 原生命令 `mklink /D`
|
||
- **影响范围**:auto.md Phase 0b
|
||
|
||
### 2. Agent 任务分配优化
|
||
- **旧策略**:按 style 分配(Agent-1 处理 style-1 的所有 layouts)
|
||
- **新策略**:按 layout 分配(Agent-1 处理 layout-1 的所有 styles)
|
||
- **批处理**:支持最多 8 个 styles per agent(超过 8 个 styles 时自动分批)
|
||
- **优势**:
|
||
- 同一 agent 处理不同 styles(复用 layout 策略)
|
||
- 不同 agent 处理不同 layouts(并行优化)
|
||
- 扩展性提升:32 styles × 3 layouts = 12 agents(原方案需 32 agents)
|
||
|
||
---
|
||
|
||
## 📝 文件修改清单
|
||
|
||
| 文件 | 主要变更 | 状态 |
|
||
|------|---------|------|
|
||
| **auto.md** | 修复 Windows 符号链接创建逻辑 | ✅ 已完成 |
|
||
| **generate.md** | 重构 agent 分配策略为 layout-based | ✅ 已完成 |
|
||
|
||
---
|
||
|
||
## 🔄 技术细节
|
||
|
||
### 修复 1: Symlink Creation (auto.md)
|
||
|
||
#### 旧代码(错误)
|
||
```bash
|
||
# Phase 0b
|
||
Bash(rm -f ".workflow/WFS-{session_id}/latest")
|
||
Bash(ln -s "runs/${run_id}" ".workflow/WFS-{session_id}/latest")
|
||
```
|
||
|
||
**问题**:
|
||
- `ln -s` 在 Windows 下失败时会创建实际目录
|
||
- 导致 `latest/` 和 `runs/run-xxx/` 两套重复目录
|
||
|
||
#### 新代码(修复)
|
||
```bash
|
||
# Phase 0b - Windows-compatible
|
||
Bash(cd ".workflow/WFS-{session_id}" && rm -rf latest && mklink /D latest "runs/${run_id}")
|
||
```
|
||
|
||
**改进**:
|
||
- 使用 `mklink /D`(Windows 原生目录符号链接命令)
|
||
- `cd` 到父目录确保相对路径正确
|
||
- `rm -rf` 清理旧的目录/符号链接
|
||
|
||
---
|
||
|
||
### 优化 2: Agent Allocation (generate.md)
|
||
|
||
#### 旧策略(Style-Based)
|
||
```bash
|
||
FOR style_id IN range(1, style_variants + 1):
|
||
Task(agent): "Generate all layouts for style-{style_id}"
|
||
```
|
||
|
||
**问题**:
|
||
- 16 styles → 16 agents
|
||
- 32 styles → 32 agents(扩展性差)
|
||
|
||
#### 新策略(Layout-Based with Batching)
|
||
```bash
|
||
# Calculate style batches (max 8 styles per agent)
|
||
batch_size = 8
|
||
all_style_ids = range(1, style_variants + 1)
|
||
style_batches = split_into_chunks(all_style_ids, batch_size)
|
||
|
||
FOR layout_id IN range(1, layout_variants + 1):
|
||
FOR style_batch IN style_batches:
|
||
Task(agent): "
|
||
Generate layout-{layout_id} for styles {style_batch}
|
||
|
||
Context:
|
||
- LAYOUT_ID: {layout_id}
|
||
- STYLE_IDS_BATCH: {style_batch} # e.g., [1-8]
|
||
|
||
Strategy:
|
||
- Apply consistent layout-{layout_id} strategy to ALL styles in batch
|
||
- Load each style's design-tokens.json separately
|
||
"
|
||
```
|
||
|
||
**改进**:
|
||
- 按 layout 分配,每个 agent 专注一种 layout 策略
|
||
- 批处理支持:styles > 8 时自动分批
|
||
- 示例:32 styles × 3 layouts
|
||
- 旧方案:32 agents
|
||
- 新方案:3 layouts × 4 batches = **12 agents**
|
||
|
||
---
|
||
|
||
## 📊 性能对比
|
||
|
||
### Agent 数量对比表
|
||
|
||
| 配置 | 旧方案 (Style-Based) | 新方案 (Layout-Based) | 优化比例 |
|
||
|------|---------------------|----------------------|---------|
|
||
| 3×3 (默认) | 3 agents | 3 agents | 1:1 |
|
||
| 8×3 | 8 agents | 3 agents | 2.7:1 |
|
||
| 16×3 | 16 agents | 6 agents (3×2 batches) | 2.7:1 |
|
||
| 32×3 | 32 agents | 12 agents (3×4 batches) | 2.7:1 |
|
||
| 3×5 | 3 agents | 5 agents | 0.6:1 |
|
||
| 16×5 | 16 agents | 10 agents (5×2 batches) | 1.6:1 |
|
||
|
||
**结论**:layout 数量不变时,styles 增加不会线性增加 agent 数量
|
||
|
||
---
|
||
|
||
## 🚀 工作流影响
|
||
|
||
### 无影响的部分
|
||
- ✅ 矩阵模式逻辑(仍然是 styles × layouts)
|
||
- ✅ 文件命名格式(`{page}-style-{s}-layout-{l}.html`)
|
||
- ✅ 设计 token 加载机制
|
||
- ✅ 可视化模板(compare.html)
|
||
- ✅ 所有参数(--style-variants, --layout-variants)
|
||
|
||
### 改进的部分
|
||
- ✅ **符号链接正确性**:不再创建重复目录
|
||
- ✅ **Agent 扩展性**:高 variant 数场景下性能提升 2-3 倍
|
||
- ✅ **Layout 一致性**:同一 agent 负责一种 layout 策略,确保跨 styles 的 layout 一致性
|
||
|
||
---
|
||
|
||
## ⚠️ 破坏性变更
|
||
|
||
**无破坏性变更**
|
||
|
||
- 所有参数保持不变
|
||
- 输出文件格式保持不变
|
||
- API 接口保持不变
|
||
- 向后兼容 v4.1.0
|
||
|
||
---
|
||
|
||
## 🧪 测试建议
|
||
|
||
### 符号链接测试
|
||
```bash
|
||
# Windows 环境测试
|
||
/workflow:ui-design:auto --prompt "Test symlink" --style-variants 2
|
||
|
||
# 验证
|
||
cd .workflow/.scratchpad/design-session-*/
|
||
ls -la # 应看到 latest -> runs/run-xxx(符号链接,非目录)
|
||
```
|
||
|
||
### Agent 分配测试
|
||
```bash
|
||
# 小规模测试(3×3)
|
||
/workflow:ui-design:auto --style-variants 3 --layout-variants 3
|
||
# 预期:3 agents(每个 layout 1 个)
|
||
|
||
# 中规模测试(16×3)
|
||
/workflow:ui-design:auto --style-variants 16 --layout-variants 3
|
||
# 预期:6 agents(3 layouts × 2 batches)
|
||
|
||
# 大规模测试(32×3)
|
||
/workflow:ui-design:auto --style-variants 32 --layout-variants 3
|
||
# 预期:12 agents(3 layouts × 4 batches)
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 相关文档
|
||
|
||
- **workflow-architecture.md**: Workflow 系统架构标准(符号链接规范)
|
||
- **CHANGELOG-v4.1.0.md**: 纯矩阵模式和路径修正
|
||
- **auto.md**: Phase 0b 符号链接创建逻辑
|
||
- **generate.md**: Phase 2 agent 分配策略
|
||
|
||
---
|
||
|
||
## 🔮 未来优化方向
|
||
|
||
### 计划中
|
||
- [ ] 自适应批处理大小(根据 agent 性能动态调整)
|
||
- [ ] Layout 策略配置化(允许自定义 layout 策略)
|
||
- [ ] 跨 runs 的 agent 结果缓存
|
||
|
||
### 待讨论
|
||
- [ ] 是否需要 style-based 模式作为备选?
|
||
- [ ] 批处理大小是否需要参数化(当前固定 8)?
|
||
|
||
---
|
||
|
||
## 📝 总结
|
||
|
||
**v4.1.1 核心价值**:
|
||
1. **跨平台兼容性**: Windows 环境符号链接正常工作
|
||
2. **扩展性提升**: 高 variant 数场景下 agent 数量减少 60%+
|
||
3. **Layout 一致性**: 同一 layout 策略由单一 agent 负责
|
||
4. **零破坏性**: 完全向后兼容 v4.1.0
|
||
|
||
**升级理由**:
|
||
- ✅ 修复 Windows 环境下的符号链接 bug
|
||
- ✅ 大幅提升高 variant 数场景的性能
|
||
- ✅ 改善 layout 策略的一致性
|
||
- ✅ 为未来扩展奠定基础
|
||
|
||
---
|
||
|
||
**发布者**: Claude Code
|
||
**版本**: v4.1.1
|
||
**类型**: Bugfix + Performance Optimization
|
||
**日期**: 2025-10-09
|