Evolution

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

Published by @sickn33 and contributors·0 agent reads / 30d·0 saves·

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

TopicDescription
Collaboration GuidelinesContributing to makepad-skills
Hooks SetupAuto-trigger evolution with hooks
When to EvolveTriggers and classification
Evolution ProcessStep-by-step guide
Self-CorrectionAuto-fix skill errors
Self-ValidationVerify skill accuracy
Version AdaptationMulti-branch support

Hooks-Based Auto-Triggering

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

# Install makepad-skills with hooks enabled
tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT
curl -fsSLo "$tmpdir/makepad-skills-install.sh" https://raw.githubusercontent.com/ZhangHanDong/makepad-skills/main/install.sh
cat "$tmpdir/makepad-skills-install.sh"  # review the full installer before executing
bash "$tmpdir/makepad-skills-install.sh" --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

HookTrigger EventAction
makepad-skill-router.shUserPromptSubmitAuto-route to relevant skills
pre-tool.shBefore Bash/Write/EditDetect Makepad version from Cargo.toml
post-bash.shAfter Bash command failsDetect Makepad errors, suggest fixes
session-end.shSession endsPrompt to capture learnings

Skill Routing and Bundling

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

Context Detection

ContextTrigger KeywordsSkills 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 SkillAuto-loads
robius-app-architecturemakepad-basics, makepad-event-action
robius-widget-patternsmakepad-widgets, makepad-layout
makepad-widgetsmakepad-layout, makepad-dsl
makepad-animationmakepad-shaders
makepad-shadersmakepad-widgets
makepad-fontmakepad-widgets
robius-event-actionmakepad-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:

TriggerTarget SkillPriority
New widget pattern discoveredrobius-widget-patterns/_baseHigh
Shader technique learnedmakepad-shadersHigh
Compilation error solvedmakepad-reference/troubleshootingHigh
Layout solution foundmakepad-reference/adaptive-layoutMedium
Build/packaging issue resolvedmakepad-deploymentMedium
New project structure insightmakepad-basicsLow
Core concept clarifiedmakepad-dsl/makepad-widgetsLow

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!
```rust
live_design! {
    // DSL code
}

Rust Implementation

// Rust code

**For Troubleshooting**:
```markdown
### [Error Type/Message]

**Symptom**: What the developer sees

**Cause**: Why this happens

**Solution**:
```rust
// Fixed code

### Step 4: Mark Evolution (NOT Version)

Add an evolution marker above new content:

```markdown
<!-- 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

BranchStatusNotes
mainStableProduction ready
devActiveLatest features, may break
rikLegacyOlder API style

Version Detection

Claude should detect Makepad version from:

  1. Cargo.toml branch reference:

    makepad-widgets = { git = "...", branch = "dev" }
    
  2. Cargo.lock content

  3. Ask user if unclear


Personalization

Adapt skill suggestions to project's coding style.

Style Detection

Claude analyzes the current project to detect:

AspectDetection MethodAdaptation
Naming conventionScan existing widgetsMatch snake_case vs camelCase
Code organizationCheck module structureSuggest matching patterns
Comment styleRead existing commentsMatch documentation style
Widget complexityCount lines per widgetSuggest appropriate patterns

Quality Guidelines

DO Add

  • Generic, reusable patterns
  • Common errors with clear solutions
  • Well-tested shader effects
  • Platform-specific gotchas
  • Performance optimizations

DON'T Add

  • Project-specific code
  • Unverified solutions
  • Duplicate content
  • Incomplete examples
  • Personal preferences without rationale

Skill File Locations

skills/
├── # === Core Skills (16) ===
├── makepad-basics/        ← Getting started, app structure
├── makepad-dsl/           ← DSL syntax, inheritance
├── makepad-layout/        ← Layout, sizing, alignment
├── makepad-widgets/       ← Widget components
├── makepad-event-action/  ← Event handling
├── makepad-animation/     ← Animation, states
├── makepad-shaders/       ← Shader basics
├── makepad-platform/      ← Platform support
├── makepad-font/          ← Font, typography
├── makepad-splash/        ← Splash scripting
├── robius-app-architecture/   ← App architecture patterns
├── robius-widget-patterns/    ← Widget reuse patterns
├── robius-event-action/       ← Custom actions
├── robius-state-management/   ← State persistence
├── robius-matrix-integration/ ← Matrix SDK
├── molykit/               ← AI chat toolkit
│
├── # === Extended Skills (3) ===
├── makepad-shaders/ ← Advanced shaders, SDF
│   ├── _base/             ← Official patterns
│   └── community/         ← Community contributions
├── makepad-deployment/    ← Build & packaging
├── makepad-reference/     ← Troubleshooting, code quality
│
├── # Note: Production patterns integrated into robius-* skills:
├── # - Widget patterns → robius-widget-patterns/_base/
├── # - State patterns → robius-state-management/_base/
├── # - Async patterns → robius-app-architecture/_base/
│
└── evolution/             ← Self-evolution system
    ├── hooks/             ← Auto-trigger hooks
    ├── references/        ← Detailed guides
    └── templates/         ← Contribution templates

Auto-Evolution Prompts

Use these prompts to trigger self-evolution:

After Solving a Problem

"This solution should be added to makepad-skills for future reference."

After Creating a Widget

"This widget pattern is reusable. Let me add it to makepad-patterns."

After Debugging

"This error and its fix should be documented in makepad-troubleshooting."

After Completing a Feature

"Review what I learned and update makepad-skills if applicable."


Continuous Improvement Checklist

After each Makepad development session, consider:

  • Did I discover a new widget composition pattern?
  • Did I solve a tricky shader problem?
  • Did I encounter and fix a confusing error?
  • Did I find a better way to structure layouts?
  • Did I learn something about packaging/deployment?
  • Would any of this help other Makepad developers?

If yes to any, evolve the appropriate skill!

References

  • makepad-skills repository
  • Makepad documentation
  • Project Robius

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Bundled with this artifact

2 files

Reference files that ship alongside this artifact. Agents pull these in only when the task needs them.

More on the bench

SKILL0

Zustand Store Ts

Create Zustand stores following established patterns with proper TypeScript types and middleware.

ai-prompt-engineering+3
0
SKILL0

Zoom Automation

Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.

ai-prompt-engineering+3
0
SKILL0

Zoho Crm Automation

Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.

ai-prompt-engineering+3
0