-
Notifications
You must be signed in to change notification settings - Fork 3
Kanban
The memory-backed kanban system provides lightweight task tracking stored in Chroma memory. Unlike traditional org-file based kanban, this system is project-scoped, has automatic TTL expiration, and integrates seamlessly with ling workflows.
| Aspect | Details |
|---|---|
| Storage | Chroma memory (not org files) |
| Scoping | Project-scoped via directory parameter |
| TTL | Short-term duration (7 days) |
| Use Case | Session task tracking for agents |
Data Flow:
Task Create → Chroma Memory → Status Updates → Done (DELETE)
Tasks are stored as memory entries with structured metadata:
{:type "note"
:tags ["kanban" "todo" "priority-medium"]
:content {:task-type "kanban"
:title "Implement user auth"
:status "todo"
:priority "medium"
:context "Additional notes..."
:created-at "2026-01-22T10:30:00Z"}}-
Type:
note(enables memory queries) -
Duration:
short(7-day TTL, auto-expires) -
Tags: Combination of:
-
kanban- identifies as kanban task - Status tag:
todo,doing, orreview - Priority tag:
priority-high,priority-medium, orpriority-low
-
Tasks are scoped to a project via the directory parameter. The project ID is derived from the directory path.
Always pass the directory parameter:
mcp_mem_kanban_list_slim(directory: "/home/user/projects/my-project")
Without proper scoping:
- Tasks may be invisible to queries
- Cross-project task contamination
- Incorrect kanban stats
| Tool | Purpose | Required Params |
|---|---|---|
mcp_mem_kanban_create |
Create task with full options | title |
mcp_mem_kanban_quick |
Quick add (todo, medium) | title |
mcp_mem_kanban_list_slim |
List tasks (token-efficient) | - |
mcp_mem_kanban_move |
Move task to new status |
task_id, new_status
|
mcp_mem_kanban_stats |
Get counts by status | - |
Full control:
mcp__hive__mcp_mem_kanban_create(
title: "Implement user authentication",
priority: "high",
context: "Use JWT tokens, integrate with existing user model",
directory: "/path/to/project"
)
Quick add (defaults: todo, medium priority):
mcp__hive__mcp_mem_kanban_quick(
title: "Fix login bug",
directory: "/path/to/project"
)
List tasks (id, title, status, priority):
mcp__hive__mcp_mem_kanban_list_slim(
directory: "/path/to/project"
)
Filter by status:
mcp__hive__mcp_mem_kanban_list_slim(
status: "doing",
directory: "/path/to/project"
)
mcp__hive__mcp_mem_kanban_move(
task_id: "kanban-task-abc123",
new_status: "doing",
directory: "/path/to/project"
)
mcp__hive__mcp_mem_kanban_stats(
directory: "/path/to/project"
)
Returns:
{
"todo": 3,
"doing": 1,
"review": 2,
"total": 6
}| Status | Meaning | Behavior |
|---|---|---|
todo |
Not started | Default for new tasks |
doing |
In progress | Active work |
review |
Awaiting review | Pending verification |
done |
Completed | DELETES from memory |
Moving a task to done permanently removes it from memory. This is intentional:
- Tasks are ephemeral tracking aids, not permanent records
- Session summaries capture completed work via
/wrap - Prevents stale task accumulation
- Memory stays clean and relevant
If you need to preserve completion history, use /wrap before marking tasks done.
Lings should check for in-progress tasks:
# Check what's in progress
mcp__hive__mcp_mem_kanban_list_slim(
status: "doing",
directory: "/path/to/project"
)
Move tasks as you progress:
# Start working on a task
mcp__hive__mcp_mem_kanban_move(
task_id: "task-123",
new_status: "doing",
directory: "/path/to/project"
)
# ... do work ...
# Ready for review
mcp__hive__mcp_mem_kanban_move(
task_id: "task-123",
new_status: "review",
directory: "/path/to/project"
)
Before /wrap, complete tasks:
# Mark completed
mcp__hive__mcp_mem_kanban_move(
task_id: "task-123",
new_status: "done",
directory: "/path/to/project"
)
# Then wrap
/wrap
Or use session_complete to do it all at once:
mcp__hive__session_complete(
commit_msg: "feat: implement user auth",
task_ids: ["task-123", "task-456"],
agent_id: "your-CLAUDE_SWARM_SLAVE_ID",
directory: "/path/to/project"
)
┌─────────┐ create ┌──────┐
│ Agent │─────────────►│ TODO │
└─────────┘ └──┬───┘
│ move
▼
┌───────┐
│ DOING │◄──────┐
└──┬────┘ │
│ move │ (rework)
▼ │
┌────────┐ │
│ REVIEW │───────┘
└──┬─────┘
│ move
▼
┌──────┐
│ DONE │──► DELETED from memory
└──────┘
The /catchup skill queries in-memory kanban automatically:
### In-Progress Tasks (Kanban)
- **[high]** task-abc: Implement user authentication
- **[medium]** task-def: Fix login bug
### Recommended Starting Point
1. Continue "Implement user authentication" taskStale TODO tasks (> 5 days old) are flagged for attention.
| Feature | Memory Kanban | Org-File Kanban |
|---|---|---|
| Storage | Chroma |
.org files |
| TTL | 7 days | Permanent |
| Project Scope | Automatic | Manual |
| Tools | mcp_mem_kanban_* |
mcp_kanban_* |
| Best For | Agent sessions | Long-term roadmaps |
Use memory kanban for session-level task tracking. Use org-file kanban for project roadmaps and long-term planning.
Symptom: Created tasks don't show in list.
Checks:
-
Verify Chroma is running:
curl http://localhost:8000/api/v1/heartbeat
-
Check project scope:
mcp__hive__mcp_mem_kanban_list_slim( directory: "/correct/project/path" ) -
Query raw memory:
mcp__hive__mcp_memory_query( type: "note", tags: ["kanban"], directory: "/path/to/project" )
Symptom: Older tasks are missing.
Explanation: This is expected behavior. Memory kanban uses short duration (7-day TTL). Tasks expire automatically.
Mitigation:
- Complete or review tasks within the TTL window
- For long-term tracking, use org-file kanban instead
- Important context should be captured in
/wrapbefore tasks expire
Symptom: Tasks from other projects appear in list.
Fix: Always pass the directory parameter explicitly:
mcp__hive__mcp_mem_kanban_list_slim(
directory: "/home/user/projects/THIS-project"
)
- Session-Continuity - /wrap and /catchup integration
- Infrastructure-Setup - Chroma setup
- Troubleshooting - General issues