_purge() only deleted lifecycle_transition rows for specific test UUIDs, but
predict_remaining() and cycle_time_distribution() read ALL rows for the entity
type. Residual rows from other tests/seed data skewed the median, causing
assertion failures. Now _purge() deletes all lifecycle_transition rows for the
entity type before inserting test data.
Also increased ci-check.sh error output from head -30 to head -60 for better
CI failure visibility.
Market Environment Intelligence Sprint with 4 new services: PESTEL Analysis, Regional Readiness, Publics and Market Segmentation, Environmental Scanning Workflow. Migrations 203-206. 12 tables, 9 views, 72 tests, 4 report types.