SkillAgentSearch skills...

answer-me-with-html

Turns an answer into a one-page visual HTML explainer: the model writes a short Markdown draft and the bundled CLI builds one page.

Install / Use

npx skills add QingYunA/answer-me-with-html --skill answer-me-with-html

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

95/100

Supported Platforms

Universal

Tags

Our assessment of answer-me-with-html

answer-me-with-html scores 95/100 on our quality scale, 87th of 1,197 Content & Media skills we index (top 8%).

Its SKILL.md is 22 KB long, well organised into 14 sections with 5 code examples: a thorough specification that gives an agent plenty to work with.

With 4,206 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
15/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated yesterday, so answer-me-with-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.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.

Automated pattern scan on 2026-10-23. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

answer-me-with-html compared with similar skills

All 4 of these similar skills score higher than answer-me-with-html; compare them before choosing.

SkillScoreStarsUpdatedFormat
answer-me-with-html (this skill)by QingYunA954.2k1d agoSKILL.md
siyuanby siyuan-note10046.9ktodayMCP Server
algorithmic-artby anthropics100177.9k30d agoSKILL.md
pptxby anthropics100177.9k30d agoSKILL.md
designby nextlevelbuilder100137.2k7d agoSKILL.md

Frequently asked questions

How do I install answer-me-with-html?
Run npx skills add QingYunA/answer-me-with-html --skill answer-me-with-html. The install tabs above show the steps for each supported agent.
Which AI agents does answer-me-with-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 answer-me-with-html safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. 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 answer-me-with-html still maintained?
The repository was last updated yesterday, so answer-me-with-html is actively maintained.

name: answer-me-with-html argument-hint: "[config [key value] | clean | update]" description: >- Turns an answer into a one-page visual HTML explainer: the model writes a short Markdown draft and the bundled CLI builds one page. Use it proactively and liberally, without being asked, whenever a page would help the reader more than plain text, even if plain text would also work: any explanation of how something works or how parts relate (flow, request path, architecture, code or folder structure, state machine, lifecycle, history); any comparison, trade-off or decision with pros and cons; any diagnosis, review or investigation, especially with several causes or findings to rank; any answer with a table, a numbered or ranked list, steps, branches or several sections; or when the user says "I don't get it / draw it / explain visually / 讲讲原理 / 没看懂 / 画个图". When in doubt, use it: a page is quick and cheap to make. Also for explainer videos ("make a video", "做个视频") and for changing its settings. Skip only for small talk, a trivial one-line answer, or when the user asks for plain text.

Answer me with HTML: answer a complex question with one HTML page

You write only the content draft (extended Markdown). The am CLI does all layout, colours, dark mode and diagram coordinates. Do not hand-write HTML / CSS / SVG.

Reply to the user, and write the draft, in the user's language.

0. When the user wants to change settings

Arguments for this call: $ARGUMENTS

When the arguments start with config, clean or update, or the user asks to change a setting, clean up pages or update this skill: read ${CLAUDE_SKILL_DIR}/references/settings.md and follow it. That turn produces no page.

1. Decide: produce a page or not

Produce a page if any of these is true:

  • There are ≥3 interrelated concepts, and the reader needs to see how they relate.
  • There is a flow, protocol, call chain or state transition (especially with branches or several actors).
  • There is a comparison across ≥3 dimensions, a trade-off between options, or a "can / cannot" list.
  • There is a hierarchy or an evolution over time.

Otherwise answer in plain text. When unsure: the more the question "needs a picture to understand", the more it calls for a page.

Always-on mode

