The Org Model
Roles, review chains, plans, and memory — why hara behaves like a team instead of a single agent.
Roles
A role is a markdown agent definition (.hara/roles/*.md) with a persona, an optional model
override, a tool subset, and routing keywords (owns / rejects). hara org "<task>" dispatches
each task to the role that owns it.
hara roles init # scaffold implementer / reviewer / docs
hara org "add billing" # → routed to the owning roleRoles load from five layers, lowest→highest precedence:
plugins < org (B-end push) < global (~/.hara/roles) < .claude/agents < project (.hara/roles).
Review chains
--review loops a reviewer role against the implementer's diff until it's clean.
hara org "add OAuth login" --review --rounds 5 --commitPlans as a DAG
hara plan decomposes a task into atoms with dependencies, runs independent ones in parallel,
and gates each on a verify check. Plan state lives in .hara/org/plan.json (inspectable, resumable).
Persistent memory
Memory is cwd-independent and always loaded — global (~/.hara/memory) plus per-project. The
agent records decisions and distills daily logs into durable facts. It's the same brain whether you
drive hara from the terminal or from a chat app.