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-skillsRequests code review by dispatching a subagent with git diff context. Use after completing tasks, major features, or before merging to catch issues early.
2plugins reuse this skill
First indexed Jun 30, 2026