Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when reviewing slow initial loads caused by optional features. Prioritize code that is expensive to download or execute and not required for the first viewport, first input, or core task completion.
.claude/skills/thedaviddias-import-on-interaction/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 8% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 8% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 7% | 0% |
Users should not pay the download, parse, and execution cost for features they may never use. Import-on-interaction shrinks initial JavaScript, reduces main-thread work during page load, and keeps the first view focused on content that matters immediately.
Inspect this route or component for heavy modules, widgets, or third-party scripts that load on first render but are only needed after a user clicks, focuses, hovers, or opens a panel.
Move the non-critical dependency behind a user-triggered dynamic import(), add immediate loading feedback, and ensure the initial render still works without the deferred feature.
Explain import-on-interaction, why it improves initial performance, and which features are safe to defer until the user shows intent.
Inspect event handlers, modal triggers, drawers, editors, maps, export actions, and third-party widgets. Flag code that is included in the initial bundle even though it is only needed after a user interaction, and verify the fix keeps the initial path lighter without degrading the triggered flow.
For full implementation details, code examples, and framework-specific guidance, see references/rule.md.
Rule page: https://frontendchecklist.io/en/rules/performance/import-on-interaction
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 14,589 | 13,221 | -9% | 1 | 1 | 0% | 2,837 | 3,516 | +24% | 0 | 0 | — |
case-02 | fail→fail | 11,969 | 9,030 | -25% | 1 | 1 | 0% | 2,138 | 2,040 | -5% | 0 | 0 | — |
case-03 | pass→pass | 11,522 | 10,314 | -10% | 1 | 1 | 0% | 2,193 | 2,363 | +8% | 0 | 0 | — |
case-04 | pass→pass | 9,904 | 6,999 | -29% | 1 | 1 | 0% | 1,769 | 1,904 | +8% | 0 | 0 | — |
case-05 | pass→pass | 11,938 | 9,838 | -18% | 1 | 1 | 0% | 2,277 | 2,440 | +7% | 0 | 0 | — |
case-06 | pass→pass | 13,145 | 12,701 | -3% | 1 | 1 | 0% | 2,462 | 2,893 | +18% | 0 | 0 | — |
case-07 | pass→pass | 11,857 | 8,365 | -29% | 1 | 1 | 0% | 2,139 | 2,261 | +6% | 0 | 0 | — |
case-08 | fail→fail | 10,920 | 6,641 | -39% | 1 | 1 | 0% | 2,456 | 1,601 | -35% | 0 | 0 | — |
case-09 | pass→pass | 11,122 | 9,167 | -18% | 1 | 1 | 0% | 2,008 | 2,003 | -0% | 0 | 0 | — |
case-10 | fail→pass | 10,349 | 8,308 | -20% | 1 | 1 | 0% | 2,291 | 2,031 | -11% | 0 | 0 | — |
case-11 | pass→pass | 11,779 | 8,025 | -32% | 1 | 1 | 0% | 2,146 | 1,783 | -17% | 0 | 0 | — |
case-12 | pass→pass | 12,699 | 16,189 | +27% | 1 | 1 | 0% | 2,628 | 2,801 | +7% | 0 | 0 | — |
case-13 | pass→pass | 13,177 | 9,590 | -27% | 1 | 1 | 0% | 2,486 | 2,040 | -18% | 0 | 0 | — |
case-14 | pass→pass | 17,677 | 13,813 | -22% | 1 | 1 | 0% | 2,223 | 1,725 | -22% | 0 | 0 | — |
case-15 | pass→pass | 11,344 | 13,097 | +15% | 1 | 1 | 0% | 1,974 | 2,158 | +9% | 0 | 0 | — |
case-16 | pass→pass | 10,684 | 6,643 | -38% | 1 | 1 | 0% | 1,813 | 1,520 | -16% | 0 | 0 | — |
case-17 | pass→pass | 13,987 | 9,962 | -29% | 1 | 1 | 0% | 2,284 | 2,147 | -6% | 0 | 0 | — |
case-18 | pass→pass | 12,040 | 8,886 | -26% | 1 | 1 | 0% | 1,803 | 2,084 | +16% | 0 | 0 | — |
case-19 | pass→pass | 15,379 | 11,675 | -24% | 1 | 1 | 0% | 2,311 | 2,191 | -5% | 0 | 0 | — |
case-20 | pass→pass | 17,917 | 9,336 | -48% | 1 | 1 | 0% | 2,652 | 1,977 | -25% | 0 | 0 | — |
case-21 | pass→pass | 14,041 | 9,515 | -32% | 1 | 1 | 0% | 2,044 | 1,960 | -4% | 0 | 0 | — |
case-22 | pass→pass | 12,946 | 10,421 | -20% | 1 | 1 | 0% | 1,889 | 1,946 | +3% | 0 | 0 | — |
case-23 | pass→pass | 16,194 | 11,083 | -32% | 1 | 1 | 0% | 2,307 | 1,890 | -18% | 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. 23 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 23 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.