ClawSkills logoClawSkills

Jeannie Control

适用于 AI 助手的看板式任务管理仪表板。通过 CLI 或仪表板 UI 管理任务。当用户提到任务、看板、任务板、任务控制

介绍

# Mission Control — Task Management for AI Assistants

一个由你(AI 助手)管理的看板风格任务板。你的人类用户通过 Web 仪表板创建并确定任务优先级;当任务移动到“进行中”时,你将自动执行它们。

## 🚀 快速开始

**只需说:** *“为我的工作区设置 Mission Control”*

Agent 将会: 1. 检查先决条件 2. 将仪表板文件复制到你的工作区 3. 创建配置文件 (`~/.clawdbot/mission-control.json`) 4. 安装 webhook 转换器 5. 设置 GitHub webhook 6. 推送到 GitHub 并启用 Pages

**就这样。** Agent 会处理一切。

---

## 先决条件

在设置之前,你需要:

| 需求 | 检查 | 安装 | |-------------|-------|---------| | **Tailscale** | `tailscale status` | `brew install tailscale` 或 [tailscale.com/download](https://tailscale.com/download) | | **Tailscale Funnel** | `tailscale funnel status` | `tailscale funnel 18789` (一次性) | | **GitHub CLI** | `gh auth status` | `brew install gh && gh auth login` |

如果缺少任何一项,请告知 agent —— 它将引导你完成安装。

---

## 工作原理

1. **仪表板** —— 托管在 GitHub Pages 上的 Web UI,供人类管理任务 2. **Webhook** —— 当任务发生变化时,GitHub 向 Clawdbot 发送推送事件 3. **转换器** —— 对比新旧 tasks.json,检测状态变化 4. **自动处理** —— 当任务移动到“进行中”时,agent 开始工作

### 流程

``` Human moves task → GitHub push → Webhook → Transform → Agent receives work order ↓ ↓ Dashboard Executes task ↓ ↓ Agent updates status ← Commits changes ← Marks subtasks done ←─┘ ```

---

## 任务结构

任务位于 `<workspace>/data/tasks.json`:

```json { "id": "task_001", "title": "Implement feature X", "description": "Detailed context for the agent", "status": "backlog", "subtasks": [ { "id": "sub_001", "title": "Research approach", "done": false }, { "id": "sub_002", "title": "Write code", "done": false } ], "priority": "high", "dod": "Definition of Done - what success looks like", "comments": [] } ```

### 状态值

| 状态 | 含义 | |--------|---------| | `permanent` | 循环任务(每日检查等) | | `backlog` | 等待处理 | | `in_progress` | **Agent 正在处理此任务** | | `review` | 已完成,等待人工批准 | | `done` | 已完成并已批准 |

---

## CLI 命令

使用 `<skill>/scripts/mc-update.sh` 进行任务更新:

```bash # Status changes mc-update.sh status <task_id> review mc-update.sh status <task_id> done

# Comments mc-update.sh comment <task_id> "Progress update..."

# Subtasks mc-update.sh subtask <task_id> sub_1 done

# Complete (moves to review + adds summary) mc-update.sh complete <task_id> "Summary of what was done"

# Push to GitHub mc-update.sh push "Commit message" ```

---

## Agent 工作流

当你收到一个任务(移动到“进行中”)时:

1. **读取** —— 检查标题、描述、子任务、完成标准 (DoD) 2. **标记开始** —— `mc-update.sh start <task_id>` 3. **执行** —— 逐个完成子任务,并标记每个子任务为完成 4. **记录** —— 添加进度评论 5. **完成** —— `mc-update.sh complete <task_id> "Summary"`

### 处理返工

如果一个已完成的任务被移回“进行中”并附带了新评论: 1. 阅读反馈评论 2. 解决问题 3. 添加一条评论说明你的修改 4. 移回 Review 状态

---

## EPICs

EPIC 是包含多个子工单的父任务。当你收到一个 EPIC 时:

1. 子工单列在子任务中(格式:`MC-XXX-001: Title`) 2. 按顺序处理它们 (1 → 2 → 3...) 3. 每完成一个子工单后:评论结果,设置为“review”,标记 EPIC 子任务为完成 4. 最后一个子工单完成后:将 EPIC 设置为“review”

---

## 心跳集成

添加到你的 `HEARTBEAT.md`:

```markdown ## Task Check

1. Check `data/tasks.json` for tasks in "in_progress" 2. Flag tasks with `processingStartedAt` but no recent activity 3. Check "review" tasks for new feedback comments ```

---

## 配置

配置位于 `~/.clawdbot/mission-control.json`。有关所有选项,请参阅 `assets/examples/CONFIG-REFERENCE.md`。

最小化配置(agent 在设置期间设置):

```json { "gateway": { "hookToken": "your-token" }, "workspace": { "path": "/path/to/workspace" }, "slack": { "botToken": "xoxb-...", "channel": "C0123456789" } } ```

---

## 故障排除

有关常见问题,请参阅 `docs/TROUBLESHOOTING.md`:

- 仪表板显示示例数据 → 连接 GitHub 令牌 - Webhook 未触发 → 检查 Tailscale Funnel - 更改未出现 → GitHub Pages 缓存(等待 1-2 分钟)

---

## 安全性

Mission Control 是一个**为** AI agent 设计的任务管理系统 —— 其核心目的是将人类编写的任务描述传递给 agent 执行。这是设计使然,而非漏洞。

### 信任模型

- **单用户 / 受信任用户设置:** 任务作者与控制 agent 的人员相同。信任边界与直接向助手输入消息完全相同。 - **多用户设置:** 如果多个用户可以在仪表板上创建任务,请将任务内容视为不受信任的输入。使用 Clawdbot 的 agent 沙箱和权限模型来限制 agent 可以执行的操作。

### 缓解措施

- **输入清理:** `mc-update.sh` 在将输入传递给 Python 或 git 之前,会根据注入模式验证所有输入。 - **无凭据存储:** 仪表板不存储令牌或机密信息 —— 所有身份验证均由 Clawdbot 的配置处理。 - **Webhook HMAC 验证:** 转换器模块使用 `timingSafeEqual` 验证 webhook 签名,以防止篡改。 - **同步时的安全扫描:** `sync-to-opensource.sh` 脚本在发布之前会扫描泄露的凭据。

### 建议

- 如果你不希望其他人看到你的任务数据,请将你的仪表板仓库设为 **私有**。 - 如果任务是由其他人创建的,请在将其移动到“进行中”之前审查任务描述。 - 使用 Clawdbot 的 `groupPolicy` 和 `allowFrom` 设置来限制谁可以与 agent 交互。

---

## 文件

| 文件 | 用途 | |------|---------| | `<workspace>/index.html` | 仪表板 UI | | `<workspace>/data/tasks.json` | 任务数据 | | `<skill>/scripts/mc-update.sh` | CLI 工具 | | `~/.clawdbot/mission-control.json` | 配置 | | `~/.clawdbot/hooks-transforms/github-mission-control.mjs` | Webhook 转换器 |

更多产品