md-document
Converts long-form markdown (specs, RFCs, reports, plans, explainers) into a single-file, lightly-interactive HTML document with sticky TOC, scrollspy, search filter, code-copy buttons, and design-system-driven brand tokens. Triggers when the markdown-html-orchestrator classifies an input as DOCUMENT, or when invoked directly via /cs:md-document. Reads the design-system config via config_loader.py and inlines the user's 12 derived CSS custom properties; refuses to render if onboarding hasn't run. Single-file output — Google Fonts + Prism.js CDN are the only externals; no framework runtime, no
npx skills add alirezarezvani/claude-skills --skill md-document --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# md-document — Long-form Markdown to HTML The general-purpose converter — handles the 90% case Shihipar describes (specs, plans, RFCs, reports, explainers). Three stdlib tools pipeline together: ``` markdown_parser.py → html_renderer.py → interactivity_injector.py (md → JSON AST) (AST + tokens → HTML) (HTML + JS behavior) ``` Output is one `.html` file with sticky TOC, search filter, scrollspy, code-copy buttons, and the user's 12 derived brand tokens. Externals limited to Google Fonts CSS + Prism.js CDN. ## When to invoke | Symptom | Action | |---|---| | `markdown-html-orchestrator` routes input as DOCUMENT | Invoke this skill | | User runs `/cs:md-document <path>.md` directly | Invoke this skill | | User says "convert this spec/report/RFC/plan to HTML" | Invoke this skill | | Input is a code review (has ` ```diff ` blocks) | Route to `md-review` instead | | Input is a slide deck (clear `---` boundaries) | Route to `md-slides` instead | | Input is < 100 lines | Refuse (Shihipar threshold — markdown still wins) | | Design-system not onboarded | Refuse, surface `/cs:design-system` | ## Pipeline ```bash # 1. Parse markdown → JSON AST python3 markdown-html/skills/md-document/scripts/
- When to invoke
- Hard rules
- Forcing-question library (Matt Pocock grill discipline)
- Distinct from
- Output artifact
- References
python3 markdown-html/skills/md-document/scripts/markdown_parser.py \ python3 markdown-html/skills/md-document/scripts/html_renderer.py \ python3 markdown-html/skills/md-document/scripts/interactivity_injector.py \ python3 markdown-html/skills/md-document/scripts/html_renderer.py --sample \
What does the md-document skill do?
Converts long-form markdown (specs, RFCs, reports, plans, explainers) into a single-file, lightly-interactive HTML document with sticky TOC, scrollspy, search filter, code-copy buttons, and design-system-driven brand tokens. Triggers when the markdown-html-orchestrator classifies an input as DOCUMENT, or when invoked directly via /cs:md-document. Reads the design-system config via config_loader.py and inlines the user's 12 derived CSS custom properties; refuses to render if onboarding hasn't run. Single-file output — Google Fonts + Prism.js CDN are the only externals; no framework runtime, no
How do I install it?
Run `npx skills add alirezarezvani/claude-skills --skill md-document --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From alirezarezvani/claude-skills, a repository with 23,791 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.