Skip to content

[RFC] Matrix Coder Plugin — OMC-style specialist agent bundle for Hermes #76

Description

@Interstellar-code

Matrix Coder Plugin — Specialist agent bundle for Hermes (inspired by OMC + OMX + OmO)

Context

This is a feature request, not a bug — proposing a new plugin in ~/.hermes/hermes-agent/plugins/matrix_coder/.

Clarified intent: Matrix Coder is not a fleet, workflow-engine, or Kanban feature. It should not be framed as an adjunct to those systems. Matrix Coder is a plugin that enables the Hermes agent itself to become a specialist coder: a coding-focused plugin harness with specialist personas, dedicated skills, efficient helper scripts, and deep awareness of Hermes' existing coding capabilities.

The core driving point is that Matrix Coder should make Hermes better at coding-related work by combining four layers inside one plugin:

  1. Specialist agent prompts / personas — carefully written role prompts that turn a normal Hermes agent into a better security reviewer, code reviewer, debugger, verifier, simplifier, test engineer, API reviewer, dependency reviewer, architect, or explorer. The premise is simple: when an agent is given a precise specialist persona and operating contract, its coding output becomes more focused, more reliable, and easier to evaluate.
  2. Dedicated Matrix Coder skills — a rich skill library inspired by OMC, OMX, and OmO. These skills are the right hand of the plugin: reusable procedures, rubrics, review protocols, evidence standards, output contracts, and coding workflows that specialist personas can load and apply consistently.
  3. Built-in helper scripts — small, dedicated scripts that let Matrix Coder automate repetitive or precision-sensitive coding work efficiently instead of making the model manually rederive everything. Examples may include evidence collection, file/module summarization, line-reference extraction, dependency inspection, test discovery, static checks, report formatting, or other deterministic support tasks.
  4. The Matrix Coder plugin harness — the Python plugin layer that understands Hermes agent capabilities and coordinates the personas, skills, scripts, and existing Hermes tools. When Hermes runs a coding task, this harness should complement the main agent, use Hermes features effectively, and provide an outstanding coding-focused result without turning into an unrelated orchestration system.

The goal is to give Hermes a coherent specialist-coding system inside one plugin: security review, code review, simplification, API review, performance review, dependency review, debugging, testing, verification, and codebase exploration can all share one consistent specialist harness instead of living as disconnected prompts or ad-hoc inline instructions.

Today, when a Hermes user wants the OMC-equivalent of /security-reviewer src/auth/, they have to do it inline in the parent session or manually load scattered instructions. That works, but it does not feel like a coherent specialist coding system.

This plugin fills that gap by porting the OMC + OMX + OmO pattern — specialist coding personas, reusable skills, efficient helper automation, and shared coding conventions — into Hermes as a first-class plugin.

Core Architecture: Four Complementary Layers

Matrix Coder should be designed as a specialist-coder harness, not as a single prompt or a loose folder of skills. The plugin should combine four complementary layers:

Layer Purpose Expected contribution
Specialist personas / prompts Give Hermes a precise expert identity and operating contract for each coding task. Better reasoning discipline, clearer scope, more consistent outputs.
Dedicated skills Provide reusable procedures, rubrics, checklists, evidence rules, and output formats. Repeatable specialist behavior across reviews, debugging, tests, and refactors.
Built-in scripts Automate deterministic support work that models should not manually approximate. Faster evidence gathering, fewer line-reference mistakes, better report quality.
Plugin harness Coordinate personas, skills, scripts, and Hermes-native tools. A coherent coding system that complements Hermes instead of replacing it.

The plugin harness should understand what Hermes already provides: file/search/terminal tools, skills, plugin hooks/tools, subagent delegation, provider/model configuration, existing safety gates, and the broader agent loop. Matrix Coder should use those capabilities deliberately so coding tasks feel sharper, more reliable, and more specialized than ordinary inline prompting.

Inspiration: Three Sources Studied

Source 1 — OMC (oh-my-claudecode)

