Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Nested swiss-knife reference for standalone HTML deliverables. Produce polished, self-contained HTML deliverables (research memos, literature maps, dashboards, audit reports, side-by-side comparisons) that humans open in a browser or receive as Telegram/email attachments. Covers a standalone HTML skeleton, math rendering with MathJax (LaTeX in `<pre>`/`<code>` will NOT render), artifact hygiene, and a validation checklist. Read when the human asks for an HTML report, HTML memo, HTML deliverable,
.claude/skills/lingtai-ai-html-report/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 233% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-23 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-13 | ✓→✗ | ▼ Worse | -68% | 0% |
| case-15 | ✓→✗ | ▼ Worse | -49% | 0% |
You are writing an HTML file a human will open in a browser or receive as an attachment. This skill exists because agents repeatedly ship HTML with unrendered LaTeX inside <pre>/<code> blocks and other recoverable presentation gaps. Follow the checklist below before declaring the file ready.
Reach for HTML — instead of plain text, Markdown, or a PDF — when the human will benefit from:
If the content is short and equation-free, plain text or Markdown is usually enough.
Start from the bundled template — it already wires up typography reset, cards, callouts, tables, anchor nav, print styles, and MathJax. Copy it, fill in the <!-- TODO --> markers, drop unused sections, and save under a project-local path (paper/drafts/<topic>-$(date -u +%Y-%m-%d).html):
bashcp ~/.lingtai-tui/utilities/swiss-knife/reference/html-report/assets/template.html \ paper/drafts/<your-topic>-$(date -u +%Y-%m-%d).html
Key rules for any HTML you produce, whether from the template or freshly authored:
<style> block in <head>.<meta charset="utf-8"> first. Math copy-paste from LaTeX sources frequently contains non-ASCII.<title> — the human will see it in browser tabs and saved-file names.<section>, <article>, <aside>, <nav>) — they reflow better on mobile and print.@media print { ... } to hide navigation and force readable margins.<pre> and <code> render LaTeX as literal text. They do not render math. This is the most common failure mode for HTML deliverables.
If the artifact contains equations:
<head> — once, near the top:html <script> window.MathJax = { tex: { inlineMath: [['\\(', '\\)']], displayMath: [['\\[', '\\]'], ['$$', '$$']], processEscapes: true }, svg: { fontCache: 'global' } }; </script> <script defer src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
\( ... \) and display math as \[ ... \]. Avoid $...$ — it conflicts with currency in prose. Avoid $$...$$ unless you really want a centered display block and trust the source has no stray $.<pre> or <code>. Put them in <p>, <div>, or directly in <section>. MathJax scans the DOM body for \(...\) and \[...\] and replaces them with rendered SVG.\\( in a Python f-string becomes \( in the output.<img> (most robust, no JS needed).Pick the offline path explicitly if the human said "must work offline." Otherwise CDN is the default.
paper/drafts/<topic>-<YYYY-MM-DD>.html or similar. Never write HTML to /tmp and forget about it — the human cannot find it later.date -u +%Y-%m-%dT%H:%M:%SZ or equivalent), source paths the report draws from, and a one-line caveat ("draft", "automated extract", etc.).<a href="../path/to/file.md">file.md</a> so the human can jump.https://arxiv.org/abs/2401.01234, not bare DOIs or arxiv: schemes.ls -lh paper/drafts/... — and read the head + tail to make sure the write was not truncated.Run through these every time, in order. They are cheap and the failure modes are common.
ls -lh <path> — sanity check the byte count is plausible (a research memo is typically 10–80 KB).grep -l "MathJax" <path> must match. If it does not, math will not render — fix it now.<pre> or <code>. grep -nE '<(pre|code)>.*\\\\[\(\[]' <path> — any hits are bugs.LC_ALL=C grep -nP '[\x00-\x08\x0B\x0C\x0E-\x1F]' <path> should be empty. If you generated HTML from a Python string with raw user input, this can silently break rendering.python3 -c "from html.parser import HTMLParser as H; p=H(); p.feed(open('<path>').read())" — raises on malformed tags.grep -nE 'href="(arxiv:|doi:|//)' <path> — relative or scheme-less hrefs break when the file is downloaded.open <path> (macOS) or xdg-open <path> (Linux). Eyeball the equations and headings.> Found a bug or issue? If you encounter any problems with this skill, load the lingtai-issue-report skill and follow its instructions to report it.
Other measured skills in the registry, with their headline benchmark lift.