Symptom
When `airc msg` is called with a leading `@peer` and an empty/missing message body, the error is:
```
ERROR: Usage: airc send @peer
```
This tells the user the SHAPE of correct DM usage, but doesn't address the most common reason this fires: the user wanted an in-channel @-mention, not a DM (issue #141 root cause). The maintainer just hit this acknowledging the bug-finder.
Fix sketch
Update the error message to point at both intents:
```
ERROR: '@' is interpreted as a DM target with the rest of the args as the message body.
for a DM: airc msg @ ""
for an in-channel mention: airc msg ": " (use a colon, no leading @)
```
One-line code change in `cmd_send`'s usage path. Doesn't fix the underlying #141 design tension (some users will still want IRC-style @-mentions); it just makes the recovery cheap when they hit the parse.
Why this matters
Pointer-to-recovery is the cheapest UX win class — turns a "what did I do wrong?" stall into a "ah, that's the syntax" continuation. Continuum-b741's review (2026-04-27) called this out as low-priority but a class of cheap fixes worth doing.
Out of scope for #144
Filed for next iteration; not blocking main merge.
Symptom
When `airc msg` is called with a leading `@peer` and an empty/missing message body, the error is:
```
ERROR: Usage: airc send @peer
```
This tells the user the SHAPE of correct DM usage, but doesn't address the most common reason this fires: the user wanted an in-channel @-mention, not a DM (issue #141 root cause). The maintainer just hit this acknowledging the bug-finder.
Fix sketch
Update the error message to point at both intents:
```
ERROR: '@' is interpreted as a DM target with the rest of the args as the message body.
for a DM: airc msg @ ""
for an in-channel mention: airc msg ": " (use a colon, no leading @)
```
One-line code change in `cmd_send`'s usage path. Doesn't fix the underlying #141 design tension (some users will still want IRC-style @-mentions); it just makes the recovery cheap when they hit the parse.
Why this matters
Pointer-to-recovery is the cheapest UX win class — turns a "what did I do wrong?" stall into a "ah, that's the syntax" continuation. Continuum-b741's review (2026-04-27) called this out as low-priority but a class of cheap fixes worth doing.
Out of scope for #144
Filed for next iteration; not blocking main merge.