# Implementation Plan: Tech Debt & Test Discipline Cleanup

Architecture reference: [docs/guide_architecture.md](../../../docs/guide_architecture.md)

---

## Phase 1: Test Suite Deduplication and Centralization
Focus: Move `app_instance` and `mock_app` to `tests/conftest.py` and remove them from individual test files.

- [x] Task 1.1: Add `app_instance` and `mock_app` fixtures to `tests/conftest.py`. Ensure they properly yield the App instance and tear down. [35822aa]
- [x] Task 1.2: Remove local `app_instance` and `mock_app` fixtures from all identified test files. (Tier 3 Worker string replacement / rewrite). [a569f8c]
- [x] Task 1.3: Delete `tests/test_ast_parser_curated.py` if its contents are fully duplicated in `test_ast_parser.py`, or merge any missing tests. [a569f8c]
- [x] Task 1.4: Run the test suite (`pytest`) to ensure no fixture resolution errors. [a569f8c]

## Phase 2: False-Positive Test Exposure
Focus: Make zero-assertion tests fail loudly so they can be properly tracked.

- [x] Task 2.1: Add `pytest.fail("TODO: Implement assertions")` to `test_workflow_sim.py`, `test_sim_ai_settings.py`, `test_sim_tools.py`, `test_api_events.py` and any other tests identified as having zero assertions or just a `pass`. [a569f8c]
- [x] Task 2.2: Add `@pytest.mark.skip(reason="TODO: Implement assertions")` to the visual simulation tests that only have a `pass` block. (Checked visual tests; they had assertions or EOF handling, so no skips were needed for "pure pass" blocks). [a569f8c]

## Phase 3: Dead Code Excision in `gui_2.py`
Focus: Remove unused state variables and dead HTTP/background methods.

- [x] Task 3.1: In `gui_2.py` `__init__`, remove the initialization of unused state variables like `_token_budget_limit`, `_token_budget_pct`, etc. [a569f8c]
- [x] Task 3.2: Delete unused method definitions from `gui_2.py` (FastAPI leftovers). Preserved active methods like `_load_fonts` and `_parse_history_entries`. [a569f8c]
- [x] Task 3.3: Run `gui_2.py --headless` to verify the application still initializes properly without these variables/methods. [a569f8c]
