opencode-skills-collection 4.0.7 → 4.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +19 -1
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +15 -6
- package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
- package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-preview-profile.md +2 -2
- package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-worklog.md +1 -1
- package/bundled-skills/docs/maintainers/release-process.md +15 -0
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/users/aas-core.md +32 -3
- package/bundled-skills/docs/users/bundles.md +1 -1
- package/bundled-skills/docs/users/claude-code-skills.md +1 -1
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/usage.md +4 -4
- package/bundled-skills/docs/users/visual-guide.md +4 -4
- package/bundled-skills/docs/vietnamese/README.vi.md +4 -4
- package/bundled-skills/hf-cloud-aws-context-discovery/SKILL.md +96 -0
- package/bundled-skills/markstream-angular/SKILL.md +76 -0
- package/bundled-skills/markstream-custom-components/SKILL.md +74 -0
- package/bundled-skills/markstream-custom-components/references/patterns.md +14 -0
- package/bundled-skills/markstream-install/SKILL.md +3 -1
- package/bundled-skills/markstream-migration/SKILL.md +78 -0
- package/bundled-skills/markstream-migration/references/adoption-checklist.md +10 -0
- package/bundled-skills/markstream-nuxt/SKILL.md +71 -0
- package/bundled-skills/markstream-react/SKILL.md +74 -0
- package/bundled-skills/markstream-svelte/SKILL.md +68 -0
- package/bundled-skills/markstream-vue/SKILL.md +71 -0
- package/bundled-skills/markstream-vue2/SKILL.md +70 -0
- package/bundled-skills/markstream-vue2-cli/SKILL.md +70 -0
- package/bundled-skills/markstream-vue2-vite/SKILL.md +69 -0
- package/bundled-skills/n8n-agents/SKILL.md +301 -0
- package/bundled-skills/n8n-agents/references/CHAT_AGENT_PATTERNS.md +228 -0
- package/bundled-skills/n8n-agents/references/EXAMPLES.md +432 -0
- package/bundled-skills/n8n-agents/references/HUMAN_REVIEW.md +180 -0
- package/bundled-skills/n8n-agents/references/MEMORY.md +139 -0
- package/bundled-skills/n8n-agents/references/RAG.md +102 -0
- package/bundled-skills/n8n-agents/references/STRUCTURED_OUTPUT.md +163 -0
- package/bundled-skills/n8n-agents/references/SUBWORKFLOW_AS_TOOL.md +199 -0
- package/bundled-skills/n8n-agents/references/SYSTEM_PROMPT.md +151 -0
- package/bundled-skills/n8n-agents/references/TOOLS.md +199 -0
- package/bundled-skills/n8n-binary-and-data/SKILL.md +269 -0
- package/bundled-skills/n8n-binary-and-data/references/AGENT_TOOL_BINARY.md +227 -0
- package/bundled-skills/n8n-binary-and-data/references/BINARY_BASICS.md +187 -0
- package/bundled-skills/n8n-binary-and-data/references/CDN_REQUIREMENT.md +109 -0
- package/bundled-skills/n8n-binary-and-data/references/MERGE_FOR_CONTEXT.md +130 -0
- package/bundled-skills/n8n-code-tool/SKILL.md +358 -0
- package/bundled-skills/n8n-code-tool/references/ERROR_PATTERNS.md +178 -0
- package/bundled-skills/n8n-code-tool/references/INPUT_SCHEMA.md +132 -0
- package/bundled-skills/n8n-error-handling/SKILL.md +289 -0
- package/bundled-skills/n8n-error-handling/references/API_WORKFLOWS.md +256 -0
- package/bundled-skills/n8n-error-handling/references/ERROR_WORKFLOWS.md +178 -0
- package/bundled-skills/n8n-error-handling/references/NODE_ERROR_OUTPUTS.md +171 -0
- package/bundled-skills/n8n-error-handling/references/RESPONSE_SHAPES.md +220 -0
- package/bundled-skills/n8n-multi-instance/SKILL.md +208 -0
- package/bundled-skills/n8n-node-configuration/references/NODE_FAMILY_GOTCHAS.md +241 -0
- package/bundled-skills/n8n-subworkflows/SKILL.md +271 -0
- package/bundled-skills/n8n-subworkflows/references/NAMING_AND_DISCOVERY.md +130 -0
- package/bundled-skills/n8n-subworkflows/references/SUBWORKFLOW_PATTERNS.md +147 -0
- package/bundled-skills/using-n8n-mcp-skills/SKILL.md +193 -0
- package/package.json +1 -1
- package/skills_index.json +547 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markstream-custom-components
|
|
3
|
+
description: "Override Markstream node renderers and add trusted custom tags across Vue, React, Svelte, and Angular using scoped or renderer-local mappings."
|
|
4
|
+
category: frontend
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-custom-components
|
|
7
|
+
source_repo: Simon-He95/markstream-vue
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-07-21"
|
|
10
|
+
author: Simon-He95
|
|
11
|
+
tags: [markdown, components, vue, react, svelte, angular]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
license: MIT
|
|
14
|
+
license_source: https://github.com/Simon-He95/markstream-vue/blob/main/license
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Markstream Custom Components
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Customize specific Markstream nodes or trusted custom tags without replacing the parser or leaking global renderer state. Read [references/patterns.md](references/patterns.md) first.
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
|
|
25
|
+
Use to replace built-ins such as `image`, `link`, `code_block`, `mermaid`, or `inline_code`; render trusted tags such as `thinking`; or scope overrides to one renderer or app. Use parser transforms only when token or AST reshaping is required.
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval.
|
|
30
|
+
|
|
31
|
+
1. Classify the change as a built-in override, trusted tag, or parser transform.
|
|
32
|
+
2. Prefer scoped mappings. Vue, Vue 2, Svelte, and Angular can use `setCustomComponents(customId, mapping)`; Svelte and Angular can also pass renderer-local maps.
|
|
33
|
+
3. In React, prefer `streamingComponents` for parser-backed nodes and `htmlComponents` for sanitized attributes plus children.
|
|
34
|
+
4. Start with leaf nodes before containers that must preserve children.
|
|
35
|
+
5. For trusted tag bodies containing Markdown, use a nested renderer with the same allowlist. Do not add a second smooth-streaming loop.
|
|
36
|
+
6. Preserve node/loading props, identity keys, scope IDs, theme state, and preview-height estimates for async diagrams.
|
|
37
|
+
7. Remove temporary scoped registrations on cleanup and validate repeated and nested tags.
|
|
38
|
+
|
|
39
|
+
## Example
|
|
40
|
+
|
|
41
|
+
```tsx
|
|
42
|
+
import MarkdownRender, {
|
|
43
|
+
type NodeComponentProps,
|
|
44
|
+
setCustomComponents,
|
|
45
|
+
} from 'markstream-react'
|
|
46
|
+
import 'markstream-react/index.css'
|
|
47
|
+
|
|
48
|
+
function ThinkingNode({ node }: NodeComponentProps<any>) {
|
|
49
|
+
return <details><summary>Thinking</summary>{node.content}</details>
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
setCustomComponents('assistant-panel', { thinking: ThinkingNode })
|
|
53
|
+
|
|
54
|
+
export function Answer({ markdown }: { markdown: string }) {
|
|
55
|
+
return (
|
|
56
|
+
<MarkdownRender
|
|
57
|
+
content={markdown}
|
|
58
|
+
customId="assistant-panel"
|
|
59
|
+
customHtmlTags={['thinking']}
|
|
60
|
+
htmlPolicy="safe"
|
|
61
|
+
/>
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Limitations
|
|
67
|
+
|
|
68
|
+
- Component overrides cannot reproduce arbitrary remark/rehype transforms.
|
|
69
|
+
- Container overrides require careful child rendering and accessibility review.
|
|
70
|
+
- Framework registration APIs are not interchangeable.
|
|
71
|
+
|
|
72
|
+
## Security & Safety Notes
|
|
73
|
+
|
|
74
|
+
Treat custom HTML-like tags as trusted input only. Keep safe HTML enabled and do not pass unsanitized attributes into host components.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Override Patterns
|
|
2
|
+
|
|
3
|
+
| Key | Typical use |
|
|
4
|
+
|---|---|
|
|
5
|
+
| `image` | Lightboxes, captions, lazy loading |
|
|
6
|
+
| `link` | Routing, analytics, tooltips |
|
|
7
|
+
| `code_block` | Fenced code blocks |
|
|
8
|
+
| `mermaid`, `d2`, `infographic` | One diagram renderer |
|
|
9
|
+
| `inline_code` | Inline typography |
|
|
10
|
+
| `heading`, `paragraph`, `list_item` | Containers preserving children |
|
|
11
|
+
|
|
12
|
+
For Vue, Vue 2, Svelte, or Angular shared registration, allowlist the tag, register it under a scoped `customId`, and pass that scope to the renderer. Prefer renderer-local maps when sharing is unnecessary.
|
|
13
|
+
|
|
14
|
+
For React, use `streamingComponents` for parser-backed tags and `htmlComponents` for sanitized HTML-style props. When a tag body contains Markdown, use a nested renderer with the same allowlist and no independent pacing.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: markstream-install
|
|
3
3
|
description: "Install and configure Markstream streaming Markdown renderers for Vue, React, Svelte, Angular, Nuxt, Next.js, and Vue 2 applications."
|
|
4
4
|
category: frontend
|
|
5
|
-
risk:
|
|
5
|
+
risk: critical
|
|
6
6
|
source: https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-install
|
|
7
7
|
source_repo: Simon-He95/markstream-vue
|
|
8
8
|
source_type: official
|
|
@@ -48,6 +48,8 @@ Do not select `markstream-vue` merely because the source repository has Vue in i
|
|
|
48
48
|
|
|
49
49
|
### 2. Install the smallest dependency set
|
|
50
50
|
|
|
51
|
+
Before installing or changing source files, preview the exact dependency and code changes and obtain explicit user approval. Do not switch package managers or replace an existing renderer implicitly.
|
|
52
|
+
|
|
51
53
|
Install exactly one framework package and preserve the repository's package manager. Add optional peers only when the requested UI uses their feature.
|
|
52
54
|
|
|
53
55
|
Examples:
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markstream-migration
|
|
3
|
+
description: "Audit and migrate an existing Markdown renderer to Markstream while preserving custom renderers, security policy, streaming behavior, and explicit parity gaps."
|
|
4
|
+
category: frontend
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-migration
|
|
7
|
+
source_repo: Simon-He95/markstream-vue
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-07-21"
|
|
10
|
+
author: Simon-He95
|
|
11
|
+
tags: [markdown, migration, streaming, security, frontend]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
license: MIT
|
|
14
|
+
license_source: https://github.com/Simon-He95/markstream-vue/blob/main/license
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Markstream Migration
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Replace an existing Markdown renderer without silently dropping transforms, custom components, URL policy, raw-HTML behavior, or streaming semantics. Read [references/adoption-checklist.md](references/adoption-checklist.md) first.
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
|
|
25
|
+
Use when replacing `react-markdown`, `markdown-it`, `marked`, or another renderer; migrating node renderers; or choosing between Markstream `content`, smooth streaming, and `nodes`.
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval.
|
|
30
|
+
|
|
31
|
+
1. Inventory renderer imports, call sites, plugins, HTML policy, URL transforms, allowlists, custom renderers, CSS, and tests.
|
|
32
|
+
2. Classify the migration as direct, renderer-custom, plugin-heavy, or security-heavy.
|
|
33
|
+
3. Install the framework package and explicit CSS. Preserve visible behavior before optional features.
|
|
34
|
+
4. Map built-ins to scoped overrides; in React prefer renderer-local component maps.
|
|
35
|
+
5. Use trusted custom tags only for trusted content and reserve parse transforms for irreducible token/AST requirements.
|
|
36
|
+
6. Keep `content` with smooth streaming for ordinary token streams. Use `nodes` only for worker parsing, shared AST ownership, or structural transforms.
|
|
37
|
+
7. Preserve safe HTML and strict Mermaid defaults; scope and document any trusted legacy exception.
|
|
38
|
+
8. Run relevant builds and behavior tests. Report mappings, intentional differences, and unresolved review.
|
|
39
|
+
|
|
40
|
+
## Example
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
// Before:
|
|
44
|
+
// import ReactMarkdown from 'react-markdown'
|
|
45
|
+
// return <ReactMarkdown>{markdown}</ReactMarkdown>
|
|
46
|
+
|
|
47
|
+
import MarkdownRender from 'markstream-react'
|
|
48
|
+
import 'markstream-react/index.css'
|
|
49
|
+
|
|
50
|
+
export function AssistantAnswer({
|
|
51
|
+
markdown,
|
|
52
|
+
isDone,
|
|
53
|
+
}: {
|
|
54
|
+
markdown: string
|
|
55
|
+
isDone: boolean
|
|
56
|
+
}) {
|
|
57
|
+
return (
|
|
58
|
+
<MarkdownRender
|
|
59
|
+
content={markdown}
|
|
60
|
+
final={isDone}
|
|
61
|
+
fade={isDone}
|
|
62
|
+
typewriter={!isDone}
|
|
63
|
+
smoothStreaming={isDone ? false : 'auto'}
|
|
64
|
+
htmlPolicy="safe"
|
|
65
|
+
/>
|
|
66
|
+
)
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Limitations
|
|
71
|
+
|
|
72
|
+
- Markstream cannot reproduce every remark, rehype, or markdown-it plugin automatically.
|
|
73
|
+
- Visual parity does not prove security or URL-policy parity.
|
|
74
|
+
- Large migrations may require staged conversion.
|
|
75
|
+
|
|
76
|
+
## Security & Safety Notes
|
|
77
|
+
|
|
78
|
+
Do not weaken sanitization for screenshot parity. Review dependencies, raw HTML, URL transforms, and trust boundaries explicitly.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Adoption Checklist
|
|
2
|
+
|
|
3
|
+
Search for `react-markdown`, `remarkPlugins`, `rehypePlugins`, `markdown-it`, `marked`, `rehypeRaw`, `skipHtml`, allow/deny lists, `urlTransform`, custom renderers, CSS, and tests.
|
|
4
|
+
|
|
5
|
+
- `direct`: plain renderer swap
|
|
6
|
+
- `renderer-custom`: custom components can become overrides
|
|
7
|
+
- `plugin-heavy`: transform chains need manual mapping
|
|
8
|
+
- `security-heavy`: HTML and URL policy need explicit review
|
|
9
|
+
|
|
10
|
+
Swap the package first, preserve CSS order, prefer scoped mappings, and adopt `nodes` only when another layer owns parsing or structural updates.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markstream-nuxt
|
|
3
|
+
description: "Integrate markstream-vue into Nuxt 3 or 4 with SSR-safe client boundaries, renderer modes, explicit CSS, and browser-only optional peers."
|
|
4
|
+
category: frontend
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-nuxt
|
|
7
|
+
source_repo: Simon-He95/markstream-vue
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-07-21"
|
|
10
|
+
author: Simon-He95
|
|
11
|
+
tags: [nuxt, vue, ssr, markdown, streaming]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
license: MIT
|
|
14
|
+
license_source: https://github.com/Simon-He95/markstream-vue/blob/main/license
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Markstream Nuxt
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Integrate `markstream-vue` into Nuxt while keeping hydration, browser-only peers, workers, and streaming behavior on the correct side of SSR boundaries.
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
|
|
25
|
+
Use for Nuxt 3 or 4 pages, components, or plugins. Use `markstream-vue` for non-Nuxt Vue applications and `markstream-install` when the framework is not yet known.
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval.
|
|
30
|
+
|
|
31
|
+
1. Confirm Nuxt 3 or 4 and install only requested peers.
|
|
32
|
+
2. Put browser-only peers behind `<ClientOnly>`, `.client` plugins, dynamic imports, or guarded initialization.
|
|
33
|
+
3. Import `markstream-vue/index.css` explicitly from a client-safe shell or plugin.
|
|
34
|
+
4. Start with `content`: `mode="chat"` for AI streams, `docs` for rich documents, and `minimal` for lightweight non-chat surfaces.
|
|
35
|
+
5. Keep smooth streaming in `auto` mode for SSR; do not force `true` on first-screen server content.
|
|
36
|
+
6. When a chat row completes, keep its mode stable, set `final`, disable pacing/cursor, and enable fade only if desired.
|
|
37
|
+
7. Keep HTML safe and Mermaid strict. Put optional code, diagram, and worker runtimes behind client boundaries.
|
|
38
|
+
8. Validate build/typecheck, hydration, and one incremental client update.
|
|
39
|
+
|
|
40
|
+
## Example
|
|
41
|
+
|
|
42
|
+
```vue
|
|
43
|
+
<script setup lang="ts">
|
|
44
|
+
import MarkdownRender from 'markstream-vue'
|
|
45
|
+
import 'markstream-vue/index.css'
|
|
46
|
+
|
|
47
|
+
defineProps<{ markdown: string; done: boolean }>()
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<template>
|
|
51
|
+
<MarkdownRender
|
|
52
|
+
mode="chat"
|
|
53
|
+
:content="markdown"
|
|
54
|
+
:final="done"
|
|
55
|
+
:fade="done"
|
|
56
|
+
:typewriter="!done"
|
|
57
|
+
:smooth-streaming="done ? false : 'auto'"
|
|
58
|
+
html-policy="safe"
|
|
59
|
+
/>
|
|
60
|
+
</template>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Limitations
|
|
64
|
+
|
|
65
|
+
- Browser-only peers cannot run during SSR.
|
|
66
|
+
- Hydration depends on correct host plugin/component boundaries.
|
|
67
|
+
- This skill does not configure deployment adapters.
|
|
68
|
+
|
|
69
|
+
## Security & Safety Notes
|
|
70
|
+
|
|
71
|
+
Do not expose trusted HTML or loose Mermaid settings to untrusted model output. Review dependency and runtime-boundary changes.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markstream-react
|
|
3
|
+
description: "Integrate the beta markstream-react renderer into React 18+ or Next.js with correct client/server entrypoints, CSS, streaming state, and component overrides."
|
|
4
|
+
category: frontend
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-react
|
|
7
|
+
source_repo: Simon-He95/markstream-vue
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-07-21"
|
|
10
|
+
author: Simon-He95
|
|
11
|
+
tags: [react, nextjs, markdown, streaming, ssr]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
license: MIT
|
|
14
|
+
license_source: https://github.com/Simon-He95/markstream-vue/blob/main/license
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Markstream React
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Wire the beta React renderer into React 18+ or Next.js without crossing client/server boundaries or reaching for AST control unnecessarily.
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
|
|
25
|
+
Use for React/Next setup, root/`next`/`server` entrypoints, streaming, component overrides, or migration support. Pair with `markstream-migration` for renderer replacement.
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval.
|
|
30
|
+
|
|
31
|
+
1. Confirm React 18+ and acceptance of a beta package.
|
|
32
|
+
2. Install only requested peers and import `markstream-react/index.css`.
|
|
33
|
+
3. Use the root entry for client rendering, `/next` for Next-specific components, and `/server` for server rendering without client hooks.
|
|
34
|
+
4. Start with `content` and `smoothStreaming="auto"`; use `nodes` plus `final` only when another layer owns parsing.
|
|
35
|
+
5. For live chat disable fade and opt into the cursor. On completion set `final`, disable pacing/cursor, and enable fade only if desired.
|
|
36
|
+
6. Keep browser-only peers inside `'use client'`, dynamic `ssr: false`, or another minimal boundary.
|
|
37
|
+
7. Prefer `streamingComponents` for parser-backed tags and `htmlComponents` for sanitized props. Use scoped registry overrides for built-in nodes.
|
|
38
|
+
8. Keep `htmlPolicy="safe"` and Mermaid strict; validate client, server, and incremental paths.
|
|
39
|
+
|
|
40
|
+
## Example
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
import MarkdownRender from 'markstream-react'
|
|
44
|
+
import 'markstream-react/index.css'
|
|
45
|
+
|
|
46
|
+
export function StreamingAnswer({
|
|
47
|
+
content,
|
|
48
|
+
isDone,
|
|
49
|
+
}: {
|
|
50
|
+
content: string
|
|
51
|
+
isDone: boolean
|
|
52
|
+
}) {
|
|
53
|
+
return (
|
|
54
|
+
<MarkdownRender
|
|
55
|
+
content={content}
|
|
56
|
+
final={isDone}
|
|
57
|
+
fade={isDone}
|
|
58
|
+
typewriter={!isDone}
|
|
59
|
+
smoothStreaming={isDone ? false : 'auto'}
|
|
60
|
+
htmlPolicy="safe"
|
|
61
|
+
/>
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Limitations
|
|
67
|
+
|
|
68
|
+
- The package is beta and requires React 18+.
|
|
69
|
+
- Browser-only peers require client boundaries under SSR.
|
|
70
|
+
- Complex parser parity requires separate migration review.
|
|
71
|
+
|
|
72
|
+
## Security & Safety Notes
|
|
73
|
+
|
|
74
|
+
Review dependencies and never opt untrusted model output into trusted HTML or loose diagram rendering.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markstream-svelte
|
|
3
|
+
description: "Integrate the beta markstream-svelte renderer into Svelte 5 or SvelteKit with runes, explicit CSS, smooth streaming, workers, and SSR-safe boundaries."
|
|
4
|
+
category: frontend
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-svelte
|
|
7
|
+
source_repo: Simon-He95/markstream-vue
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-07-21"
|
|
10
|
+
author: Simon-He95
|
|
11
|
+
tags: [svelte, sveltekit, markdown, streaming, ssr]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
license: MIT
|
|
14
|
+
license_source: https://github.com/Simon-He95/markstream-vue/blob/main/license
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Markstream Svelte
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Integrate Markstream using Svelte 5 runes and SvelteKit-safe browser boundaries.
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
|
|
25
|
+
Use for Svelte 5 or SvelteKit package setup, streaming state, workers, or scoped custom components. Svelte 4 is unsupported.
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval.
|
|
30
|
+
|
|
31
|
+
1. Confirm Svelte 5 and acceptance of a beta package.
|
|
32
|
+
2. Install only requested peers; import package CSS after resets and KaTeX CSS only for math.
|
|
33
|
+
3. Start with `<MarkdownRender {content} />` and smooth streaming `auto`.
|
|
34
|
+
4. For live chat disable fade and opt into the cursor; on completion set `final`, disable pacing/cursor, and enable fade only if desired.
|
|
35
|
+
5. Use `nodes` only for worker-owned parsing or shared AST state.
|
|
36
|
+
6. Use `$props()` and callbacks. Configure KaTeX or Mermaid workers only when requested.
|
|
37
|
+
7. Prefer renderer-local `customComponents`; use scoped registration only when sharing is intentional.
|
|
38
|
+
8. Keep browser-only workers behind SvelteKit client boundaries; validate with `svelte-check`, build, or e2e.
|
|
39
|
+
|
|
40
|
+
## Example
|
|
41
|
+
|
|
42
|
+
```svelte
|
|
43
|
+
<script lang="ts">
|
|
44
|
+
import MarkdownRender from 'markstream-svelte'
|
|
45
|
+
import 'markstream-svelte/index.css'
|
|
46
|
+
|
|
47
|
+
let { content, isDone }: { content: string; isDone: boolean } = $props()
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<MarkdownRender
|
|
51
|
+
{content}
|
|
52
|
+
final={isDone}
|
|
53
|
+
fade={isDone}
|
|
54
|
+
typewriter={!isDone}
|
|
55
|
+
smoothStreaming={isDone ? false : 'auto'}
|
|
56
|
+
htmlPolicy="safe"
|
|
57
|
+
/>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Limitations
|
|
61
|
+
|
|
62
|
+
- Svelte 4 is unsupported and the package is beta.
|
|
63
|
+
- Workers and heavy peers require client-side bundler support.
|
|
64
|
+
- This skill does not migrate unrelated Svelte architecture.
|
|
65
|
+
|
|
66
|
+
## Security & Safety Notes
|
|
67
|
+
|
|
68
|
+
Keep safe HTML and strict Mermaid defaults. Review dependencies and never run browser-only peers during SSR.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markstream-vue
|
|
3
|
+
description: "Integrate markstream-vue into plain Vue 3 with renderer modes, code and DOM choices, streaming state, virtualization, optional peers, and scoped components."
|
|
4
|
+
category: frontend
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-vue
|
|
7
|
+
source_repo: Simon-He95/markstream-vue
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-07-21"
|
|
10
|
+
author: Simon-He95
|
|
11
|
+
tags: [vue, markdown, streaming, virtualization, ai-chat]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
license: MIT
|
|
14
|
+
license_source: https://github.com/Simon-He95/markstream-vue/blob/main/license
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Markstream Vue 3
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Configure the Vue 3 renderer beyond generic installation: surface modes, streaming lifecycle, code rendering, long-message virtualization, and scoped overrides.
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
|
|
25
|
+
Use for a plain Vue 3 application after the package has been selected. Use `markstream-nuxt` when SSR-specific Nuxt boundaries matter.
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval.
|
|
30
|
+
|
|
31
|
+
1. Confirm Vue 3 and not Nuxt. Install only requested peers and import `markstream-vue/index.css` after resets.
|
|
32
|
+
2. Start with `content`. Use `mode="chat"` for AI streams, `docs` for rich documents, and `minimal` for lightweight non-chat surfaces.
|
|
33
|
+
3. Choose fenced-code rendering explicitly: `pre` without a peer, `shiki` with `stream-markdown`, or compatibility-named `monaco` backed by `stream-diffs`.
|
|
34
|
+
4. For live chat use smooth streaming `auto`, no fade, and an optional cursor. On completion keep the same mode, set `final`, and disable pacing/cursor.
|
|
35
|
+
5. Use `nodes` only for worker parsing or structural AST ownership.
|
|
36
|
+
6. For long transcripts, keep an existing outer message virtualizer in charge. Use Markstream logical height rather than mounted DOM height.
|
|
37
|
+
7. Use scoped component registration and preserve safe HTML and Mermaid strict mode.
|
|
38
|
+
8. Validate the smallest build/typecheck plus one incremental stream and one long-message case.
|
|
39
|
+
|
|
40
|
+
## Example
|
|
41
|
+
|
|
42
|
+
```vue
|
|
43
|
+
<script setup lang="ts">
|
|
44
|
+
import MarkdownRender from 'markstream-vue'
|
|
45
|
+
import 'markstream-vue/index.css'
|
|
46
|
+
|
|
47
|
+
defineProps<{ content: string; isDone: boolean }>()
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<template>
|
|
51
|
+
<MarkdownRender
|
|
52
|
+
mode="chat"
|
|
53
|
+
:content="content"
|
|
54
|
+
:final="isDone"
|
|
55
|
+
:fade="isDone"
|
|
56
|
+
:typewriter="!isDone"
|
|
57
|
+
:smooth-streaming="isDone ? false : 'auto'"
|
|
58
|
+
html-policy="safe"
|
|
59
|
+
/>
|
|
60
|
+
</template>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Limitations
|
|
64
|
+
|
|
65
|
+
- Optional peers add bundle and browser-runtime cost.
|
|
66
|
+
- DOM-minimal mode disables wrapper-dependent features.
|
|
67
|
+
- Virtualization integration requires stable content and measurement keys.
|
|
68
|
+
|
|
69
|
+
## Security & Safety Notes
|
|
70
|
+
|
|
71
|
+
Review dependency changes. Never enable trusted HTML or loose Mermaid rendering for untrusted model output.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markstream-vue2
|
|
3
|
+
description: "Integrate markstream-vue2 into Vue 2.6 or 2.7 with correct Composition API decisions, CSS, streaming state, optional peers, and scoped overrides."
|
|
4
|
+
category: frontend
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-vue2
|
|
7
|
+
source_repo: Simon-He95/markstream-vue
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-07-21"
|
|
10
|
+
author: Simon-He95
|
|
11
|
+
tags: [vue2, markdown, streaming, compatibility, frontend]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
license: MIT
|
|
14
|
+
license_source: https://github.com/Simon-He95/markstream-vue/blob/main/license
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Markstream Vue 2
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Handle Vue 2.6/2.7 compatibility decisions that the generic installer cannot resolve safely.
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
|
|
25
|
+
Use for Vue 2 integration when no bundler-specific edge case dominates. Use `markstream-vue2-cli` for Vue CLI/Webpack 4 and `markstream-vue2-vite` for Vite worker imports.
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval.
|
|
30
|
+
|
|
31
|
+
1. Confirm Vue 2.6 or 2.7 and install `markstream-vue2`.
|
|
32
|
+
2. Add `@vue/composition-api` only for Vue 2.6 code that uses Composition API patterns; Vue 2.7 has built-in support.
|
|
33
|
+
3. Import `markstream-vue2/index.css` after resets.
|
|
34
|
+
4. Start with `<MarkdownRender :content="markdown" />` and smooth streaming `auto`.
|
|
35
|
+
5. For live chat disable fade and opt into the cursor; on completion set `final`, disable pacing/cursor, and enable fade only if desired.
|
|
36
|
+
6. Use `nodes` only when another layer owns parsing. Use scoped mappings for overrides.
|
|
37
|
+
7. Keep HTML safe and Mermaid strict; validate with the smallest build or dev command.
|
|
38
|
+
|
|
39
|
+
## Example
|
|
40
|
+
|
|
41
|
+
```vue
|
|
42
|
+
<script>
|
|
43
|
+
import MarkdownRender from 'markstream-vue2'
|
|
44
|
+
import 'markstream-vue2/index.css'
|
|
45
|
+
|
|
46
|
+
export default {
|
|
47
|
+
components: { MarkdownRender },
|
|
48
|
+
props: { content: String, done: Boolean },
|
|
49
|
+
}
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<template>
|
|
53
|
+
<MarkdownRender
|
|
54
|
+
:content="content"
|
|
55
|
+
:final="done"
|
|
56
|
+
:fade="done"
|
|
57
|
+
:typewriter="!done"
|
|
58
|
+
/>
|
|
59
|
+
</template>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Limitations
|
|
63
|
+
|
|
64
|
+
- Vue 2.6 and 2.7 have different Composition API requirements.
|
|
65
|
+
- Legacy bundlers require the dedicated specializations.
|
|
66
|
+
- Optional modern peers may not support every Vue 2 toolchain.
|
|
67
|
+
|
|
68
|
+
## Security & Safety Notes
|
|
69
|
+
|
|
70
|
+
Review dependency and compatibility changes. Do not relax rendering safety for untrusted content.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markstream-vue2-cli
|
|
3
|
+
description: "Integrate markstream-vue2 into Vue CLI or Webpack 4 with export-map-safe CSS, CDN worker fallbacks, and conservative code-block defaults."
|
|
4
|
+
category: frontend
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/Simon-He95/markstream-vue/tree/main/.agents/skills/markstream-vue2-cli
|
|
7
|
+
source_repo: Simon-He95/markstream-vue
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-07-21"
|
|
10
|
+
author: Simon-He95
|
|
11
|
+
tags: [vue2, vue-cli, webpack4, markdown, workers]
|
|
12
|
+
tools: [claude, cursor, gemini, codex]
|
|
13
|
+
license: MIT
|
|
14
|
+
license_source: https://github.com/Simon-He95/markstream-vue/blob/main/license
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Markstream Vue 2 CLI
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Handle Vue CLI and Webpack 4 constraints that differ materially from modern Vue 2/Vite setup.
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
|
|
25
|
+
Use when Vue 2 runs on Vue CLI or Webpack 4 and package export maps or Vite worker imports are unavailable.
|
|
26
|
+
|
|
27
|
+
## Workflow
|
|
28
|
+
|
|
29
|
+
Before changing dependencies or source files, inspect the existing package manager and project conventions, preview the intended edits, and obtain explicit user approval.
|
|
30
|
+
|
|
31
|
+
1. Confirm Vue 2 plus Vue CLI/Webpack 4.
|
|
32
|
+
2. Install `markstream-vue2` and only requested peers.
|
|
33
|
+
3. Import `markstream-vue2/dist/index.css`, because legacy tooling may not understand the CSS export map.
|
|
34
|
+
4. Avoid `?worker` imports. Use Markstream CDN worker helpers for KaTeX or Mermaid only when needed.
|
|
35
|
+
5. Prefer `stream-markdown` code blocks over fragile Monaco worker wiring.
|
|
36
|
+
6. Keep `content` with smooth streaming for chat; set `final` and disable pacing/cursor for completed history.
|
|
37
|
+
7. Keep HTML safe and Mermaid strict; validate the actual legacy build.
|
|
38
|
+
|
|
39
|
+
## Example
|
|
40
|
+
|
|
41
|
+
```vue
|
|
42
|
+
<script>
|
|
43
|
+
import MarkdownRender from 'markstream-vue2'
|
|
44
|
+
// Legacy Webpack may not resolve the package CSS export map.
|
|
45
|
+
import 'markstream-vue2/dist/index.css'
|
|
46
|
+
|
|
47
|
+
export default {
|
|
48
|
+
components: { MarkdownRender },
|
|
49
|
+
data: () => ({ content: '# Answer', done: false }),
|
|
50
|
+
}
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<template>
|
|
54
|
+
<MarkdownRender
|
|
55
|
+
:content="content"
|
|
56
|
+
:final="done"
|
|
57
|
+
:fade="false"
|
|
58
|
+
/>
|
|
59
|
+
</template>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Limitations
|
|
63
|
+
|
|
64
|
+
- CDN workers require network access and compatible content-security policy.
|
|
65
|
+
- Monaco-style worker setups are intentionally not covered.
|
|
66
|
+
- Vue 2.6 may also require `@vue/composition-api`.
|
|
67
|
+
|
|
68
|
+
## Security & Safety Notes
|
|
69
|
+
|
|
70
|
+
Do not introduce CDN workers without reviewing CSP, network policy, and dependency trust. Preserve safe rendering defaults.
|