Integrate markstream-vue into a Nuxt 3 or Nuxt 4 app. Use when Codex needs client-only boundaries, SSR-safe setup, browser-only peer gating, worker-aware initialization, renderer `mode` selection, or a safe `MarkdownRender` integration inside pages, components, or Nuxt plugins.
66
78%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.agents/skills/markstream-nuxt/SKILL.mdUse this skill when the host app is Nuxt and SSR boundaries matter.
markstream-vue plus only the optional peers required by the requested features.<client-only> wrappers, .client plugins, or guarded setup paths.markstream-vue/index.css from a client-safe app shell or plugin.
markstream-vue/index.css or markstream-vue/index.px.css explicitly.content, choose the renderer mode by surface, and move to nodes plus final only when the UI needs custom AST control.
mode="chat" for AI chat or SSE output. It uses lightweight batches, <pre> code rendering by default, fade=false, and max-live-nodes=0; smooth-streaming="auto" paces visible output.mode="docs" for rich document surfaces. It is the default, enables larger batches, tooltips, fade, and enhanced stream-diffs code blocks when the peer is installed.mode="minimal" for lightweight non-chat surfaces.code-renderer="monaco" | "shiki" | "pre". The compatibility-named monaco mode uses stream-diffs; shiki uses stream-markdown.typewriter only controls the blinking cursor and defaults to false. Prefer typewriter="simple" for high-frequency chat.:fade="false" to avoid delta fade stacking with high-commit pacing.MarkdownRender starts streaming and later switches to history when final=true.
mode="chat", smooth-streaming="auto", :fade="false", typewriter=true.mode="chat" on the same chat row; use :smooth-streaming="false", typewriter=false, and only set :fade="true" when the host explicitly wants a history-entry animation.mode="minimal" for lightweight non-chat recovered content, and use mode="docs" only for rich document surfaces.smooth-streaming="true" on first-screen content; the mounted gate inside auto prevents hydration mismatch.html-policy now defaults to safe, and Mermaid strict mode is on by default through mermaid-props.mode only when the surface should use rich docs defaults.auto mode (the default) because it gates on mount. Do not use smooth-streaming="true" for first-screen SSR content — it bypasses the mounted gate and can cause hydration mismatch or blank flash.stream-monaco merely because Vue 3 retains code-renderer="monaco"; the current enhanced surface uses stream-diffs.html-policy="safe" and Mermaid strict mode unless the task is preserving trusted legacy rendering.html-policy="trusted" and :mermaid-props="{ isStrict: false }", and document why that surface is trusted.docs/nuxt-ssr.mddocs/guide/installation.mddocs/guide/usage.mddocs/guide/troubleshooting.mdf25ebd5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.