task-ledger-mcp
Handles task creation and updates via the canonical task-ledger MCP server.
Install
mkdir -p .claude/skills/task-ledger-mcp && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14337" && unzip -o skill.zip -d .claude/skills/task-ledger-mcp && rm skill.zipInstalls to .claude/skills/task-ledger-mcp
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Manage canonical task state through the task-ledger MCP server. Use when creating, reading, updating, or transitioning tasks, adding notes or artifact links, or querying task history. The MCP ledger is the authoritative task state system; repo markdown files are derived or legacy surfaces only.Key capabilities
- →Create new tasks in the MCP ledger
- →Update existing task states and properties
- →Transition tasks through their lifecycle states
- →Add notes and artifact links to tasks
- →Query task history and project metadata
How it works
The skill interacts with the task-ledger MCP server to manage canonical task state. It provides specific tools for creating, reading, updating, and transitioning tasks, ensuring that all changes are recorded in the authoritative ledger.
Inputs & outputs
When to use task-ledger-mcp
- →Updating task status
- →Linking artifacts to tasks
- →Transitioning task lifecycle states
About this skill
Task Ledger MCP
The MCP ledger is canonical for mutable task state. Do not invent, fork, or maintain task state in markdown files, chat context, or any other ad hoc surface.
Authority model
| Agent | Write authority |
|---|---|
| Orchestrator | Full write: task_create, task_update, task_transition, task_invalidate, task_add_note, task_link_artifact |
| Spec | Read freely. May call task_add_note and task_link_artifact only when Orchestrator has included the project_token in the task packet for that purpose. This is a per-task grant, not a standing permission. |
| Triage | Read freely. May call task_add_note and task_link_artifact only when Orchestrator has included the project_token in the task packet for that purpose. This is a per-task grant, not a standing permission. |
| Builder | Read freely. No canonical task-state ownership. May call task_link_artifact only when Orchestrator has included the project_token in the task packet for that purpose. This is a per-task grant, not a standing permission. |
| QA | Read freely. May call task_add_note and task_link_artifact only when Orchestrator has included the project_token in the task packet for that purpose. This is a per-task grant, not a standing permission. |
| Security | Read freely. May call task_add_note and task_link_artifact only when Orchestrator has included the project_token in the task packet for that purpose. This is a per-task grant, not a standing permission. |
| Release Manager | Read freely. May call task_link_artifact only when Orchestrator has included the project_token in the task packet for that purpose. This is a per-task grant, not a standing permission. |
Only Orchestrator holds the project_token. Other agents query task state using the read-only surface — no token required:
task_get— fetch a single task by UUIDtask_list— query tasks with filters (project, state, kind, owner, overdue, etc.)task_history— full event, note, and artifact history for a taskproject_get— fetch project metadata byproject_idorproject_slugproject_list— list all known projects (tokens never returned)
Rules
- Do not treat
docs/delivery/task-ledger.mdas canonical mutable state. It is a legacy format and optional human snapshot. - Read current task state from MCP before mutating it. Never assume state from context or prior messages.
- Use explicit MCP mutations rather than narrative-only bookkeeping.
- Record every lifecycle change as a
task_transition, not just a note or a chat message. - Attach artifact references (
task_link_artifact) when linking issues, PRs, branches, commits, or decision records. - Use
task_add_notefor diagnostic context, blockers, or explanations that do not change state. - Treat MCP tool failure as a real failure. Do not silently continue as if the write succeeded.
Task creation
Mandatory fields: project_id, project_token, kind, title.
Recommended fields at creation: state, priority, owner_agent_type, owner_agent_id, next_action, issue_number.
Use idempotency_key when there is any risk of duplicate creation (e.g. retried bootstrap steps).
State transitions
Always supply from_state and the current revision. If the transition is rejected with revision_mismatch or a wrong from_state, re-read the task with task_get before retrying — the state may have changed concurrently.
Valid states:
new → triage → specifying → ready_for_build → building →
reviewing → security_review → qa_review → release_pending → done
any state → blocked
any state → invalid (via task_invalidate only)
Error handling
All tool failures return isError=true with a JSON payload:
{"error_code": "revision_mismatch", "message": "..."}
Canonical error codes and required responses:
| Code | Meaning | Response |
|---|---|---|
invalid_token | Wrong or rotated project_token | Stop. Report to Orchestrator. Do not guess or cache old tokens. |
project_not_found | Project does not exist in ledger | Stop. Check project_id. May need to run project_create. |
task_not_found | No task with that UUID | Stop. Verify task_id. Do not create a replacement silently. |
revision_mismatch | Concurrent write changed state/revision | Re-read with task_get, reconcile, then retry if still valid. |
already_invalid | Task already soft-deleted | No action needed; log and continue. |
validation_error | Input outside allowed set | Fix input. Do not retry with the same invalid value. |
duplicate_slug | Project slug already registered | Use existing project. Do not create a duplicate. |
Fallback when MCP is unavailable
If the MCP server is unreachable:
- Do not fork canonical state into ad hoc markdown files or chat state.
- Report
BLOCKEDwith reasonmcp-unavailableto whoever dispatched the task. - If a task transition was in progress, do not assume it completed.
- When MCP recovers, re-read current state with
task_getbefore resuming.
Silently degrading to a file-based workaround creates split truth that is difficult to reconcile. Explicit blocking is the correct response.
Project token
- Generated once at
project_create. Shown only at creation and at eachproject_rotate_tokencall. - Stored by Orchestrator in its workspace config. Never passed to other agents.
- If lost, use
project_rotate_tokento issue a new one. - Rotate the token if it may have been exposed or logged.
When not to use it
- →When task state is to be maintained in markdown files
- →When task state is to be maintained in chat context
- →When task state is to be maintained in any other ad hoc surface
Limitations
- →Does not treat `docs/delivery/task-ledger.md` as canonical mutable state
- →Requires reading current task state from MCP before mutating it
- →MCP tool failure should be treated as a real failure
How it compares
This skill enforces a centralized, canonical task state system, preventing the fragmentation and inconsistency that can arise from managing task states in disparate markdown files or chat contexts.
Compared to similar skills
task-ledger-mcp side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| task-ledger-mcp (this skill) | 0 | 3mo | No flags | Intermediate |
| task-execution-engine | 3 | 7mo | Review | Beginner |
| agent-project-board-sync | 0 | 6mo | Review | Intermediate |
| agent-issue-tracker | 0 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
task-execution-engine
davila7
Execute implementation tasks from design documents using markdown checkboxes. Use when (1) implementing features from feature-design-assistant output, (2) resuming interrupted work, (3) batch executing tasks. Triggers on 'start implementation', 'run tasks', 'resume'.
agent-project-board-sync
ruvnet
Agent skill for project-board-sync - invoke with $agent-project-board-sync
agent-issue-tracker
ruvnet
Agent skill for issue-tracker - invoke with $agent-issue-tracker
task-management
rjchien728
管理 ~/tasks/(或使用者指定路徑)下的進行中工作項目資料夾。每個 task 是一個資料夾,README.md 是純狀態 dashboard(status frontmatter + 一句 headline + 一行狀態 + 檔案清單 + 下一步),實際的設計 / 規劃 / 調查文件用獨立 .md 檔,腳本與 reproduce 也存獨立檔。負責命名(YYMMDD-<slug>)、建資料夾、寫 README dashboard、更新狀態、總覽掃描。當使用者說「開新 task」「開個 task」「新增 task」「new task」「記錄到 tasks 下」「把目前設計記下來開個 task
pi-tasks
Micka33
>-
workflow-linear-tracking
riordanpawley
Issue Tracking Skill (`linear-cli` backend)