# F46 — BDD step composition grandfather list (seeded 2026-05-22, Wave 0 W0-4).
#
# Every entry is a tests/bdd/steps/*.py file that constructs a *Pipeline
# (SearchPipeline / EmbedPipeline / ConnectorPipeline / IngestPipeline)
# directly instead of routing through a sanctioned entry point
# (kairix.cli.main, per-subcommand main() under kairix/**/cli.py /
# kairix/<x>_cli.py, an @server.tool() function in
# kairix/agents/mcp/server.py, or kairix.core.factory.build_*).
#
# Source of truth: the Plan-B-parity post-mortem (issue
# three-cubes/kairix-pro-platform#59 — Wave 0 test-discipline hardening,
# spec doc docs/architecture/test-discipline-hardening.md §3, F46).
# BDD step files that hand-wire pipelines drift from the production
# composed path; the LoCoMo regression that motivated this rule landed
# because no step file exercised factory.build_*. Routing every step
# through a sanctioned entry point keeps step behaviour pinned to the
# same composition the CLI / MCP surface uses in production.
#
# F49 forces this baseline to shrink each release; net-new step files
# that match the violation shape are blocked at pre-commit + CI Stage 0.
# New entries must NOT be added — the gate is forward-only. Paying down
# an entry means refactoring the step file to route through
# factory.build_<pipeline>(paths=FakePaths(...)) (canonical pattern in
# tests/integration/test_vec_index_lifecycle.py) and removing the line
# from this file in the same commit.
#
tests/bdd/steps/probe_per_query_telemetry_steps.py
tests/bdd/steps/query_cache_steps.py
tests/bdd/steps/search_boosts_steps.py
tests/bdd/steps/search_chunk_date_recency_steps.py
tests/bdd/steps/search_intent_gated_boosts_steps.py
tests/bdd/steps/search_logging_steps.py
