name: evolution description: | 关键:用于makepad-skills自我进化和贡献。触发于: evolve, evolution, contribute, contribution, self-improve, self-improvement, add pattern, new pattern, capture learning, document solution, hooks, hook system, auto-trigger, skill routing, template, pattern template, shader template, troubleshooting template, 演进, 贡献, 自我改进, 添加模式, 记录学习, 文档化解决方案
Makepad技能演进
本技能使makepad-skills在开发过程中能够持续自我改进。
快速导航
| 主题 | 描述 |
|---|---|
| 协作指南 | 贡献到makepad-skills |
| 钩子设置 | 使用钩子自动触发演进 |
| 何时演进 | 触发器和分类 |
| 演进过程 | 逐步指南 |
| 自我纠正 | 自动修复技能错误 |
| 自我验证 | 验证技能准确性 |
| 版本适配 | 多分支支持 |
基于钩子的自动触发
为确保可靠自动触发,使用Claude代码钩子。通过--with-hooks安装:
# 安装makepad-skills并启用钩子
curl -fsSL https://raw.githubusercontent.com/ZhangHanDong/makepad-skills/main/install.sh | bash -s -- --with-hooks
这将安装钩子到.claude/hooks/并配置.claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/makepad-skill-router.sh"
}
]
}
],
"PreToolUse": [
{
"matcher": "Bash|Write|Edit",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/pre-tool.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/post-bash.sh"
}
]
}
]
}
}
钩子功能
| 钩子 | 触发事件 | 动作 |
|---|---|---|
makepad-skill-router.sh |
UserPromptSubmit | 自动路由到相关技能 |
pre-tool.sh |
在Bash/Write/Edit之前 | 从Cargo.toml检测Makepad版本 |
post-bash.sh |
Bash命令失败后 | 检测Makepad错误,建议修复 |
session-end.sh |
会话结束时 | 提示捕获学习内容 |
技能路由和捆绑
makepad-skill-router.sh钩子基于用户查询自动加载相关技能。
上下文检测
| 上下文 | 触发关键词 | 加载的技能 |
|---|---|---|
| 完整应用 | “构建应用”, “从零”, “完整应用” | basics, dsl, layout, widgets, event-action, app-architecture |
| UI设计 | “ui设计”, “界面设计” | dsl, layout, widgets, animation, shaders |
| 组件创建 | “创建组件”, “自定义组件” | widgets, dsl, layout, animation, shaders, font, event-action |
| 生产环境 | “最佳实践”, “robrix模式”, “实际项目” | app-architecture, widget-patterns, state-management, event-action |
技能依赖
加载特定技能时,相关技能自动加载:
| 主要技能 | 自动加载 |
|---|---|
| robius-app-architecture | makepad-basics, makepad-event-action |
| robius-widget-patterns | makepad-widgets, makepad-layout |
| makepad-widgets | makepad-layout, makepad-dsl |
| makepad-animation | makepad-shaders |
| makepad-shaders | makepad-widgets |
| makepad-font | makepad-widgets |
| robius-event-action | makepad-event-action |
示例
用户:"我想从零开发一个Makepad应用"
[makepad-skills] 检测到Makepad/Robius查询
[makepad-skills] 应用开发上下文检测到 - 加载技能包
[makepad-skills] 路由到:makepad-basics makepad-dsl makepad-event-action
makepad-layout makepad-widgets robius-app-architecture
何时演进
开发期间出现以下情况时触发技能演进:
| 触发器 | 目标技能 | 优先级 |
|---|---|---|
| 发现新组件模式 | robius-widget-patterns/_base | 高 |
| 学习着色器技术 | makepad-shaders | 高 |
| 解决编译错误 | makepad-reference/troubleshooting | 高 |
| 找到布局解决方案 | makepad-reference/adaptive-layout | 中 |
| 解决构建/打包问题 | makepad-deployment | 中 |
| 新项目结构见解 | makepad-basics | 低 |
| 核心概念澄清 | makepad-dsl/makepad-widgets | 低 |
演进过程
第1步:识别值得捕获的知识
自问:
- 这是可重用模式吗?(非项目特定)
- 是否需要显著努力才能弄清?
- 是否帮助其他Makepad开发者?
- 是否尚未在makepad-skills中记录?
第2步:分类知识
组件/模式 → robius-widget-patterns/_base/
着色器/视觉效果 → makepad-shaders/
错误/调试解决方案 → makepad-reference/troubleshooting.md
布局/响应式设计 → makepad-reference/adaptive-layout.md
构建/部署问题 → makepad-deployment/SKILL.md
项目结构 → makepad-basics/
核心概念/API → makepad-dsl/或makepad-widgets/
第3步:格式化贡献
对于模式:
## 模式N: [模式名称]
简要描述此模式解决的问题。
### live_design!
```rust
live_design! {
// DSL代码
}
Rust实现
// Rust代码
**对于故障排除**:
```markdown
### [错误类型/消息]
**症状**:开发者看到的内容
**原因**:发生的原因
**解决方案**:
```rust
// 修复后的代码
### 第4步:标记演进(非版本)
在新内容上方添加演进标记:
```markdown
<!-- Evolution: 2024-01-15 | source: my-app | author: @zhangsan -->
第5步:通过Git提交
# 为贡献创建分支
git checkout -b evolution/add-loading-pattern
# 提交更改
git add robius-widget-patterns/_base/my-pattern.md
git commit -m "evolution: 从my-app添加加载状态模式"
# 推送并创建PR
git push origin evolution/add-loading-pattern
自我纠正
当技能内容导致错误时,自动纠正。
触发条件
用户遵循技能建议 → 代码编译/运行失败 → Claude识别技能错误
↓
自动:立即纠正技能
纠正流程
- 检测 - 技能建议导致错误
- 验证 - 确认技能内容错误
- 纠正 - 更新技能文件
纠正标记格式
<!-- Correction: YYYY-MM-DD | was: [旧建议] | reason: [错误原因] -->
自我验证
定期验证技能内容是否准确。
验证清单
## 验证报告
### 代码示例
- [ ] 所有`live_design!`示例正确解析
- [ ] 所有Rust代码编译
- [ ] 所有模式按文档工作
### API准确性
- [ ] 组件名称存在于makepad-widgets
- [ ] 方法签名正确
- [ ] 事件类型准确
验证提示
“请针对当前Makepad版本验证makepad-skills”
版本适配
为不同Makepad分支提供版本特定指导。
支持版本
| 分支 | 状态 | 备注 |
|---|---|---|
| main | 稳定 | 生产就绪 |
| dev | 活跃 | 最新功能,可能破坏 |
| rik | 遗留 | 旧API风格 |
版本检测
Claude应从以下检测Makepad版本:
-
Cargo.toml分支引用:
makepad-widgets = { git = "...", branch = "dev" } -
Cargo.lock内容
-
如果不清楚则询问用户
个性化
适应项目的编码风格。
风格检测
Claude分析当前项目检测:
| 方面 | 检测方法 | 适应 |
|---|---|---|
| 命名约定 | 扫描现有组件 | 匹配snake_case vs camelCase |
| 代码组织 | 检查模块结构 | 建议匹配模式 |
| 注释风格 | 阅读现有注释 | 匹配文档风格 |
| 组件复杂度 | 统计每组件行数 | 建议适当模式 |
质量指南
应添加
- 通用、可重用模式
- 常见错误及清晰解决方案
- 充分测试的着色器效果
- 平台特定问题
- 性能优化
不应添加
- 项目特定代码
- 未验证解决方案
- 重复内容
- 不完整示例
- 无理由的个人偏好
技能文件位置
skills/
├── # === 核心技能 (16) ===
├── makepad-basics/ ← 入门、应用结构
├── makepad-dsl/ ← DSL语法、继承
├── makepad-layout/ ← 布局、大小、对齐
├── makepad-widgets/ ← 组件
├── makepad-event-action/ ← 事件处理
├── makepad-animation/ ← 动画、状态
├── makepad-shaders/ ← 着色器基础
├── makepad-platform/ ← 平台支持
├── makepad-font/ ← 字体、排版
├── makepad-splash/ ← 启动脚本
├── robius-app-architecture/ ← 应用架构模式
├── robius-widget-patterns/ ← 组件重用模式
├── robius-event-action/ ← 自定义动作
├── robius-state-management/ ← 状态持久化
├── robius-matrix-integration/ ← Matrix SDK
├── molykit/ ← AI聊天工具包
│
├── # === 扩展技能 (3) ===
├── makepad-shaders/ ← 高级着色器、SDF
│ ├── _base/ ← 官方模式
│ └── community/ ← 社区贡献
├── makepad-deployment/ ← 构建和打包
├── makepad-reference/ ← 故障排除、代码质量
│
├── # 注意:生产模式集成到robius-*技能:
├── # - 组件模式 → robius-widget-patterns/_base/
├── # - 状态模式 → robius-state-management/_base/
├── # - 异步模式 → robius-app-architecture/_base/
│
└── evolution/ ← 自我演进系统
├── hooks/ ← 自动触发钩子
├── references/ ← 详细指南
└── templates/ ← 贡献模板
自动演进提示
使用这些提示触发自我演进:
解决问题后
“此解决方案应添加到makepad-skills供未来参考。”
创建组件后
“此组件模式可重用。让我添加到makepad-patterns。”
调试后
“此错误及其修复应记录在makepad-troubleshooting。”
完成功能后
“回顾所学内容,并更新makepad-skills(如适用)。”
持续改进清单
每次Makepad开发会话后考虑:
- [ ] 是否发现新组件组合模式?
- [ ] 是否解决棘手着色器问题?
- [ ] 是否遇到并修复混淆错误?
- [ ] 是否找到更好的布局结构方式?
- [ ] 是否学习到打包/部署相关内容?
- [ ] 是否有任何内容帮助其他Makepad开发者?
如果任何是,演进相应技能!