If the context contains the [answer-me-with-html always-on] reminder (the user added the always-on rule to a rules file such as CLAUDE.md or AGENTS.md), the bar is lower:

  • Whenever this turn gives a conclusion, summary, plan, comparison, review or explanation, attach a page.
  • Do not skip it because "the answer is short". If there is a conclusion, produce a page.
  • For everyday conclusions use a small page with 2–4 panels: one callout with the conclusion, plus one table or one diagram. Do not add panels just to fill space.
  • Render with --no-open, so no browser window interrupts the user. The user opens the page by clicking the path at the end of the reply.
  • Order: render the page first, then write the text reply. The reply is the last thing in the turn, with the page link on its last line (see step 5). Do not write the reply and then call am render.
  • Produce no page for small talk, one or two sentences with no conclusion, pure command output, or when the user asks for plain text.

2. Workflow (one Bash call)

The CLI is bundled in this skill's directory: scripts/am.mjs, a single file with no dependencies to install; it needs only Node.js 20+. If node is not found or is older than v20, tell the user, show them the exact command to install the Node.js LTS (macOS brew install node, Windows winget install OpenJS.NodeJS.LTS, otherwise nvm, which adds lines to the shell profile), and run it only after they agree, then check node --version again. If they say no or it still fails, stop and tell them. Below, am always means:

node "${CLAUDE_SKILL_DIR}/scripts/am.mjs"

In Claude Code, the path above is replaced with this skill's directory automatically. If you see the variable unreplaced (other agents), replace it with the absolute path of the directory that contains this SKILL.md. When the skill was loaded with a "Base directory for this skill" line (DeepSeek Harness), that path is this directory. If the user installed the am command globally, you can also use am directly.

Keep the default output; it needs no flag. If the session cannot write to ~/.answer-me-with-html/pages (a sandbox that allows writes only in the workspace), the CLI saves the page in a private folder in the system temporary folder and says so on a ! line; the system may clear that folder. Add -o "<absolute-workspace-path>/.tmp/answers/topic.html" to render - before the heredoc only when the user wants the page in the workspace or the render fails with Cannot write the page. -o names an HTML file, not a folder; the CLI creates missing parent directories. Use AM_HOME only when the whole data directory must move.

  1. First list 3–8 panels in your head. Each panel answers one sub-question only. The draft language follows the language of the user's question: an English question gets an English draft, a Chinese question a Chinese draft, a Japanese question a Japanese draft. The page button labels, <html lang> and the STE check rules switch automatically by the draft language (a draft containing kana counts as Japanese); STE applies the English or Chinese rules to each sentence by its language (Japanese sentences get only the sentence-length and paragraph-length checks, with the same character limits as Chinese; any other language gets only those two checks, counted in words). To set the language yourself, write lang: in the frontmatter: en, zh (Simplified Chinese), zh-Hant or zh-TW (Traditional Chinese), ja, or any other language tag such as fr or ko. Detection reads Chinese (Simplified, or Traditional when the text has characters written in only one form), Japanese, Korean, and Cyrillic, Arabic, Hebrew, Thai and Greek text, and reads all Latin-script text as English. Declare the language when the user writes a Latin-script language other than English, when a Chinese text is too short or too plain to show Traditional characters, or when an exact tag matters (Arabic script also writes Persian, Cyrillic also Ukrainian). A language without its own labels still gets the right <html lang>, with English page labels.
  2. Choose components by the shape of the information (see section 4).
  3. Render in one go with a heredoc:
