Two-way sync with Claude Code native tasks
Synchronizes task manager tasks with Claude Code's native task system for session-based tracking and completion updates.
/plugin marketplace add mwguerra/claude-code-plugins/plugin install docs-specialist@mwguerra-marketplace[--push | --pull | --status | --clear]You are implementing taskmanager:sync.
Synchronize taskmanager tasks with Claude Code's native task system for session-based tracking.
--push - Push taskmanager tasks to native task list--pull - Pull completed native tasks back to taskmanager--status - Show sync status without making changes--clear - Clear sync mappingssqlite3 -json .taskmanager/taskmanager.db "
WITH done_ids AS (SELECT id FROM tasks WHERE status IN ('done', 'canceled', 'duplicate'))
SELECT id, title, description, priority, complexity_scale, estimate_seconds
FROM tasks t
WHERE t.archived_at IS NULL
AND t.status NOT IN ('done', 'canceled', 'duplicate', 'blocked')
AND NOT EXISTS (SELECT 1 FROM tasks c WHERE c.parent_id = t.id)
AND (t.dependencies = '[]' OR NOT EXISTS (
SELECT 1 FROM json_each(t.dependencies) d WHERE d.value NOT IN (SELECT id FROM done_ids)
))
ORDER BY CASE t.priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 ELSE 3 END
LIMIT 5;
"
TaskCreate with:
subject: [task.title]
description: [task.description]
activeForm: "Working on [task.title]"
sqlite3 .taskmanager/taskmanager.db "
INSERT INTO sync_log (direction, task_id, native_task_id, action, session_id)
VALUES ('push', '$TASK_ID', '$NATIVE_TASK_ID', 'created', '$SESSION_ID');
"
sqlite3 .taskmanager/taskmanager.db "
-- Update taskmanager task
UPDATE tasks SET
status = 'done',
completed_at = datetime('now'),
updated_at = datetime('now')
WHERE id = '$TASK_ID';
-- Log the sync
INSERT INTO sync_log (direction, task_id, native_task_id, action, session_id)
VALUES ('pull', '$TASK_ID', '$NATIVE_TASK_ID', 'completed', '$SESSION_ID');
"
echo "=== Sync Status ==="
# Tasks pushed this session
sqlite3 -box .taskmanager/taskmanager.db "
SELECT task_id, native_task_id, action, synced_at
FROM sync_log
WHERE direction = 'push'
ORDER BY synced_at DESC
LIMIT 10;
"
# Tasks pulled this session
sqlite3 -box .taskmanager/taskmanager.db "
SELECT task_id, native_task_id, action, synced_at
FROM sync_log
WHERE direction = 'pull'
ORDER BY synced_at DESC
LIMIT 10;
"
sqlite3 .taskmanager/taskmanager.db "DELETE FROM sync_log;"
echo "Sync mappings cleared"
/syncSynchronize task status with git commits, ensuring consistency between version control and task tracking.