oh-my-claudecode (35,447 stars, MIT, daily commits) ships 19 specialist agent prompts that share:

  • A common severity rubric (CRITICAL/HIGH/MEDIUM/LOW)
  • A common investigation protocol (scope → investigate → verify → report)
  • A common output format (findings table with file:line, severity, confidence, fix)
  • A common failure-mode catalog (style-first review, missing evidence, severity inflation)
  • A team staged pipeline (plan → prd → exec → verify → fix) for multi-specialist flows
  • A two-lane review pattern (code-reviewer + architect in parallel) for depth
  • A persistence loop (Ralph) for iterative fix cycles
  • A discovery-before-filtering methodology that separates investigation from verdict

Source 2 — OMX (oh-my-codex)

oh-my-codex (MIT, same author as OMC) is the Codex CLI equivalent, with improvements:

10 agents unique to OMX: api-reviewer (API contracts, backward compat), performance-reviewer (hotspots, N+1, complexity), quality-reviewer (logic defects, SOLID, anti-patterns), dependency-expert (CVE check, license audit), quality-strategist (release readiness gates), explore-harness (codebase investigation), information-architect, product-analyst, product-manager, and prometheus-strict (triple-critique adversarial review: collector → adversary → synthesizer).

Structural improvements from OMX:

  1. XML-tagged prompt structure<identity> / <constraints> / <explore> / <execution_loop> / <success_criteria> / <verification_loop> / <style> / <output_contract>. Survives context compaction better than freeform markdown.
  2. Boundary tables — Each agent has explicit "You Own vs Others Own" table preventing scope creep in multi-agent dispatch.
  3. Deprecation pattern — Hard-deprecated standalone skills. Single routing node ($code-review) dispatches to review lanes; sub-skills not meant for direct invocation.

Source 3 — OmO (oh-my-openagent)

oh-my-openagent (60,487 stars, SUL-1.0, daily active, default branch dev, formerly oh-my-opencode) is a multi-harness agent OS — the most architecturally sophisticated of the three. Published as npm oh-my-opencode (dual-published as oh-my-openagent during rename transition). Maintained by Jobdori, an AI assistant on a heavily customized OpenClaw fork.

OmO is fundamentally different from OMC/OMX in two ways:

A. It's not just prompts — it's a full runtime plugin.
OMC and OMX are static SKILL.md files loaded by an agent. OmO is a TypeScript plugin with 54-61 lifecycle hooks, 20-39 tools (config-gated), 5 built-in MCPs, Team Mode with 8 parallel members, and a custom CLI (bunx omo install).

B. Dynamic agent prompt composition at runtime.
Instead of loading a static SKILL.md for each specialist, OmO builds agent prompts dynamically by composing typed sections at runtime via the dynamic-agent-prompt-builder.ts system. The builder assembles:

  • Identity section (who the agent is)
  • Delegation table (what categories/skills exist)
  • Tool selection table (what tools are available)
  • Policy sections (ultrawork instructions, anti-patterns, hard blocks)
  • Core sections (explore, librarian, oracle, parallel delegation, category-skills guide)
  • Per-provider variants (Anthropic, OpenAI, Google, Kimi categories)

This produces model-optimized prompts — the same logical agent gets different context depending on whether it's running on Opus, GPT-5.5, Kimi K2.6, or Gemini.

Key Concepts from OmO

Concept What it does Relevance to Matrix Coder
11 Agents Sisyphus (orchestrator), Hephaestus (deep worker), Prometheus (planner), Oracle, Librarian, Explore, Atlas, Metis, Momus, Multimodal-Looker, Sisyphus-Junior Shows what a mature agent catalog looks like — not just reviewers but researchers, planners, and critics
Category-Based Model Routing Agent says visual-engineering / deep / quick / ultrabrain; system picks the right model per provider Far more flexible than fixed model-per-agent — could adopt for Hermes dispatch
Team Mode Lead + up to 8 parallel members via team_* tools, tmux visualization, hyperplan (5 hostile critics), security-research (3 hunters + 2 PoC engineers) A richer multi-agent parallel pattern than OMC's sequential team pipeline
IntentGate Classifies user intent (ultrawork/search/analyze/team) before dispatching Could replace or augment the meta-skill routing decision tree
Hashline Edit LINE#ID content hashes validate every edit — zero stale-line errors Useful for the simplify-slop and debug-isolate specialists
Package Layering Core → MCP → Skills → Adapters → Platform → Web. Pure TypeScript core extracted for multi-harness reuse The right architecture for Matrix Coder's shared _lib/ — avoid duplication across specialist files
Ulw Loop / Ralph Loop Self-referential loop with evidence audit, backed by .omo/ulw-loop/. Doesn't stop until 100% done. A pattern for the "fix loop" phase — specialist identifies issue, loop prevents unblocking until fixed
OpenClaw Bidirectional external integration — Discord/Telegram/HTTP/shell Shows how OmO extends beyond CLI into chat platforms, which Matrix Coder could do via Hermes gateway

