KamKan Task Tracking
Use the kamkan MCP server to plan and track this session's work on a KamKan board.
Activation
Activate when:
- The user says
/kamkan [boardId]or "track tasks on [board]" - The user starts a multi-step request and has a
KAMKAN_TASK_BOARDenvironment variable set - The user explicitly asks you to track or plan your work
Step 1 — Identify the board
Check in order:
- Board ID passed in the user's message
KAMKAN_TASK_BOARDenvironment variable- If neither: ask — "Which KamKan board should I track tasks on?"
Step 2 — Set up the board
Call get_board directly on the target board. If it fails (board not found):
- Call
create_boardwithboardId= target,columns=["Todo", "Doing", "Done"] - Then call
get_boardagain on the new board
Do NOT call list_boards when a boardId is already known.
Identify the three column roles:
| Role | How to detect |
|---|---|
| Todo | First column where isArchive: false and isDone: false |
| Doing | Second column where isArchive: false and isDone: false (may not exist) |
| Done | Column where isDone: true, or last non-archive column |
Announce:
Tracking on board [boardId] · [Todo col] → [Doing col] → [Done col] Ready. Describe the work and I'll plan tasks before touching any code.
From this point forward, for every work request in this session: apply Steps 3–5 below. The board stays active for the entire conversation — do not wait to be re-invoked.
Step 3 — Plan before acting
Before writing any code, running any commands, or making any changes, decompose the work:
- Break into 3–10 discrete, completable tasks
- Order by dependency (what must happen first, first)
- Each task title = one action verb + specific object
Call create_task for each task in the Todo column. Show the user the resulting task list with IDs.
Task title examples
| Good | Bad |
|---|---|
| "Implement JWT refresh endpoint" | "Backend work" |
| "Add input validation to registration form" | "Fix form" |
| "Write unit tests for parseBoard()" | "Tests" |
| "Update README with new install steps" | "Documentation" |
Step 4 — Execute task by task
For each task in order:
move_task→ Doing (skip if no Doing column)- Do the work
move_task→ Done (or callcomplete_task)
Never mark a task done before the work is actually finished. Never batch-complete multiple tasks at once.
Step 5 — Handle discovered tasks
When you encounter work not in the original plan:
- Call
create_taskin the Todo column immediately - Tell the user: "Added task [N]: [title]"
When a task splits into two:
- Rename the current task to the first part
- Create the second part as a new task
Step 6 — Session summary
After all work is done, call get_board and report:
✓ [N] tasks completed · [N] remaining in [Todo/Doing]
Edge cases
Only one active column: Use it as both Todo and Done. Skip the move-to-Doing step.
Board has custom column names (e.g. "Backlog", "In Progress", "Review"): Map by position and isDone flag, not by name.
Task turns out to be much larger than expected: Split it. Complete the current portion, create follow-up tasks, keep moving.
User changes scope mid-session: Update the board to reflect. Add new tasks, cancel irrelevant ones by moving them directly to Done with a note in the title like "CANCELLED: [original title]".