What I do
I am the zen router. I do not orchestrate (that's CLAUDE-meta-mesa). I classify and select.
Given an intent, I evaluate it against 9 orthogonal axes and produce a routing decision:
| Axis |
Question |
Options |
| 1. organ |
Which federation organ owns this? |
arifos, aforge, arifflow, geox, wealth, well, hermes, fed, none |
| 2. action |
What kind of work? |
observe, reason, plan, judge, execute, verify, seal, route, memory |
| 3. mode |
Read or write? |
read, write, mutate, irreversible |
| 4. tier |
How expensive? |
free (FLAME/hermes), cheap (token-plan), medium (direct), heavy (apex), forbidden |
| 5. layer |
What layer of the stack? |
earth, governed, free, constitutional, kernel |
| 6. surface |
Which tool surface? |
filesystem, shell, MCP, plugin, federation, web, native |
| 7. scope |
Federation or local? |
local, project, federation, sovereign |
| 8. time |
Latency tolerance? |
realtime, batch, async, anytime |
| 9. reversibility |
Can this be undone? |
reversible, soft-irreversible, irreversible |
Rule: the answer to all 9 axes defines the tool. If any axis is ambiguous, fall back to the highest-power tool that satisfies all 9, then degrade one axis at a time.
When to use me
Load me when:
- You have two or more equally-valid tools and need to pick.
- You want to route by intent, not by tool name.
- You're at a branching decision and want to make the call explicit.
- You want to document your reasoning for an audit trail.
Do NOT load me for:
- Trivial choices (one obvious tool).
- Missions (use
CLAUDE-meta-mesa instead).
Decision table (excerpt for Claude Code)
| Intent |
organ |
action |
tier |
layer |
surface |
reversible |
| "Read VAULT999 seal chain" |
arifos |
observe |
free |
constitutional |
mcp |
yes |
| "Run pytest on /root/A-FORGE" |
aforge |
execute |
medium |
governed |
mcp |
yes |
| "Add memory of fact X" |
hindsight |
memory |
free |
memory |
mcp |
yes |
| "Build new MCP server" |
aforge |
execute |
heavy |
governed |
mcp |
yes |
| "Drop Postgres table" |
aforge |
execute |
forbidden |
governed |
mcp |
NO → 888_HOLD |
| "Search the web" |
brave-search |
observe |
free |
free |
mcp |
yes |
| "Draft new SKILL.md" |
aforge |
execute |
medium |
governed |
filesystem |
yes |
| "Seal a verdict" |
arifos |
seal |
heavy |
constitutional |
mcp |
NO (Lane A) |
| "Browser screenshot" |
playwright |
observe |
medium |
governed |
mcp |
yes |
| "GitHub PR review" |
github |
observe |
medium |
web |
mcp |
yes |
Routing examples
intent: "Audit drift in geox-basin skill"
axes:
organ: geox # domain tool
action: observe # reading, not writing
tier: cheap # qwen-token-plan
layer: governed
surface: mcp
scope: project
reversibility: full
tool: geox_geox_basin(mode="profile", basin_name="...")
intent: "Mutate forge_work/2026-08-26-x.md"
axes:
organ: aforge # governed execution
action: execute # mutation
tier: heavy # apex decision
layer: governed
surface: filesystem
scope: project
reversibility: full
sequence:
- forge_lock(mode="acquire")
- forge_filesystem(mode="write", content=...)
- forge_entropy_sweep(path="forge_work/")
- forge_lock(mode="release")
- arif_seal(mode="receipt") # Lane B
Anti-patterns
- Asking "which tool should I use?" without answering the 9 axes
- Routing everything to the apex (heavy) when free suffices
- Skipping reversibility check before mutation
- Adding deny rules, MCP gating, or "safety theatre" — full access is sovereign default
- Routing through a layer you don't understand
Routing theorem
The cheapest tool that satisfies all 9 axes is the right tool.
If two tools satisfy all 9, pick the one with the lower tier.
If no tool satisfies all 9, the closest match wins; flag the missing axis as an open question.
DITEMPA BUKAN DIBERI ⚒️
1---2name: claude-zen-router3description: Orthogonal axis routing for Claude Code (FI-002). Given an intent, classify it across 9 orthogonal axes (organ, action, mode, tier, layer, surface, scope, time, reversibility) and route to the right organ MCP server. Load when you must pick between equally-valid tools.4---56## What I do78I am the **zen router**. I do not orchestrate (that's `CLAUDE-meta-mesa`). I **classify and select**.910Given an intent, I evaluate it against **9 orthogonal axes** and produce a routing decision:1112| Axis | Question | Options |13|------|----------|---------|14| 1. **organ** | Which federation organ owns this? | arifos, aforge, arifflow, geox, wealth, well, hermes, fed, none |15| 2. **action** | What kind of work? | observe, reason, plan, judge, execute, verify, seal, route, memory |16| 3. **mode** | Read or write? | read, write, mutate, irreversible |17| 4. **tier** | How expensive? | free (FLAME/hermes), cheap (token-plan), medium (direct), heavy (apex), forbidden |18| 5. **layer** | What layer of the stack? | earth, governed, free, constitutional, kernel |19| 6. **surface** | Which tool surface? | filesystem, shell, MCP, plugin, federation, web, native |20| 7. **scope** | Federation or local? | local, project, federation, sovereign |21| 8. **time** | Latency tolerance? | realtime, batch, async, anytime |22| 9. **reversibility** | Can this be undone? | reversible, soft-irreversible, irreversible |2324**Rule:** the answer to all 9 axes defines the tool. If any axis is ambiguous, fall back to the highest-power tool that satisfies all 9, then degrade one axis at a time.2526## When to use me2728Load me when:2930- You have **two or more equally-valid tools** and need to pick.31- You want to **route by intent**, not by tool name.32- You're at a **branching decision** and want to make the call explicit.33- You want to **document your reasoning** for an audit trail.3435Do NOT load me for:3637- Trivial choices (one obvious tool).38- Missions (use `CLAUDE-meta-mesa` instead).3940## Decision table (excerpt for Claude Code)4142| Intent | organ | action | tier | layer | surface | reversible |43|--------|-------|--------|------|-------|---------|------------|44| "Read VAULT999 seal chain" | arifos | observe | free | constitutional | mcp | yes |45| "Run pytest on /root/A-FORGE" | aforge | execute | medium | governed | mcp | yes |46| "Add memory of fact X" | hindsight | memory | free | memory | mcp | yes |47| "Build new MCP server" | aforge | execute | heavy | governed | mcp | yes |48| "Drop Postgres table" | aforge | execute | forbidden | governed | mcp | NO → 888_HOLD |49| "Search the web" | brave-search | observe | free | free | mcp | yes |50| "Draft new SKILL.md" | aforge | execute | medium | governed | filesystem | yes |51| "Seal a verdict" | arifos | seal | heavy | constitutional | mcp | NO (Lane A) |52| "Browser screenshot" | playwright | observe | medium | governed | mcp | yes |53| "GitHub PR review" | github | observe | medium | web | mcp | yes |5455## Routing examples5657```yaml58intent: "Audit drift in geox-basin skill"59axes:60 organ: geox # domain tool61 action: observe # reading, not writing62 tier: cheap # qwen-token-plan63 layer: governed64 surface: mcp65 scope: project66 reversibility: full67tool: geox_geox_basin(mode="profile", basin_name="...")68```6970```yaml71intent: "Mutate forge_work/2026-08-26-x.md"72axes:73 organ: aforge # governed execution74 action: execute # mutation75 tier: heavy # apex decision76 layer: governed77 surface: filesystem78 scope: project79 reversibility: full80sequence:81 - forge_lock(mode="acquire")82 - forge_filesystem(mode="write", content=...)83 - forge_entropy_sweep(path="forge_work/")84 - forge_lock(mode="release")85 - arif_seal(mode="receipt") # Lane B86```8788## Anti-patterns8990- Asking "which tool should I use?" without answering the 9 axes91- Routing everything to the apex (heavy) when free suffices92- Skipping reversibility check before mutation93- Adding deny rules, MCP gating, or "safety theatre" — full access is sovereign default94- Routing through a layer you don't understand9596## Routing theorem9798> **The cheapest tool that satisfies all 9 axes is the right tool.**99100If two tools satisfy all 9, pick the one with the lower tier.101If no tool satisfies all 9, the closest match wins; flag the missing axis as an open question.102103DITEMPA BUKAN DIBERI ⚒️