create-html
Skill117 starsChanged 3 months agoApache-2.0View on GitHub
Create a polished, self-contained, responsive HTML briefing from notes, research, comparisons, plans, or reports. Use when the user asks to turn content into a readable HTML page, visual brief, dashboard, comparison, timeline, or shareable report, including Japanese requests such as 「見やすいHTMLにして」 or 「HTMLでまとめて」.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- pavelsimo/skillstheir own version, first seen Jul 7, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- pavelsimo/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. About 0 are common, 16 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 15
Write a single self-contained .html file.
- Distinctive: line 16
Run the checks below and fix every NG line.
- Very specific: line 24
Use Japanese system fonts first: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic UI", sans-serif.
- Distinctive: line 26
Use semantic headings in order, visible focus styles, sufficient color contrast, and descriptive link text.
- Distinctive: line 27
Keep decorative icons minimal.
- Distinctive: line 33
Do not put backstory, excuses, or rejected options in leads, captions, or table cells.
- Very specific: line 36
Do not add things the reader must decode first: visual codes that need a legend once there are three or more, abstract identifiers such as …
- Distinctive: line 38
When asked for more information, add figures at the same rate as text.
- Distinctive: line 39
When a section grows after feedback, rebuild it instead of appending below.
- Very specific: line 41
Do not open list items with a bold label and a colon (<b>Cost:</b> ...).
- Very specific: line 44
Start the <title> with the specific scope of this page so it can be told apart in a list of similar pages.
- Distinctive: line 45
When updating a page after feedback, replace it with the current round only.
- Distinctive: line 49
Write pages for other readers as if they do not know the user.
- Distinctive: line 50
Never put the user's own commitments, requests to other people, or decisions they have not made into a page others will read.
- Distinctive: line 63
Do not draw what reads better as text: a restated bullet list, a list of decided and open items, or a two-option comparison (use …
- Distinctive: line 64
Do not draw a figure that is really a table.
- Very specific: line 71
Use inline SVG with a viewBox, <text> for labels, one shared <marker> for arrows, and only the page's color tokens.
- Very specific: line 73
Do not put a linearGradient on the stroke of a perfectly horizontal or vertical <line>: with the default objectBoundingBox units the …
- Distinctive: line 77
Run the static checker on every page, including pages produced by another generator:
- Distinctive: line 84
Run it on the file where it will be served from.
- Distinctive: line 86
Do not edit generated HTML with regular-expression replacements.
- Very specific: line 87
When reusing CSS from another page, copy only the rules, not the <style> tags around them.
- Very specific: line 92
Treat noindex and a hard-to-guess URL as discovery controls only, never as access control.
- Distinctive: line 94
Keep the page around 1 MB or less.
- Distinctive: line 96
If the user also asks to share or publish the result, complete the HTML first, show any generated image for review, then use the …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Create HTML
Turn the user's content into one complete HTML file that is calm, readable, and ready to share. Keep the information primary; styling should make the structure easier to scan.
Workflow
- Confirm the source material, audience, and purpose from the conversation and local files. Do not invent facts to fill empty sections.
- Decide the information structure before styling. Prefer a short narrative, comparison table, timeline, or paired layout over a grid of generic cards. Read layout-patterns.md when the page has multiple content types, a schedule, a revision, or a decision to request.
- Copy brief-template.html as the starting point. Keep its stylesheet whole and add only the parts this content needs; do not write a new stylesheet and then patch in the template's tokens. Do not use an existing published page as the starting point either; older pages may carry layouts that the checks now reject (for example a hero placed inside
.wrapwithout.hero-in), and copying one spreads the same break. Remove unused components and replace every{{PLACEHOLDER}}. design-rules.md explains why each rule in the stylesheet exists. - Write a single self-contained
.htmlfile. Keep CSS and small SVG illustrations inline. Do not require a build step, JavaScript framework, CDN, external font, or analytics. - Run the checks below and fix every NG line.
- When the page uses a mechanism the template does not have (a calendar, a new grid, content in the hero), render it at desktop width and around 390 px and run render-checks.md. Look at one screenshot yourself; passing numbers are not the same as having seen the page.
Design contract
- Light mode. One deep-blue gradient as the base, neutral text and lines, gold as the only accent, used as points rather than surfaces. Do not color-code sections with extra hues.
- The gradient appears in five places only: the full-width hero, the 72 px bar on each section divider, the section numbers, the table header, and card header bands. Bands never nest: a table or Before/After inside a card uses a white header with a small pill label.
- Main content about 940 px wide, body text at least 15 px, line height around 1.85.
- Use Japanese system fonts first:
-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI",sans-serif. - Tables have no vertical rules and no
min-width. On phones the delivered page folds narrow tables into stacked cards, so avoidwhite-space: nowrapon long cells and never shrink text to make a table fit. - Use semantic headings in order, visible focus styles, sufficient color contrast, and descriptive link text.
- Keep decorative icons minimal. Prefer CSS shapes or inline SVG to emoji-heavy decoration.
Writing rules
- Write the body as a declarative report: plain statements and noun phrases, not conversational or polite spoken style. Phrase open questions as statements in a list, and do not write headings as questions. The only exception is text the user will send or read aloud as-is.
- Give the main topic the most space. Each core item gets its own section with a figure and a line of reasoning (current problem, approach, status, next step). Do not spend three figures on background and leave the main items as bullet points in one card.
- Do not put backstory, excuses, or rejected options in leads, captions, or table cells. A row says what changed and how; the reasons belong in the working notes, not the page.
- Do not make the reader go through the same list twice. If the sections explain items one by one, drop those items from any overview table and use a short diagram or two lines of orientation instead. Do not end with a recap of the same list.
- Keep one main point per screen. Exhaustive coverage of the source material goes to a reference at the end (a link or the path of the source notes), not into the body. When a page reads as busy, cut; do not answer by packing in more.
- Do not add things the reader must decode first: visual codes that need a legend once there are three or more, abstract identifiers such as
S1/S2orA/B, or the same number restated in several units. Pick one form for each fact. - Show numbers as a chart with few series plus a short table of the key values (about five rows).
- When asked for more information, add figures at the same rate as text. For each added topic, draw whatever is a breakdown, a flow, a contrast, or a sequence; text alone lowers the share of figures and the page gets harder to read.
- When a section grows after feedback, rebuild it instead of appending below. Open it with one line giving the order of its parts and number its subheadings. Appended tables, lists, and paragraphs stack into a section nobody can scan.
- Do not put four or more items of the same weight in one box, cell, or list. Split them into category boxes of at most three items, one line each, with shared timing or ownership moved into the box heading. Draw steps and conditions as a numbered step figure, and compare options as one card per option. The checker warns at ten table rows or eight list items.
- Do not open list items with a bold label and a colon (
<b>Cost:</b> ...). Write each item as one sentence at the same level of detail as its neighbors; the label pattern reads as a filled-in form and hides uneven detail. - Link every source the page draws on (documents, posts, official sites, book pages) where it is used, with
target="_blank" rel="noopener", so the reader can open the original without searching. Expand shortened URLs to their destination, make a post's timestamp the link to the post, and never name a source without linking it. Ask before sharing publicly a page that links to someone else's private documents. - Add the day of the week to every date, including dates in tables and both ends of a range (
3/2(月)〜3/6(金)). Compute weekdays with code, never by hand, and recheck weekdays copied from existing material. Calendar grids are the exception because the column already shows the weekday. - Start the
<title>with the specific scope of this page so it can be told apart in a list of similar pages. Put the same scope in the file name. - When updating a page after feedback, replace it with the current round only. Keep earlier figure or image comparisons, folded, because the page is the only place those can be compared.
- A page meant to be handed to a third party as-is contains only the proposal itself. Reasons, comparisons, and verification tables go to the user in chat, not on that page.
- A page for outside readers (course material, a client handout, an event guide) carries only what those readers use. Leave out internal notes (how a decision was reached, the reasons behind it, internal circumstances) and plans that are not settled yet (later sessions, future direction). Keep that background in separate working notes the page does not link to. When done, ask of each section whether the reader will use it today, and delete the ones they will not.
- When the page advises on someone else's document or slides, hand over an outline of which parts change their role and how, plus figures. Do not write replacement scripts, key phrases, or catchphrases; the wording belongs to the person who will say it, and drafted lines tend to replace phrasing that was fine.
- Write pages for other readers as if they do not know the user. Introduce each person once with their role and affiliation, then use that outward-facing name instead of an insider nickname or "we"; insider subjects make the page read like an internal memo.
- Never put the user's own commitments, requests to other people, or decisions they have not made into a page others will read.
Figures
Count figures before delivery. A page with no <svg> or <img> should be reconsidered once:
| Content | Figure |
| Dates, deadlines, phases | Date cards on a time axis, grouped by week or month |
| A day's timetable | One horizontal timeline with evenly spaced times and blocks sized by duration |
| Steps or stages | Left-to-right steps with arrows; undecided steps drawn dashed |
| System structure, data flow, responsibility boundaries | Boxes and arrows with a dashed boundary (required; see below) |
- Do not draw what reads better as text: a restated bullet list, a list of decided and open items, or a two-option comparison (use Before/After).
- Do not draw a figure that is really a table. For a pattern comparison, repeat the same drawing and highlight only what changes.
- About two to four figures per page. Explanatory structure diagrams do not count toward the limit of roughly five tables and five sections.
- Anything unconfirmed or inferred is drawn dashed and labeled as such inside the figure. A figure reads as certain even when the text hedges.
- A figure supports the text; do not delete the text because a figure now exists.
- Build figures and tables in the unit of the reader's question. Asked "if X is n, how many Y?", show one row or point per value of X with its Y, and keep the intermediate units of the calculation (currency, person-months) to one line of text. When the reader fixes a condition, remove the options that violate it from both the figure and the table.
- When labels in a figure overlap, keep the figure's form and move only the overlapping labels. Put labels of narrow bands outside the band and draw them after any shading; move labels that sit on a line to the side the line does not pass. Do not put dark text on a dark arrow, line, or bar; move the text off the shape or make it white. Switching to another chart type throws away what the reader already understood. Then run the label checks in render-checks.md and look at the figure.
- For architecture and data flow, a figure is mandatory, one figure per point. Each diagram needs a boundary line for who owns what, a one-line role under every product name, a label on every arrow saying what flows, and, for readers used to another platform, the equivalent they know. Do not substitute a table, ASCII art, or prose.
- Use inline SVG with a
viewBox,<text>for labels, one shared<marker>for arrows, and only the page's color tokens. Keep every shape inside theviewBox; the checker verifies this. - For a schedule that spans weeks, use the monthly calendar in layout-patterns.md, not a wide SVG timeline. A 900 px wide SVG shrinks to about 340 px on a phone, and 12 px labels end up around 5 px. A plain vertical list is not a substitute either: it keeps the order but hides weeks and weekdays.
- Do not put a
linearGradienton the stroke of a perfectly horizontal or vertical<line>: with the defaultobjectBoundingBoxunits the gradient cannot be computed for a zero-height box, and the line disappears. AddgradientUnits="userSpaceOnUse"or draw the line as a thin<rect>.
Required checks
Run the static checker on every page, including pages produced by another generator:
node skills/create-html/scripts/check-html.mjs <file.html>- It must print
OK. Read theWARNlines too; a missing figure, a long table or list, or a label-and-colon list is a warning to fix, not a pass. - Run it on the file where it will be served from. It also reports relative image paths that do not exist next to the file, which otherwise show up only as broken images after publishing.
- Name files explicitly. A shell glob that matches nothing can abort the command and look like a clean result.
- Do not edit generated HTML with regular-expression replacements. Nested tags stop non-greedy patterns early and silently unbalance the markup. Regenerate the page from its data instead.
- When reusing CSS from another page, copy only the rules, not the
<style>tags around them.
Before delivery also:
- Confirm there are no secrets, credentials, private URLs, real IP allowlists, personal data, customer names, or internal-only identifiers unless the user explicitly supplied and authorized them for this output.
- Treat
noindexand a hard-to-guess URL as discovery controls only, never as access control. - Confirm images have useful
alttext, links work, andscrollWidthdoes not exceed the viewport. - Keep the page around 1 MB or less. Reduce the number of embedded images before their resolution; images meant to be read stay full width.
If the user also asks to share or publish the result, complete the HTML first, show any generated image for review, then use the repository's sharing workflow.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

