B3 lifecycle extraction
action_ count in app.py: 16 (was 23, now 23-7=16)
lifecycle.py action_ count: 7

--- pytest ---
.....................................                                    [100%]
=========================== short test summary info ============================
FAILED tests/test_additional_views.py::test_help_text_has_core_sections - Ass...
FAILED tests/test_cwt.py::TestCWTAppIntegration::test_help_text_contains_cwt
2 failed, 467 passed in 36.21s

--- mypy (errors in lifecycle.py only) ---
Found 10 errors in 5 files (checked 41 source files)
