docs: add umbrella + journal READMEs
Root README orients new contributors on the build/upload/iterate loop and points at ~/dev/CLAUDE.md for maubot patterns. journal/ README covers the three commands, the SQLite schema, known quirks (edits don't re-trigger, subcommand detection scope), and documents why this plugin uses @command.passive instead of the more obvious @command.new. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
057ed0ed45
commit
b21ad2890f
2 changed files with 140 additions and 0 deletions
58
README.md
Normal file
58
README.md
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# maubot-plugins
|
||||
|
||||
Umbrella for [maubot](https://github.com/maubot/maubot) plugins used by
|
||||
the aiolabs / Château du Faune Matrix stack. The maubot daemon itself
|
||||
is provisioned via `server-deploy/modules/services/maubot.nix` on the
|
||||
castle hosts; the actual plugin code lives here.
|
||||
|
||||
## Plugins
|
||||
|
||||
| Plugin | Purpose |
|
||||
|---|---|
|
||||
| [`journal/`](./journal/) | Farm-journal bot. `!journal <text>` records what you did, scoped per-user/room/timestamp. `!journal show [@user]` and `!journal today` query back. |
|
||||
|
||||
## Building a plugin
|
||||
|
||||
A `.mbp` is just a zip containing `maubot.yaml` + the plugin's Python
|
||||
modules at the root. No special tooling needed:
|
||||
|
||||
```sh
|
||||
cd <plugin>/
|
||||
zip -j ../<plugin>.mbp maubot.yaml *.py
|
||||
```
|
||||
|
||||
(`-j` strips the directory prefix so files land at the zip root.)
|
||||
|
||||
## Uploading / iterating
|
||||
|
||||
1. Open the maubot UI (e.g. `https://maubot.<domain>/_matrix/maubot/`).
|
||||
2. **Plugins → +** (first time) or click the existing plugin → upload
|
||||
the new `.mbp`. Maubot keys plugins by `id`; uploading a new
|
||||
`version` of the same `id` replaces the old one.
|
||||
3. **Hit Save** on the affected instance after upload — toggling
|
||||
Enabled without Save will revert. Easy facepalm.
|
||||
|
||||
Bump `version:` in `maubot.yaml` for every meaningful change so the
|
||||
maubot UI surfaces it cleanly and old `.mbp` files in
|
||||
`/var/lib/maubot/plugins/` aren't ambiguous.
|
||||
|
||||
## Bot account convention
|
||||
|
||||
Each plugin attaches to a Matrix client (a regular Matrix user account
|
||||
controlled by maubot). For the journal bot: `@journalbot:ariege.io`.
|
||||
Bot accounts are created the same way as any user — issue a
|
||||
registration token from the Continuwuity admin room
|
||||
(`!admin token issue --once`) and register through Element, then add
|
||||
the client in the maubot UI.
|
||||
|
||||
Invite the bot to whichever rooms it should serve via `/invite
|
||||
@<bot>:<domain>` — maubot's autojoin handles new invites that arrive
|
||||
after the client's sync loop is up.
|
||||
|
||||
## Patterns + gotchas
|
||||
|
||||
Maubot-specific patterns (command decorators, multi-line caveats,
|
||||
`database_type` in `maubot.yaml`, etc.) live in `~/dev/CLAUDE.md`
|
||||
under "Maubot plugin development". Read that before writing a new
|
||||
plugin — there are several footguns that look fine but silently lose
|
||||
data.
|
||||
Loading…
Add table
Add a link
Reference in a new issue