KamKan Task Tracking
When invoked, activate task tracking for this session using the kamkan MCP server.
Step 1 — Identify the board
Use the first available source:
- Argument passed to this skill (e.g.
/kamkan MY_PROJECT) KAMKAN_TASK_BOARDenvironment variable- Ask the user: "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_board with:
boardId: the chosen IDcolumns:["Todo", "Doing", "Done"]
Then call get_board again to get the fresh board state. Do NOT call list_boards when a boardId is already known.
Identify the three column roles from the result:
- Todo column: first column where
isArchiveis false andisDoneis false - Doing column: second such column (if it exists)
- Done column: the column where
isDoneis true, or the last non-archive column
Announce to the user:
Tracking session 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
Whenever the user asks you to build, fix, refactor, or change anything — before writing any code or making any changes — break the work into 3–10 discrete tasks.
Each task must be:
- A single, completable action ("Add input validation to login form", not "Work on auth")
- Specific enough that done/not-done is unambiguous
- Ordered by dependency (blockers first)
Call create_task for each task in the Todo column, in order.
Show the user the created task list with their numeric IDs.
Step 4 — Work task by task
For each task in sequence:
- Call
move_task→ Doing column (skip if no Doing column exists) - Do the work
- Call
move_task→ Done column (orcomplete_taskif it's the done column)
Never batch-complete tasks. Move each one individually as you actually finish it.
Step 5 — Handle discovered work
If you uncover work that wasn't in the original plan:
- Immediately call
create_taskin the Todo column - Say: "Added task [N]: [title]"
If a task turns out to be two tasks, create the new one and continue.
Step 6 — End of session
When all work is done, call get_board and report a one-line summary:
Done: [N] tasks completed · Remaining: [N] tasks in Todo/Doing
Task naming guide
| Good | Bad |
|---|---|
| "Parse frontmatter from task detail file" | "Do the parsing" |
"Add create_board handler to MCP server" |
"Work on MCP" |
| "Write roundtrip test for serializeBoard()" | "Testing" |
| "Fix column color not persisting on save" | "Bug fix" |
Column detection fallback
If get_board returns only one non-archive column, use it as both Todo and Done — skip the Doing step.
If the board has custom column names (e.g. "Backlog", "In Progress", "Review", "Done"), map them to the Todo/Doing/Done roles by position and isDone flag, not by name.