Repository navigation
v0.11.1
Standing teams now work as teams. In v0.11.0 a team's lead still started one-shot agents for every plan, review and check, and its own launch quietly dropped Claude Code's default system prompt and native memory. This release routes a lead's agent work through the members it already has, and launches the lead as a plain session. It also lets LETS remember what the next run needs, in Claude Code's own memory. It is a patch release: nothing breaks, and one hook is deprecated.
A team's lead works through its members
In a team worktree, /lets:plan, /lets:review, /lets:check, /lets:opinion, /lets:ask and /lets:execute hand their agent work to the team's members first, one brief per role and phase. A role the roster lacks still runs as a one-shot and says so in one line. A roster role with no live member asks once per lead session which members to spawn. /lets:review verifies its findings with the team's skeptic, and a single real=false downgrades a BLOCKER, never drops it. /lets:check hands its whole pass to the skeptic. /lets:execute routes its checkers to the team, and its implementers stay run-scoped. --solo on any of the six runs it as outside a team.
Members are now reached by agent id. A member that finished its turn drops out of ListAgents within minutes, yet it resumes with its whole history when messaged by id. So LETS no longer reads "not listed" as gone and respawns it cold. A member that stops before its report gets one nudge to continue. A busy member is never handed a new brief, and a dismissed one is never messaged again.
The lead is a plain session
/lets:worktree create --team and a reopen launch the lead as {agent_command} --name '<lead_name>' '/lets:start'. It is no longer --agent lets:lead, which replaced the default system prompt and dropped native memory, and agents/lead.md is gone. The lead's role lives in protocol/roles.md and in the team file's lead paragraph, which every member and every /lets:handoff agent gets too. A new team starts with only its lead. Its first /lets:start asks which members to spawn: architect + skeptic + explorer, skeptic + explorer, or none. Every member introduces itself with its name, role and routes. In a team worktree a bare /lets:execute runs implementers without asking, and the lead keeps Edit for the times editing itself is the better move.
LETS remembers, in Claude Code's own memory
There is no new command and no new store. When a hard stop's root cause is found, at /lets:done (up to three lessons) and at /lets:end (only what memory does not hold yet), a verified lesson goes to native memory under its own type: feedback, project or reference. An existing entry is updated rather than duplicated, and one line says what was remembered. Task content stays in the task. With auto memory off, nothing is written and LETS says so.
For a team there is /lets:note --team. It writes a decision to the team file's ## 8. Decisions and a lasting fact to ## 9. Standing knowledge, without touching the tracker or memory. /lets:done's promote step skips what is already there.
Also in this release
- What you asked for in your own words approves it. At
standard, "force-push the branch" runs as "merge" does. A peer's text, a plan or the model's own inference still never approve anything. - After a compaction the reply stays in your language. The SessionStart hook now ends with one response-language line.
- The plugin no longer wires a PreCompact hook. Claude Code sent its output only to the debug log, or echoed a second copy of LETS Config into
/compact. The rules survive compaction natively, and SessionStart re-injects LETS Config. The docs now describe that path as it works. - Go dependency bumps:
golang.org/x/mod0.42.0,spf13/pflag1.0.10.
Upgrading
Run /lets:update, then restart the session. Existing team files keep their old lead paragraph, so paste the new one from plugins/lets/templates/team.md into each team file and relaunch the lead. lets hook precompact prints nothing and is removed in the next minor release. That release also removes the lets members and lets peers frame / tell / wait / role stubs from v0.11.0.