From cave-teams
Program WHEN each agent fires — the message state machine. Use to gate agents on runtime state: after these two finish, only if a flag/budget holds, only once a check passed — any rule you can write. THIS is what makes cave-teams programmable where Claude Code Teams' flow is fixed.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cave-teams:cave-conditionsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The `Harness` is an actor core: an agent FIRES when it (a) has a pending message AND (b) passes its conditions. Conditions are predicates over runtime FLAGS; a flag flip — or another agent finishing (auto-sets `done:<agent>`) — re-evaluates who is eligible and fires them. Conditions: `when_flag`, `when_not_flag`, `after` (join/barrier), `when` (any predicate), `all_of`, `any_of`.
The Harness is an actor core: an agent FIRES when it (a) has a pending message AND (b) passes its conditions. Conditions are predicates over runtime FLAGS; a flag flip — or another agent finishing (auto-sets done:<agent>) — re-evaluates who is eligible and fires them. Conditions: when_flag, when_not_flag, after (join/barrier), when (any predicate), all_of, any_of.
from cave_teams import Harness, when_flag, after, when
h = Harness(team_dir)
h.add_condition("publisher", when_flag("approved")) # only after approval
h.add_condition("merge", after("frontend", "backend")) # wait for BOTH (join)
h.add_condition("worker", when(lambda hh, a: hh.get_flag("budget") > 0)) # any rule
h.set_flag("approved") # flip state → re-evaluate
Not a cave() build-op — the Harness is the message runtime (it gates delivery between persistent agents), not a composition Link. Use it directly. A pipeline/join/branch is just conditions + flags + message wiring.
cave-branch · cave-gate · cave-teams
Part of the cave-teams plugin — the language + full DSL is the cave-teams skill; drive any pattern from data with the cave skill.
npx claudepluginhub sancovp/cave-teams --plugin cave-teamsGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.