Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Hidden fallback scenario for free-form Home prompts. Infer the task type and ask only when routing is materially ambiguous.
.claude/skills/nexu-io-od-default/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 228% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 81% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 126% | 0% |
This plugin runs only when the user types a free-form Home prompt without choosing one of the visible category chips. It is the design-engine fallback, not a visible catalog entry.
Infer the task type from the user's brief and known conversation context. When one route is reasonably clear, bind it and continue directly to that OpenDesign flow. A free-form Home prompt, a first turn, or the presence of a discovery stage does not by itself require a question form.
Emit the form below only when two or more routes remain materially plausible and choosing the wrong one would change the delivery format. Localize every user-facing string to the user's chat language, but keep ids, types, option values, and the ordered taskType options stable. Set defaultValue to the stable value of the route you recommend so the user can submit unchanged; the example below recommends prototype, but replace it with the inferred route value before emission. You may add at most two other unanswered questions, and only when their answers are also required before useful work can begin; never restore a fixed discovery checklist.
html<question-form id="task-type" title="Choose the task type"> { "lang": "en", "description": "I need one routing decision before I build. The recommended option is preselected.", "questions": [ { "id": "taskType", "label": "What should I build?", "type": "radio", "required": true, "allowCustom": false, "defaultValue": "prototype", "options": [ { "label": "Prototype", "value": "prototype" }, { "label": "Live artifact", "value": "live_artifact" }, { "label": "Slide deck", "value": "slide_deck" }, { "label": "Image", "value": "image" }, { "label": "Video", "value": "video" }, { "label": "HyperFrames", "value": "hyperframes" }, { "label": "Audio", "value": "audio" }, { "label": "Other", "value": "other" } ] } ] } </question-form>
When the user replies with [form answers — task-type], bind the chosen task type as authoritative, match the stable [value: ...] token rather than the localized label, and continue:
prototype (Prototype): run the normal new-generation prototype flow.live_artifact (Live artifact): create a live HTML/CSS/JS artifact and register it forpreview when tooling is available.
slide_deck (Slide deck): follow the deck workflow and framework rules.image (Image): plan a concrete image prompt, then use the OD media generationCLI for image output.
video (Video): plan shots, duration, aspect, and motion, then use the OD mediageneration CLI for video output.
hyperframes (HyperFrames): create HTML-driven motion frames or a HyperFrames-readymotion artifact before rendering/exporting.
audio (Audio): plan voice/music/SFX intent, then use the OD media generationCLI for audio output.
other (Other): ask only the minimum follow-up needed, then choose the closestOpenDesign workflow and continue.
Do not automatically emit a second <question-form id="discovery"> after the route answer. Continue with the submitted answer and all existing context. Ask again later only if a new, genuinely blocking ambiguity appears. Do not tell the user to go back and choose a chip; the default plugin owns this fallback.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 7,222 | 6,418 | -11% | 1 | 1 | 0% | 1,169 | 2,055 | +76% | 0 | 0 | — |
case-02 | fail→pass | 4,975 | 6,097 | +23% | 1 | 1 | 0% | 701 | 2,299 | +228% | 0 | 0 | — |
case-03 | fail→fail | 3,643 | 12,809 | +252% | 1 | 1 | 0% | 552 | 2,909 | +427% | 0 | 0 | — |
case-04 | pass→pass | 76,786 | 34,475 | -55% | 1 | 1 | 0% | 8,245 | 9,121 | +11% | 0 | 0 | — |
case-05 | pass→pass | 18,349 | 18,787 | +2% | 1 | 1 | 0% | 3,148 | 3,168 | +1% | 0 | 0 | — |
case-06 | fail→fail | 8,031 | 17,636 | +120% | 1 | 1 | 0% | 1,320 | 3,241 | +146% | 0 | 0 | — |
case-07 | fail→fail | 14,721 | 19,680 | +34% | 1 | 1 | 0% | 1,959 | 3,769 | +92% | 0 | 0 | — |
case-08 | fail→fail | 9,118 | 12,623 | +38% | 1 | 1 | 0% | 1,460 | 2,827 | +94% | 0 | 0 | — |
case-09 | fail→pass | 6,881 | 5,154 | -25% | 1 | 1 | 0% | 1,108 | 2,009 | +81% | 0 | 0 | — |
case-10 | fail→pass | 15,955 | 4,763 | -70% | 1 | 1 | 0% | 2,619 | 1,876 | -28% | 0 | 0 | — |
case-11 | fail→pass | 6,002 | 7,720 | +29% | 1 | 1 | 0% | 935 | 2,110 | +126% | 0 | 0 | — |
case-12 | fail→fail | 3,037 | 35,399 | +1066% | 1 | 1 | 0% | 392 | 9,102 | +2222% | 0 | 0 | — |
case-21 | pass→pass | 7,208 | 7,631 | +6% | 1 | 1 | 0% | 1,338 | 2,520 | +88% | 0 | 0 | — |
case-13 | fail→fail | 4,084 | 5,066 | +24% | 1 | 1 | 0% | 682 | 1,609 | +136% | 0 | 0 | — |
case-14 | fail→pass | 4,130 | 16,369 | +296% | 1 | 1 | 0% | 594 | 3,056 | +414% | 0 | 0 | — |
case-15 | pass→pass | 19,932 | 50,328 | +152% | 1 | 1 | 0% | 4,204 | 9,097 | +116% | 0 | 0 | — |
case-16 | fail→fail | 10,773 | 9,690 | -10% | 1 | 1 | 0% | 1,407 | 2,141 | +52% | 0 | 0 | — |
case-17 | fail→fail | 5,907 | 7,883 | +33% | 1 | 1 | 0% | 803 | 1,965 | +145% | 0 | 0 | — |
case-18 | fail→pass | 3,650 | 2,790 | -24% | 1 | 1 | 0% | 617 | 1,327 | +115% | 0 | 0 | — |
case-19 | pass→pass | 6,718 | 5,204 | -23% | 1 | 1 | 0% | 1,058 | 1,734 | +64% | 0 | 0 | — |
case-20 | pass→pass | 11,175 | 6,341 | -43% | 1 | 1 | 0% | 1,458 | 2,178 | +49% | 0 | 0 | — |
case-22 | pass→pass | 6,273 | 11,512 | +84% | 1 | 1 | 0% | 731 | 2,478 | +239% | 0 | 0 | — |
case-23 | fail→pass | 7,891 | 21,422 | +171% | 1 | 1 | 0% | 1,383 | 5,206 | +276% | 0 | 0 | — |
case-24 | fail→pass | 14,690 | 25,976 | +77% | 1 | 1 | 0% | 2,555 | 5,082 | +99% | 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. 24 cases were attempted. The headline lift of +38 percentage points is the difference between those two pass rates over the 24 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.