src/project_forge/web/routes.py has 1270 lines
src/project_forge/web/routes.py is 1270 lines — past the 300-line split threshold. Largest top-level blocks (natural split candidates): def thinktank_page (103 lines), def _challenge_idea (85 lines), def explore (71 lines). Splitting reduces cognitive load and makes future edits less risky.
Feasibility: 0.70
MVP Scope: Extract the top blocks (thinktank_page, _challenge_idea, explore) into separate modules — e.g. src/project_forge/web/thinktank_page.py, src/project_forge/web/_challenge_idea.py, src/project_forge/web/explore.py. Update imports in callers; keep public API unchanged.
src/project_forge/web/routes.py has 1270 lines
src/project_forge/web/routes.py is 1270 lines — past the 300-line split threshold. Largest top-level blocks (natural split candidates): def thinktank_page (103 lines), def _challenge_idea (85 lines), def explore (71 lines). Splitting reduces cognitive load and makes future edits less risky.
Feasibility: 0.70
MVP Scope: Extract the top blocks (thinktank_page, _challenge_idea, explore) into separate modules — e.g. src/project_forge/web/thinktank_page.py, src/project_forge/web/_challenge_idea.py, src/project_forge/web/explore.py. Update imports in callers; keep public API unchanged.