| name | micropolis-command-bus |
| description | Routes all Micropolis UI, CLI, MCP, chat, pie menu, and LLM actions through a safe command bus with preview/proposal/approval. Use when agents need to inspect, propose, approve, reject, or dispatch Micropolis commands. |
| license | GPL-3.0 |
| tier | 2 |
| protocol | MICROPOLIS-COMMAND-BUS |
| allowed-tools | ["read_file","write_file","run_terminal_cmd"] |
| related | ["micropolis","moollm","mooco","skill","card","advertisement","action-queue","protocol","github","skill-snitch","speed-of-light","planning","simulation","constructionism"] |
| tags | ["micropolis","command-bus","mcp","llm-actions","operator-model","sveltekit","safety"] |
Micropolis Command Bus
"All roads to the simulator go through the bus."
What It Is
The Micropolis command bus is the shared operation layer for humans, UI widgets, pie menus, keyboard shortcuts, chat slash commands, MCP tools, CLI commands, and MOOLLM characters.
It is the Micropolis equivalent of Blender operators, extended with MOOLLM-style proposal, preview, approval, and audit semantics.
Invariant
All agent-controlled Micropolis actions must go through the command bus. Do not call simulator, view, window, workspace, or GitHub mutation APIs directly when a command exists or should exist.
Semantic Image Pyramid
Read in this order:
GLANCE.yml — quick activation check
CARD.yml — machine-readable interface, advertisements, methods
SKILL.md — this operational protocol
README.md — deeper human-facing rationale
Never load a lower layer without reading the layer above it first.
Files
| File | Role |
|---|
apps/micropolis/src/lib/CommandBus.ts | Core bus: commands, dispatch, preview, undo, proposals |
apps/micropolis/src/lib/micropolisCommands.ts | Micropolis command registry |
apps/micropolis/src/lib/CommandMcpService.ts | MCP-style service wrapper |
apps/micropolis/cli/bus/index.ts | Unified CLI command-bus branch |
skills/micropolis-command-bus/CARD.yml | MOOLLM card interface |
skills/micropolis-command-bus/GLANCE.yml | Tiny mipmap summary |
Command Shape
Commands are data objects:
{
id: string;
label: string;
icon?: string;
context?: string | string[];
enabled?: | ( );
: result;
?: preview;
?: undo;
?: {
: | | | ;
?: ;
?: | ( );
};
}