mirror of
https://github.com/alirezarezvani/claude-skills.git
synced 2026-09-07 08:26:02 +00:00
- fda-consultant-specialist: QMSR transition (eff. 2026-02-02) correctly framed; legacy QSR sections mapped to ISO 13485:2016 clauses (17-row mapping) - risk-management-specialist: ALARP-with-cost-benefit replaced by AFAP per EU MDR Annex I GSPR 1-4 + EN ISO 14971:2019/A11 - eu-ai-act-specialist: Art. 5(1)(f) sample corrected (workplace, not retail); both dual-published copies kept byte-identical - financial-analyst: 4 scripts now read bundled sample shape (and flat shape), exit non-zero on missing data; verified real outputs (ROE 25%, DCF $13.90/sh) - deal-desk: fixed-COGS margin math unified across script/reference/SKILL.md; margin scoring recalibrated (30% discount on 80% GM now scores 25, not 37) - senior-qa/backend/frontend + email-template-builder: 8 corrupted code literals from past bulk YAML-quoting sweep reconstructed - google-workspace-cli: install coordinates fixed to verified upstream (@googleworkspace/cli); phantom subcommands replaced with verified syntax - project-management: fabricated Atlassian MCP tool names replaced with the 30 real Remote MCP tools; new canonical references/atlassian-mcp-tools.md; unavailable capabilities routed to UI/REST; orphaned scripts wired - command-guide: retired (documented a different repo's ecosystem) - markdown-html: stale v2.10.0 'foundation' text replaced; routing now targets the shipped converters; never hand-render - webinar_funnel_scorer.py: argparse added (--help/--sample/stdin) - handoff redaction linter: missing 17th pattern (private CIDR) added https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
113 lines
5.7 KiB
Markdown
113 lines
5.7 KiB
Markdown
# markdown-html — Markdown to interactive HTML converter
|
|
|
|
> "I generated a 200-line implementation plan in Claude Code last month. Markdown. … I skimmed the first 20 lines, scrolled past the diagram I could not actually parse, and closed the file. I never read the rest."
|
|
> — Thariq Shihipar, *Claude Code HTML output* (Medium, 2026)
|
|
|
|
Convert long markdown files in a Claude project into single-file, lightly-interactive HTML that respects your brand. One-time design-system onboarding captures brand primary + accent + typography + layout style + default save location. Every conversion reads that config and renders consistently.
|
|
|
|
## Status — v2.10.3 (domain complete)
|
|
|
|
| Skill | Purpose | Status |
|
|
|---|---|---|
|
|
| `markdown-html-orchestrator` | Routes long markdown → converter sub-skill (`context: fork`) | ✓ live |
|
|
| `design-system` | Onboarding wizard + WCAG-AA-validated brand palette + shared config | ✓ live |
|
|
| `md-document` | Long-form: sticky TOC + collapsibles + search + code-copy + scrollspy | ✓ live |
|
|
| `md-review` | Code review: 2-col diff + severity-tagged margin annotations + jump-nav | ✓ live |
|
|
| `md-slides` | Slide deck: arrow-key nav + presenter mode + print-to-PDF | ✓ live |
|
|
|
|
## Quick start
|
|
|
|
```bash
|
|
# 1. One-time onboarding (10 questions, ~60 seconds)
|
|
python3 markdown-html/skills/design-system/scripts/onboard.py
|
|
|
|
# 2. (or zero-touch defaults for first-test)
|
|
python3 markdown-html/skills/design-system/scripts/onboard.py --defaults
|
|
|
|
# 3. Inspect the saved config
|
|
python3 markdown-html/skills/design-system/scripts/config_loader.py --status
|
|
|
|
# 4. Classify a markdown file and see the routing decision
|
|
python3 markdown-html/skills/markdown-html-orchestrator/scripts/doctype_classifier.py \
|
|
--input ./my-report.md --output json \
|
|
| python3 markdown-html/skills/markdown-html-orchestrator/scripts/route_explainer.py
|
|
|
|
# 5. Resolve where it would save
|
|
python3 markdown-html/skills/markdown-html-orchestrator/scripts/output_path_resolver.py \
|
|
--input ./my-report.md --doctype document
|
|
```
|
|
|
|
## Slash commands
|
|
|
|
- `/cs:markdown-html <path>.md` — top-level router (classify + route + recommend)
|
|
- `/cs:grill-markdown-html <path>.md` — Matt-style 5-question grill before conversion
|
|
- `/cs:design-system` — surface the onboarding wizard
|
|
- `/cs:md-document <path>.md` — long-form converter
|
|
- `/cs:md-review <path>.md` — code-review converter
|
|
- `/cs:md-slides <path>.md` — slide-deck converter
|
|
|
|
## Hard rules
|
|
|
|
1. **Refuses input < 100 lines** — markdown still wins below the threshold (Shihipar). Keep short docs as markdown.
|
|
2. **Refuses without onboarding** — without a captured brand, output renders with placeholder defaults. Run onboarding once.
|
|
3. **Refuses unwritable save location** — onboarding asks where to save; the orchestrator honors it; collisions get suffixed (`-2`, `-3`, …).
|
|
4. **Single-file HTML only** — all CSS + JS inline. The only external CDN entries are Google Fonts + Prism.js. No build step, no bundler, no JS framework.
|
|
5. **Never silently chain** — "convert this AND make slides AND a code review" is three operations, asked explicitly.
|
|
6. **WCAG AA enforced** — body-text contrast must reach 4.5:1. Onboarding refuses any combination that fails.
|
|
|
|
## Distinct from
|
|
|
|
- **Anthropic Playground plugin** (`/playground`) — builds interactive prompt-tuning controls (sliders, knobs, prompt-copy-back). Different tool entirely.
|
|
- **`marketing/landing/`** — generates landing pages from scratch. Doesn't take markdown input.
|
|
- **`engineering/handoff/` + `productivity/handoff/`** — session continuity briefs. Different artifact type.
|
|
|
|
## File layout
|
|
|
|
```
|
|
markdown-html/
|
|
├── .claude-plugin/
|
|
│ └── plugin.json
|
|
├── agents/
|
|
│ └── cs-markdown-html-orchestrator.md
|
|
├── commands/
|
|
│ ├── cs-markdown-html.md # router
|
|
│ ├── cs-design-system.md # onboarding surface
|
|
│ ├── cs-grill-markdown-html.md # 5-question grill
|
|
│ ├── cs-md-document.md # long-form converter
|
|
│ ├── cs-md-review.md # code-review converter
|
|
│ └── cs-md-slides.md # slide-deck converter
|
|
└── skills/
|
|
├── markdown-html-orchestrator/ # context: fork
|
|
│ ├── SKILL.md
|
|
│ ├── scripts/
|
|
│ │ ├── doctype_classifier.py
|
|
│ │ ├── route_explainer.py
|
|
│ │ └── output_path_resolver.py
|
|
│ └── references/
|
|
│ ├── information_density_canon.md
|
|
│ ├── orchestrator_routing_patterns.md
|
|
│ └── single_file_html_discipline.md
|
|
├── design-system/
|
|
│ ├── SKILL.md
|
|
│ ├── scripts/
|
|
│ │ ├── onboard.py
|
|
│ │ ├── config_loader.py
|
|
│ │ └── brand_palette_validator.py
|
|
│ ├── references/
|
|
│ │ ├── design_token_canon.md
|
|
│ │ ├── wcag_accessibility.md
|
|
│ │ └── typography_pairing.md
|
|
│ └── assets/
|
|
│ └── design_system_schema.json
|
|
├── md-document/ # long-form: markdown_parser → html_renderer → interactivity_injector
|
|
├── md-review/ # code review: diff_parser → annotation_extractor → review_html_renderer
|
|
└── md-slides/ # slide deck: slide_splitter → presenter_notes_parser → deck_html_renderer
|
|
```
|
|
|
|
## License
|
|
|
|
MIT. See repo `LICENSE`.
|
|
|
|
## Spec
|
|
|
|
Thariq Shihipar — *Claude Code HTML output: Why Markdown Lost and How to Switch* (Medium, 2026). The plugin operationalizes the article's central claim — markdown collapses past ~100 lines for agent-generated artifacts; HTML restores density, clarity, shareability, and lightweight interaction.
|