🜏 RoT DtD Commander

Commands that carry their own grammar, and a doctor that reads it

131 Claude Code slash commands, 22 skills and 5 agents whose answer grammar, verdicts, laws and trust boundary are declared in a DTD inside each file; a guided NPX installer; the Adiutor, a Stop hook that checks every answer against the DOCTYPE that produced it; and the Commander-Adiutor, a monitor that hands every failed answer to the session as the ledger closes it

Ko-fi Nova-Violet Role License

Checker Contract Controls Listed on ClaudePluginHub Claude Code REUSE


👋 Welcome

📜 About

🚀 Install

npx github:Nova-Violet-Role/RoT-DtD-Commander install

The installer is guided: it asks for the target (user-wide ~/.claude by default, or the project's ./.claude), lists what it will write, prints exactly what the Adiutor hooks do and where the settings.json backup goes, and waits for a y. Add --yes for a non-interactive install that prints the same statement and proceeds. The install arms nothing and starts no monitor: the Adiutor runs when you run it (rdc doctor, rdc controls, /RoT-DtD-Commander-Adiutor) and the monitor when you run rdc watch, each under a 300 second ceiling. rdc install --arm or rdc arm registers the hooks deliberately, with the Stop hook at 300 seconds.

As a plugin, from inside Claude Code (the plugin arms no hook and starts no monitor; both run by hand):

/plugin marketplace add Nova-Violet-Role/RoT-DtD-Commander
/plugin install rot-dtd-commander@rot-dtd-commander

From a clone:

git clone https://github.com/Nova-Violet-Role/RoT-DtD-Commander
cd RoT-DtD-Commander
node bin/rot-dtd-commander.mjs install      # or: npx . install

🔧 Requirements

Node 20 or later. Nothing else is required: the fourteen checker rules, the contract audit and the Adiutor run on Node alone.

⚙️ Configuration

variable values effect
ROT_DTD_ADIUTOR off, warn (default), strict warn: a failed answer gets a ledger line and a one-line system message. strict: the Stop is blocked once per run with the prescription as the reason; the second Stop always passes. off: ledger only.
ROT_DTD_STATE a directory where the ledger and open runs live (default ~/.claude/rot-dtd-commander)

Reverse everything: rdc uninstall removes every file in the manifest (the monitor plugin among them) and disarms the hooks; rdc disarm removes only the hooks.


🕹️ Usage

131 commands, in the families the command index lists, every one opening with its DOCTYPE and closing with its laws.

The index below is generated from the resolved tree by checker/readme-index.mjs and the gate refuses a README whose index disagrees with the files. It is the one part of this page that stays open; every other section is folded behind its heading.

131 commands in 14 families, 22 skills, 5 agents. Every family opens below; the rest of this page is folded.

This index is generated by node checker/readme-index.mjs from the resolved tree; --check in the gate refuses a README that disagrees with it. 131 commands in 14 families, 22 skills, 5 agents.

Thinking models Research Asking and deciding The Phantom Books shelf The RoT MoE lenses Creators Prompt creators, one per schematic File types and dorks Tasks Repository Audits, in the foreground Codebase growth The lists Workflow and the Adiutor

📖 The full glossary

The index above says what exists. This says how to use it: every command, skill and agent with the exact call you type, the arguments it takes, and the number of laws its answer inherits. It is generated from the resolved tree by checker/glossary.mjs and the gate refuses a glossary that disagrees with the files, so it cannot drift.

The same data is also published as docs/glossary.xhtml with live search and family filters — one self-contained file, no CDN and no network, valid XHTML 1.1 so any validator that reads a DTD can judge the reference page of a project about declared grammars.

Every family opens as a plate under Usage above, each entry with the exact call and what it does. The names complete themselves as you type them in the agent, so the plate is the reference and the terminal is the copy surface.

For search and filters across all 158 entries at once, open docs/glossary.xhtml.

Fourteen families, in the order the index lists them. The catalogue above carries every name and what it does; this says what each group is for, and the moment you would reach for it.

Thinking models — twelve classical decision frames, each rendered as a grammar rather than a prompt: a Pareto answer must name its vital few and its trivial many, a five-whys answer must reach a cause it can act on. Reach for one when you already know the shape of the thinking you want and would rather not improvise its structure. Two of them reason with identifiers, so an assumption and the conclusion standing on it can be traced back to each other.

Research — nine commands that gather evidence and save a dated report under artifacts/research/. They share one grammar: a strategic summary first, named sections in a fixed order, and every claim marked measured, reasoned or guessed, where measured requires something this session actually ran or read. Reach for these when the answer must survive being re-read next month.

Asking and deciding — eight commands that gather requirements before doing the work, through a declared state machine rather than an improvised conversation: bounded rounds, bounded re-entries, and a gate that terminates by declaration instead of by your patience. Reach for one when the task has more than one reasonable reading and guessing wrong is expensive.

The Phantom Books shelf — twenty commands, each drawing one structure from one book, plus a router that matches a problem to the shelf. These are the unusual instruments: enumerate a finite space and verify the index both ways, size a search before running it, track taint through a codebase, hold four positions at once instead of two. Reach for the shelf when the ordinary frames have already been tried and returned something bland.

The RoT MoE lenses — ten commands, one per lens, each committed to a single way of seeing and forbidden from averaging into the others. Their value is the unblended range: where two lenses genuinely disagree is usually where the decision actually lives. Reach for them when consensus arrived too easily.

Creators — thirteen commands that write Claude Code artifacts: plugins, hooks, subagents, skills, slash commands, monitors, MCP servers. Each one gates before it writes, and each produces a file whose grammar the checker can verify. Reach for a creator instead of a blank file when you want the result to pass rdc check on the first run.

Prompt creators, one per schematic — seventeen commands covering eight prompt schematics (callout, heredoc, YAML, NestedText, XML, polyglot, alarm, polyalarm), each in a plain and a meta form, with routers that choose for you. The schematic is the decision: it determines how a prompt survives being pasted somewhere that reformats it. Reach for the router when you do not yet know which container the prompt has to live in.

File types and dorks — eleven commands. The file-type creators generate a schematic-shaped file for a named format; the dorks build search expressions, one family for the open web and one for a local tree. Reach for a dork when the hard part is the query rather than the reading.

Tasks — five commands for work that outlives one session: create a task, audit a set of them, compose a workflow, run one, hand one off. Reach for these when the thing you are doing will be picked up by someone else, or by you after enough time to have forgotten it.

Repository — three commands that operate on a repository as a whole rather than on a file: its git surface, its history, its scalar properties. Reach for them when the question is about the project, not about the code in front of you.

Audits, in the foreground — four commands that judge an existing artifact against the contract it claims: a skill, a slash command, a subagent, or prose against the AI-slop gate. They run in front of you and report; they do not rewrite. Reach for an audit before shipping something you did not write.

Codebase growth — three commands on one fifteen-verb ladder: amplify for the lower rungs, enhance for the middle, overhaul for the top. What they record is what sets this project's version number, because the release class is computed from the highest verb a pass kept rather than typed by hand. Reach for them when a release is due and the question is what the work actually amounted to.

The lists — eight commands maintaining per-repository white, grey and black lists of file classes and code classes, plus the starlist of tools the harness may reach. A grey entry does not forbid anything; it obliges the asking of a declared question and records the answer with a date. Reach for these when a convention keeps being re-litigated and should instead be written down where a checker can read it.

Workflow and the Adiutor — eight commands around the doctor: run it, arm it, read its ledger, compose the workflows it judges. The Adiutor is a Stop hook that checks a finished answer against the DOCTYPE that produced it. Since 5.0.0 it is not armed by default, so it runs when you run it. Reach for this family when you want the grammar enforced rather than merely declared.


✅ What is claimed, and the instrument behind each claim

If one of these does not re-run for you, open the issue form "A claim in our docs is false". It is the most welcome report there is.

🎓 Verify it yourself

🤝 Contributing

🏛️ Where this sits in the organisation

Nova-Violet Role builds convergent

☕ Supporting a non-profit

Ko-fi buys time, never priority. Proving a

📄 Licence