Skip to content
AI & Agents
Command

/cs-md-document

Convert long-form markdown (specs, RFCs, reports, plans, explainers) into a single-file interactive HTML document. Runs the md-document pipeline (parser → renderer → injector) with the user's design-system tokens. Sticky TOC, search filter, code-copy buttons, scrollspy, WCAG-AA

From plugin
claude-skills
30k169 skills127 agents169 commands2 MCP
$ npx -y skills add alirezarezvani/claude-skills --agent claude-code

Command definition

cs-md-document.md
disable-model-invocation: true
description: Convert long-form markdown (specs, RFCs, reports, plans, explainers) into a single-file interactive HTML document. Runs the md-document pipeline (parser → renderer → injector) with the user's design-system tokens. Sticky TOC, search filter, code-copy buttons, scrollspy, WCAG-AA palette. Refuses input < 100 lines (Shihipar) or unfinished onboarding. Output is a single .html file (Google Fonts + Prism.js CDN as the only externals).
argument-hint: "<path to markdown file> [--out <dir>] [--features search,copycode,smoothscroll,scrollspy]"

/cs-md-document — Long-form markdown → HTML

Convert the markdown at **$ARGUMENTS** into a single-file interactive HTML document.

Pre-flight gates (refuse, never override)

1. **Input < 100 lines** → refuse (markdown wins below the threshold per Shihipar). `wc -l <path>` to confirm. 2. **Design-system not onboarded** → refuse, surface `/cs-design-system`. 3. **Output directory unwritable** → refuse, ask user for an alternate via `--out`.

Pipeline

# 1. Classify (if not already routed by orchestrator)
python3 ${CLAUDE_PLUGIN_ROOT}/skills/markdown-html-orchestrator/scripts/doctype_classifier.py \
    --input "<path>.md" --output json \
  | python3 ${CLAUDE_PLUGIN_ROOT}/skills/markdown-html-orchestrator/scripts/route_explainer.py

# 2. Resolve the output path
python3 ${CLAUDE_PLUGIN_ROOT}/skills/markdown-html-orchestrator/scripts/output_path_resolver.py \
    --input "<path>.md" --doctype document

# 3. Parse → render → inject
python3 ${CLAUDE_PLUGIN_ROOT}/skills/md-document/scripts/markdown_parser.py \
    --input "<path>.md" --output /tmp/sections.json
python3 ${CLAUDE_PLUGIN_ROOT}/skills/md-document/scripts/html_renderer.py \
    --sections /tmp/sections.json --output <resolved-out>.html
python3 ${CLAUDE_PLUGIN_ROOT}/skills/md-document/scripts/interactivity_injector.py \
    --file <resolved-out>.html \
    --features search,copycode,smoothscroll,scrollspy

What ships in the HTML

  • Sticky-sidebar TOC (default; configurable via `toc.behavior` in design-system)
  • Scrollspy: `aria-current="location"` on the TOC entry for the section in view
  • Search bar (Esc clears): filters which H2 sections are visible
  • Code-copy buttons on every `<pre>` (vanilla `navigator.clipboard` with `execCommand` fallback)
  • Smooth-scroll on TOC link clicks
  • Prism.js syntax highlighting (autoloader fetches only the languages this doc uses)
  • 12 brand CSS custom properties from the design-system's `derived_palette`
  • `@media (prefers-reduced-motion: reduce)` honored
  • Print-friendly via the browser's native print stylesheet (no `@page` overrides needed for documents)

Hard rules

  • Output is one `.html` file. No multi-file output, no extracted CSS/JS, no asset folders.
  • External CDN: `fonts.googleapis.com` + `cdn.jsdelivr.net` (Prism). Nothing else.
  • No JS framework runtime. Vanilla JS + IntersectionObserver only.
  • Re-running on the same input writes `doc-{slug}-2.html` etc. (collision suffix).

Output

Returns: input lines, output path, design style applied, top 3 features used, one forcing question.

References

See `markdown-html/skills/md-document/references/`:

  • `information_density_patterns.md` — Shihipar + Tufte + Wattenberger
  • `toc_and_nav_ux.md` — NN/g + WCAG + ARIA
  • `single_file_html_discipline.md` — Single-file artifact rationale
Read more
@alirezarezvani
Ships withclaude-skills

411 production-ready skills for Claude Code and 12 other coding agents, covering engineering, product, marketing, compliance, finance and the C-suite. We test whether each skill loads when you ask in plain words, and publish the results.

30k200 skills127 agents2 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
29.6k
Star history of alirezarezvani/claude-skills on GitHub, a chart by star-history.com

Other commands on claude-skills.

focused-fix

focused-fix

Command

Deep-dive feature repair — systematically fix an entire feature/module across all its files and dependencies. Usage: /focused-fix…

plugin-audit

plugin-audit

Command

Comprehensive audit pipeline for skills, plugins, agents, and commands. Validates structure, quality, security, marketplace…

More commands from other plugins.

devbox-entrypoint

devbox-entrypoint

Command

Context: runloop resumes a devbox by re-running the same entrypoint script, which invokes `cn serve --id <agentId> ...`. Because…

continue12d36k
@continuedev@continuedevInstall Command
c

c

Command

Shortcut for "continue working" — pick the work in flight back up exactly where it stopped and keep going until it is done or…

lifeos2w20k
@danielmiessler@danielmiesslerInstall Command
sidecar

sidecar

Command

Spawn a read-only sidecar subagent to investigate something in this checkout without editing files, moving branches, or touching…

@builderio@builderioInstall Command