md-documentlisted
Install: claude install-skill tmj-90/gaffer
# Convert long-form markdown into a readable HTML document
Markdown wins for short content; a well-rendered HTML document wins for long specs and RFCs where navigation matters.
**Minimum viable document features:** sticky TOC, scrollspy, code-copy buttons, search filter. Single-file output — no framework runtime.
## When to use (and when not to)
| Input | Action |
|-------|--------|
| Spec / RFC / report / plan / explainer ≥ 100 lines | This skill |
| Slide deck (clear `---` slide boundaries) | `slides-deck` |
| Code review (diff blocks dominate) | Not this skill |
| < 100 lines | Leave as markdown — conversion overhead not worth it |
## Document structure requirements
The source markdown must have:
- A single `# Title` (H1) — becomes the `<title>` and page heading.
- `## Section` (H2) headings — TOC entries.
- `### Sub-section` (H3) headings — TOC sub-entries (optional).
If the source lacks this hierarchy, impose it before converting — a flat markdown wall produces a flat, unusable HTML document.
## Output spec
Single `.html` file with:
- **Sticky sidebar TOC** — generated from H2/H3 headings; highlights current section on scroll (scrollspy).
- **Search filter** — filters TOC entries and highlights matching sections; pure JS, no dependencies.
- **Code-copy buttons** — on every `<pre><code>` block.
- **Design tokens** — CSS custom properties for brand colour, font, spacing (use the repo's `brand` skill tokens if available; fall back to neutral defaults).
- **External