Receber por email
← Voltar para o catálogo

evolution

This skill enables makepad-skills to self-improve continuously during development.

141estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add lingxling/awesome-skills-cn

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/evolution/svg)](https://www.skillteca.com.br/skills/evolution)

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

<!-- security-allowlist: curl-pipe-bash -->

Makepad Skills Evolution

This skill enables makepad-skills to self-improve continuously during development.

When to Use

  • You are maintaining makepad-skills and want the skill library to improve itself during development.
  • You need the workflow for deciding when a new pattern should become a skill update or hook-driven evolution.
  • You are working on self-correction, self-validation, or version adaptation for the skill set.

Quick Navigation

| Topic | Description | |-------|-------------| | Collaboration Guidelines | Contributing to makepad-skills | | [Hooks Setup](#hooks-based-auto-triggering) | Auto-trigger evolution with hooks | | [When to Evolve](#when-to-evolve) | Triggers and classification | | [Evolution Process](#evolution-process) | Step-by-step guide | | [Self-Correction](#self-correction) | Auto-fix skill errors | | [Self-Validation](#self-validation) | Verify skill accuracy | | [Version Adaptation](#version-adaptation) | Multi-branch support |

Hooks-Based Auto-Triggering

For reliable automatic triggering, use Claude Code hooks. Install with --with-hooks:

# Install makepad-skills with hooks enabled
curl -fsSL https://raw.githubusercontent.com/ZhangHanDong/makepad-skills/main/install.sh | bash -s -- --with-hooks

This will install hooks to .claude/hooks/ and configure .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"
          }
        ]
      }
    ]
  }
}

What Hooks Do

| Hook | Trigger Event | Action | |------|---------------|--------| | makepad-skill-router.sh | UserPromptSubmit | Auto-route to relevant skills | | pre-tool.sh | Before Bash/Write/Edit | Detect Makepad version from Cargo.toml | | post-bash.sh | After Bash command fails | Detect Makepad errors, suggest fixes | | session-end.sh | Session ends | Prompt to capture learnings |

Skill Routing and Bundling

The makepad-skill-router.sh hook automatically loads relevant skills based on user queries.

Context Detection

| Context | Trigger Keywords | Skills Loaded | |---------|------------------|---------------| | Full App | "build app", "从零", "完整应用" | basics, dsl, layout, widgets, event-action, app-architecture | | UI Design | "ui design", "界面设计" | dsl, layout, widgets, animation, shaders | | Widget Creation | "create widget", "创建组件", "自定义组件" | widgets, dsl, layout, animation, shaders, font, event-action | | Production | "best practice", "robrix pattern", "实际项目" | app-architecture, widget-patterns, state-management, event-action |

Skill Dependencies

When loading certain skills, related skills are auto-loaded:

| Primary Skill | Auto-loads | |---------------|------------| | 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 |

Example

User: "我想从零开发一个 Makepad 应用"

[makepad-skills] Detected Makepad/Robius query
[makepad-skills] App development context detected - loading skill bundle
[makepad-skills] Routing to: makepad-basics makepad-dsl makepad-event-action
                            makepad-layout makepad-widgets robius-app-architecture

When to Evolve

Trigger skill evolution when any of these occur during development:

| Trigger | Target Skill | Priority | |---------|--------------|----------| | New widget pattern discovered | robius-widget-patterns/_base | High | | Shader technique learned | makepad-shaders | High | | Compilation error solved | makepad-reference/troubleshooting | High | | Layout solution found | makepad-reference/adaptive-layout | Medium | | Build/packaging issue resolved | makepad-deployment | Medium | | New project structure insight | makepad-basics | Low | | Core concept clarified | makepad-dsl/makepad-widgets | Low |

Evolution Process

Step 1: Identify Knowledge Worth Capturing

Ask yourself:

  • Is this a reusable pattern? (not project-specific)
  • Did it take significant effort to figure out?
  • Would it help other Makepad developers?
  • Is it not already documented in makepad-skills?

Step 2: Classify the Knowledge

Widget/Component Pattern     → robius-widget-patterns/_base/
Shader/Visual Effect         → makepad-shaders/
Error/Debug Solution         → makepad-reference/troubleshooting.md
Layout/Responsive Design     → makepad-reference/adaptive-layout.md
Build/Deploy Issue           → makepad-deployment/SKILL.md
Project Structure            → makepad-basics/
Core Concept/API             → makepad-dsl/ or makepad-widgets/

Step 3: Format the Contribution

For Patterns:

## Pattern N: [Pattern Name]

Brief description of what this pattern solves.

### live_design!

live_design! { // DSL code }


### Rust Implementation

// Rust code

For Troubleshooting:

### [Error Type/Message]

**Symptom**: What the developer sees

**Cause**: Why this happens

**Solution**:

// Fixed code

Step 4: Mark Evolution (NOT Version)

Add an evolution marker above new content:

<!-- Evolution: 2024-01-15 | source: my-app | author: @zhangsan -->

Step 5: Submit via Git

# Create branch for your contribution
git checkout -b evolution/add-loading-pattern

# Commit your changes
git add robius-widget-patterns/_base/my-pattern.md
git commit -m "evolution: add loading state pattern from my-app"

# Push and create PR
git push origin evolution/add-loading-pattern

Self-Correction

When skill content causes errors, automatically correct it.

Trigger Conditions

User follows skill advice → Code fails to compile/run → Claude identifies skill was wrong
                                                      ↓
                                         AUTO: Correct skill immediately

Correction Flow

  1. Detect - Skill advice led to an error
  2. Verify - Confirm the skill content is wrong
  3. Correct - Update the skill file with fix

Correction Marker Format

<!-- Correction: YYYY-MM-DD | was: [old advice] | reason: [why it was wrong] -->

Self-Validation

Periodically verify skill content is still accurate.

Validation Checklist

## Validation Report

### Code Examples
- [ ] All `live_design!` examples parse correctly
- [ ] All Rust code compiles
- [ ] All patterns work as documented

### API Accuracy
- [ ] Widget names exist in makepad-widgets
- [ ] Method signatures are correct
- [ ] Event types are accurate

Validation Prompt

"Please validate makepad-skills against current Makepad version"

Version Adaptation

Provide version-specific guidance for different Makepad branches.

Supported Versions

| Branch | Status | Notes | |--------|--------|-------| | main | Stable | Production ready | | dev | Active | Latest features, may break | | rik | Legacy | Older API style |

Version Detection

Claude should detect Makepad version from:

  1. Cargo.toml branch reference:

``toml makepad-widgets = { git = "...", branch = "dev" } ``

  1. Cargo.lock content
  1. Ask user if unclear

Personaliz

Compartilhar X LinkedIn