From Web Publishing
Enforces canonical HTML: explicit close tags, double-quoted attributes, no self-closing non-void elements. Ensures predictable AST parsing and tooling behavior.
How this skill is triggered — by the user, by Claude, or both
Slash command
/web-publish:canonical-htmlWhen to use
Любой HTML-артефакт. Это правило гигиены, а не отдельная задача.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Цель — чтобы любая дальнейшая инструментальная правка (find-replace, AST, форматтеры, патчи через WebSocket в `visual-edit`) работала предсказуемо.
Цель — чтобы любая дальнейшая инструментальная правка (find-replace, AST, форматтеры, патчи через WebSocket в visual-edit) работала предсказуемо.
<!-- плохо -->
<p>Привет
<p>Мир
<!-- хорошо -->
<p>Привет</p>
<p>Мир</p>
<p>, <li>, <dt>, <dd>, <option>, <thead>, <tbody>, <tr>, <td> — у всех implied-close. Закрывай все вручную.
<!-- плохо -->
<input type=text required>
<a href=/foo class=link>foo</a>
<!-- хорошо -->
<input type="text" required>
<a href="/foo" class="link">foo</a>
Boolean-атрибуты без значения — OK (required, disabled, hidden).
<!-- плохо -->
<div class="card" />
<span/>
<!-- хорошо -->
<div class="card"></div>
<span></span>
Self-closing валиден только в SVG/MathML и для void-элементов (<br>, <hr>, <img>, <input>, <meta>, <link>, <source>, <area>, <col>, <embed>, <wbr>).
Не обязательно, но удобно. Рекомендую:
idclassdata-*aria-*<style>/<script> без </style>/</script>Даже если пустой.
<meta charset="utf-8">
<link rel="stylesheet" href="...">
area, base, br, col, embed, hr, img, input, link, meta, source, track, wbr.
Всё остальное — открывать и закрывать парой.
</p> начинают находить настоящие пары, а не воздух.visual-edit и tweaks-persist могут патчить файл без неожиданностей.<p> перед <div> без </p> — браузер закроет p за тебя, но AST не всегда.<img /> — лишний слеш. Просто <img>.class='card' id="hero" — выбери один стиль.<a href='...'> — работает, но непоследовательно с большинством стилей.npx html-validate <file> # отловит implied-close и пр.
npx prettier --check <file> # форматирование
npx claudepluginhub jhamidun/claude-code-config-pack --plugin web-publishMines projects and conversations into a searchable memory palace. Activates on queries about MemPalace, memory palace, mining, searching, palace setup, wings, rooms, drawers, or recalling past work.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.