Command Router
Owner: orchestrator
Consumers: Codex sessions only. Claude Code uses commands/ as native slash commands.
Boundary
Codex plugin manifests do not expose Claude Code-style commands/ as native slash commands. Treat this skill as a compatibility shim:
- Improve model-side dispatch for Maigo-shaped input.
- Keep
commands/*.mdas the single source of truth; do not copy command behavior here. - Do not promise slash-command autocomplete, command palette entries, or platform-level interception.
- Prefer
maigo:<name> ...in Codex. A leading/maigo:*may be intercepted before it reaches the model.
Dispatch
Accept all of these forms:
maigo:<name> [arguments...]/maigo:<name> [arguments...]when it reaches the model- Natural language clearly asking to run a Maigo command
For every recognized command:
- Read
../orchestrator-voice/SKILL.mdcompletely. - Read
../narration/SKILL.mdcompletely. - Read
../../commands/<name>.mdcompletely. - Execute the command workflow with the remaining text as its argument string.
- Read every additional skill or agent file required by that command before applying it.
Resolve Maigo-local references from the plugin root:
skills/<skill>/SKILL.md->../<skill>/SKILL.mdfrom this skill directory.agents/<agent>.md->../../agents/<agent>.md.commands/<command>.md->../../commands/<command>.md.${CLAUDE_PLUGIN_ROOT}-> the plugin root two directories above this skill.
Known commands:
| Input | Command source |
|---|---|
maigo:address-comments |
commands/address-comments.md |
maigo:board |
commands/board.md |
maigo:crystallize |
commands/crystallize.md |
maigo:describe-pr |
commands/describe-pr.md |
maigo:doctor |
commands/doctor.md |
maigo:go |
commands/go.md |
maigo:memory |
commands/memory.md |
maigo:quick |
commands/quick.md |
maigo:remember |
commands/remember.md |
maigo:repo-audit |
commands/repo-audit.md |
maigo:retro |
commands/retro.md |
maigo:review |
commands/review.md |
maigo:take-issue |
commands/take-issue.md |
maigo:team |
commands/team.md |
maigo:triage-issue |
commands/triage-issue.md |
If ../../commands/<name>.md does not exist, state that the command is not implemented and stop. Do not invent behavior.
Codex compatibility
Translate Claude Code concepts without changing the workflow's intent:
- Ignore
allowed-toolsfrontmatter as a permission declaration; use the tools actually exposed by the current Codex session. - Map
AskUserQuestionto structured user input when available. Otherwise ask one concise plain-text question and wait. - Map explicit agent or
Taskdelegation to Codex sub-agents when collaboration tools are available. If unavailable, execute the named roles sequentially in the main agent and disclose the fallback. - Use Codex planning tools for command-level plans when available, while preserving
.maigo/*.mdartifacts required by the command. - Use patch-based file editing and the current shell/tooling policies rather than Claude-specific Read, Write, Edit, or Bash tool names.
- Claude Code lifecycle hooks are not installed by the Codex manifest. Run the command's required review and verification steps explicitly; never claim that TeammateIdle or Stop hooks enforced completion.
- If a command needs to write outside the active workspace, request the required approval instead of silently skipping the write.
Poor command UX
When the user reports that a Maigo entry is not behaving like a native slash command:
- Acknowledge the limitation directly.
- Recommend
maigo:<name>or a natural-language request instead of starting with/maigo:*. - Explain that this router improves model-side dispatch only; native slash-command UX requires Codex platform support.