docs(readme): meet the repo-standard gate — matching opening line, non-goals, changelog link

The gate (repo-standard v0.1.1) reported 3 ERROR against this repo:

- README-DESC: the first line after the H1 was the `coord` rename note, not
  the forge description. That line is the only place a machine can check
  description == catalog == README from inside the repo, so it now carries the
  forge description verbatim (179 codepoints, unchanged upstream) and the
  rename note moves one paragraph down.
- HEADING-MISSING `## Non-goals`: added. It answers "is this for me?" — not a
  state store, not a network protocol, not an issue tracker, not a
  conversation, the board never writes, and no CI.
- HEADING-MISSING `## Changelog`: added as a link to CHANGELOG.md.

The one remaining finding is a WARN on the `Selftest checks` badge and it
stands deliberately: the badge counts the checks in the suite, it does not
assert a passing run, and the gate's own escape hatch is to link the badge to
a real run — there is no runner to link to. The honest substitute the standard
asks for is now stated in Non-goals and in Development.

README only; no code path touched. 398/398 selftest checks still pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015bWgoaf46fu6DagYQyDVR5
This commit is contained in:
Kjell Tore Guttormsen 2026-08-03 21:55:20 +02:00
commit cbcd236050

View file

@ -1,8 +1,10 @@
# repo-mailbox
> Formerly `coord` (renamed in v0.3.0). The plugin is now `repo-mailbox`; the CLI (`coord-send`, `coord-inbox`, `coord-done`), the mailbox root `~/.claude/coord/` and `CLAUDE_COORD_DIR` keep their names — they are the transport protocol, not the product.
Local mailbox for coordination between Claude Code sessions in different repos — directed messages and broadcasts injected as context at session start. Local, private, no network.
> A local mailbox for coordination between Claude Code sessions in different repositories. Session A in repo X leaves a message for repo Y; the next session in repo Y gets it injected as context at startup. Local, private, no network, no SaaS.
Session A in repo X leaves a message for repo Y; the next session in repo Y gets it injected as context at startup. It is for anyone running an AI coding agent across several repositories on one machine, where a decision in one repo has to reach the next session in another. No server, no daemon, no accounts.
> Formerly `coord` (renamed in v0.3.0). The plugin is now `repo-mailbox`; the CLI (`coord-send`, `coord-inbox`, `coord-done`), the mailbox root `~/.claude/coord/` and `CLAUDE_COORD_DIR` keep their names — they are the transport protocol, not the product.
> **Solo-maintained, fork-and-own.** This plugin is a starting point, not a vendor product. Issues are welcome as signals; pull requests are not accepted. See the [marketplace governance](https://git.fromaitochitta.com/open/ktg-plugin-marketplace/src/branch/main/GOVERNANCE.md) for the full model.
@ -26,6 +28,15 @@ repo-mailbox is that channel, reduced to the simplest thing that works: a direct
**Transport, not state.** A coord message is a notice, not a source of truth. The durable record of any decision lives in the owning repo (its docs, its git history). Messages point at that record; they never replace it.
## Non-goals
- **Not a state store.** A message is a notice pointing at a decision, never the decision itself. If a file here starts acting as some repo's state-of-play, it belongs in that repo.
- **Not a network protocol.** Everything is files under your `$HOME`. There is no server, no daemon, no sync — two machines do not share a mailbox, and nothing here is reachable from outside the host.
- **Not an issue tracker.** No assignees, priorities, due dates or workflow states. A message has a sender, a recipient, a subject, a body, and one bit saying whether a reply is expected.
- **Not a conversation.** `--reply-to` routes a reply and closes the original, but nothing in the message format records a thread — there is no reply-to field on a received message, which is why a repo's board line, not the mailbox, says who it is waiting on.
- **The board never writes.** `board.sh` reads `STATE.md`, `git status` and mailbox counts, and writes to no repo, no `STATE.md` and no mailbox. Driving a terminal from its day plan deliberately lives outside this repo.
- **No CI.** Nothing runs the selftests automatically; the forge has no runner. The substitute is one command from a clean clone — see [Development](#development).
## How It Works
Mailbox layout (default `~/.claude/coord/`, override with `CLAUDE_COORD_DIR`):
@ -166,6 +177,10 @@ is not mistaken for a working invocation. The hook discards stderr, so the
warning is visible in manual CLI use only. `coord-send.sh` rejects unknown
arguments outright.
## Changelog
See [CHANGELOG.md](CHANGELOG.md).
## License
MIT — see [LICENSE](LICENSE).