ares-harness
v0.2.10
Published
ARES harness — a portable SWE R&D agent harness for Claude Code, Codex CLI, and OpenCode. Keeps the current MISHKAN organization model while installing target-native agents, skills, commands, MCP, and knowledge tooling.
Maintainers
Readme
ARES Harness · MISHKAN Runtime
A portable SWE R&D harness for Claude Code, Codex CLI, and OpenCode.
45 specialist agents · six teams · one research pipeline · native memory by default, Cognee when needed
ARES packages the current MISHKAN agent organisation as a portable harness. Quality and security aren't requested from the model — they're enforced by the environment: target-native guidance, skills, commands, optional MCP wiring, hooks where audited, and structural separation of generation from review. Native runtime memory is the default recall layer; Cognee remains available when you need a queryable knowledge graph. A code-structure graph (Graphify) answers "who calls X, who depends on Y" at 88× less token cost than loading source files.
It's personal, opinionated infrastructure built around one engineer's standards. To make it yours, create your local docs/engineer/profile.md from docs/engineer/profile.example.md, then re-sync — nothing else hardcodes the author.
v0.2.10 — public package cleanup on the stable ARES runtime: developer profile guidance now consistently routes through
~/.ares/profile.md, package metadata points atmibienpanjoe/ares, and active prompts use generic engineer wording. Unified semanticares <object> <verb>CLI with legacymishkanaliases, native memory by default, optional Cognee wiring via--memory cognee|hybrid, Cognee knowledge stack, Graphify, and observability remain available.
Install
Requires Node >= 18 plus at least one target runtime: Claude Code, Codex CLI, or OpenCode.
npx ares-harness install --target codex
npx ares-harness status --target all
npx ares-harness observability install # optional: daemon + TUI (needs uv)Full guide: docs/usage/01-installation.md.
First session
cd <project>
claude # starts in exploration mode — Nehemiah + Bezalel
/ares-init # Claude Code: scaffold spec chain → docs/ → memory → Sprint S0In Codex, invoke $ares-init after install/project init, or select ares-init
through /skills. Codex does not support user-defined /<skill-name> commands,
so bare /ares-init remains a Claude Code/OpenCode entrypoint. Details:
docs/usage/02-project-init.md.
The teams
Nehemiah (PM — scope, delivery, sprint) and Bezalel (CTO — architecture, standards, quality bar) route everything. Six teams, each Lead → Specialists → QA → Reporter:
flowchart TD
You(["You · the engineer"]) -->|talk| MS[["MAIN SESSION = leadership<br/>Nehemiah · PM + Bezalel · CTO<br/>the one orchestrator — delegates one level deep, then synthesises"]]
MS -->|Task| CH["Chosheb<br/>Design / UX"]
MS -->|Task| PA["Panim<br/>Frontend"]
MS -->|Task| YA["Yasad<br/>Backend & data"]
MS -->|Task| MI["Migdal<br/>Infrastructure"]
MS -->|Task| SE["Sefer<br/>Documentation"]
MS -->|Task| RP["Research pipeline<br/>Jakin → Ezra → Caleb → Shaphan → Shemaiah → Baruch"]
MM["Mishmar · Security<br/>cross-cutting — gates every team"]
MM -. gates .-> CH
MM -. gates .-> PA
MM -. gates .-> YA
MM -. gates .-> MI
MM -. gates .-> SE
MS -. reads / writes .-> KN
subgraph KN["Knowledge — native default + optional retrieval surfaces"]
direction LR
NAT[("native memory<br/>Claude /memory · Codex /memories")]
GFY[("Graphify<br/>code structure · per-project")]
WORK[("cognee work<br/>per-project · isolated")]
MEM[("cognee-memory :7777<br/>session memory · shared")]
CUR[("cognee-curated :7730<br/>reference library · shared")]
end
MS -. stateful ops stay yours .-> HANDS["your hands<br/>git push · prod · schema migrations"]One leadership session (Nehemiah + Bezalel) delegates one level deep to the six teams + the
research pipeline, then synthesises. Within each team: Lead → Specialists → QA → Reporter
(QA & Reporter structurally separate — no agent grades its own work). Mishmar's security gate
crosses every team. It reads/writes four knowledge surfaces, and stateful operations — git
push, production, schema migrations — stay in your hands (the asymmetric AI/human boundary).
Diagrams render on GitHub.
| Team | Hebrew | Domain | |------|--------|--------| | Chosheb | cunning work | Design & UX | | Panim | face | Frontend | | Yasad | foundation | Backend & data | | Mishmar | guard | Security (cross-cutting) | | Migdal | tower | Infrastructure & ops | | Sefer | scroll | Documentation (pull-based) |
A shared research pipeline (Jakin → Ezra → Caleb → Shaphan → Shemaiah → Baruch) is invokable by any agent that hits an unknown. All 45 names + biblical sources: docs/design/MISHKAN_agent_aliases.md.
Memory and Knowledge
Default mode uses the runtime's native memory and versioned project docs:
- Claude Code: use
/memory. - Codex: use
/memories. - Required rules stay in
CLAUDE.md,AGENTS.md, anddocs/.
Cognee is optional. Wire it when you need semantic search, a curated library, or a queryable graph:
Cognee — semantic knowledge graph. Per-project isolated work store (own port, Ladybug) + shared session memory (cognee-memory, :7777) + cross-project curated reference library (cognee-curated, :7730). Docker-based, pinned, SOPS-managed secrets. The three pillars are wired only when you opt in with --memory cognee or --memory hybrid (D-007 + D-012).
ares project init --target all --memory cognee
ares knowledge configure # wizard: LLM provider + credentials + .env
ares knowledge-stack up # memory :7777 + curated :7730 (guided; preflights config, seeds curated)Guide: payload/mishkan/cognee/README.md · docs/usage/04-memory-layer.md.
Graphify — deterministic code-structure graph (D-008 + D-009). Indexes a project's full AST into a queryable graph. For structural questions ("who calls X", "what depends on Y") it costs ~1.8k tokens per query — 88× cheaper than loading the source tree. Runs as a PreToolUse advisory: before every structural Read or Grep, agents see a palette of four surfaces (Graphify, Cognee work, Cognee curated, literal content) with token costs and staleness signals so they pick the cheap path first. Auto-detected and wired by /ares-init.
ares code-graph scan # build/refresh for the current project
ares code-graph status # node/edge count, last scan timeObservability
Two Python packages (uv tool-installable): a daemon (ares-watchd) that tails every session's event bus and a Textual TUI (ares-watch) with 8 tabs — Live, Agents, Workflows, Knowledge, Activity, Org-Ref, Usage, Skills. Cross-session, cross-project, near-zero overhead.
ares observability install # install both packages
ares-watch # opens TUI, auto-starts daemon if absent
ares-watchd start|stop|status # manual daemon controlGuide + event schema: docs/design/MISHKAN_observability.md.
Workflows
Beyond the agents, MISHKAN ships dynamic JavaScript workflows that orchestrate multiple subagents in parallel — fan-out/synthesize, pipeline, judge panel, adversarial verify, loop-until-X.
Org-level (10): mishkan-sprint-close, mishkan-deep-research, mishkan-codebase-audit, mishkan-migration-wave, mishkan-architecture-panel, mishkan-release-readiness, mishkan-init, mishkan-blast-radius, mishkan-knowledge-gap-discovery, mishkan-standards-rollout.
Team-level (8): chosheb-feature-ship, panim-ds-rollout, yasad-data-migration-wave, yasad-schema-evolution, mishmar-security-gate, migdal-infra-change, migdal-dr-drill, sefer-release-notes.
Governed by hard caps (10 org + 4 per team) and PM+CTO co-ownership per ADR D-010. Catalogue + cost expectations: payload/mishkan/workflows/README.md.
Slash commands (inside a Claude Code session)
| Command | Purpose |
|---|---|
| /ares-init | Scaffold a project — spec chain, docs, memory, Sprint S0 |
| /ares-resume | Restore sprint state + open blockers |
| /sprint-close | Team reporters → aggregate → docs pull → graph promote |
| /ares-org-reference | Print the 45-agent org inline |
| /code-graph status\|open\|scan | Inspect / open / refresh Graphify graph |
| /skills <task> | Skill-discovery router (3-bucket result) |
| /ares-skills-reindex | Rebuild skill index from disk |
| /ares-skills-misses | Aggregate miss-log for threshold tuning |
| /eval-baruch | Run Baruch contract eval |
| /dependency-audit | Cross-project dependency + supply-chain audit |
| /promote | Promote a learning into Cognee by blast radius |
| /sefer-pull | Trigger documentation pull |
CLI commands (from any terminal)
ares help # full reference
ares install --target codex # install/refresh a target
ares project init --target codex # scaffold target-native project wiring, native memory
ares project init --target all --memory cognee # opt into Cognee MCP wiring
ares uninstall # remove Claude target files
ares knowledge configure # wizard: LLM provider + Cognee .env
ares knowledge curate # approve research-found resources into curated (D-016)
ares knowledge reset # wipe stores → re-seed curated baseline (destructive)
ares model show|set|reset # re-tier agents per-agent/team/all — survives updates (D-017)
ares observability install # install daemon + TUI only (needs uv)
ares status --target all # install state, profile, version
ares runtime check --target all --dir . # global + current-project readiness checklist
ares org show [--json] # print the 45-agent org
ares code-graph [status|open|scan] # inspect the project's Graphify graph
ares-watch # open observability TUI (auto-starts daemon)
ares-watch --no-autostart # TUI only, no daemon fork
ares-watchd start|stop|status # manual daemon lifecycleCustomisation
The harness loads the runtime profile at ~/.ares/profile.md. From a checkout, create your local gitignored profile from the sanitized template, edit it, then sync:
cp docs/engineer/profile.example.md docs/engineer/profile.md
# edit docs/engineer/profile.md
~/.ares/scripts/sync-profile.shRefreshes the runtime copy and audits references. Nothing else hardcodes the author. See docs/engineer/README.md.
Repository layout
bin/mishkan.js installer (dependency-free)
bin/ares.js primary ARES entrypoint
payload/
core/ runtime-neutral manifest; resolves the compatibility source tree
targets/ Claude, Codex, and OpenCode adapter manifests
mishkan/ current compatibility source: agents, skills, hooks, workflows, Cognee
user/ user-level CLAUDE.md + standards rule (placed if absent)
install/ hook fragment merged into settings.json
docs/
engineer/ canonical engineer profile (replaceable)
design/ architecture, decisions, ontology, token model, observability
usage/ 01-install … 12-skill-discoveryKey design docs
| Doc | Covers | |---|---| | Architecture | 5 layers, 6 teams, knowledge model | | Agent aliases | 45 agents + biblical sources | | Decisions | Locked build decisions | | Cognee ontology | Knowledge graph schema | | Token optimisation | Context cost model | | Observability | Daemon + TUI event schema | | Workflows | Dynamic workflow catalogue |
Usage guides: docs/usage/.
License
MIT — use it, fork it, make it serve your own engineering.
Maintained by mibienpanjoe · github.com/mibienpanjoe/ares