Proposed Plugin: matrix_coder

Name rationale: "Matrix" = a structured array of specialist roles. Coder = the work domain. This plugin is the specialist coder layer: a plugin harness that makes Hermes better at coding by giving it specialist personas, dedicated coding skills, deterministic helper scripts, and shared operating standards. It is not a fleet, workflow-engine, or Kanban feature.

Location

~/.hermes/hermes-agent/plugins/matrix_coder/.

Layout

The layout should reflect the four-layer architecture: personas, skills, scripts, and the plugin harness.

plugins/matrix_coder/
├── plugin.py                       # register(ctx): tools, skills, hooks, harness entrypoints
├── plugin.yaml                     # manifest: name, kind, description, capabilities
├── README.md                       # user-facing overview and conversational invocation examples
├── pyproject.toml                  # optional plugin-local package metadata if needed
├── matrix_coder/
│   ├── __init__.py
│   ├── harness.py                  # main Matrix Coder coordinator / dispatcher
│   ├── registry.py                 # specialist + skill + script registry helpers
│   ├── config.py                   # plugin config loading and defaults
│   ├── models.py                   # typed request/result objects
│   ├── prompts.py                  # prompt assembly helpers for personas + skills
│   ├── hermes_bridge.py            # thin adapter over Hermes tools/delegate/skill APIs
│   └── reporting.py                # shared report formatting / JSON output
├── personas/                       # specialist agent prompts / role contracts
│   ├── _base/
│   │   ├── specialist-contract.md  # common identity, evidence, scope, output rules
│   │   ├── severity-rubric.md
│   │   ├── evidence-protocol.md
│   │   └── boundary-table.md
│   ├── security-reviewer.md
│   ├── code-reviewer.md
│   ├── api-reviewer.md
│   ├── performance-reviewer.md
│   ├── dependency-reviewer.md
│   ├── quality-reviewer.md
│   ├── debugger.md
│   ├── test-engineer.md
│   ├── verifier.md
│   ├── simplifier.md
│   ├── explorer.md
│   └── architect.md
├── skills/                         # plugin-scoped Hermes skills
│   ├── matrix-coder/               # meta-skill: choose and run the right specialist
│   │   ├── SKILL.md
│   │   └── references/
│   │       └── routing-decision-tree.md
│   ├── review-security/
│   │   ├── SKILL.md
│   │   └── references/
│   ├── review-code/
│   │   ├── SKILL.md
│   │   └── references/
│   ├── review-api/
│   │   └── SKILL.md
│   ├── review-performance/
│   │   └── SKILL.md
│   ├── review-quality/
│   │   └── SKILL.md
│   ├── review-deps/
│   │   └── SKILL.md
│   ├── debug-isolate/
│   │   └── SKILL.md
│   ├── test-add/
│   │   └── SKILL.md
│   ├── verify-evidence/
│   │   └── SKILL.md
│   ├── simplify-slop/
│   │   └── SKILL.md
│   ├── explore-codebase/
│   │   └── SKILL.md
│   └── _lib/                       # shared skill references, not directly invoked
│       ├── output-format.md
│       ├── prompt-structure.md
│       ├── coding-quality-rubric.md
│       ├── test-strategy.md
│       ├── failure-modes.md
│       └── mental-execution-pattern.md
├── scripts/                        # deterministic helper automation
│   ├── collect_context.py          # summarize target files/modules for a specialist
│   ├── extract_line_refs.py        # stable file:line evidence extraction
│   ├── discover_tests.py           # map source files to likely tests
│   ├── inspect_dependencies.py     # dependency/package metadata inspection
│   ├── static_probe.py             # lightweight static checks / grep-like probes
│   ├── summarize_diff.py           # compact diff summary for review mode
│   └── format_report.py            # normalize markdown/json specialist reports
├── tools/                          # optional plugin tools exposed to Hermes
│   ├── run_specialist.py           # tool handler for programmatic specialist dispatch
│   └── list_specialists.py         # tool handler for available personas/skills
├── templates/
│   ├── specialist-report.md
│   ├── findings-table.md
│   └── json-result.schema.json
├── examples/
│   ├── ad-hoc-security-review.md
│   ├── debug-isolation.md
│   └── simplify-slop-pass.md
└── tests/
    ├── test_plugin_registration.py
    ├── test_skill_registration.py
    ├── test_specialist_dispatch.py
    ├── test_scripts.py
    └── fixtures/

