Install any skill in seconds. Free to start, no credit card required.
Get Started Free →当 cook-web 需要新增共享 loading 动画时,使用本技能统一公共组件目录、非破坏性导出方式,以及圆点序列动画的可配置实现。
.claude/skills/ai-shifu-shared-loading-dots/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 47% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -11% | 0% |
src/components/loading/,并通过 index.ts 统一导出,避免调用方自行散落实现。Loading,除非全站调用方已经确认要整体迁移。count、size、gap、durationMs 这类基础配置,保证同一动画能适配按钮内、局部块和页面级场景。bg-primary,不要在组件里直接写十六进制颜色。keyframes 和 animation,只有 Tailwind 无法覆盖时再补局部样式文件。LoadingBar,不要直接替换;优先保留原占位 loading,再把共享圆点 loading 接到内容已开始输出但流尚未结束的阶段。muted-foreground、foreground 这类现有中性色变量映射,不要单独再造新色。src/components/loading/ 下是否已有默认 loading 和 barrel export,评估是否应该新增命名组件而不是改旧组件。tailwind.config.ts 中注册,保证 JSX 中仍以 tailwind classname 为主。src/cook-web/SKILL.md 索引,避免后续重复约定。Loading 不受影响,新增圆点 loading 能通过命名导出被调用。| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 20,282 | 16,867 | -17% | 1 | 1 | 0% | 3,867 | 3,989 | +3% | 0 | 0 | — |
case-02 | pass→pass | 15,337 | 21,728 | +42% | 1 | 1 | 0% | 2,758 | 4,886 | +77% | 0 | 0 | — |
case-03 | fail→pass | 17,382 | 16,424 | -6% | 1 | 1 | 0% | 3,563 | 3,865 | +8% | 0 | 0 | — |
case-04 | pass→pass | 18,083 | 14,739 | -18% | 1 | 1 | 0% | 3,296 | 3,634 | +10% | 0 | 0 | — |
case-05 | pass→pass | 17,805 | 15,630 | -12% | 1 | 1 | 0% | 3,513 | 3,711 | +6% | 0 | 0 | — |
case-06 | fail→pass | 18,646 | 23,497 | +26% | 1 | 1 | 0% | 3,696 | 5,432 | +47% | 0 | 0 | — |
case-07 | fail→pass | 14,154 | 7,084 | -50% | 1 | 1 | 0% | 2,397 | 1,717 | -28% | 0 | 0 | — |
case-08 | pass→pass | 12,089 | 8,504 | -30% | 1 | 1 | 0% | 2,025 | 2,124 | +5% | 0 | 0 | — |
case-09 | fail→pass | 14,824 | 10,700 | -28% | 1 | 1 | 0% | 2,627 | 2,333 | -11% | 0 | 0 | — |
case-10 | fail→pass | 12,803 | 6,645 | -48% | 1 | 1 | 0% | 2,171 | 1,663 | -23% | 0 | 0 | — |
case-11 | pass→pass | 11,509 | 13,608 | +18% | 1 | 1 | 0% | 2,161 | 3,222 | +49% | 0 | 0 | — |
case-12 | fail→pass | 16,689 | 13,755 | -18% | 1 | 1 | 0% | 2,528 | 2,820 | +12% | 0 | 0 | — |
case-13 | pass→pass | 17,587 | 10,044 | -43% | 1 | 1 | 0% | 2,696 | 2,317 | -14% | 0 | 0 | — |
case-14 | pass→pass | 18,021 | 12,288 | -32% | 1 | 1 | 0% | 3,188 | 2,868 | -10% | 0 | 0 | — |
case-15 | pass→pass | 18,650 | 16,457 | -12% | 1 | 1 | 0% | 3,430 | 3,482 | +2% | 0 | 0 | — |
case-21 | pass→pass | 16,207 | 13,086 | -19% | 1 | 1 | 0% | 2,448 | 2,572 | +5% | 0 | 0 | — |
case-16 | fail→pass | 10,219 | 1,685 | -84% | 1 | 1 | 0% | 1,607 | 786 | -51% | 0 | 0 | — |
case-17 | pass→pass | 12,857 | 8,427 | -34% | 1 | 1 | 0% | 1,975 | 2,024 | +2% | 0 | 0 | — |
case-18 | fail→pass | 12,190 | 5,309 | -56% | 1 | 1 | 0% | 1,905 | 1,416 | -26% | 0 | 0 | — |
case-19 | pass→pass | 15,486 | 11,048 | -29% | 1 | 1 | 0% | 2,491 | 2,268 | -9% | 0 | 0 | — |
case-20 | fail→pass | 11,601 | 1,968 | -83% | 1 | 1 | 0% | 1,687 | 883 | -48% | 0 | 0 | — |
case-22 | fail→pass | 9,653 | 2,266 | -77% | 1 | 1 | 0% | 1,493 | 888 | -41% | 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 +50 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.