Tick Multi-Agent Coordination
透過結構化的 Markdown 檔案協調人類與 AI 代理人之間的工作。使用者以自然語言與你互動,而你則在 TICK.md 中透明地維護任務。
安裝
先決條件:Tick CLI 和 MCP 伺服器應已由您的環境安裝並設定完成。
首次設定? 請參閱 INSTALL.md 以取得特定編輯器的安裝說明。
安全界限
- 在編輯編輯器 MCP 設定檔之前,要求使用者明確核准。
- 在執行任何推送至遠端 Git 的指令(
tick sync --push或git push)之前,要求使用者明確核准。 - 如果使用者未明確核准,請使用唯讀/狀態指令,並說明待執行的寫入動作。
快速檢查:
# 確認 CLI 可用
tick --version
# 檢查專案中是否存在 TICK.md
ls TICK.md
# 如果不存在,則初始化
tick init
核心概念
Tick 協議 = 透過 TICK.md 檔案進行以 Git 為基礎的任務協調
- 人類可讀:標準的 Markdown 加上 YAML
- 機器可解析:結構化以供工具使用
- Git 支援:完整的版本控制和稽核軌跡
- 本機優先:無需雲端
快速開始
檢查 Tick 是否已初始化
ls TICK.md
如果尚未初始化
tick init
取得目前狀態
tick status
常見工作流程
1. 使用者請您執行某項工作
使用者:「你可以重構驗證系統嗎?」
您的行動:
# 1. 建立任務
tick add "重構驗證系統" --priority high --tags backend,security
# 2. 註冊您自己(僅首次)
tick agent register @您的名稱 --type bot --roles "engineer,refactoring"
# 3. 認領任務
tick claim TASK-XXX @您的名稱
# 4. 開始執行(執行實際工作)
# 5. 新增進度註解
tick comment TASK-XXX @您的名稱 --note "分析目前的驗證流程"
tick comment TASK-XXX @您的名稱 --note "已重構為使用 JWT 令牌"
# 6. 標記完成
tick done TASK-XXX @您的名稱
2. 使用者詢問專案狀態
使用者:「我們正在處理哪些任務?」
# 取得完整的狀態
tick status
# 或過濾並列出任務
tick list --status in_progress
tick list --claimed-by @機器人名稱
自然地為使用者總結輸出內容。
3. 與其他代理人協調
使用者:「其他代理人的任務完成了嗎?」
# 檢查整體狀態
tick status
# 列出代理人和他們的工作
tick agent list --verbose
# 驗證專案
tick validate
4. 分解複雜工作
使用者:「建立一個包含圖表和資料匯出的使用者儀表板」
您的行動:
# 建立父任務
tick add "建立使用者儀表板" --priority high --tags frontend
# 建立具有依賴關係的子任務
tick add "設計儀表板版面" --priority high --tags frontend,design
tick add "實作資料圖表" --priority medium --tags frontend,charts --depends-on TASK-XXX
tick add "新增 CSV 匯出" --priority low --tags frontend,export --depends-on TASK-XXX
# 視覺化依賴關係
tick graph
指令參考
專案管理
tick init # 初始化新專案
tick status # 檢視專案概覽
tick list # 使用篩選條件列出任務
tick graph # 視覺化依賴關係
tick watch # 即時監控變更
tick validate # 檢查錯誤
tick sync --pull # 拉取最新變更
# tick sync --push # 僅在使用者明確核准時執行
任務操作
tick add "任務標題" \
--priority high \ # urgent|high|medium|low
--tags backend,api \ # 逗號分隔的標籤
--assigned-to @agent \ # 指派給代理人
--depends-on TASK-001 \ # 依賴關係
--estimated-hours 4 # 時間估計
tick claim TASK-001 @agent # 認領任務(設定為 in_progress)
tick release TASK-001 @agent # 釋放任務(回到 todo)
tick done TASK-001 @agent # 完成任務
tick reopen TASK-001 @agent # 重新開啟已完成的任務
tick delete TASK-001 # 刪除任務
tick comment TASK-001 @agent \ # 新增註解
--note "進度更新"
tick edit TASK-001 \ # 直接編輯欄位
--title "新標題" \
--priority high \
--status in_progress
修正與復原
tick reopen TASK-001 @agent # 重新開啟已完成的任務
tick reopen TASK-001 @agent \ # 重新開啟並重新封鎖依賴項
--re-block
tick delete TASK-001 # 刪除任務,清理依賴關係
tick delete TASK-001 --force # 即使有依賴項也強制刪除
tick edit TASK-001 --title "X" # 變更標題
tick edit TASK-001 --priority high # 變更優先順序
tick edit TASK-001 --status todo # 直接變更狀態
tick edit TASK-001 --tags a,b,c # 取代標籤
tick edit TASK-001 --add-tag new # 新增標籤
tick edit TASK-001 --remove-tag old # 移除標籤
tick edit TASK-001 \ # 編輯依賴關係
--depends-on TASK-002,TASK-003
tick undo # 復原上一個 tick 操作
tick undo --dry-run # 預覽將復原的內容
批次操作
tick import tasks.yaml # 從 YAML 檔案匯入任務
tick import - < tasks.yaml # 從標準輸入匯入
tick import tasks.yaml --dry-run # 預覽匯入
tick batch start # 開始批次模式(無自動提交)
tick batch status # 檢查批次狀態
tick batch commit # 提交所有批次變更
tick batch abort # 捨棄批次變更
進階任務列出
tick list # 所有任務,依狀態分組
tick list --status blocked # 僅顯示被封鎖的任務
tick list --priority urgent # 高優先順序任務
tick list --assigned-to @alice # 特定代理人的任務
tick list --tag backend # 具有特定標籤的任務
tick list --json # JSON 輸出,適用於指令碼
依賴關係視覺化
tick graph # ASCII 依賴關係樹
tick graph --format mermaid # Mermaid 流程圖
tick graph --show-done # 包含已完成的任務
即時監控
tick watch # 監控變更
tick watch --interval 10 # 自訂輪詢間隔
tick watch --filter in_progress # 僅顯示特定狀態
代理人管理
tick agent register @名稱 \ # 註冊新代理人
--type bot \ # human|bot
--roles "dev,qa" \ # 逗號分隔的角色
--status idle # working|idle|offline
tick agent list # 列出所有代理人
tick agent list --verbose # 詳細資訊
tick agent list --type bot # 依類型篩選
tick agent list --status working # 依狀態篩選
MCP 工具(CLI 替代方案)
如果使用 Model Context Protocol,請使用這些工具來替代 CLI 指令:
狀態與檢查
tick_status- 取得專案狀態(代理人、任務、進度)tick_validate- 驗證 TICK.md 結構tick_agent_list- 列出代理人,可選篩選條件
任務管理
tick_add- 建立新任務tick_claim- 為代理人認領任務tick_release- 釋放已認領的任務tick_done- 完成任務(自動解除依賴項封鎖)tick_comment- 為任務新增註解
修正與復原
tick_reopen- 重新開啟已完成的任務tick_delete- 刪除任務tick_edit- 直接編輯欄位(跳過狀態機)tick_undo- 復原上一個 tick 操作
代理人操作
tick_agent_register- 註冊新代理人
MCP 範例:
// 透過 MCP 建立任務
await tick_add({
title: "重構驗證",
priority: "high",
tags: ["backend", "security"],
assignedTo: "@機器人名稱"
})
// 認領任務
await tick_claim({
taskId: "TASK-023",
agent: "@機器人名稱"
})
最佳實務
1. 先進行自然對話
✅ 良好:使用者說「重構驗證」,你自動建立任務 ❌ 不佳:強迫使用者明確建立任務
2. 始終使用您的代理人名稱
註冊一次:
tick agent register @您的機器人名稱 --type bot --roles "engineer"
然後持續使用:
tick claim TASK-001 @您的機器人名稱
tick done TASK-001 @您的機器人名稱
3. 在註解中提供上下文
# ✅ 良好 - 說明做了什麼以及原因
tick comment TASK-005 @bot --note "從 REST 切換到 GraphQL,以獲得更好的型別安全並減少過度擷取"
# ❌ 不佳 - 過於模糊
tick comment TASK-005 @bot --note "更新了 API"
4. 分解大型任務
建立帶有依賴關係的子任務:
tick add "設定 CI/CD 管線" --priority high
tick add "設定 GitHub Actions" --depends-on TASK-010
tick add "新增部署指令碼" --depends-on TASK-011
tick add "設定測試環境" --depends-on TASK-011
5. 在認領前檢查狀態
# 確認任務存在且未被認領
tick status
# 然後認領
tick claim TASK-XXX @您的名稱
理解 TICK.md 結構
檔案包含三個部分:
- Frontmatter(YAML):專案後設資料
- 代理人表格(Markdown):誰在處理什麼
- 任務區塊(YAML + Markdown):個別任務及其歷史記錄
範例:
---
project: my-app
schema_version: "1.0"
next_id: 5
---
# 代理人
| 名稱 | 類型 | 角色 | 狀態 | 正在處理 |
|------|------|-------|--------|------------|
| @alice | human | owner | working | TASK-003 |
| @bot | bot | engineer | idle | - |
# 任務
\```yaml
id: TASK-001
title: 建立驗證
status: done
priority: high
claimed_by: null
# ... 更多欄位
history:
- ts: 2026-02-07T10:00:00Z
who: @bot
action: created
- ts: 2026-02-07T14:00:00Z
who: @bot
action: done
\```
已實作基於 JWT 的驗證,支援令牌重新整理...
進階功能
自動解除相依封鎖
當您完成任務時,依賴的任務會自動解除封鎖:
# TASK-002 依賴 TASK-001
# TASK-002 狀態:blocked
tick done TASK-001 @bot
# TASK-002 自動變更為:todo
循環依賴偵測
驗證會捕捉循環依賴:
tick validate
# 錯誤:偵測到循環依賴:TASK-001 → TASK-002 → TASK-003 → TASK-001
智慧提交訊息
# 僅在使用者明確核准時執行
tick sync --push
# 自動產生:"feat: complete TASK-001, TASK-002; update TASK-003"
重新開啟已完成的任務
如果任務過早被標記為完成:
tick reopen TASK-001 @bot
# 將狀態設定回 in_progress,並記錄在歷史中
tick reopen TASK-001 @bot --re-block
# 同時重新封鎖任何依賴此任務的任務
修正錯誤
# 復原上一個 tick 操作
tick undo
# 先預覽將復原的內容
tick undo --dry-run
# 直接編輯欄位(跳過狀態機)
tick edit TASK-001 --status todo --priority urgent
批次操作
如果需要進行多項變更而不個別提交:
tick batch start
# 現在進行多項變更...
tick add "任務 1" --priority high
tick add "任務 2" --priority medium
tick claim TASK-001 @bot
# ...
tick batch commit # 將所有變更作為單一提交
# 或:tick batch abort # 捨棄所有變更
即時監控
tick watch
# [10:23:45] ✓ 已新增:TASK-015 - 實作使用者搜尋
# [10:24:12] 🔒 TASK-015 由 @bot 認領
# [10:26:33] ⟳ TASK-015:in_progress → done
快速參考卡
工作流程: init → add → claim → work → comment → done → sync
基本指令: status | add | claim | done | list | graph
修正: reopen | delete | edit | undo
批次: import | batch start/commit/abort
協調: agent register | agent list | validate | watch
Git: sync --pull | sync --push(需要使用者明確核准)
關鍵提醒
- 使用者與你互動,而非直接與 Tick 互動
- 由你透明地維護 TICK.md
- 儀表板僅供檢查,非主要互動方式
- 始終一致地使用你的代理人名稱
- 經常新增註解以顯示進度
- 在同步前先進行驗證
- 在認領前檢查狀態
- 將複雜工作分解為子任務
資源
- GitHub:https://github.com/your-org/tick-md
- 文件:https://tick-md.dev/docs
- CLI npm:https://npmjs.com/package/tick-md
- MCP 伺服器 npm:https://npmjs.com/package/tick-mcp-server
授權
MIT