brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
markstream-nuxtIntegrate 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.
Independent GitHub snapshot · Automated classification · Original documentation governs
mode selection, or a safe MarkdownRender integration inside pages, components, or Nuxt plugins.Use 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, fade=false, and max-live-nodes=0; smooth-streaming="auto" paces visible output.mode="docs" for rich document surfaces. It is the default and enables larger batches, tooltips, and fade.mode="minimal" for lightweight non-chat surfaces.stream-diffs when the optional peer is installed. Use render-code-blocks-as-pre for a forced plain path or setCustomComponents(customId, { code_block: ... }) for a scoped application-owned renderer.typewriter only controls the blinking cursor and defaults to false. Prefer typewriter="simple" for high-frequency chat.smooth-streaming controls output pacing and fade controls opacity; they can be enabled together. mode="chat" keeps fade=false as a lightweight default. Add fade when gradual text reveal is desired; keep it off when animation cost matters more. Vue 3 append fades use stable batches (200 ms, 50 ms coalescing window, at most four batches per text node); later appends do not restart earlier batches.MarkdownRender starts streaming and later switches to history when final=true.
mode="chat" and final; add fade for text reveal and typewriter only when a cursor is wanted.mode="chat" on the same chat row; use :smooth-streaming="false", typewriter=false, and choose fade independently for the desired entry/reveal effect. Do not bind it to the inverse of streaming state unless that visual policy is intentional.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.useStickToBottom from markstream-vue/utils and call scheduleScrollToBottom() after Vue commits new content. The composable attaches browser listeners after mount; use MarkstreamVirtualTimeline with stick-to-bottom="auto" for long mixed timelines.setStreamDiffsWorkerPool from markstream-vue, backed by an upstream @pierre/diffs WorkerPoolManager) is also client-only: inject it in a client-only plugin/component, never in server code paths.stream-diffs; do not install stream-monaco.code-block-options for supported built-in code-surface configuration. Keep theme, code/language, streaming lifecycle, header, mounting, reveal, and disposal under Markstream's control.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.md