diff --git a/src/fabledassistant/mcp/server.py b/src/fabledassistant/mcp/server.py index 81fe11e..79de92b 100644 --- a/src/fabledassistant/mcp/server.py +++ b/src/fabledassistant/mcp/server.py @@ -38,6 +38,18 @@ Mechanics: - For optional integer FKs (project_id, milestone_id, parent_id), use 0 to mean "not set". +Keep task state honest — this is what makes the project a trustworthy record: +- When you begin working a task, set it to in_progress (update_task + status=in_progress). +- Log progress as you go with add_task_log — at meaningful steps, not saved up + for the end. +- The moment a task's work is complete, set it done. Never leave finished work + at todo/in_progress — an out-of-date status makes Scribe misrepresent what's + left to do. +- At a significant landing (a merge, a shipped feature, a finished plan), write + a short dated dev-log note on the project (create_note) summarizing what + landed, and mark the plan/task done. + Scribe maintains a Rulebook system (Rulebook -> Topic -> Rule). Rules carry an actionable statement plus optional Why and How-to-apply context. At the start of any session that touches Scribe, call list_always_on_rules() to diff --git a/src/fabledassistant/mcp/tools/tasks.py b/src/fabledassistant/mcp/tools/tasks.py index 056c769..ce6b81c 100644 --- a/src/fabledassistant/mcp/tools/tasks.py +++ b/src/fabledassistant/mcp/tools/tasks.py @@ -143,7 +143,9 @@ async def update_task( task_id: ID of the task to update. title: New title, or omit to leave unchanged. body: New markdown body, or omit to leave unchanged. - status: New status — one of: todo, in_progress, done, cancelled. + status: New status — one of: todo, in_progress, done, cancelled. Drive + the lifecycle: set in_progress when you start, done when complete — + don't leave finished work at todo. priority: New priority — one of: none, low, medium, high. project_id: New project. Omit (0) to leave unchanged. milestone_id: New milestone. Omit (0) to leave unchanged.