Community生产力与协作github.com

mpbt-hq/starfleetctl

多智能体协调 / 指挥与控制工具包,遵循星际迷航舰队隐喻

starfleetctl 是什么?

starfleetctl 是一个用于协调并发 AI 智能体会话(称为“舰船”)的命令与控制工具包,采用星际迷航的舰队隐喻。它支持跨舰船通信、并发与隔离管理、任务捕获、仪表板查看以及报告提交,帮助用户在多智能体环境中高效组织工作。该工具主要面向 Claude Code、Cursor、Codex 等 AI 编程助手,通过 CLI 工具(starfleetctl)实现舰队级操作。其核心机制包括自动化的系统提示注入消息轮询、Git 工作树隔离和 PR 分支所有权声明,确保多个智能体可以在独立的工作区并行工作而不互相干扰。此外,它还提供完整的仪表板和报告系统,方便人类用户追踪任务状态和查看结构化输出。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add mpbt-hq/starfleetctl

Installed? Explore more 生产力与协作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

starfleet — 舰队协调

面向并发 AI 智能体会话(“舰船”)的舰队级协调。涵盖舰船间通信、并发/隔离、任务捕获以及 starfleetctl CLI。

舰船间通信(通讯)

舰船通过 starfleetctl comms 进行通信。消息通过系统提示注入自动到达 — 切勿手动调用 comms inbox(轮询器已自动注入未读消息)。

通讯规则

  1. 始终回复。 当收到 tell 或 ask 消息时,通过 starfleetctl comms tell <sender> 回复。沉默意味着消息丢失。
  2. 回复后确认。 使用 starfleetctl comms ack <id> 从收件箱中清除消息。
  3. 通讯问题 → 在两个地方回答: 通过 comms tell(以便发送方收到)以及在本地控制台(以便人类看到)。
  4. 保持公告板更新。 开始或完成工作后设置状态。
  5. 切勿调用 comms --help。 完整参考在 starfleetctl 技能或本文档中。

关键通讯子命令

命令用途
comms tell <ship> "<msg>"向某舰船发送指令
comms tell <ship> --stdin通过标准输入发送大量消息
comms broadcast "<msg>"向所有舰船广播
comms ask "<question>"提问(期望异步回复)
comms ack <id>确认/移除收件箱中的消息
comms board显示舰队状态面板
comms board --json机器可读的面板(用于脚本)
comms status <status>设置自身状态(空闲/工作中/阻塞)

并发 / 隔离

舰船不得同时在同一 Git 工作树上工作。请使用独立的克隆或工作树。PR 分支所有权:每个克隆都推送到同一个 GitHub PR 分支 — 在修改 PR 之前,请使用 starfleetctl github pr claim。

关键规则

  • 不同的工作树不会互相覆盖。 在独立的工作区中并行执行。
  • 风险: 两个参与者同时修改同一个克隆。
  • PR 分支所有权: 在修改 PR 之前使用 starfleetctl github pr claim。

快速参考

starfleetctl github pr make <commit> [<commit> ...]   # 从孵化器提交 PR
starfleetctl github pr mk-agent-clone <branch> [name] # 智能体拥有的克隆
starfleetctl github pr claim <pr#> "what"              # 声明 PR 分支
starfleetctl github pr claim --release <pr#>           # 释放声明
starfleetctl github backport commit <release> <commit> # 一次性的反向移植
.starfleet-ai/bin/starfleetctl worktree add <repo> [name] # 每任务工作树
starfleetctl with-clone-lock <cmd...>                  # 序列化修改操作

任务捕获

在仪表板上记录任务,可选地指派舰船。此命令仅负责记录 — 切勿亲自执行任务。 不能直接文件访问 DASHBOARD.md 或 dashboard/topics/*.md。

一行命令

starfleetctl task capture --title "<title>" \
    [--desc "<需要做什么>"] \
    [--slug "<覆盖>"] \
    [--assign [<ship>]] \
    [--no-push]
  • --assign(无名称)→ 路由到主舰,由其代理或执行
  • --assign <ship> → 指定舰船
  • 不加 --assign → 记录为开放,无指派

管理现有任务

starfleetctl task assign <slug> [<ship>] [--no-push]   # 重新指派
starfleetctl task unassign <slug> [--no-push]          # 清除指派
starfleetctl task status <slug> <status> [--no-push]   # 设置状态
starfleetctl task rm <slug> [--no-push]                # 删除任务主题
starfleetctl task purge [--no-push]                    # 删除所有已完成的任务

仪表板

仪表板是跨会话的“当前进度”索引。所有访问均通过 CLI — 切勿 Read/Edit/Write/Glob/Grep 操作 DASHBOARD.md 或 dashboard/topics/*.md。

主题文件格式(前置元数据)

位于 dashboard/topics/<slug>.md 的主题文件使用类似 YAML 的前置元数据:

---
title: "我的任务"
category: active       # "active" 或 "parked";缺失时默认为 "active"
kind: "task"           # 可选;标记为可调度任务
status: "open"         # 仅 active 有效:open/assigned/done/...
assigned-to: "—"       # 舰船名称或 "—"
tags: "starfleet"      # 可选,逗号分隔
---

只有 title 是必需的 — category 默认为 active,其他所有字段都是可选的。这是对手写主题的有意设计:你可以放入一个最小文件,它就会自动出现在活动列表中。

始终通过 dashboard topic list --json 列出主题 — 没有 dashboard list 子命令;dashboard list 是错误的/无效的命令,会返回 dashboard: unknown command: list。

命令用途
dashboard topic list --json列出所有主题(JSON,用于过滤)
dashboard topic list列出所有主题(人类可读)
dashboard topic new <slug>创建主题
dashboard topic write <slug> <file>写入主题内容
dashboard topic commit <slug>提交并推送主题
dashboard reindex刷新 DASHBOARD.md 索引
dashboard commit提交并推送索引

报告

通过 CLI 或 Web 界面提交和查询结构化舰队报告(测试结果、构建摘要、CI 状态等)。每份报告包含标题、可选副标题、Markdown 正文、标签、仪表板任务引用和文件附件。

关键命令

starfleetctl reports submit "标题" \
    --subtitle "一句话描述" \
    --body "Markdown 正文" \
    --body-file path/to/log \
    --tags "ci,build" \
    --task-ref xlibre/some-task \
    --attachment path/to/file

starfleetctl reports list                          # 最新在前
starfleetctl reports list --ship Enterprise        # 按舰船筛选
starfleetctl reports list --tag ci --json          # 过滤并输出 JSON
starfleetctl reports show <id>
starfleetctl reports delete <id>

附件会上传到文件存储(file put → /api/store/<name>)。完整参考和 Web UI 教程请参见 doc/reports.md。

Starfleetctl CLI

一个用于舰队协调的 Go 语言 CLI。引导:./starfleet-bootstrap(更新 .starfleet-ai/)。完整参考:本技能目录中的 reference.md。

子命令概览

类别命令
舰队comms, dashboard, ws-commit, ship-names, with-clone-lock, worktree
会话run, session list/attach/stop
任务task capture/assign/unassign/status/rm/purge
定时器timer set/list/cancel
Webweb start/stop/restart/autostart
报告reports submit/list/show/delete
设置genesis-init, self-install, sop install-starfleet
GitHub(读取)github pr view/ci/file-on-branch/wait-green/show-branch-file, github backport applies
GitHub(写入)github pr comment/label/set-body/checkout/amend-push/make, github backport commit

相关技能