Agent skill

Htmlspec

by disler in disler/pi-agent-observability

Creates a text-only engineering implementation plan as a single self-contained HTML page saved to specs/<name.html — the plan authored directly in styled HTML plus a freeform HTML zone where the…

MITAuto-check passedAgent Workflows

Install Htmlspec

skills CLI
$ npx skills add disler/pi-agent-observability --skill htmlspec -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install disler/pi-agent-observability htmlspec --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/disler/pi-agent-observability.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/htmlspec .claude/skills/htmlspec && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
htmlspec
GitHub stars
145
Token cost
~3k tokens
SKILL.md length
922 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Creates a text-only engineering implementation plan as a single self-contained HTML page saved to specs/<name.html — the plan authored directly in styled HTML plus a freeform HTML zone where the…

  • Works in 4 steps: Plan → Author the HTML → Freeform enrichment → …
  • The user says htmlspec
  • SKILL.md covers Purpose, Variables, Instructions and Workflow, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Htmlspec is an agent skill from disler/pi-agent-observability. Creates a text-only engineering implementation plan as a single self-contained HTML page saved to specs/<name.html — the plan authored directly in styled HTML plus a freeform HTML zone where the agent can author any custom HTML/CSS/SVG/JS (inline SVG diagrams, interactive toggles, comparison matrices, decision trees) that aids comprehension. No images are generated; visual richness comes from inline HTML/SVG only. Use when the user says "htmlspec", wants a text-only HTML implementation plan, a browser-openable…

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Planning, HTML artifacts and Image generation. The licence is MIT.

When your agent uses it

  • The user says htmlspec
  • Wants a text-only HTML implementation plan
  • A browser-openable spec
  • A richly-formatted HTML engineering plan without per-section image generation

Example prompts

  • “htmlspec”
  • “Use the htmlspec skill to create a text-only engineering implementation plan as a single self-contained HTML page saved to specs/<name.html — the…”
  • “/htmlspec”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Plan
  2. Author the HTML
  3. Freeform enrichment
  4. Finish

What it can do on your machine

Read from SKILL.md and the folder at commit cbb8cc3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are html, markdown and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Htmlspec loads about 3k tokens when it runs. Until then it costs about 153 tokens; SKILL.md has 922 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~153
When it runs · the whole SKILL.md, loaded when a task matches
~3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from disler/pi-agent-observability at commit cbb8cc3, republished under its MIT licence (© disler). 922 words, ~2,990 tokens.

