<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/docs/specs/messenger-unification-spec.org, branch main</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-06-16T18:36:55+00:00</updated>
<entry>
<title>docs(messenger): add the per-app keybinding alphabet to the unification spec</title>
<updated>2026-06-16T18:36:55+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-16T18:36:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=43872c7c20e64098ee19a05727e651be6955b9a1'/>
<id>urn:sha1:43872c7c20e64098ee19a05727e651be6955b9a1</id>
<content type='text'>
I added a "Global Prefix Keybinding Alphabet" section to the messenger-unification spec. The per-app C-; prefix is a third keybinding surface, separate from the in-buffer chords (C-c C-c / C-c C-k / C-c C-a) and decision 6's cross-app verbs. Today the action leaf under each app is ad hoc: the same key means different things in Slack, Signal, Telega, and ERC. The section spells out the canonical actions, shows the inconsistency as a matrix, and proposes one leaf alphabet across all four, with the core seven verbs as the unifiable floor and the richer verbs as optional per-backend extensions.

I also added a smoke-first parity note to Phase 1 (build the controllable signel replacement to the capability floor, not its ceiling) and promoted the todo task to [#A] "Unify Signel and All Messengers into one UX" with a direct link to the spec.
</content>
</entry>
<entry>
<title>docs: move specs to docs/specs/ with lifecycle-status filenames</title>
<updated>2026-06-15T15:24:40+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-15T15:24:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=45e0f6e896b2c34de25d5c3aa18474c79d6a1e72'/>
<id>urn:sha1:45e0f6e896b2c34de25d5c3aa18474c79d6a1e72</id>
<content type='text'>
Separate the 27 formal specs from working notes. Specs move to docs/specs/, notes stay in docs/design/. Each spec carries its lifecycle in the filename (-spec, -spec-doing, -spec-implemented, -spec-superseded) plus an authoritative ID and STATUS property drawer. The status came from checking each spec against the code, not the doc's own field: 6 implemented, 8 in progress, 12 not started, 1 superseded.

Inbound links become org-id links so future status renames don't break them; code-comment paths repoint to docs/specs/. Working notes, inventories, reviews, and brainstorms stay in docs/design/.
</content>
</entry>
</feed>
