/cs-markdown-html¶
Route this conversion through the markdown-html-orchestrator skill:
$ARGUMENTS
Pre-flight gates (refuse and surface, never override)¶
- Input < 100 lines. Markdown still wins below the threshold (Shihipar). Refuse with the line count + recommendation to keep as markdown.
- Design-system not onboarded. Surface
python3 markdown-html/skills/design-system/scripts/onboard.pyand re-prompt after. - Output directory unwritable. Refuse; let the user fix the path or re-onboard.
Routing (deterministic, two-signal threshold)¶
| Signal class | Filename hints | Content signals | Sub-skill |
|---|---|---|---|
| DOCUMENT | report.md, spec.md, rfc-*.md, *-doc.md, *-analysis.md, *-explainer.md |
## Table of Contents, ^#, ^##, table rows, GFM callouts |
md-document |
| REVIEW | review.md, *-pr-*.md, *.diff.md, code-review*.md |
```diff, ^[-+]{3}, ^@@, > [!BLOCKER]/[!MAJOR]/[!MINOR]/[!NIT], LGTM/nit:/blocker: |
md-review |
| SLIDES | deck.md, slides.md, *-talk.md, presentation*.md |
^---$ ≥ 3, <!-- notes:, H1 cadence ≥ 5 with median gap ≤ 12 lines |
md-slides |
Pipeline:
python3 markdown-html/skills/markdown-html-orchestrator/scripts/doctype_classifier.py \
--input "$ARGUMENTS" --output json \
| python3 markdown-html/skills/markdown-html-orchestrator/scripts/route_explainer.py
python3 markdown-html/skills/markdown-html-orchestrator/scripts/output_path_resolver.py \
--input "$ARGUMENTS" --doctype <verdict>
- Silent-route only when winner ≥ 3 AND (runner-up = 0 OR winner ≥ 2× runner-up).
- Single signal or tie → one clarifying question with a recommended answer.
- No signals → ask which lane, recommend
md-documentas the safe default.
Output (≤ 100-word digest)¶
- Input lines + doctype
- Output path (resolved by
output_path_resolver.py) - Design style + brand primary applied (from
config_loader.py) - Top 3 features used (sticky TOC, scrollspy, code-copy, severity badges, presenter mode, etc.)
- One forcing question for the user (cite Shihipar / WCAG / Lupton / Tufte)
Hard rules¶
- Never silently chain two converters. Pick one, finish, ask before chaining.
- Never override a
REFUSEfromroute_explainer.py. - Never invent brand colors when the user hasn't onboarded. Surface onboarding.
- Output is single-file HTML. External CDN is limited to Google Fonts + Prism.js.
Status¶
All five skills are live (orchestrator + design-system + the three converters). This command runs the classifier + design-system gate, then hands the conversion to the routed converter sub-skill (/cs:md-document, /cs:md-review, or /cs:md-slides). Never render HTML inline — the converter scripts own the rendering.