Layout Principles

  • Personas are not skills. Personas define specialist identity, boundaries, and output discipline. Skills define reusable procedures and workflows those personas can apply.
  • Skills are the operational right hand. They hold rubrics, checklists, evidence rules, and task-specific procedures inspired by OMC, OMX, and OmO.
  • Scripts handle deterministic work. Anything that can be computed reliably should be done by a helper script rather than approximated by the model.
  • The harness coordinates, not replaces Hermes. matrix_coder/harness.py should understand Hermes tools, skill loading, plugin hooks/tools, delegation, and provider/model config so Matrix Coder complements the Hermes agent loop.
  • Model dispatch uses Hermes config. Matrix Coder should infer specialist execution choices from the active Hermes provider/model/delegation setup instead of keeping its own hardcoded model catalog.
  • Shared _lib/ content should be loaded progressively. Keep the default prompt small; load deeper references only when a specialist needs them.
  • The first implementation should stay plugin-native. Avoid adding core Hermes APIs until the plugin proves which seams are truly needed.

register(ctx) behavior

def register(ctx):
    # 1. Register all sub-skills (review-security, review-code, review-api, ...)
    for skill_dir in SKILLS_DIRS:
        ctx.register_skill(name=f"matrix:{skill_dir.name}", path=skill_dir / "SKILL.md")

    # 2. Register the meta-skill (intent → specialist routing)
    ctx.register_skill(name="matrix:meta", path=SKILLS_DIR / "matrix-coder" / "SKILL.md")

    # 3. Register sub-agent role configs (for delegate_task dispatch)
    for agent_yaml in AGENT_CONFIGS:
        ctx.register_agent_role(name=f"matrix:{agent_yaml.stem}", config_path=agent_yaml)

    # 4. Register any agent-facing plugin tool/hook needed by the harness.

Prompt Structure (OMX-style XML tags + OmO-inspired category routing)

All specialist prompts use OMX's XML-tagged template, with an OmO-inspired category_routing section:

<identity>
Role description and identity.
</identity>

<category_routing>
For delegation, use categories:
- deep: {role} analysis
- quick: Single-file changes
</category_routing>

<constraints>
<scope_guard>
Boundary table: What you own vs what others own.
</scope_guard>
<ask_gate>
Output style rules and update semantics.
</ask_gate>
</constraints>

<explore>
Step-by-step investigation protocol.
</explore>

<execution_loop>
<success_criteria>
Definition of done.
</success_criteria>
<verification_loop>
When to deepen effort vs. when to stop.
</verification_loop>
</execution_loop>

<style>
<output_contract>
Default output shape: outcome-first, evidence-dense.
Include: result, evidence, validation status, stop condition.

## {Specialist} Summary

**Target:** {file or directory}
**Verdict:** PASS | FAIL | NEEDS_DISCUSSION

### Findings
[severity × confidence × file:line × category × issue × recommendation]

### Phased Roadmap (Epic)

This issue is the **epic**. Implementation is split across six child issues, each independently shippable. Detailed execution plans are drafted just-in-time per phase.

