diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-26 07:47:03 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-26 07:47:03 -0500 |
| commit | 85fa5f6b3d52c0c18043144653aaafeeb4dcf4a3 (patch) | |
| tree | a6a2a54effe0811c4a11b4c66b165858d93558bf /.claude/rules/interaction.md | |
| parent | 35b5739e791965c837c2e715076b52d3fee9e156 (diff) | |
| download | dotemacs-85fa5f6b3d52c0c18043144653aaafeeb4dcf4a3.tar.gz dotemacs-85fa5f6b3d52c0c18043144653aaafeeb4dcf4a3.zip | |
chore(claude): sync rules and hooks with the rulesets bundle
Bring .claude/hooks/validate-el.sh and .claude/rules/interaction.md back in line with the shared bundle, and add the new keybinding-display.md rule.
Diffstat (limited to '.claude/rules/interaction.md')
| -rw-r--r-- | .claude/rules/interaction.md | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/.claude/rules/interaction.md b/.claude/rules/interaction.md index 4d9279ba..83afc45a 100644 --- a/.claude/rules/interaction.md +++ b/.claude/rules/interaction.md @@ -29,3 +29,19 @@ For multi-select decisions, say so explicitly: "Pick any combination — reply w Reserve `AskUserQuestion` only when the user explicitly asks for the popup form ("use the popup for this one") or for genuinely free-form input where numbered options don't fit. This rule applies to all three approval gates in the `commits.md` publish flow (commit message, PR description, PR review reply): print the draft inline, then offer numbered approve / changes / edit options inline. Do not switch to the popup form for the gate even though the prior protocol referenced it. + +**Enforcement:** a global `PreToolUse` hook (matcher `AskUserQuestion`) in `~/.claude/settings.json` hard-denies the popup and returns this rule as the reason — the prose alone proved too easy to forget. Because the deny is unconditional, the "use the popup for this one" exception above can't be honored in-turn; to get the popup, disable the hook via `/hooks` (or edit settings) first. + +## No Reverse-Video Highlighting in Chat Output + +In conversational output to the user, do not use Markdown bold (`**...**`) or inline-code spans (backtick `` `...` ``). The user's terminal renders both as reverse video, which is hard to read on the display. + +**Why:** The styling that looks like emphasis in most renderers comes through as inverted foreground/background here. Plain prose, plain identifiers, and plain key chords read cleanly; the "highlight" actively hurts legibility. + +**How to apply:** + +- Write command names, file paths, key chords, and code identifiers as plain text — `pearl-save-issue` becomes pearl-save-issue, `C-; L s s` becomes C-; L s s. +- Use structure that doesn't invert colors: headers, numbered lists, dashes, parentheses, and double quotes for labels are all fine. +- Fenced code blocks (triple backtick) are acceptable when the user explicitly wants a block to copy — they don't invert the way inline spans do. Default to plain text otherwise. + +This governs **chat output**, not the Markdown source of rule files, specs, or docs the user reads in an editor — those keep normal Markdown formatting. The constraint is the terminal rendering of the live conversation. |
