name: markdown-task-manager
description: Use when managing tasks, the system is a Kanban task manager based on local Markdown files (kanban.md and archive.md). It follows a strict format compatible with the task-manager.html web application.
๐ Markdown Task Manager Skill
When to Use This Skill
- Create tasks to document work to be done
- Plan complex features
- Track project progress
- Archive completed tasks
- Generate status reports
๐ STRICT Task Format
Mandatory Template
### TASK-XXX | Task title
**Status**: <column-id>
**Priority**: [Critical|High|Medium|Low] | **Category**: [Value] | **Assigned**: @user1, @user2
**Created**: YYYY-MM-DD | **Started**: YYYY-MM-DD | **Due**: YYYY-MM-DD | **Finished**: YYYY-MM-DD
**Tags**: #tag1 #tag2 #tag3
Free text description. **NO `##` or `###` headings allowed**.
**Subtasks**:
- [ ] First subtask
- [x] Completed subtask
**Notes**:
Additional notes with subsections `**Title**:`.
**Result**:
What was done.
**Modified files**:
- file.js (lines 42-58)
โ FORBIDDEN
## Titleor### Titleinside a task**Subtasks**or**Notes**without:- Automatic archiving (only on user request)
Why? All tasks share one ## Tasks section, so a stray ##/### heading inside a task can break parsing.
๐ Workflow
V2 โ status is a field, not a position. A task's column is its
**Status**:value; all tasks live in one## Taskssection. Move a task by editing its one**Status**:line โ never cut/paste the whole block (~1 line vs 20+).
1. New Request
- Read
kanban.mdto get the last task ID - Add the task to the
## Taskssection with**Status**: todo(first column id) - Unique ID (TASK-XXX) auto-incremented
- Break down into subtasks if needed
- Increment counter in
<!-- Config: Last Task ID: XXX -->
2. Start Work
- Edit one line:
**Status**: todoโ**Status**: in-progress - Add
**Started**: YYYY-MM-DD - Check off subtasks progressively
3. Finish Work
- Edit one line:
**Status**: in-progressโ**Status**: done - Add
**Finished**: YYYY-MM-DD - Document in
**Notes**::**Result**:- What was done**Modified files**:- List with line numbers**Technical decisions**:- Choices made**Tests performed**:- Validated tests
4. Archiving
โ ๏ธ Tasks are NOT archived immediately!
- Completed tasks stay at
**Status**: done - Only on user request โ move to
archive.md - Never archive directly at end of work
๐ File Structure
kanban.md
# Kanban Board
<!-- Config: Last Task ID: 42 -->
<!-- Format: v2 -->
## โ๏ธ Configuration
**Columns**: ๐ To Do (todo) | ๐ In Progress (in-progress) | ๐ Review (in-review) | โ
Done (done)
**Categories**: Frontend, Backend, DevOps
**Users**: @alice, @bob
**Priorities**: ๐ด Critical | ๐ High | ๐ก Medium | ๐ข Low
**Tags**: #bug, #feature, #docs
---
## Tasks
### TASK-001 | Title
**Status**: todo
[...]
### TASK-003 | Completed task
**Status**: done
[...]
All tasks share the single ## Tasks section; the column comes from **Status**:
(which must equal a column id from the Config), and file order = order within a column.
โก Token-economical operations (for AI)
No stored index โ rebuild it on demand with grep, and read/edit one task:
grep -nE "^### TASK-|^\*\*Status\*\*:" kanban.md # board overview (index on demand)
grep -n "^### TASK-042 " kanban.md # locate a task by id
sed -n '/^### TASK-042 /,/^### TASK-/p' kanban.md # read just that task
# MOVE = edit one line: **Status**: todo -> **Status**: in-progress
grep -n "^\*\*Status\*\*: in-progress" kanban.md | head -1 # next task in a column
archive.md
# Task Archive
> Archived tasks
## โ
Archives
### TASK-001 | Archived task
[... full content ...]
---
### TASK-002 | Another archived task
[... full content ...]
๐ฏ Golden Rules
โ ALWAYS
- Create task BEFORE coding
- Strict format (no
##inside tasks) - Break down if complex (3+ steps)
- Update in real-time
- Document result in
**Notes**: - Reference tasks in commits (
TASK-XXX) - Leave in "Done" (archive only on user request)
โ NEVER
## Titleinside a task- Code without creating task
- Forget to check off subtasks
- Archive immediately (stay in "Done")
- Forget to document the result
๐ง User Commands
Planning
- "Plan [feature]"
- "Create roadmap for 3 months"
Execution
- "Do TASK-XXX"
- "Continue TASK-XXX"
Tracking
- "Where are we?"
- "Weekly status"
Modifications
- "Break down TASK-XXX"
- "Add subtask to TASK-XXX"
Search
- "Search in archives: [keyword]"
Maintenance
- "Archive completed tasks"
๐ Complete Examples
Simple Task
### TASK-001 | Fix login bug
**Priority**: Critical | **Category**: Backend | **Assigned**: @bob
**Created**: 2025-01-20 | **Due**: 2025-01-21
**Tags**: #bug #urgent
Users cannot log in. Error 500 in logs.
**Notes**:
Check Redis, related to yesterday's deployment.
Complete Task with Result
### TASK-042 | Notification system
**Priority**: High | **Category**: Backend | **Assigned**: @alice
**Created**: 2025-01-15 | **Started**: 2025-01-18 | **Finished**: 2025-01-22
**Tags**: #feature
Real-time notifications with WebSockets.
**Subtasks**:
- [x] Setup WebSocket server
- [x] REST API
- [x] Email sending
- [x] Notifications UI
- [x] E2E tests
**Notes**:
**Result**:
โ
Functional system with WebSocket, REST API and emails.
**Modified files**:
- src/websocket/server.js (lines 1-150)
- src/api/notifications.js (lines 20-85)
**Technical decisions**:
- Socket.io for WebSockets
- SendGrid for emails
- 30-day history in MongoDB
**Tests performed**:
- โ
100 simultaneous connections
- โ
Auto-reconnection
- โ
Emails < 2s
๐ ๏ธ Skill Functions
When using this skill, you must:
- Read kanban.md to understand current state and get last ID
- Create tasks following strict format
- Update tasks by moving between sections
- Check off subtasks progressively
- Document result in Notes before marking Done
- Increment Last Task ID in config comment
- Never archive unless explicitly requested
๐ Git Integration
# Commits with reference
git commit -m "feat: Add feature (TASK-042 - 3/5)"
git commit -m "fix: Bug fix (TASK-001)"
# Branches
git checkout -b feature/TASK-042-notifications
โ ๏ธ Critical Points of Attention
- Markdown Format: Strictly respect format (no
##inside tasks) - ID Increment: Always increment
<!-- Config: Last Task ID: XXX --> - Columns: Use exact column names defined in Configuration
- Archiving: NEVER archive automatically, only on request
- Documentation: Always fill
**Notes**:with Result, Modified files, etc.
๐ Usage
Initialization
Before using the skill, verify the project contains:
kanban.md(required)archive.md(required)AI_WORKFLOW.md(optional but recommended)
First Use
"Use the markdown-task-manager skill to create a task for [feature]"
Invocation Examples
"Skill markdown-task-manager: create a task to implement authentication"
"Skill markdown-task-manager: update TASK-007 with results"
"Skill markdown-task-manager: list all tasks in progress"
"Skill markdown-task-manager: archive completed tasks"
๐ Implementation Details
Reading kanban.md
Always start by reading kanban.md to:
- Get the last task ID from
<!-- Config: Last Task ID: XXX --> - Understand existing columns structure
- Check current tasks in each column
Creating a New Task
- Calculate new ID:
last_id + 1 - Format as
TASK-XXX(3 digits with leading zeros) - Add to "๐ To Do" section
- Update
<!-- Config: Last Task ID: XXX -->comment - Use today's date for
**Created**:
Moving Tasks Between Columns
When moving a task:
- Copy entire task content (from
### TASK-XXXto blank line before next task) - Paste in target column section
- Delete from original location
- Update dates accordingly (
**Started**:or**Finished**:)
Completing Tasks
Before moving to "โ Done":
- Ensure all subtasks are checked
[x] - Add
**Finished**: YYYY-MM-DD - Fill in
**Notes**:section with:**Result**:describing what was accomplished**Modified files**:listing changed files with line ranges**Technical decisions**:if any choices were made**Tests performed**:if tests were run
Archiving Tasks
Only when user explicitly requests archiving:
- Read task from "โ
Done" section in
kanban.md - Append task to "## โ
Archives" section in
archive.md - Add separator
---between archived tasks - Remove task from
kanban.md
This skill ensures complete traceability and total transparency of work done by AI.