Tick 多代理協調
透過結構化 Markdown 檔案協調人類與 AI 代理人之間的工作。使用者以自然語言與你互動,而你則在 TICK.md 中透明地維護任務。
安裝
先決條件:Tick CLI 與 MCP 伺服器應已由您的環境安裝並設定完成。
首次設定? 請參閱 INSTALL.md 以取得針對特定編輯器的安裝說明。
快速檢查:
# 確認 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 @your-name --type bot --roles "engineer,refactoring"
# 3. 認領任務
tick claim TASK-XXX @your-name
# 4. 開始工作(執行實際工作)
# 5. 新增進度註解
tick comment TASK-XXX @your-name --note "正在分析目前的認證流程"
tick comment TASK-XXX @your-name --note "已重構為使用 JWT 令牌"
# 6. 標記完成
tick done TASK-XXX @your-name
2. 使用者詢問專案狀態
使用者:「我們正在進行哪些任務?」
# 取得全面狀態
tick status
# 或篩選並列出任務
tick list --status in_progress
tick list --claimed-by @bot-name
為使用者自然總結輸出內容。
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 --push # 提交並推送至 git
任務操作
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 # 從 stdin 匯入
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 @name \ # 註冊新代理
--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: "@bot-name"
})
// 認領任務
await tick_claim({
taskId: "TASK-023",
agent: "@bot-name"
})
最佳實踐
1. 以自然對話為優先
✅ 良好:使用者說「重構認證系統」,你自動建立任務 ❌ 不佳:強迫使用者明確建立任務
2. 始終使用你的代理名稱
註冊一次:
tick agent register @your-bot-name --type bot --roles "engineer"
然後持續使用:
tick claim TASK-001 @your-bot-name
tick done TASK-001 @your-bot-name
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 @your-name
了解 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
# 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,並記錄在歷史中
# 將狀態設回 in_progress,並記錄在歷史中
tick reopen TASK-001 @bot --re-block
# 同時重新封鎖依賴於此任務的其他任務
修正錯誤
# 復原上一次 tick 操作
# 復原上一次 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