diff --git a/docs/reports/FOLLOWUP_module_taxonomy_20260627.md b/docs/reports/FOLLOWUP_module_taxonomy_20260627.md index d45c8038..3d1ecaba 100644 --- a/docs/reports/FOLLOWUP_module_taxonomy_20260627.md +++ b/docs/reports/FOLLOWUP_module_taxonomy_20260627.md @@ -81,11 +81,12 @@ ai_client.py grows from 3147 → ~3310 lines. Justified: these ARE the vendor la | `WorkspaceProfile` | `src/workspace_manager.py` (73 lines, exists) | **`src/models.py` reduced to:** -- `AGENT_TOOL_NAMES` constant (the canonical 45-tool list) -- `_create_generate_request`, `_create_confirm_request`, `__getattr__` (Pydantic lazy proxies for the API) +- `_create_generate_request`, `_create_confirm_request`, `__getattr__` (Pydantic lazy proxies for the API; could also move to `api_hooks.py` if they're truly API-specific) - Top-level docstring updated to reflect the new scope -Estimated: ~60 lines (down from 1044). +**`AGENT_TOOL_NAMES` is REDUNDANT — DELETE it (not just move).** It's a hardcoded snapshot of `mcp_tool_specs.tool_names()`. The existing test `test_tool_names_subset_of_models_agent_tool_names` literally asserts `tool_names() ⊆ AGENT_TOOL_NAMES`. Derive the list at consumer sites: `list(mcp_tool_specs.tool_names())`. Update 8 consumer sites (3 in `app_controller.py` + 5 in `tests/test_arch_boundary_phase2.py`). The cross-check test becomes either redundant or converts to a positive assertion that the set is derived correctly. + +Estimated: ~30 lines (down from 1044, down from 60 if you keep the redundant constant). ### Group D: KEEP AS-IS (the rest)