From 15150258041d4bed68e5e9568c66108c44710cee Mon Sep 17 00:00:00 2001 From: Dai Ha Date: Thu, 10 Sep 2026 06:28:51 +0700 Subject: [PATCH] charter: a profile differs in liveness, not just model and cost The old line said profiles differ in model and cost. That is true and it is not the reason the default hurts. Measured on two hosts: a default sitting on an exhausted or withdrawn credential either fails the spawn loudly or, worse, produces a member that starts fine and then returns nothing. Wording proposed by the fleet01 lead; merged with the existing 'not in tier' clause, which is still right. Applied byte-identically to the wiki template. --- CLAUDE.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index b995d75..fc78a72 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -79,8 +79,11 @@ below are the procedure — run them in order, every task, not only the big ones the final judgment call, verification, merges, and anything that depends on context only you hold. Nothing else is yours by default. 3. **Spawn every delegated unit first** — `fleet_spawn{profile, worktree:true, ticket}`, one per - unit, *before* sending any. Pass `profile` explicitly: profiles differ in model and cost, not in - tier, so the default is rarely what you want. + unit, *before* sending any. Pass `profile` explicitly: profiles differ in model, cost and + LIVENESS, not in tier, so the default is rarely what you want. The default is whatever the + daemon reports, and on a host where it sits on an exhausted or withdrawn credential every + unqualified spawn fails — sometimes loudly, sometimes as a member that spawns fine and then + produces nothing. `fleet_profiles` reports the default; check it once per session. 4. **Then send them all** — `fleet_send{sessionId, content, wait:false}`. Line 1 of every brief is `Load the skill.` naming the worker's playbook; those skills are opt-in and that line is what makes them reliable. Where the project ships no such skill, spell the procedure out in the