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-publishGuides reception of code review feedback: verify before implementing, avoid performative agreement, push back with technical reasoning when needed.
Manages brand identity, voice, visual assets, and messaging frameworks. Automates sync to design tokens and validates asset naming, size, and format.