From markdown-html-skills
Converts a markdown PR writeup or code review (one with ```diff fenced blocks and severity-tagged > [!BLOCKER]/[!MAJOR]/[!MINOR]/[!NIT] callouts) into a single-file 2-column HTML review — unified-diff on the left, severity-tagged annotation cards on the right, top jump-nav listing every finding, mandatory named reviewer footer. Triggers when the markdown-html-orchestrator classifies an input as REVIEW, or when invoked directly via /cs:md-review. Refuses without explicit --reviewer (a code review must name a human), refuses if no diff hunks present (route to md-document instead), and refuses to encode severity in color only (every badge ships color + icon + aria-label per WCAG 1.4.1). Use after orchestrator routing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/markdown-html-skills:md-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The code-review converter from Tier 2 of Shihipar's essay ("Code Review and PR Writeups"). Takes a markdown PR writeup with diff blocks + severity callouts and produces a single-file HTML review with a jump-nav, 2-column diff + annotation layout, and a named reviewer footer.
The code-review converter from Tier 2 of Shihipar's essay ("Code Review and PR Writeups"). Takes a markdown PR writeup with diff blocks + severity callouts and produces a single-file HTML review with a jump-nav, 2-column diff + annotation layout, and a named reviewer footer.
Three stdlib tools pipeline together:
diff_parser.py → annotation_extractor.py → review_html_renderer.py
(md → diff hunks) (md → severity-tagged (hunks + annotations
annotations attached + tokens → 2-col HTML)
to nearest hunk)
| Symptom | Action |
|---|---|
markdown-html-orchestrator routes input as REVIEW | Invoke this skill |
User runs /cs:md-review <path>.md directly | Invoke this skill |
Input contains ```diff fenced blocks + > [!MAJOR]/> [!BLOCKER]/etc. callouts | Invoke this skill |
| Input is a long-form spec / report (no diff blocks) | Route to md-document instead |
| Input is a slide deck | Route to md-slides instead |
| Input < 100 lines | Refuse (Shihipar threshold) |
| Design-system not onboarded | Refuse; surface /cs:design-system |
# 1. Parse markdown → diff hunks JSON
python3 markdown-html/skills/md-review/scripts/diff_parser.py \
--input <path>.md --output hunks.json
# 2. Extract severity-tagged annotations, attach to nearest preceding hunk
python3 markdown-html/skills/md-review/scripts/annotation_extractor.py \
--input <path>.md --diff-blocks hunks.json --output annotations.json
# 3. Render 2-col HTML (--reviewer is mandatory — refuses without)
python3 markdown-html/skills/md-review/scripts/review_html_renderer.py \
--diff-blocks hunks.json --annotations annotations.json \
--reviewer "Jane Doe" --title "PR #123: Add retry logic" \
--output review.html
LGTM markers are present and no severity annotations, a success-tinted "LGTM — no findings flagged" bar--reviewer--reviewer is mandatory. A code review must name a human reviewer. Refuses with exit 3 otherwise. Mirrors research-ops's "named owner" discipline.--- a/file + @@ ... @@ blocks means this isn't a code review — refuses with exit 4 and recommends md-document.aria-label + text. WCAG 1.4.1 enforced at the renderer level.--severity-convention "critical,important,suggestion,nit" swaps tier names; position 0 is most severe. Default is BLOCKER / MAJOR / MINOR / NIT (Google Code Review Developer Guide).<title> and header? Recommended: the actual PR / commit title. Canon: docs-as-context-for-readers.LGTM markers ship as the approval bar? Recommended: yes if there are no severity annotations; otherwise the findings take precedence.md-document — that converter renders prose + tables + code + callouts. This one renders diff hunks + margin annotations.md-slides — that converter splits on --- boundaries. This one is a single-page artifact.{default_output_dir}/review-{slug}.html (path resolved by orchestrator's output_path_resolver.py; collision suffix -2, -3, … by default).
references/ for full citations (diff_rendering_canon, severity_coding, pr_annotation_ux)npx claudepluginhub ai-integr8tor/alirezarezvani-claude-skills --plugin markdown-html-skillsSets up isolated workspaces using native worktree tools or git worktree fallback. Use before starting feature work to protect the current branch.
3plugins reuse this skill
First indexed Jun 30, 2026