render-html — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited render-html (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Take an artifact (file path or in-context material) plus a one-line intent and produce a single, self-contained HTML file optimized for the moment a human reads it once to make a decision.
Core principle (from Thariq's HTML-over-Markdown thesis): every invocation produces bespoke HTML, picked widget-by-widget for this artifact. No templates. A template forces the format back into the Markdown mindset of pre-baked structure and defeats the point.
Use when all three are true:
Common targets in this harness:
/harness-audit tier-ranked report → filterable findings dashboard/strategic-proposal council artifact → phase-column roadmap with critic challenges inline/skill-lint verdict matrix → sortable scoring table with CURRENT/STALE/BROKEN/DELETE badgeslog.md → timeline coloured by skill outcomeSkip when the artifact is source or pipeline input — Markdown stays the substrate of the harness:
tasks/*/prd.md), briefings, commit messages, PR bodies, CHANGELOG.mdmemory/<date>/log.md)CLAUDE.md, context/rules/, .claude/skills/)If asked to render any of the above, refuse and explain.
Arguments received: $ARGUMENTS
| Position | Meaning |
|---|---|
$0 | slug (required, kebab-case, no extension) — becomes the filename |
--from <path> | optional source artifact to read |
--intent <one-line> | optional human-purpose hint (e.g. "pick next 3 audit actions") |
If slug is missing, ask the user for one. Slug rules: lowercase, kebab-case, no slashes, no .html extension.
If slug collides with an existing file in today's date directory, append -2, -3, etc. — never overwrite.
TODAY=$(date -u +%Y-%m-%d)
mkdir -p "memory/$TODAY"
OUT="memory/$TODAY/<slug>.html"Always use UTC. Always create the directory first.
--from is given: read the file. If it does not exist, error out — do not invent content.--from is absent: use the conversation context the orchestrator already has. Do not re-fetch what you already know.Produce one self-contained .html file. Rules:
<style>. All SVG inline. No <link> to external CSS or fonts. No <script src="https://...">. The artifact must work offline and travel as one file.<header>, <main>, <section>, <nav>, <table>, <details>/<summary> for collapsibles. Skip divs when a semantic tag fits.font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; — no Google Fonts.<table> with sortable headers (inline JS allowed for sort/filter only)<svg><details> (collapsed by default past the third one)@media print rules that expand <details> and drop interactive chrome.fetch(), no images by URL — use inline SVG or data URIs only.Use the Write tool. Confirm the byte size is plausible (>2 KB for any non-trivial artifact, <500 KB unless the artifact genuinely warrants it).
Return three lines:
memory/<date>/<slug>.html/agent-browser file://$(pwd)/memory/<date>/<slug>.html (or open file://... if running locally).Append to memory/<UTC-date>/log.md:
## render-html -- HH:MM UTC
- **Result**: OP | DRY-RUN | PARTIAL | FAIL
- **Slug**: <slug>
- **Source**: <path or "in-context">
- **Intent**: <one-line>
- **Path**: memory/<date>/<slug>.html
- **Size**: <bytes>
- **Observation**: <one sentence — what shape the artifact took, e.g. "filterable severity table with 17 rows + inline SVG dependency map">Then run the qualify/improve loop per context/rules/memory.md. If you learned something non-obvious about which HTML shape suited this artifact type, that may merit a line in memory/MEMORY.md.
prd.html, CLAUDE.html, MEMORY.html. Those files are pipeline input or indexed source — leave them in Markdown..css/.js companions. Single file or nothing.-2, -3 instead — older renders may still be referenced in the conversation./render-html harness-audit-tier --from memory/2026-05-18/audit-raw.md --intent "pick next 3 actions"
→ memory/2026-05-18/harness-audit-tier.html
/render-html roadmap-council --intent "review council deliberation before publishing pinned issue"
→ memory/2026-05-18/roadmap-council.html
(source was the strategic-proposal output already in context)
/render-html week-19-digest --from memory/ --intent "what shipped this week"
→ memory/2026-05-18/week-19-digest.html~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.