启动指挥中心设置
运行此技能的会话即为指挥中心。它不构建任何内容。它为用户提供启动命令,一旦用户说“一切就绪”,它向所有会话发送消息并收集注册信息。消息格式定义在 references/nachrichten.md。命令模板定义在 references/befehle.md。项目和存储位置定义在 references/projekte.md。
第 1 部分:输出命令
- 确定项目:从参数、工作目录、启动行或加载的交接文档中确定项目,并在
references/projekte.md中查找。如果项目不明确(例如从不属于任何项目的文件夹启动),则作为步骤 2 中的第四个问题,以表格中的项目作为选项。如果用户指定新项目,指挥中心自动推导前缀、仓库(来自工作目录或用户指定)和存储位置(默认~/.claude/leitstelle/<前缀>/),在命令上方显示这三个值,并将其录入表格。使用/leitstelle-start kompass可以跳过此问题。 - 提问:在一个
AskUserQuestion对话框中一次性提问:“多少个会话?”(1、2、3、4)、“顾问?”(Fable 5.1(推荐)、Opus 5.5、无)和“顾问的努力程度?”(high(推荐)、xhigh、max、medium)。推荐 Fable,因为与工作会话不同的模型能更独立地检查问题。Opus 是给没有 Fable 访问权限的用户的选择。自由输入的模型 ID 将按原样使用。选择“无”则不需指定努力程度。如果参数已经回答了某些问题,则不再询问;“包含顾问”默认为 Fable + high。除此之外不询问其他内容。 - 分配名称:
ListAgents返回指挥中心自身的名称。新名称为<前缀>-session1到<前缀>-session<n>和<前缀>-advisor。如果某个名称已在ListAgents中出现(无论状态如何),指挥中心会添加-b(然后-c),并在单行中告知用户。 - 包含顾问:加载技能
leitstelle-advisor,角色为指挥中心,并遵循references/leitstelle.md中“启动”部分的步骤。每个新设置得到一个新的问题册和新档案:现有的fragen.md和所有kontext-s*.md文件先移至/advisor/archiv/目录下,文件名包含日期(例如fragen-<YYYY-MM-DD>.md,同一天第二次则加-2),不会覆盖任何文件。新档案中的目标和计划保持“待定,随第一个任务而来”。 - 输出命令:每个终端一个独立的
bash代码块,每个块只有一行。上方一行说明哪个终端对应哪个块,顾问排在最后。下方一行:“所有终端都启动后,请告诉我‘一切就绪’。”
会话启动后会静默等待。如果有会话提前发送消息,它会立刻收到 LEITSTELLE-START,并且在第 2 部分中不会重复被联系。
第 2 部分:收到“一切就绪”
触发条件是用户说的“一切就绪”或类似“所有都在运行”。
- 调用一次
ListAgents。 - 指挥中心向每个列出的会话发送
LEITSTELLE-START,包含角色和游戏规则。会话通过SendMessage回复ANMELDUNG,指挥中心记录目录、分支和 HEAD。 - 包含顾问时:向顾问发送
ADVISOR-PROBE至leitstelle-advisor。收到ADVISOR-PROBE OK后,每个已注册的会话收到ADVISOR-BEREIT,后续注册的会话在注册后立即收到。 - 如果
ListAgents中缺少某个名称,指挥中心再次输出该终端的命令,并附加一句:“当它准备好时,请告诉我‘<名称> 已启动’。” 收到此消息后,它调用一次ListAgents并发送LEITSTELLE-START,顾问则发送ADVISOR-PROBE。 - 当所有会话都到位后,指挥中心向用户报告“所有会话已注册”,并附带一个表格:名称、角色、目录、分支、HEAD。之后,如果用户提出任务,指挥中心开始分发任务。
权限模式
所有命令都带有 --permission-mode 参数,其值与指挥中心自身运行的权限模式一致。指挥中心通过系统提示识别该模式,否则在第 1 部分步骤 2 的对话中询问。如果模式不同,Claude Code 会在会话之间保留消息以待批准,导致注册失败。如果指挥中心运行在 bypassPermissions 模式且计划包含顾问,则它不会输出命令,而是说:“顾问永远不会在 bypassPermissions 模式下运行。请以 auto 模式重新启动指挥中心并再次调用 /leitstelle-start,或者运行不包含顾问的设置。”
注册失败时
指挥中心不会循环询问或发送“你在吗?”之类的消息。LEITSTELLE-START 发送时带有 notify_when_idle: true。如果收到空闲通知但没有注册,它会重新发送一次 LEITSTELLE-START,因为第一条消息可能落在启动阶段。如果仍然没有响应,或者收到投递警告,会向用户输出一行信息:在窗口 <名称> 中可能有一个批准对话框在等待,或者权限模式不匹配。
修改后测试
bash ~/.claude/skills/leitstelle-advisor/scripts/pruefe-skill.sh ~/.claude/skills/leitstelle-start