TA

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.zip

Installs 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.
295 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

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

You give it
a request to manage task state (create, update, transition, query)
You get back
an updated task state in the MCP ledger or task history information

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

AgentWrite authority
OrchestratorFull write: task_create, task_update, task_transition, task_invalidate, task_add_note, task_link_artifact
SpecRead 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.
TriageRead 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.
BuilderRead 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.
QARead 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.
SecurityRead 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 ManagerRead 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 UUID
  • task_list — query tasks with filters (project, state, kind, owner, overdue, etc.)
  • task_history — full event, note, and artifact history for a task
  • project_get — fetch project metadata by project_id or project_slug
  • project_list — list all known projects (tokens never returned)

Rules

  • Do not treat docs/delivery/task-ledger.md as 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_note for 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:

CodeMeaningResponse
invalid_tokenWrong or rotated project_tokenStop. Report to Orchestrator. Do not guess or cache old tokens.
project_not_foundProject does not exist in ledgerStop. Check project_id. May need to run project_create.
task_not_foundNo task with that UUIDStop. Verify task_id. Do not create a replacement silently.
revision_mismatchConcurrent write changed state/revisionRe-read with task_get, reconcile, then retry if still valid.
already_invalidTask already soft-deletedNo action needed; log and continue.
validation_errorInput outside allowed setFix input. Do not retry with the same invalid value.
duplicate_slugProject slug already registeredUse existing project. Do not create a duplicate.

Fallback when MCP is unavailable

If the MCP server is unreachable:

  1. Do not fork canonical state into ad hoc markdown files or chat state.
  2. Report BLOCKED with reason mcp-unavailable to whoever dispatched the task.
  3. If a task transition was in progress, do not assume it completed.
  4. When MCP recovers, re-read current state with task_get before 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 each project_rotate_token call.
  • Stored by Orchestrator in its workspace config. Never passed to other agents.
  • If lost, use project_rotate_token to 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.

SkillInstallsUpdatedSafetyDifficulty
task-ledger-mcp (this skill)03moNo flagsIntermediate
task-execution-engine37moReviewBeginner
agent-project-board-sync06moReviewIntermediate
agent-issue-tracker06moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry