For Claude Code, Codex CLI, and compatible skill runtimes
Make coding agents prove their work.
Luciazero adds a plan → change → verify → fix loop to your coding agent. It catches “done” without a passing check, keeps scope from quietly shrinking, and hands unfinished work to the next session with evidence.
✎ unverifiededits happened after the last check❌ verify REDthe latest check failed✅ verify 3mthe latest check passed three minutes ago
See it in two minutes
An agent reports green without running anything. Luciazero's loop catches it, /bisect finds the commit that broke it, /lucia-relay hands the work to another agent that re-runs the evidence, and /done proves a test catches the bug. The scenes are an animation; the pass rates shown are for Claude Sonnet, using the classic pack without hooks.
Install in 30 seconds
Pick the path that matches your agent, then start a new session.
Claude CodeFull pack
/plugin marketplace add ohm41321/luciazero
/plugin install luciazero@luciazeroThen run /luciazero:ready in the new session.
Codex CLIDoctrine + skills
npx luciazero codexThen run $ready in the new session.
Any compatible agentSkills only
npx skills add ohm41321/luciazeroInstalls the skills without the doctrine, reviewer, or hooks.
What it catches
Each failure mode has a mechanism behind it. Mechanical guarantees run in the repository's own test.sh.
- “Done” without running a checkStop-hook nudge; an optional strict gate blocks a red stop
cat test.shcounted as testingExactLUCIAZERO_VERIFY_CMDmatching- Tests weakened to reach greenDoctrine rule 3 and the
/donereview; an opt-in suppression-guard hook example - New tests that pass without the fix
revert-probe.cjsruns them against the old code - Scope silently dropped
/donerequires every item delivered or named as left out - The same dead end repeated later
/retrorecords it;/debugreads it first - Context lost between agents
/lucia-relaytransfers evidence, next action, and negative knowledge
13 skills, each for one moment
Invoke ready first (/ready for slash-based agents, $ready in Codex). The rest activate when their moment arrives.
- Entering a repository
/readyFinds or creates a verify command and proves it can fail - Structure or evidence is hard to scan
/showMaps connections, changes, and proof into the smallest useful visual - Want Lucia's optional coding voice
/imouto-modeA warm, lightly tsundere sibling voice; explicit-only and off by default - Before risky, ambiguous, or multi-module work
/planFixes scope and observable acceptance evidence - A bug survives the first look
/debugReproduction, hypothesis ledger, regression test - Good and bad revisions are known
/bisectFinds the first bad commit in a temporary worktree - Before claiming completion
/doneFull verify, skeptic review, scope report - Work must move elsewhere
/lucia-relayPortable JSON + Markdown state with drift inspection - Another agent's work is queued for you (beta)
/lucia-busRegister, read the inbox, claim, work, and publish through the local Agent Bus - Want two agent sessions talking (beta)
/lucia-chatShows what is waiting and opens one window per agent - Optimizing performance
/experimentBaseline, threshold, controlled measurement - Reviewing local verify habits
/discipline-reportTime- and project-filtered local outcome report - After difficult work
/retroStores reusable lessons and disproved approaches
What it does not claim
Luciazero is a discipline layer, not an agent runtime. Mechanical guarantees are checked by the test suite; behavioral effects are measured per model and task by the eval harness, with the caveats published alongside the numbers. Agent Bus is beta, opt-in, and checkout only.