# SPEC: move-completed-tasks-to-complete-folder ## Context When a task transitions to `complete`, its directory remains in `tasks//` alongside active tasks. This clutters `--list` and `--audit`. The fix: move completed task directories to `tasks/complete//` when `--transition complete` is called. ## Requirements ### R1 -- `_task_dir` fallback Modify `_task_dir(task_name, project)` in `scripts/status.py` to check `tasks/complete/` as a fallback when `tasks/` doesn't exist: ```python 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 `, `--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//`. 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: 1. `test_complete_moves_dir` -- simulate `--transition complete` on a task, verify the dir moves to `tasks/complete//`. 2. `test_task_dir_fallback` -- verify `_task_dir` returns the completed path when task is in `tasks/complete/`. 3. `test_all_task_dirs_excludes_completed` -- verify `_all_task_dirs` does NOT include completed tasks. 4. `test_create_task_refuses_completed` -- verify `--create-task` with the same name as a completed task is refused. 5. `test_transition_refuses_from_complete` -- verify `--transition` from `complete` is refused. 6. `test_complete_dir_created_on_first_move` -- verify `tasks/complete/` is created if it doesn't exist. ### R5 -- Documentation - `CHANGELOG.md` under `[unreleased]` ## Verification - `python3 -m py_compile scripts/status.py` - `python3 -m pytest tests/test_move_completed.py -v` - `python3 -m pytest tests/ -q` -- full suite green