Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Htmldeck

ASecurity

Build or critique a single-file HTML presentation that does not look generated — one .html that opens by double-clicking, renders with the network disabled, and carries real diagrams, progressive disclosure and considered typography. Use when the user asks for a presentation, slide deck, pitch deck, slides, or an HTML deck; when they want an existing deck reviewed, critiqued or scored; or when they point at a .html deck and ask for changes. Asks exactly two questions.

2 stars
0 votes
0 copies
0 views
Added 10/6/2026
ai-agentsgoshelldocumentation

Works with

claude codecli

Security Analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned 10/6/2026

$npx -y skills add uchimata2/htmldeck --skill htmldeck --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Htmldeck?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Htmldeck
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/uchimata2-htmldeck/badge)](https://www.skillsdirectory.com/skills/uchimata2-htmldeck)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: htmldeck
description: Build or critique a single-file HTML presentation that does not look generated — one .html that opens by double-clicking, renders with the network disabled, and carries real diagrams, progressive disclosure and considered typography. Use when the user asks for a presentation, slide deck, pitch deck, slides, or an HTML deck; when they want an existing deck reviewed, critiqued or scored; or when they point at a .html deck and ask for changes. Asks exactly two questions.
---

# htmldeck

One pipeline. **Two questions up front, both specification files written every time, two gates the
user can decline.**

## 0. Resolve `$HTMLDECK` first, before any command below

Every path in this skill is written from `$HTMLDECK`, the plugin's own directory — a bare path would
resolve against the user's project, which may well have a `docs/` of its own.

**Read it off this file's own location.** A harness that loads a skill names the directory it loaded
it from. This file is `$HTMLDECK/skills/htmldeck/SKILL.md`, so `$HTMLDECK` is two directories above
it. That answer is already version-correct, and it is the only one that works for a copy of this
plugin published under another name.

**If your harness does not name it**, resolve it once, in your first shell call:

```
ls -d "$HOME"/.claude/plugins/cache/*/htmldeck/*/ | sort -V | tail -1
```

**`sort -V` is load-bearing.** The cache keeps every version ever installed, so a first-match glob
picks the oldest and the failure reads as *tool not found*. In a clone of the repository,
`$HTMLDECK` is the clone.

Then **substitute the printed path literally** into every later command. Shell state does not
persist between calls, so an assignment made in one is gone in the next.

**Never write a plugin-root placeholder into a command.** Claude Code substitutes its own into a
plugin's files *before you read them* — this file included, which is why this paragraph does not
spell it out. The value is **not exported into the shell**, so a command written from it arrives
with no base at all and runs against the drive root. This skill used to spell every command that
way. The first outside build read these documents in full, never used the placeholder once, and
hardcoded a version-pinned cache path **87 times** instead — one plugin update away from being
wrong, in a session that had updated the plugin an hour earlier (T-189).

**Re-resolve after a plugin update**, and never carry a version number in a path you keep.

## Ask exactly two questions

Ask both together, before anything else, and ask nothing else:

1. **How long should it be?** A maximum and/or a minimum.
2. **Anything to align to?** An existing brand, a deck, or source documents. Optional.

**Unanswered is a valid answer to both.** Defaults: **8–12 slides**, no alignment material, both
gates on. These produce a good deck — that is what the defaults are for.

**Never ask a third question.** Every other decision is already made in the design system, and
asking is the failure this plugin exists to prevent. If something seems to need asking, it is
either already decided in `$HTMLDECK/docs/DESIGN-SYSTEM.md` or it is yours to decide.

**Never ask whether to skip the gates.** Unprompted, both gates are on. If the user volunteers
"no gates", "just build it", or names one of the two, honour exactly that. Asking would be a
third question.

## Then run the pipeline

Load `$HTMLDECK/skills/htmldeck/references/pipeline.md` and follow it. Seven stages,
two gates:

```
governing idea → requirements → foundation spec (with the outline) → OUTLINE SIGN-OFF
    → slide-by-slide spec → spec review → DETAILED-SPEC SIGN-OFF
        → build, in batches → build review → owner review → fix
```

**Both `.md` specification files are written on every run**, gates or no gates, beside the deck and
named after it. They are the trace of what was decided.

## What to load, and when

Load on demand — **none of it belongs in this file**, and paraphrasing any of it here is how the two
copies drift apart. Every path is written from `$HTMLDECK`, because a bare path would
resolve against the user's project, which may well have a documentation folder of its own.

| Load | When |
| :--- | :--- |
| `$HTMLDECK/skills/htmldeck/references/pipeline.md` | First, on every build run |
| `$HTMLDECK/skills/htmldeck/references/artifacts.md` | At stage 3, before writing either specification file |
| `$HTMLDECK/skills/htmldeck/references/build.md` | At stage 6, before any HTML |
| `$HTMLDECK/skills/htmldeck/references/critique.md` | At either review stage, and for a review with no build |
| `$HTMLDECK/docs/DESIGN-SYSTEM.md` | Before the outline (§3.2 archetypes, §3.4 the deliverable) and before any HTML (all of it) |
| `$HTMLDECK/docs/EVALUATION.md` | At either review stage |
| `$HTMLDECK/examples/reference-deck.html` | When writing HTML — the structural reference, not a template to fill |

**Never load `$HTMLDECK/docs/DESIGN-RATIONALE.md`** — it explains why the rules are what
they are, and nothing at runtime needs that. Nor `$HTMLDECK/docs/BRIEF.md`,
`$HTMLDECK/docs/research/` or `$HTMLDECK/tasks/`: those are how the plugin
was built, not how a deck is.

## The rules that decide the rest

`$HTMLDECK/docs/DESIGN-SYSTEM.md` §0 carries nine. Four shape a run before any rule
is looked up:

- **Every slide delivers one thing and says it on the slide.** The audience must never wait for the
  presenter to reach the point.
- **Portable or it does not ship.** One file, zero external references, opens from `file://`. Not a
  size problem — embedding is cheap. Measured 2026-08-30, the four decks this repository
  ships run 316 to 427 KB, every one of them with three embedded faces and zero external
  references.
- **The headline is a claim, not a topic.**
- **Motion must encode something.** *What does this animation encode?* If the answer is "it looks
  good", remove it.

## Critique without building

When the user wants an existing deck reviewed rather than a new one built, the two questions do not
apply — there is nothing to size and nothing to align. Load
`$HTMLDECK/skills/htmldeck/references/critique.md` and run the design audit: headline
verdict first, then the coverage table, then findings naming the principle each one violates, then
an explicit keep-versus-rebuild split.

**The critique voice is blunt — bottom line up front, no diplomatic padding.** A review that opens
with three compliments is one nobody acts on. **The deck's own voice is the opposite**: respectful,
positive, professional.

## Say which half was checked

When sources were supplied, reconcile the deck against them *and* the sources against each other —
every figure on a slide appears in a source with the same value, and every figure used twice agrees
with itself.

When they were not, the run is presentation-only. **Say so in the output.** A presentation-only
check presented as a clean pass is a false one.

Attribution

uchimata2uchimata2
View sourceSee grades on GitHubMore from uchimata2 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →