Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/notque/vexjoy-agent/html-artifactnpx skills add notque/vexjoy-agent --skill html-artifactgit clone --depth 1 https://github.com/notque/vexjoy-agentWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/notque/vexjoy-agent/html-artifact)<a href="https://agentmods.dev/skills/notque/vexjoy-agent/html-artifact"><img src="https://agentmods.dev/badge/skills/notque/vexjoy-agent/html-artifact.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00089 | $0.06429 |
| Opus 5 | $0.00044 | $0.03214 |
| Sonnet 5 | $0.00018 | $0.01286 |
| Haiku 4.5 | $0.00009 | $0.00643 |
Grade A, and why
html-artifact scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 456 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/html - Self-Contained HTML Artifacts
Generate single self-contained .html files that replace markdown when the output needs color, interactivity, layout, or visualization. Auto-detect artifact shape from the request, load shape-specific patterns, generate, validate, deliver.
Core constraint: Every artifact is ONE .html file. All CSS in <style>, all JS in <script>. No CDN links, no frameworks, no build steps, no external dependencies. Works offline, opens in any browser.
Instructions
Overview
5-phase pipeline: DETECT SHAPE, LOAD CONTEXT, GENERATE, VALIDATE, DELIVER. Phase 1 classifies the request into one of 8 shapes via deterministic script. Phase 2 loads the Birchline design system plus shape-specific reference. Phase 3 dispatches a subagent to generate the HTML. Phase 4 validates structure. Phase 5 delivers the file path and offers browser preview. Phase 6 EXPORT (optional) renders to PDF when the user asks for one.
Phase 0: CHECK SAVED TEMPLATE (clone-first)
Before detecting a shape, check whether the request names or matches a saved template. A saved template is a frozen, human-authored layout; cloning it beats regenerating structure because the layout cannot drift.
Run: python3 skills/meta/html-artifact/scripts/fill-template.py --list
If the request names a listed template (e.g. "project kickoff", "business review", "system design") or clearly matches one:
- Read
templates/saved/<name>.slots.jsonto learn the slots. - Generate ONLY the slot content — never the layout, CSS, or chrome.
- Write the slot values to a JSON file and run
fill-template.py --template <name> --slots <file> --out <artifact>. - Skip Phases 1–3 (shape detection, assembly, generation). Go to Phase 4 VALIDATE.
The fill script fails loud on a missing required slot, an undeclared slot name, or a leftover marker. Fix the slot JSON; do not edit the template.
If no saved template matches, continue to Phase 1.
See "Fidelity & Authority" below for the content-vs-layout rule that governs clone mode.
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- agents/html-builder.md 5.3 KB
- assets/base-template.html 495 B
- EVAL.md 6.3 KB
- references/design-system.md 4.9 KB
- references/diagram-layering.md 3.9 KB
- references/infographic-layouts.md 4.9 KB
- references/interaction-patterns.md 4.4 KB
- references/pdf-export.md 5.9 KB
- references/pptx-export.md 10 KB
- references/scrollytelling-patterns.md 2.8 KB
- references/shape-code-review.md 3.6 KB
- references/shape-custom-editor.md 2.7 KB
- references/shape-data-visualization.md 3.2 KB
- references/shape-design-prototype.md 3.3 KB
- references/shape-diagram-illustration.md 4.3 KB
- references/shape-report-research.md 2.6 KB
- references/shape-slide-deck.md 2.4 KB
- references/shape-spec-exploration.md 3.5 KB
- scripts/assemble-template.py 7.2 KB runs code
- scripts/css_slop_rules.py 13 KB runs code
- scripts/detect-shape.py 6.9 KB runs code
- scripts/fill-template.py 5.5 KB runs code
- scripts/generate-filename.py 3.6 KB runs code
- scripts/pptx-bridge/__init__.py 490 B runs code
- scripts/pptx-bridge/_pptx_engine.py 26 KB runs code
- scripts/pptx-bridge/extract_slides.py 14 KB runs code
- scripts/pptx-bridge/render_pptx.py 6.9 KB runs code
- scripts/pptx-bridge/run-unified.py 12 KB runs code
- scripts/render-github-issues.py 7.5 KB runs code
- scripts/select-references.py 2.7 KB runs code
- scripts/tests/test_assemble_template.py 14 KB runs code
- scripts/tests/test_css_slop_emission.py 6.5 KB runs code
- scripts/tests/test_detect_shape.py 5.7 KB runs code
- scripts/tests/test_fill_template.py 5.2 KB runs code
- scripts/tests/test_generate_filename.py 4.4 KB runs code
- scripts/tests/test_select_references.py 3.5 KB runs code
- scripts/tests/test_to_pdf.py 14 KB runs code
- scripts/tests/test_validate_artifact.py 11 KB runs code
- scripts/to-pdf.py 12 KB runs code
- scripts/validate-artifact.py 9.7 KB runs code
- SPEC.md 4.4 KB
- templates/base-reset.css 1.2 KB
- templates/components/collapsible.css 1.1 KB
- templates/components/collapsible.js 516 B runs code
- templates/components/copy-button.css 534 B
- templates/components/copy-button.js 334 B runs code
- templates/components/drag-drop.css 612 B
- templates/components/drag-drop.js 1.1 KB runs code
- templates/components/filter.css 909 B
- templates/components/filter.js 987 B runs code
- templates/components/keyboard-nav.css 249 B
- templates/components/keyboard-nav.js 900 B runs code
- templates/components/scrollytelling.css 1.5 KB
- templates/components/scrollytelling.js 2.0 KB runs code
- templates/components/slider.css 848 B
- templates/components/tabs.css 750 B
- templates/components/tabs.js 508 B runs code
- templates/components/theme-toggle.css 963 B
- templates/components/theme-toggle.js 178 B runs code
- templates/print/code-review-print.css 1.9 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 456 lines · 89 tokens per session scan A e0e2df1a9968
html-artifact is a skill published in the GitHub repository notque/vexjoy-agent (419 stars, last pushed yesterday), licensed MIT. It adds 89 tokens to every session and 6,429 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
top-design
Create award-winning, immersive web experiences at the level of Awwwards-featured agencies. Use when the user mentions "Awwwards quality", "make my site stunning", "scroll animations", "parallax storytelling", "cinematic web design", "portfolio site", or "brand experience". Also trigger when elevating a standard…
web-typography
Select, pair, and implement typefaces for web projects. Use when the user mentions "font pairing", "which typeface", "line height", "responsive typography", "web font loading", "type hierarchy", "variable fonts", "FOUT/FOIT", "typographic scale", or "the text is hard to read". Also trigger when choosing between system…
refactoring-ui
Audit and fix visual hierarchy, spacing, color, and depth in web UIs. Use when the user mentions "my UI looks off" (or amateur/unprofessional), "fix the design", "Tailwind styling", "color palette", "visual hierarchy", "design system", "spacing scale", or "component styling". Also trigger when building consistent…
design-engineering
UI craftsmanship: animation rules, easing, micro-interactions, state polish. Triggers: animation, transition, ease-out, motion, micro-interaction, hover, loading state, UI polish.
mobile-styling-nativewind
NativeWind v4+ - Tailwind CSS utility classes for React Native, className prop, CSS variables, dark mode, platform prefixes, animations, theming, third-party component integration.
mobile-styling-unistyles
Unistyles 3.0 styling - C++ powered StyleSheet superset with zero re-renders, theming, breakpoints, variants, dynamic functions, runtime values.