An agent-builder for Claude Code — a team of three agents (Sensei, Method, and Mneme) that builds, tests, installs, and remembers specialized Claude Code agents with enforced expertise and per-agent semantic memory.
Genesis is self-hosting: its own agents built it, under the same rules it enforces on everything else. And it is used in production — agents built with Genesis work as the engineers on live systems (operating production ML pipelines, extending a decades-old .NET/C++ codebase), held to those same enforced rules.
You describe the agent you want. Genesis interviews you, writes it test-first, installs it into your project, and wires it with enforced rules and its own memory — so the agent you get is one you (and your teammates) can reproduce.
# In Claude Code, from your project directory:
/plugin marketplace add Atiqul-Islam/genesis
/plugin install genesis@genesis
# Then talk to Sensei:
> Use sensei to build an agent that runs my test suite and summarizes the failures.
Sensei interviews you, delegates the authoring to Method (who writes the agent's tests first), assembles and installs it into .claude/agents/, and hands back a working, tested agent.
Genesis is a Claude Code plugin. Installing it adds three agents to your project:
- Sensei — the coordinator you talk to. It gathers and verifies every requirement, decides the plan with you (single agent or a team — your call, not its), and orchestrates the build. It never authors prompts itself and never guesses.
- Method — the test-first craftsman. It writes each agent's persona, behavior, and skills, writes the acceptance tests before the agent, and ships nothing until they pass.
- Mneme — the memory specialist. It structures each memory the moment it's written and keeps every agent's store contradiction-free through deterministic bi-temporal supersession, so recall stays trustworthy across sessions. Memory is its own discipline, so it's its own agent.
The agents Genesis produces are ordinary Claude Code agents — plus two things Genesis wires in for you: expertise the agent is forced to apply, and memory that persists across sessions.
Hand-rolling a Claude Code agent means copy-pasting a persona from a blog post, hoping the prompt holds, and having no way to prove the next person gets the same behavior. There's no test, no enforced boundary, and the agent forgets everything between sessions.
Genesis's answer is to treat an agent like software you build, not a snowflake you paste:
- its behavior is tested before it ships,
- its rules are enforced by hooks, not by hoping the model remembers them, and
- its knowledge and history live in a per-agent store it can recall from later.
From inside Claude Code, in the repository you want the agents in:
/plugin marketplace add Atiqul-Islam/genesis
/plugin install genesis@genesis
/reload-plugins
The first command registers this repository as a plugin marketplace; the second installs the genesis plugin from it. See Requirements below — the builder itself needs only Claude Code and Node.js; the memory server has a couple of extra notes.
After install, start Claude Code in your project and ask Sensei to build something. A first run looks like this:
> Use sensei to build an agent that reviews my pull-request diffs for security issues.
- Sensei interviews you. It asks for the goal, the done-criteria, the tools the agent needs, and when it should escalate — then restates every requirement back and proceeds only on what you confirm.
- You choose the expertise. Sensei runs its
research-expertisestep and proposes what the agent must know; you add, drop, or change it, and decide whether to deep-research it. - Method authors it test-first. Sensei hands Method a task-spec. Method writes the acceptance tests first, then the smallest persona/behavior/skills that make them pass, and returns only when they do.
- Sensei assembles and installs it. The finished agent lands in
.claude/agents/, with its enforcement hooks wired and — if you asked for it — its memory. - You use it. The new agent is now available in Claude Code, held to its rules by the same hooks, with its own memory.
Nothing is built on an unconfirmed assumption, and nothing untested is delivered — those are properties of Sensei and Method, not promises in this README (see agents/sensei.md, agents/method.md).
Each item below is backed by a file in this repo, named so you can check it.
-
A team of specialists, not a prompt template. Coordination (Sensei), authoring (Method), and memory (Mneme) are separate roles with separate tools; Method is test-first and ships nothing untested. Proof:
agents/sensei.md,agents/method.md,agents/mneme.md,skills/build-agent/SKILL.md. -
Enforced expertise (fail-closed). Every agent is required to load named expertise and, before it can end a turn, declare which rules it applied. The declaration is checked against a rule manifest, and the cited evidence is spot-checked against the files the agent produced — a fabricated rule id or made-up evidence blocks the turn. Proof: the
genesis-hookbinary (validate),expertise/required.json,expertise/manifests/. -
Deterministic house rules. A pre-write gate blocks any edit that contains a banned phrase, a credential value, or that exceeds the persona/behavior/
CLAUDE.mdline budget — enforced by regex at the moment of writing, not by trusting the model to remember. Proof: thegenesis-hookbinary (gate). -
Per-agent semantic memory. Genesis ships a Rust MCP memory server — SQLite +
sqlite-vecKNN over local ONNX embeddings, fully offline. Every agent gets its ownstore/recall/consolidate, scoped by agent id, separate from the transient session context. Proof:server/,.mcp.json,server/README.md. -
Research is required before a build. Before Sensei can assemble a new agent, a hook confirms the
research-expertisestep actually ran this session — you cannot skip choosing (and confirming) what the agent should know. Proof: thegenesis-hookbinary (enforce-research),skills/research-expertise/SKILL.md. -
A spec-driven build workflow, included. A supervisor-led, test-first (RED → GREEN, one commit per task) multi-agent workflow — the same workflow Genesis used to build its own memory server. Proof:
skills/spec-forge/SKILL.md,skills/spec-build/SKILL.md,server/README.md.
Genesis is wired at the plugin level, because a plugin-shipped agent can't carry its own enforcement hooks. So the hooks live in hooks/hooks.json and derive the active agent from each event. The deterministic hooks are a single native Rust binary — genesis-hook (busybox-style subcommands) — shipped in the same GitHub Release as the memory server, so they run as a ~2–10 ms native spawn instead of a Node process per tool call:
- SubagentStart →
genesis-hook injectdelivers the checkable house rules and pointers to the expertise store into the agent's context (the full expertise reports stay on disk and are read on demand). - PreToolUse (Write/Edit) →
genesis-hook gateblocks a write that violates a checkable rule, and re-surfaces the governing rules right before the write. - PreToolUse (Bash) →
genesis-hook enforce-researchblocks assembling a non-built-in agent unless the expertise-research step ran. - SubagentStop →
genesis-hook validate+ a built-inagentreview hook refuse to let an agent finish while a checkable rule is still violated or its expertise declaration isn't credible, and add an independent LLM review pass (a fast Haiku model that reads the produced artifacts) for the judgment rules a regex can't check.
Built agents invoke the binary directly (baked into their frontmatter by the assembler); the plugin's own team resolves it through a tiny cross-platform shim. The launcher + installer that fetch and stage the binaries are Node.
The native binaries + the embedding model are distributed as GitHub Release assets — not committed to the repo, and not on any package registry. The plugin's .mcp.json runs a small Node launcher (bin/genesis-memory.js) that, on first use, downloads the genesis-memory-server (and genesis-hook) for your OS/arch plus the pinned model from the matching release, SHA256-verifies each against a published SHA256SUMS, caches them per-user, and execs the server — the MCP stream passing through untouched. The assets are public: no npm, no registry account, no token. A build-from-source path in Requirements remains as a fallback (or for an as-yet-unpackaged platform).
- Claude Code with plugin support (the
/pluginmarketplace system). - Node.js on your PATH. The memory-server launcher (downloads + runs the binaries), the installer, and the plugin's hook resolver run on Node 18+; the optional session-copy feature reads SQLite via the built-in
node:sqliteand needs Node 24+. The enforcement hooks themselves are a native Rust binary (no per-call runtime); built agents invoke it directly. No Python runtime is required. - For the memory server: prebuilt native binaries + the model are published as GitHub Release assets (macOS and Linux on x64/arm64, Windows on x64; more targets rolling out); the launcher downloads and SHA256-verifies the right ones for your platform. As a fallback — or on an as-yet-unpackaged platform — build from source with Rust (cargo 1.97+):
cd server && cargo build --release(andcd hook && cargo build --release), fetch the model withnode scripts/fetch-model.mjs, then point the launcher at them viaGENESIS_MEMORY_BIN,GENESIS_HOOK_BIN, andGENESIS_MODEL_DIR(seeCONTRIBUTING.md). The agent builder works without the memory server; memory is wired into a built agent only when you ask for it.
Genesis is in beta — the latest release is v0.2.0-beta.2 (of 17 published releases). It is honest about what that means:
- The three-agent builder (Sensei, Method, Mneme), the enforcement hooks, and the spec-driven workflow are implemented and have their own test suites (the Rust
genesis-hooksuite, the Rust server suite, and the Node installer/session-copy/plugin tests). - The memory server (v1) —
store/recall/consolidate— is built and tested: 86 unit tests and 17 BDD scenarios pass in release against the real ONNX model, real SQLite, and the real spawned stdio server. Itsconsolidatesummarize/evict pass is deferred to v2 (seeserver/README.md). - The binary distribution is live: prebuilt
genesis-memory-server,genesis-hook, andgenesis-cliplus the pinned model ship as SHA256-verified GitHub Release assets, downloaded by the launcher on first use. Build-from-source remains a fallback. - It is used in production. Agents built with Genesis operate and debug live systems today — from production ML pipelines to a decades-old .NET/C++ codebase — and Genesis itself is developed and maintained by its own agents (Sensei, Method, and the enforcement hooks) under the same rules. Maintainer-confirmed.
No usage, star, or deployment numbers are claimed here — those wouldn't be independently verifiable. Production use is real and maintainer-confirmed; it is stated plainly and never dressed up with counts, uptime, or customer names.
docs/architecture.md— how the plugin, agents, hooks, and memory server fit together.docs/multi-agent-workflow.md— the Sensei → Method build flow in detail.docs/spec-driven-development.md— the spec-first build workflow.server/README.md— the memory server: design, build, and test gates.
Contributions are welcome — Genesis holds every change to the same four rules it enforces on the agents it builds (no shortcuts, no speculation, use the docs, and nothing ships untested or unfinished). See CONTRIBUTING.md for the repository layout, build/test instructions for both the Rust and Node toolchains, and the code style.
Genesis is licensed under the MIT License — see LICENSE. Third-party components it bundles or downloads (the embedding model, ONNX Runtime, SQLite, and key Rust crates) are attributed in NOTICE.md; if you redistribute Genesis, keep both files with it.