agentleFS
Simon-He95Simon-He95/markstream-vue/.agents/skills/markstream-solid/SKILL.md

markstream-solid

Skill3k starsChanged 2 days agoMITView on GitHub

Integrate markstream-solid in SolidJS 1.9 or SolidStart apps. Use for reactive TSX, SSR and hydration, Markdown streaming/restoration, emitted KaTeX/Mermaid workers, scoped components and translations, virtual timelines, or standalone component/API usage.

We split this skill into the rules it gives an agent

14 rules. About 0 are common, 4 are distinctive, and 10 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 10

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the Solid guide for setup and the Solid component/API reference for exact contracts.

    line 8
  2. Very specific:

    Add only required peers: katex, mermaid, stream-diffs, @terrastruct/d2 or @antv/infographic.

    line 14
  3. Very specific:

    Keep props reactive: read props.content in JSX/accessors.

    line 16
  4. Very specific:

    Use mode="chat" for conversations and mode="docs" for documents.

    line 30
  5. Very specific:

    Use non-empty nodes for shared/preparsed ASTs.

    line 32
  6. Very specific:

    Use MarkstreamVirtualTimeline for mixed message windows.

    line 34
  7. Very specific:

    Import markstream-solid/workers/katexRenderer.worker?worker and markstream-solid/workers/mermaidParser.worker?worker, then call …

    line 39
  8. Distinctive:

    Use file workers for Mermaid: its diagram chunks need a resolvable module base.

    line 40
  9. Very specific:

    Keep browser-only constructors behind the client boundary.

    line 43
  10. Very specific:

    Use ComponentProps<typeof Component> from solid-js or the exported interfaces for exact TSX props.

    line 47
  11. Very specific:

    Use local customComponents, a MarkstreamProvider, or scoped setCustomComponents(id, mapping) for overrides.

    line 48
  12. Distinctive:

    Use callbacks instead of Vue emits, JSX/render functions instead of slots, and a callback ref for renderer/timeline handles.

    line 49
  13. Distinctive:

    Read the per-component/API tables before configuring previews, diagrams, virtual state or advanced worker clients.

    line 53
  14. Very specific:

    Run the host's build and typecheck.

    line 57

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Markstream Solid

Read the Solid guide for setup and the Solid component/API reference for exact contracts. The repository source contains workspace commands and validation records. Check the selected package's actual version and publication status before installing it.

Setup

  1. Detect solid-js / @solidjs/start in the host. TSX alone does not imply React. Require Solid 1.9 and the Solid compiler; SolidStart owns its compiler setup.
  2. While the package is a workspace preview, build and pack the parser, core and Solid packages together. For npm releases, use the package's declared dependency versions; never substitute an older published core/parser for the workspace build.
  3. Add only required peers: katex, mermaid, stream-diffs, @terrastruct/d2 or @antv/infographic. Math also requires katex/dist/katex.min.css.
  4. Load resets before exactly one markstream-solid/index.css, index.px.css or index.tailwind.css. Use .markstream-solid around standalone basic nodes.
  5. Keep props reactive: read props.content in JSX/accessors. Avoid destructuring reactive props or treating signals as Vue refs.

Streaming and restoration

import MarkdownRender from 'markstream-solid'
import 'markstream-solid/index.css'

export function Message(props: { content: string, done: boolean }) {
  return <MarkdownRender mode="chat" content={props.content} final={props.done} />
}
  • Append decoded Markdown to accumulated content. Set final at completion and back to false before resuming. Replacement/empty content starts a new source session.
  • Use mode="chat" for conversations and mode="docs" for documents. smoothStreaming controls pacing; fade controls animation. Solid and Vue 3 share the bounded text fade implementation.
  • useSmoothMarkdownStream returns accessors (visible(), source(), final(), done(), snapshot()). Use one pacing owner per response.
  • Use non-empty nodes for shared/preparsed ASTs; an empty array falls back to content.
  • For full immediate DOM restoration, disable pacing, batching, viewport priority, deferral and live windows explicitly. Use the default window/timeline for large interactive histories.
  • Use MarkstreamVirtualTimeline for mixed message windows. Markdown items use its built-in renderer; renderItem supplies the non-Markdown fallback. Use useMarkstreamVirtualAdapter when an existing outer virtualizer owns rows.

Workers and SSR

  • Configure Vite worker: { format: 'es' }.
  • Import markstream-solid/workers/katexRenderer.worker?worker and markstream-solid/workers/mermaidParser.worker?worker, then call setKaTeXWorker / setMermaidWorker once in the browser entry or onMount.
  • Use file workers for Mermaid: its diagram chunks need a resolvable module base. Do not copy the old inline-worker example.
  • KaTeX worker renders block/inline math and includes mhchem. Mermaid worker handles parsing/prefix discovery; SVG rendering still runs on the main thread, matching Vue 3.
  • CDN helpers are a separate path; supply dependency URLs and CSP/CORS permissions as documented. Host-owned highlighter pools use setStreamDiffsWorkerPool.
  • Keep browser-only constructors behind the client boundary. SSR and hydration must start with identical content/final values. Prefer MarkstreamProvider for request-scoped translations/components.

Components and callbacks

  • Use ComponentProps<typeof Component> from solid-js or the exported interfaces for exact TSX props.
  • Use local customComponents, a MarkstreamProvider, or scoped setCustomComponents(id, mapping) for overrides. Mark block-level overrides with withMarkstreamComponentDisplay.
  • Use callbacks instead of Vue emits, JSX/render functions instead of slots, and a callback ref for renderer/timeline handles.
  • ReferenceNode forwards click/enter/leave with (event, id, messageId, threadId).
  • MathBlockNode.cacheScope namespaces the renderer-owned pending-height cache with indexKey; it is not a global KaTeX macro/HTML-cache namespace.
  • Mermaid stability/poll options control stable source-to-preview switching and bounded preview retries. Preserve cleanup and stale-result cancellation.
  • Read the per-component/API tables before configuring previews, diagrams, virtual state or advanced worker clients.

Verification

Run the host's build and typecheck. In this repository use pnpm test:solid, pnpm test:smoke:solid, pnpm test:smoke:solid-workers, pnpm test:e2e:solid-playground and pnpm play:solid:seo. Verify worker consumption through packed subpaths, streaming/final/full restore, user scroll detachment, and SSR/hydration where applicable.

Download now (ZIP)

Trending

More talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 0 mentionsMar 2026: 0 mentionsApr 2026: 0 mentionsMay 2026: 1 mentionJun 2026: 0 mentionsJul 2026: 20 mentionsAug 2026: 2 mentionsSep 2026: 5 mentionsOct 2026: 22 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the Simon-He95/markstream-vue repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about Simon-He95/markstream-vue

The biggest 5 of 50 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 50

Talked about on GitHub (50 times).

On GitHub · 50

45 more on GitHub

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.