Skip to content

Lab Zero v1.20.0 — helper agents, one-run updater, report-all reviews, curated seeding

Choose a tag to compare

@rayrage213 rayrage213 released this 25 Sep 18:30
· 1 commit to main since this release

Updating to this release: run bash update.sh twice. This release adds a new machinery folder, and the update.sh you already have only learns about new folders from the copy it downloads — so the first run fetches the new updater and the second run delivers the rest. In a graduated project, commit between the two runs (git add -A && git commit -m "lab-zero update") — otherwise the second run lists the first run's files as uncommitted changes about to be overwritten; that warning is harmless here, and pressing Ctrl-C at it stops the lanes from arriving. After the first run, --check already reports v1.20.0, so check the result instead: ls .claude/agents/lab-zero/ should show lab-reader.md and lab-reviewer.md. If it doesn't, run bash update.sh again. From this release on, one run is enough (see the first item below).

  • update.sh now finishes in one run, even when a release adds something new. A running updater worked from the list of machinery paths it started with, so a path added upstream arrived only on your next run. Now, if the updater itself changed during the run, it restarts the new copy once, with your original arguments, and that pass picks up anything new. It restarts at most once (a guard variable stops any loop), never in --check mode, and in a project's update.sh the second pass doesn't repeat the "uncommitted changes will be overwritten" warning for files the first pass just wrote. Tested on bash 5; not yet exercised on bash 3.2 (the macOS default). If the restart ever stops early there, running bash update.sh once more completes the update.

  • Two read-only helper agents ship with the engine (Claude Code). lab-reader (Sonnet) answers a question from the files with a short cited answer and marks anything it couldn't confirm, with where it looked. lab-reviewer (Opus) runs an adversarial pass — risk, feasibility, scope, or a diff — and reports every finding with severity, confidence and file:line, leaving the ranking to you. Both can only read, search and list files. Each one's description says when to use it and that it is not for re-checking your own work. They live in .claude/agents/lab-zero/, which is the only part of .claude/agents/ the updater touches — agents you write yourself stay yours, and contribute.sh never sends anything under .claude/agents/ or template/.claude/agents/ upstream. Codex: these are Claude Code agent files, and Codex doesn't read them — the helpers change nothing for Codex. (The skill changes below do reach Codex.) If a helper is ever renamed or withdrawn, that release's notes will carry the git rm line, because updating never deletes.

  • Reviews now report everything, then filter. /audit and /discover-skills used to cap how many findings they reported (about 8 per file and about 6 candidates per pass). Current models can follow a cap like that literally and report less, not just show less. Now they inventory everything first, then show a ranked short view, and the written report lists every item left out of that view with a one-line reason. An unverifiable /audit item goes under Unverified leads with where it looked, and is never acted on until a fresh pass verifies it. /discover-skills records overflow as DEFERRED, so the next sweep looks at it again instead of treating it as settled. A "nothing found" result now names what was checked. /lab-plan's reviewers report every finding too, and the consolidation step lists each one it drops, with the reason.

  • /lab-plan no longer asks projects to guard a "shipped engine". Its list of changes that need a plan was written for the Lab Zero factory. It now reads: code or config others depend on (a published package, a deployed service, a shipped template), a hook, security or auth, user data, a release, or a change spanning several files or systems. It also points at your project constitution as AGENTS.md / CLAUDE.md, and /audit no longer names a Claude-specific tool.

  • A new project's memory starts with the starter habits only. new-project.sh used to copy your Lab's whole memory into each project it graduated — Lab-only memories and facts frozen on the day of stamping included. It now seeds exactly the curated memory-seed/ starter set, and never overwrites a file that's already there. To also copy your Lab's own memories, pass --seed-from-lab (same no-overwrite rule; your Lab's MEMORY.md index is not copied over the starter one, so those extra files won't be listed in it). --no-seed still skips seeding. /new-project now describes this, and correctly says the purpose goes into the project's AGENTS.md. On an existing install: this affects projects you graduate from now on; existing projects' memory is untouched.