Download SKILL.mdSave it as .claude/skills/htmlspec/SKILL.md (or your agent's skills folder).
name
htmlspec
description
Creates a text-only engineering implementation plan as a single self-contained HTML page saved to specs/<name>.html — the plan authored directly in styled HTML plus a freeform HTML zone where the agent can author any custom HTML/CSS/SVG/JS (inline SVG diagrams, interactive toggles, comparison matrices, decision trees) that aids comprehension. No images are generated; visual richness comes from inline HTML/SVG only. Use when the user says "htmlspec", wants a text-only HTML implementation plan, a browser-openable spec, or a richly-formatted HTML engineering plan without per-section image generation.
argument-hint
[user prompt]

htmlspec

Purpose

Produce an engineering implementation plan as one self-contained, text-only HTML page — specs/<plan-name>.html — that you can open directly in a browser. Unlike a markdown spec, the plan is authored directly in HTML using the template below, and a dedicated Freeform zone lets you author any HTML you want (interactive toggles, animated SVG flows, comparison matrices, decision trees, etc.) to make the plan clearer and richer than prose could. No images are generated — all visual enrichment comes from inline HTML, CSS, SVG, and JS authored directly into the page.

Phases, in order:

  1. Plan phase — analyze, explore, design (same thinking as a normal spec).
  2. HTML authoring phase — write the plan into the HTML Plan Template.
  3. Freeform phase — enrich the page with custom HTML per the Freeform Instruction Set.

Variables

USER_PROMPT: $1 ALL_ARGUMENTS: $ARGUMENTS PLAN_OUTPUT_DIRECTORY: specs/ PLAN_SLUG: kebab-case name derived from the plan topic (e.g. in-memory-ttl-lru-cache) HTML_OUTPUT: specs/htmlspec-<PLAN_SLUG>.html — the filename MUST always begin with the htmlspec- prefix

Instructions

Plan phase
  • IMPORTANT: If no USER_PROMPT is provided, stop and ask the user to provide it.
  • Carefully analyze the USER_PROMPT. Determine task type (chore|feature|refactor|fix|enhancement) and complexity (simple|medium|complex).
  • Think deeply (ultrathink) about the best implementation approach.
  • Explore the codebase to understand existing patterns and architecture.
  • Decide which sections from the HTML Plan Template apply (include the conditional sections only when task type/complexity warrants them, exactly like a normal spec).
  • Generate a descriptive kebab-case PLAN_SLUG from the topic.
HTML authoring phase
  • Author the plan directly in HTML using the HTML Plan Template below — do not write a markdown file. The output is a single specs/htmlspec-<PLAN_SLUG>.html.
  • Keep the page self-contained: all CSS inline in <style>, any JS inline in <script>, no external network/CDN dependencies unless genuinely required (and if so, note it in Notes).
  • Fill every applicable section with real, detailed content — the plan must be implementable by another developer. Use semantic HTML: <ul>/<ol> for lists, <table> for comparisons, <pre><code> for code/commands.
  • Preserve the dark visual theme defined by the template's CSS tokens so the page reads as one body of work.
  • Do not include any <figure>/<img> elements — this skill is text-only.
Freeform Instruction Set

The HTML Plan Template includes a Freeform zone (<section class="freeform">). Here — and anywhere else a visual would help more than prose — you have full creative latitude to author any HTML you want. This is the most valuable part of the page: with no image generation, freeform is where the plan earns its richness, so lean into it heavily.

  • Communicate concrete implementation work. Freeform is not decoration — it is where another developer learns exactly what to build. Encode the things prose makes muddy: file paths to touch, function signatures with full type info, data shapes (request/response/DB rows), the precise sequence of operations, decision points with the chosen branch, edge cases and what happens at each, error/timeout/retry behavior, ordering and concurrency constraints, before/after diffs, migration steps, and any invariants the implementation must preserve. Always prefer specific over abstract — names, types, numbers, paths.
  • Use a wide variety of HTML tags to convey meaning. Different ideas deserve different shapes. Reach for:
    • <details>/<summary> for expandable deep-dives, alternative-considered-and-rejected, and FAQ-style "why not X".
    • <table> for comparison matrices (option A vs B vs C), API contracts (field · type · required · description), decision matrices (criterion × option), and before/after columns.
    • <dl>/<dt>/<dd> for definitions, glossaries, and field-by-field schema docs.
    • Inline SVG for architecture diagrams, data flow, state machines, sequence diagrams, dependency graphs, decision trees, timelines, ER diagrams, and topology maps. SVG is your image substitute — use it liberally.
    • <pre><code> blocks (with a language hint) for code snippets, shell sessions, JSON/YAML payloads, SQL, and diffs. Use <samp> for expected output and <kbd> for keystrokes/commands.
    • <aside> (styled as a callout) for warnings, "gotchas", and side notes that would interrupt the main flow.
    • <mark> to highlight the critical word/line a reader must not miss.
    • Nested <ol> for ordered, branching procedures; nested <ul> for grouped checklists.
    • <figure> wrapping inline SVG with a <figcaption> so the diagram has a citable label.
    • Animated SVG / CSS transitions and tabbed views only where they genuinely make the plan faster to absorb.
  • Self-contained only. Inline all CSS and JS. Do not pull external scripts/styles/fonts over the network unless truly necessary; if you must, declare it under Notes.
  • Stay on-theme. Reuse the template's CSS custom properties (--bg, --cyan, --amber, --red, --line, etc.) so freeform content matches the rest of the page. SVG strokes/fills should use the same palette.
  • Don't break the core plan. The standard sections must remain present and complete; freeform is additive enrichment, not a replacement.
  • Earn its place. No decorative filler — every freeform element should make the spec clearer or faster to act on. If an SVG diagram or table would not change what the developer types next, don't include it.
Show full SKILL.md (138 more words)Show less

Workflow

Phase 1 — Plan
  1. THINK HARD: parse the USER_PROMPT; settle task type, complexity, and the architecture.
  2. Explore the codebase for patterns and relevant files.
  3. Decide the section set and the PLAN_SLUG.
Phase 2 — Author the HTML
  1. Create specs/ if missing. Write specs/htmlspec-<PLAN_SLUG>.html from the HTML Plan Template, filling every applicable section with detailed content. Emit no <figure>/<img> elements — this skill is text-only.
Phase 3 — Freeform enrichment
  1. Author the Freeform section and any in-section enrichments per the Freeform Instruction Set above — inline SVG/CSS/JS, self-contained, on-theme, additive.
Phase 4 — Finish
  1. Validate the HTML is well-formed (see Validation).
  2. Follow the Report Format.

HTML Plan Template

Author the page from this skeleton. Keep the <head>/<style> block intact (it defines the shared theme); fill the {{…}} slots; drop the conditional sections that don't apply.

html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Plan: {{TASK_NAME}}</title>
<style>
  :root{
    --bg:#0A0E1A; --panel:#111726; --ink:#F5F5F0; --muted:#9AA4B2;
    --cyan:#22D3EE; --amber:#F59E0B; --red:#EF4444; --line:#1E2A3C;
  }
  *{box-sizing:border-box}
  body{margin:0;background:var(--bg);color:var(--ink);
       font:16px/1.65 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
  .wrap{max-width:980px;margin:0 auto;padding:48px 24px 96px}
  header.hero{text-align:center;margin-bottom:36px}
  header.hero h1{font-size:2.2rem;margin:0 0 10px;letter-spacing:-.02em}
  .meta{color:var(--muted);font-size:.9rem}
  .badge{display:inline-block;background:var(--cyan);color:#001018;border-radius:999px;
         padding:2px 11px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
  section{background:var(--panel);border:1px solid var(--line);border-radius:14px;
          padding:24px 28px;margin:20px 0}
  section>h2{margin:0 0 14px;color:var(--cyan);font-size:1.3rem;
             border-bottom:1px solid var(--line);padding-bottom:10px}
  ul,ol{padding-left:22px}
  li{margin:4px 0}
  table{width:100%;border-collapse:collapse;margin:12px 0}
  th,td{border:1px solid var(--line);padding:8px 12px;text-align:left;vertical-align:top}
  th{background:#0d1422;color:var(--cyan)}
  pre{background:#0d1422;border:1px solid var(--line);border-radius:8px;padding:14px;overflow:auto}
  code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em}
  :not(pre)>code{background:#0d1422;border:1px solid var(--line);border-radius:6px;
                 padding:2px 6px;color:var(--amber)}
  .freeform{border-style:dashed;border-color:var(--cyan)}
  .freeform>h2::after{content:" · author anything that helps";color:var(--muted);
                      font-size:.7rem;font-weight:400;text-transform:none}
  a{color:var(--cyan)}
</style>
</head>
<body>
<div class="wrap">

  <header class="hero">
    <h1>Plan: {{TASK_NAME}}</h1>
    <p class="meta"><span class="badge">{{TASK_TYPE}}</span> &middot; {{COMPLEXITY}}</p>
  </header>

  <section>
    <h2>Task Description</h2>
    {{TASK_DESCRIPTION_HTML}}
  </section>

  <section>
    <h2>Objective</h2>
    {{OBJECTIVE_HTML}}
  </section>

  <!-- include if task_type is feature OR complexity is medium/complex -->
  <section>
    <h2>Problem Statement</h2>
    {{PROBLEM_STATEMENT_HTML}}
  </section>

  <section>
    <h2>Solution Approach</h2>
    {{SOLUTION_APPROACH_HTML}}
  </section>
  <!-- /conditional -->

  <section>
    <h2>Relevant Files</h2>
    {{RELEVANT_FILES_HTML}}  <!-- include an h3 'New Files' list if needed -->
  </section>

  <!-- include if complexity is medium/complex -->
  <section>
    <h2>Implementation Phases</h2>
    {{PHASES_HTML}}  <!-- Phase 1: Foundation / Phase 2: Core / Phase 3: Integration & Polish -->
  </section>
  <!-- /conditional -->

  <section>
    <h2>Step by Step Tasks</h2>
    {{STEPS_HTML}}  <!-- ordered list; foundational first; last step validates the work -->
  </section>

  <!-- include if task_type is feature OR complexity is medium/complex -->
  <section>
    <h2>Testing Strategy</h2>
    {{TESTING_HTML}}
  </section>
  <!-- /conditional -->

  <section>
    <h2>Acceptance Criteria</h2>
    {{ACCEPTANCE_HTML}}  <!-- specific, measurable -->
  </section>

  <section>
    <h2>Validation Commands</h2>
    <pre><code>{{VALIDATION_COMMANDS}}</code></pre>
  </section>

  <!-- FREEFORM ZONE: author ANY self-contained, on-theme HTML/CSS/SVG/JS that aids the plan -->
  <section class="freeform">
    <h2>Freeform</h2>
    {{FREEFORM_HTML}}
  </section>

  <section>
    <h2>Notes</h2>
    {{NOTES_HTML}}  <!-- dependencies (uv add ...), external assets used by freeform, caveats -->
  </section>

</div>
</body>
</html>

Report Format

markdown
✅ HTML Implementation Plan Created (text-only)

File: specs/htmlspec-<PLAN_SLUG>.html  (open in a browser)
Topic: <brief description of what the plan covers>
Freeform: <one line on what custom HTML you added, if any>

Key Components:
- <main component 1>
- <main component 2>
- <main component 3>

Open with: open specs/htmlspec-<PLAN_SLUG>.html

Validation

bash
# file exists and is non-trivial HTML
test -s specs/htmlspec-<PLAN_SLUG>.html && head -1 specs/htmlspec-<PLAN_SLUG>.html | grep -qi '<!DOCTYPE html>' && echo "HTML ok"
# text-only: no <img> tags should be present
! grep -q '<img ' specs/htmlspec-<PLAN_SLUG>.html && echo "text-only ok"

© disler, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/htmlspec of disler/pi-agent-observability.

Open the folder on GitHubat commit cbb8cc3

Compare with similar skills

Htmlspec next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Htmlspec compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Htmlspec this skilldisler/pi-agent-observability145—~3kAutomated safety check: PassMIT
Plan Previewu-ichi/reviewable-html-workbench2981 repos~1.8kAutomated safety check: PassMIT
Plannotator Visual Explainerbacknotprop/plannotator9.2k—~1.7kAutomated safety check: PassApache-2.0
Visualizedisplay-dev/visualize131—~7.4kAutomated safety check: PassMIT
PRP Visual Companion PageWirasm/prp2.3k—~1kAutomated safety check: PassMIT
PRP Companion PageWirasm/prp2.3k—~990Automated safety check: PassMIT

Similar skills

  • Plan Preview

    u-ichi/reviewable-html-workbench

    Plan Mode の <proposedplan を出す直前に、計画の段階・依存関係・検証観点を一時HTMLで視覚確認したい時に使う agent-internal skill。Use this agent-internal skill to create a temporary HTML preview for a plan just before presenting…

    298 GitHub starsUsed in 1 repo~1.8k tokens
    Agent WorkflowsAuto-check passed
  • Plannotator Visual Explainer

    backnotprop/plannotator

    Builds self-contained HTML explainers for plans, pull requests and technical concepts in Plannotator's theme, then opens them in its annotation view.

    9.2k GitHub stars~1.7k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Visualize

    display-dev/visualize

    Generate beautiful, on-brand HTML artifacts — reports, diagrams, diff reviews, slide decks, plans, recaps, dashboards.

    131 GitHub stars~7.4k tokensUpdated 21 days ago
    Frontend & DesignAuto-check passed
  • Writes a self-contained HTML companion beside a PRP plan or review that shows the diagram, steps, risks, verdict and findings, each item with a stable id.

    2.3k GitHub stars~1k tokensUpdated 5 days ago
    Agent WorkflowsAuto-check passed
  • Writes a self-contained HTML page beside a PRP plan or review that shows the diagram, steps, risks or findings, with a stable id on every item.

    2.3k GitHub stars~990 tokensUpdated 5 days ago
    DevelopmentAuto-check passed
  • SN Motion HTML

    OpenSenseNova/SenseNova-Skills

    Builds HTML stories where one continuous camera journey advances with page progress, using researched structure, AI stills, Seedance video clips and browser QA.

    5.7k GitHub stars~2.2k tokensUpdated 19 days ago
    Media & CreativeAuto-check: notes

More from disler/pi-agent-observability

  • Htmlvspec

    disler/pi-agent-observability

    Creates a visual engineering implementation plan as a single self-contained HTML page saved to specs/<name.html — the plan authored directly in styled HTML, with one AI-generated diagram image per…

    145 GitHub stars~4.7k tokensUpdated 4 mo ago
    Auto-check: notes
  • Spec

    disler/pi-agent-observability

    Creates a concise engineering implementation plan based on user requirements and saves it to specs directory

    145 GitHub stars~1.3k tokensUpdated 4 mo ago
    Auto-check passed

Questions about Htmlspec

What does Htmlspec do?

Creates a text-only engineering implementation plan as a single self-contained HTML page saved to specs/<name.html — the plan authored directly in styled HTML plus a freeform HTML zone where the…. Htmlspec is an agent skill from disler/pi-agent-observability.html — the plan authored directly in styled HTML plus a freeform HTML zone where the agent can author any custom HTML/CSS/SVG/JS (inline SVG diagrams, interactive toggles, comparison matrices, decision trees) that aids comprehension.

When should I use Htmlspec?

Htmlspec fits situations like: the user says htmlspec; wants a text-only HTML implementation plan; A browser-openable spec; A richly-formatted HTML engineering plan without per-section image generation.

How do I install Htmlspec in Claude Code?

Run `npx skills add disler/pi-agent-observability --skill htmlspec -a claude-code`. Or copy the skill folder (.claude/skills/htmlspec in disler/pi-agent-observability) into .claude/skills/htmlspec in your project. Claude Code loads it when a task matches its description.

How do I install Htmlspec in Codex?

Run `npx skills add disler/pi-agent-observability --skill htmlspec -a codex`. Or copy the skill folder (.claude/skills/htmlspec in disler/pi-agent-observability) into .agents/skills/htmlspec in your project. Codex loads it when a task matches its description.

Can I use Htmlspec in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add disler/pi-agent-observability --skill htmlspec -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/htmlspec, .gemini/skills/htmlspec, .github/skills/htmlspec and .opencode/skills/htmlspec in your project.

What does Htmlspec need to run?

SKILL.md names no scripts, command-line tools or credentials: Htmlspec is instructions for the agent only.

Does Htmlspec access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Htmlspec safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Htmlspec use?

Htmlspec is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Htmlspec use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Htmlspec?

Skills that share tags, products or a category with Htmlspec: Plan Preview (u-ichi/reviewable-html-workbench, 298 stars), Plannotator Visual Explainer (backnotprop/plannotator, 9.2k stars), Visualize (display-dev/visualize, 131 stars) and PRP Visual Companion Page (Wirasm/prp, 2.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Htmlspec?

disler (a GitHub user) maintains it in disler/pi-agent-observability, which has 145 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on May 31, 2026.

Source: disler/pi-agent-observability on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.