Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Integrate the beta markstream-react renderer into React 18+ or Next.js with correct client/server entrypoints, CSS, streaming state, and component overrides.
.claude/skills/sickn33-markstream-react/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -45% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -26% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -49% | 0% |
Wire the beta React renderer into React 18+ or Next.js without crossing client/server boundaries or reaching for AST control unnecessarily.
Use for React/Next setup, root/next/server entrypoints, streaming, component overrides, or migration support. Pair with markstream-migration for renderer replacement.
Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval.
markstream-react/index.css./next for Next-specific components, and /server for server rendering without client hooks.content and smoothStreaming="auto"; use nodes plus final only when another layer owns parsing.final, disable pacing/cursor, and enable fade only if desired.'use client', dynamic ssr: false, or another minimal boundary.streamingComponents for parser-backed tags and htmlComponents for sanitized props. Use scoped registry overrides for built-in nodes.htmlPolicy="safe" and Mermaid strict; validate client, server, and incremental paths.tsximport MarkdownRender from 'markstream-react' import 'markstream-react/index.css' export function StreamingAnswer({ content, isDone, }: { content: string isDone: boolean }) { return ( <MarkdownRender content={content} final={isDone} fade={isDone} typewriter={!isDone} smoothStreaming={isDone ? false : 'auto'} htmlPolicy="safe" /> ) }
Review dependencies and never opt untrusted model output into trusted HTML or loose diagram rendering.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→pass | 13,524 | 9,964 | -26% | 1 | 1 | 0% | 2,528 | 2,497 | -1% | 0 | 0 | — |
case-01 | fail→pass | 17,925 | 7,072 | -61% | 1 | 1 | 0% | 3,508 | 1,922 | -45% | 0 | 0 | — |
case-02 | fail→pass | 13,201 | 8,853 | -33% | 1 | 1 | 0% | 2,483 | 2,266 | -9% | 0 | 0 | — |
case-04 | fail→pass | 7,530 | 3,494 | -54% | 1 | 1 | 0% | 1,439 | 1,059 | -26% | 0 | 0 | — |
case-05 | fail→pass | 15,853 | 4,936 | -69% | 1 | 1 | 0% | 2,791 | 1,434 | -49% | 0 | 0 | — |
case-06 | fail→pass | 6,566 | 2,544 | -61% | 1 | 1 | 0% | 1,138 | 916 | -20% | 0 | 0 | — |
case-07 | fail→pass | 8,031 | 2,292 | -71% | 1 | 1 | 0% | 1,457 | 945 | -35% | 0 | 0 | — |
case-12 | fail→pass | 6,939 | 2,758 | -60% | 1 | 1 | 0% | 1,242 | 1,017 | -18% | 0 | 0 | — |
case-08 | fail→pass | 13,881 | 3,522 | -75% | 1 | 1 | 0% | 2,274 | 1,103 | -51% | 0 | 0 | — |
case-09 | fail→pass | 16,408 | 5,907 | -64% | 1 | 1 | 0% | 2,891 | 1,609 | -44% | 0 | 0 | — |
case-10 | fail→pass | 12,606 | 4,358 | -65% | 1 | 1 | 0% | 2,131 | 1,328 | -38% | 0 | 0 | — |
case-11 | pass→pass | 16,813 | 6,630 | -61% | 1 | 1 | 0% | 2,966 | 1,714 | -42% | 0 | 0 | — |
case-13 | pass→pass | 13,886 | 4,154 | -70% | 1 | 1 | 0% | 2,434 | 1,180 | -52% | 0 | 0 | — |
case-14 | fail→pass | 8,215 | 2,148 | -74% | 1 | 1 | 0% | 1,388 | 840 | -39% | 0 | 0 | — |
case-15 | fail→pass | 13,118 | 3,966 | -70% | 1 | 1 | 0% | 2,264 | 1,209 | -47% | 0 | 0 | — |
case-16 | fail→pass | 11,726 | 3,487 | -70% | 1 | 1 | 0% | 1,905 | 1,107 | -42% | 0 | 0 | — |
case-17 | fail→pass | 19,210 | 6,995 | -64% | 1 | 1 | 0% | 3,064 | 1,598 | -48% | 0 | 0 | — |
case-18 | fail→pass | 15,545 | 7,680 | -51% | 1 | 1 | 0% | 2,893 | 1,942 | -33% | 0 | 0 | — |
case-19 | fail→pass | 11,402 | 3,490 | -69% | 1 | 1 | 0% | 2,035 | 1,118 | -45% | 0 | 0 | — |
case-20 | pass→pass | 12,297 | 10,164 | -17% | 1 | 1 | 0% | 2,539 | 2,452 | -3% | 0 | 0 | — |
case-21 | pass→pass | 12,431 | 7,603 | -39% | 1 | 1 | 0% | 2,737 | 2,010 | -27% | 0 | 0 | — |
case-22 | pass→pass | 9,420 | 6,939 | -26% | 1 | 1 | 0% | 1,965 | 1,869 | -5% | 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 +77 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.