Install any skill in seconds. Free to start, no credit card required.
Get Started Free →CRITICAL: Use for Makepad Splash scripting language. Triggers on: splash language, makepad script, makepad scripting, script!, cx.eval, makepad dynamic, makepad AI, splash 语言, makepad 脚本
.claude/skills/sickn33-makepad-splash/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 38% | 0% |
> Version: makepad-widgets (dev branch) | Last Updated: 2026-01-19 > > Check for updates: https://crates.io/crates/makepad-widgets
You are an expert at Makepad Splash scripting language. Help users by:
script!, cx.eval, runtime-generated UI, or workflow automation in Makepad.Refer to the local files for detailed documentation:
./references/splash-tutorial.md - Splash language tutorialBefore answering questions, Claude MUST:
/sync-crate-skills makepad --force 更新文档"Splash is Makepad's dynamic scripting language designed for:
rust// Embed Splash code in Rust script!{ fn main() { let x = 10; console.log("Hello from Splash!"); } }
rust// Evaluate Splash code at runtime cx.eval(code_string); // security-allowlist: Makepad runtime API; require trusted code_string // With context cx.eval_with_context(code, context);
splashlet x = 10; let name = "Makepad"; let items = [1, 2, 3]; let config = { width: 100, height: 50 };
splashfn add(a, b) { return a + b; } fn greet(name) { console.log("Hello, " + name); }
splash// If-else if x > 10 { console.log("big"); } else { console.log("small"); } // Loops for i in 0..10 { console.log(i); } while condition { // ... }
splashconsole.log("Message"); console.warn("Warning"); console.error("Error");
splash// GET request let response = http.get("https://api.example.com/data"); // POST request let response = http.post("https://api.example.com/data", { body: { key: "value" } });
splash// Set timeout timer.set(1000, fn() { console.log("1 second passed"); }); // Set interval let id = timer.interval(500, fn() { console.log("tick"); }); // Clear timer timer.clear(id);
splash// Access widgets let button = ui.widget("my_button"); button.set_text("Click Me"); button.set_visible(true); // Listen to events button.on_click(fn() { console.log("Button clicked!"); });
splash// Async function async fn fetch_data() { let response = await http.get("https://api.example.com"); return response.json(); } // Call async fetch_data().then(fn(data) { console.log(data); });
Splash is designed for AI-assisted development:
splash// Dynamic UI generation fn create_form(fields) { let form = ui.create("View"); for field in fields { let input = ui.create("TextInput"); input.set_label(field.label); form.add_child(input); } return form; } // AI can generate this dynamically create_form([ { label: "Name" }, { label: "Email" }, { label: "Message" } ]);
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-07 | pass→pass | 10,815 | 4,930 | -54% | 1 | 1 | 0% | 1,790 | 2,261 | +26% | 0 | 0 | — |
case-01 | fail→pass | 15,939 | 10,345 | -35% | 1 | 1 | 0% | 3,189 | 3,648 | +14% | 0 | 0 | — |
case-02 | fail→pass | 12,718 | 9,737 | -23% | 1 | 1 | 0% | 2,537 | 3,215 | +27% | 0 | 0 | — |
case-03 | pass→pass | 11,535 | 9,116 | -21% | 1 | 1 | 0% | 2,022 | 2,987 | +48% | 0 | 0 | — |
case-04 | pass→pass | 12,545 | 8,229 | -34% | 1 | 1 | 0% | 2,166 | 2,603 | +20% | 0 | 0 | — |
case-05 | fail→pass | 10,310 | 5,072 | -51% | 1 | 1 | 0% | 2,069 | 2,263 | +9% | 0 | 0 | — |
case-06 | fail→pass | 10,141 | 7,749 | -24% | 1 | 1 | 0% | 1,637 | 2,702 | +65% | 0 | 0 | — |
case-08 | fail→pass | 9,302 | 5,439 | -42% | 1 | 1 | 0% | 1,610 | 2,229 | +38% | 0 | 0 | — |
case-09 | fail→pass | 8,508 | 4,097 | -52% | 1 | 1 | 0% | 1,458 | 1,974 | +35% | 0 | 0 | — |
case-10 | fail→pass | 9,932 | 6,087 | -39% | 1 | 1 | 0% | 1,676 | 2,352 | +40% | 0 | 0 | — |
case-11 | fail→pass | 9,787 | 5,101 | -48% | 1 | 1 | 0% | 1,808 | 2,228 | +23% | 0 | 0 | — |
case-12 | pass→pass | 6,099 | 4,500 | -26% | 1 | 1 | 0% | 1,097 | 2,036 | +86% | 0 | 0 | — |
case-13 | fail→pass | 9,255 | 4,052 | -56% | 1 | 1 | 0% | 1,878 | 2,013 | +7% | 0 | 0 | — |
case-14 | fail→pass | 11,352 | 5,640 | -50% | 1 | 1 | 0% | 2,317 | 2,458 | +6% | 0 | 0 | — |
case-15 | fail→pass | 14,038 | 7,820 | -44% | 1 | 1 | 0% | 2,544 | 2,298 | -10% | 0 | 0 | — |
case-16 | fail→pass | 13,036 | 8,658 | -34% | 1 | 1 | 0% | 2,028 | 2,737 | +35% | 0 | 0 | — |
case-17 | fail→pass | 15,407 | 10,156 | -34% | 1 | 1 | 0% | 2,240 | 2,855 | +27% | 0 | 0 | — |
case-18 | pass→pass | 12,794 | 7,074 | -45% | 1 | 1 | 0% | 2,248 | 2,600 | +16% | 0 | 0 | — |
case-19 | fail→pass | 7,541 | 4,404 | -42% | 1 | 1 | 0% | 1,269 | 2,097 | +65% | 0 | 0 | — |
case-20 | pass→pass | 9,351 | 9,233 | -1% | 1 | 1 | 0% | 1,898 | 2,920 | +54% | 0 | 0 | — |
case-21 | pass→pass | 12,718 | 11,707 | -8% | 1 | 1 | 0% | 2,537 | 3,703 | +46% | 0 | 0 | — |
case-22 | pass→pass | 13,795 | 11,652 | -16% | 1 | 1 | 0% | 2,617 | 3,283 | +25% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +64 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.