Use when managing tasks, the system is a Kanban task manager based on local Markdown files (kanban.md and archive.md)...
### 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)
## Title or ### Title inside a task**Subtasks** or **Notes** without :Why? All tasks share one ## Tasks section, so a stray ##/### heading inside a task can break parsing.
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+).
kanban.md to get the last task ID## Tasks section with **Status**: todo (first column id)<!-- Config: Last Task ID: XXX -->**Status**: todo ā **Status**: in-progress**Started**: YYYY-MM-DD**Status**: in-progress ā **Status**: done**Finished**: YYYY-MM-DD**Notes**::**Result**: - What was done**Modified files**: - List with line numbers**Technical decisions**: - Choices made**Tests performed**: - Validated testsā ļø Tasks are NOT archived immediately!
**Status**: donearchive.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.
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
# Task Archive
> Archived tasks
## ā
Archives
### TASK-001 | Archived task
[... full content ...]
---
### TASK-002 | Another archived task
[... full content ...]
## inside tasks)**Notes**:TASK-XXX)## Title inside a 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.
### 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
When using this skill, you must:
# 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
## inside tasks)<!-- Config: Last Task ID: XXX -->**Notes**: with Result, Modified files, etc.Before using the skill, verify the project contains:
kanban.md (required)archive.md (required)AI_WORKFLOW.md (optional but recommended)"Use the markdown-task-manager skill to create a task for [feature]"
"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"
Always start by reading kanban.md to:
<!-- Config: Last Task ID: XXX -->last_id + 1TASK-XXX (3 digits with leading zeros)<!-- Config: Last Task ID: XXX --> comment**Created**:When moving a task:
### TASK-XXX to blank line before next task)**Started**: or **Finished**:)Before moving to "ā Done":
[x]**Finished**: YYYY-MM-DD**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 runOnly when user explicitly requests archiving:
kanban.mdarchive.md--- between archived taskskanban.mdThis skill ensures complete traceability and total transparency of work done by AI.