2.2 KiB
SPEC: move-completed-tasks-to-complete-folder
Context
When a task transitions to complete, its directory remains in tasks/<name>/ alongside active tasks. This clutters --list and --audit. The fix: move completed task directories to tasks/complete/<name>/ when --transition complete is called.
Requirements
R1 -- _task_dir fallback
Modify _task_dir(task_name, project) in scripts/status.py to check tasks/complete/<name> as a fallback when tasks/<name> doesn't exist:
task_path = base / task_name
if not task_path.exists():
completed = base / "complete" / task_name
if completed.exists():
return completed
return task_path
This ensures --task <name>, --transition, --approve, and other commands that call _task_dir still work for completed tasks.
R2 -- cmd_transition moves task directory
After _write_state(task_path, target) in cmd_transition, add: if target == "complete", compute the tasks root directory and move task_path to tasks/complete/<name>/. Create tasks/complete/ if it doesn't exist. Print a message confirming the move.
R3 -- _all_task_dirs unchanged
Do NOT scan tasks/complete/ in _all_task_dirs. Completed tasks are out of sight from --list and --audit.
R4 -- Tests
Write tests/test_move_completed.py covering:
test_complete_moves_dir-- simulate--transition completeon a task, verify the dir moves totasks/complete/<name>/.test_task_dir_fallback-- verify_task_dirreturns the completed path when task is intasks/complete/.test_all_task_dirs_excludes_completed-- verify_all_task_dirsdoes NOT include completed tasks.test_create_task_refuses_completed-- verify--create-taskwith the same name as a completed task is refused.test_transition_refuses_from_complete-- verify--transitionfromcompleteis refused.test_complete_dir_created_on_first_move-- verifytasks/complete/is created if it doesn't exist.
R5 -- Documentation
CHANGELOG.mdunder[unreleased]
Verification
python3 -m py_compile scripts/status.pypython3 -m pytest tests/test_move_completed.py -vpython3 -m pytest tests/ -q-- full suite green