# Task ID: 157 **Title:** Smoke test for task lifecycle transitions **Status:** pending **Dependencies:** 131, 149, 153 **Priority:** medium **Description:** Create smoke test driving a task through full lifecycle including rejected accept-gate bounce **Details:** Create src/mcplocal/tests/smoke/task-lifecycle.smoke.test.ts: 1. Create Epic → EpicTask → Task 2. Transition task: todo → in_progress → building → self_testing → qa_review → done → awaiting_review 3. Test reject: awaiting_review → in_progress 4. Advance again to awaiting_review 5. Test accept: verify merge called (may need mock git provider for smoke) 6. Verify TaskEvents recorded for all transitions 7. Follow smoke test patterns **Test Strategy:** Run against live mcpd. Verify each transition succeeds, events logged, reject bounces state correctly.