cabinet¶
A cabinet is two things. It is the cupboard in the study where the tome and the instruments are kept, and it is the body of people who do the work of keeping a house in order. This repository is both.
The tome is a set of vekna rituals for pull request and issue maintenance, installed as a package and cast from any repository on GitHub or GitLab, hosted or self-hosted. A pull request left open overnight drifts: the base moves under it, CI goes red, a reviewer's questions sit unanswered. A backlog drifts too: issues pile up untyped, unsized and unlinked. The rituals do those chores, and each one is an ordinary program whose loop, branches and stopping condition are code you can read. The agent is handed one bounded piece of work at a time.
The cabinet is a Claude Code plugin marketplace of skills for the chores around a repository that are not worth a ritual: filing an issue that will still make sense in six months, cutting a release with a changelog someone can act on. They run inside the agent session you already have open.
The rituals¶
Each is filed under a school of magic, the way a spellbook is.
heal.mine,heal.pr,heal.this(Evocation): to take your pull requests as far as they go,heal.mineside by side in worktrees of their own, or with--plan-only trueto see what each needs next.merge(Transmutation): to merge the base into a conflicting branch.ci(Abjuration): to rerun, fix or cover your branch's red CI jobs.answer(Enchantment): to work through the review threads on your branch with you.review(Divination): to post the quality review on your branch.guide(Divination): to post the manual smoke test on a branch with nothing else to do.identify(Divination): when your backlog has piled up unrefined.labels,labels.heal,labels.identify(Conjuration): once, to set a project up.
Rituals has each one in full, with its flags.
The skills¶
| plugin | what it does |
|---|---|
issues |
writes, types, sizes and links issues; what identify follows |
release-bump |
cuts a release: the version, the changelog, the docs |
mkdocs-site |
sets up a MkDocs site, or upgrades one to the standard |
smoke-test |
writes the fifteen-minute manual check for a web or CLI change |
modern-python |
writes Python with the newest idioms the project's floor version allows |
Plugins has what each does, step by step.
Install¶
The tome¶
cabinet is not on PyPI; it installs from its releases into the repository that wants the rituals:
poetry add --group dev https://github.com/fancysnake/cabinet/releases/download/v<version>/cabinet-<version>-py3-none-any.whl
A pinned release means a cast tonight runs the rituals you read yesterday. Releases after 4.0.0 carry the wheel; for an older one, or a commit not yet released, install from the git source instead:
poetry add --group dev git+https://github.com/fancysnake/cabinet.git#<tag-or-sha>
Then a .vekna.toml names the rituals and tells them what the repository is:
# .vekna.toml
[rituals]
modules = ["cabinet.rituals"]
[cabinet]
forge = "github" # or "gitlab"
gate = "mise run pr-fix"
Every [cabinet] key has a default; Configuration lists
them all. With that in place:
vekna cast labels
vekna cast heal.mine
The cabinet¶
The skills come from the marketplace in this repository; Plugins has the two commands that add it and install a skill, and what each one does.
Where to go next¶
- Rituals — what each one does, its flags, and loading only some of them.
- Configuration — the
[cabinet]section, the review skill, and the remote. - Agents — what an agent may and may not do during a cast. Worth reading before the first unattended one.
- Plugins — the skills, what triggers each, and what it needs.
- Architecture — the layout, for anyone sending a patch.
- Changelog — what each release changed.