- [x] Phase 0 — Scaffold & contracts + walking-skeleton smoke test (#112) — *complete, reviewed; pending commit/merge*
- [x] Phase 1 — Spine: harness + `_base` + **2 roles** (`review`, `executor`) + trigger invocation + intake gate (#113) — *complete, reviewed (APPROVE); in PR #119*
- [x] Phase 1.5 — Remaining 6 specialist roles + 4 review lenses (#118) — *complete, reviewed (APPROVE); in PR #119*
- [x] Phase 2 — Observability: Kanban audit mirror (#114) — *complete, reviewed (APPROVE); in PR #119*
- [x] Phase 3 (v1) — Workflow skills as personas: Ralph · autopilot · ultrawork · ultraqa (#115) — *complete, reviewed; loop hardening deferred to testing; in PR #119*
- [x] Phase 4 — Domain packs (text composition, `@domain` token) (#116) — *complete, reviewed; in PR #119*
- [ ] Phase 5 — Implicit routing / IntentGate (#117)

Dependency order:

0 ──> 1 ──> 1.5

├──> 2 (kanban)
├──> 3 (workflows — needs 1, better after 2)
├──> 4 (domain packs)
└──> 5 (implicit — needs 1, better after 4)


Phase 0 + 1 = usable MVP (2 roles proving the spine). Phase 1.5 fills out the roster. Phases 2/3/4 build on the role core; Phase 5 lands last.

### Cross-cutting (applies to every phase)

- [ ] Testing strategy — unit + end-to-end (persona injection, output normalization, single-writer / disjoint-file assignment)
- [ ] Config schema for dispatch-category → Hermes model mapping
- [ ] Observability of the intake gate's own decisions (audit a wrong `direct` verdict)
- [ ] Uninstall / disable behavior — disabling MC must not leave any MC hook (persona injection / output-normalize / optional file-claim backstop) registered
- [ ] Persona-contract versioning
- [ ] Licensing: confirm OmO (SUL-1.0) is ideas-only vs vendored text; add `NOTICES`/`THIRD_PARTY_LICENSES` + segregation if text is copied (repo is MIT)

### Advisory review

A code-verified opus critic pass was run on the epic + all phases (see the "Advisory Plan Review" comments on each issue). Key corrections already folded in: persona binding is text composition (no subagent persona API); per-role write-blocking is dropped in favor of **single-writer-per-file** (advisory roles + orchestration-time disjoint file assignment / worktree isolation); Phase 1 re-cut to 2 roles + Phase 1.5; Phase-2 spike removed (code already supports never-claimed-card completion); Phase-4 "dynamic composition" is text-level only.

## Open Questions (low-confidence findings surfaced)
### Positive Observations
### Recommendation
</output_contract>
</style>

Specialist Sub-Skills

Matrix Coder exposes one consolidated specialist catalog rather than separate phase-by-phase skill lists. Specialists are personas, not hardcoded agents: at dispatch the harness composes a role contract (+ optional domain pack) into the subagent's context and re-injects it per turn via the pre_llm_call hook. Same agent, different persona. Note (advisory review): there is no Hermes API to load a system prompt/persona onto a subagent — delegate_task has no persona param and the child prompt is hardcoded — so persona binding is text composition (context + pre_llm_call), not a structural attachment. The 8 roles are an MC concept and do not map to the subagent role field ({leaf, orchestrator}). Phase 1 ships the full role core; domain packs follow in Phase 2.

Two-axis model

  • Roles = activity contracts (distinct inputs, rubric, output shape, allowed tools). Fixed core of 8 — this is where the quality lift lives.
  • Domain packs = composable context layers (frontend, backend, etc.) loaded onto any role. Avoids the N×M persona explosion of treating every stack/activity pair as its own agent.

This consolidates the 16 ported review-fragments (from OMC/OMX/OmO) into 8 roles: the six review-* entries collapse into one review role with a selectable lens; architect + adversarial planning + release-strategy merge into plan; and a new executor role is added — the table as ported was entirely read-only (every entry disallowed Write/Edit), so nothing could actually implement. executor edits files by default; the others are analysis/review by default. These read/write labels are advisory persona guidance, not a hook-enforced per-role block (see Concurrency rule below). The new executor role is what makes Matrix Coder a coder rather than a review panel.

Axis 1 — Role core (Phase 1)

Role Primary purpose Tools Edits files? (advisory) Inspiration Dispatch category
explore Map files, flows, and risks before other roles act. file, search, terminal OmO Explore quick, explore
plan Break work into dependency-aware tasks + acceptance criteria; system-design review (boundaries, interfaces, tradeoffs); adversarial critique (collector → adversary → synthesizer); release readiness / go-no-go. file, search, terminal OMC + OMX + OmO Prometheus deep, planning
executor Implement to spec: surgical edits, follow the plan, keep changes minimal and reversible. file, search, terminal Matrix Coder (new) deep / quick, implement
review Code review with a selectable lens: security · code · api · performance · quality · deps. One contract, lens-specific rubric. file, search, terminal OMC + OMX deep, review (+ lens)
debug Isolate root cause and propose a fix strategy via focused probes, failing tests, traces, minimal repro. file, search, terminal only when explicitly fixing OMC + OmO Hephaestus deep, debug
test Add or strengthen tests around behavior, regressions, or newly changed code. file, search, terminal when explicitly asked OMC quick, test
verify Verify claims, fixes, file references, test evidence, and completion status. No fixing. file, terminal OMC quick, verify
simplify Behavior-preserving reduction of overbuilt or AI-sloppy code. file, search, terminal when explicitly asked OMC quick, refactor

Concurrency rule (the real guardrail). The hard invariant is single-writer-per-file: no file is edited by more than one agent at a time. MC enforces this at orchestration time — when it fans specialists out in parallel it assigns disjoint file sets, and for write-heavy parallel work it can use worktree isolation (one worktree per writer) so there is no shared-file contention. Read-only/analysis roles may share read access freely. A role's read-vs-write nature is advisory (stated in the persona, reinforced by intake/orchestration), not a per-role pre_tool_call hard block — so MC does not need to map tool-call → agent → role at the hook layer (this removes the former Phase-1 role-isolation spike). An optional path-claim backstop hook may be added later if a hard stop is wanted, but it is keyed on file path, not role.

Axis 2 — Domain context packs (Phase 2, composable onto any role)

frontend · backend-api · data-db · infra-cli · plugin-skill-authoring. A request like "API coder" resolves to a role (executor / review / test) + the backend-api pack — no separate persona required.

Each role shares Matrix Coder's common _base/ persona contract, severity rubric, evidence protocol, output format, and progressive skill-loading rules. Domain packs add stack-specific conventions only; they do not change a role's operating contract.

Workflow / Orchestration Skills

Beyond the specialist roles (the who), Matrix Coder ships workflow skills (the how) that orchestrate roles in loops and fan-outs. This is the "system feel" of OMC/OMX/OmO — not isolated prompts. Adapted from OMC (MIT, per-skill attribution).

Skill Drives
Ralph loop repeat executor → verify until verification passes (bounded, explicit stop criteria)
autopilot full chain plan → executor → test → review → verify from one ask
ultrawork parallel fan-out of roles across files / topics
ultraqa test → verify → fix cycle until the goal is met

Workflows emit the shared output contract and, when Kanban observability is present, write parent + iteration/branch cards for live Switch UI monitoring. Shipped in Phase 3.

Dynamic Model Dispatch Using Hermes Configuration

Matrix Coder should not maintain a separate hardcoded model catalog or require distributed specialist-to-model mappings. The plugin should use the existing Hermes agent configuration as the source of truth for providers, models, fallback chains, reasoning settings, and delegation behavior. At runtime, Matrix Coder should inspect the active Hermes configuration and dynamically choose the best available execution path for each specialist dispatch: deeper review/debug/architecture tasks should route to the strongest configured coding-capable model or delegated subagent path, while quicker verification/simplification/dependency checks can use cheaper or faster configured options when available. This dynamic mapping must live inside the Matrix Coder harness, be robust across providers, inherit Hermes' existing model/provider/delegation settings where possible, and avoid forcing users to duplicate model config under Matrix Coder-specific category maps. The specialist can still declare intent metadata such as deep, quick, review, security, or debug, but those labels should guide the harness' runtime selection against Hermes' current configuration rather than statically naming a provider or model.

Deprecation Pattern (OMX-inherited)

The meta-skill (matrix:meta) is the single routing node for all review types. It dispatches to the right specialist based on intent. Sub-skills are not meant to be invoked directly unless you bypass the meta-skill. Fewer entry points = less duplication.

Sub-Skill Output Format (shared across all specialists)

## {Specialist} Summary

**Target:** {file or directory}
**Mode:** {ad-hoc | workflow-dispatched}
**Verdict:** PASS | FAIL | NEEDS_DISCUSSION

### Findings
| # | Severity | Confidence | File:Line | Category | Issue | Recommendation |
|---|----------|------------|-----------|----------|-------|----------------|
| 1 | CRITICAL | HIGH | src/auth/login.ts:42 | injection | SQL string concat | Use parameterized query |
| 2 | MEDIUM   | MEDIUM   | src/api/users.ts:88 | error-handling | Empty catch block | Log error, return 500 |

### Open Questions (low-confidence findings — surfaced, not blocking)
### Positive Observations
### Recommendation

Invocation Model

Matrix Coder should be invoked through the Hermes agent experience, not through a separate command interface. The primary path is conversational: the user asks Hermes for a coding task, the Matrix Coder meta-skill or harness selects the appropriate specialist persona and supporting skills, and the plugin coordinates any helper scripts or delegated specialist execution internally. Direct qualified skill usage may remain available for explicit expert selection, but the plugin should not require or expose a separate external invocation workflow.

All invocation paths should return the same matrix:_lib/output-format.md shape.

Non-Goals: Fleet, Workflow Engine, and Kanban Coupling

Matrix Coder should not be designed around a2a_fleet, workflow-engine, or kanban. Those systems may exist elsewhere in Hermes, but they are not the conceptual center of this feature.

Matrix Coder's center is the Hermes coding experience itself: when Hermes is asked to code, review, debug, simplify, test, or verify, this plugin gives it a specialist-coder harness with multiple expert capabilities and one consistent evidence/output discipline.

Other systems can choose to call Matrix Coder later if useful, but Matrix Coder should stand on its own as the plugin that makes Hermes a better specialist coder.

Clarification — Kanban observability is in scope. "No Kanban coupling" means MC does not use Kanban as a control/orchestration engine: it does not schedule, dependency-gate, or execute specialists via the Kanban dispatcher, and it is not a Kanban feature. MC may, however, use Kanban as an observability / audit mirror — writing a parent card per invocation and a child card per specialist dispatch (status runningdone/blocked) so delegations are traceable and visible live on the Switch UI. Cards mirror MC's own execution; they never drive it. (See the Kanban Integration comment for the audit-mirror design and the dispatcher-double-execution constraint.)

Intent-Gated Dispatch (Phase 3, OmO's IntentGate pattern)

OMC/OMX route based on explicit user commands (/security-reviewer). OmO routes based on intent classification first:

User: "find security holes in src/auth/"
→ IntentGate classifies: [ultrawork, security]
→ Routes to: matrix:review-security
→ with category: deep (since it's a security audit, not a quick check)

This means the user doesn't need to know the specialist names. The meta-skill plus IntentGate routes naturally.

Open Questions

  • Should role configs be stored in the plugin's agents/ dir, or in the profile's ~/.hermes/profiles/<name>/agents/ for per-profile customization? Initial proposal: plugin's directory, with override mechanism via profile-level matrix_coder_overrides.yaml.
  • Should category → model mappings live in the Hermes config.yaml, or in a separate matrix_coder/categories.yaml? Initial proposal: inside config.yaml under matrix_coder.categories, to keep model routing visible alongside other config.
  • Does the plugin need its own SQLite for tracking dispatches (rate limiting, history)? Initial answer: no, defer until Phase 2.

Related

  • oh-my-claudecode — source pattern 1 (MIT, attribution required)
  • oh-my-codex — source pattern 2 (MIT, attribution required)
  • oh-my-openagent — source pattern 3 (SUL-1.0, 60K stars, daily active, multi-harness agent OS, attribution for structural patterns)

Attribution

This proposal and any shipped prompts adapt oh-my-claudecode (MIT, Yeachan Heo), oh-my-codex (MIT, Yeachan Heo), and oh-my-openagent (SUL-1.0, code-yeongyu / Sisyphus Labs).

  • Direct prompt porting (Phase 1): OMC agent prompts (security-reviewer, code-reviewer, verifier, ai-slop-cleaner, test-engineer, debugger, planner, architect) and OMX agent prompts (api-reviewer, performance-reviewer, quality-reviewer, dependency-expert, explore-harness, prometheus-strict, quality-strategist) are MIT-licensed and will be ported with attribution in each shipped SKILL.md.
  • Structural patterns (not direct copies): OmO's intent/category routing concept, IntentGate dispatch pattern, dynamic prompt composition concept, and package layering architecture inform the plugin design but are structural patterns, not direct text porting. Attribution here is design provenance.
  • Prompt structure: The XML-tagged template format, boundary tables, and deprecation pattern are derived from OMX's structural conventions, not direct text copies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions