Naoru — generic autonomous code-repair engine (drive → judge → fix → red-first oracle gate).
Project description
Naoru
Naoru (Japanese 治る/直る, "to be healed / to be fixed") is a generic, host-agnostic autonomous code-repair engine: it drives a system-under-test, judges the result, has an LLM worker propose a fix in an isolated worktree, and gates any autonomous commit behind a deterministic red-first oracle (RED→GREEN, N-of-M, fixer-blind).
The import package is fix_engine, the distribution is naoru. Proprietary —
© Unpossible Creations, Inc. (see LICENSE).
The three seams
The engine core imports zero host code. A host binds it to an environment via
fix_engine.host.configure_host(...):
- Executor (
fix_engine.executor) — launch the system-under-test, stream, detect terminal. Ships with a genericadapters.command_executor(run any build/test command). - OutcomePlugin (
fix_engine.outcome) — judge a run RED/GREEN via machine-checkable predicates (exit code, traceback signature, contract violation, output substring, non-crash). - HostServices (
fix_engine.host) — LLM dispatch, runtime paths, tooling discovery, provider classification, and config UI, supplied by the host.
Plus fix_engine.oracle (the mandatory commit gate), fix_engine.safety (sandboxed-by-default
profile), fix_engine.worker (the bounded fix worker), fix_engine.gates (public validation
outcome contract), and fix_engine.worktree.
What's new — the autonomous test-and-improve product
Beyond the engine primitives, naoru now ships a runnable product surface so a third party can install it, declare checks, and run autonomous missions against their own software:
- Declarative leaves (
fix_engine.leaves) — author checks in.toml/.json(a command + a pass-predicate);naoru leaves generateproposes a starter set from your project's tooling. - Mission-driven loop —
naoru run --mission <…>:test-and-fix-bugs(red-first oracle, auto-commit),improve-performance(metric gate, auto-commit),improve-ux/general-improvement(propose-a-patch for review, never auto-commit). The LLM is inherited from your host config (no provider hardcoded); flags override. naoru config— open the host's provider/model picker. Safe by default (sandboxed, gate-required commits);--unsafeis explicit opt-in.
Start at NAORU_ONBOARDING.md; architecture in docs/architecture/harness.md; a runnable
demo in examples/. For turnkey local use, install naoru[obra-host].
Standalone invariant
fix_engine must never import a host product directly. Enforced by
tests/test_fix_engine_boundary.py; a fresh interpreter importing the full core pulls zero host
modules (tests/test_fix_engine_portability.py).
Develop
uv venv && uv pip install -e . && python -m pytest tests/ -q
Releasing
Proprietary, wheel-only (never an sdist). Internal maintainers use the guarded release
pipeline, which builds the wheel and runs the hard verifier before any publish step. The verifier
alone is python scripts/verify_wheel.py [wheel].
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file naoru-0.1.1-py3-none-any.whl.
File metadata
- Download URL: naoru-0.1.1-py3-none-any.whl
- Upload date:
- Size: 50.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59d9700cacdf3f7021cbea34e23a32021d0cada4262e51b74c651296121e5721
|
|
| MD5 |
c7d1ac4ad6f307c6618cc21a22a31d77
|
|
| BLAKE2b-256 |
dbf3ce2d833a18ea3c6597957eb9fda48176a953d3700dd1bfad0baa95e9e7ed
|