From nullish-app
A terminal skill that renders markdown reports as single-file, self-contained HTML. Built on Thariq Shihipar's "unreasonable effectiveness of HTML" philosophy — zero external JS/CSS framework dependencies, with a single allowed exception of a font CDN for Korean readability. Use this skill whenever you receive requests such as: - "render this report as HTML", "make a single-file HTML report", "single-file HTML render" - "status report html", "financial statement HTML", "turn this report into one HTML file" - "printable HTML report", "an HTML report to embed in an email" - "status report html", "incident report html", "business plan html" - "html-report mode=status", "html-report mode=financial", "html-report mode=plan"
How this skill is triggered — by the user, by Claude, or both
Slash command
/nullish-app:html-reportThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`nullish-content:html-report` is the **terminal renderer** of the cowork text-production pipeline.
nullish-content:html-report is the terminal renderer of the cowork text-production pipeline.
It converts the markdown reports produced by upstream skills such as nullish-bi:executive-summary,
nullish-finance:financial-statements, and nullish-business:sbiz365-analyst into
single-file, self-contained HTML.
The cross-referenced plugins above (
nullish-bi,nullish-finance,nullish-business, etc.) are optional, external upstreams. They may not be installed in this standalone plugin — html-report works with any markdown input regardless of its source.
Core principles (Thariq philosophy):
This skill does not replace markdown output. Markdown remains the single source of truth; HTML rendering is purely an additional branch.
| Argument | Required | Default | Description |
|---|---|---|---|
markdown | ✓ | — | The markdown body to convert |
mode | ✓ | — | status | incident | plan | explainer | financial | pr |
slug | — | Auto-generated from the title | Output filename prefix |
output_path | — | <cwd>/reports/<slug>-<YYYYMMDD>.html | Output path |
font_stack | — | Per-mode default | Font mapping override |
A single .html file (<cwd>/reports/<slug>-<YYYYMMDD>.html):
<link> + 2 preconnect hints (Korean fonts)| Mode | Structural Sections | Target Skills |
|---|---|---|
status | 4 metric cards · highlights · shipped table · Velocity SVG bar chart · carryover | nullish-bi:executive-summary, nullish-business:daily-briefing |
incident | TL;DR dark banner · timeline · log excerpt <details> · code diff panel · impact table · action checklist | nullish-legal:compliance-check |
plan | summary KPI strip · vertical milestone timeline · data-flow SVG · slice table · risk grid · success metrics | nullish-business:sbiz365-analyst |
explainer | side nav · <details> collapsible steps · tabbed code blocks (vanilla JS) · FAQ accordion · callout boxes | nullish-research:*, nullish-education:* |
financial | 4 KPI cards · income statement table (line item / current / prior / change / change %) · Variance SVG horizontal bar chart · notes panel | nullish-finance:financial-statements |
pr | TL;DR · PR meta row (file count · +/− · branch) · Before/After two-column cards · file tour <details> · review focus · test checklist · rollout stages | nullish-business:investor-relations |
| Mode | Primary Mustache Slots |
|---|---|
status | {{title}}, {{#metrics}}, {{#highlights}}, {{#completed_rows}}, {{#chart_bars}} |
incident | {{inc_id}}, {{severity}}, {{title}}, {{#tl_entries}}, {{#impact_rows}}, {{#actions}} |
plan | {{title}}, {{#kpis}}, {{#milestones}}, {{diagram_svg}}, {{#slices}}, {{#risks}}, {{#metrics}} |
explainer | {{title}}, {{lead}}, {{#steps}}, {{#config_tabs}}, {{#faq_items}} |
financial | {{title}}, {{period}}, {{#kpis}}, {{#statement_rows}}, {{chart_height}}, {{#variance_bars}} |
pr | {{pr_ref}}, {{title}}, {{author}}, {{branch}}, {{files_changed}}, {{additions}}, {{deletions}}, {{#focus_items}}, {{#test_items}}, {{#rollout_steps}} |
For Korean readability, this skill permits a single font CDN <link> as its only external dependency.
Relying on system fonts alone breaks consistency because of OS-specific fallbacks (macOS: Apple SD Gothic Neo, Windows: Malgun Gothic), so the font CDN is essential.
| Mode | sans (body) | serif (headings) | mono (code) |
|---|---|---|---|
status / financial / pr | Pretendard | Pretendard 700 | JetBrains Mono |
incident | Pretendard | Pretendard 700 | JetBrains Mono |
plan | Pretendard | Noto Serif KR | JetBrains Mono |
explainer | Noto Sans KR | Noto Serif KR | JetBrains Mono |
editorial | Pretendard | Chosunilbo Myungjo | JetBrains Mono |
legal | KoPubWorld Batang | KoPubWorld Batang Bold | JetBrains Mono |
Detailed CDN URLs and preconnect patterns: references/fonts.md
Every mode declares the same 8 CSS variables on :root.
:root {
/* palette */
--ivory: #FAF9F5; /* background warm off-white */
--paper: #FFFFFF; /* card / panel background */
--slate: #141413; /* body text warm black */
--clay: #D97757; /* accent / link terracotta */
--clay-d:#B85C3E; /* clay hover state */
--oat: #E3DACC; /* secondary background / divider light tan */
--olive: #788C5D; /* secondary accent sage green */
/* fonts */
--sans: "Pretendard", system-ui, -apple-system, sans-serif;
--serif: "Pretendard", ui-serif, Georgia, serif;
--mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;
/* layout */
--max-width: 860px;
--radius-panel: 12px;
--radius-row: 8px;
--border: 1.5px solid var(--g300);
}
Gray scale: --g100: #F0EEE6, --g300: #D1CFC5, --g500: #87867F, --g700: #3D3D3A
Detailed contrast-verification table and print tokens: references/design-tokens.md
[text skill] → nullish-core:ai-slop-reviewer → nullish-content:humanize-korean → nullish-content:html-report (mode=X)
Minimal chain (fast rendering):
[text skill] → nullish-content:html-report (mode=X)
Example 1: Weekly status report
Take the markdown output from nullish-bi:executive-summary and render it as a status report.
mode=status, company: Hanul Engineering, week: 11
Example 2: Financial statement HTML report
Convert the financial-statements output into an HTML report.
mode=financial
Example 3: Incident report
Summarize the payment gateway 502 outage and turn it into an incident report HTML.
mode=incident, severity=SEV-2
Example 4: PR description document
Turn the PR #312 real-time notification channel integration into an HTML review document.
mode=pr
nullish-office:pptx-designer (slides) territorynullish-data:data-visualizer (standalone charts) territory.html filereferences/design-tokens.md — CSS variable contract, palette, accessibilityreferences/fonts.md — font mapping, CDN URLs, preconnect patternsreferences/templates/status.html.tmpl — status modereferences/templates/incident.html.tmpl — incident modereferences/templates/plan.html.tmpl — plan modereferences/templates/explainer.html.tmpl — explainer modereferences/templates/financial.html.tmpl — financial modereferences/templates/pr.html.tmpl — pr modeSource philosophy: Thariq Shihipar, "The Unreasonable Effectiveness of HTML"
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub hotei09/nullish-app --plugin nullish-app