node "${CLAUDE_SKILL_DIR}/scripts/am.mjs" render - <<'AM_EOF'
---
title: Title
---
## A Panel title
```flow
A -> B: label
```
AM_EOF
  1. Read the output:
    • ✓ <path>: success. Whether the browser opens automatically depends on the user's settings (am config); --no-open affects only this run. A page with STE or code warnings never opens automatically.
    • ✗ L<line> … + Correct example:: no page was written. The CLI lists every error of the draft at once, in line order (✗ n errors in the draft). Read all of them, fix each flagged line following its example, then render again.
    • draft: <path>: the CLI saved your stdin draft there, and every L<line> in the output matches that file. Change only the flagged lines in that file with your file-edit tool; do not send a new heredoc. Then run am render <path>; when a page was written, add --replace or reuse -o as the rule on rendering again below says. The CLI deletes the saved draft once it renders with no warnings. A draft you passed as a file path is not copied: edit that file.
    • code n warnings: a code block is longer than 40 lines, or a diff hunk has a different number of lines than its @@ header says. Cut the block or fix the header to the lines that make the point and render again, or keep it if every line matters.
    • STE n warnings: rewrite the flagged lines as suggested, then render again. Retry at most 2 rounds; if warnings remain, keep the last page and say so.
    • When rendering again after a ✓, add --replace <path from the last ✓ line> for a page in the data directory's pages/ or the temporary folder's pages/; the CLI deletes that page once the new one is written. For a page written with -o, reuse the same quoted -o HTML file path to overwrite it in place.
    • ! Cleanup hint: … or ! Update hint: …: pass it on to the user in one sentence at the end of the reply, and ask whether to clean up / update. Do not run am clean or the update command yourself; wait until the user agrees. The CLI throttles these: the cleanup hint appears at most once every 7 days, the update hint at most once every 3 days.
  2. Reply in the terminal with only 2–3 lines: one core conclusion + the page link. Do not paste the draft or the HTML back into the terminal. Write this reply after the render, as the last step of the turn: render the page first, then reply. No tool call comes after the reply. If the render output has a link: line, the user runs am serve: use that URL as the page link instead, with the URL as the label too, and skip the local-file links below. Never start am serve yourself; only the user starts it. Otherwise, in DeepSeek Harness, write a Markdown link directly to the absolute path from the ✓ line, with the path as the label too: [C:/Users/Name/My Pages/page.html](<C:/Users/Name/My Pages/page.html>) on Windows or [/abs/path.html](</abs/path.html>) on macOS/Linux. Use forward slashes on Windows and angle brackets around the destination so spaces work. These path links open the Document Preview panel. In other hosts, write the page link as a Markdown link to a file:// URL, with the URL as the label too: [file:///abs/path.html](file:///abs/path.html). Take the absolute path from the ✓ line and add file:// in front; do not percent-encode it. GUI hosts (Codex, Antigravity) render this as a clickable link, and a terminal still shows the full URL. If you have a present tool (DeepSeek Harness), call it with the absolute path from the ✓ line before you reply, so the user can open the page from a card in the app. Still end the reply with the link. If you have an in-app browser tool (such as open_in_codex in OpenAI Codex), the render output has a link: line, and am config get open is not off, call that tool with the link (open_in_codex: target: { type: "browser", url: "<link>" }) so the user sees the page in the app's browser panel. Still end the reply with the link.

When a page already exists and only one panel needs to change, do not rewrite the whole page. Take the source draft from the HTML's #am-source, replace only the matching ## section, and overwrite the page in place:

node "${CLAUDE_SKILL_DIR}/scripts/am.mjs" patch page.html --panel "Panel title" <<'AM_EOF'
## A Panel title
New content
AM_EOF

--panel matches the title, the letter ID, or ID title. If the panel is not found or the page has no #am-source, leave the file unchanged. patch keeps the original page's theme, light/dark mode and STE style; add --theme / --mode / --style to change them. Full usage: am help patch.

3. Draft format quick reference

---
template: sheet     # sheet board (default, one-screen overview) | doc linear explanation (read step by step)
theme: auto         # auto (default): paper for doc or text-only drafts, blueprint with diagrams | blueprint | shadcn | paper | a theme the user made (am list shows it)
title: Title
subtitle: One-line summary     # optional
cols: 3             # most columns in a sheet row (a whole number), default 3
source: RFC 9293    # any other key is shown in the page header's meta line
---
Lead: one or two sentences with the core conclusion (optional).

## A Panel title {span=2 meta="small text, top right"}
Plain Markdown: paragraphs, lists, tables, quotes.
Table status words: ok / no / warn (may carry text: "ok approved") → ✓ / ✗ / ! badg

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars4.2k
CategoryContent
Updated1d ago
Forks281

Languages

JavaScript

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions