Install any skill in seconds. Free to start, no credit card required.
Get Started Free →A task management skill using kanban boards for visual project tracking. Use when: user wants kanban-style task management, visual project boards, task cards, columns for workflow stages, or moving tasks through stages.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 353% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 586% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 216% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 633% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 946% | 0% |
This skill provides a complete task management system using kanban boards for visual project tracking. It enables autonomous task execution, scheduled work sessions, git integration, and quality verification. The skill operates in 5 distinct modes to handle all aspects of project task management using kanban boards.
Activate this skill when the user mentions:
| Status | Column | Description | | ----------- | ----------- | ----------------------------------------- | | not started | To Do | New tasks waiting to be worked on | | in progress | In Progress | Tasks currently being worked on | | complete | Done | Tasks completed, awaiting verification | | verified | Verified | Tasks verified and complete (final state) | | failed | Backlog | Failed tasks for retry/investigation |
Metadata is stored in .kanban-meta.md in the project root:
markdown--- title: Kanban Manager project: [Project Name] board_id: [UUID from kanban board] created: [ISO timestamp] last_updated: [ISO timestamp] scheduled_task_id: [UUID from scheduler:create_scheduled_task] scheduled_task_mode: work | verify | complete work_complete: true | false ---
markdown# Changelog All notable changes to this project will be documented in this file. The format is based on [Common Changelog](https://commonform.github.io/changelog/). ## [Date] - Task: [Task Title] ### Completed - [Description of work completed] ### Notes - [Additional notes about the work] --- ## [Previous entries...]
markdown# Kanban Manager Error - **Error:** [Error description] - **Timestamp:** [ISO timestamp] - **Context:** [What the agent was trying to do] - **Resolution:** [What action was taken]
Purpose: Set up new kanban-based task management for a project.
Entry Condition: First time user wants to start kanban task management OR explicitly requested.
CRITICAL: Tasks are NEVER deleted - Only status changes throughout the lifecycle.
Actions:
.kanban-meta.md already exists in project root> "A kanban task list already exists for this project. What would you like to do? > > Options: > > - Replace: Clear all existing cards and start fresh with new goals > - Modify: Keep existing cards and add/update as needed > > Current board state: > List all cards with their status/column]
.kanban-meta.md with project headerCHANGELOG.md if it doesn't existscheduler:create_scheduled_taskscheduled_task_id in metadatascheduled_task_mode: work and work_complete: false in metadata.kanban-meta.mdPurpose: Execute the next task in the queue autonomously.
Entry Condition:
scheduled_task_mode: work in metadata, ORCRITICAL: When to Enter VERIFY_MODE: After completing a task, ALWAYS check if ALL tasks are now complete. If all tasks have status "complete" or "verified", you MUST:
.kanban-meta.md to change scheduled_task_mode: verifyCRITICAL: Tasks are NEVER deleted - Only status changes throughout the lifecycle.
Actions:
.kanban-meta.md existsgit statusscheduled_task_mode: verify, enter VERIFY_MODE.kanban-meta.md: scheduled_task_mode: verifyPurpose: Review completed tasks to verify quality. When all tasks are verified, disable the scheduled task so it no longer runs. Tasks are NEVER deleted - only status changes.
Entry Condition:
scheduled_task_mode: verify in metadata, ORCRITICAL: When to Enter VERIFY_MODE from WORK_MODE: The most important trigger is when WORK_MODE completes a task and discovers there are no more "not started" tasks. This means all work is done and verification is needed.
CRITICAL: Tasks are NEVER deleted - Only status changes throughout the lifecycle.
Actions:
scheduled_task_mode: work (switch back to work mode)scheduled_task_id from .kanban-meta.mdscheduler:update_task:.kanban-meta.md to indicate work is complete:yaml scheduled_task_mode: complete work_complete: true
Purpose: Handle dirty git state and get back on track.
Entry Condition: Git status shows uncommitted changes when entering WORK_MODE
Actions:
.kanban-meta.md to find the last task that was being worked onPurpose: Handle errors when metadata file is missing.
Entry Condition: .kanban-meta.md does not exist and not in INIT_MODE
Actions:
error.md with:error.md already exists with same informationscheduler:find_task_by_name to find recurring work taskbash ls -la | grep -E "\.kanban-meta\.md|CHANGELOG\.md|error\.md"
> "A kanban task list already exists for this project. Here's the current state: > > Current Tasks: > > - Task 1: Title] - Status/Column] > - Task 2: Title] - Status/Column] > - ... > > What would you like to do? > > - Replace: Clear all tasks and start fresh with new goals > - Modify: Update the existing board (keep, remove, or change tasks)"
kanban.list_projects to get project listkanban.create_board to create board for this projectkanban.create_column to create 5 columns in order:.kanban-meta.md with ALL required fields:markdown --- title: Kanban Manager project: [Project Name] board_id: "[UUID from kanban board]" created: [ISO timestamp] last_updated: [ISO timestamp] scheduled_task_id: "" # Will be filled after creating scheduled task scheduled_task_mode: work work_complete: false ---
CHANGELOG.md:markdown # Changelog
All notable changes to this project will be documented in this file.
The format is based on Common Changelog.
---
> "What tasks need to be completed for this project? Please describe each task clearly."
kanban.create_card for each task> "How often should I work on these tasks? Here are some recommended options: > > Recommended Intervals: > > - 15 minutes - Quick check-ins, small tasks > - 20 minutes - Small to medium tasks > - 30 minutes - Medium tasks (recommended default) > - 45 minutes - Medium to large tasks > - 60 minutes - Large, complex tasks > > Note: If your tasks are large or complex, I recommend a larger frequency (30-60 minutes) to prevent agent overlap and ensure each session can complete meaningful work before the next session starts. > > How often would you like me to work on these tasks?"
scheduler:create_scheduled_task with:.kanban-meta.md with the UUID:yaml scheduled_task_id: "[UUID from scheduler response]" scheduled_task_mode: work work_complete: false
CRITICAL: When to Enter VERIFY_MODE After EVERY task completion, you MUST check if all tasks are now complete or verified. This is the key trigger for VERIFY_MODE.
CRITICAL: Tasks are NEVER deleted - Only status changes.
bash test -f .kanban-meta.md && echo "exists" || echo "missing"
If missing → ERROR_MODE
bash git status --porcelain
If output not empty → CORRECTION_MODE
.kanban-meta.md to get scheduled_task_mode and work_complete valueskanban.get_board to get board with cards.kanban-meta.md: scheduled_task_mode: verifykanban.move_card to move card from "To Do" to "In Progress"kanban.update_card to update metadata: status="in progress", updated=timestamp]kanban.move_card to move card from "In Progress" to "Done"kanban.update_card to update metadata:json { "status": "complete", "updated": "[ISO timestamp]", "notes": "[What was accomplished]" }
Update CHANGELOG.md:
markdown ## Date] - Task: Task Title]
### Completed
### Notes
Commit:
bash git add -A git commit -m "Complete: [Task Title] - [Brief description]"
CRITICAL: Check if ALL tasks are now complete:
scheduled_task_mode: verifykanban.move_card to move card from "In Progress" to "Backlog" - Use kanban.update_card to update metadata:json { "status": "failed", "updated": "[ISO timestamp]", "notes": "[Detailed explanation of why it failed, error messages, attempts made]" }
Create investigation card in "To Do" column (directly before failed task):
kanban.create_card with title like "task-X: Investigate: Failed Task Title]"Commit: bash git add -A
git commit -m "Failed: Task Title] - Reason: brief reason]. Created investigation task."
When to enter VERIFY_MODE:
scheduled_task_mode: verify in metadata, ORNOTE: VERIFY_MODE may be entered multiple times - it verifies ONE task per run, then the next scheduled run will verify the next task. This is by design to prevent one agent from doing too much work.
CRITICAL: Tasks are NEVER deleted - Only status changes.
kanban.get_board to get boardkanban.move_card to move card from "Done" to "Verified"kanban.update_card to update metadata:json { "status": "verified", "verified": "[ISO timestamp]", "verification_notes": "Quality check passed - [notes]" }
markdown ## Date] - Task: Task Title] - VERIFIED
### Completed
### Verified
bash git add -A git commit -m "Verified: [Task Title] - Quality verified"
scheduled_task_mode: work (switch back to work mode)scheduler:update_task:.kanban-meta.md to indicate completion:yaml scheduled_task_mode: complete work_complete: true
bash git diff --stat git diff
bash git log --oneline -10
bash test -f error.md && cat error.md
bash scheduler:find_task_by_name # Find the recurring work task scheduler:update_task (if found)
Create error.md with details Ask user: "This project doesn't have kanban task management set up. Would you like to start a new kanban board?"
Recommended work frequencies for scheduled tasks:
| Interval | Best For | Notes | | ---------- | ---------------------------------- | ---------------------------------- | | 15 minutes | Quick check-ins, very small tasks | May cause overlap with large tasks | | 20 minutes | Small tasks | Minimum for most sessions | | 30 minutes | Medium tasks (recommended default) | Good balance | | 45 minutes | Medium to large tasks | Recommended for complex work | | 60 minutes | Large, complex tasks | Prevents agent overlap |
Guidance for Large Tasks:
If your task list contains large or complex tasks, choose a larger frequency (30-60 minutes). This ensures:
| User Input | Cron Schedule | | ---------------- | -------------- | | Every 15 minutes | */15 * * * * | | Every 20 minutes | */20 * * * * | | Every 30 minutes | */30 * * * * | | Every 45 minutes | */45 * * * * | | Every 60 minutes | 0 * * * * | | Hourly | 0 * * * * | | Daily | 0 0 * * * | | Weekly | 0 0 * * 0 |
Or accept custom cron expression from user.
IMPORTANT: Use these exact tool names and parameters:
| Tool | Purpose | Key Parameters | | ---------------------- | -------------------------------- | --------------------------------------- | | kanban.list_boards | List all kanban boards | - | | kanban.list_projects | List all projects | - | | kanban.get_board | Get board with columns and cards | board_id | | kanban.create_board | Create new board | project_id, name | | kanban.create_column | Create column in board | board_id, name, position | | kanban.create_card | Create card in column | column_id, title, description, metadata | | kanban.update_card | Update card details | card_id, title, description, metadata | | kanban.move_card | Move card between columns | card_id, column_id, position | | kanban.delete_card | Delete card from board | card_id |
IMPORTANT: Use these exact tool names and parameters:
| Tool | Purpose | Key Parameters | | --------------------------------- | -------------------------------- | -------------------------------------------------------- | | scheduler:create_scheduled_task | Create recurring task | name, system_prompt, prompt, schedule, dedicated_context | | scheduler:update_task | Update or disable scheduled task | task_id, state (use "disabled" to disable) | | scheduler:find_task_by_name | Find task by name | name | | scheduler:run_task | Run task manually | uuid, context |
.kanban-meta.md with scheduled_task_id, scheduled task configured.kanban-meta.mdscheduled_task_mode: verify, enters VERIFY_MODEscheduled_task_mode: verifyscheduled_task_mode: complete, work_complete: truescheduled_task_mode: verify and enter VERIFY_MODEscheduled_task_mode field controls which mode runsscheduler:update_task with state: "disabled" to disable the taskWhen creating the recurring task, use this prompt:
You are running a scheduled work session for the kanban-manager skill.
Project: [PROJECT NAME]
Metadata File: .kanban-meta.md
IMPORTANT: Check the scheduled_task_mode and work_complete in .kanban-meta.md metadata FIRST:
- If work_complete is "true": All work is done, notify user and exit
- If scheduled_task_mode is "complete": All work is done, notify user and exit
- If scheduled_task_mode is "verify": Execute VERIFY_MODE
- If scheduled_task_mode is "work" OR NOT SET: Execute WORK_MODE
Instructions:
1. Load the kanban-manager skill
2. Read .kanban-meta.md and parse the metadata for scheduled_task_mode and work_complete
3. Use kanban.get_board to see current board state
4. Execute the appropriate mode based on the mode values
5. Do not wait for user input - work autonomously
6. Handle any errors that arise
7. Report completion status when done
Remember: Use kanban tools to manage cards and all available tools to complete tasks. Do not ask for user input unless absolutely necessary.kanban.*: All kanban MCP tools for board/column/card managementcode_execution_tool: For git operations, file read/writescheduler:create_scheduled_task: For creating scheduled tasks (returns UUID)scheduler:update_task: For disabling scheduled task (use state: "disabled")scheduler:find_task_by_name: For finding existing tasksdocument_query: For reading metadata filesmemory_*: For storing project context if needed.kanban-meta.md (project root) - NEVER deletedCHANGELOG.md (project root)error.md (project root)YYYY-MM-DDTHH:MM:SSZscheduled_task_mode: verify and enter VERIFY_MODE immediately._Skill Version: 1.1 | Author: Agent Zero | Based on agentskills.io specification_
Other measured skills in the registry, with their headline benchmark lift.