# mission-control
Mission Control — Task Management for AI Assistants
A Kanban-style task board that you (the AI assistant) manage. Your human creates and prioritizes tasks via the web dashboard; you execute them automatically when they're moved to "In Progress".
🚀 Quick Start
Just say: "Set up Mission Control for my workspace"
The agent will:
Check prerequisites (Tailscale, gh CLI)
Copy dashboard files to your workspace
Create the config file (~/.clawdbot/mission-control.json)
Install the webhook transform
Set up GitHub webhook
Push to GitHub and enable Pages
That's it. The agent handles everything.
Prerequisites
Before setup, you need:
RequirementCheckInstallTailscaletailscale statusbrew install tailscale or tailscale.com/downloadTailscale Funneltailscale funnel statustailscale funnel 18789 (one-time)GitHub CLIgh auth statusbrew install gh && gh auth login
If any are missing, tell the agent — it will guide you through installation.
How It Works
Dashboard — Web UI hosted on GitHub Pages where humans manage tasks
Webhook — GitHub sends push events to Clawdbot when tasks change
Transform — Compares old vs new tasks.json, detects status changes
Auto-Processing — When a task moves to "In Progress", the agent starts working
The Flow
Human moves task → GitHub push → Webhook → Transform → Agent receives work order
↓ ↓
Dashboard Executes task
↓ ↓
Agent updates status ← Commits changes ← Marks subtasks done ←─┘
Task Structure
Tasks live in /data/tasks.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": []
}
Status Values
StatusMeaningpermanentRecurring tasks (daily checks, etc.)backlogWaiting to be worked onin_progressAgent is working on thisreviewDone, awaiting human approvaldoneCompleted and approved
CLI Commands
Use <skill>/scripts/mc-update.sh for task updates:
# Status changes
mc-update.sh status review
mc-update.sh status done
# Comments
mc-update.sh comment "Progress update..."
# Subtasks
mc-update.sh subtask sub_1 done
# Complete (moves to review + adds summary)
mc-update.sh complete "Summary of what was done"
# Push to GitHub
mc-update.sh push "Commit message"
Agent Workflow
When you receive a task (moved to "In Progress"):
Read — Check title, description, subtasks, dod
Mark started — mc-update.sh start
Execute — Work through subtasks, mark each done
Document — Add progress comments
Complete — mc-update.sh complete "Summary"
Handling Rework
If a completed task is moved back to "In Progress" with a new comment:
Read the feedback comment
Address the issues
Add a comment explaining your changes
Move back to Review
EPICs
EPICs are parent tasks with multiple child tickets. When you receive an EPIC:
Child tickets are listed in the subtasks (format: MC-XXX-001: Title)
Work through them sequentially (1 → 2 → 3...)
After each child: comment result, set to "review", mark EPIC subtask done
After last child: set EPIC to "review"
Heartbeat Integration
Add to your HEARTBEAT.md:
## Task Check
- Check
data/tasks.json for tasks in "in_progress"
- Flag tasks with
processingStartedAt but no recent activity
- Check "review" tasks for new feedback comments
Configuration
Config lives in ~/.clawdbot/mission-control.json. See assets/examples/CONFIG-REFERENCE.md for all options.
Minimal config (set by agent during setup):
{
"gateway": { "hookToken": "your-token" },
"workspace": { "path": "/path/to/workspace" },
"slack": { "botToken": "YOUR_SKILLBOSS_API_KEY", "channel": "[email protected]" }
}
slack.botToken 填写 SKILLBOSS_API_KEY,通知通过 SkillBoss API Hub 发送。slack.channel 填写接收通知的邮件地址。
Troubleshooting
See docs/TROUBLESHOOTING.md for common issues:
Dashboard shows sample data → Connect GitHub token
Webhook not triggering → Check Tailscale Funnel
Changes not appearing → GitHub Pages cache (wait 1-2 min)
Security
Mission Control is a task management system for AI agents — its core purpose is to pass human-authored task descriptions to an agent for execution. This is by design, not a vulnerability.
Trust Model
Single-user / trusted-user setup: Task authors are the same people who control the agent. The trust boundary is identical to typing a message directly to your assistant.
Multi-user setups: If multiple users can create tasks on the dashboard, treat task content as untrusted input. Use Clawdbot's agent sandbox and permission model to limit what the agent can do.
Mitigations
Input sanitization: mc-update.sh validates all inputs against injection patterns before passing them to Python or git.
No credential storage: The dashboard stores no tokens or secrets — all auth is handled by Clawdbot's config.
Webhook HMAC verification: The transform module validates webhook signatures using timingSafeEqual to prevent tampering.
Security scan on sync: The sync-to-opensource.sh script scans for leaked credentials before publishing.
Recommendations
Keep your dashboard repository private if you don't want others to see your task data.
Review task descriptions before moving them to "In Progress" if the task was created by someone else.
Use Clawdbot's groupPolicy and allowFrom settings to restrict who can interact with the agent.
Files
FilePurpose<workspace>/index.htmlDashboard UI<workspace>/data/tasks.jsonTask data<skill>/scripts/mc-update.shCLI tool~/.clawdbot/mission-control.jsonConfig~/.clawdbot/hooks-transforms/github-mission-control.mjsWebhook transform