Kanban Manager Skill
Overview
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.
When to Use
Activate this skill when the user mentions:
- "start a kanban board" or "task board"
- "kanban" or "task management" with visual boards
- "work on tasks" or "execute tasks"
- "automated task execution" or "autonomous work"
- "scheduled tasks" or "recurring work"
- Any request to create or manage project tasks using kanban boards
Kanban Board Structure
Column Mapping (5-Column System)
| 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 File: .kanban-meta.md
Metadata is stored in .kanban-meta.md in the project root:
---
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
---
CHANGELOG.md Format
# 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...]
error.md Format
# Kanban Manager Error
- **Error:** [Error description]
- **Timestamp:** [ISO timestamp]
- **Context:** [What the agent was trying to do]
- **Resolution:** [What action was taken]
Mode Definitions
MODE 1: INIT_MODE (Initialization)
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:
- Check if
.kanban-meta.md already exists in project root
- If exists, present current state to user and ask:
"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]
- If user chooses Replace:
- Delete all cards from kanban board (keep board and columns)
- Ask user for new task list
- Proceed to create new cards
- If user chooses Modify:
- Show current cards to user
- Ask which cards to keep, update, or remove
- Ask what new goals/tasks to add
- Update kanban board accordingly
- If not exists, create kanban board with 5 columns: Backlog, To Do, In Progress, Done, Verified
- Create
.kanban-meta.md with project header
- Create
CHANGELOG.md if it doesn't exist
- Ask user for task list (what needs to be done)
- Create cards in "To Do" column with sequential IDs (task-001, task-002, etc.)
- Store metadata in card: status, created, updated, notes, subtasks
- Ask user for work frequency (how often to work on tasks)
- Schedule recurring task using
scheduler:create_scheduled_task
- CRITICAL: Save the returned UUID as
scheduled_task_id in metadata
- Set
scheduled_task_mode: work and work_complete: false in metadata
- Write the updated metadata to
.kanban-meta.md
- Confirm setup complete with user
MODE 2: WORK_MODE (Task Execution)
Purpose: Execute the next task in the queue autonomously.
Entry Condition:
- Scheduled task fires with
scheduled_task_mode: work in metadata, OR
- User says "work on tasks" / "execute tasks"
CRITICAL: 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:
- Update the
.kanban-meta.md to change scheduled_task_mode: verify
- Then enter VERIFY_MODE immediately to verify the completed work
CRITICAL: Tasks are NEVER deleted - Only status changes throughout the lifecycle.
Actions:
- Check if
.kanban-meta.md exists
- If not → enter ERROR_MODE
- Check git status with
git status
- If dirty → enter CORRECTION_MODE
- Read scheduled_task_mode and work_complete from metadata
- If work_complete is "true" → All work already done, notify user
- If scheduled_task_mode is "verify" → enter VERIFY_MODE
- If scheduled_task_mode is "complete" → All work done, notify user
- Find first card with status "not started" (in "To Do" column)
- If none → Check if any cards have status "complete" (in "Done" column)
- If yes → ALL WORK IS DONE, update metadata to
scheduled_task_mode: verify, enter VERIFY_MODE
- If no cards are "complete" either → Notify user all tasks are done
- Move card to "In Progress" column, update metadata status to "in progress"
- Work the task autonomously using sub-agents/subordinates - break down the task into subtasks and delegate to subordinate agents using call_subordinate, solve issues without waiting for input
- Subtask limit: Work on a maximum of 3 subtasks per session
- If task has more than 3 subtasks, complete up to 3 and mark remaining for next session
- Help user break down large tasks into smaller, manageable chunks during INIT_MODE
- If task is too large to complete in one session:
- Break down the task into smaller subtasks
- Add new cards to kanban board with unique sequential IDs
- Keep current card in "In Progress" with notes on what's done
- Commit progress so far
- On completion:
- Move card to "Done" column
- Update card status to "complete"
- Add completion notes to card metadata
- Update CHANGELOG.md with descriptive notes
- Commit all work with single commit
- CRITICAL: After marking complete, check if ALL tasks are now complete or verified
- If ALL tasks are complete/verified:
- Update
.kanban-meta.md: scheduled_task_mode: verify
- Enter VERIFY_MODE immediately to verify completed work
- On failure:
- Move card to "Backlog" column
- Update card status to "failed"
- Add detailed failure notes explaining why
- Create new investigation card placed in "To Do" column (directly before failed task)
- Include context from failure
- Commit all work with single commit
MODE 3: VERIFY_MODE (Quality Review)
Purpose: 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 fires with
scheduled_task_mode: verify in metadata, OR
- WORK_MODE completes last "not started" task and all tasks are now "complete" or "verified"
CRITICAL: 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:
- Check if there are any cards with status "complete" (in "Done" column)
- If none → ALL TASKS ALREADY VERIFIED, skip to step 6
- Get the first card marked "complete" (not yet "verified")
- Review the card description and completion notes
- Verify requirements were met and work is quality
- Check if all subtasks were addressed
- Verify code/tests work if applicable
- Confirm documentation is complete
- If verification passes:
- Move card to "Verified" column
- Change status to "verified"
- Add verification notes to card metadata
- Update CHANGELOG.md with verification notes
- Commit all changes
- Loop back to step 1 to check for more "complete" cards
- If verification fails:
- Move card back to "In Progress" column
- Add notes about what needs to be fixed
- Update metadata:
scheduled_task_mode: work (switch back to work mode)
- Return to WORK_MODE
- After all tasks verified (no "complete" cards remain, only "verified"):
MODE 4: CORRECTION_MODE (Git State Recovery)
Purpose: Handle dirty git state and get back on track.
Entry Condition: Git status shows uncommitted changes when entering WORK_MODE
Actions:
- Analyze the uncommitted changes
- Read
.kanban-meta.md to find the last task that was being worked on
- Determine if the task was completed:
- Check if card status was set to "complete" before git state became dirty
- Check commit history for recent task completion commits
- If task was NOT completed:
- Keep card status as "in progress" if needed
- Continue working on the task in WORK_MODE
- If task was completed (status already "complete"):
- Commit the changes with descriptive message
- Return to normal WORK_MODE to find next task
- If unclear:
- Add notes to current card about the situation
- Commit with message: "WIP: [task name] - state recovery"
- Return to WORK_MODE
MODE 5: ERROR_MODE (Error Handling)
Purpose: Handle errors when metadata file is missing.
Entry Condition: .kanban-meta.md does not exist and not in INIT_MODE
Actions:
- Create
error.md with:
- Error: "Project does not contain .kanban-meta.md"
- Timestamp
- Context: What the agent was trying to do
- Resolution: "Created error.md - INIT_MODE required"
- Check if
error.md already exists with same information
- If same error exists:
- Use
scheduler:find_task_by_name to find recurring work task
- Disable the recurring task using scheduler:update_task with state: "disabled"
- Notify user that task management was cancelled
- If new error:
- Ask user if they want to start kanban task management (enter INIT_MODE)
Step-by-Step Instructions
Starting Kanban Task Management (INIT_MODE)
Check existing files:
ls -la | grep -E "\.kanban-meta\.md|CHANGELOG\.md|error\.md"
If .kanban-meta.md exists, present current state and ask user:
"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)"
If user chooses Replace:
- Ask: "Are you sure you want to replace the current kanban board? This will clear all existing cards."
- If confirmed, delete all cards from kanban board
- Ask for new task list
If user chooses Modify:
- Show current cards to user:
- For each card: "Keep this task? Update it? Remove it?"
- Ask: "What new tasks would you like to add?"
- Update kanban board with changes
If no files, create kanban board with columns:
- Use
kanban.list_projects to get project list
- Use
kanban.create_board to create board for this project
- Use
kanban.create_column to create 5 columns in order:
- Backlog (position 0)
- To Do (position 1)
- In Progress (position 2)
- Done (position 3)
- Verified (position 4)
Create .kanban-meta.md with ALL required fields:
---
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
---
Create CHANGELOG.md:
# 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/).
---
Ask user for tasks:
"What tasks need to be completed for this project? Please describe each task clearly."
Create cards in "To Do" column:
- Use
kanban.create_card for each task
- Title format: "task-001: [Task Title]"
- Description: Full task description
- Store metadata in card's metadata field or description
Ask for frequency with recommended options:
"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?"
Create scheduled task:
Working Tasks (WORK_MODE)
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.
Check for .kanban-meta.md:
test -f .kanban-meta.md && echo "exists" || echo "missing"
If missing → ERROR_MODE
Check git status:
git status --porcelain
If output not empty → CORRECTION_MODE
Read metadata from .kanban-meta.md:
- Parse
.kanban-meta.md to get scheduled_task_mode and work_complete values
- If work_complete is "true" → All work done, notify user and exit
- If scheduled_task_mode is "verify" → enter VERIFY_MODE
- If scheduled_task_mode is "complete" → All work done, notify user and exit
Get board and find next task:
- Use
kanban.get_board to get board with cards
- Parse cards in "To Do" column looking for first card with status "not started"
If no "not started" cards remain:
- Check if any cards have status "complete" (in "Done" column)
- If yes → ALL WORK IS DONE!
- Update
.kanban-meta.md: scheduled_task_mode: verify
- Enter VERIFY_MODE immediately to verify completed work
- If no "complete" cards either → All tasks already verified, enter VERIFY_MODE to complete cleanup
Update card to "in progress":
- Use
kanban.move_card to move card from "To Do" to "In Progress"
- Use
kanban.update_card to update metadata: status="in progress", updated=[timestamp]
Execute task autonomously using sub-agents/subordinates - DO NOT wait for user input
- Break down task into subtasks
- Delegate subtasks to subordinate agents using call_subordinate tool
- Work on maximum 3 subtasks per session - if more exist, complete up to 3 and note the rest for next session
- Execute each subtask via sub-agents
- Handle errors and issues independently
- Use all available tools to solve problems
If task is too large:
- Break down into smaller tasks
- Add new cards to kanban board with unique sequential IDs
- Keep current card partially complete with progress notes
- Commit progress
On completion:
Update CHANGELOG.md:
## [Date] - Task: [Task Title]
### Completed
- [Description of work]
### Notes
- [Any additional notes]
Commit:
git add -A
git commit -m "Complete: [Task Title] - [Brief description]"
CRITICAL: Check if ALL tasks are now complete:
- Get board and parse all card statuses
- If ALL cards have status "complete" or "verified" (none are "not started" or "in progress" or "failed"):
- Update metadata:
scheduled_task_mode: verify
- Enter VERIFY_MODE immediately to verify the completed work
On failure: - Use kanban.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):
- Use `kanban.create_card` with title like "task-X: Investigate: [Failed Task Title]"
- Description: "Investigate and resolve the failure: [failure context]"
Commit:
```bash
git add -A
git commit -m "Failed: [Task Title] - Reason: [brief reason]. Created investigation task."
Verifying Completed Tasks (VERIFY_MODE)
When to enter VERIFY_MODE:
- Scheduled task fires with
scheduled_task_mode: verify in metadata, OR
- WORK_MODE completes last "not started" task and all remaining cards are "complete"
NOTE: 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.
Check for remaining "complete" cards:
- Use
kanban.get_board to get board
- Look for cards in "Done" column with status "complete"
- If none found → All tasks already verified, skip to step 6
Get first "complete" card from board (first card with status "complete", not yet "verified")
Verify the work:
- Re-read card description
- Check if requirements were met
- Test code if applicable
- Review documentation
If verified:
Use kanban.move_card to move card from "Done" to "Verified"
Use kanban.update_card to update metadata:
{
"status": "verified",
"verified": "[ISO timestamp]",
"verification_notes": "Quality check passed - [notes]"
}
Update CHANGELOG.md:
## [Date] - Task: [Task Title] - VERIFIED
### Completed
- [Original completion notes]
### Verified
- Quality check passed - [verification notes]
Commit:
`bash
git add -A
git commit -m "Verified: [Task Title] - Quality verified"
`
- The scheduled task will run again to verify the next "complete" card
If failed verification:
- Move card back to "In Progress" column
- Add notes about what needs fixing
- Update metadata:
scheduled_task_mode: work (switch back to work mode)
- Continue in WORK_MODE
After all tasks verified (no "complete" cards remain):
Handling Dirty Git State (CORRECTION_MODE)
Get git diff to see what changed:
git diff --stat
git diff
Read .kanban-meta.md to see last task status
Check commit history:
git log --oneline -10
Determine action:
- If card was marked "complete" before dirty state → commit and continue
- If card was in progress → continue working
- If unclear → commit with "WIP" message and continue
Error Handling (ERROR_MODE)
Check if error.md exists:
test -f error.md && cat error.md
If same error exists:
scheduler:find_task_by_name
# Find the recurring work task
scheduler:update_task (if found)
If new error:
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?"
Frequency Options
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:
- Each session has enough time to make meaningful progress
- Previous session completes before next starts (no agent overlap)
- Sub-agents have sufficient time to complete subtasks
- Better git commit hygiene (one task per session)
| 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.
Available Kanban Tools
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 |
Available Scheduler Tools
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 |
Example Use Cases
Example 1: Starting a New Kanban Project
- User: "I want to start a kanban board for my project"
- Agent: Enters INIT_MODE, checks for existing files
- Agent: Creates kanban board with 5 columns
- Result: Kanban board created, cards in "To Do",
.kanban-meta.md with scheduled_task_id, scheduled task configured
Example 2: Continuing Existing Project with New Goals
- User: "I want to add more tasks to the kanban"
- Agent: Enters INIT_MODE, finds existing
.kanban-meta.md
- Agent: Presents current cards, asks: "Replace or Modify?"
- User: "Modify"
- Agent: Walks through current cards, adds new ones
- Result: Updated kanban board with new and existing cards
Example 3: Scheduled Work Session - All Work Complete
- Trigger: Scheduled task fires, agent enters WORK_MODE
- Agent: Checks scheduled_task_mode from metadata
- Agent: Finds no "not started" cards but has "complete" cards
- Agent: Updates metadata to
scheduled_task_mode: verify, enters VERIFY_MODE
- Result: Completed card is verified, moved to "Verified" column
Example 4: Verify Mode - Next Run Verifies Next Task
- Trigger: Scheduled task fires with
scheduled_task_mode: verify
- Agent: Enters VERIFY_MODE, finds first "complete" card
- Agent: Verifies it, moves to "Verified", commits
- Agent: Checks for more "complete" cards - if more exist, the next scheduled run will verify the next one
- Result: One card verified per run, eventually all verified
Example 5: All Work Complete - Disable Scheduled Task
- Trigger: VERIFY_MODE finds no remaining "complete" cards
- Agent: Reads scheduled_task_id, calls scheduler:update_task with state: "disabled"
- Agent: Updates metadata to
scheduled_task_mode: complete, work_complete: true
- Result: Project complete, scheduled task disabled, cards preserved with verified status
Example 6: User Requests Work
- User: "Work on the tasks"
- Agent: Enters WORK_MODE (checks git first), executes task
- Result: Card completed or failed with investigation card created
Example 7: Dirty Git State
- Trigger: WORK_MODE finds dirty git
- Agent: Enters CORRECTION_MODE, analyzes state
- Result: Either commits and continues OR continues interrupted work
Example 8: No Metadata File
- Trigger: Agent in non-INIT mode finds no .kanban-meta.md
- Agent: Enters ERROR_MODE, creates error.md
- Result: User prompted to start kanban task management or recurring task disabled
Edge Cases
No tasks in kanban board
- Ask user to add tasks before scheduling
All tasks failed
- Keep failed cards in "Backlog" with investigation cards in "To Do"
- Agent will work on investigation cards first
Recurring task already exists
- Ask user if they want to update frequency or keep existing
Git conflict during commit
- Resolve conflict, complete commit, note in changelog
Very long task descriptions
- Keep descriptions concise but complete
- Add detail in subtasks if needed
Task depends on another task
- Add dependency notes in description
- Agent should complete prerequisite tasks first
Large task frequency recommendation
- Always recommend 30-60 minute intervals for large/complex tasks
- Explain that smaller intervals may cause agent overlap
Verify mode not triggering
- CRITICAL: After completing ANY task in WORK_MODE, always check if all tasks are now complete
- If all tasks are "complete" or "verified", immediately update
scheduled_task_mode: verify and enter VERIFY_MODE
- This is the key mechanism that ensures verification happens
Scheduled task runs in wrong mode
- The metadata
scheduled_task_mode field controls which mode runs
- WORK_MODE updates this to "verify" when all tasks complete
- VERIFY_MODE updates this to "work" if verification fails and work is needed
Task verification takes multiple runs
- VERIFY_MODE verifies ONE task per scheduled run
- This is intentional to prevent agent overload
- The next scheduled run will verify the next "complete" card
Fundamental Principles
CRITICAL: Tasks are NEVER deleted
- Cards remain in kanban board forever
- Only status/column changes: not started → in progress → complete → verified (or failed → Backlog)
- This preserves the complete history of work done
CRITICAL: Scheduled Task Handling
- The recurring scheduled task should be DISABLED when all work is complete
- Use
scheduler:update_task with state: "disabled" to disable the task
- The kanban board and cards are NEVER deleted
Scheduled Task Prompt Template
When 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.
Tools & Resources
Required Tools
kanban.*: All kanban MCP tools for board/column/card management
code_execution_tool: For git operations, file read/write
scheduler: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 tasks
document_query: For reading metadata files
memory_*: For storing project context if needed
File Locations
- Metadata file:
.kanban-meta.md (project root) - NEVER deleted
- Changelog:
CHANGELOG.md (project root)
- Error file:
error.md (project root)
Notes
- Always use ISO 8601 timestamps:
YYYY-MM-DDTHH:MM:SSZ
- The skill assumes it's running in the project directory
- Commits should be atomic - one task per commit
- Use descriptive commit messages that match changelog entries
- Investigation cards should have clear failure context
- When in doubt, prefer continuing work over asking questions
- Check git status before every work session
- Quality verification is critical - don't just mark complete
- CRITICAL: When existing tasks are found, ALWAYS ask user whether to replace or modify - never automatically reset
- CRITICAL: Recommend larger frequencies (30-60 min) for large tasks to prevent agent overlap
- CRITICAL: After completing ANY task in WORK_MODE, ALWAYS check if ALL tasks are now complete/verified. If so, update
scheduled_task_mode: verify and enter VERIFY_MODE immediately.
- CRITICAL: In VERIFY_MODE, when a task passes verification, update its status to "verified" and move to Verified column (NOT deleted)
- CRITICAL: Always save the scheduled_task_id from scheduler:create_scheduled_task to the metadata - this is required to disable the task later
- CRITICAL: Tasks are NEVER deleted from kanban board - only status/column changes
- CRITICAL: Use scheduler:update_task with state: "disabled" to disable the scheduled task when work is complete
- CRITICAL: Use kanban.move_card to move cards between columns based on task status changes
Skill Version: 1.1 | Author: Agent Zero | Based on agentskills.io specification
Version History
- 1.1 - Cleaned up: Removed all references to todo-manager and markdown-based task files. Pure kanban-based task management.
- 1.0 - Initial release
1---2name: kanban-manager3description: 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.4---56# Kanban Manager Skill78## Overview910This skill provides a complete task management system using kanban boards for visual project tracking.11It enables autonomous task execution, scheduled work sessions, git integration, and quality verification.12The skill operates in 5 distinct modes to handle all aspects of project task management using kanban boards.1314## When to Use1516Activate this skill when the user mentions:1718- "start a kanban board" or "task board"19- "kanban" or "task management" with visual boards20- "work on tasks" or "execute tasks"21- "automated task execution" or "autonomous work"22- "scheduled tasks" or "recurring work"23- Any request to create or manage project tasks using kanban boards2425---2627## Kanban Board Structure2829### Column Mapping (5-Column System)3031| Status | Column | Description |32| ----------- | ----------- | ----------------------------------------- |33| not started | To Do | New tasks waiting to be worked on |34| in progress | In Progress | Tasks currently being worked on |35| complete | Done | Tasks completed, awaiting verification |36| verified | Verified | Tasks verified and complete (final state) |37| failed | Backlog | Failed tasks for retry/investigation |3839### Metadata File: .kanban-meta.md4041Metadata is stored in `.kanban-meta.md` in the project root:4243```markdown44---45title: Kanban Manager46project: [Project Name]47board_id: [UUID from kanban board]48created: [ISO timestamp]49last_updated: [ISO timestamp]50scheduled_task_id: [UUID from scheduler:create_scheduled_task]51scheduled_task_mode: work | verify | complete52work_complete: true | false53---54```5556### CHANGELOG.md Format5758```markdown59# Changelog6061All notable changes to this project will be documented in this file.6263The format is based on [Common Changelog](https://commonform.github.io/changelog/).6465## [Date] - Task: [Task Title]6667### Completed6869- [Description of work completed]7071### Notes7273- [Additional notes about the work]7475---7677## [Previous entries...]78```7980### error.md Format8182```markdown83# Kanban Manager Error8485- **Error:** [Error description]86- **Timestamp:** [ISO timestamp]87- **Context:** [What the agent was trying to do]88- **Resolution:** [What action was taken]89```9091---9293## Mode Definitions9495### MODE 1: INIT_MODE (Initialization)9697**Purpose:** Set up new kanban-based task management for a project.9899**Entry Condition:** First time user wants to start kanban task management OR explicitly requested.100101**CRITICAL: Tasks are NEVER deleted** - Only status changes throughout the lifecycle.102103**Actions:**1041051. Check if `.kanban-meta.md` already exists in project root1062. **If exists, present current state to user and ask:**107 > "A kanban task list already exists for this project. What would you like to do?108 >109 > **Options:**110 >111 > - **Replace:** Clear all existing cards and start fresh with new goals112 > - **Modify:** Keep existing cards and add/update as needed113 >114 > Current board state:115 > [List all cards with their status/column]1163. **If user chooses Replace:**117 - Delete all cards from kanban board (keep board and columns)118 - Ask user for new task list119 - Proceed to create new cards1204. **If user chooses Modify:**121 - Show current cards to user122 - Ask which cards to keep, update, or remove123 - Ask what new goals/tasks to add124 - Update kanban board accordingly1255. If not exists, create kanban board with 5 columns: Backlog, To Do, In Progress, Done, Verified1266. Create `.kanban-meta.md` with project header1277. Create `CHANGELOG.md` if it doesn't exist1288. Ask user for task list (what needs to be done)1299. Create cards in "To Do" column with sequential IDs (task-001, task-002, etc.)130 - Store metadata in card: status, created, updated, notes, subtasks13110. Ask user for work frequency (how often to work on tasks)13211. Schedule recurring task using `scheduler:create_scheduled_task`133 - **CRITICAL:** Save the returned UUID as `scheduled_task_id` in metadata134 - Set `scheduled_task_mode: work` and `work_complete: false` in metadata135 - Write the updated metadata to `.kanban-meta.md`13612. Confirm setup complete with user137138### MODE 2: WORK_MODE (Task Execution)139140**Purpose:** Execute the next task in the queue autonomously.141142**Entry Condition:**143144- Scheduled task fires with `scheduled_task_mode: work` in metadata, OR145- User says "work on tasks" / "execute tasks"146147**CRITICAL: When to Enter VERIFY_MODE:**148After completing a task, ALWAYS check if ALL tasks are now complete. If all tasks have status "complete" or "verified", you MUST:1491501. Update the `.kanban-meta.md` to change `scheduled_task_mode: verify`1512. Then enter VERIFY_MODE immediately to verify the completed work152153**CRITICAL: Tasks are NEVER deleted** - Only status changes throughout the lifecycle.154155**Actions:**1561571. Check if `.kanban-meta.md` exists158 - If not → enter ERROR_MODE1592. Check git status with `git status`160 - If dirty → enter CORRECTION_MODE1613. Read scheduled_task_mode and work_complete from metadata162 - If work_complete is "true" → All work already done, notify user163 - If scheduled_task_mode is "verify" → enter VERIFY_MODE164 - If scheduled_task_mode is "complete" → All work done, notify user1654. Find first card with status "not started" (in "To Do" column)166 - If none → Check if any cards have status "complete" (in "Done" column)167 - If yes → ALL WORK IS DONE, update metadata to `scheduled_task_mode: verify`, enter VERIFY_MODE168 - If no cards are "complete" either → Notify user all tasks are done1695. Move card to "In Progress" column, update metadata status to "in progress"1706. **Work the task autonomously using sub-agents/subordinates** - break down the task into subtasks and delegate to subordinate agents using call_subordinate, solve issues without waiting for input171 - **Subtask limit:** Work on a maximum of 3 subtasks per session172 - If task has more than 3 subtasks, complete up to 3 and mark remaining for next session173 - Help user break down large tasks into smaller, manageable chunks during INIT_MODE1747. **If task is too large to complete in one session:**175 - Break down the task into smaller subtasks176 - Add new cards to kanban board with unique sequential IDs177 - Keep current card in "In Progress" with notes on what's done178 - Commit progress so far1798. On completion:180 - Move card to "Done" column181 - Update card status to "complete"182 - Add completion notes to card metadata183 - Update CHANGELOG.md with descriptive notes184 - Commit all work with single commit185 - **CRITICAL:** After marking complete, check if ALL tasks are now complete or verified186 - If ALL tasks are complete/verified:187 - Update `.kanban-meta.md`: `scheduled_task_mode: verify`188 - Enter VERIFY_MODE immediately to verify completed work1899. On failure:190 - Move card to "Backlog" column191 - Update card status to "failed"192 - Add detailed failure notes explaining why193 - Create new investigation card placed in "To Do" column (directly before failed task)194 - Include context from failure195 - Commit all work with single commit196197### MODE 3: VERIFY_MODE (Quality Review)198199**Purpose:** 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.200201**Entry Condition:**202203- Scheduled task fires with `scheduled_task_mode: verify` in metadata, OR204- WORK_MODE completes last "not started" task and all tasks are now "complete" or "verified"205206**CRITICAL: When to Enter VERIFY_MODE from WORK_MODE:**207The 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.208209**CRITICAL: Tasks are NEVER deleted** - Only status changes throughout the lifecycle.210211**Actions:**2122131. Check if there are any cards with status "complete" (in "Done" column)214 - If none → ALL TASKS ALREADY VERIFIED, skip to step 62152. Get the first card marked "complete" (not yet "verified")2163. Review the card description and completion notes2174. Verify requirements were met and work is quality218 - Check if all subtasks were addressed219 - Verify code/tests work if applicable220 - Confirm documentation is complete2215. If verification passes:222 - Move card to "Verified" column223 - Change status to **"verified"**224 - Add verification notes to card metadata225 - Update CHANGELOG.md with verification notes226 - Commit all changes227 - **Loop back to step 1** to check for more "complete" cards2286. If verification fails:229 - Move card back to "In Progress" column230 - Add notes about what needs to be fixed231 - Update metadata: `scheduled_task_mode: work` (switch back to work mode)232 - Return to WORK_MODE2337. **After all tasks verified (no "complete" cards remain, only "verified"):**234 - Read the `scheduled_task_id` from `.kanban-meta.md`235 - **DISABLE the scheduled task** using `scheduler:update_task`:236 - Tool: scheduler:update_task237 - Arguments: task_id: [scheduled_task_id], state: "disabled"238 - Update `.kanban-meta.md` to indicate work is complete:239 ```yaml240 scheduled_task_mode: complete241 work_complete: true242 ```243 - Notify user that all tasks are complete and scheduled task has been disabled244245### MODE 4: CORRECTION_MODE (Git State Recovery)246247**Purpose:** Handle dirty git state and get back on track.248249**Entry Condition:** Git status shows uncommitted changes when entering WORK_MODE250251**Actions:**2522531. Analyze the uncommitted changes2542. Read `.kanban-meta.md` to find the last task that was being worked on2553. Determine if the task was completed:256 - Check if card status was set to "complete" before git state became dirty257 - Check commit history for recent task completion commits2584. If task was NOT completed:259 - Keep card status as "in progress" if needed260 - Continue working on the task in WORK_MODE2615. If task was completed (status already "complete"):262 - Commit the changes with descriptive message263 - Return to normal WORK_MODE to find next task2646. If unclear:265 - Add notes to current card about the situation266 - Commit with message: "WIP: [task name] - state recovery"267 - Return to WORK_MODE268269### MODE 5: ERROR_MODE (Error Handling)270271**Purpose:** Handle errors when metadata file is missing.272273**Entry Condition:** `.kanban-meta.md` does not exist and not in INIT_MODE274275**Actions:**2762771. Create `error.md` with:278 - Error: "Project does not contain .kanban-meta.md"279 - Timestamp280 - Context: What the agent was trying to do281 - Resolution: "Created error.md - INIT_MODE required"2822. Check if `error.md` already exists with same information283 - If same error exists:284 - Use `scheduler:find_task_by_name` to find recurring work task285 - Disable the recurring task using scheduler:update_task with state: "disabled"286 - Notify user that task management was cancelled287 - If new error:288 - Ask user if they want to start kanban task management (enter INIT_MODE)289290---291292## Step-by-Step Instructions293294### Starting Kanban Task Management (INIT_MODE)2952961. **Check existing files:**297298 ```bash299 ls -la | grep -E "\.kanban-meta\.md|CHANGELOG\.md|error\.md"300 ```3013022. **If .kanban-meta.md exists, present current state and ask user:**303304 > "A kanban task list already exists for this project. Here's the current state:305 >306 > **Current Tasks:**307 >308 > - Task 1: [Title] - [Status/Column]309 > - Task 2: [Title] - [Status/Column]310 > - ...311 >312 > What would you like to do?313 >314 > - **Replace:** Clear all tasks and start fresh with new goals315 > - **Modify:** Update the existing board (keep, remove, or change tasks)"3163173. **If user chooses Replace:**318 - Ask: "Are you sure you want to replace the current kanban board? This will clear all existing cards."319 - If confirmed, delete all cards from kanban board320 - Ask for new task list3213224. **If user chooses Modify:**323 - Show current cards to user:324 - For each card: "Keep this task? Update it? Remove it?"325 - Ask: "What new tasks would you like to add?"326 - Update kanban board with changes3273285. **If no files, create kanban board with columns:**329 - Use `kanban.list_projects` to get project list330 - Use `kanban.create_board` to create board for this project331 - Use `kanban.create_column` to create 5 columns in order:332 - Backlog (position 0)333 - To Do (position 1)334 - In Progress (position 2)335 - Done (position 3)336 - Verified (position 4)3373386. **Create `.kanban-meta.md` with ALL required fields:**339340 ```markdown341 ---342 title: Kanban Manager343 project: [Project Name]344 board_id: "[UUID from kanban board]"345 created: [ISO timestamp]346 last_updated: [ISO timestamp]347 scheduled_task_id: "" # Will be filled after creating scheduled task348 scheduled_task_mode: work349 work_complete: false350 ---351 ```3523537. **Create `CHANGELOG.md`:**354355 ```markdown356 # Changelog357358 All notable changes to this project will be documented in this file.359360 The format is based on [Common Changelog](https://commonform.github.io/changelog/).361362 ---363 ```3643658. **Ask user for tasks:**366367 > "What tasks need to be completed for this project? Please describe each task clearly."3683699. **Create cards** in "To Do" column:370 - Use `kanban.create_card` for each task371 - Title format: "task-001: [Task Title]"372 - Description: Full task description373 - Store metadata in card's metadata field or description37437510. **Ask for frequency with recommended options:**376377 > "How often should I work on these tasks? Here are some recommended options:378 >379 > **Recommended Intervals:**380 >381 > - **15 minutes** - Quick check-ins, small tasks382 > - **20 minutes** - Small to medium tasks383 > - **30 minutes** - Medium tasks (recommended default)384 > - **45 minutes** - Medium to large tasks385 > - **60 minutes** - Large, complex tasks386 >387 > **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.388 >389 > How often would you like me to work on these tasks?"39039111. **Create scheduled task:**392 - Use `scheduler:create_scheduled_task` with:393 - Name: "[Project] Kanban Work Session"394 - Prompt: Instructions to load kanban-manager skill and execute appropriate mode based on scheduled_task_mode395 - Schedule based on user frequency396 - dedicated_context: true (so it runs in its own context)397 - **CRITICAL:** Get the returned UUID from scheduler:create_scheduled_task398 - Update `.kanban-meta.md` with the UUID:399 ```yaml400 scheduled_task_id: "[UUID from scheduler response]"401 scheduled_task_mode: work402 work_complete: false403 ```404405### Working Tasks (WORK_MODE)406407**CRITICAL: When to Enter VERIFY_MODE**408After EVERY task completion, you MUST check if all tasks are now complete or verified. This is the key trigger for VERIFY_MODE.409410**CRITICAL: Tasks are NEVER deleted** - Only status changes.4114121. **Check for .kanban-meta.md:**413414 ```bash415 test -f .kanban-meta.md && echo "exists" || echo "missing"416 ```417418 If missing → ERROR_MODE4194202. **Check git status:**421422 ```bash423 git status --porcelain424 ```425426 If output not empty → CORRECTION_MODE4274283. **Read metadata from .kanban-meta.md:**429 - Parse `.kanban-meta.md` to get `scheduled_task_mode` and `work_complete` values430 - If work_complete is "true" → All work done, notify user and exit431 - If scheduled_task_mode is "verify" → enter VERIFY_MODE432 - If scheduled_task_mode is "complete" → All work done, notify user and exit4334344. **Get board and find next task:**435 - Use `kanban.get_board` to get board with cards436 - Parse cards in "To Do" column looking for first card with status "not started"4374385. **If no "not started" cards remain:**439 - Check if any cards have status "complete" (in "Done" column)440 - If yes → ALL WORK IS DONE!441 - Update `.kanban-meta.md`: `scheduled_task_mode: verify`442 - Enter VERIFY_MODE immediately to verify completed work443 - If no "complete" cards either → All tasks already verified, enter VERIFY_MODE to complete cleanup4444456. **Update card to "in progress":**446 - Use `kanban.move_card` to move card from "To Do" to "In Progress"447 - Use `kanban.update_card` to update metadata: status="in progress", updated=[timestamp]4484497. **Execute task autonomously using sub-agents/subordinates** - DO NOT wait for user input450 - Break down task into subtasks451 - Delegate subtasks to subordinate agents using call_subordinate tool452 - **Work on maximum 3 subtasks per session** - if more exist, complete up to 3 and note the rest for next session453 - Execute each subtask via sub-agents454 - Handle errors and issues independently455 - Use all available tools to solve problems4564578. **If task is too large:**458 - Break down into smaller tasks459 - Add new cards to kanban board with unique sequential IDs460 - Keep current card partially complete with progress notes461 - Commit progress4624639. **On completion:**464 - Use `kanban.move_card` to move card from "In Progress" to "Done"465 - Use `kanban.update_card` to update metadata:466 ```json467 {468 "status": "complete",469 "updated": "[ISO timestamp]",470 "notes": "[What was accomplished]"471 }472 ```473474 Update CHANGELOG.md:475476 ```markdown477 ## [Date] - Task: [Task Title]478479 ### Completed480481 - [Description of work]482483 ### Notes484485 - [Any additional notes]486 ```487488 Commit:489490 ```bash491 git add -A492 git commit -m "Complete: [Task Title] - [Brief description]"493 ```494495 **CRITICAL: Check if ALL tasks are now complete:**496 - Get board and parse all card statuses497 - If ALL cards have status "complete" or "verified" (none are "not started" or "in progress" or "failed"):498 - Update metadata: `scheduled_task_mode: verify`499 - Enter VERIFY_MODE immediately to verify the completed work50050110. **On failure:** - Use `kanban.move_card` to move card from "In Progress" to "Backlog" - Use `kanban.update_card` to update metadata:502 `json503 {504 "status": "failed",505 "updated": "[ISO timestamp]",506 "notes": "[Detailed explanation of why it failed, error messages, attempts made]"507 }508 `509510 Create investigation card in "To Do" column (directly before failed task):511 - Use `kanban.create_card` with title like "task-X: Investigate: [Failed Task Title]"512 - Description: "Investigate and resolve the failure: [failure context]"513514 Commit:515 ```bash516 git add -A517518 git commit -m "Failed: [Task Title] - Reason: [brief reason]. Created investigation task."519520 ```521522 ```523524### Verifying Completed Tasks (VERIFY_MODE)525526**When to enter VERIFY_MODE:**527528- Scheduled task fires with `scheduled_task_mode: verify` in metadata, OR529- WORK_MODE completes last "not started" task and all remaining cards are "complete"530531**NOTE:** 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.532533**CRITICAL: Tasks are NEVER deleted** - Only status changes.5345351. **Check for remaining "complete" cards:**536 - Use `kanban.get_board` to get board537 - Look for cards in "Done" column with status "complete"538 - If none found → All tasks already verified, skip to step 65395402. **Get first "complete" card** from board (first card with status "complete", not yet "verified")5415423. **Verify the work:**543 - Re-read card description544 - Check if requirements were met545 - Test code if applicable546 - Review documentation5475484. **If verified:**549 - Use `kanban.move_card` to move card from "Done" to "Verified"550 - Use `kanban.update_card` to update metadata:551 ```json552 {553 "status": "verified",554 "verified": "[ISO timestamp]",555 "verification_notes": "Quality check passed - [notes]"556 }557 ```558 - Update CHANGELOG.md:559560 ```markdown561 ## [Date] - Task: [Task Title] - VERIFIED562563 ### Completed564565 - [Original completion notes]566567 ### Verified568569 - Quality check passed - [verification notes]570 ```571572 - Commit:573 `bash574 git add -A575git commit -m "Verified: [Task Title] - Quality verified"576 `577 - **The scheduled task will run again to verify the next "complete" card**5785795. **If failed verification:**580 - Move card back to "In Progress" column581 - Add notes about what needs fixing582 - Update metadata: `scheduled_task_mode: work` (switch back to work mode)583 - Continue in WORK_MODE5845856. **After all tasks verified (no "complete" cards remain):**586 - **DISABLE the scheduled task** using `scheduler:update_task`:587 - Tool: scheduler:update_task588 - Arguments:589 - task_id: [scheduled_task_id from metadata]590 - state: "disabled"591 - Update `.kanban-meta.md` to indicate completion:592 ```yaml593 scheduled_task_mode: complete594 work_complete: true595 ```596 - Notify user that all tasks are complete and scheduled task has been disabled597598### Handling Dirty Git State (CORRECTION_MODE)5996001. **Get git diff** to see what changed:601602 ```bash603 git diff --stat604 git diff605 ```6066072. **Read .kanban-meta.md** to see last task status6086093. **Check commit history:**610611 ```bash612 git log --oneline -10613 ```6146154. **Determine action:**616 - If card was marked "complete" before dirty state → commit and continue617 - If card was in progress → continue working618 - If unclear → commit with "WIP" message and continue619620### Error Handling (ERROR_MODE)6216221. **Check if error.md exists:**623624 ```bash625 test -f error.md && cat error.md626 ```6276282. **If same error exists:**629630 ```bash631 scheduler:find_task_by_name632 # Find the recurring work task633 scheduler:update_task (if found)634 ```6356363. **If new error:**637 Create error.md with details638 Ask user: "This project doesn't have kanban task management set up. Would you like to start a new kanban board?"639640---641642## Frequency Options643644**Recommended work frequencies for scheduled tasks:**645646| Interval | Best For | Notes |647| ---------- | ---------------------------------- | ---------------------------------- |648| 15 minutes | Quick check-ins, very small tasks | May cause overlap with large tasks |649| 20 minutes | Small tasks | Minimum for most sessions |650| 30 minutes | Medium tasks (recommended default) | Good balance |651| 45 minutes | Medium to large tasks | Recommended for complex work |652| 60 minutes | Large, complex tasks | Prevents agent overlap |653654**Guidance for Large Tasks:**655656If your task list contains large or complex tasks, **choose a larger frequency (30-60 minutes)**. This ensures:657658- Each session has enough time to make meaningful progress659- Previous session completes before next starts (no agent overlap)660- Sub-agents have sufficient time to complete subtasks661- Better git commit hygiene (one task per session)662663| User Input | Cron Schedule |664| ---------------- | -------------- |665| Every 15 minutes | `*/15 * * * *` |666| Every 20 minutes | `*/20 * * * *` |667| Every 30 minutes | `*/30 * * * *` |668| Every 45 minutes | `*/45 * * * *` |669| Every 60 minutes | `0 * * * *` |670| Hourly | `0 * * * *` |671| Daily | `0 0 * * *` |672| Weekly | `0 0 * * 0` |673674Or accept custom cron expression from user.675676---677678## Available Kanban Tools679680**IMPORTANT:** Use these exact tool names and parameters:681682| Tool | Purpose | Key Parameters |683| ---------------------- | -------------------------------- | --------------------------------------- |684| `kanban.list_boards` | List all kanban boards | - |685| `kanban.list_projects` | List all projects | - |686| `kanban.get_board` | Get board with columns and cards | board_id |687| `kanban.create_board` | Create new board | project_id, name |688| `kanban.create_column` | Create column in board | board_id, name, position |689| `kanban.create_card` | Create card in column | column_id, title, description, metadata |690| `kanban.update_card` | Update card details | card_id, title, description, metadata |691| `kanban.move_card` | Move card between columns | card_id, column_id, position |692| `kanban.delete_card` | Delete card from board | card_id |693694## Available Scheduler Tools695696**IMPORTANT:** Use these exact tool names and parameters:697698| Tool | Purpose | Key Parameters |699| --------------------------------- | -------------------------------- | -------------------------------------------------------- |700| `scheduler:create_scheduled_task` | Create recurring task | name, system_prompt, prompt, schedule, dedicated_context |701| `scheduler:update_task` | Update or disable scheduled task | task_id, state (use "disabled" to disable) |702| `scheduler:find_task_by_name` | Find task by name | name |703| `scheduler:run_task` | Run task manually | uuid, context |704705---706707## Example Use Cases708709### Example 1: Starting a New Kanban Project710711- **User:** "I want to start a kanban board for my project"712- **Agent:** Enters INIT_MODE, checks for existing files713- **Agent:** Creates kanban board with 5 columns714- **Result:** Kanban board created, cards in "To Do", `.kanban-meta.md` with scheduled_task_id, scheduled task configured715716### Example 2: Continuing Existing Project with New Goals717718- **User:** "I want to add more tasks to the kanban"719- **Agent:** Enters INIT_MODE, finds existing `.kanban-meta.md`720- **Agent:** Presents current cards, asks: "Replace or Modify?"721- **User:** "Modify"722- **Agent:** Walks through current cards, adds new ones723- **Result:** Updated kanban board with new and existing cards724725### Example 3: Scheduled Work Session - All Work Complete726727- **Trigger:** Scheduled task fires, agent enters WORK_MODE728- **Agent:** Checks scheduled_task_mode from metadata729- **Agent:** Finds no "not started" cards but has "complete" cards730- **Agent:** Updates metadata to `scheduled_task_mode: verify`, enters VERIFY_MODE731- **Result:** Completed card is verified, moved to "Verified" column732733### Example 4: Verify Mode - Next Run Verifies Next Task734735- **Trigger:** Scheduled task fires with `scheduled_task_mode: verify`736- **Agent:** Enters VERIFY_MODE, finds first "complete" card737- **Agent:** Verifies it, moves to "Verified", commits738- **Agent:** Checks for more "complete" cards - if more exist, the next scheduled run will verify the next one739- **Result:** One card verified per run, eventually all verified740741### Example 5: All Work Complete - Disable Scheduled Task742743- **Trigger:** VERIFY_MODE finds no remaining "complete" cards744- **Agent:** Reads scheduled_task_id, calls scheduler:update_task with state: "disabled"745- **Agent:** Updates metadata to `scheduled_task_mode: complete`, `work_complete: true`746- **Result:** Project complete, scheduled task disabled, cards preserved with verified status747748### Example 6: User Requests Work749750- **User:** "Work on the tasks"751- **Agent:** Enters WORK_MODE (checks git first), executes task752- **Result:** Card completed or failed with investigation card created753754### Example 7: Dirty Git State755756- **Trigger:** WORK_MODE finds dirty git757- **Agent:** Enters CORRECTION_MODE, analyzes state758- **Result:** Either commits and continues OR continues interrupted work759760### Example 8: No Metadata File761762- **Trigger:** Agent in non-INIT mode finds no .kanban-meta.md763- **Agent:** Enters ERROR_MODE, creates error.md764- **Result:** User prompted to start kanban task management or recurring task disabled765766---767768## Edge Cases7697701. **No tasks in kanban board**771 - Ask user to add tasks before scheduling7727732. **All tasks failed**774 - Keep failed cards in "Backlog" with investigation cards in "To Do"775 - Agent will work on investigation cards first7767773. **Recurring task already exists**778 - Ask user if they want to update frequency or keep existing7797804. **Git conflict during commit**781 - Resolve conflict, complete commit, note in changelog7827835. **Very long task descriptions**784 - Keep descriptions concise but complete785 - Add detail in subtasks if needed7867876. **Task depends on another task**788 - Add dependency notes in description789 - Agent should complete prerequisite tasks first7907917. **Large task frequency recommendation**792 - Always recommend 30-60 minute intervals for large/complex tasks793 - Explain that smaller intervals may cause agent overlap7947958. **Verify mode not triggering**796 - CRITICAL: After completing ANY task in WORK_MODE, always check if all tasks are now complete797 - If all tasks are "complete" or "verified", immediately update `scheduled_task_mode: verify` and enter VERIFY_MODE798 - This is the key mechanism that ensures verification happens7998009. **Scheduled task runs in wrong mode**801 - The metadata `scheduled_task_mode` field controls which mode runs802 - WORK_MODE updates this to "verify" when all tasks complete803 - VERIFY_MODE updates this to "work" if verification fails and work is needed80480510. **Task verification takes multiple runs**806 - VERIFY_MODE verifies ONE task per scheduled run807 - This is intentional to prevent agent overload808 - The next scheduled run will verify the next "complete" card809810---811812## Fundamental Principles813814### CRITICAL: Tasks are NEVER deleted815816- Cards remain in kanban board forever817- Only status/column changes: not started → in progress → complete → verified (or failed → Backlog)818- This preserves the complete history of work done819820### CRITICAL: Scheduled Task Handling821822- The recurring scheduled task should be DISABLED when all work is complete823- Use `scheduler:update_task` with `state: "disabled"` to disable the task824- The kanban board and cards are NEVER deleted825826---827828## Scheduled Task Prompt Template829830When creating the recurring task, use this prompt:831832```833You are running a scheduled work session for the kanban-manager skill.834835Project: [PROJECT NAME]836Metadata File: .kanban-meta.md837838IMPORTANT: Check the scheduled_task_mode and work_complete in .kanban-meta.md metadata FIRST:839- If work_complete is "true": All work is done, notify user and exit840- If scheduled_task_mode is "complete": All work is done, notify user and exit841- If scheduled_task_mode is "verify": Execute VERIFY_MODE842- If scheduled_task_mode is "work" OR NOT SET: Execute WORK_MODE843844Instructions:8451. Load the kanban-manager skill8462. Read .kanban-meta.md and parse the metadata for scheduled_task_mode and work_complete8473. Use kanban.get_board to see current board state8484. Execute the appropriate mode based on the mode values8495. Do not wait for user input - work autonomously8506. Handle any errors that arise8517. Report completion status when done852853Remember: Use kanban tools to manage cards and all available tools to complete tasks. Do not ask for user input unless absolutely necessary.854```855856---857858## Tools & Resources859860### Required Tools861862- `kanban.*`: All kanban MCP tools for board/column/card management863- `code_execution_tool`: For git operations, file read/write864- `scheduler:create_scheduled_task`: For creating scheduled tasks (returns UUID)865- `scheduler:update_task`: For disabling scheduled task (use state: "disabled")866- `scheduler:find_task_by_name`: For finding existing tasks867- `document_query`: For reading metadata files868- `memory_*`: For storing project context if needed869870### File Locations871872- Metadata file: `.kanban-meta.md` (project root) - NEVER deleted873- Changelog: `CHANGELOG.md` (project root)874- Error file: `error.md` (project root)875876---877878## Notes879880- Always use ISO 8601 timestamps: `YYYY-MM-DDTHH:MM:SSZ`881- The skill assumes it's running in the project directory882- Commits should be atomic - one task per commit883- Use descriptive commit messages that match changelog entries884- Investigation cards should have clear failure context885- When in doubt, prefer continuing work over asking questions886- Check git status before every work session887- Quality verification is critical - don't just mark complete888- **CRITICAL:** When existing tasks are found, ALWAYS ask user whether to replace or modify - never automatically reset889- **CRITICAL:** Recommend larger frequencies (30-60 min) for large tasks to prevent agent overlap890- **CRITICAL:** After completing ANY task in WORK_MODE, ALWAYS check if ALL tasks are now complete/verified. If so, update `scheduled_task_mode: verify` and enter VERIFY_MODE immediately.891- **CRITICAL:** In VERIFY_MODE, when a task passes verification, update its status to "verified" and move to Verified column (NOT deleted)892- **CRITICAL:** Always save the scheduled_task_id from scheduler:create_scheduled_task to the metadata - this is required to disable the task later893- **CRITICAL:** Tasks are NEVER deleted from kanban board - only status/column changes894- **CRITICAL:** Use scheduler:update_task with state: "disabled" to disable the scheduled task when work is complete895- **CRITICAL:** Use kanban.move_card to move cards between columns based on task status changes896897---898899_Skill Version: 1.1 | Author: Agent Zero | Based on agentskills.io specification_900901---902903## Version History904905- **1.1** - Cleaned up: Removed all references to todo-manager and markdown-based task files. Pure kanban-based task management.906- **1.0** - Initial release