A harness for Claude Code.
A personal AI workbench that remembers your context, researches before building, ships a prototype, and reviews its own code. Work carries forward instead of starting over.
Idea → researched → shipped → remembered. In one session or many.
Elephants never forget. Neither does the harness.
Plain files in one folder. Nothing phones home after install. Prefer to look first? Clone the repo and read install.sh. What it won't do โ
Less starting over.
One skill wouldn’t be worth installing. The point is the arc: what you research feeds what you build, and what you learn shipping it shows up in the next run.
Most loops automate. Few learn.
The difference is whether each cycle changes the loop itself. OpenVera’s loop has four organs, each backed by a hook or a script you can read.
It borrows the self-improvement loop from Karpathy and the agent-and-skills harness shape from OpenClaw. Neither idea is original here; wiring them into one runnable place is the work.
Capture is forced
- Failures and corrections append a dated line to
memory/lessons.md. A Stop hook blocks the session from closing until harness state is written back. Zero lessons is valid. The gate forces write-back, never wisdom.
Curation is judged
/curateruns weekly: one-offs age out, anything recurring three or more times gets flagged for promotion intopatterns.md. You approve. The machine never edits your patterns file.
Promotion is verified
- Every promotion lands in
memory/promotions.tsv. Gone for fourteen days: validated. Recurs: marked failed and flagged for a hook, a doctor check, or a script gate. Prose that doesn’t work graduates into code that does.
The loop is measured
loop-report.pyanswers what cycle fifty knows that cycle one didn’t. It prints the numbers and keeps a trend file.
**Loop report 2026-06-10.** Since cycle 1 the loop has captured 31 lessons (9 in the last 30 days), promoted 4 into patterns (3 validated, 1 failed), and run 22 skill invocations in the last 30 days (86% pass).
Sessions that build on the last.
Claude Code starts every session blank. OpenVera keeps state, decisions, patterns, and lessons in files on disk, so you stop re-explaining your own codebase.
Every session starts from zero.
Each run re-derives context, re-explains the codebase, and re-learns your conventions. Good decisions from yesterday are invisible today.
Every session builds on the last.
State, decisions, patterns, and lessons live in plain files you can read, grep, and edit. Prior research is citable. Session fifty starts where session one left off, and knows things session one didn’t. Every session opens with a cockpit: what moved, what’s next per thread, and what’s blocked on you.
Research first. Pushback second.
The write-back loop is half the harness. The same skepticism runs upstream, before any code exists, so bad plans get cut before they get built.
It researches before it builds
/scout is a two-minute recon: Reddit and YouTube for what real people hit. /research goes deep: eight steps, multiple models so a single model’s blind spots have less room to hide, a source registry so claims are checkable. External findings stay untrusted: extract the technique, verify packages and env vars before you adopt.
Something that isn’t you pushes back
/panel reviews the plan for blind spots before /build. Validator and reviewer agents check the code as it’s built; a separate model scores the result. A per-feature ledger blocks any “done” claim until a validator confirms it. A scope guard cuts a prototype to one or two problems, because a finished prototype that solves one problem beats a spec for V3 that never ships.
Ship in a session, or plan across many.
Choose based on scope. Both paths feed the same memory, so lessons from a quick spike carry into a full production run.
Three tiers of memory.
What’s loaded up front, what’s fetched on demand, and what stays out of context until searched. Boot renders the cockpit first.
- cockpit.md
- state.md
- memory/patterns.md
- relationships/user.md
- ROADMAP.md
- who-i-am/voice.md
- recent conversations
- conversations/
- research papers
- superseded plans
Agents, Commands, Skills.
Three kinds of file compose the harness. You type a slash; the matching instructions load; the work fans out to agents when it helps.
| Primitive | What | Where | Example |
|---|---|---|---|
| Agents | Autonomous actors in isolated contexts. Fresh memory, scoped tools, can be spawned in parallel. | .claude/agents/<name>.md |
Research subagent, code reviewer |
| Commands | Prompt templates injected into the current context. Orchestrate workflows, trigger skills. | .claude/commands/<name>.md |
/doc-sync, /commit |
| Skills | Reusable knowledge packages, loaded lazily: one line in the system prompt until you invoke the slash command. | .claude/skills/<name>/SKILL.md |
/research, /build, /improve |
Fourteen commands, one slash each.
Each skill is a knowledge package with a command surface. Most run free on your existing Claude Code subscription.
What it won’t do.
Enforced in .claude/settings.json and the hooks, not promised in prose. Audit them yourself.
Deny
sudorm -rfยทrm -fr.envfiles.pemยท.keyยท.ssh.awscredentials
Ask first
git reset --hardgit push -f(force variants)git clean -fkillยทpkillยทkillall.secretsfiles
Won’t, by construction
- Won’t push anywhere: nothing in the harness runs
git push. Commits stay local until you push them yourself. - Won’t phone home: after install, no network calls happen on their own. Only the research scripts touch the network, and only when a skill you invoked calls them.
- Won’t edit your patterns:
patterns.mdis hand-curated by rule. The machine lane is separate files. - Won’t keep a dossier on you: the optional user-memory lane records working preferences only. Health, family, employer, finances, location: never written. A doctor check enforces the rule.
Untrusted content
- Script-fetched pages are wrapped in untrusted-content delimiters before the model reads them.
- Extract techniques, not conclusions. Verify first, implement second.
- External recommendations are input, not orders.
One command.
No pip step: OpenVera runs on Python’s standard library alone, so there’s nothing to fail to install. Rather inspect first? Clone the repo and run ./bootstrap.sh instead. API keys are optional: the harness, most skills, and the whole memory loop run on your existing Claude Code subscription. Keys add deep research, Reddit and YouTube depth, and an external scoring gate.