render-html
Render an ARIS Markdown / JSON artifact (IDEA_REPORT, AUTO_REVIEW, KILL_ARGUMENT, PAPER_PLAN, research-wiki state, etc.) into a single-file HTML view designed for human reading
Install / Use
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill render-htmlInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Content & MediaSupported Platforms
Our assessment of render-html
render-html scores 98/100 on our quality scale, 15th of 670 Content & Media skills we index (top 3%).
Its SKILL.md is 21 KB long, well organised into 29 sections with 4 code examples: a thorough specification that gives an agent plenty to work with.
With 16,644 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 9 days ago, so render-html is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
render-html compared with similar skills
All 4 of these similar skills score higher than render-html; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| render-html (this skill)by wanshuiyin | 98 | 16.6k | 9d ago | SKILL.md |
| siyuanby siyuan-note | 100 | 46.5k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 5d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 5d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 130.2k | 6d ago | SKILL.md |
Frequently asked questions
- How do I install render-html?
- Run
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill render-html. The install tabs above show the steps for each supported agent. - Which AI agents does render-html work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is render-html safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is render-html still maintained?
- The repository was last updated 9 days ago, so render-html is actively maintained.
Skill content
View source on GitHubname: render-html description: "Render an ARIS Markdown / JSON artifact (IDEA_REPORT, AUTO_REVIEW, KILL_ARGUMENT, PAPER_PLAN, research-wiki state, etc.) into a single-file HTML view designed for human reading. Use when the user says "渲染 HTML", "出一份 HTML 报告", "render html", "make this readable", "export to html", or wants a polished web-rendered view of a Markdown artifact." argument-hint: "<input.md> [--template academic|dashboard] [--out <path>] [--title ...] [--state <state.json>] [--json <sidecar.json>] [--offline] [--review|--no-review]" allowed-tools: Bash(*), Read, Write, mcp__codex__codex
/render-html: Markdown → single-file HTML for human reading
Markdown is for writers. HTML is for readers. ARIS workflow nodes write Markdown (canonical, audit-trail-friendly, machine-parseable).
/render-htmlturns selected artifacts into a polished single-file HTML view for the human who actually has to read them. The Markdown stays the source of truth.
When to use this skill
Use /render-html for ARIS artifacts that have a real human reader:
| Artifact | Why HTML helps | Template |
|----------|----------------|----------|
| idea-stage/IDEA_REPORT.md | Ranked ideas + pilot signal + scores feel like a decision dashboard, not a flat list | academic |
| review-stage/AUTO_REVIEW.md (+ REVIEW_STATE.json) | Round-by-round score progression + weakness status; pass --state to embed the JSON | academic |
| paper/KILL_ARGUMENT.md (+ KILL_ARGUMENT.json) | Per-point attack/defense with <details> Q&A cards + red/yellow/green callouts | academic |
| research-wiki/SUMMARY.md (or research-wiki/index.md) | Cross-entity cockpit: papers / ideas / experiments / claims at a glance | dashboard |
| PAPER_PLAN.md (optional) | Claims-evidence matrix renders better as a polished table than raw MD | academic |
| RESUBMIT_REPORT.{md,json} (optional) | 7-state failure-mode ledger | academic or dashboard |
Do NOT use for:
- LaTeX paper output — the final reader-facing artifact is PDF, not HTML.
SKILL.mdfiles — those are internal LLM-facing protocol..aris/traces/*review traces — forensic debug, not human display.- Every Markdown file in your project — only artifacts that benefit from sticky TOC, callouts, math, or score progressions.
Core invariants
- MD / JSON is canonical, HTML is generated view. Edit the source, then re-render. Do not hand-edit the HTML.
- Cross-model review at the artifact boundary (ARIS invariant). Academic-template HTML — used for the artifacts humans actually read (IDEA_REPORT, AUTO_REVIEW, KILL_ARGUMENT, PAPER_PLAN) — is reviewed by a fresh cross-family Codex thread before being claimed as a finished view. Dashboard-template HTML (cockpit / debug views) skips review by default but accepts
--reviewto force it. See § HTML Review Gate below. - Drift detection. Every rendered HTML embeds the source path, SHA256, and generation timestamp in
<meta>tags AND in the visible page header. If the HTML and source diverge, the meta tells you which version of the source produced it. - Single-file output. No build system, no separate CSS, no
node_modules. Just one.html. - CDN-friendly default,
--offlinefallback. MathJax 3 and highlight.js load fromcdn.jsdelivr.netby default. Pass--offlineto skip both — math will appear as raw$x$, code blocks won't get syntax highlighting, but everything stays readable. - Pure stdlib helper.
render_html.pyuses onlyre,html,hashlib,json,datetime,pathlib,argparse,sys. No pip install required. - Defense-in-depth XSS sanitization. The helper strips
<script>/<style>/<iframe>/<object>/<embed>/<form>/<input>/<button>/<link>/<meta>/<base>tags, allon*event-handler attributes (onclick,onload, …), and rewritesjavascript:/vbscript:/data:href/src/action schemes to#blocked-unsafe-url:. ARIS workflow artifacts should not contain these in the first place, but the sanitizer is the safety net in case an LLM hallucinates one. Markdown text content is HTML-escaped separately and never reaches the sanitizer.
Tool Location
Arch C self-contained: the canonical implementation lives at skills/render-html/scripts/render_html.py (this SKILL's own scripts/ subdirectory), together with its templates at skills/render-html/scripts/templates/{academic,dashboard}.html. The helper is new — no legacy tools/ shim exists.
Resolve $RENDER_HTML with the hybrid chain (Layer 0 prefers the self-contained location for the owning SKILL; Layers 1-3 are the shared-runtime chain documented in shared-references/integration-contract.md §2, Policy A — skill-local gate):
# Layer 0: self-contained (CC 1.0+ exposes $CLAUDE_SKILL_DIR).
RENDER_HTML=""
if [ -n "${CLAUDE_SKILL_DIR:-}" ] && [ -f "$CLAUDE_SKILL_DIR/scripts/render_html.py" ]; then
RENDER_HTML="$CLAUDE_SKILL_DIR/scripts/render_html.py"
fi
# Layers 1-3: shared-runtime chain (non-CC hosts + manual installs).
if [ -z "$RENDER_HTML" ]; then
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
RENDER_HTML=".aris/skills/render-html/scripts/render_html.py"
[ -f "$RENDER_HTML" ] || RENDER_HTML="skills/render-html/scripts/render_html.py"
[ -f "$RENDER_HTML" ] || { [ -n "${ARIS_REPO:-}" ] && RENDER_HTML="$ARIS_REPO/skills/render-html/scripts/render_html.py"; }
[ -f "$RENDER_HTML" ] || RENDER_HTML=""
fi
[ -z "$RENDER_HTML" ] && {
echo "ERROR: render_html.py not resolved (layer 0: \$CLAUDE_SKILL_DIR/scripts/; layers 1-3: .aris/skills/render-html/scripts/, skills/render-html/scripts/, \$ARIS_REPO/skills/render-html/scripts/)." >&2
echo " /render-html cannot produce HTML output. Fix: rerun bash tools/install_aris.sh, or copy from \$ARIS_REPO/skills/render-html/scripts/." >&2
exit 1
}
Invocation
# Default: academic template, output to <input>.html alongside source
python3 "$RENDER_HTML" idea-stage/IDEA_REPORT.md
# Dashboard template for cockpit-style views
python3 "$RENDER_HTML" research-wiki/SUMMARY.md --template dashboard
# Custom output path + title + eyebrow
python3 "$RENDER_HTML" review-stage/AUTO_REVIEW.md \
--out review-stage/AUTO_REVIEW.html \
--title "Auto Review — overnight run" \
--eyebrow "Workflow 2"
# Embed sidecar state JSON (rendered as a folded <details> JSON block at end)
python3 "$RENDER_HTML" review-stage/AUTO_REVIEW.md \
--state review-stage/REVIEW_STATE.json
# Embed sidecar JSON (e.g., for KILL_ARGUMENT.md + KILL_ARGUMENT.json)
python3 "$RENDER_HTML" paper/KILL_ARGUMENT.md \
--json paper/KILL_ARGUMENT.json \
--title "Kill Argument — adversarial review"
# Offline (no CDN; math + code render as plain text)
python3 "$RENDER_HTML" idea-stage/IDEA_REPORT.md --offline
# JSON-only input (wrapped in a <pre><code class="language-json"> block)
python3 "$RENDER_HTML" review-stage/REVIEW_STATE.json --template dashboard
# Language attr (default zh-CN; set for English-primary artifacts)
python3 "$RENDER_HTML" docs/SKILLS_CATALOG.md --lang en
# Skip review (academic template otherwise reviews by default)
python3 "$RENDER_HTML" idea-stage/IDEA_REPORT.md
# … then the skill skips the mcp__codex__codex review step if --no-review
# was on the command line. Pass --review to a dashboard render to force it.
The --review / --no-review flags are parsed by the SKILL orchestrator
(Claude Code), not by render_html.py. The helper itself stays pure
stdlib and never calls MCP. See § HTML Review Gate below for the
exact resolution and prompt.
Workflow
Step 1: Identify the artifact
From $ARGUMENTS, determine what to render. Common patterns:
- "render IDEA_REPORT" →
idea-stage/IDEA_REPORT.md, academic template - "make AUTO_REVIEW readable" →
review-stage/AUTO_REVIEW.md+--state review-stage/REVIEW_STATE.json - "show the kill argument as HTML" →
paper/KILL_ARGUMENT.md+--json paper/KILL_ARGUMENT.json - "research-wiki dashboard" → look for
research-wiki/SUMMARY.mdor generate from raw entity counts (Phase 2 work; for Phase 1 just renderSUMMARY.mdif present, else fall back to listing top-level wiki structure)
Step 2: Pick template
academic(default): linear long-form. Sticky TOC sidebar + serif body + callouts + tables + math + Q&A<details>. Use for IDEA_REPORT, AUTO_REVIEW, KILL_ARGUMENT, PAPER_PLAN.dashboard: grid layout, smaller font, denser metrics cards, no TOC sidebar. Use for research-wiki cockpit, RESUBMIT_REPORT, multi-project overviews.
Step 3: Run the helper
Use the resolver above to get $RENDER_HTML, then invoke. The script writes the HTML alongside the source by default (or wherever --out says) and prints a one-line confirmation including the source SHA256 prefix.
Step 4: HTML Review Gate (cross-model)
Decide whether to run review. Per ARIS invariant "executor must not judge its own output", the academic-template HTML is reviewed by a fresh cross-family Codex thread before being claimed as a delivered view. Resolution:
should_review = explicit --review present
or (template == "academic" and --no-review NOT present)
So:
--template academic(default) → review by default. Skip with--no-review.--template dashboard→ no review by default. Force with--review.- Phase 2 workflow auto-emit (activated 2026-05) selects per-skill via the RENDER_HTML hooks documented below — interim views default to
--no-review, final / audit-class deliverables default to full gate.
If should_review is true, fire a fresh mcp__codex__codex thread (NEVER codex-reply; pin model: gpt-6-astra + config: {"model_reasoning_effort": "xhigh"} per ../shared-references/reviewer-routing.md) with the prompt below. The reviewer reads the source MD + generated HTML directly; it does not see this skill's intermediate state.
Scope of review (narrow on purpose). The HTML reviewer audits render fidelity / safety / structure only — not claim truthfulness. Claim audit belongs upstream (/paper-claim-audit, /research-review, /result-to-claim). Specifically the reviewer checks:
- Information fidelity — every section, claim, table, code block, list, math snippet, sidecar payload is present in the HTML (no silent drop)
- Structural integrity — heading hierarchy / nested lists / table cells / code fences /
<details>blocks / math delimiters survive parsing - Callout routing —
> 🚨 …got.callout-bad,> 💡 …got.callout-info, etc. - Safety / escaping — no raw
<script>/onclick=/javascript:/ unreplaced placeholders / template-leak survives - Expected-difference allowance — frontmatter strip, generated header/footer/meta, TOC insert, sanitized unsafe HTML are all expected, not flagged
Codex prompt (mandatory shape). Send this as a fresh thread (mcp__codex__codex, NOT codex-reply):
You are an independent ARIS HTML render auditor. This is a fresh review thread.
Read these files directly:
- Source artifact: <ABS path to source.md or source.json>
- Generated HTML: <ABS path to out.html>
- Optional sidecars: <state.json>, <kill_argument.json> (if any)
Task: Audit whether the generated HTML is a faithful, safe, structurally
usable view of the source artifact. Do NOT judge whether the research
claims are true. Judge only rendering fidelity.
Checks:
1. Information fidelity — sections / claims / tables / code blocks /
lists / math / sidecars not silently dropped or materially altered.
2. Structural integrity — heading hierarchy, tables, nested lists,
code fences, details/summary, math delimiters preserved.
3. Callout routing — warning/critical/good/info blockq
Truncated for display — read the full file on GitHub.
Related Skills
siyuan
46.5kAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
130.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
