The visual-style rule shipped in PR #1939 + piloted in PR #1955. The commit-msg git hook already blocks emoji in commit messages (caught my own violation in PR #1955 โ the dogfood moment). This PR closes the remaining gate gaps on PR titles, PR bodies, and code comments.
| Surface | Before this PR | After this PR | Enforcement |
|---|---|---|---|
| Commit messages | โ blocked (pre-commit) | โ blocked (pre-commit) | git hook |
| PR titles | โ ungated | โ blocked (CI) | GHA workflow |
| PR bodies | โ ungated | โ vocab-only (CI) | GHA workflow |
| Code comments | โ ungated | โ warned (advisory) | PostToolUse hook |
| SKILL.md headings | โ vocab-only by convention | โ vocab-only by convention | rule doc + ascii-lint |
Public surface, hard to retroactively fix. Title emoji ban is absolute per visual-style.md. Body emoji limited to the closed 12-glyph vocabulary โ decorative glyphs (๐ ๐ โจ ๐โฆ) fail.
Bypass: visual-style-override label (mirror of
release-please-override pattern).
Lower stakes โ reviewer can catch in PR review. Aggressive blocking here would friction-bomb the dev loop. The PostToolUse hook emits a single advisory line when an Edit/Write puts a non-vocab glyph in a comment of a code file.
Bypass: none needed โ the hook never blocks.
dependabot[bot], release-please[bot],
github-actions[bot], orchestkit-release-bot[bot],
and branches matching ^(release-please|chore/cc-snapshot-|dependabot/)
all skip the CI gate. Bots produce predictable content; gating them adds zero value.
PR title: "feat: ๐ ship the auth flow"
^^ blocked โ title contains emoji
PR title: "feat: ship the auth flow"
โ clean
PR body:
## Summary
๐ Launching the rocket. Sparkles โจ everywhere.
^^ ^^ blocked โ ๐ and โจ outside vocab
PR body:
## Summary
โ
Tests pass ยท โ One regression flagged ยท ๐ Docs updated
โ all glyphs in vocab
// ๐ Yay we did it
^^ warns: ๐ outside vocab
// โ This check passes โ โ is in vocab
| File | Status | Purpose |
|---|---|---|
.github/workflows/visual-style-lint.yml | NEW | CI gate for PR title + body |
src/hooks/src/posttool/code-comment-glyph-warn.ts | NEW | Advisory hook for code comments |
src/hooks/src/entries/posttool.ts | MOD | Register the new hook |
src/hooks/hooks.json | MOD | Register + bump count 139โ140 |
src/hooks/src/__tests__/posttool/code-comment-glyph-warn.test.ts | NEW | 10 unit tests covering all paths |
CLAUDE.md | MOD | Visuals section mentions the new gate |
actionlint .github/workflows/visual-style-lint.yml โ cleannpx vitest run code-comment-glyph-warn.test.ts โ 10/10 passnpm run build โ clean (plugin counts auto-update)npm run test:security โ pendingvisual-style-override created in repo settings