Repository navigation
Lab Zero v1.18.0 — plain-language wrap closer + constitution drift check
v1.18.0 — 2026-09-01
-
/wrapnow ends by telling you, in plain words, what just happened — and/brocan offer itself. A wrap used to end on a checklist: what was committed, what was reindexed, what the tracking files now say. Accurate, and hard to read when you're tired./wrapgains a final step: three or four short sentences, no headers, no bullets, no file paths or version numbers unless a number is the point — the same register/browrites in. Two guards are hard. The closer is written only after the checks above it have passed, so it can never announce an action that didn't fire; and every real caveat survives into it — dropping one to make the closer land cleanly is the single failure that step must not produce. It also may not invent scope: no "and next session we'll…". It never replaces the checklist, it follows it. Separately,/brois now model-invocable: your agent can reach for it on its own when an answer clearly didn't land, instead of waiting for you to type/bro. That also fixes a dead trigger — the skill has always advertised "or says the last answer was too dense", which was inoperative until now. The other ceremonies keep their manual-only flag; this is/broalone. On an existing install:update.shdelivers both, no config change needed. -
Your project can now tell you when its
AGENTS.mdhas drifted behind the engine.update.shdeliberately never touchesAGENTS.mdorCLAUDE.md— they're your constitution, and a whole-file refresh would destroy your own sections. Correct, but it leaves a gap: engine wording that lives inside those files can never reach you, so it goes stale silently and stays that way. Every commit now runs a short advisory check that reads a baseline shipped with the release and names any engine line no longer present in your constitution —[constitution] ⚠️ AGENTS.md carries engine prose that is out of date:, followed by each expected line. It is advisory and stays that way: it never edits a file, never reaches the network, and never blocks a commit — the shipped hook calls it so that even a broken copy of it cannot stop you committing. Two limits worth knowing: it runs on every commit, not only when you touch a constitution, because staleness is a property of a file nobody is editing; and it has no memory, so if you reworded a line on purpose it will keep naming that line — ignore it. If the baseline is missing or unreadable it prints nothing at all rather than guessing. On an existing install:update.shdelivers both the check and its baselines underscripts/. -
A project you graduate no longer gets a hardcoded list of its own skills. The
AGENTS.mdandCLAUDE.mdwritten into a new project used to name every ceremony inline. That list could only ever be right on the day it was stamped — and becauseupdate.shnever rewrites those two files, it could never be corrected afterwards. It's gone; both now point at the skills directory itself as the always-current list. This is the fix for a real failure:/broshipped in an earlier release and was left undocumented in four of five existing projects, with no mechanism that could have caught up. On an existing install: nothing changes — this is the project template, so it reaches projects you graduate from now on. Your ownAGENTS.mdis yours and is never overwritten; if it still names your skills one by one, that list is now yours to maintain or to delete. -
One caveat about the starter memories. This release also reworded one shipped starter memory — the one about what wrapping a session means — so it no longer reads as forbidding that new plain-language closer. It will not reach you if your Lab is already set up. Starter memories are copied into a fresh Lab home once, per filename, and an existing file is never overwritten, so any Lab that has already been seeded keeps the old wording permanently and has to edit it by hand. Graduated projects never receive the starter memories at all and are unaffected.