[
  "::test_moderation_with_retryable_code_is_not_retried",
  "tests/_gate/test_orientation_enum_alignment.py::test_allowed_directionality_classes_aligned_with_schema",
  "tests/_gate/test_orientation_enum_alignment.py::test_orientation_required_classes_aligned_with_directive_templates",
  "tests/_gate/test_orientation_enum_alignment.py::test_reproduction_surface_classes_aligned_with_orientation_required",
  "tests/_gate/test_reproduction_surface_rule_shape.py::test_applies_present_and_bool",
  "tests/_gate/test_reproduction_surface_rule_shape.py::test_applies_to_surfaces_deny",
  "tests/_gate/test_reproduction_surface_rule_shape.py::test_current_builder_emits_only_3_keys",
  "tests/_gate/test_reproduction_surface_rule_shape.py::test_id_use_present_and_str",
  "tests/_gate/test_reproduction_surface_rule_shape.py::test_rationale_summary_present_and_str",
  "tests/_gate/test_reproduction_surface_rule_shape.py::test_reproduction_surface_rule_is_dict",
  "tests/_gate/test_reproduction_surface_rule_shape.py::test_source_deny",
  "tests/_gate/test_scene_detail_active_pack_reproduction.py::test_active_pack_detail_schema_no_enumeration",
  "tests/_gate/test_scene_detail_active_pack_reproduction.py::test_active_pack_is_v22_or_later",
  "tests/_gate/test_scene_detail_active_pack_reproduction.py::test_active_pack_system_md_no_enumeration",
  "tests/_gate/test_scene_detail_active_pack_reproduction.py::test_natural_sentence_allowed",
  "tests/_gate/test_scene_detail_active_pack_reproduction.py::test_self_test_bullet_enumeration_caught",
  "tests/_gate/test_scene_detail_active_pack_reproduction.py::test_self_test_paren_enumeration_caught",
  "tests/_gate/test_semantic_regex_ban.py::test_allowlist_allows_compound_id_tokens",
  "tests/_gate/test_semantic_regex_ban.py::test_allowlist_allows_id_prefix_literal",
  "tests/_gate/test_semantic_regex_ban.py::test_allowlist_allows_path_tokens",
  "tests/_gate/test_semantic_regex_ban.py::test_allowlist_denies_file_path_tokens",
  "tests/_gate/test_semantic_regex_ban.py::test_allowlist_denies_open_world_pathway_nouns",
  "tests/_gate/test_semantic_regex_ban.py::test_allowlist_denies_pattern_stem_tail_marker_identifiers",
  "tests/_gate/test_semantic_regex_ban.py::test_diff_fails_on_git_error",
  "tests/_gate/test_semantic_regex_ban.py::test_diff_uses_glob_magic_prefix",
  "tests/_gate/test_semantic_regex_ban.py::test_forbidden_pattern_catches_pattern_stem_tail_marker_suffixes",
  "tests/_gate/test_semantic_regex_ban.py::test_semantic_regex_ban_gate",
  "tests/api/test_d6_endpoint_preflight.py::test_batch_endpoint_preflight_always_enforces_shot_binding",
  "tests/api/test_d6_endpoint_preflight.py::test_batch_endpoint_preflight_raise_blocks_downstream",
  "tests/api/test_d6_endpoint_preflight.py::test_single_endpoint_blank_custom_prompt_normalized_to_automatic_path[   ]",
  "tests/api/test_d6_endpoint_preflight.py::test_single_endpoint_blank_custom_prompt_normalized_to_automatic_path[\\t\\n  ]",
  "tests/api/test_d6_endpoint_preflight.py::test_single_endpoint_blank_custom_prompt_normalized_to_automatic_path[]",
  "tests/api/test_d6_endpoint_preflight.py::test_single_endpoint_custom_prompt_disables_binding_enforcement",
  "tests/api/test_d6_endpoint_preflight.py::test_single_endpoint_preflight_pass_proceeds_to_downstream",
  "tests/api/test_d6_endpoint_preflight.py::test_single_endpoint_preflight_raise_blocks_downstream",
  "tests/api/test_d6_endpoint_preflight.py::test_single_endpoint_skips_preflight_when_still_not_found",
  "tests/api/test_d6_http_response_shape.py::test_binding_mismatch_returns_422_with_upstream_per_consumer[background_prompt]",
  "tests/api/test_d6_http_response_shape.py::test_binding_mismatch_returns_422_with_upstream_per_consumer[background_render]",
  "tests/api/test_d6_http_response_shape.py::test_binding_mismatch_returns_422_with_upstream_per_consumer[floor_plan_prompt]",
  "tests/api/test_d6_http_response_shape.py::test_binding_mismatch_returns_422_with_upstream_per_consumer[scene_detail]",
  "tests/api/test_d6_http_response_shape.py::test_custom_prompt_blocked_on_catalog_stale",
  "tests/api/test_d6_http_response_shape.py::test_custom_prompt_passes_with_binding_only_stale",
  "tests/api/test_d6_http_response_shape.py::test_stale_upstream_response_shape_full_payload",
  "tests/api/test_grounding_fidelity_endpoints.py::TestTraversalIsRefused::test_a_path_in_episode_id_cannot_leave_the_project[photo]",
  "tests/api/test_grounding_fidelity_endpoints.py::TestTraversalIsRefused::test_a_path_in_episode_id_cannot_leave_the_project[review-page]",
  "tests/api/test_grounding_fidelity_endpoints.py::TestTraversalIsRefused::test_frozen_refuses_a_resolved_path_outside_the_project",
  "tests/api/test_grounding_fidelity_endpoints.py::TestVerdictsRoute::test_a_non_member_gets_403",
  "tests/api/test_grounding_fidelity_endpoints.py::TestVerdictsRoute::test_an_episode_of_another_project_is_404",
  "tests/api/test_grounding_fidelity_endpoints.py::TestVerdictsRoute::test_member_gets_200_with_the_right_call_shape",
  "tests/core/steps/test_cleanup_default.py::test_image_step_cleanup_returns_noop_report",
  "tests/core/steps/test_cleanup_default.py::test_image_step_no_cleanup_override[BackgroundChainRenderStep-]",
  "tests/core/steps/test_cleanup_default.py::test_image_step_no_cleanup_override[CharacterStateVariantStep-]",
  "tests/core/steps/test_cleanup_default.py::test_image_step_no_cleanup_override[CompositeImageGenStep-]",
  "tests/core/steps/test_cleanup_default.py::test_image_step_no_cleanup_override[FloorPlanRenderStep-]",
  "tests/core/steps/test_cleanup_default.py::test_image_step_no_cleanup_override[RefImageGenStep-]",
  "tests/core/steps/test_cleanup_default.py::test_image_step_no_cleanup_override[SceneImagePipelineStep-]",
  "tests/core/steps/test_cleanup_default.py::test_image_step_resolved_minimum_count",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g16_content_surface_directive",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g17_reflective_surface_directive",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g18_content_surface_empty_no_directive",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g19_reflective_surface_empty_no_directive",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g20_transparent_surface_no_directive",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g21_directional_3d_no_directive",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g22_non_directional_no_directive",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g23_legacy_no_class_no_directive",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g24_unknown_enum_no_directive",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g25_element_string_independent_when_class_emitted[12345]",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g25_element_string_independent_when_class_emitted[\\ubd80\\uc801]",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g25_element_string_independent_when_class_emitted[]",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g25_element_string_independent_when_class_emitted[monitor]",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g25_element_string_independent_when_class_emitted[polaroid]",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g25_element_string_independent_when_class_emitted[snapshot]",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g25_element_string_independent_when_class_emitted[wooden deck]",
  "tests/core/steps/test_detail_steps_bg_element_line.py::test_g26_orientation_inline_universal",
  "tests/core/steps/test_detail_steps_episode_policy.py::test_derive_card_inputs_includes_episode_reference_policy",
  "tests/core/steps/test_detail_steps_episode_policy.py::test_derive_card_inputs_none_when_absent",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_folds_effective_prompt_content[ShotExtractStep-shot_extract-system]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_folds_effective_prompt_content[ShotSelectionStep-shot_selection-system]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_folds_effective_prompt_content[ShotStagingStep-shot_staging-system]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_folds_prompt_pack[ShotExtractStep-shot_extract]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_folds_prompt_pack[ShotSelectionStep-shot_selection]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_folds_prompt_pack[ShotStagingStep-shot_staging]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_folds_schema_content[ShotExtractStep-shot_extract-shot_schema]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_folds_schema_content[ShotSelectionStep-shot_selection-selection_schema]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_folds_schema_content[ShotStagingStep-shot_staging-schema]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_stable_for_same_inputs[ShotExtractStep-shot_extract-system]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_stable_for_same_inputs[ShotExtractStep-shot_extract]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_stable_for_same_inputs[ShotSelectionStep-shot_selection-system]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_stable_for_same_inputs[ShotSelectionStep-shot_selection]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_stable_for_same_inputs[ShotStagingStep-shot_staging-system]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_config_hash_stable_for_same_inputs[ShotStagingStep-shot_staging]",
  "tests/core/steps/test_e2e13_step_local_config_hash.py::test_staging_pack_has_no_paused_pose_contract",
  "tests/core/steps/test_episode_reference_policy_step.py::test_build_selected_map_fails_when_shot_selection_missing",
  "tests/core/steps/test_episode_reference_policy_step.py::test_build_selected_map_ok",
  "tests/core/steps/test_episode_reference_policy_step.py::test_visible_shot_count_composite_id_normalized_to_base",
  "tests/core/steps/test_episode_reference_policy_step.py::test_visible_shot_count_fails_when_selected_scene_missing",
  "tests/core/steps/test_episode_reference_policy_step.py::test_visible_shot_count_fails_when_selected_shot_missing",
  "tests/core/steps/test_episode_reference_policy_step.py::test_visible_shot_count_over_selected_shots_only",
  "tests/core/steps/test_file_path_consistency.py::test_chain_bg_legacy_verify_resolves_relative_path",
  "tests/core/steps/test_file_path_consistency.py::test_chain_bg_planner_verify_resolves_relative_path",
  "tests/core/steps/test_file_path_consistency.py::test_floor_plan_verify_resolves_relative_path",
  "tests/core/steps/test_file_path_consistency.py::test_ref_image_gen_verify_resolves_relative_path",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_attach_flag_off_is_byte_identical",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_attach_flag_on_appends_precomputed",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_attach_flag_on_no_guide_for_shot_is_noop",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_attach_framing_gate_passes_wide_medium_none",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_attach_framing_gate_skips_close_and_insert",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_attach_threads_asset_id_into_ref_role_metadata",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_indoor_gate_admits_indoor",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_indoor_gate_excludes_outdoor",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_judge_disabled_admits_none",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_qc_fail_no_guide_but_diagnostic",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_registers_guide_for_admitted_qc_pass",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_single_lane_off_no_lone_candidate",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_single_lane_on_generates_guide_for_lone_shot",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_single_lane_on_judge_deny_no_guide",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_single_lane_on_no_bg_plate_skips_guide_fn",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_single_shot_no_target_denies",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_single_shot_target_zero_figure_denies",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_single_shot_targets_only_figure_shot",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_skip_partial_generates_only_live",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_context_skip_shot_keys_all_done_skips_group",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_indoor_pose_guide_role_registered_and_separate",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_resolve_guide_asset_ids_ambiguous_pair_unresolved",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_resolve_guide_asset_ids_miss_leaves_none_and_diagnostic",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_resolve_guide_asset_ids_pair_fallback_when_hash_differs",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_resolve_guide_asset_ids_triple_match",
  "tests/core/steps/test_indoor_pose_guide_attach.py::test_resolve_guide_asset_ids_triple_wins_over_multiple_pairs",
  "tests/core/steps/test_indoor_pose_guide_judge.py::test_judge_admit_single_shot_decision",
  "tests/core/steps/test_indoor_pose_guide_judge.py::test_judge_attach_when_all_conditions_met",
  "tests/core/steps/test_indoor_pose_guide_judge.py::test_judge_deny_empty_evidence",
  "tests/core/steps/test_indoor_pose_guide_judge.py::test_judge_deny_low_confidence",
  "tests/core/steps/test_indoor_pose_guide_judge.py::test_judge_deny_malformed",
  "tests/core/steps/test_indoor_pose_guide_judge.py::test_judge_deny_no_guide_decision",
  "tests/core/steps/test_indoor_pose_guide_judge.py::test_judge_deny_no_need",
  "tests/core/steps/test_indoor_pose_guide_judge.py::test_judge_deny_single_shot_decision",
  "tests/core/steps/test_indoor_pose_guide_judge.py::test_resolve_single_shot_targets_parses_keys",
  "tests/core/steps/test_location_consistency_validate_response.py::TestLocationConsistencyValidateResponse::test_all_tiers_empty_falls_back_to_entity_detail",
  "tests/core/steps/test_location_consistency_validate_response.py::TestLocationConsistencyValidateResponse::test_empty_locations_triggers_fallback",
  "tests/core/steps/test_location_consistency_validate_response.py::TestLocationConsistencyValidateResponse::test_non_empty_locations_returns_directly",
  "tests/core/steps/test_location_consistency_validate_response.py::TestLocationConsistencyValidateResponse::test_validate_callback_passed_to_call_structured",
  "tests/core/steps/test_outdoor_chain_lineage.py::test_chain_lineage_blocking_and_sketch_resolve",
  "tests/core/steps/test_outdoor_chain_lineage.py::test_chain_lineage_blocking_skipped_sketch_points_to_aerial",
  "tests/core/steps/test_outdoor_chain_lineage.py::test_chain_lineage_db_none_noop",
  "tests/core/steps/test_outdoor_chain_lineage.py::test_chain_lineage_future_parent_not_linked",
  "tests/core/steps/test_outdoor_chain_lineage.py::test_chain_lineage_rerun_picks_parent_before_child",
  "tests/core/steps/test_outdoor_chain_lineage.py::test_chain_lineage_sketch_unresolved_when_no_assets",
  "tests/core/steps/test_outlook_with_no_wearer_has_no_producer.py::test_an_outlook_whose_only_wearer_is_low_freq_is_still_excluded",
  "tests/core/steps/test_outlook_with_no_wearer_has_no_producer.py::test_an_outlook_with_no_wearer_is_not_expected",
  "tests/core/steps/test_outlook_with_no_wearer_has_no_producer.py::test_the_no_wearer_count_lands_in_the_step_result",
  "tests/core/steps/test_render_prompt_card_episode_policy.py::test_base_id_required_preserved_despite_text_only",
  "tests/core/steps/test_render_prompt_card_episode_policy.py::test_none_manifest_is_noop",
  "tests/core/steps/test_render_prompt_card_episode_policy.py::test_text_only_char_suppressed_from_required_refs",
  "tests/core/steps/test_render_prompt_card_episode_policy.py::test_w2_generic_descriptor_explicit_prohibition",
  "tests/core/steps/test_render_prompt_card_episode_policy.py::test_w2_generic_descriptor_no_unconditional_c_id_instruction",
  "tests/core/steps/test_render_prompt_card_episode_policy.py::test_w2_generic_descriptor_zero_required_refs_regression",
  "tests/core/steps/test_render_prompt_card_episode_policy.py::test_w2_id_and_outlook_required_still_says_must_use_composite",
  "tests/core/steps/test_render_prompt_card_helper.py::test_render_prompt_card_no_phantom_phrase_closed_list",
  "tests/core/steps/test_render_prompt_card_helper.py::test_staging_empty_dict_raises_invalid",
  "tests/core/steps/test_render_prompt_card_helper.py::test_staging_none_without_flag_raises",
  "tests/core/steps/test_render_prompt_card_helper.py::test_staging_not_applicable_returns_empty_list",
  "tests/core/steps/test_render_prompt_card_helper.py::test_staging_with_empty_key_bg_elements_returns_empty",
  "tests/core/steps/test_render_prompt_card_helper.py::test_staging_with_non_list_key_bg_elements_raises",
  "tests/core/steps/test_render_prompt_card_helper.py::test_staging_with_populated_key_bg_elements_passes_through",
  "tests/core/steps/test_scene_consistency_canary_w4.py::test_canary_1_full_close_overlap_detected",
  "tests/core/steps/test_scene_consistency_canary_w4.py::test_canary_2_separated_shots_no_conflict",
  "tests/core/steps/test_scene_consistency_canary_w4.py::test_canary_3_old_v6_cp_force_rerun",
  "tests/core/steps/test_scene_consistency_status.py::test_execute_assigns_blocked_status_when_shot_selection_missing",
  "tests/core/steps/test_scene_consistency_status.py::test_execute_assigns_failed_status_when_all_tiers_fail",
  "tests/core/steps/test_scene_consistency_status.py::test_execute_assigns_ok_status_for_normal_llm_result",
  "tests/core/steps/test_scene_consistency_status.py::test_execute_assigns_skipped_status_for_single_shot",
  "tests/core/steps/test_scene_consistency_status.py::test_execute_blocked_count_in_return",
  "tests/core/steps/test_scene_consistency_status.py::test_execute_skipped_no_selection_for_explicit_empty",
  "tests/core/steps/test_scene_consistency_status.py::test_manifest_blocks_partial_cascade",
  "tests/core/steps/test_scene_consistency_status.py::test_resume_blocked_status_overrides_prior_ok",
  "tests/core/steps/test_scene_consistency_status.py::test_resume_preserves_ok_in_existing_ok",
  "tests/core/steps/test_scene_consistency_status.py::test_resume_preserves_status_in_existing_ok",
  "tests/core/steps/test_scene_consistency_status.py::test_resume_retries_failed_all_tiers_status",
  "tests/core/steps/test_scene_consistency_status.py::test_resume_single_shot_overrides_prior_ok",
  "tests/core/steps/test_scene_consistency_status.py::test_resume_status_none_old_cp_preserved_when_summary_clean",
  "tests/core/steps/test_scene_consistency_status.py::test_resume_status_none_old_cp_with_blocked_prefix_retried",
  "tests/core/steps/test_scene_consistency_status.py::test_resume_status_none_old_cp_with_failure_prefix_retried",
  "tests/core/steps/test_scene_consistency_status.py::test_verify_backward_compat_blocked_prefix",
  "tests/core/steps/test_scene_consistency_status.py::test_verify_backward_compat_failure_prefix",
  "tests/core/steps/test_scene_consistency_status.py::test_verify_clean_for_ok_and_skipped_status",
  "tests/core/steps/test_scene_consistency_status.py::test_verify_clean_for_skipped_no_selection_status",
  "tests/core/steps/test_scene_consistency_status.py::test_verify_metadata_keys_consistent_across_branches",
  "tests/core/steps/test_scene_consistency_status.py::test_verify_partial_when_blocked_no_selection_status",
  "tests/core/steps/test_scene_consistency_status.py::test_verify_partial_when_failed_all_tiers_status",
  "tests/core/steps/test_scene_consistency_status.py::test_verify_partial_with_both_failed_and_blocked",
  "tests/core/steps/test_scene_consistency_status.py::test_verify_silent_fallback_caught_via_status",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element0-close]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element1-close]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element10-full]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element11-full]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element2-close]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element3-close]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element4-close]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element5-close]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element6-close]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element7-close]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element8-close]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing[element9-full]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[char_close_up]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[char_close_up_state]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[victim_eye]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[victim_eyes]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[victim_eyes_state]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[victim_face]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[victim_face_detail]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[victim_feet_detail]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[victim_foot]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[victim_wrist]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[victim_wrist_detail]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_close_pattern_word_boundary[victim_wrist_state]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_does_not_false_positive_on_body_part_words[element0]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_does_not_false_positive_on_body_part_words[element1]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_does_not_false_positive_on_body_part_words[element2]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_does_not_false_positive_on_body_part_words[element3]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_known_gap_no_underscore_prefix",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_no_false_positive_on_substring_overlap[char_elbow_bent_state]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_no_false_positive_on_substring_overlap[char_eyebrows_raised]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_no_false_positive_on_substring_overlap[char_facelift_state]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_no_false_positive_on_substring_overlap[char_necklace_state]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_no_false_positive_on_substring_overlap[victim_kneeling_pose]",
  "tests/core/steps/test_scene_consistency_validator.py::test_classify_framing_no_false_positive_on_substring_overlap[victim_wristband_state]",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_conflict_close_close_same_shot_no_conflict",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_conflict_when_full_and_close_share_shot",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_empty_fixed_elements",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_framings_legacy_metadata_key_preserved",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_handles_invalid_shot_indices",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_handles_string_shot_indices",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_ignores_empty_character_name",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_ignores_non_character_state",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_invalid_element_scope_both_invalid_raises",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_invalid_element_scope_raises_apperror",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_missing_element_scope_raises_keyerror",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_no_conflict_when_different_shots",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_no_conflict_when_same_framing",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_no_conflict_when_same_scope",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_no_false_negative_when_full_uses_body_part_word",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_robust_to_non_dict_elements",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_separate_characters_no_cross_conflict",
  "tests/core/steps/test_scene_consistency_validator.py::test_detect_three_elements_pairwise",
  "tests/core/steps/test_scene_consistency_validator.py::test_execute_completed_count_subtracts_validator_violations",
  "tests/core/steps/test_scene_consistency_validator.py::test_execute_no_promotion_when_no_violation",
  "tests/core/steps/test_scene_consistency_validator.py::test_execute_promotes_violation_scene_to_partial_status",
  "tests/core/steps/test_scene_consistency_validator.py::test_execute_retries_once_and_keeps_partial_when_conflict_remains",
  "tests/core/steps/test_scene_consistency_validator.py::test_execute_retries_with_the_violation_and_takes_the_clean_answer",
  "tests/core/steps/test_scene_consistency_validator.py::test_execute_validator_runs_on_old_cp_no_status",
  "tests/core/steps/test_scene_consistency_validator.py::test_execute_validator_skips_failed_and_blocked",
  "tests/core/steps/test_scene_consistency_validator.py::test_is_scene_result_consumer_safe[scene0-True]",
  "tests/core/steps/test_scene_consistency_validator.py::test_is_scene_result_consumer_safe[scene1-True]",
  "tests/core/steps/test_scene_consistency_validator.py::test_is_scene_result_consumer_safe[scene2-False]",
  "tests/core/steps/test_scene_consistency_validator.py::test_is_scene_result_consumer_safe[scene3-False]",
  "tests/core/steps/test_scene_consistency_validator.py::test_is_scene_result_consumer_safe[scene4-False]",
  "tests/core/steps/test_scene_consistency_validator.py::test_is_scene_result_consumer_safe[scene5-False]",
  "tests/core/steps/test_scene_consistency_validator.py::test_is_scene_result_consumer_safe[scene6-False]",
  "tests/core/steps/test_scene_consistency_validator.py::test_is_scene_result_consumer_safe[scene7-True]",
  "tests/core/steps/test_scene_consistency_validator.py::test_is_scene_result_consumer_safe[scene8-True]",
  "tests/core/steps/test_scene_consistency_validator.py::test_load_fixed_elements_skips_legacy_violation_status_none",
  "tests/core/steps/test_scene_consistency_validator.py::test_load_fixed_elements_skips_legacy_violation_when_status_ok",
  "tests/core/steps/test_scene_consistency_validator.py::test_load_fixed_elements_skips_partial_status_scenes",
  "tests/core/steps/test_scene_consistency_validator.py::test_normalize_applies_to_shots_scalar_safe[1_0]",
  "tests/core/steps/test_scene_consistency_validator.py::test_normalize_applies_to_shots_scalar_safe[1_1]",
  "tests/core/steps/test_scene_consistency_validator.py::test_normalize_applies_to_shots_scalar_safe[42]",
  "tests/core/steps/test_scene_consistency_validator.py::test_normalize_applies_to_shots_scalar_safe[None]",
  "tests/core/steps/test_scene_consistency_validator.py::test_normalize_applies_to_shots_scalar_safe[raw4]",
  "tests/core/steps/test_scene_consistency_validator.py::test_normalize_applies_to_shots_valid_array",
  "tests/core/steps/test_scene_consistency_validator.py::test_resume_retries_validator_violations_status",
  "tests/core/steps/test_scene_consistency_validator.py::test_resume_retry_still_violation_remains_partial",
  "tests/core/steps/test_scene_consistency_validator.py::test_shot_dependency_t2i_skips_violation_in_consistency_cp",
  "tests/core/steps/test_scene_consistency_validator.py::test_verify_clean_metadata_includes_violation_scenes_key",
  "tests/core/steps/test_scene_consistency_validator.py::test_verify_clean_when_ok_status_no_violation",
  "tests/core/steps/test_scene_consistency_validator.py::test_verify_combined_failed_blocked_violations",
  "tests/core/steps/test_scene_consistency_validator.py::test_verify_partial_when_validator_violations",
  "tests/core/steps/test_scene_consistency_validator.py::test_verify_revalidates_ok_status_with_violation_in_fixed_elements",
  "tests/core/steps/test_scene_consistency_validator.py::test_verify_revalidates_status_none_old_cp_with_violation",
  "tests/core/steps/test_verify_completion.py::test_chain_bg_render_verify_clean_legacy",
  "tests/core/steps/test_verify_completion.py::test_chain_bg_render_verify_clean_planner",
  "tests/core/steps/test_verify_completion.py::test_chain_bg_render_verify_missing_planner",
  "tests/core/steps/test_verify_completion.py::test_chain_bg_render_verify_no_data",
  "tests/core/steps/test_verify_completion.py::test_composite_verify_clean",
  "tests/core/steps/test_verify_completion.py::test_composite_verify_missing",
  "tests/core/steps/test_verify_completion.py::test_floor_plan_render_verify_clean",
  "tests/core/steps/test_verify_completion.py::test_floor_plan_render_verify_clean_has_no_skipped_metadata",
  "tests/core/steps/test_verify_completion.py::test_floor_plan_render_verify_excludes_missing_location_canon",
  "tests/core/steps/test_verify_completion.py::test_floor_plan_render_verify_excludes_no_primary_loc",
  "tests/core/steps/test_verify_completion.py::test_floor_plan_render_verify_no_master_plan",
  "tests/core/steps/test_verify_completion.py::test_floor_plan_render_verify_partial_missing",
  "tests/core/steps/test_verify_completion.py::test_floor_plan_render_verify_real_missing_still_partial",
  "tests/core/steps/test_verify_completion.py::test_floor_plan_render_verify_renderable_filter_excludes_failed_prompt",
  "tests/core/steps/test_verify_completion.py::test_floor_plan_render_verify_skip_when_background_mode_off",
  "tests/core/steps/test_verify_completion.py::test_outlook_kept_when_any_wearer_non_low_freq",
  "tests/core/steps/test_verify_completion.py::test_outlook_mixed_skip_aggregates_per_outlook",
  "tests/core/steps/test_verify_completion.py::test_outlook_orphan_no_wearer_kept_in_expected",
  "tests/core/steps/test_verify_completion.py::test_outlook_skipped_when_only_wearer_low_freq",
  "tests/core/steps/test_verify_completion.py::test_outlook_standalone_counts_expected_and_found",
  "tests/core/steps/test_verify_completion.py::test_outlook_standalone_verify_clean",
  "tests/core/steps/test_verify_completion.py::test_outlook_standalone_verify_missing",
  "tests/core/steps/test_verify_completion.py::test_outlook_with_no_wearer_is_not_expected_but_is_counted",
  "tests/core/steps/test_verify_completion.py::test_ref_image_gen_verify_clean",
  "tests/core/steps/test_verify_completion.py::test_ref_image_gen_verify_excludes_location_outlook",
  "tests/core/steps/test_verify_completion.py::test_ref_image_gen_verify_file_missing",
  "tests/core/steps/test_verify_completion.py::test_ref_image_gen_verify_includes_props",
  "tests/core/steps/test_verify_completion.py::test_ref_image_gen_verify_low_freq_excluded",
  "tests/core/steps/test_verify_completion.py::test_ref_image_gen_verify_missing",
  "tests/core/steps/test_verify_completion.py::test_ref_image_gen_verify_props_low_freq_excluded",
  "tests/core/steps/test_verify_completion.py::test_state_variant_verify_clean",
  "tests/core/steps/test_verify_completion.py::test_state_variant_verify_lenient_skip_unregistered",
  "tests/core/steps/test_verify_completion.py::test_state_variant_verify_missing",
  "tests/core/steps/test_verify_completion.py::test_state_variant_verify_skips_low_freq_registered_character",
  "tests/core/test_abort_codes_one_place.py::TestTheListLivesInOnePlace::test_no_module_inlines_the_whole_list",
  "tests/core/test_abort_codes_one_place.py::TestTheListLivesInOnePlace::test_single_code_checks_are_left_alone",
  "tests/core/test_abort_codes_one_place.py::TestTheListLivesInOnePlace::test_the_moved_ones_call_the_predicate[app/core/steps/detail_steps.py]",
  "tests/core/test_abort_codes_one_place.py::TestTheListLivesInOnePlace::test_the_moved_ones_call_the_predicate[app/modules/pipeline/cine_transform.py]",
  "tests/core/test_abort_codes_one_place.py::TestTheListLivesInOnePlace::test_the_moved_ones_call_the_predicate[app/services/scene_generation_coordinator.py]",
  "tests/core/test_abort_codes_one_place.py::TestTheListLivesInOnePlace::test_the_moved_ones_call_the_predicate[app/services/scene_image_service.py]",
  "tests/core/test_abort_codes_one_place.py::TestTheListLivesInOnePlace::test_the_predicate_is_public",
  "tests/core/test_abort_codes_one_place.py::TestThePredicateItself::test_a_plain_exception_is_not_an_abort",
  "tests/core/test_abort_codes_one_place.py::TestThePredicateItself::test_it_matches_the_three_and_nothing_else",
  "tests/core/test_applicability_phase7.py::test_if_background_mode_legacy_alias_returns_true",
  "tests/core/test_applicability_phase7.py::test_if_background_mode_off_returns_false",
  "tests/core/test_applicability_phase7.py::test_if_background_mode_on_returns_true",
  "tests/core/test_applicability_phase7.py::test_if_planning_doc_real_runner_passes_db",
  "tests/core/test_applicability_phase7.py::test_if_planning_doc_stub_runner_without_db_uses_own_session",
  "tests/core/test_applicability_phase7.py::test_validator_registered",
  "tests/core/test_asset_readiness.py::test_assert_blocks_when_missing_default_settings",
  "tests/core/test_asset_readiness.py::test_assert_blocks_when_no_expected_entities",
  "tests/core/test_asset_readiness.py::test_assert_passes_when_text_only_allowed_via_opt_in",
  "tests/core/test_asset_readiness.py::test_assert_returns_card_when_ready",
  "tests/core/test_asset_readiness.py::test_card_is_ready_when_no_missing_and_expected_present",
  "tests/core/test_asset_readiness.py::test_card_missing_summary_truncates_long_lists",
  "tests/core/test_asset_readiness.py::test_card_not_ready_when_missing",
  "tests/core/test_asset_readiness.py::test_card_not_ready_when_no_expected",
  "tests/core/test_asset_readiness.py::test_card_summary_format",
  "tests/core/test_asset_readiness.py::test_collect_state_variants_extracts_from_cp",
  "tests/core/test_asset_readiness.py::test_collect_state_variants_handles_corrupted_cp",
  "tests/core/test_asset_readiness.py::test_collect_state_variants_handles_data_null",
  "tests/core/test_asset_readiness.py::test_collect_state_variants_handles_data_wrapper_shape",
  "tests/core/test_asset_readiness.py::test_collect_state_variants_returns_empty_when_no_cp",
  "tests/core/test_asset_readiness.py::test_collect_state_variants_uses_normalized_name_match",
  "tests/core/test_asset_readiness.py::test_miss_entry_reason_categories",
  "tests/core/test_asset_readiness.py::test_miss_entry_supports_optional_file_path",
  "tests/core/test_asset_readiness.py::test_settings_field_is_str_type_not_bool",
  "tests/core/test_asset_readiness.py::test_settings_garbage_env_does_not_break_import",
  "tests/core/test_asset_readiness.py::test_text_only_default_false",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[0-False]",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[1-True]",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[False-False]",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[TRUE-True]",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[True-True]",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[false-False]",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[no-False]",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[off-False]",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[on-True]",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[true-True]",
  "tests/core/test_asset_readiness.py::test_text_only_env_recognized_values[yes-True]",
  "tests/core/test_asset_readiness.py::test_text_only_env_typo_falls_back_to_settings",
  "tests/core/test_background_classify_step.py::test_build_groups_falls_back_to_singleton_when_no_hint",
  "tests/core/test_background_classify_step.py::test_build_groups_from_entities_groups_by_building_hint",
  "tests/core/test_background_classify_step.py::test_build_locations_deterministic_order",
  "tests/core/test_background_classify_step.py::test_build_locations_falls_back_when_detail_missing",
  "tests/core/test_background_classify_step.py::test_build_locations_returns_flat_list_from_entity_merge",
  "tests/core/test_background_classify_step.py::test_build_locations_returns_flat_list_with_indoor_marker",
  "tests/core/test_background_classify_step.py::test_step_disabled_when_mode_off",
  "tests/core/test_background_master_plan_step.py::test_step_all_members_filtered_group_skipped_not_failed",
  "tests/core/test_background_master_plan_step.py::test_step_disabled_when_mode_off",
  "tests/core/test_background_master_plan_step.py::test_step_pre_filters_members_without_location_profile",
  "tests/core/test_background_master_plan_step.py::test_step_skips_prev_shot_only_groups",
  "tests/core/test_background_planner_pipeline.py::test_build_planner_user_prompt_emits_loc_marker_per_shot",
  "tests/core/test_background_planner_pipeline.py::test_build_planner_user_prompt_emits_none_when_no_segments",
  "tests/core/test_background_planner_pipeline.py::test_build_planner_user_prompt_includes_all_selected_shots",
  "tests/core/test_background_planner_pipeline.py::test_build_planner_user_prompt_injects_full_scene_segments",
  "tests/core/test_background_planner_pipeline.py::test_build_planner_user_prompt_omits_marker_when_no_location_known",
  "tests/core/test_background_planner_pipeline.py::test_build_planner_user_prompt_orders_segments_by_scene_index",
  "tests/core/test_background_planner_pipeline.py::test_inject_runtime_enums_adds_location_and_shot_enums",
  "tests/core/test_background_planner_pipeline.py::test_run_background_planner_raises_after_max_retries",
  "tests/core/test_background_planner_pipeline.py::test_run_background_planner_recovers_from_llm_runtime_error",
  "tests/core/test_background_planner_pipeline.py::test_run_background_planner_retries_then_succeeds",
  "tests/core/test_background_planner_pipeline.py::test_run_background_planner_succeeds_first_attempt",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_10_chain_bg_without_floor_plans",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_10_floor_plans_without_chain_bg",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_1_unknown_location",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_2_unknown_shot",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_3_floor_plan_order_mismatch",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_4_chain_bg_order_mismatch",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_5_parent_after_child",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_6_low_shot_count",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_7_building_group_non_adjacent",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_8_korean_in_id",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_9_cycle",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_invariant_9_cycle_two_node",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_passes_for_empty_plan",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_passes_for_valid_plan",
  "tests/core/test_background_planner_pipeline.py::test_validate_planner_output_rejects_floor_plan_for_2_shot_location",
  "tests/core/test_background_planner_step.py::test_build_location_lines_falls_back_to_unknown_when_no_detail",
  "tests/core/test_background_planner_step.py::test_build_location_lines_uses_entity_detail_kind",
  "tests/core/test_background_planner_step.py::test_extract_selected_shots_filters_by_selection_indices",
  "tests/core/test_background_planner_step.py::test_extract_selected_shots_handles_missing_checkpoints",
  "tests/core/test_background_planner_step.py::test_manifest_entry_present_with_correct_order",
  "tests/core/test_background_planner_step.py::test_pipeline_steps_label_registered",
  "tests/core/test_background_planner_step.py::test_step_class_registered",
  "tests/core/test_background_planner_step.py::test_step_graceful_on_validation_violation",
  "tests/core/test_background_planner_step.py::test_step_graceful_when_llm_exhausts_retries",
  "tests/core/test_background_planner_step.py::test_step_handles_all_outdoor_plan",
  "tests/core/test_background_planner_step.py::test_step_passes_full_location_set_to_planner",
  "tests/core/test_background_planner_step.py::test_step_returns_empty_plan_when_no_selected_shots",
  "tests/core/test_background_planner_step.py::test_step_runs_when_floor_plan_anchored",
  "tests/core/test_background_planner_step.py::test_step_skipped_when_mode_chain_only",
  "tests/core/test_background_planner_step.py::test_step_skipped_when_mode_off",
  "tests/core/test_background_prompt_step.py::test_bg_prompt_step_injects_numbered_and_camera_into_module_call",
  "tests/core/test_background_prompt_step.py::test_bg_prompt_step_partial_reports_actual_ok_count",
  "tests/core/test_background_prompt_step.py::test_bg_prompt_step_prompt_version_bumped_to_v2",
  "tests/core/test_background_prompt_step.py::test_build_fp_lookup_for_bg_resolves_numbered_and_camera",
  "tests/core/test_background_prompt_step.py::test_build_fp_lookup_handles_missing_cps_gracefully",
  "tests/core/test_background_prompt_step.py::test_build_fp_lookup_handles_missing_fp_entry",
  "tests/core/test_background_prompt_step.py::test_step_disabled_when_mode_off",
  "tests/core/test_background_prompt_step_v12.py::test_build_plan_node_lookup_extracts_bg_nodes",
  "tests/core/test_background_prompt_step_v12.py::test_build_plan_node_lookup_safe_on_missing_or_broken",
  "tests/core/test_background_prompt_step_v12.py::test_build_projection_card_lookup_rekeys_by_bg_shot",
  "tests/core/test_background_prompt_step_v12.py::test_build_projection_card_lookup_safe_on_missing",
  "tests/core/test_background_prompt_step_v12.py::test_execute_selector12_fallback_bg_is_byte_identical_to_v10",
  "tests/core/test_background_prompt_step_v12.py::test_execute_selector12_pass_bg_uses_v12_with_plate_prose",
  "tests/core/test_background_prompt_step_v12.py::test_orchestration_blocked_bg_falls_back",
  "tests/core/test_background_prompt_step_v12.py::test_orchestration_pass_bg_injects_plate_prose",
  "tests/core/test_background_prompt_step_v12.py::test_orchestration_stale_when_plan_id_disagrees_with_card",
  "tests/core/test_background_prompt_step_v7.py::test_default_v6_hash_matches_legacy_prompt_version",
  "tests/core/test_background_prompt_step_v7.py::test_v7_selector_hash_differs_from_v6_default",
  "tests/core/test_background_prompt_step_v7.py::test_v7_selector_missing_overlay_cp_marks_bg_failed_without_llm_call",
  "tests/core/test_background_render_light_fp_sidecar.py::test_config_hash_folds_consumed_sidecar_config_hash",
  "tests/core/test_background_render_light_fp_sidecar.py::test_config_hash_off_is_stable",
  "tests/core/test_background_render_light_fp_sidecar.py::test_config_hash_stamps_sidecar_flag",
  "tests/core/test_background_render_light_fp_sidecar.py::test_fallback_status_keeps_detailed",
  "tests/core/test_background_render_light_fp_sidecar.py::test_flag_off_no_op",
  "tests/core/test_background_render_light_fp_sidecar.py::test_flag_on_no_cp",
  "tests/core/test_background_render_light_fp_sidecar.py::test_rendered_but_png_missing_falls_back",
  "tests/core/test_background_render_light_fp_sidecar.py::test_rendered_swaps_to_light",
  "tests/core/test_background_render_star_anchor.py::test_compose_dedup_prior_stable_order",
  "tests/core/test_background_render_star_anchor.py::test_compose_empty_prior_returns_fp_only",
  "tests/core/test_background_render_star_anchor.py::test_compose_fp_not_duplicated_when_in_prior",
  "tests/core/test_background_render_star_anchor.py::test_compose_i2i_reference_fp_then_prior_order",
  "tests/core/test_background_render_star_anchor.py::test_compose_multiple_prior_bgs",
  "tests/core/test_background_render_star_anchor.py::test_compose_no_fp_uuid_prior_only",
  "tests/core/test_background_render_star_anchor.py::test_compose_partial_resolve_mixes",
  "tests/core/test_background_render_star_anchor.py::test_compose_prior_excludes_fp_by_construction",
  "tests/core/test_background_render_star_anchor.py::test_compose_reuse_alias_tagged",
  "tests/core/test_background_render_star_anchor.py::test_compose_unresolved_prior_kept_as_structural_key",
  "tests/core/test_background_render_star_anchor.py::test_star_anchor_anchor_priority_b01_natural_sort",
  "tests/core/test_background_render_star_anchor.py::test_star_anchor_groups_same_loc_to_first",
  "tests/core/test_background_render_star_anchor.py::test_star_anchor_no_loc_id_excluded",
  "tests/core/test_background_render_star_anchor.py::test_star_anchor_only_renderable_grouped",
  "tests/core/test_background_render_star_anchor.py::test_star_anchor_preserves_existing_chain",
  "tests/core/test_background_render_star_anchor.py::test_star_anchor_single_bg_group_skipped",
  "tests/core/test_background_render_step.py::test_b4_register_chain_bg_empty_shot_guides_t2i_guide_none",
  "tests/core/test_background_render_step.py::test_b4_register_chain_bg_idempotent_upsert",
  "tests/core/test_background_render_step.py::test_b4_register_chain_bg_image_asset_basic_insert",
  "tests/core/test_background_render_step.py::test_b4_register_chain_bg_multi_state_per_location",
  "tests/core/test_background_render_step.py::test_b4_register_chain_bg_no_canon_skips",
  "tests/core/test_background_render_step.py::test_b4_register_chain_bg_skips_failed",
  "tests/core/test_background_render_step.py::test_config_hash_stamps_fix_rejudge_only_when_on",
  "tests/core/test_background_render_step.py::test_phase6_required_keys_present_on_failed_status",
  "tests/core/test_background_render_step.py::test_resolve_openai_client_passes_api_key_and_timeout",
  "tests/core/test_background_render_step.py::test_step_disabled_when_mode_off",
  "tests/core/test_background_render_step.py::test_unsafe_bg_id_rejected_at_collection",
  "tests/core/test_background_render_step.py::test_verify_completion_reports_extra_chain_bg_diagnostics",
  "tests/core/test_background_render_step.py::test_verify_completion_truncates_extra_chain_bg_diagnostics",
  "tests/core/test_background_render_step_building_anchor.py::test_anchor_attached_across_locations_same_group",
  "tests/core/test_background_render_step_building_anchor.py::test_anchor_dedup_when_prior_already_has_anchor_png",
  "tests/core/test_background_render_step_building_anchor.py::test_anchor_flag_off_byte_identical",
  "tests/core/test_background_render_step_building_anchor.py::test_anchor_without_wg_fp_ref_still_chains",
  "tests/core/test_background_render_step_building_anchor.py::test_config_hash_stamps_flag_only_when_on",
  "tests/core/test_background_render_step_building_anchor.py::test_no_link_no_anchor",
  "tests/core/test_background_render_step_building_anchor.py::test_register_merges_anchor_uuid_into_input_image_ids",
  "tests/core/test_background_render_step_building_anchor.py::test_register_unresolved_anchor_marks_structural_key",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_aerial_cache_regen_on_prompt_version_mismatch",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_aerial_cache_reuse_on_resume_and_regen_on_force",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_aerial_cached_diag_reflects_structural_fp_sot",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_aerial_failure_keeps_fp_path_fail_safe",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_build_aerial_establishing_prompt_contract",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_build_loc_aerial_context_structure_join",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_config_hash_stamps_flag_only_when_on",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_flag_off_byte_identical",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_mixed_group_aerial_uses_indoor_fp_ref",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_outdoor_bg_fp_replaced_by_aerial",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_register_aerial_asset_and_first_slot_lineage",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_register_unresolved_aerial_marks_structural_key",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_render_location_aerial_moderation_retry_and_failure",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_render_location_aerial_t2i_and_fp_edit",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_render_one_background_aerial_default_none_byte_identical",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_render_one_background_aerial_first",
  "tests/core/test_background_render_step_outdoor_aerial.py::test_wl_with_wk_anchor_order_preserved",
  "tests/core/test_background_render_step_same_place_chain.py::test_config_hash_stamps_flag_only_when_on",
  "tests/core/test_background_render_step_same_place_chain.py::test_flag_off_byte_identical",
  "tests/core/test_background_render_step_same_place_chain.py::test_group_anchor_registers_outdoor_only",
  "tests/core/test_background_render_step_same_place_chain.py::test_lane_reorder_and_anchors_mixed_group",
  "tests/core/test_background_render_step_same_place_chain.py::test_register_merges_both_anchor_uuids",
  "tests/core/test_background_render_step_same_place_chain.py::test_register_unresolved_same_loc_anchor_marks_structural_key",
  "tests/core/test_background_render_step_same_place_chain.py::test_same_anchor_png_attached_once",
  "tests/core/test_background_render_step_same_place_chain.py::test_wk_off_wi_on_keeps_wi_contract",
  "tests/core/test_background_render_step_same_place_chain.py::test_wm_blocks_interior_source_loc_anchor_on_outdoor_render",
  "tests/core/test_background_render_step_stage_chain.py::test_aerial_failed_group_keeps_legacy_path",
  "tests/core/test_background_render_step_stage_chain.py::test_bfp_not_attached_alongside_aerial_in_chain",
  "tests/core/test_background_render_step_stage_chain.py::test_config_hash_folds_aerial_prompt_version",
  "tests/core/test_background_render_step_stage_chain.py::test_config_hash_stamps_only_when_flag_on",
  "tests/core/test_background_render_step_stage_chain.py::test_indoor_bg_no_building_anchor_text_guidance_only",
  "tests/core/test_background_render_step_stage_chain.py::test_indoor_loc_exterior_plate_keeps_building_anchor",
  "tests/core/test_background_render_step_stage_chain.py::test_missing_plan_degrade_interior_gets_text_guidance",
  "tests/core/test_background_render_step_stage_chain.py::test_reuse_alias_targets_chain_plate",
  "tests/core/test_background_render_step_stage_chain.py::test_stage_chain_depends_on_bg_prev_override",
  "tests/core/test_background_render_step_stage_chain.py::test_stage_chain_failed_plate_not_used_as_prev",
  "tests/core/test_background_render_step_stage_chain.py::test_stage_chain_first_aerial_only_then_prev_plus_aerial",
  "tests/core/test_background_render_step_stage_chain.py::test_stage_chain_llm_fallback_structural",
  "tests/core/test_background_render_step_stage_chain.py::test_wm_off_no_chain_and_no_fields",
  "tests/core/test_background_render_step_w19b3.py::test_legacy_config_hash_byte_identical_with_legacy_payload",
  "tests/core/test_background_render_step_w19b3.py::test_legacy_default_uses_threadpool_path",
  "tests/core/test_background_render_step_w19b3.py::test_opt_in_failed_render_skips_catalog_continues_queue",
  "tests/core/test_background_render_step_w19b3.py::test_opt_in_full_chain_checkpoint_shape_smoke",
  "tests/core/test_background_render_step_w19b3.py::test_opt_in_missing_overlay_fails_before_image_call",
  "tests/core/test_background_render_step_w19b3.py::test_opt_in_render_call_passes_max_attempts_one",
  "tests/core/test_background_render_step_w19b3.py::test_opt_in_second_decision_sees_first_bg_catalog",
  "tests/core/test_background_render_step_w19b3.py::test_opt_in_skips_bgs_with_failed_background_prompt",
  "tests/core/test_background_render_step_w19b3.py::test_opt_in_uses_sequential_queue_not_threadpool",
  "tests/core/test_background_render_step_w19b3.py::test_register_image_assets_uses_effective_render_prompt_for_opt_in",
  "tests/core/test_background_render_step_w19b3.py::test_three_modes_call_shape_in_sequential_queue",
  "tests/core/test_background_render_step_w19b3.py::test_w19b3_w20b_both_active_fails_closed_before_render",
  "tests/core/test_background_render_step_w19b3.py::test_w19b3_w20b_only_w18j_active_passes_gate",
  "tests/core/test_background_render_step_w20c.py::test_active_production_does_not_import_background_image_planner",
  "tests/core/test_background_render_step_w20c.py::test_bg_render_partial_reports_actual_ok_count",
  "tests/core/test_background_render_step_w20c.py::test_camera_geometry_na_routes_to_direct_plate",
  "tests/core/test_background_render_step_w20c.py::test_camera_geometry_na_without_t2i_prompt_stays_failed",
  "tests/core/test_background_render_step_w20c.py::test_config_hash_stamps_shot_aware_plan_selector",
  "tests/core/test_background_render_step_w20c.py::test_config_hash_substrate_flag_invalidates_only_shot_aware_path",
  "tests/core/test_background_render_step_w20c.py::test_generic_not_applicable_plan_stays_failed",
  "tests/core/test_background_render_step_w20c.py::test_legacy_path_unaffected_by_shot_aware_plan_branch",
  "tests/core/test_background_render_step_w20c.py::test_missing_plan_degrades_to_direct_plate_when_enabled",
  "tests/core/test_background_render_step_w20c.py::test_missing_plan_no_direct_inputs_stays_failed",
  "tests/core/test_background_render_step_w20c.py::test_mutex_shot_aware_plus_w20b_does_not_block",
  "tests/core/test_background_render_step_w20c.py::test_mutex_w18j_plus_w20b_still_blocks",
  "tests/core/test_background_render_step_w20c.py::test_reuse_alias_registers_chain_bg_imageasset_row",
  "tests/core/test_background_render_step_w20c.py::test_reuse_node_skips_image_call_and_aliases_target",
  "tests/core/test_background_render_step_w20c.py::test_reuse_target_missing_fails_closed",
  "tests/core/test_background_render_step_w20c.py::test_selector_routes_to_shot_aware_plan_helper",
  "tests/core/test_background_render_step_w20c.py::test_shot_aware_plan_forwards_max_attempts_one",
  "tests/core/test_background_render_step_w20c.py::test_shot_aware_plan_forwards_max_attempts_two",
  "tests/core/test_background_render_step_w20c.py::test_shot_aware_plan_missing_plan_emits_failed_no_image_calls",
  "tests/core/test_background_render_step_w20c.py::test_shot_aware_plan_not_production_clear_emits_failed",
  "tests/core/test_background_render_step_w20c.py::test_shot_aware_plan_orders_by_node_index_and_grows_catalog",
  "tests/core/test_background_render_step_w20c.py::test_shot_aware_plan_production_clear_truthy_non_bool_emits_failed",
  "tests/core/test_background_render_step_w20c.py::test_shot_aware_plan_ref_unresolved_skips_image_call",
  "tests/core/test_background_render_step_w20c.py::test_shot_aware_plan_renderable_bg_not_in_plan_emits_failed",
  "tests/core/test_background_render_step_w20c.py::test_structure_facts_flag_off_byte_identical",
  "tests/core/test_background_render_step_w20c.py::test_structure_facts_flag_on_injects_prefix",
  "tests/core/test_background_render_step_w20c.py::test_structure_facts_flag_stamps_config_hash",
  "tests/core/test_background_render_step_w20c.py::test_substrate_consumer_combines_fp_plus_parent_when_flag_on",
  "tests/core/test_background_render_step_w20c.py::test_substrate_flag_off_is_byte_identical_parent_only",
  "tests/core/test_background_render_step_w20c.py::test_substrate_on_missing_parent_gracefully_falls_back_fp_only",
  "tests/core/test_background_render_step_w20c.py::test_substrate_on_non_schema9_node_fails_closed_no_image",
  "tests/core/test_background_render_step_w20c.py::test_verify_completion_separates_new_and_reuse_counts",
  "tests/core/test_background_render_step_w20c.py::test_w18j_overlap_path_deprecated_fail_closed_no_image_call",
  "tests/core/test_background_render_step_w20c.py::test_w18j_overlap_path_unaffected_by_shot_aware_plan_branch",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_pack_discovery_is_not_empty",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[10.202608031530-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[10.202608031530]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[11.202608311500-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[13.202607310424]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[13.202609050450-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[14.202608022336]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[14.202609081500-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[15.202608030032]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[16.202608030345]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[17.202608030403]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[18.202608031301]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[21.202608031955-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[21.202608031955]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[21.202608141700]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[26.202608270520-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[26.202608270520]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[27.202608270525-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[27.202608270525]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[28.202608270620-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[3.202608270320-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[3.202608270320]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[4.202607301950]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[42.202609201620-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[43.202609201621-]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[5.202608011353]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[6.202608030348]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[7.202608030403]",
  "tests/core/test_banned_vocabulary_inventory.py::test_active_prompt_packs_are_scanned[9.202608031301]",
  "tests/core/test_banned_vocabulary_inventory.py::test_known_debt_entries_still_exist",
  "tests/core/test_banned_vocabulary_inventory.py::test_no_new_banned_vocabulary_in_active_modules",
  "tests/core/test_banned_vocabulary_inventory.py::test_no_new_banned_vocabulary_in_strings_the_model_reads",
  "tests/core/test_banned_vocabulary_inventory.py::test_place_parts_are_not_carriers",
  "tests/core/test_banned_vocabulary_inventory.py::test_readable_text_stems_do_not_enumerate_the_things_that_carry_words",
  "tests/core/test_banned_vocabulary_inventory.py::test_readable_text_stems_name_no_carrier_at_all",
  "tests/core/test_banned_vocabulary_inventory.py::test_the_scan_covers_every_module_that_sends_words_to_the_model",
  "tests/core/test_banned_vocabulary_inventory.py::test_the_scan_covers_the_stems_that_carry_readable_words",
  "tests/core/test_banned_vocabulary_inventory.py::test_the_wide_pattern_actually_catches_what_the_header_promises",
  "tests/core/test_banned_vocabulary_inventory.py::test_the_wide_pattern_inherits_every_word_the_old_one_had",
  "tests/core/test_base_location_dossier_step.py::test_config_hash_changes_when_selector_flips",
  "tests/core/test_base_location_dossier_step.py::test_default_off_returns_not_applicable_even_when_v6_and_bg_on",
  "tests/core/test_base_location_dossier_step.py::test_module_has_no_llm_image_vlm_imports",
  "tests/core/test_base_location_dossier_step.py::test_not_applicable_when_background_mode_off_even_when_enabled",
  "tests/core/test_base_location_dossier_step.py::test_not_applicable_when_v5_default_even_when_enabled",
  "tests/core/test_base_location_dossier_step.py::test_opt_in_completes_with_dossier_under_data",
  "tests/core/test_base_location_dossier_step.py::test_opt_in_fails_when_marker_partition_invalid",
  "tests/core/test_base_location_dossier_step.py::test_opt_in_with_floor_plan_anchored_alias_also_active",
  "tests/core/test_base_location_dossier_step.py::test_schema_and_prompt_version_constants",
  "tests/core/test_base_location_dossier_step.py::test_step_has_no_llm_image_vlm_imports",
  "tests/core/test_base_location_dossier_step.py::test_step_registered_in_manifest_with_order_between_overlay_and_prompt",
  "tests/core/test_base_location_dossier_step.py::test_step_registered_in_step_classes",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_5_reruns_stable_id",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_accepts_same_sem_key_with_identical_render_deps",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_b7_monotonic_next_b_after_deletion",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_carries_surface_role",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_first_run_basic",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_i8_intent_sort_first_run_deterministic",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_increments_for_new_semantic_key",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_missing_location_profile_raises",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_no_silent_first_wins_on_metadata_drift",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_normalizes_space_key_via_profile",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_rejects_same_sem_key_with_different_depends_on_bg",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_rejects_same_sem_key_with_different_depends_on_fp",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_rejects_same_sem_key_with_different_surface_role",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_reuses_for_same_semantic_key",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_reuses_legacy_prev_catalog_without_surface_role",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_same_run_dedup_merges_applies_to_shots",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_same_run_three_intents_dedup",
  "tests/core/test_bg_catalog.py::test_assign_bg_ids_validates_assigned_format",
  "tests/core/test_bg_catalog.py::test_bg_catalog_hash_changes_on_render_relevant_field",
  "tests/core/test_bg_catalog.py::test_bg_catalog_hash_changes_on_surface_role",
  "tests/core/test_bg_catalog.py::test_bg_catalog_hash_deterministic_across_runs",
  "tests/core/test_bg_catalog.py::test_bg_catalog_hash_excludes_metadata_fields",
  "tests/core/test_bg_catalog.py::test_build_shot_background_map_basic",
  "tests/core/test_bg_catalog.py::test_build_shot_background_map_dup_shot_first_wins",
  "tests/core/test_bg_catalog.py::test_build_shot_background_map_dup_shot_raises",
  "tests/core/test_bg_catalog.py::test_multi_space_location_enum_strict_accepts",
  "tests/core/test_bg_catalog.py::test_multi_space_location_enum_strict_rejects_outside_vocab",
  "tests/core/test_bg_catalog.py::test_normalize_space_key_rejects_non_dict_profile",
  "tests/core/test_bg_catalog.py::test_normalize_space_key_rejects_unknown_kind",
  "tests/core/test_bg_catalog.py::test_semantic_key_format",
  "tests/core/test_bg_catalog.py::test_semantic_key_state_class_changes_key",
  "tests/core/test_bg_catalog.py::test_semantic_key_validates_state_class_enum",
  "tests/core/test_bg_catalog.py::test_shot_binding_hash_deterministic_key_order_invariant",
  "tests/core/test_bg_catalog.py::test_shot_binding_hash_isolated_from_catalog_changes",
  "tests/core/test_bg_catalog.py::test_single_space_location_forces_main_regardless_of_hint",
  "tests/core/test_bg_space_partition_step.py::test_default_off_returns_not_applicable",
  "tests/core/test_bg_space_partition_step.py::test_edge_cap_counts_judged_not_candidate_ordinal",
  "tests/core/test_bg_space_partition_step.py::test_edge_cap_per_fp_skips_remaining",
  "tests/core/test_bg_space_partition_step.py::test_geometry_missing_blocks_fp",
  "tests/core/test_bg_space_partition_step.py::test_injected_provider_groups_same_space",
  "tests/core/test_bg_space_partition_step.py::test_judge_error_fails_closed_per_edge",
  "tests/core/test_bg_space_partition_step.py::test_llm_call_cap_skips_remaining",
  "tests/core/test_bg_space_partition_step.py::test_module_constants_locked",
  "tests/core/test_bg_space_partition_step.py::test_not_applicable_when_background_mode_off",
  "tests/core/test_bg_space_partition_step.py::test_not_applicable_when_dossier_disabled",
  "tests/core/test_bg_space_partition_step.py::test_not_applicable_when_no_dossiers",
  "tests/core/test_bg_space_partition_step.py::test_provider_off_skips_all_edges_each_bg_own_plate",
  "tests/core/test_bg_space_partition_step.py::test_r3_unjudgeable_card_skips_edge_no_provider_call",
  "tests/core/test_bg_space_partition_step.py::test_result_has_provenance",
  "tests/core/test_bg_state_vocab.py::test_bg_id_regex_accepts_2_digit",
  "tests/core/test_bg_state_vocab.py::test_bg_id_regex_accepts_3_digit_natural_extension",
  "tests/core/test_bg_state_vocab.py::test_bg_id_regex_rejects_1_digit_or_lowercase",
  "tests/core/test_bg_state_vocab.py::test_bg_id_regex_rejects_extra_chars",
  "tests/core/test_bg_state_vocab.py::test_bg_id_regex_rejects_legacy_freeform",
  "tests/core/test_bg_state_vocab.py::test_format_bg_id_3_digit_natural_extension",
  "tests/core/test_bg_state_vocab.py::test_format_bg_id_output_passes_bg_id_regex",
  "tests/core/test_bg_state_vocab.py::test_format_bg_id_rejects_zero_or_negative",
  "tests/core/test_bg_state_vocab.py::test_format_bg_id_zero_pads_2_digits",
  "tests/core/test_bg_state_vocab.py::test_llm_intent_id_regex_accepts_lowercase_snake",
  "tests/core/test_bg_state_vocab.py::test_llm_intent_id_regex_rejects_uppercase_or_spaces",
  "tests/core/test_bg_state_vocab.py::test_parse_loc_num_accepts_2_3_digit",
  "tests/core/test_bg_state_vocab.py::test_parse_loc_num_rejects_invalid",
  "tests/core/test_bg_state_vocab.py::test_parse_loc_num_rejects_l00_zero",
  "tests/core/test_bg_state_vocab.py::test_state_class_enum_includes_required_set",
  "tests/core/test_bg_state_vocab.py::test_state_class_enum_size_exactly_11",
  "tests/core/test_bg_state_vocab.py::test_validate_space_profile_accepts_multi_space_with_default",
  "tests/core/test_bg_state_vocab.py::test_validate_space_profile_accepts_single_space",
  "tests/core/test_bg_state_vocab.py::test_validate_space_profile_multi_space_requires_default_in_allowed",
  "tests/core/test_bg_state_vocab.py::test_validate_space_profile_rejects_invalid_kind",
  "tests/core/test_bg_state_vocab.py::test_validate_space_profile_rejects_missing_location_block",
  "tests/core/test_bg_state_vocab.py::test_validate_space_profile_rejects_missing_space_profile",
  "tests/core/test_bg_state_vocab.py::test_validate_space_profile_rejects_non_string_in_allowed_keys",
  "tests/core/test_bg_state_vocab.py::test_validate_space_profile_rejects_outside_vocab",
  "tests/core/test_bg_state_vocab.py::test_validate_space_profile_single_space_strict_main_only",
  "tests/core/test_bg_state_vocab.py::test_validate_state_class_accepts_enum_member",
  "tests/core/test_bg_state_vocab.py::test_validate_state_class_rejects_freeform_combination",
  "tests/core/test_bg_state_vocab.py::test_validate_state_class_rejects_unknown",
  "tests/core/test_build_opik_metadata.py::test_base_metadata_with_context",
  "tests/core/test_build_opik_metadata.py::test_both_extra_params",
  "tests/core/test_build_opik_metadata.py::test_empty_context",
  "tests/core/test_build_opik_metadata.py::test_extra_metadata_merged",
  "tests/core/test_build_opik_metadata.py::test_extra_metadata_none_ignored",
  "tests/core/test_build_opik_metadata.py::test_extra_metadata_protects_reserved_keys",
  "tests/core/test_build_opik_metadata.py::test_extra_tags_appended",
  "tests/core/test_build_opik_metadata.py::test_extra_tags_none_ignored",
  "tests/core/test_chain_bg_guide.py::test_build_prepend_blocks_both_off",
  "tests/core/test_chain_bg_guide.py::test_build_prepend_blocks_both_on_essence_first",
  "tests/core/test_chain_bg_guide.py::test_build_prepend_blocks_chain_bg_only",
  "tests/core/test_chain_bg_guide.py::test_build_prepend_blocks_essence_only",
  "tests/core/test_chain_bg_guide.py::test_build_prepend_blocks_handles_failed_status_essence",
  "tests/core/test_chain_bg_guide.py::test_build_prepend_blocks_missing_data_returns_empty",
  "tests/core/test_chain_bg_guide.py::test_chain_bg_render_prompt_v2_loaded",
  "tests/core/test_chain_bg_guide.py::test_generate_node_prompt_handles_legacy_response_without_shot_guides",
  "tests/core/test_chain_bg_guide.py::test_generate_node_prompt_returns_t2i_and_shot_guides",
  "tests/core/test_chain_bg_guide.py::test_loader_handles_duplicate_shot_ids",
  "tests/core/test_chain_bg_guide.py::test_loader_handles_extra_shot_ids",
  "tests/core/test_chain_bg_guide.py::test_loader_handles_invalid_shot_id_format",
  "tests/core/test_chain_bg_guide.py::test_loader_handles_legacy_checkpoint_without_shot_guides",
  "tests/core/test_chain_bg_guide.py::test_loader_handles_malformed_shapes_defensively",
  "tests/core/test_chain_bg_guide.py::test_loader_parses_essence_by_shot_from_manifest",
  "tests/core/test_chain_bg_guide.py::test_loader_parses_phase5_groups_shape",
  "tests/core/test_chain_bg_guide.py::test_loader_parses_phase7_render_shape",
  "tests/core/test_chain_bg_guide.py::test_loader_parses_shot_guides_from_manifest",
  "tests/core/test_chain_bg_guide.py::test_loader_phase5_and_legacy_combined",
  "tests/core/test_chain_bg_guide.py::test_loader_phase5_handles_extra_shot_ids",
  "tests/core/test_chain_bg_guide.py::test_loader_phase5_handles_missing_shot_guides_field",
  "tests/core/test_chain_bg_guide.py::test_loader_phase5_skips_non_ok_groups",
  "tests/core/test_chain_bg_guide.py::test_loader_returns_empty_when_no_chain_bg_render_checkpoint",
  "tests/core/test_chain_bg_guide.py::test_loader_returns_empty_when_no_shot_essence_checkpoint",
  "tests/core/test_chain_bg_guide.py::test_scene_analysis_context_has_phase2_fields",
  "tests/core/test_chain_bg_guide.py::test_settings_toggle_default_false",
  "tests/core/test_checkpoint_archive_recovery.py::test_archive_auto_restored_to_manifest_json",
  "tests/core/test_checkpoint_archive_recovery.py::test_archive_corrupted_skipped_falls_through_to_next",
  "tests/core/test_checkpoint_archive_recovery.py::test_archive_legacy_no_status_field_accepted",
  "tests/core/test_checkpoint_archive_recovery.py::test_archive_partial_status_accepted",
  "tests/core/test_checkpoint_archive_recovery.py::test_archive_pattern_matches_real_format",
  "tests/core/test_checkpoint_archive_recovery.py::test_archive_picks_latest_completed_skipping_running",
  "tests/core/test_checkpoint_archive_recovery.py::test_archive_returns_none_when_only_running_archives",
  "tests/core/test_checkpoint_archive_recovery.py::test_archive_running_snapshot_skipped",
  "tests/core/test_checkpoint_archive_recovery.py::test_archive_running_then_completed_then_running_picks_completed",
  "tests/core/test_checkpoint_archive_recovery.py::test_clear_checkpoint_creates_force_marker",
  "tests/core/test_checkpoint_archive_recovery.py::test_clear_checkpoint_creates_marker_even_when_no_existing_cp",
  "tests/core/test_checkpoint_archive_recovery.py::test_find_latest_archive_returns_none_when_dir_missing",
  "tests/core/test_checkpoint_archive_recovery.py::test_force_cleared_marker_blocks_archive_restore",
  "tests/core/test_checkpoint_archive_recovery.py::test_force_cleared_marker_blocks_manifest_load",
  "tests/core/test_checkpoint_archive_recovery.py::test_force_marker_resilient_to_unwritable_dir",
  "tests/core/test_checkpoint_archive_recovery.py::test_full_force_kill_restart_scenario",
  "tests/core/test_checkpoint_archive_recovery.py::test_load_falls_back_to_archive_when_manifest_corrupted",
  "tests/core/test_checkpoint_archive_recovery.py::test_load_falls_back_to_archive_when_manifest_empty",
  "tests/core/test_checkpoint_archive_recovery.py::test_load_falls_back_to_archive_when_manifest_missing",
  "tests/core/test_checkpoint_archive_recovery.py::test_load_no_archive_no_manifest_no_marker_returns_none",
  "tests/core/test_checkpoint_archive_recovery.py::test_load_picks_latest_archive",
  "tests/core/test_checkpoint_archive_recovery.py::test_load_returns_manifest_when_present",
  "tests/core/test_checkpoint_archive_recovery.py::test_load_returns_manifest_when_present_valid_data",
  "tests/core/test_checkpoint_archive_recovery.py::test_load_returns_none_when_archive_corrupted",
  "tests/core/test_checkpoint_archive_recovery.py::test_load_returns_none_when_no_archive_either",
  "tests/core/test_checkpoint_archive_recovery.py::test_save_checkpoint_completed_clears_force_marker",
  "tests/core/test_checkpoint_archive_recovery.py::test_save_checkpoint_partial_clears_force_marker",
  "tests/core/test_checkpoint_archive_recovery.py::test_save_checkpoint_running_keeps_force_marker",
  "tests/core/test_checkpoint_archive_recovery.py::test_unrelated_files_in_cp_dir_ignored",
  "tests/core/test_composite_image_gen_sync.py::test_composite_image_gen_step_syncs_before_service_call",
  "tests/core/test_composite_image_gen_sync.py::test_ref_image_gen_step_still_syncs_before_service_call",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_drifts_on_openai_model_change[BackgroundChainPlanningStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_drifts_on_openai_model_change[BackgroundClassifyStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_drifts_on_openai_model_change[BackgroundMasterPlanStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_drifts_on_openai_model_change[BackgroundPlannerStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_drifts_on_openai_model_change[OutdoorPlaceSpecStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_drifts_on_openai_model_change[OutdoorShotGroundingStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_stable_for_same_model[BackgroundChainPlanningStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_stable_for_same_model[BackgroundClassifyStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_stable_for_same_model[BackgroundMasterPlanStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_stable_for_same_model[BackgroundPlannerStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_stable_for_same_model[OutdoorPlaceSpecStep]",
  "tests/core/test_config_hash_model_sensitivity.py::test_config_hash_stable_for_same_model[OutdoorShotGroundingStep]",
  "tests/core/test_consumer_verify_completion.py::test_scene_consistency_clean_when_all_succeeded",
  "tests/core/test_consumer_verify_completion.py::test_scene_consistency_last_result_takes_precedence_over_cp",
  "tests/core/test_consumer_verify_completion.py::test_scene_consistency_missing_when_no_cp",
  "tests/core/test_consumer_verify_completion.py::test_scene_consistency_partial_when_some_failed",
  "tests/core/test_consumer_verify_completion.py::test_scene_consistency_silent_fallback_caught",
  "tests/core/test_consumer_verify_completion.py::test_scene_consistency_startswith_failure_string",
  "tests/core/test_consumer_verify_completion.py::test_scene_consistency_uses_last_execute_result_when_no_cp",
  "tests/core/test_consumer_verify_completion.py::test_scene_detail_card_check_bypass_no_warning_when_schema_matches",
  "tests/core/test_consumer_verify_completion.py::test_scene_detail_card_check_bypass_warning_emitted_once_per_step",
  "tests/core/test_consumer_verify_completion.py::test_scene_detail_clean_when_all_have_t2i",
  "tests/core/test_consumer_verify_completion.py::test_scene_detail_metadata_keys_consistent_across_branches",
  "tests/core/test_consumer_verify_completion.py::test_scene_detail_missing_when_all_empty_t2i",
  "tests/core/test_consumer_verify_completion.py::test_scene_detail_missing_when_bg_on_loader_raises",
  "tests/core/test_consumer_verify_completion.py::test_scene_detail_missing_when_empty_scenes",
  "tests/core/test_consumer_verify_completion.py::test_scene_detail_missing_when_no_cp",
  "tests/core/test_consumer_verify_completion.py::test_scene_detail_partial_when_some_empty_t2i",
  "tests/core/test_consumer_verify_completion.py::test_scene_detail_uses_last_execute_result_when_no_cp",
  "tests/core/test_consumer_verify_completion.py::test_scene_image_pipeline_clean_when_all_disk_found",
  "tests/core/test_consumer_verify_completion.py::test_scene_image_pipeline_clean_when_no_expected",
  "tests/core/test_consumer_verify_completion.py::test_scene_image_pipeline_missing_when_none_found",
  "tests/core/test_consumer_verify_completion.py::test_scene_image_pipeline_partial_when_some_missing",
  "tests/core/test_consumer_verify_completion.py::test_scene_image_pipeline_rows_는_행_개수여야_한다",
  "tests/core/test_consumer_verify_completion.py::test_scene_image_pipeline_silent_fallback_caught",
  "tests/core/test_consumes_downstream_integration.py::test_catalog_helper_returns_manifest_declaration",
  "tests/core/test_consumes_downstream_integration.py::test_consumes_downstream_targets_are_actual_downstream",
  "tests/core/test_consumes_downstream_integration.py::test_get_consumers_of_reverse_lookup",
  "tests/core/test_consumes_downstream_integration.py::test_legacy_preserve_flag_fully_removed",
  "tests/core/test_consumes_downstream_integration.py::test_scene_detail_declares_shot_dependency_t2i_as_consumed",
  "tests/core/test_consumes_downstream_integration.py::test_scene_detail_force_preserves_shot_dependency_t2i_real_manifest",
  "tests/core/test_d6_consumer_hash_stamps.py::test_background_prompt_step_legacy_cp_empty_hash",
  "tests/core/test_d6_consumer_hash_stamps.py::test_background_prompt_step_stamps_both_hashes",
  "tests/core/test_d6_consumer_hash_stamps.py::test_background_render_step_manifest_schema_version_matches",
  "tests/core/test_d6_consumer_hash_stamps.py::test_background_render_step_omits_shot_binding_hash",
  "tests/core/test_d6_consumer_hash_stamps.py::test_background_render_step_schema_version_bumped_for_d6",
  "tests/core/test_d6_consumer_hash_stamps.py::test_background_render_step_stamps_bg_catalog_hash",
  "tests/core/test_d6_consumer_hash_stamps.py::test_background_render_step_stamps_shot_binding_hash",
  "tests/core/test_d6_consumer_hash_stamps.py::test_floor_plan_prompt_step_legacy_cp_no_hash_stamp_zero",
  "tests/core/test_d6_consumer_hash_stamps.py::test_floor_plan_prompt_step_omits_shot_binding_hash",
  "tests/core/test_d6_consumer_hash_stamps.py::test_floor_plan_prompt_step_stamps_bg_catalog_hash",
  "tests/core/test_d6_consumer_hash_stamps.py::test_floor_plan_prompt_step_stamps_shot_binding_hash",
  "tests/core/test_d6_consumer_hash_stamps.py::test_scene_detail_execute_return_dict_includes_consumed_hashes",
  "tests/core/test_d6_consumer_hash_stamps.py::test_scene_detail_load_d6_consumed_hashes_helper_returns_both",
  "tests/core/test_d6_consumer_hash_stamps.py::test_scene_detail_load_d6_consumed_hashes_legacy_cp_empty",
  "tests/core/test_d6_consumer_hash_stamps.py::test_scene_detail_load_d6_consumed_hashes_missing_cp_empty",
  "tests/core/test_d6_consumer_hash_stamps.py::test_scene_detail_manifest_schema_version_matches",
  "tests/core/test_d6_consumer_hash_stamps.py::test_scene_detail_schema_version_bumped_for_d6",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_get_visual_identity_missing_raises",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_get_visual_identity_none_raises",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_get_visual_identity_reference_non_bool_raises",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_get_visual_identity_reference_required_false",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_get_visual_identity_reference_required_true",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_character_with_non_null_location_raises",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_character_with_non_null_visual_identity_raises",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_location_invalid_space_profile_raises_d6_error",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_location_valid_multi_space",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_location_valid_single_space",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_location_with_non_null_visual_identity_raises",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_prop_missing_bool_raises",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_prop_non_bool_raises",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_prop_valid_false",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_prop_valid_true",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_prop_with_non_null_location_raises",
  "tests/core/test_d6_entity_metadata_json.py::TestEntityMetadataHelper::test_validate_unknown_entity_type_raises",
  "tests/core/test_d6_entity_metadata_json.py::test_deprecated_paths_marked_out_of_scope",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_detail_schema_includes_metadata_json_optional",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_detail_schema_includes_metadata_json_required",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_detail_schema_metadata_json_has_visual_identity_key",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_extractor_v2_v9_pack_active_for_area_b",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_extractor_v2_v9_pack_stem_completeness",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_legacy_cp_no_schema_version_allows_missing_metadata",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_legacy_cp_no_schema_version_rejects_missing_metadata",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_missing_metadata_json_for_location_defaults_empty",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_rejects_invalid_prop_metadata",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_skips_metadata_json_for_character",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_update_path_writes_metadata_json",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_v3_cp_invalid_kind_rejects",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_v3_cp_missing_metadata_for_location_rejects",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_writes_metadata_json_for_location",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_writes_normalized_metadata_for_all_entity_types",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_sync_service_writes_normalized_null_metadata_for_character",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_t2i_failure_path_character_keeps_empty_marker",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_t2i_failure_path_location_excluded_from_done",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_t2i_failure_path_metadata_json_default_empty",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_t2i_forward_metadata_json_from_llm_success",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_t2i_location_post_validation_rejects_missing_metadata",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_t2i_manifest_schema_version_bumped_to_3",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_t2i_old_v2_cp_triggers_stale_mismatch",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_t2i_prop_post_validation_rejects_missing_reference_required",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_t2i_prop_post_validation_rejects_non_bool",
  "tests/core/test_d6_entity_metadata_json.py::test_entity_t2i_prop_post_validation_valid_passes",
  "tests/core/test_d6_entity_metadata_json.py::test_production_registry_uses_new_entity_t2i_step",
  "tests/core/test_d6_entity_metadata_json.py::test_version_registry_entity_extractor_bumped_for_area_b",
  "tests/core/test_d6_fp_link_validation.py::test_floor_plan_loc_id_must_be_in_group",
  "tests/core/test_d6_fp_link_validation.py::test_floor_plan_missing_space_key_hint",
  "tests/core/test_d6_fp_link_validation.py::test_fp_link_mismatch_different_sem_key_wrong_fp",
  "tests/core/test_d6_fp_link_validation.py::test_fp_link_mismatch_is_semantic_key_error_subclass",
  "tests/core/test_d6_fp_link_validation.py::test_fp_link_mismatch_multi_space_wrong_hint",
  "tests/core/test_d6_fp_link_validation.py::test_fp_link_mismatch_same_sem_key_different_fp",
  "tests/core/test_d6_fp_link_validation.py::test_fp_link_pass_multi_space_aligned",
  "tests/core/test_d6_fp_link_validation.py::test_fp_link_pass_with_correct_fp_per_location",
  "tests/core/test_d6_hash_isolation.py::test_applies_to_shots_change_only_drifts_binding_hash",
  "tests/core/test_d6_hash_isolation.py::test_depends_on_fp_change_fail_fasts_on_same_sem_key",
  "tests/core/test_d6_hash_isolation.py::test_state_class_change_drifts_catalog_hash",
  "tests/core/test_d6_master_plan_determinism.py::test_d6_post_process_5_reruns_stable_hashes",
  "tests/core/test_d6_master_plan_determinism.py::test_d6_post_process_handshake_updates_plan_backgrounds_bg_id",
  "tests/core/test_d6_master_plan_determinism.py::test_d6_post_process_intent_order_shuffle_stable_hashes",
  "tests/core/test_d6_master_plan_validator_split.py::test_assigned_validator_accepts_d6_format_unique",
  "tests/core/test_d6_master_plan_validator_split.py::test_assigned_validator_rejects_key_entry_bg_id_mismatch",
  "tests/core/test_d6_master_plan_validator_split.py::test_assigned_validator_rejects_legacy_freeform",
  "tests/core/test_d6_master_plan_validator_split.py::test_assigned_validator_rejects_lowercase_or_short",
  "tests/core/test_d6_master_plan_validator_split.py::test_background_master_plan_manifest_schema_version_2",
  "tests/core/test_d6_master_plan_validator_split.py::test_background_master_plan_manifest_schema_version_matches_step",
  "tests/core/test_d6_master_plan_validator_split.py::test_build_gen_order_raises_on_cycle",
  "tests/core/test_d6_master_plan_validator_split.py::test_build_gen_order_raises_on_missing_dependency",
  "tests/core/test_d6_master_plan_validator_split.py::test_build_gen_order_topological_order_passes",
  "tests/core/test_d6_master_plan_validator_split.py::test_legacy_validator_function_still_exported",
  "tests/core/test_d6_master_plan_validator_split.py::test_load_prev_background_catalog_reads_archive_under_force_cleared",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_accepts_bg_id_absent",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_accepts_fp_less_exterior_plate",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_accepts_multi_space_multi_fp",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_accepts_single_space_one_fp",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_applies_to_shots_outside_group",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_bg_id_field_present",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_empty_depends_on_fp",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_empty_depends_on_fp_for_interior_room",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_group_id_mismatch",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_loc_id_outside_group",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_missing_required_fields",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_single_space_multi_fp",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_state_class_outside_enum",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_unknown_surface_role",
  "tests/core/test_d6_master_plan_validator_split.py::test_raw_intent_validator_rejects_unreferenced_fp",
  "tests/core/test_d6_metadata_json_migration.py::test_entity_canon_has_metadata_json_column",
  "tests/core/test_d6_metadata_json_migration.py::test_metadata_json_column_text_not_null",
  "tests/core/test_d6_metadata_json_migration.py::test_metadata_json_default_empty_dict_via_orm",
  "tests/core/test_d6_metadata_json_migration.py::test_metadata_json_round_trip_location_space_profile",
  "tests/core/test_d6_safe_bg_re_replacement.py::test_background_render_step_filter_re_is_bg_id_re_compatible",
  "tests/core/test_d6_safe_bg_re_replacement.py::test_background_render_step_filter_re_pattern_matches_bg_id_re",
  "tests/core/test_d6_safe_bg_re_replacement.py::test_background_render_step_filter_rejects_legacy_lowercase_freeform",
  "tests/core/test_d6_safe_bg_re_replacement.py::test_d6_marker_invalid_bg_id_raises_in_execute",
  "tests/core/test_d6_safe_bg_re_replacement.py::test_filter_handles_none_plans_cp",
  "tests/core/test_d6_safe_bg_re_replacement.py::test_filter_uses_bg_id_re_when_d6_catalog_marker_present",
  "tests/core/test_d6_safe_bg_re_replacement.py::test_filter_uses_bg_id_re_when_d6_hash_marker_present",
  "tests/core/test_d6_safe_bg_re_replacement.py::test_filter_uses_legacy_when_no_d6_marker",
  "tests/core/test_d6_safe_bg_re_replacement.py::test_legacy_safe_bg_re_unchanged_pattern",
  "tests/core/test_d6_safe_bg_re_replacement.py::test_no_module_level_legacy_only_filter",
  "tests/core/test_d6_scene_detail_chain_unchanged.py::test_chain_bg_id_lnnbnn_passes_through_to_background_binding",
  "tests/core/test_d6_scene_detail_chain_unchanged.py::test_render_prompt_card_does_not_emit_deprecated_background_binding_intent",
  "tests/core/test_detail_steps_keep_elements.py::test_e1_compute_forward_zoom_targets_forwards_dict_keep_elements",
  "tests/core/test_detail_steps_keep_elements.py::test_e2_detail_steps_str_branch_removed",
  "tests/core/test_detail_steps_keep_elements.py::test_e3_docstring_reflects_dict_shape",
  "tests/core/test_distinctive_trait_gate.py::test_ambiguous_is_excluded",
  "tests/core/test_distinctive_trait_gate.py::test_attribution_omitted_when_blank",
  "tests/core/test_distinctive_trait_gate.py::test_empty_and_none_return_empty",
  "tests/core/test_distinctive_trait_gate.py::test_literal_visual_with_quote_is_woven",
  "tests/core/test_distinctive_trait_gate.py::test_literal_visual_without_quote_is_excluded",
  "tests/core/test_distinctive_trait_gate.py::test_metaphorical_impression_is_excluded_even_with_quote",
  "tests/core/test_distinctive_trait_gate.py::test_mixed_keeps_only_literal_with_quote",
  "tests/core/test_dwelling_zone_map_step.py::test_background_mode_off_not_applicable",
  "tests/core/test_dwelling_zone_map_step.py::test_bg_description_priority_and_dossier_enrichment",
  "tests/core/test_dwelling_zone_map_step.py::test_disabled_returns_not_applicable_byte_stable",
  "tests/core/test_dwelling_zone_map_step.py::test_enabled_synthetic_path_emits_fixtures",
  "tests/core/test_dwelling_zone_map_step.py::test_fresh_t2i_gate_only_when_hash_matches",
  "tests/core/test_dwelling_zone_map_step.py::test_real_path_feeds_space_model_to_fp_and_dossier_to_vlm",
  "tests/core/test_dwelling_zone_map_step.py::test_real_path_numbered_elements_is_structure_source",
  "tests/core/test_dwelling_zone_map_step.py::test_real_path_produces_zone_map",
  "tests/core/test_dwelling_zone_map_step.py::test_real_path_provider_failure_falls_back_synthetic",
  "tests/core/test_dwelling_zone_map_step.py::test_real_path_space_model_wins_over_numbered",
  "tests/core/test_dwelling_zone_map_step.py::test_single_bg_dwelling_excluded_from_processing",
  "tests/core/test_dwelling_zone_map_step.py::test_structural_facts_keeps_numeric_only",
  "tests/core/test_entity_identity_allocator_pg.py::test_100번째부터는_세_자리",
  "tests/core/test_entity_identity_allocator_pg.py::test_O00_만_있어도_다음은_O01",
  "tests/core/test_entity_identity_allocator_pg.py::test_O00_은_절대_안_나온다",
  "tests/core/test_entity_identity_allocator_pg.py::test_location_과_location_part_는_따로_센다",
  "tests/core/test_entity_identity_allocator_pg.py::test_같은_번호를_두_번_내지_않는다",
  "tests/core/test_entity_identity_allocator_pg.py::test_리스팅_스텝이_앞_화_명부를_프롬프트에_싣는다",
  "tests/core/test_entity_identity_allocator_pg.py::test_리스팅_스텝이_앞_화_번호를_이어서_받는다",
  "tests/core/test_entity_identity_allocator_pg.py::test_상한을_넘으면_선다",
  "tests/core/test_entity_identity_allocator_pg.py::test_이미_신원이_있는_줄은_안_건드린다",
  "tests/core/test_entity_identity_allocator_pg.py::test_지워진_번호를_체크포인트에서_보고_다시_안_낸다",
  "tests/core/test_entity_identity_allocator_pg.py::test_화를_넘어_이어서_발급한다",
  "tests/core/test_entity_protection.py::test_compute_variant_pole_ids_excludes_location_to_location",
  "tests/core/test_entity_protection.py::test_compute_variant_pole_ids_excludes_possession_prop",
  "tests/core/test_entity_protection.py::test_compute_variant_pole_ids_excludes_unrelated_family",
  "tests/core/test_entity_protection.py::test_compute_variant_pole_ids_identity_character_character",
  "tests/core/test_entity_protection.py::test_compute_variant_pole_ids_transformation_character_character",
  "tests/core/test_entity_protection.py::test_compute_variant_pole_ids_with_real_dep_graph_alignment",
  "tests/core/test_entity_protection.py::test_is_variant_pole_uses_live_dep_graph_direction",
  "tests/core/test_entity_protection.py::test_is_variant_pole_with_real_build_visual_dependency_graph",
  "tests/core/test_entity_protection.py::test_narrow_set_empty_when_no_scene_detail",
  "tests/core/test_entity_protection.py::test_narrow_set_is_only_scene_detail_required_refs",
  "tests/core/test_entity_protection.py::test_parse_traits[-expected1]",
  "tests/core/test_entity_protection.py::test_parse_traits[None-expected0]",
  "tests/core/test_entity_protection.py::test_parse_traits[[\"red irises\", \"yokai-like facial features\"]-expected4]",
  "tests/core/test_entity_protection.py::test_parse_traits[[\"trait one\", \"trait two\"]-expected4]",
  "tests/core/test_entity_protection.py::test_parse_traits[[]-expected3]",
  "tests/core/test_entity_protection.py::test_parse_traits[not json string-expected6]",
  "tests/core/test_entity_protection.py::test_parse_traits[raw5-expected5]",
  "tests/core/test_entity_protection.py::test_parse_traits[{}-expected2]",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_description_excluded",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_keyword_matrix[Yokai-form attacker-[]-True]",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_keyword_matrix[\\uadf8\\ub9bc\\uc790 \\uc778\\uc601-[]-True]",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_keyword_matrix[\\uc77c\\ubc18\\uc778-[\"\\uc694\\uad34\\ud654 \\uc9c4\\ud589 \\uc911\"]-True]",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_keyword_matrix[normal-[\"dark\"]-False]",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_keyword_matrix[plain-[\"disguised face\"]-True]",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_keyword_matrix[plain-[\"half-yokai feature\"]-True]",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_plain_character_no_match",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_silhouette_korean",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_skip_non_character",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_skip_outlook",
  "tests/core/test_entity_protection.py::test_protected_kind_keyword_yokai_in_stable_traits",
  "tests/core/test_entity_protection.py::test_short_id_base[-]",
  "tests/core/test_entity_protection.py::test_short_id_base[C08O10-C08]",
  "tests/core/test_entity_protection.py::test_short_id_base[C15-C15]",
  "tests/core/test_entity_protection.py::test_short_id_base[L01-L01]",
  "tests/core/test_entity_protection.py::test_short_id_base[None-]",
  "tests/core/test_entity_protection.py::test_short_id_base[O10-]",
  "tests/core/test_entity_protection.py::test_short_id_base[P03-P03]",
  "tests/core/test_entity_protection.py::test_should_skip_low_freq_count_one_unprotected_still_skipped_after_db_source_removed",
  "tests/core/test_entity_protection.py::test_should_skip_low_freq_count_zero_unprotected_returns_true",
  "tests/core/test_entity_protection.py::test_should_skip_low_freq_etype_returns_false[location]",
  "tests/core/test_entity_protection.py::test_should_skip_low_freq_etype_returns_false[outlook]",
  "tests/core/test_entity_protection.py::test_should_skip_low_freq_protects_base_for_variant",
  "tests/core/test_entity_protection.py::test_should_skip_low_freq_protects_count_above_threshold",
  "tests/core/test_entity_protection.py::test_should_skip_low_freq_protects_kind_keyword",
  "tests/core/test_entity_protection.py::test_should_skip_low_freq_protects_required_by_pipeline",
  "tests/core/test_entity_protection.py::test_should_skip_low_freq_protects_variant_self",
  "tests/core/test_entity_protection.py::test_should_skip_low_freq_unprotected_returns_true",
  "tests/core/test_entity_protection_integration.py::test_collect_required_corrupt_manifest_skipped",
  "tests/core/test_entity_protection_integration.py::test_collect_required_missing_manifest_returns_empty",
  "tests/core/test_entity_protection_integration.py::test_collect_required_missing_manifest_returns_only_db",
  "tests/core/test_entity_protection_integration.py::test_collect_required_short_id_base_normalization",
  "tests/core/test_entity_protection_integration.py::test_collect_required_shot_director_production_shape",
  "tests/core/test_entity_protection_integration.py::test_collect_required_unions_all_sources",
  "tests/core/test_entity_t2i_schema_bump_does_not_rebuy.py::TestRerunSelfIsNotForce::test_it_runs_in_resume_mode_and_destroys_nothing",
  "tests/core/test_entity_t2i_schema_bump_does_not_rebuy.py::TestTheBumpIsWiredToTheAllowlist::test_a_schema_bump_reruns_itself",
  "tests/core/test_entity_t2i_schema_bump_does_not_rebuy.py::TestTheBumpIsWiredToTheAllowlist::test_the_manifest_bump_landed",
  "tests/core/test_entity_t2i_schema_bump_does_not_rebuy.py::TestTheBumpIsWiredToTheAllowlist::test_this_step_is_on_the_allowlist",
  "tests/core/test_entity_t2i_schema_bump_does_not_rebuy.py::TestTheRatchetDoesNotWiden::test_a_config_hash_mismatch_still_blocks",
  "tests/core/test_entity_t2i_schema_bump_does_not_rebuy.py::TestTheRatchetDoesNotWiden::test_a_step_off_the_allowlist_still_blocks",
  "tests/core/test_episode_carry_pg.py::test_NEW_는_새것이다",
  "tests/core/test_episode_carry_pg.py::test_O00_은_명부에_안_실린다",
  "tests/core/test_episode_carry_pg.py::test_force_면_스냅샷을_다시_뜬다",
  "tests/core/test_episode_carry_pg.py::test_둘이_같은_것을_주장하면_둘_다_새것",
  "tests/core/test_episode_carry_pg.py::test_명부_밖_값은_인정하지_않는다",
  "tests/core/test_episode_carry_pg.py::test_명부가_생기면_지문이_움직인다",
  "tests/core/test_episode_carry_pg.py::test_명부에_별명과_구조_앵커가_실린다",
  "tests/core/test_episode_carry_pg.py::test_명부의_것을_고르면_신원을_물려받는다",
  "tests/core/test_episode_carry_pg.py::test_물려받은_신원_위에_발급기가_새_번호를_안_준다",
  "tests/core/test_episode_carry_pg.py::test_스키마에_명부_외의_값은_못_들어간다",
  "tests/core/test_episode_carry_pg.py::test_아웃룩_phase1_도_앞_화_명부를_받는다",
  "tests/core/test_episode_carry_pg.py::test_앞_화만_본다_뒤_화_신원은_안_샌다",
  "tests/core/test_episode_carry_pg.py::test_앵커도_명부와_같은_범위를_본다",
  "tests/core/test_episode_carry_pg.py::test_이_화가_canon_을_만들어도_지문이_안_흔들린다",
  "tests/core/test_episode_carry_pg.py::test_이미_돈_화를_늦게_물어도_지문이_안_움직인다",
  "tests/core/test_episode_carry_pg.py::test_이미_돈_화의_옛_지문이_그대로_산다",
  "tests/core/test_episode_carry_pg.py::test_지시문이_팩에서_온다",
  "tests/core/test_episode_carry_pg.py::test_첫_화는_지문이_안_움직인다",
  "tests/core/test_episode_carry_pg.py::test_첫_화는_한_바이트도_안_바뀐다",
  "tests/core/test_episode_reference_policy.py::test_character_two_visible_shots_is_reference_required",
  "tests/core/test_episode_reference_policy.py::test_extract_handles_none_manifest",
  "tests/core/test_episode_reference_policy.py::test_extract_text_only_subjects_chars_only",
  "tests/core/test_episode_reference_policy.py::test_nonhuman_uses_same_rule_as_character",
  "tests/core/test_episode_reference_policy.py::test_prop_mode_is_reference_candidate_not_required",
  "tests/core/test_episode_reference_policy.py::test_variant_pole_protected_even_with_one_shot",
  "tests/core/test_every_gpt_image_call_site_reserves.py::TestEveryGptImageCallSiteReserves::test_a_comment_is_not_a_door",
  "tests/core/test_every_gpt_image_call_site_reserves.py::TestEveryGptImageCallSiteReserves::test_a_door_after_the_call_does_not_count",
  "tests/core/test_every_gpt_image_call_site_reserves.py::TestEveryGptImageCallSiteReserves::test_a_door_in_the_outer_function_does_not_cover_the_inner",
  "tests/core/test_every_gpt_image_call_site_reserves.py::TestEveryGptImageCallSiteReserves::test_a_same_module_wrapper_counts_as_a_door",
  "tests/core/test_every_gpt_image_call_site_reserves.py::TestEveryGptImageCallSiteReserves::test_a_wrapper_that_does_not_reserve_is_not_a_door",
  "tests/core/test_every_gpt_image_call_site_reserves.py::TestEveryGptImageCallSiteReserves::test_no_ungated_site_in_app",
  "tests/core/test_every_gpt_image_call_site_reserves.py::TestEveryGptImageCallSiteReserves::test_positive_control_an_ungated_call_is_caught",
  "tests/core/test_every_gpt_image_call_site_reserves.py::TestEveryGptImageCallSiteReserves::test_the_scan_sees_the_sites_it_must",
  "tests/core/test_fencing_external_transitions_pg.py::test_도는_하류가_있으면_복원_자체를_막는다",
  "tests/core/test_fencing_external_transitions_pg.py::test_복원_중에는_다른_세션의_claim_이_막힌다",
  "tests/core/test_fencing_external_transitions_pg.py::test_복원_중에는_다른_세션이_그_행을_못_잡는다",
  "tests/core/test_fencing_external_transitions_pg.py::test_복원은_도는_중인_스텝을_거부한다",
  "tests/core/test_fencing_external_transitions_pg.py::test_샷선택이_도는_하류의_토큰을_버린다[completed-False]",
  "tests/core/test_fencing_external_transitions_pg.py::test_샷선택이_도는_하류의_토큰을_버린다[running-True]",
  "tests/core/test_fencing_external_transitions_pg.py::test_실행_기록이_없는_대상은_복원을_거부한다",
  "tests/core/test_fencing_external_transitions_pg.py::test_중앙_무효화도_도는_하류의_토큰을_버린다[completed-False]",
  "tests/core/test_fencing_external_transitions_pg.py::test_중앙_무효화도_도는_하류의_토큰을_버린다[running-True]",
  "tests/core/test_fencing_external_transitions_pg.py::test_토큰이_같아도_status_가_바뀌었으면_recovery_갱신이_안_먹는다",
  "tests/core/test_fencing_external_transitions_pg.py::test_파일_교체가_실패하면_파일과_DB_를_같이_되돌린다",
  "tests/core/test_fencing_external_transitions_pg.py::test_하류_무효화는_도는_중일_때만_토큰을_버린다[completed-False]",
  "tests/core/test_fencing_external_transitions_pg.py::test_하류_무효화는_도는_중일_때만_토큰을_버린다[running-True]",
  "tests/core/test_file_path_consistency.py::test_chain_bg_legacy_verify_resolves_relative_path",
  "tests/core/test_file_path_consistency.py::test_chain_bg_planner_verify_resolves_relative_path",
  "tests/core/test_file_path_consistency.py::test_floor_plan_verify_resolves_relative_path",
  "tests/core/test_file_path_consistency.py::test_ref_image_gen_verify_resolves_relative_path",
  "tests/core/test_file_paths.py::test_image_asset_check_allows_empty_file_path",
  "tests/core/test_file_paths.py::test_image_asset_check_allows_relative_path_via_raw_sql",
  "tests/core/test_file_paths.py::test_image_asset_check_rejects_absolute_path_via_raw_sql",
  "tests/core/test_file_paths.py::test_image_asset_check_rejects_update_to_absolute",
  "tests/core/test_file_paths.py::test_image_path_type_bind_absolute_to_relative",
  "tests/core/test_file_paths.py::test_image_path_type_bind_already_relative_passthrough",
  "tests/core/test_file_paths.py::test_image_path_type_bind_none_and_empty",
  "tests/core/test_file_paths.py::test_image_path_type_bind_path_empty_string_normalized",
  "tests/core/test_file_paths.py::test_image_path_type_result_legacy_absolute_passthrough",
  "tests/core/test_file_paths.py::test_image_path_type_result_none_and_empty",
  "tests/core/test_file_paths.py::test_image_path_type_result_relative_to_absolute",
  "tests/core/test_file_paths.py::test_image_path_type_round_trip_with_real_db",
  "tests/core/test_file_paths.py::test_image_response_schema_does_not_leak_absolute",
  "tests/core/test_file_paths.py::test_image_to_dict_does_not_leak_absolute",
  "tests/core/test_file_paths.py::test_relative_path_cwd_independent",
  "tests/core/test_file_paths.py::test_relative_path_exists_with_real_project_root",
  "tests/core/test_file_paths.py::test_resolve_absolute_path_passthrough",
  "tests/core/test_file_paths.py::test_resolve_empty_string_returns_none",
  "tests/core/test_file_paths.py::test_resolve_none_returns_none",
  "tests/core/test_file_paths.py::test_resolve_path_object_input",
  "tests/core/test_file_paths.py::test_resolve_relative_path_joined_with_project_root",
  "tests/core/test_file_paths.py::test_to_relative_absolute_under_root",
  "tests/core/test_file_paths.py::test_to_relative_already_relative_passthrough",
  "tests/core/test_file_paths.py::test_to_relative_none_returns_empty",
  "tests/core/test_file_paths.py::test_to_relative_outside_root_passthrough",
  "tests/core/test_file_paths.py::test_to_relative_path_object",
  "tests/core/test_file_paths.py::test_to_relative_then_resolve_round_trip",
  "tests/core/test_file_paths.py::test_to_relative_uses_settings_when_no_monkeypatch",
  "tests/core/test_finding11_character_phrase_kind.py::TestStripOverdeclaredCharacterPhraseKind::test_does_not_touch_prop_kind",
  "tests/core/test_finding11_character_phrase_kind.py::TestStripOverdeclaredCharacterPhraseKind::test_handles_empty_and_none_variations",
  "tests/core/test_finding11_character_phrase_kind.py::TestStripOverdeclaredCharacterPhraseKind::test_keeps_character_when_prompt_has_bare_id_form",
  "tests/core/test_finding11_character_phrase_kind.py::TestStripOverdeclaredCharacterPhraseKind::test_keeps_character_when_prompt_has_composite_id_form",
  "tests/core/test_finding11_character_phrase_kind.py::TestStripOverdeclaredCharacterPhraseKind::test_keeps_character_when_required_refs_has_character",
  "tests/core/test_finding11_character_phrase_kind.py::TestStripOverdeclaredCharacterPhraseKind::test_keeps_character_when_required_refs_has_character_outlook",
  "tests/core/test_finding11_character_phrase_kind.py::TestStripOverdeclaredCharacterPhraseKind::test_multi_variation_each_normalized_independently",
  "tests/core/test_finding11_character_phrase_kind.py::TestStripOverdeclaredCharacterPhraseKind::test_noop_when_no_character_in_rpk",
  "tests/core/test_finding11_character_phrase_kind.py::TestStripOverdeclaredCharacterPhraseKind::test_strips_character_when_no_required_character_and_no_id_signal",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g1_close_framing_empty_owned",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g1_close_framing_ignores_nonempty_llm_input",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g1_close_framing_synthesizes_all_absent",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g2_non_close_full_valid_coverage_preserved",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g3_non_close_empty_llm_fills_all_absent",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g3_non_close_empty_owned_empty_merged",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g3_non_close_partial_llm_fills_absent_default",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g4_absent_nonempty_phrase_raises",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g4_bad_usage_kind_enum_raises",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g4_duplicate_token_raises",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g4_missing_key_raises",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g4_non_absent_empty_phrase_raises",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g4_non_dict_entry_raises",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g4_non_list_raises",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g4_non_str_field_raises",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g4_unknown_token_dropped_with_diagnostics",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g4_unknown_token_raises",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g5_cardinality_zero_regression_close_framing",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g5_cardinality_zero_regression_non_close",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g6_merge_then_build_sentinel_close_framing",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g6_merge_then_build_sentinel_non_close_partial",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g7_no_vlm_owned_helpers_module",
  "tests/core/test_finding5_owned_usage_skeleton_merge.py::test_g7_output_order_matches_owned_list_order",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g1_srp_filter_drops_non_visible_subject",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g1_srp_filter_empty_when_all_non_visible",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g1_srp_filter_no_drop_when_all_visible",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g1_srp_filter_none_passthrough",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g2_fsc_filter_drops_non_visible_character_target",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g2_fsc_filter_drops_non_visible_prop_target",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g3_fsc_filter_preserves_background_and_visible",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g4_fsc_filter_all_dropped_returns_none",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g4_fsc_filter_none_passthrough",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g5_fsc_malformed_target_preserved_failfast",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g5_srp_malformed_preserved_failfast",
  "tests/core/test_finding6_w4a_visible_normalization.py::test_g6_fsc_filter_mixed_drop_invalid_keep_valid_and_background",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g1_base_required_outlook_stripped",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g1_multiple_occurrences_same_base",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g1_three_digit_outlook",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g2_non_base_required_outlook_preserved",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g3_no_false_match_on_similar_tokens",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g3_other_base_outlook_untouched",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g4_empty_base_set",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g4_empty_text",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g4_malformed_base_skipped",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g5_multiple_base_required_subjects",
  "tests/core/test_finding6_w4b_outlook_canonicalization.py::test_g6_canonical_prompt_has_no_outlook_for_base",
  "tests/core/test_finding9_w2_base_id_required.py::test_g1_base_id_required_emits_character_kind",
  "tests/core/test_finding9_w2_base_id_required.py::test_g2_id_and_outlook_required_keeps_character_outlook",
  "tests/core/test_finding9_w2_base_id_required.py::test_g2b_absent_from_policy_map_defaults_to_id_and_outlook",
  "tests/core/test_finding9_w2_base_id_required.py::test_g3_generic_descriptor_allowed_emits_neither",
  "tests/core/test_finding9_w2_base_id_required.py::test_g4_resolver_attaches_required_character_base_ref",
  "tests/core/test_finding9_w2_base_id_required.py::test_g5_validator_step3b_missing_character_raises",
  "tests/core/test_finding9_w2_base_id_required.py::test_g5_validator_step3b_present_character_passes",
  "tests/core/test_finding9_w2_base_id_required.py::test_g6_base_id_required_still_reproduction_no_violation",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g10_close_malformed_ref_object_still_raises",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g11_non_close_no_dep_entry_still_attaches",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g1_close_exact_background_normalized_to_zoom_in_detail",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g2_close_atmosphere_reference_dropped",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g3_close_zoom_in_detail_kept",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g4_close_invalid_ref_usage_fail_fast",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g5_non_close_exact_background_unchanged",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g6_close_empty_location_refs_noop",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g7_missing_framing_fail_fast",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g8_build_framing_map_from_staging_cp",
  "tests/core/test_finding9_w3_close_ref_usage.py::test_g9_close_no_dep_entry_returns_none_not_raises",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_edge_empty_and_none_variations_noop",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_edge_multi_variation_all_stripped",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_edge_no_prop_phrase_kind_is_noop",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_edge_non_dict_variation_skipped",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_g1_no_prop_required_ref_strips_prop_phrase_kind",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_g2_prop_required_ref_keeps_prop_phrase_kind",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_g3_only_prop_removed_character_background_preserved",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_g4_validator_step6_still_fails_on_phantom_prop",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_g5_scene_detail_schema_version_unchanged",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_repro_d2d0e2f1_wall_mark_p09",
  "tests/core/test_finding9_w4_reference_phrase_kinds.py::test_repro_e4d27b1f_smartphone_p05",
  "tests/core/test_finding_c_w1_state_variant_base_id.py::test_g1_base_id_required_state_variant_emits_character",
  "tests/core/test_finding_c_w1_state_variant_base_id.py::test_g2_base_id_required_o00_emits_character",
  "tests/core/test_finding_c_w1_state_variant_base_id.py::test_g3_id_and_outlook_state_variant_still_excluded",
  "tests/core/test_finding_c_w1_state_variant_base_id.py::test_g4_id_and_outlook_o00_still_excluded",
  "tests/core/test_finding_c_w1_state_variant_base_id.py::test_g5_base_id_required_plain_still_emits_character",
  "tests/core/test_finding_c_w1_state_variant_base_id.py::test_g6_generic_descriptor_state_variant_emits_neither",
  "tests/core/test_finding_c_w1_state_variant_base_id.py::test_g7_base_id_required_state_variant_dedup",
  "tests/core/test_finding_c_w1_state_variant_base_id.py::test_g8_finding_c_case2_3_repro_no_violation",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_config_hash_changes_when_geometry_selector_flips",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_default_off_real_provider_selector_keeps_synthetic_path",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_default_off_returns_not_applicable",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_html_emitter_has_no_llm_image_vlm_imports",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_module_has_no_llm_image_vlm_imports",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_not_applicable_when_background_mode_off",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_not_applicable_when_dossier_checkpoint_missing",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_not_applicable_when_dossier_selector_disabled",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_not_applicable_when_floor_plan_prompt_version_is_v5",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_opt_in_completes_writes_html_and_records_zero_vlm_calls",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_opt_in_failed_dossier_produces_failed_entry_not_crash",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_opt_in_mock_provider_invokes_once_per_fp_and_records_counter",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_opt_in_selector_true_helper_not_implemented_marks_fp_failed",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_resolve_provider_defaults_to_none",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_resolve_provider_returns_litellm_helper_when_selector_true",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_retry_exhausted_keeps_failed_shape",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_retry_recovers_transient_readback_failure",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_retry_zero_is_single_attempt",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_schema_and_prompt_version_constants",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_step_has_no_llm_image_vlm_imports",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_step_registered_in_manifest_between_dossier_and_bg_prompt",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_step_registered_in_step_classes",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_synthetic_path_skips_retry_field_byte_identical",
  "tests/core/test_floor_plan_geometry_readback_step.py::test_test_only_provider_override_bypasses_selector",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_config_hash_changes_with_flag",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_constants",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_gate_background_mode_off",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_gate_flag_off",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_gate_prompt_version_unsupported",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_gate_v7_supported",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_no_floor_plan_cp",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_no_numbered_elements_falls_back",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_no_prompt_cp",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_no_render_cp",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_only_ok_status_fps_processed",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_provider_disabled_falls_back",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_provider_exception_falls_back",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_render_failure_falls_back",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_rendered_with_provenance",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_rendered_with_provenance_and_best_of_n",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_selection_failed_falls_back",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_selection_invalid_falls_back",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_skeleton_dropping_provider_falls_back",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_source_detailed_missing_falls_back",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_unsafe_fp_id_falls_back",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_valid_provider_renders_sidecar",
  "tests/core/test_floor_plan_light_sidecar_step.py::test_valid_provider_validates_no_render_yet",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_config_hash_changes_with_selector",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_module_has_no_llm_image_vlm_imports",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_schema_and_prompt_version_constants",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_step_applicable_when_mode_on_and_v6_selector",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_step_applicable_with_floor_plan_anchored_alias",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_step_fails_when_cp_payload_inconsistent",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_step_has_no_llm_image_vlm_imports",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_step_not_applicable_when_background_mode_off",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_step_not_applicable_when_chain_only_mode",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_step_not_applicable_when_floor_plan_prompt_version_is_v5_default",
  "tests/core/test_floor_plan_overlay_payload_step.py::test_step_registered_in_step_classes",
  "tests/core/test_floor_plan_prompt_step.py::test_prompt_version_bumped_to_v2",
  "tests/core/test_floor_plan_prompt_step.py::test_step_aggregates_fps_across_groups",
  "tests/core/test_floor_plan_prompt_step.py::test_step_persists_empty_lists_when_llm_returns_empty",
  "tests/core/test_floor_plan_prompt_step.py::test_step_persists_v2_numbered_and_camera_fields",
  "tests/core/test_floor_plan_prompt_step_scene_primary.py::test_scene_primary_fallback_injects_scene_text_when_location_id_none",
  "tests/core/test_floor_plan_prompt_step_scene_primary.py::test_without_scene_director_scene_segments_empty_regression",
  "tests/core/test_floor_plan_prompt_step_v6.py::test_config_hash_default_v5_byte_identical_with_legacy",
  "tests/core/test_floor_plan_prompt_step_v6.py::test_config_hash_default_v5_with_floor_plan_anchored_alias",
  "tests/core/test_floor_plan_prompt_step_v6.py::test_config_hash_unknown_selector_raises",
  "tests/core/test_floor_plan_prompt_step_v6.py::test_config_hash_v6_differs_from_default_v5",
  "tests/core/test_floor_plan_prompt_step_v6.py::test_module_constant_pinned_to_v5_pack_name",
  "tests/core/test_floor_plan_prompt_step_v6.py::test_resolved_prompt_version_default_returns_v5_pack",
  "tests/core/test_floor_plan_prompt_step_v6.py::test_resolved_prompt_version_unknown_selector_raises",
  "tests/core/test_floor_plan_prompt_step_v6.py::test_resolved_prompt_version_v6_returns_v6_pack",
  "tests/core/test_floor_plan_readback_resume_reuse.py::test_changed_dossier_is_not_reused",
  "tests/core/test_floor_plan_readback_resume_reuse.py::test_config_hash_mismatch_disables_reuse",
  "tests/core/test_floor_plan_readback_resume_reuse.py::test_failed_fp_is_read_again_while_successful_one_is_reused",
  "tests/core/test_floor_plan_readback_resume_reuse.py::test_force_mode_never_reuses",
  "tests/core/test_floor_plan_readback_resume_reuse.py::test_prior_entry_without_input_hash_is_not_reused",
  "tests/core/test_floor_plan_readback_resume_reuse.py::test_redrawn_floor_plan_image_at_the_same_path_is_not_reused",
  "tests/core/test_floor_plan_readback_resume_reuse.py::test_reuse_makes_no_provider_call",
  "tests/core/test_floor_plan_readback_resume_reuse.py::test_reuse_needs_the_html_file_to_exist",
  "tests/core/test_floor_plan_readback_resume_reuse.py::test_reuse_reads_the_real_checkpoint_file_on_disk",
  "tests/core/test_floor_plan_readback_resume_reuse.py::test_successful_fp_is_reused_verbatim_on_resume",
  "tests/core/test_floor_plan_render_step.py::test_b4_register_floor_plan_idempotent_upsert",
  "tests/core/test_floor_plan_render_step.py::test_b4_register_floor_plan_image_asset_basic_insert",
  "tests/core/test_floor_plan_render_step.py::test_b4_register_floor_plan_multi_fp_per_location",
  "tests/core/test_floor_plan_render_step.py::test_b4_register_floor_plan_no_canon_skips",
  "tests/core/test_floor_plan_render_step.py::test_b4_register_floor_plan_skips_failed",
  "tests/core/test_floor_plan_render_step.py::test_compute_fp_primary_loc_ids_basic_reverse_ref",
  "tests/core/test_floor_plan_render_step.py::test_compute_fp_primary_loc_ids_first_wins_on_dup_fp_id",
  "tests/core/test_floor_plan_render_step.py::test_compute_fp_primary_loc_ids_multi_loc_sorted",
  "tests/core/test_floor_plan_render_step.py::test_compute_fp_primary_loc_ids_scopes_backgrounds_per_group",
  "tests/core/test_floor_plan_render_step.py::test_compute_fp_primary_loc_ids_skips_non_ok_group",
  "tests/core/test_floor_plan_render_step.py::test_execute_passes_correct_primary_loc_id_to_register",
  "tests/core/test_floor_plan_render_step.py::test_resolve_openai_client_passes_api_key_and_timeout",
  "tests/core/test_floor_plan_render_step.py::test_step_disabled_when_mode_off",
  "tests/core/test_floor_plan_render_step.py::test_w20e6c_register_floor_plan_no_primary_loc_id_skips_with_info_log",
  "tests/core/test_floor_plan_semantic_readback_step.py::test_applicable_on_v6_and_v7",
  "tests/core/test_floor_plan_semantic_readback_step.py::test_default_off_returns_not_applicable",
  "tests/core/test_floor_plan_semantic_readback_step.py::test_injected_provider_mismatch_records_needs_fix",
  "tests/core/test_floor_plan_semantic_readback_step.py::test_injected_provider_records_pass_and_one_vlm_call",
  "tests/core/test_floor_plan_semantic_readback_step.py::test_module_constants_locked",
  "tests/core/test_floor_plan_semantic_readback_step.py::test_not_applicable_on_v5",
  "tests/core/test_floor_plan_semantic_readback_step.py::test_not_applicable_when_background_mode_off",
  "tests/core/test_floor_plan_semantic_readback_step.py::test_not_applicable_when_dossier_disabled",
  "tests/core/test_floor_plan_semantic_readback_step.py::test_real_load_prev_checkpoint_reads_manifest",
  "tests/core/test_floor_plan_semantic_readback_step.py::test_synthetic_path_records_gate_and_zero_vlm_calls",
  "tests/core/test_form_reference_consumer_contract.py::test_all_targets_mandatory_is_accepted",
  "tests/core/test_form_reference_consumer_contract.py::test_checkpoint_without_mandatory_field_is_rejected",
  "tests/core/test_form_reference_consumer_contract.py::test_checkpoint_without_no_spec_field_is_rejected",
  "tests/core/test_form_reference_consumer_contract.py::test_consumer_contract_version_is_in_config_hash",
  "tests/core/test_form_reference_consumer_contract.py::test_contract_version_moves_the_config_hash",
  "tests/core/test_form_reference_consumer_contract.py::test_empty_no_spec_list_is_valid",
  "tests/core/test_form_reference_consumer_contract.py::test_extra_group_entry_is_rejected",
  "tests/core/test_form_reference_consumer_contract.py::test_incomplete_checkpoint_is_fail_closed",
  "tests/core/test_form_reference_consumer_contract.py::test_malformed_group_lists_are_rejected[bad_list1]",
  "tests/core/test_form_reference_consumer_contract.py::test_malformed_group_lists_are_rejected[bad_list2]",
  "tests/core/test_form_reference_consumer_contract.py::test_malformed_group_lists_are_rejected[bad_list3]",
  "tests/core/test_form_reference_consumer_contract.py::test_malformed_group_lists_are_rejected[not-a-list]",
  "tests/core/test_form_reference_consumer_contract.py::test_malformed_root_is_app_error_not_attribute_error[3.5]",
  "tests/core/test_form_reference_consumer_contract.py::test_malformed_root_is_app_error_not_attribute_error[42]",
  "tests/core/test_form_reference_consumer_contract.py::test_malformed_root_is_app_error_not_attribute_error[bad2]",
  "tests/core/test_form_reference_consumer_contract.py::test_malformed_root_is_app_error_not_attribute_error[bad]",
  "tests/core/test_form_reference_consumer_contract.py::test_mandatory_and_no_spec_must_be_disjoint",
  "tests/core/test_form_reference_consumer_contract.py::test_mandatory_group_without_ok_output_is_rejected",
  "tests/core/test_form_reference_consumer_contract.py::test_manifest_declares_producer_dependency",
  "tests/core/test_form_reference_consumer_contract.py::test_missing_checkpoint_is_fail_closed",
  "tests/core/test_form_reference_consumer_contract.py::test_missing_checkpoint_with_no_target_is_noop",
  "tests/core/test_form_reference_consumer_contract.py::test_non_dict_group_entry_is_rejected",
  "tests/core/test_form_reference_consumer_contract.py::test_partition_helper_splits_on_spec_items",
  "tests/core/test_form_reference_consumer_contract.py::test_partition_helper_treats_absent_spec_as_no_spec",
  "tests/core/test_form_reference_consumer_contract.py::test_partition_matching_current_spec_is_accepted",
  "tests/core/test_form_reference_consumer_contract.py::test_producer_does_not_allow_partial_downstream",
  "tests/core/test_form_reference_consumer_contract.py::test_producer_uses_the_shared_partition_helper",
  "tests/core/test_form_reference_consumer_contract.py::test_spec_groups_is_required",
  "tests/core/test_form_reference_consumer_contract.py::test_spec_missing_group_is_excluded_not_revived",
  "tests/core/test_form_reference_consumer_contract.py::test_stale_mandatory_with_current_missing_spec_is_rejected",
  "tests/core/test_form_reference_consumer_contract.py::test_stale_no_spec_with_current_valid_spec_is_rejected",
  "tests/core/test_form_reference_consumer_contract.py::test_stale_pack_version_is_rejected",
  "tests/core/test_form_reference_consumer_contract.py::test_stale_policy_version_is_rejected",
  "tests/core/test_form_reference_consumer_contract.py::test_universe_key_absence_is_rejected",
  "tests/core/test_form_reference_consumer_contract.py::test_universe_mismatch_is_fail_closed",
  "tests/core/test_form_reference_consumer_contract.py::test_universe_must_equal_the_partition",
  "tests/core/test_form_reference_consumer_contract.py::test_unknown_group_in_checkpoint_is_fail_closed",
  "tests/core/test_form_reference_consumer_contract.py::test_zero_mandatory_does_not_trigger_fallback",
  "tests/core/test_form_reference_lineage_contract.py::test_asset_inside_project_root_is_accepted",
  "tests/core/test_form_reference_lineage_contract.py::test_asset_of_another_episode_is_rejected",
  "tests/core/test_form_reference_lineage_contract.py::test_asset_of_another_group_is_rejected",
  "tests/core/test_form_reference_lineage_contract.py::test_asset_pointing_at_a_different_file_is_rejected",
  "tests/core/test_form_reference_lineage_contract.py::test_consumed_ref_record_is_explicit_when_no_ref",
  "tests/core/test_form_reference_lineage_contract.py::test_consumed_ref_record_is_typed_and_complete",
  "tests/core/test_form_reference_lineage_contract.py::test_dangling_asset_id_is_not_consumed_for_optional",
  "tests/core/test_form_reference_lineage_contract.py::test_dangling_asset_id_is_rejected_for_mandatory",
  "tests/core/test_form_reference_lineage_contract.py::test_different_file_inside_root_is_still_rejected",
  "tests/core/test_form_reference_lineage_contract.py::test_existing_asset_is_accepted",
  "tests/core/test_form_reference_lineage_contract.py::test_orm_round_trip_path_is_accepted",
  "tests/core/test_form_reference_lineage_contract.py::test_relative_row_path_inside_root_is_also_accepted",
  "tests/core/test_form_reference_lineage_pg.py::test_a_commit_failure_leaves_the_round_unfinished",
  "tests/core/test_form_reference_lineage_pg.py::test_a_later_groups_rollback_does_not_undo_an_earlier_groups_asset",
  "tests/core/test_form_reference_lineage_pg.py::test_a_second_force_run_never_rewrites_the_first_rounds_lineage",
  "tests/core/test_form_reference_lineage_pg.py::test_consumer_picks_only_the_row_named_by_the_checkpoint",
  "tests/core/test_form_reference_lineage_pg.py::test_the_lineage_regression_would_catch_the_old_upsert",
  "tests/core/test_form_reference_round_wiring.py::test_a_boolean_contract_version_does_not_pass_as_one",
  "tests/core/test_form_reference_round_wiring.py::test_a_bound_round_without_its_result_fails_closed",
  "tests/core/test_form_reference_round_wiring.py::test_a_corrupt_journal_fails_the_group_without_paid_calls",
  "tests/core/test_form_reference_round_wiring.py::test_a_later_group_failure_does_not_undo_an_earlier_groups_asset",
  "tests/core/test_form_reference_round_wiring.py::test_a_malformed_schema_version_is_not_treated_as_legacy",
  "tests/core/test_form_reference_round_wiring.py::test_a_manifest_without_its_registry_entry_keeps_its_uuid",
  "tests/core/test_form_reference_round_wiring.py::test_a_second_run_does_not_mutate_the_first_assets_path",
  "tests/core/test_form_reference_round_wiring.py::test_a_vanished_output_leaves_the_round_unfinished_and_no_row",
  "tests/core/test_form_reference_round_wiring.py::test_an_exception_after_the_round_opened_keeps_the_round_marks",
  "tests/core/test_form_reference_round_wiring.py::test_an_explicit_null_schema_version_is_not_legacy",
  "tests/core/test_form_reference_round_wiring.py::test_annotate_failure_is_not_mistaken_for_contract_success",
  "tests/core/test_form_reference_round_wiring.py::test_asset_bound_resume_never_mints_a_second_uuid",
  "tests/core/test_form_reference_round_wiring.py::test_binding_detects_bytes_drift_under_the_same_path",
  "tests/core/test_form_reference_round_wiring.py::test_binding_is_idempotent_for_the_same_bytes",
  "tests/core/test_form_reference_round_wiring.py::test_binding_verifies_and_never_rewrites_a_conflicting_row",
  "tests/core/test_form_reference_round_wiring.py::test_candidates_are_written_inside_the_round_directory",
  "tests/core/test_form_reference_round_wiring.py::test_checkpoint_projection_carries_the_full_contract",
  "tests/core/test_form_reference_round_wiring.py::test_contract_fields_do_not_depend_on_the_annotate_helper",
  "tests/core/test_form_reference_round_wiring.py::test_crash_before_checkpoint_save_replays_with_zero_paid_calls",
  "tests/core/test_form_reference_round_wiring.py::test_current_schema_checkpoint_missing_round_marks_is_not_legacy",
  "tests/core/test_form_reference_round_wiring.py::test_failed_entry_still_records_which_round_it_came_from",
  "tests/core/test_form_reference_round_wiring.py::test_finalized_round_rejects_further_writes",
  "tests/core/test_form_reference_round_wiring.py::test_fingerprint_failure_does_not_silently_fail_every_group",
  "tests/core/test_form_reference_round_wiring.py::test_force_does_not_replay_a_finalized_round",
  "tests/core/test_form_reference_round_wiring.py::test_force_opens_a_new_round_and_preserves_the_previous_one",
  "tests/core/test_form_reference_round_wiring.py::test_fresh_binding_rejects_a_missing_file",
  "tests/core/test_form_reference_round_wiring.py::test_fresh_binding_rejects_tampered_bytes",
  "tests/core/test_form_reference_round_wiring.py::test_genuine_legacy_checkpoint_is_reused_with_legacy_marks",
  "tests/core/test_form_reference_round_wiring.py::test_group_fingerprint_is_computable",
  "tests/core/test_form_reference_round_wiring.py::test_input_drift_abandons_the_open_round_and_opens_a_new_one",
  "tests/core/test_form_reference_round_wiring.py::test_legacy_reuse_still_verifies_the_asset",
  "tests/core/test_form_reference_round_wiring.py::test_manifest_header_must_agree_with_the_stored_result[contract_version-999]",
  "tests/core/test_form_reference_round_wiring.py::test_manifest_header_must_agree_with_the_stored_result[input_fp-sample-fixture-other-fingerprint]",
  "tests/core/test_form_reference_round_wiring.py::test_multiple_open_rounds_fail_closed",
  "tests/core/test_form_reference_round_wiring.py::test_narrow_retry_appends_instead_of_overwriting",
  "tests/core/test_form_reference_round_wiring.py::test_partial_round_marks_on_a_current_schema_checkpoint_fail_closed",
  "tests/core/test_form_reference_round_wiring.py::test_pre_research_inputs_move_the_group_fingerprint",
  "tests/core/test_form_reference_round_wiring.py::test_replay_fails_closed_when_the_bound_asset_is_gone",
  "tests/core/test_form_reference_round_wiring.py::test_replay_preserves_historical_stamps_across_a_label_only_change",
  "tests/core/test_form_reference_round_wiring.py::test_replay_rejects_a_corrupt_finalized_projection[<lambda>-pack \\ubcc0\\uc870]",
  "tests/core/test_form_reference_round_wiring.py::test_replay_rejects_a_corrupt_finalized_projection[<lambda>-path_kind \\ubcc0\\uc870]",
  "tests/core/test_form_reference_round_wiring.py::test_replay_rejects_a_corrupt_finalized_projection[<lambda>-policy \\uc0ad\\uc81c]",
  "tests/core/test_form_reference_round_wiring.py::test_replay_rejects_a_corrupt_finalized_projection[<lambda>-sha \\ud615\\uc2dd \\ud30c\\uad34]",
  "tests/core/test_form_reference_round_wiring.py::test_replay_rejects_a_corrupt_finalized_projection[<lambda>-status \\uc0ad\\uc81c]",
  "tests/core/test_form_reference_round_wiring.py::test_replay_rejects_a_corrupt_finalized_projection[<lambda>-status=failed]",
  "tests/core/test_form_reference_round_wiring.py::test_replay_rejects_a_manifest_whose_provenance_header_was_removed",
  "tests/core/test_form_reference_round_wiring.py::test_resume_continues_an_open_round_without_a_second_uuid",
  "tests/core/test_form_reference_round_wiring.py::test_resume_does_not_overwrite_the_open_rounds_earlier_candidates",
  "tests/core/test_form_reference_round_wiring.py::test_resume_from_selected_binds_without_searching_again",
  "tests/core/test_form_reference_round_wiring.py::test_resuming_a_bound_round_keeps_its_historical_stamps",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_compares_the_whole_projection_not_three_fields[path_kind-legacy_flat]",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_compares_the_whole_projection_not_three_fields[ref_pack_version-bogus-pack]",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_compares_the_whole_projection_not_three_fields[round_contract_version-999]",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_compares_the_whole_projection_not_three_fields[target_policy_version-bogus-policy]",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_fails_closed_when_the_asset_row_is_gone",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_fails_closed_when_the_journal_disagrees_with_the_checkpoint",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_fails_closed_when_the_journal_is_gone",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_fails_closed_when_the_registry_is_corrupt",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_rejects_a_checkpoint_whose_research_record_was_changed",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_rejects_a_round_stored_under_another_contract",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_rejects_a_stamp_that_disagrees_with_the_round_header[ref_pack_version-tampered-pack]",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_rejects_a_stamp_that_disagrees_with_the_round_header[target_policy_version-tampered-policy]",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_rejects_a_stamp_that_is_no_longer_current[ref_pack_version-tampered-pack]",
  "tests/core/test_form_reference_round_wiring.py::test_reuse_rejects_a_stamp_that_is_no_longer_current[target_policy_version-tampered-policy]",
  "tests/core/test_form_reference_round_wiring.py::test_reused_legacy_entry_is_marked_not_migrated",
  "tests/core/test_form_reference_round_wiring.py::test_reused_round_entry_keeps_its_round_id",
  "tests/core/test_form_reference_round_wiring.py::test_round_id_is_not_part_of_the_fingerprint",
  "tests/core/test_form_reference_round_wiring.py::test_run_group_itself_downloads_into_the_given_round_directory",
  "tests/core/test_form_reference_round_wiring.py::test_storage_contract_version_moves_both_hashes",
  "tests/core/test_form_reference_source_lock.py::test_producer_does_not_mint_its_own_asset_uuid",
  "tests/core/test_form_reference_source_lock.py::test_producer_never_rewrites_an_existing_assets_path",
  "tests/core/test_form_reference_source_lock.py::test_the_lock_catches_the_pattern_it_is_meant_to_catch",
  "tests/core/test_form_reference_source_lock.py::test_the_lock_does_not_flag_creating_a_new_row",
  "tests/core/test_form_reference_target_parity.py::test_all_groups_on_covers_groups_without_plate_binding",
  "tests/core/test_form_reference_target_parity.py::test_lane_failed_group_excluded_from_both_sides",
  "tests/core/test_form_reference_target_parity.py::test_no_target_selection_judgement_is_recorded",
  "tests/core/test_form_reference_target_parity.py::test_plate_bound_group_still_covered_when_flag_off",
  "tests/core/test_form_reference_target_parity.py::test_spec_missing_group_is_excluded_but_recorded",
  "tests/core/test_form_reference_target_parity.py::test_target_and_mandatory_are_sorted_deterministic",
  "tests/core/test_form_reference_target_parity.py::test_universe_equals_seed_target_set[False]",
  "tests/core/test_form_reference_target_parity.py::test_universe_equals_seed_target_set[True]",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_description_fallback_when_meta_missing",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_description_full_no_truncation",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_handles_empty_dependencies",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_handles_none_dependencies",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_keep_elements_preserved",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_match_basic",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_multiple_followups_collected",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_no_match_when_indices_differ",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_no_match_when_query_not_in_any_ref",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_no_match_when_ref_usage_differs",
  "tests/core/test_forward_zoom_targets.py::test_zoom_target_only_first_location_ref_inspected",
  "tests/core/test_fp_prompt_compat.py::test_all_consumer_gate_constants_reference_single_sot",
  "tests/core/test_fp_prompt_compat.py::test_preflight_local_set_matches_sot",
  "tests/core/test_fp_prompt_compat.py::test_sot_includes_v6_through_v10",
  "tests/core/test_fp_prompt_compat.py::test_sot_includes_v6_through_v9",
  "tests/core/test_generative_verdict_survives_the_executor.py::test_CP_가_날아가도_라운드로_되쓴다_유료_0회",
  "tests/core/test_generative_verdict_survives_the_executor.py::test_다시_물었으면_첫_확정이_뒤집혔을_것이다",
  "tests/core/test_generative_verdict_survives_the_executor.py::test_라운드가_사진_없는_종착으로_닫힌다",
  "tests/core/test_generative_verdict_survives_the_executor.py::test_라운드가_없고_CP_만_남아도_되쓴다_유료_0회",
  "tests/core/test_generative_verdict_survives_the_executor.py::test_생성_확정은_좁혀_다시_묻지_않는다",
  "tests/core/test_generative_verdict_survives_the_executor.py::test_외부_참조_실패는_종전처럼_좁혀_재시도한다",
  "tests/core/test_generative_verdict_survives_the_executor.py::test_재개가_생성_확정을_되쓴다_유료_0회",
  "tests/core/test_generative_verdict_survives_the_executor.py::test_정상_재개가_생성_확정을_되쓴다_유료_0회",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_a_deadlock_reaches_the_test_instead_of_skipping",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_connection_classes_are_skipped[08000]",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_connection_classes_are_skipped[08001]",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_connection_classes_are_skipped[08003]",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_connection_classes_are_skipped[08006]",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_connection_classes_are_skipped[None]",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_deadlock_and_lock_are_not_swallowed[40P01]",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_deadlock_and_lock_are_not_swallowed[42P01]",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_deadlock_and_lock_are_not_swallowed[55P03]",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_deadlock_and_lock_are_not_swallowed[57014]",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_the_candidate_ledger_survives_to_disk",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_the_carry_contract_version_moved_with_the_meaning",
  "tests/core/test_grounding_v2_production_chain.py::TestOnlyConnectionFailuresAreSkipped::test_the_version_is_actually_folded_into_the_fingerprint",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_a_candidate_lost_without_promotion_still_blocks_the_filter",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_a_duplicate_surface_keeps_both_originals",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_a_lost_candidate_blocks_the_filter",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_a_promoted_rescue_is_reported_not_swallowed",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_an_ambiguous_carry_does_not_slip_through_as_fresh",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_counts_cover_every_decided_row",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_legacy_and_shadow_produce_the_same_thing",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_legacy_runs_the_same_chain_with_nothing_added",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_shadow_touches_nothing_in_production",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_the_candidate_ledger_survives_to_disk",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_the_carry_contract_version_moved_with_the_meaning",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_the_chain_carries_the_candidate_all_the_way",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_the_ledger_survives_the_no_subject_path_too",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_the_operator_can_override_a_lost_candidate",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_the_second_dropping_place_gets_the_overlay_too",
  "tests/core/test_grounding_v2_production_chain.py::TestTheWholeChainInProductionShape::test_the_version_is_actually_folded_into_the_fingerprint",
  "tests/core/test_image_call_budget.py::test_bind_current_budget_captures_parent_thread_budget_at_call_time",
  "tests/core/test_image_call_budget.py::test_bind_current_budget_does_not_leak_into_subsequent_unbound_submissions",
  "tests/core/test_image_call_budget.py::test_bind_current_budget_no_op_when_no_parent_budget",
  "tests/core/test_image_call_budget.py::test_bind_current_budget_propagates_into_thread_pool_executor",
  "tests/core/test_image_call_budget.py::test_budget_is_thread_local_not_shared",
  "tests/core/test_image_call_budget.py::test_concurrent_reserve_respects_cap_and_does_not_double_count",
  "tests/core/test_image_call_budget.py::test_get_current_budget_default_is_none",
  "tests/core/test_image_call_budget.py::test_initial_snapshot_has_cap_used_zero_denied_zero",
  "tests/core/test_image_call_budget.py::test_install_then_get_returns_budget",
  "tests/core/test_image_call_budget.py::test_module_has_no_app_or_provider_imports",
  "tests/core/test_image_call_budget.py::test_negative_cap_rejected_at_construction",
  "tests/core/test_image_call_budget.py::test_raw_thread_child_starts_clean_without_propagation_helper",
  "tests/core/test_image_call_budget.py::test_reserve_at_cap_raises_and_increments_denied_not_used",
  "tests/core/test_image_call_budget.py::test_reserve_cap_zero_raises_immediately",
  "tests/core/test_image_call_budget.py::test_reserve_current_call_is_noop_when_no_budget",
  "tests/core/test_image_call_budget.py::test_reserve_current_call_raises_when_exhausted",
  "tests/core/test_image_call_budget.py::test_reserve_current_call_uses_installed_budget",
  "tests/core/test_image_call_budget.py::test_reserve_increments_used",
  "tests/core/test_image_call_budget.py::test_reserve_inside_bound_thread_counts_against_parent_budget",
  "tests/core/test_image_call_budget.py::test_reserve_requires_source_kwarg",
  "tests/core/test_image_call_budget.py::test_run_with_budget_forwards_args_kwargs_and_return_value",
  "tests/core/test_image_call_budget.py::test_run_with_budget_installs_for_duration_then_restores_previous",
  "tests/core/test_image_call_budget.py::test_run_with_budget_passes_none_as_no_install",
  "tests/core/test_image_call_budget.py::test_run_with_budget_restores_even_on_exception",
  "tests/core/test_image_call_budget.py::test_run_with_budget_restores_prior_budget_not_just_none",
  "tests/core/test_image_call_budget.py::test_snapshot_is_independent_dict",
  "tests/core/test_image_call_budget.py::test_uninstall_clears_current",
  "tests/core/test_init_db_fail_fast.py::test_init_db_fail_fast_includes_alembic_guidance",
  "tests/core/test_init_db_fail_fast.py::test_init_db_fail_fast_on_migration_error",
  "tests/core/test_integrity_report.py::test_cleanup_report_with_targets",
  "tests/core/test_integrity_report.py::test_cleanup_report_zero_default",
  "tests/core/test_integrity_report.py::test_completion_report_clean_default",
  "tests/core/test_integrity_report.py::test_completion_report_frozen",
  "tests/core/test_integrity_report.py::test_completion_report_missing_severity",
  "tests/core/test_litellm_failover_coverage.py::test_broker_is_the_only_key_authority_for_preflights",
  "tests/core/test_litellm_failover_coverage.py::test_call_with_key_failover_honours_an_explicit_key",
  "tests/core/test_litellm_failover_coverage.py::test_call_with_key_failover_moves_to_the_next_slot",
  "tests/core/test_litellm_failover_coverage.py::test_configured_slots_take_precedence_over_the_environment",
  "tests/core/test_litellm_failover_coverage.py::test_consumer_completes_on_a_secondary_only_configuration",
  "tests/core/test_litellm_failover_coverage.py::test_edge_judge_provider_reaches_the_secondary_key",
  "tests/core/test_litellm_failover_coverage.py::test_environment_duplicate_does_not_add_a_slot",
  "tests/core/test_litellm_failover_coverage.py::test_environment_key_is_a_real_slot",
  "tests/core/test_litellm_failover_coverage.py::test_has_openai_key_accepts_a_secondary_only_configuration",
  "tests/core/test_litellm_failover_coverage.py::test_has_openai_key_falls_back_to_the_environment",
  "tests/core/test_litellm_failover_coverage.py::test_has_openai_key_is_false_when_nothing_is_configured",
  "tests/core/test_litellm_failover_coverage.py::test_image_validator_reaches_the_secondary_key",
  "tests/core/test_litellm_failover_coverage.py::test_key_level_429_does_not_retry_the_dead_key",
  "tests/core/test_litellm_failover_coverage.py::test_llm_completion_does_not_touch_non_openai_models",
  "tests/core/test_litellm_failover_coverage.py::test_llm_completion_ignores_the_stale_environment_key",
  "tests/core/test_litellm_failover_coverage.py::test_llm_completion_raises_when_all_slots_are_exhausted",
  "tests/core/test_litellm_failover_coverage.py::test_llm_completion_retries_on_the_next_slot",
  "tests/core/test_litellm_failover_coverage.py::test_no_production_module_calls_litellm_completion_directly",
  "tests/core/test_litellm_failover_coverage.py::test_no_raw_openai_consumer_holds_a_key_across_calls",
  "tests/core/test_litellm_failover_coverage.py::test_only_the_broker_decides_whether_an_openai_key_exists",
  "tests/core/test_litellm_failover_coverage.py::test_ordinary_429_still_retries_on_the_same_key",
  "tests/core/test_litellm_failover_coverage.py::test_pdf_validator_reaches_the_secondary_key",
  "tests/core/test_litellm_failover_coverage.py::test_plain_text_body_is_judged_by_the_same_markers",
  "tests/core/test_litellm_failover_coverage.py::test_plain_text_body_without_a_marker_is_not_key_level",
  "tests/core/test_litellm_failover_coverage.py::test_raw_urllib_consumer_reaches_the_secondary_key",
  "tests/core/test_litellm_failover_coverage.py::test_swallowing_fallback_does_not_hide_a_key_level_failure",
  "tests/core/test_litellm_failover_coverage.py::test_variation_recommender_reaches_the_secondary_key",
  "tests/core/test_location_consistency.py::test_all_attempts_fail_returns_entity_detail_fallback",
  "tests/core/test_location_consistency.py::test_all_attempts_fail_without_entity_detail_counted_as_failed",
  "tests/core/test_location_consistency.py::test_llm_returns_empty_falls_back_to_gpt",
  "tests/core/test_location_consistency.py::test_location_id_enforced_from_input_not_llm",
  "tests/core/test_location_consistency.py::test_missing_entity_merge_raises",
  "tests/core/test_location_consistency.py::test_no_locations_returns_empty",
  "tests/core/test_location_consistency.py::test_processes_all_locations_with_llm_success",
  "tests/core/test_location_consistency.py::test_resume_mode_skips_completed_locations",
  "tests/core/test_location_floor_plan.py::test_applicability_chain_only_returns_false",
  "tests/core/test_location_floor_plan.py::test_applicability_floor_plan_anchored_returns_true",
  "tests/core/test_location_floor_plan.py::test_applicability_off_returns_false",
  "tests/core/test_location_floor_plan.py::test_build_user_prompt_excludes_unselected_shots",
  "tests/core/test_location_floor_plan.py::test_build_user_prompt_includes_zone_markers",
  "tests/core/test_location_floor_plan.py::test_config_hash_changes_on_mode_flip",
  "tests/core/test_location_floor_plan.py::test_generate_floor_plan_image_invalid_path_falls_back_to_text_only",
  "tests/core/test_location_floor_plan.py::test_generate_floor_plan_image_multi_ref_uses_edit",
  "tests/core/test_location_floor_plan.py::test_generate_floor_plan_image_single_ref_uses_edit",
  "tests/core/test_location_floor_plan.py::test_generate_floor_plan_image_text_only_when_no_refs",
  "tests/core/test_location_floor_plan.py::test_generate_floor_plan_image_too_small_ref_filtered",
  "tests/core/test_location_floor_plan.py::test_generate_image_rejects_empty_png",
  "tests/core/test_location_floor_plan.py::test_generate_image_rejects_too_small_png",
  "tests/core/test_location_floor_plan.py::test_generate_image_retry_on_failure",
  "tests/core/test_location_floor_plan.py::test_generate_prompt_persistently_short_consumes_retry_budget",
  "tests/core/test_location_floor_plan.py::test_generate_prompt_retry_on_failure",
  "tests/core/test_location_floor_plan.py::test_generate_prompt_short_response_triggers_retry",
  "tests/core/test_location_floor_plan.py::test_generate_prompt_succeeds_on_retry",
  "tests/core/test_location_floor_plan.py::test_load_location_groups_filters_by_selection",
  "tests/core/test_location_floor_plan.py::test_load_location_groups_legacy_korean_name_fallback",
  "tests/core/test_location_floor_plan.py::test_load_location_groups_uses_scene_director_primary_location",
  "tests/core/test_location_floor_plan.py::test_manifest_entry_exists",
  "tests/core/test_location_floor_plan.py::test_pipeline_steps_includes_location_floor_plan",
  "tests/core/test_location_floor_plan.py::test_process_floor_plan_failed_records_status",
  "tests/core/test_location_floor_plan.py::test_process_location_failed_records_status",
  "tests/core/test_location_floor_plan.py::test_prompt_v1_loads",
  "tests/core/test_location_floor_plan.py::test_settings_background_mode_default_off",
  "tests/core/test_location_floor_plan.py::test_step_classes_includes_location_floor_plan",
  "tests/core/test_location_floor_plan.py::test_step_no_planner_cp_returns_zero",
  "tests/core/test_location_floor_plan.py::test_step_no_selected_shots_returns_zero",
  "tests/core/test_location_floor_plan.py::test_t5_backward_compat_locations_alias",
  "tests/core/test_location_floor_plan.py::test_t5_empty_floor_plans_graceful_noop",
  "tests/core/test_location_floor_plan.py::test_t5_image_asset_upsert_variant_v00",
  "tests/core/test_location_floor_plan.py::test_t5_no_planner_checkpoint_returns_zero",
  "tests/core/test_location_floor_plan.py::test_t5_partial_failure_continues_processing",
  "tests/core/test_location_floor_plan.py::test_t5_prev_summaries_injected",
  "tests/core/test_location_floor_plan.py::test_t5_processes_in_planner_order",
  "tests/core/test_location_floor_plan.py::test_t5_same_building_group_ref_attached",
  "tests/core/test_location_floor_plan.py::test_user_template_format_with_all_5_keys_no_keyerror",
  "tests/core/test_location_floor_plan.py::test_user_template_format_with_all_keys_no_keyerror",
  "tests/core/test_location_floor_plan.py::test_validate_prompt_length_ok",
  "tests/core/test_location_floor_plan.py::test_validate_prompt_length_too_long",
  "tests/core/test_location_floor_plan.py::test_validate_prompt_length_too_short",
  "tests/core/test_low_freq_skip.py::test_get_skip_file_path_structure",
  "tests/core/test_low_freq_skip.py::test_load_corrupt_json_warns_and_returns_empty",
  "tests/core/test_low_freq_skip.py::test_load_ids_backcompat_with_legacy_array",
  "tests/core/test_low_freq_skip.py::test_load_returns_empty_when_file_missing",
  "tests/core/test_low_freq_skip.py::test_save_and_load_reasoned_report",
  "tests/core/test_low_freq_skip.py::test_save_creates_parent_dirs",
  "tests/core/test_low_freq_skip.py::test_save_dedupes_input",
  "tests/core/test_low_freq_skip.py::test_save_empty_then_load_empty",
  "tests/core/test_low_freq_skip.py::test_save_then_load_round_trip",
  "tests/core/test_master_plan_prompt_schema.py::test_master_plan_prompt_demands_raw_intent_fields",
  "tests/core/test_master_plan_prompt_schema.py::test_master_plan_prompt_forbids_bg_id_output",
  "tests/core/test_master_plan_prompt_schema.py::test_master_plan_prompt_includes_state_class_enum",
  "tests/core/test_master_plan_prompt_schema.py::test_master_plan_schema_has_no_bg_id_in_backgrounds",
  "tests/core/test_master_plan_prompt_schema.py::test_master_plan_schema_space_key_hint_enum_matches_vocab",
  "tests/core/test_master_plan_prompt_schema.py::test_master_plan_schema_state_class_enum_matches_vocab",
  "tests/core/test_name_matcher.py::TestBuildNameIndex::test_base_and_variant_coexist_without_collision",
  "tests/core/test_name_matcher.py::TestBuildNameIndex::test_conflict_first_wins",
  "tests/core/test_name_matcher.py::TestBuildNameIndex::test_identity_default",
  "tests/core/test_name_matcher.py::TestBuildNameIndex::test_normalized_entry_added",
  "tests/core/test_name_matcher.py::TestBuildNameIndex::test_raw_preserved_when_same_as_normalized",
  "tests/core/test_name_matcher.py::TestBuildNameIndex::test_skips_empty_names",
  "tests/core/test_name_matcher.py::TestBuildNameIndex::test_value_fn",
  "tests/core/test_name_matcher.py::TestBuildNameIndex::test_variant_does_not_register_bare_key",
  "tests/core/test_name_matcher.py::TestLookupName::test_exact_raw_match",
  "tests/core/test_name_matcher.py::TestLookupName::test_full_width_paren_query",
  "tests/core/test_name_matcher.py::TestLookupName::test_miss_returns_none",
  "tests/core/test_name_matcher.py::TestLookupName::test_normalization_fallback",
  "tests/core/test_name_matcher.py::TestLookupName::test_query_with_paren_matched_via_norm",
  "tests/core/test_name_matcher.py::TestNormalizeName::test_collapse_internal_whitespace",
  "tests/core/test_name_matcher.py::TestNormalizeName::test_empty_or_none",
  "tests/core/test_name_matcher.py::TestNormalizeName::test_no_changes_for_plain_names",
  "tests/core/test_name_matcher.py::TestNormalizeName::test_paren_with_surrounding_whitespace",
  "tests/core/test_name_matcher.py::TestNormalizeName::test_preserves_case",
  "tests/core/test_name_matcher.py::TestNormalizeName::test_preserves_josa",
  "tests/core/test_name_matcher.py::TestNormalizeName::test_strip_paren_suffix_full_width",
  "tests/core/test_name_matcher.py::TestNormalizeName::test_strip_paren_suffix_half_width",
  "tests/core/test_name_matcher.py::TestNormalizeName::test_strip_whitespace",
  "tests/core/test_openai_key_failover.py::test_concurrent_failures_on_the_same_slot_do_not_burn_the_next_slot",
  "tests/core/test_openai_key_failover.py::test_concurrent_proxy_calls_all_reach_the_secondary_key",
  "tests/core/test_openai_key_failover.py::test_failover_from_a_stale_slot_does_not_advance_again",
  "tests/core/test_openai_key_failover.py::test_failover_moves_to_secondary_and_stays",
  "tests/core/test_openai_key_failover.py::test_failover_returns_false_when_only_one_slot",
  "tests/core/test_openai_key_failover.py::test_failure_on_the_last_slot_is_still_exhaustion",
  "tests/core/test_openai_key_failover.py::test_hook_failure_does_not_block_switch",
  "tests/core/test_openai_key_failover.py::test_key_level_failures_are_recognized[exc0]",
  "tests/core/test_openai_key_failover.py::test_key_level_failures_are_recognized[exc1]",
  "tests/core/test_openai_key_failover.py::test_key_level_failures_are_recognized[exc2]",
  "tests/core/test_openai_key_failover.py::test_key_level_failures_are_recognized[exc3]",
  "tests/core/test_openai_key_failover.py::test_key_level_failures_are_recognized[exc4]",
  "tests/core/test_openai_key_failover.py::test_key_level_failures_are_recognized[exc5]",
  "tests/core/test_openai_key_failover.py::test_key_level_failures_are_recognized[exc6]",
  "tests/core/test_openai_key_failover.py::test_key_level_failures_are_recognized[exc7]",
  "tests/core/test_openai_key_failover.py::test_key_level_failures_are_recognized[exc8]",
  "tests/core/test_openai_key_failover.py::test_key_level_failures_are_recognized[exc9]",
  "tests/core/test_openai_key_failover.py::test_no_keys_at_all_is_empty_not_crash",
  "tests/core/test_openai_key_failover.py::test_non_openai_provider_error_never_switches_openai_key",
  "tests/core/test_openai_key_failover.py::test_only_secondary_configured_is_usable",
  "tests/core/test_openai_key_failover.py::test_primary_is_used_first_when_both_present",
  "tests/core/test_openai_key_failover.py::test_proxy_does_not_take_api_key_argument",
  "tests/core/test_openai_key_failover.py::test_proxy_propagates_non_key_failures_without_switching",
  "tests/core/test_openai_key_failover.py::test_proxy_retries_on_secondary_key_after_key_level_failure",
  "tests/core/test_openai_key_failover.py::test_proxy_reuses_cached_client_per_slot",
  "tests/core/test_openai_key_failover.py::test_router_binding_is_not_handed_out_when_its_slot_is_stale",
  "tests/core/test_openai_key_failover.py::test_router_binding_is_reused_while_the_slot_holds",
  "tests/core/test_openai_key_failover.py::test_router_binding_slot_and_key_come_from_one_read",
  "tests/core/test_openai_key_failover.py::test_secondary_blank_means_single_slot_default",
  "tests/core/test_openai_key_failover.py::test_slot_and_key_are_read_as_one_value",
  "tests/core/test_openai_key_failover.py::test_stale_router_failure_is_attributed_to_its_own_slot",
  "tests/core/test_openai_key_failover.py::test_switch_hook_fires_once_even_when_two_calls_fail_together",
  "tests/core/test_openai_key_failover.py::test_switch_hook_fires_once_per_switch",
  "tests/core/test_openai_key_failover.py::test_transient_and_request_failures_are_not_key_level[exc0]",
  "tests/core/test_openai_key_failover.py::test_transient_and_request_failures_are_not_key_level[exc1]",
  "tests/core/test_openai_key_failover.py::test_transient_and_request_failures_are_not_key_level[exc2]",
  "tests/core/test_openai_key_failover.py::test_transient_and_request_failures_are_not_key_level[exc3]",
  "tests/core/test_openai_key_failover.py::test_transient_and_request_failures_are_not_key_level[exc4]",
  "tests/core/test_openai_key_failover.py::test_transient_and_request_failures_are_not_key_level[exc5]",
  "tests/core/test_opik_usage_cache_fields.py::test_active_callback_chain_carries_cache_field",
  "tests/core/test_opik_usage_cache_fields.py::test_anthropic_style_cache_read_field",
  "tests/core/test_opik_usage_cache_fields.py::test_cache_field_survives_opik_sdk_conversion",
  "tests/core/test_opik_usage_cache_fields.py::test_cache_fields_are_added_when_provider_reports_them",
  "tests/core/test_opik_usage_cache_fields.py::test_callback_payload_builder_uses_the_wrapped_function",
  "tests/core/test_opik_usage_cache_fields.py::test_double_init_wraps_only_once",
  "tests/core/test_opik_usage_cache_fields.py::test_enabled_log_reports_cache_wiring[False-cache_wiring=ok]",
  "tests/core/test_opik_usage_cache_fields.py::test_enabled_log_reports_cache_wiring[True-cache_wiring=failed]",
  "tests/core/test_opik_usage_cache_fields.py::test_no_cache_field_means_no_key",
  "tests/core/test_opik_usage_cache_fields.py::test_wiring_failure_is_loud",
  "tests/core/test_opik_usage_cache_fields.py::test_zero_is_recorded_as_zero",
  "tests/core/test_outdoor_direct_bypass.py::test_aerial_context_empty_when_direct_on",
  "tests/core/test_outdoor_direct_bypass.py::test_aerial_context_nonempty_when_direct_off",
  "tests/core/test_outdoor_direct_bypass.py::test_direct_compose_resolver",
  "tests/core/test_outdoor_direct_bypass.py::test_execute_all_outdoor_skips_and_preserves_d6_hashes",
  "tests/core/test_outdoor_direct_bypass.py::test_execute_flag_off_does_not_join_classify",
  "tests/core/test_outdoor_direct_bypass.py::test_execute_flag_off_no_skip_markers",
  "tests/core/test_outdoor_direct_bypass.py::test_outdoor_loc_ids_conservative_on_missing",
  "tests/core/test_outdoor_direct_bypass.py::test_outdoor_loc_ids_from_classify",
  "tests/core/test_outdoor_direct_bypass.py::test_site_layout_applicable_when_direct_off",
  "tests/core/test_outdoor_direct_bypass.py::test_site_layout_bypassed_when_direct_on",
  "tests/core/test_outdoor_direct_bypass.py::test_skipped_status_not_ingested_by_bg_map",
  "tests/core/test_outdoor_direct_bypass.py::test_split_skips_outdoor_keeps_indoor",
  "tests/core/test_outdoor_lane_plan_step.py::test_config_hash_includes_evidence_validation_version",
  "tests/core/test_outdoor_lane_plan_step.py::test_config_hash_includes_prompt_version",
  "tests/core/test_outdoor_lane_plan_step.py::test_flag_off_noop",
  "tests/core/test_outdoor_lane_plan_step.py::test_group_failure_isolated",
  "tests/core/test_outdoor_lane_plan_step.py::test_spec_missing_group_skipped",
  "tests/core/test_outdoor_lane_producers.py::test_canon_lane_cp_missing_falls_back_all_groups",
  "tests/core/test_outdoor_lane_producers.py::test_canon_lane_filter_targets_map_marker_only",
  "tests/core/test_outdoor_lane_producers.py::test_canon_parity_missing_group_fail_closed",
  "tests/core/test_outdoor_lane_producers.py::test_producer_hashes_stamp_lane_on_only",
  "tests/core/test_outdoor_lane_producers.py::test_spec_execute_gate_opens_on_lane_only",
  "tests/core/test_outdoor_place_canon_step.py::test_collect_scale_block_filters_by_group_and_dedups",
  "tests/core/test_outdoor_place_canon_step.py::test_delegates_only_spec_groups_and_upserts",
  "tests/core/test_outdoor_place_canon_step.py::test_gate_flag_off",
  "tests/core/test_outdoor_place_canon_step.py::test_gate_mode_off",
  "tests/core/test_outdoor_place_canon_step.py::test_group_failure_isolated",
  "tests/core/test_outdoor_place_canon_step.py::test_map_edit_does_not_resend_on_submission_unknown",
  "tests/core/test_outdoor_place_canon_step.py::test_nb2_does_not_resend_on_submission_unknown",
  "tests/core/test_outdoor_place_canon_step.py::test_no_spec_groups_returns_empty",
  "tests/core/test_outdoor_place_canon_step.py::test_pick_style_fp_prefers_same_group_then_first_ok",
  "tests/core/test_outdoor_place_spec_step.py::test_gate_background_mode_off_returns_empty",
  "tests/core/test_outdoor_place_spec_step.py::test_gate_flag_off_returns_empty",
  "tests/core/test_outdoor_place_spec_step.py::test_group_failure_is_isolated",
  "tests/core/test_outdoor_place_spec_step.py::test_group_without_mapped_scenes_is_skipped_not_failed",
  "tests/core/test_outdoor_place_spec_step.py::test_no_outdoor_groups_returns_empty",
  "tests/core/test_outdoor_place_spec_step.py::test_outdoor_group_assembled_with_full_scene_text",
  "tests/core/test_outdoor_place_spec_step.py::test_scene_indices_union_of_primary_and_selected_shot_locs",
  "tests/core/test_outdoor_place_spec_step.py::test_scene_indices_union_of_primary_and_shot_locs",
  "tests/core/test_outdoor_place_spec_step.py::test_shot_without_location_id_included_via_scene_primary",
  "tests/core/test_outdoor_place_spec_step.py::test_unselected_shot_location_does_not_map_scene",
  "tests/core/test_outdoor_place_spec_step.py::test_unselected_staging_shot_excluded_from_group_shots",
  "tests/core/test_outdoor_shot_grounding_step.py::test_gate_flag_off",
  "tests/core/test_outdoor_shot_grounding_step.py::test_grounds_group_shots_and_skips_canonless",
  "tests/core/test_outdoor_shot_grounding_step.py::test_shot_failure_isolated",
  "tests/core/test_outdoor_structure_seed_step.py::test_collect_interior_scene_indices_pure",
  "tests/core/test_outdoor_structure_seed_step.py::test_collect_lane2_groups_filters_structure_plate",
  "tests/core/test_outdoor_structure_seed_step.py::test_config_hash_author_physical_model_sensitivity",
  "tests/core/test_outdoor_structure_seed_step.py::test_config_hash_includes_packs_and_models",
  "tests/core/test_outdoor_structure_seed_step.py::test_config_hash_variants_flag_stamped_only_when_on",
  "tests/core/test_outdoor_structure_seed_step.py::test_config_hash_variants_roll_count_independent",
  "tests/core/test_outdoor_structure_seed_step.py::test_execute_rejects_malformed_formref_checkpoint_as_app_error",
  "tests/core/test_outdoor_structure_seed_step.py::test_flag_off_noop",
  "tests/core/test_outdoor_structure_seed_step.py::test_generation_failure_isolated_and_inputs_are_sot",
  "tests/core/test_outdoor_structure_seed_step.py::test_map_marker_only_noop",
  "tests/core/test_outdoor_structure_seed_step.py::test_missing_typology_record_does_not_kill_the_group",
  "tests/core/test_outdoor_structure_seed_step.py::test_persisted_plan_revalidation_fail_closed",
  "tests/core/test_outdoor_structure_seed_step.py::test_spec_missing_group_failed_isolated",
  "tests/core/test_outdoor_structure_seed_step.py::test_typology_facts_from_prev_step_reach_author",
  "tests/core/test_outdoor_structure_seed_step.py::test_typology_facts_reach_author_and_persist",
  "tests/core/test_outdoor_structure_seed_step.py::test_typology_failure_does_not_kill_the_group",
  "tests/core/test_outdoor_structure_seed_step.py::test_typology_reuses_sidecar_record_without_researching_again",
  "tests/core/test_outdoor_structure_seed_step.py::test_variants_author_invalid_retry_then_fail_isolated",
  "tests/core/test_outdoor_structure_seed_step.py::test_variants_author_retry_includes_prior_violations",
  "tests/core/test_outdoor_structure_seed_step.py::test_variants_author_sidecar_reuse_skips_llm",
  "tests/core/test_outdoor_structure_seed_step.py::test_variants_force_bypasses_sidecar_cache",
  "tests/core/test_outdoor_structure_seed_step.py::test_variants_interior_scene_join_wiring",
  "tests/core/test_outdoor_structure_seed_step.py::test_variants_mode_full_wiring",
  "tests/core/test_outlook_with_no_wearer_has_no_producer.py::test_an_outlook_whose_only_wearer_is_low_freq_is_still_excluded",
  "tests/core/test_outlook_with_no_wearer_has_no_producer.py::test_an_outlook_with_no_wearer_is_not_expected",
  "tests/core/test_outlook_with_no_wearer_has_no_producer.py::test_the_no_wearer_count_lands_in_the_step_result",
  "tests/core/test_owned_judge_narrow_exceptions.py::test_allowed_verdicts_do_not_count_as_redraw",
  "tests/core/test_owned_judge_narrow_exceptions.py::test_judge_default_shot_intent_empty_backcompat",
  "tests/core/test_owned_judge_narrow_exceptions.py::test_judge_threads_shot_intent_into_user_prompt",
  "tests/core/test_owned_judge_narrow_exceptions.py::test_redraw_still_counts_alongside_allowed",
  "tests/core/test_owned_judge_narrow_exceptions.py::test_sentinel_accepts_allowed_verdicts",
  "tests/core/test_owned_judge_narrow_exceptions.py::test_sentinel_rejects_unknown_verdict",
  "tests/core/test_owned_judge_narrow_exceptions.py::test_v5_prompt_pack_contract",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_e2e_bare_required_char_state_variant_resolve_then_validate",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_inc2b_base_character_meta_still_satisfies_required_character",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_inc2b_character_outlook_not_satisfied_by_character_state",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_inc2b_character_outlook_not_satisfied_by_other_char_state",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_inc2b_character_outlook_satisfied_by_same_char_state",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_inc2b_character_state_satisfies_required_character",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_inc2b_wrong_sid_character_state_does_not_satisfy",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_resolve_refs_bare_required_char_prefers_state_variant",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_resolve_refs_bare_required_char_state_variant_bytes_missing_falls_back",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_resolve_refs_bare_required_char_without_state_variant_uses_base",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_resolve_refs_composite_state_variant_no_double_attach",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_validator_character_outlook_not_satisfied_by_state_variant",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_validator_required_character_satisfied_by_state_variant",
  "tests/core/test_p8_inc2b_state_variant_required_char.py::test_validator_required_character_wrong_sid_state_variant_raises",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_attach_pose_sketch_ref_member_and_nonmember",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_attach_pose_sketch_ref_noop_when_no_path",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_immobilized_pose_guide_role_render",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_inc3a_lock_aligns_when_pose_guide_present",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_inc3a_lock_unchanged_when_no_pose_guide",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_loader_exposes_pose_sketch_path_when_flag_on",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_loader_hides_pose_sketch_path_when_file_missing",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_loader_hides_pose_sketch_path_when_flag_off",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_pose_guide_alone_does_not_satisfy_required_character",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_pose_guide_coexists_with_required_character_ref",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_pose_sketch_prompt_empty_anchor_fallback",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_pose_sketch_prompt_includes_pose_contact_support_and_contract",
  "tests/core/test_p8_inc3b_pose_sketch.py::test_pose_sketch_prompt_no_name_or_entity_id_injection",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_blocks_failed_dep_unconditionally",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_blocks_partial_dep_when_strict",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_blocks_partial_strict_dep_when_override_key_false",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_blocks_partial_strict_dep_when_override_key_missing",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_blocks_unknown_status",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_passes_completed_dep_regardless_of_contract",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_passes_not_applicable_dep",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_passes_partial_dep_default_backward_compat",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_passes_partial_strict_dep_when_operator_override",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_strict_partial_dep_rejects_truthy_string_override",
  "tests/core/test_partial_cascade_contract.py::test_check_gate_strict_partial_dep_without_override_key_still_blocks",
  "tests/core/test_phase4_floor_plan_chain.py::test_chain_bg_planning_low_freq_skip_marks_floor_plan_used_false",
  "tests/core/test_phase4_floor_plan_chain.py::test_chain_bg_planning_marks_floor_plan_used_when_present",
  "tests/core/test_phase4_floor_plan_chain.py::test_chain_bg_planning_no_prepend_when_empty",
  "tests/core/test_phase4_floor_plan_chain.py::test_chain_bg_planning_prepends_floor_plan_prompt",
  "tests/core/test_phase4_floor_plan_chain.py::test_chain_bg_render_depends_on_location_floor_plan",
  "tests/core/test_phase4_floor_plan_chain.py::test_load_floor_plan_paths_skips_failed_status",
  "tests/core/test_phase4_floor_plan_chain.py::test_load_floor_plan_paths_skips_missing_file",
  "tests/core/test_phase4_floor_plan_chain.py::test_load_floor_plan_paths_when_off_returns_empty",
  "tests/core/test_phase4_floor_plan_chain.py::test_load_floor_plan_prompts_extracts_ok_only",
  "tests/core/test_phase4_floor_plan_chain.py::test_load_floor_plan_prompts_skips_empty_text",
  "tests/core/test_phase4_floor_plan_chain.py::test_load_floor_plan_prompts_when_off_returns_empty",
  "tests/core/test_phase4_floor_plan_chain.py::test_planner_render_building_group_reverse_lookup",
  "tests/core/test_phase4_floor_plan_chain.py::test_planner_render_empty_chain_order_graceful",
  "tests/core/test_phase4_floor_plan_chain.py::test_planner_render_mode_off_uses_legacy_path",
  "tests/core/test_phase4_floor_plan_chain.py::test_planner_render_parent_group_missing_treated_as_root",
  "tests/core/test_phase4_floor_plan_chain.py::test_planner_render_skipped_planning_groups_not_rendered",
  "tests/core/test_phase4_floor_plan_chain.py::test_planner_render_t2i_guide_persisted_in_image_asset",
  "tests/core/test_phase4_floor_plan_chain.py::test_planner_render_variant_label_increments_per_location",
  "tests/core/test_phase4_floor_plan_chain.py::test_render_node_image_multi_image_edit",
  "tests/core/test_phase4_floor_plan_chain.py::test_render_node_image_single_image_fallback",
  "tests/core/test_phase4_floor_plan_chain.py::test_render_node_image_text_only_when_no_refs",
  "tests/core/test_phase4_floor_plan_chain.py::test_render_one_location_floor_plan_priority",
  "tests/core/test_phase4_floor_plan_chain.py::test_render_one_location_no_floor_plan_uses_legacy_flow",
  "tests/core/test_phase4_floor_plan_chain.py::test_step_passes_floor_plan_paths_to_pipeline",
  "tests/core/test_phase5_deprecation.py::test_phase5_steps_deprecated",
  "tests/core/test_phase5_deprecation.py::test_phase7_steps_active",
  "tests/core/test_phase5_sequential_pipeline.py::test_location_floor_plan_depends_on_background_planner",
  "tests/core/test_phase5_sequential_pipeline.py::test_phase5_full_pipeline_floor_plan_anchored",
  "tests/core/test_phase5_sequential_pipeline.py::test_phase5_mode_chain_only_legacy",
  "tests/core/test_phase5_sequential_pipeline.py::test_phase5_mode_off_skips_all",
  "tests/core/test_phase5_sequential_pipeline.py::test_phase5_planner_empty_floor_plans",
  "tests/core/test_phase5_sequential_pipeline.py::test_phase5_planner_partial_failure",
  "tests/core/test_phase9_1_camera_consistency.py::test_build_prepend_blocks_all_three_blocks_order",
  "tests/core/test_phase9_1_camera_consistency.py::test_build_prepend_blocks_camera_meta_block_appended",
  "tests/core/test_phase9_1_camera_consistency.py::test_build_prepend_blocks_camera_meta_empty_meta_no_block",
  "tests/core/test_phase9_1_camera_consistency.py::test_build_prepend_blocks_camera_meta_off_default",
  "tests/core/test_phase9_1_camera_consistency.py::test_build_prepend_blocks_camera_meta_partial_fields",
  "tests/core/test_phase9_1_camera_consistency.py::test_close_framing_re_case_insensitive",
  "tests/core/test_phase9_1_camera_consistency.py::test_close_framing_re_detects_ecu",
  "tests/core/test_phase9_1_camera_consistency.py::test_close_framing_re_does_not_match_wide",
  "tests/core/test_phase9_1_camera_consistency.py::test_coordinator_no_chain_bg_skip_when_medium_framing",
  "tests/core/test_phase9_1_camera_consistency.py::test_coordinator_no_chain_bg_skip_when_no_camera_direction",
  "tests/core/test_phase9_1_camera_consistency.py::test_coordinator_skip_chain_bg_when_close_framing",
  "tests/core/test_phase9_1_camera_consistency.py::test_framing_scale_enum_marks_close_without_camera_text",
  "tests/core/test_phase9_1_camera_consistency.py::test_framing_scale_enum_marks_wide_without_phrase_matching",
  "tests/core/test_phase9_1_camera_consistency.py::test_framing_scale_missing_fails_fast",
  "tests/core/test_phase9_1_camera_consistency.py::test_loader_camera_meta_duplicate_shot_first_wins",
  "tests/core/test_phase9_1_camera_consistency.py::test_loader_camera_meta_invalid_shot_id_format_skipped",
  "tests/core/test_phase9_1_camera_consistency.py::test_loader_camera_meta_parses_phase7_groups_shape",
  "tests/core/test_phase9_1_camera_consistency.py::test_loader_camera_meta_phase5_fallback",
  "tests/core/test_phase9_1_camera_consistency.py::test_loader_camera_meta_returns_empty_when_no_checkpoint",
  "tests/core/test_phase9_1_camera_consistency.py::test_loader_camera_meta_skips_non_ok_groups",
  "tests/core/test_phase9_1_camera_consistency.py::test_loader_camera_meta_skips_when_all_fields_empty",
  "tests/core/test_phase9_1_camera_consistency.py::test_scene_analysis_context_has_phase9_1_field",
  "tests/core/test_pipeline_gate_projection_sync.py::test_check_ref_images_ready_fails_closed_on_sync_error",
  "tests/core/test_pipeline_gate_projection_sync.py::test_check_ref_images_ready_resyncs_stale_episode_status",
  "tests/core/test_presync_manifest_field.py::test_expected_steps_have_presync_flag",
  "tests/core/test_presync_manifest_field.py::test_no_route_hardcoded_presync_tuple",
  "tests/core/test_prompt_assembly_reorder.py::test_off_is_byte_identical_to_legacy[entity0]",
  "tests/core/test_prompt_assembly_reorder.py::test_off_is_byte_identical_to_legacy[entity1]",
  "tests/core/test_prompt_assembly_reorder.py::test_off_is_default_without_env",
  "tests/core/test_prompt_assembly_reorder.py::test_on_moves_variable_head_to_the_tail[entity0]",
  "tests/core/test_prompt_assembly_reorder.py::test_on_moves_variable_head_to_the_tail[entity1]",
  "tests/core/test_prompt_assembly_reorder.py::test_on_preserves_all_paragraphs[entity0]",
  "tests/core/test_prompt_assembly_reorder.py::test_on_preserves_all_paragraphs[entity1]",
  "tests/core/test_prompt_assembly_reorder.py::test_on_static_prefix_is_identical_across_entities",
  "tests/core/test_prompt_assembly_reorder.py::test_on_static_prefix_is_longer_than_off",
  "tests/core/test_prompt_assembly_reorder.py::test_paragraph_separator_inside_value_raises",
  "tests/core/test_prompt_assembly_reorder.py::test_reorder_enabled_parses_step_list[ entity_t2i , scene_detail -True]",
  "tests/core/test_prompt_assembly_reorder.py::test_reorder_enabled_parses_step_list[-False]",
  "tests/core/test_prompt_assembly_reorder.py::test_reorder_enabled_parses_step_list[entity_t2i-True]",
  "tests/core/test_prompt_assembly_reorder.py::test_reorder_enabled_parses_step_list[entity_t2i_extra-False]",
  "tests/core/test_prompt_assembly_reorder.py::test_reorder_enabled_parses_step_list[scene_detail-False]",
  "tests/core/test_prompt_cache_usage_reader.py::test_flatten_handles_nested_and_dotted_forms",
  "tests/core/test_prompt_cache_usage_reader.py::test_hit_rate_counts_only_reported_calls",
  "tests/core/test_prompt_cache_usage_reader.py::test_hit_rate_is_none_when_nothing_reported",
  "tests/core/test_prompt_cache_usage_reader.py::test_missing_cache_field_is_none_not_zero",
  "tests/core/test_prompt_cache_usage_reader.py::test_reads_provider_specific_cache_names[cache_read_input_tokens]",
  "tests/core/test_prompt_cache_usage_reader.py::test_reads_provider_specific_cache_names[cached_content_token_count]",
  "tests/core/test_prompt_cache_usage_reader.py::test_reads_provider_specific_cache_names[original_usage.prompt_tokens_details.cached_tokens]",
  "tests/core/test_prompt_cache_usage_reader.py::test_reads_provider_specific_cache_names[prompt_tokens_details.cached_tokens]",
  "tests/core/test_prompt_cache_usage_reader.py::test_step_falls_back_to_tag_when_trace_name_missing",
  "tests/core/test_prompt_cache_usage_reader.py::test_traces_without_usage_are_excluded_from_averages",
  "tests/core/test_reference_protection_includes_selected_shot_characters.py::test_protected_character_is_not_low_freq_skipped",
  "tests/core/test_reference_protection_includes_selected_shot_characters.py::test_scene_detail_source_keeps_its_reason",
  "tests/core/test_reference_protection_includes_selected_shot_characters.py::test_selected_shot_character_is_protected",
  "tests/core/test_reference_protection_includes_selected_shot_characters.py::test_selected_shot_staging_character_is_protected",
  "tests/core/test_reference_protection_includes_selected_shot_characters.py::test_staging_name_of_a_character_not_in_this_episode_is_ignored",
  "tests/core/test_reference_protection_includes_selected_shot_characters.py::test_unselected_shot_character_is_not_protected",
  "tests/core/test_router_failover_coverage.py::test_call_gpt_lvm_reaches_the_secondary_key",
  "tests/core/test_router_failover_coverage.py::test_no_production_module_bypasses_the_failover_helper",
  "tests/core/test_router_failover_coverage.py::test_pdf_extraction_reaches_the_secondary_key",
  "tests/core/test_router_failover_coverage.py::test_raw_router_accessor_is_gone",
  "tests/core/test_router_failover_coverage.py::test_router_completion_is_the_public_entry",
  "tests/core/test_router_failover_coverage.py::test_select_and_recommend_angle_reaches_the_secondary_key",
  "tests/core/test_router_failover_coverage.py::test_select_final_best_reaches_the_secondary_key",
  "tests/core/test_scene_analysis_dto.py::test_dto_defaults_are_empty",
  "tests/core/test_scene_analysis_dto.py::test_loader_fixed_elements_mapping",
  "tests/core/test_scene_analysis_dto.py::test_loader_loads_segments_and_director",
  "tests/core/test_scene_analysis_dto.py::test_loader_no_checkpoints_returns_empty_context",
  "tests/core/test_scene_analysis_dto.py::test_loader_outlook_phase3_preferred_over_extraction",
  "tests/core/test_scene_analysis_dto.py::test_loader_scene_dependency_fallback_when_shot_empty",
  "tests/core/test_scene_analysis_dto.py::test_loader_shot_dependency_preferred_over_scene_dependency",
  "tests/core/test_scene_analysis_dto.py::test_loader_shot_selection_filters_shots",
  "tests/core/test_scene_detail_analyze_one.py::test_a_real_location_id_outside_ve_is_still_caught",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_auto_assigns_fixed_outfit",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_cleans_double_spaces",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_color_instruction_drops_emotion_closed_list",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_color_instruction_source_has_no_emotion_closed_list",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_forcibly_removes_ids_when_retry_also_violates",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_injects_fixed_elements_into_user_prompt",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_leaves_clean_representative_moment_intact",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_legacy_no_shot_info",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_preserves_valid_entity_prompt_spacing",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_removes_outfit_for_non_visible_character",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_replaces_bare_cid_with_composite",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_replaces_violation_via_shot_director_vr",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_retries_on_ve_violation",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_returns_none_on_llm_exception",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_returns_scene_and_shot_index",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_skips_fixed_elements_when_shot_not_in_applies",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_strips_phantom_prop_phrase_kind",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_strips_violations_from_representative_moment",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_strips_violations_from_still_frame_prompt",
  "tests/core/test_scene_detail_analyze_one.py::test_analyze_one_uses_fallback_when_no_entities",
  "tests/core/test_scene_detail_analyze_one.py::test_background_id_label_is_not_read_as_a_location_violation",
  "tests/core/test_scene_detail_analyze_one.py::test_card_pairs_and_mirror_pairs_agree_for_character_without_outlook",
  "tests/core/test_scene_detail_analyze_one.py::test_corrections_ride_in_front_of_the_user_prompt",
  "tests/core/test_scene_detail_analyze_one.py::test_visible_character_without_outlook_survives_as_o00",
  "tests/core/test_scene_image_target_scope.py::test_config_hash_stamps_scope_contract_version",
  "tests/core/test_scene_image_target_scope.py::test_config_hash_target_stamped_before_recipe_off_return",
  "tests/core/test_scene_image_target_scope.py::test_config_hash_target_stamped_in_recipe_mode_too",
  "tests/core/test_scene_image_target_scope.py::test_contract_drift_target_only_change_rerun_self",
  "tests/core/test_scene_image_target_scope.py::test_execute_counts_use_audit_effective",
  "tests/core/test_scene_image_target_scope.py::test_execute_off_result_shape_byte_identical",
  "tests/core/test_scene_image_target_scope.py::test_execute_result_persists_base_hash",
  "tests/core/test_scene_image_target_scope.py::test_execute_target_audit_missing_fail_closed",
  "tests/core/test_scene_image_target_scope.py::test_indoor_pose_guide_allowlist_none_byte_identical",
  "tests/core/test_scene_image_target_scope.py::test_indoor_pose_guide_execution_allowlist",
  "tests/core/test_scene_image_target_scope.py::test_public_run_force_guard_before_any_destruction",
  "tests/core/test_scene_image_target_scope.py::test_target_with_force_fail_closed",
  "tests/core/test_scene_image_target_scope.py::test_untargeted_cp_then_target_transition_rerun_self",
  "tests/core/test_scene_image_target_scope.py::test_verify_completion_dependency_missing_partial",
  "tests/core/test_scene_image_target_scope.py::test_verify_completion_off_unchanged",
  "tests/core/test_scene_image_target_scope.py::test_verify_completion_stale_audit_after_still_regeneration",
  "tests/core/test_scene_image_target_scope.py::test_verify_completion_target_audit_missing_fail_closed",
  "tests/core/test_scene_image_target_scope.py::test_verify_completion_target_complete_ignores_nontarget",
  "tests/core/test_seed_regeneration_policy_wiring.py::test_cp_audit_keys_survive_regardless_of_variants",
  "tests/core/test_seed_regeneration_policy_wiring.py::test_cp_records_the_policy_version_not_just_its_name",
  "tests/core/test_seed_regeneration_policy_wiring.py::test_plate_consumer_keeps_the_default_policy",
  "tests/core/test_seed_regeneration_policy_wiring.py::test_schema_version_is_cross_pinned_with_the_manifest",
  "tests/core/test_seed_regeneration_policy_wiring.py::test_seed_config_hash_carries_the_policy",
  "tests/core/test_seed_regeneration_policy_wiring.py::test_seed_config_hash_carries_the_policy_version",
  "tests/core/test_seed_regeneration_policy_wiring.py::test_seed_declares_defer_not_some_other_policy",
  "tests/core/test_seed_regeneration_policy_wiring.py::test_seed_does_not_wire_regeneration_yet",
  "tests/core/test_seed_regeneration_policy_wiring.py::test_seed_passes_the_defer_policy_explicitly",
  "tests/core/test_share_plan_dependencies.py::test_scene_image_pipeline_depends_on_share_plan",
  "tests/core/test_share_plan_dependencies.py::test_share_plan_is_flag_gated_applicability",
  "tests/core/test_share_plan_dependencies.py::test_shot_conti_light_depends_on_share_plan",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_build_projection_card_content_index_carries_envelope",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_config_hash_changes_when_selector_flips",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_config_hash_drifts_on_prompt_version_change",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_default_off_returns_not_applicable",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_default_off_zero_provider_call_when_no_override",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_mock_provider_raise_marks_fp_failed_and_records_attempt",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_mock_provider_return_non_dict_records_attempt_count",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_mock_provider_via_override_records_one_attempt_per_fp",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_module_has_no_llm_image_vlm_imports",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_mutex_short_circuits_before_resolve_or_provider_call",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_not_applicable_when_bg_mode_off",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_not_applicable_when_dossier_disabled",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_not_applicable_when_geometry_disabled",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_not_applicable_when_v5_default",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_opt_in_with_mock_provider_increments_llm_count_once_per_fp",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_opt_in_with_no_llm_provider_runs_zero_llm_calls",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_partition_cp_absent_falls_back_to_geometry",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_partition_cp_present_drives_canonical_source",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_partition_cp_schema_mismatch_fails_closed",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_prompt_version_single_sot_cross_pin",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_real_provider_selector_changes_config_hash",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_resolve_llm_provider_defaults_to_none",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_resolve_llm_provider_returns_override_when_set",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_resolve_llm_provider_returns_real_helper_when_selector_on",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_schema_and_prompt_version_constants",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_selector_true_does_not_invoke_litellm_when_no_planner_inputs",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_step_default_no_card_cp_stamps_not_available",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_step_has_no_llm_image_vlm_imports",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_step_passes_projection_card_index_into_plan",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_step_registered_in_manifest_between_geometry_and_bg_prompt",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_step_registered_in_step_classes",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_step_stamps_partition_and_dag_fields_on_nodes_card_off",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_w19b3_w20b_both_active_fails_closed_before_planner",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_w19b3_w20b_only_shot_aware_active_passes_gate",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_w20e6b_nano_not_applicable_fp_does_not_increment_failed_count",
  "tests/core/test_shot_aware_bg_render_plan_step.py::test_zone_map_lookup_filters_synthetic_and_missing",
  "tests/core/test_shot_conti_light_lane.py::test_config_hash_folds_lane_prev_flag",
  "tests/core/test_shot_conti_light_lane.py::test_config_hash_lane_stamp_opt_in",
  "tests/core/test_shot_conti_light_lane.py::test_config_hash_mannequin_stamp_is_lane_opt_in",
  "tests/core/test_shot_conti_light_lane.py::test_config_hash_marker_contract_sensitivity",
  "tests/core/test_shot_conti_light_lane.py::test_config_hash_stamps_geometry_text_version",
  "tests/core/test_shot_conti_light_lane.py::test_execute_off_shape_byte_identical",
  "tests/core/test_shot_conti_light_lane.py::test_execute_on_adds_lane_conti_key",
  "tests/core/test_shot_conti_light_lane.py::test_exempt_tags_stay_out_of_config_hash",
  "tests/core/test_shot_conti_light_lane.py::test_group_parity_allows_no_shot_groups",
  "tests/core/test_shot_conti_light_lane.py::test_group_parity_failed_group_fail_closed",
  "tests/core/test_shot_conti_light_lane.py::test_group_parity_missing_group_fail_closed",
  "tests/core/test_shot_conti_light_lane.py::test_lane2_missing_seed_names_seed_step",
  "tests/core/test_shot_conti_light_lane.py::test_lane2_structure_plate_is_pending_policy_entry",
  "tests/core/test_shot_conti_light_lane.py::test_lane_base_asset_missing_fail_closed",
  "tests/core/test_shot_conti_light_lane.py::test_lane_camera_direction_fail_closed",
  "tests/core/test_shot_conti_light_lane.py::test_lane_entry_persists_resolved_packs",
  "tests/core/test_shot_conti_light_lane.py::test_lane_mannequin_producer_fail_closed",
  "tests/core/test_shot_conti_light_lane.py::test_lane_none_falls_through_to_general_pipe",
  "tests/core/test_shot_conti_light_lane.py::test_lane_noop_without_bindings",
  "tests/core/test_shot_conti_light_lane.py::test_lane_plan_cp_missing_fail_closed",
  "tests/core/test_shot_conti_light_lane.py::test_lane_revalidation_fail_closed",
  "tests/core/test_shot_conti_light_lane.py::test_lane_v5_fails_only_when_nothing_was_drawn",
  "tests/core/test_shot_conti_light_lane.py::test_lane_v5_marker_exhaustion_fails_without_sketch",
  "tests/core/test_shot_conti_light_lane.py::test_lane_v5_marker_exhaustion_picks_best_and_continues",
  "tests/core/test_shot_conti_light_lane.py::test_lane_v5_marker_reject_then_pass_feeds_sketch",
  "tests/core/test_shot_conti_light_lane.py::test_lane_v5_sidecar_reuse_zero_calls",
  "tests/core/test_shot_conti_light_lane.py::test_mannequin_guard_ignores_unselected_map_marker",
  "tests/core/test_shot_conti_light_lane.py::test_mannequin_guard_only_for_shots_that_bake_a_sketch",
  "tests/core/test_shot_conti_light_lane.py::test_mannequin_pack_requires_all_three_chain_flags",
  "tests/core/test_shot_conti_light_lane.py::test_operator_exempt_base_is_directory_goes_unpaid_not_raise",
  "tests/core/test_shot_conti_light_lane.py::test_operator_exempt_base_missing_goes_unpaid_not_422",
  "tests/core/test_shot_conti_light_lane.py::test_operator_exempt_force_still_attempts",
  "tests/core/test_shot_conti_light_lane.py::test_operator_exempt_short_circuits_paid_chain",
  "tests/core/test_shot_conti_light_lane.py::test_operator_exempt_zero_geometry_calls",
  "tests/core/test_shot_conti_light_lane.py::test_outdoor_frame_mode_gate_is_dormant",
  "tests/core/test_shot_conti_light_lane.py::test_spec_group_failure_not_laundered_as_skip",
  "tests/core/test_shot_conti_light_lane.py::test_stale_plan_missing_shot_coverage_fail_closed",
  "tests/core/test_shot_director_frame_visible_sot.py::test_deterministic_no_variant_path_function_removed",
  "tests/core/test_shot_director_frame_visible_sot.py::test_direct_shots_always_calls_llm_even_when_no_variants",
  "tests/core/test_shot_director_frame_visible_sot.py::test_direct_shots_ecu_lp_excluded_when_llm_says_so",
  "tests/core/test_shot_director_frame_visible_sot.py::test_direct_shots_llm_path_applies_gaze_defense_in_depth",
  "tests/core/test_shot_director_frame_visible_sot.py::test_direct_shots_llm_path_emits_gaze_diagnostic_without_mutation",
  "tests/core/test_shot_director_frame_visible_sot.py::test_direct_shots_wide_shot_keeps_lp_when_llm_says_so",
  "tests/core/test_shot_director_frame_visible_sot.py::test_resolve_scene_llm_function_renamed",
  "tests/core/test_shot_director_frame_visible_sot.py::test_resolve_scene_llm_no_synthesized_scene_ve_in_visible",
  "tests/core/test_shot_director_frame_visible_sot.py::test_resolve_scene_llm_raises_on_missing_shot_no_silent_fallback",
  "tests/core/test_shot_director_frame_visible_sot.py::test_resolve_scene_llm_synthetic_fallback_includes_variant_resolved_null",
  "tests/core/test_shot_director_offscreen.py::test_no_variant_audit_field_empty_when_no_exclusion",
  "tests/core/test_shot_director_offscreen.py::test_no_variant_legacy_fallback_when_no_name_match_at_all",
  "tests/core/test_shot_director_offscreen.py::test_no_variant_post_exclusion_empty_does_not_restore_scene_ve",
  "tests/core/test_shot_director_offscreen.py::test_no_variant_s12_shot13_body_part_possession_does_not_exclude_owner",
  "tests/core/test_shot_director_offscreen.py::test_no_variant_s12_shot4_excludes_directional_target",
  "tests/core/test_shot_director_offscreen.py::test_no_variant_s13_shot5_excludes_gaze_target",
  "tests/core/test_shot_director_offscreen.py::test_no_variant_s19_shot7_excludes_multiword_gaze_target",
  "tests/core/test_shot_director_offscreen.py::test_no_variant_s27_shot11_control_no_exclusion",
  "tests/core/test_shot_director_offscreen.py::test_variant_path_synthetic_fallback_includes_variant_resolved_null",
  "tests/core/test_shot_director_schema_version_sot.py::test_shot_director_manifest_schema_version_matches_step",
  "tests/core/test_shot_director_schema_version_sot.py::test_shot_director_prompt_version_matches_pack_dir",
  "tests/core/test_shot_essence_extraction.py::test_applicability_validator_off",
  "tests/core/test_shot_essence_extraction.py::test_applicability_validator_on",
  "tests/core/test_shot_essence_extraction.py::test_check_applicability_off_returns_false",
  "tests/core/test_shot_essence_extraction.py::test_check_applicability_on_calls_super",
  "tests/core/test_shot_essence_extraction.py::test_execute_skips_scenes_missing_from_shot_selection",
  "tests/core/test_shot_essence_extraction.py::test_merge_with_input_keys_handles_missing_extra_duplicate",
  "tests/core/test_shot_essence_extraction.py::test_pipeline_steps_label",
  "tests/core/test_shot_essence_extraction.py::test_prompt_and_schema_load",
  "tests/core/test_shot_essence_extraction.py::test_prompt_v2_loaded_with_strengthened_guidance",
  "tests/core/test_shot_essence_extraction.py::test_resolve_applicability_off",
  "tests/core/test_shot_essence_extraction.py::test_settings_toggle_default_false",
  "tests/core/test_shot_essence_extraction.py::test_step_registered_in_classes",
  "tests/core/test_shot_essence_extraction.py::test_step_registered_in_manifest",
  "tests/core/test_shot_projection_card_step.py::test_camera_rec_missing_blocks_card_no_provider_call",
  "tests/core/test_shot_projection_card_step.py::test_card_envelope_has_provenance_and_registry",
  "tests/core/test_shot_projection_card_step.py::test_default_off_returns_not_applicable",
  "tests/core/test_shot_projection_card_step.py::test_dossier_in_source_hashes",
  "tests/core/test_shot_projection_card_step.py::test_dossier_missing_blocks_card_no_provider",
  "tests/core/test_shot_projection_card_step.py::test_envelope_records_resolved_pack_model_provider",
  "tests/core/test_shot_projection_card_step.py::test_fp_render_missing_blocks_card_no_provider",
  "tests/core/test_shot_projection_card_step.py::test_geometry_missing_blocks_card_no_provider",
  "tests/core/test_shot_projection_card_step.py::test_injected_bad_provider_fails_closed_per_card",
  "tests/core/test_shot_projection_card_step.py::test_injected_provider_counted_and_validated",
  "tests/core/test_shot_projection_card_step.py::test_module_constants_locked",
  "tests/core/test_shot_projection_card_step.py::test_not_applicable_when_background_mode_off",
  "tests/core/test_shot_projection_card_step.py::test_not_applicable_when_dossier_disabled",
  "tests/core/test_shot_projection_card_step.py::test_not_applicable_when_no_targets",
  "tests/core/test_shot_projection_card_step.py::test_provider_receives_shot_intent_and_scene",
  "tests/core/test_shot_projection_card_step.py::test_semantic_gate_state_carried_when_present",
  "tests/core/test_shot_projection_card_step.py::test_shot_context_in_source_hashes",
  "tests/core/test_shot_projection_card_step.py::test_substrate_missing_when_no_fp_render",
  "tests/core/test_shot_projection_card_step.py::test_synthetic_cards_never_auto_pass",
  "tests/core/test_shot_projection_card_step.py::test_synthetic_path_produces_cards_no_real_vlm",
  "tests/core/test_shot_validator.py::test_validator_falls_back_to_gpt_when_gemini_blocked",
  "tests/core/test_shot_validator.py::test_validator_keeps_original_for_missing_shot_index_in_llm_response",
  "tests/core/test_shot_validator.py::test_validator_loads_scene_text_from_segments",
  "tests/core/test_shot_validator.py::test_validator_passes_through_empty_scene",
  "tests/core/test_shot_validator.py::test_validator_preserves_original_on_llm_failure",
  "tests/core/test_shot_validator.py::test_validator_preserves_original_when_all_three_fail",
  "tests/core/test_shot_validator.py::test_validator_preserves_shot_validator_config_keys_in_fallback",
  "tests/core/test_shot_validator.py::test_validator_preserves_unchanged_shot",
  "tests/core/test_shot_validator.py::test_validator_raises_when_no_shot_extract",
  "tests/core/test_shot_validator.py::test_validator_raises_when_scene_index_is_none",
  "tests/core/test_shot_validator.py::test_validator_retries_on_empty_response",
  "tests/core/test_shot_validator.py::test_validator_retries_on_exception",
  "tests/core/test_shot_validator.py::test_validator_retries_same_on_transient_exception",
  "tests/core/test_shot_validator.py::test_validator_returns_fan_out_counts",
  "tests/core/test_shot_validator.py::test_validator_rewrites_and_backs_up_original",
  "tests/core/test_shot_validator.py::test_validator_skips_empty_revision",
  "tests/core/test_shot_validator.py::test_validator_skips_retry_on_empty_response_jumps_to_gpt",
  "tests/core/test_shot_validator.py::test_validator_skips_retry_same_when_safety_keyword_in_exception",
  "tests/core/test_shot_validator.py::test_validator_skips_when_revised_equals_original",
  "tests/core/test_shot_validator.py::test_validator_sorts_scenes_by_index",
  "tests/core/test_shot_validator_v4.py::test_assert_no_failed_scenes_bypasses_when_allow_flag_true",
  "tests/core/test_shot_validator_v4.py::test_assert_no_failed_scenes_handles_none_project_config",
  "tests/core/test_shot_validator_v4.py::test_assert_no_failed_scenes_passes_when_cp_is_none",
  "tests/core/test_shot_validator_v4.py::test_assert_no_failed_scenes_passes_when_no_failed_marker",
  "tests/core/test_shot_validator_v4.py::test_assert_no_failed_scenes_raises_app_error_when_any_scene_failed",
  "tests/core/test_shot_validator_v4.py::test_assert_no_failed_scenes_rejects_truthy_string_override",
  "tests/core/test_shot_validator_v4.py::test_assert_no_failed_scenes_respects_explicit_operator_override",
  "tests/core/test_shot_validator_v4.py::test_background_master_plan_step_blocks_on_failed_validator",
  "tests/core/test_shot_validator_v4.py::test_entity_all_character_step_blocks_on_failed_validator",
  "tests/core/test_shot_validator_v4.py::test_entity_blocks_built_from_scene_director",
  "tests/core/test_shot_validator_v4.py::test_entity_blocks_empty_when_no_director_cp",
  "tests/core/test_shot_validator_v4.py::test_entity_blocks_filters_non_character_present_entities",
  "tests/core/test_shot_validator_v4.py::test_entity_blocks_omit_scene_with_no_present_entity_ids",
  "tests/core/test_shot_validator_v4.py::test_entity_blocks_omit_when_db_lookup_returns_empty",
  "tests/core/test_shot_validator_v4.py::test_entity_blocks_universal_when_no_director_cp_but_pool_present",
  "tests/core/test_shot_validator_v4.py::test_entity_blocks_uses_entity_merge_cp_as_primary_source",
  "tests/core/test_shot_validator_v4.py::test_entity_blocks_warns_when_pool_fully_empty",
  "tests/core/test_shot_validator_v4.py::test_filter_character_ids_coerces_int_to_string_via_base_check",
  "tests/core/test_shot_validator_v4.py::test_filter_character_ids_collapses_composite_to_base",
  "tests/core/test_shot_validator_v4.py::test_filter_character_ids_dedupes_preserve_order",
  "tests/core/test_shot_validator_v4.py::test_filter_character_ids_documents_digit_count_acceptance",
  "tests/core/test_shot_validator_v4.py::test_filter_character_ids_drops_non_C_pattern",
  "tests/core/test_shot_validator_v4.py::test_filter_character_ids_drops_none_and_empty",
  "tests/core/test_shot_validator_v4.py::test_filter_character_ids_pool_constraint_when_pool_present",
  "tests/core/test_shot_validator_v4.py::test_filter_character_ids_pool_skipped_when_pool_empty",
  "tests/core/test_shot_validator_v4.py::test_filter_character_ids_rejects_partial_trailing_O",
  "tests/core/test_shot_validator_v4.py::test_filter_character_ids_rejects_whitespace_and_special_chars",
  "tests/core/test_shot_validator_v4.py::test_scene_camera_flow_step_blocks_on_failed_validator",
  "tests/core/test_shot_validator_v4.py::test_scene_context_loader_blocks_on_failed_validator",
  "tests/core/test_shot_validator_v4.py::test_shot_dependency_step_blocks_on_failed_validator",
  "tests/core/test_shot_validator_v4.py::test_shot_dependency_t2i_step_blocks_on_failed_validator",
  "tests/core/test_shot_validator_v4.py::test_shot_director_step_blocks_on_failed_validator",
  "tests/core/test_shot_validator_v4.py::test_shot_selection_step_blocks_on_failed_validator",
  "tests/core/test_shot_validator_v4.py::test_shot_selection_step_bypasses_on_allow_failed_validator",
  "tests/core/test_shot_validator_v4.py::test_shot_selection_step_respects_explicit_operator_override",
  "tests/core/test_shot_validator_v4.py::test_shot_staging_step_blocks_on_failed_validator",
  "tests/core/test_shot_validator_v4.py::test_user_prompt_includes_entity_block_when_director_cp_present",
  "tests/core/test_shot_validator_v4.py::test_user_prompt_includes_universal_pool_block_when_only_entity_merge_cp",
  "tests/core/test_shot_validator_v4.py::test_user_prompt_omits_entity_block_when_no_director_cp",
  "tests/core/test_shot_validator_v4.py::test_validator_coerces_character_ids_to_string",
  "tests/core/test_shot_validator_v4.py::test_validator_marks_failed_scene_with_metadata",
  "tests/core/test_shot_validator_v4.py::test_validator_merges_character_ids_when_changed_false",
  "tests/core/test_shot_validator_v4.py::test_validator_merges_character_ids_when_changed_true",
  "tests/core/test_shot_validator_v4.py::test_validator_preserves_partial_success_alongside_failure",
  "tests/core/test_shot_validator_v4.py::test_validator_skips_merge_when_llm_omits_character_fields",
  "tests/core/test_shot_validator_v4.py::test_validator_strict_dedupes_character_ids",
  "tests/core/test_shot_validator_v4.py::test_validator_strict_drops_malformed_character_ids",
  "tests/core/test_shot_validator_v4.py::test_validator_strict_drops_out_of_pool_character_ids",
  "tests/core/test_shot_validator_v4.py::test_validator_truncates_failure_reason_to_200_chars",
  "tests/core/test_shot_visibility_helpers.py::test_gaze_exclusion_empty_input",
  "tests/core/test_shot_visibility_helpers.py::test_gaze_exclusion_no_framing_noun_no_match",
  "tests/core/test_shot_visibility_helpers.py::test_gaze_exclusion_no_gaze_verb_no_match",
  "tests/core/test_shot_visibility_helpers.py::test_gaze_exclusion_s12_shot13_body_part_possession_not_target",
  "tests/core/test_shot_visibility_helpers.py::test_gaze_exclusion_s12_shot4_directional_phrase_close_up",
  "tests/core/test_shot_visibility_helpers.py::test_gaze_exclusion_s13_shot5_close_up_with_gaze_target",
  "tests/core/test_shot_visibility_helpers.py::test_gaze_exclusion_s19_shot7_multiword_target",
  "tests/core/test_shot_visibility_helpers.py::test_gaze_exclusion_s27_shot11_no_gaze_verb_no_exclusion",
  "tests/core/test_shot_visibility_helpers.py::test_gaze_exclusion_short_name_skipped",
  "tests/core/test_shot_visibility_helpers.py::test_gaze_exclusion_subject_protected_when_also_in_target_span",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_empty_input",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_gaze_target_only_when_offscreen_phrase_present",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_in_frame_speaker_exempt_does_not_mask_true_drift",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_in_frame_speaker_looking_at_off_camera_target_not_in_visible",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_korean_phrase_화면밖",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_no_character_angles_path2_behavior_unchanged",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_no_offscreen_phrase_no_drift",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_proximity_window_far_name_no_drift",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_s13_shot5_remains_off_camera",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_s19_real_canary_without_character_angles_misses",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_s19_shot7_off_screen_english",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_s19_shot7_real_canary_via_gaze_target",
  "tests/core/test_shot_visibility_helpers.py::test_offscreen_drift_s27_shot11_offscreen_target_not_in_visible_no_drift",
  "tests/core/test_step_contract_isolation.py::test_step_runner_does_not_import_STEP_MANIFEST_dict",
  "tests/core/test_step_contract_isolation.py::test_steps_route_does_not_import_STEP_MANIFEST_dict",
  "tests/core/test_step_manifest_schema_version_sync.py::test_background_master_plan_schema_version_matches_manifest",
  "tests/core/test_step_manifest_schema_version_sync.py::test_base_location_dossier_schema_version_matches_manifest",
  "tests/core/test_step_manifest_schema_version_sync.py::test_bg_space_partition_schema_version_matches_manifest",
  "tests/core/test_step_manifest_schema_version_sync.py::test_floor_plan_geometry_readback_schema_version_matches_manifest",
  "tests/core/test_step_manifest_schema_version_sync.py::test_floor_plan_light_sidecar_schema_version_matches_manifest",
  "tests/core/test_step_manifest_schema_version_sync.py::test_outdoor_structure_form_reference_schema_version_matches_manifest",
  "tests/core/test_step_manifest_schema_version_sync.py::test_shot_aware_bg_render_plan_schema_version_matches_manifest",
  "tests/core/test_step_runner_consumes_downstream.py::test_consumed_downstream_file_preserved",
  "tests/core/test_step_runner_consumes_downstream.py::test_delete_checkpoints_false_preserves_all",
  "tests/core/test_step_runner_consumes_downstream.py::test_empty_consumes_list_deletes_all",
  "tests/core/test_step_runner_consumes_downstream.py::test_no_consumes_declaration_deletes_all",
  "tests/core/test_step_runner_consumes_downstream.py::test_no_downstream_no_commit",
  "tests/core/test_step_runner_consumes_downstream.py::test_target_step_id_override_reads_from_ref",
  "tests/core/test_step_runner_editorial_cascade.py::test_editorial_cascade_when_flag_true",
  "tests/core/test_step_runner_editorial_cascade.py::test_editorial_no_cascade_when_flag_absent",
  "tests/core/test_step_runner_editorial_cascade.py::test_editorial_no_cascade_when_flag_false",
  "tests/core/test_step_runner_editorial_cascade.py::test_editorial_no_cascade_when_modifies_checkpoints_empty",
  "tests/core/test_step_runner_preserve_flag.py::test_no_downstream_no_commit",
  "tests/core/test_step_runner_preserve_flag.py::test_preserve_flag_false_deletes_file",
  "tests/core/test_step_runner_preserve_flag.py::test_preserve_flagged_downstream_keeps_file",
  "tests/core/test_step_runner_preserve_flag.py::test_preserve_respects_delete_checkpoints_false",
  "tests/core/test_step_runner_preserve_flag.py::test_target_step_id_override",
  "tests/core/test_step_runner_resilience.py::test_base_cleanup_artifacts_returns_noop",
  "tests/core/test_step_runner_resilience.py::test_base_verify_completion_returns_clean",
  "tests/core/test_step_runner_resilience.py::test_cleanup_artifacts_exception_marks_failed",
  "tests/core/test_step_runner_resilience.py::test_completed_resets_recovery_counter",
  "tests/core/test_step_runner_resilience.py::test_exit_verify_fail_marks_partial",
  "tests/core/test_step_runner_resilience.py::test_exit_verify_pass_completes",
  "tests/core/test_step_runner_resilience.py::test_force_calls_cleanup_artifacts",
  "tests/core/test_step_runner_resilience.py::test_force_cleared_marker_with_auto_rerun",
  "tests/core/test_step_runner_resilience.py::test_full_cycle_entry_exit_recovery",
  "tests/core/test_step_runner_resilience.py::test_get_recovery_count_no_row_returns_zero",
  "tests/core/test_step_runner_resilience.py::test_mask_sensitive_keys_basic",
  "tests/core/test_step_runner_resilience.py::test_mask_sensitive_keys_empty_input",
  "tests/core/test_step_runner_resilience.py::test_record_recovery_increments_count",
  "tests/core/test_step_runner_resilience.py::test_record_recovery_repeats",
  "tests/core/test_step_runner_resilience.py::test_recovery_exhausted_after_3_attempts",
  "tests/core/test_step_runner_resilience.py::test_reset_recovery_counter",
  "tests/core/test_step_runner_resilience.py::test_resume_non_completed_status_force_like[failed]",
  "tests/core/test_step_runner_resilience.py::test_resume_non_completed_status_force_like[partial]",
  "tests/core/test_step_runner_resilience.py::test_resume_non_completed_status_force_like[pending]",
  "tests/core/test_step_runner_resilience.py::test_resume_non_completed_status_force_like[running]",
  "tests/core/test_step_runner_resilience.py::test_resume_non_completed_status_force_like[stale]",
  "tests/core/test_step_runner_resilience.py::test_resume_non_completed_status_rerun_self[failed]",
  "tests/core/test_step_runner_resilience.py::test_resume_non_completed_status_rerun_self[partial]",
  "tests/core/test_step_runner_resilience.py::test_resume_non_completed_status_rerun_self[pending]",
  "tests/core/test_step_runner_resilience.py::test_resume_non_completed_status_rerun_self[stale]",
  "tests/core/test_step_runner_resilience.py::test_resume_with_cp_and_verify_pass_skips",
  "tests/core/test_step_runner_resilience.py::test_resume_with_cp_none_triggers_force",
  "tests/core/test_step_runner_resilience.py::test_resume_with_verify_fail_triggers_force",
  "tests/core/test_step_runner_resilience.py::test_resume_with_verify_fail_triggers_rerun_self",
  "tests/core/test_step_runner_resilience.py::test_safe_verify_completion_catches_exception",
  "tests/core/test_step_runner_resilience.py::test_safe_verify_completion_raises_on_unexpected_exception",
  "tests/core/test_step_runner_resilience.py::test_save_checkpoint_preserves_explicit_snapshot",
  "tests/core/test_step_runner_resilience.py::test_save_checkpoint_records_project_config_snapshot",
  "tests/core/test_step_runner_resilience.py::test_진행률이_끝에_닿아도_성공_주행이_예외로_끝나지_않는다",
  "tests/core/test_step_runner_resilience.py::test_체크포인트_저장이_실패하면_completed_로_남지_않는다",
  "tests/core/test_structure_pipeline_policy.py::test_default_is_legacy_and_everything_off",
  "tests/core/test_structure_pipeline_policy.py::test_full_stack_on_is_accepted",
  "tests/core/test_structure_pipeline_policy.py::test_hash_payload_carries_policy_version_and_all_three",
  "tests/core/test_structure_pipeline_policy.py::test_place_mark_requires_skeleton_look_recipe",
  "tests/core/test_structure_pipeline_policy.py::test_policy_is_frozen",
  "tests/core/test_structure_pipeline_policy.py::test_skeleton_look_requires_outdoor_lane_pipe",
  "tests/core/test_structure_pipeline_policy.py::test_skeleton_look_requires_variant_authoring",
  "tests/core/test_structure_pipeline_policy.py::test_structure_critique_requires_skeleton_look_recipe",
  "tests/core/test_structure_pipeline_policy.py::test_unknown_value_is_rejected_not_coerced",
  "tests/core/test_subject_reference_policy.py::test_downgrade_injects_generic_for_missing_entry",
  "tests/core/test_subject_reference_policy.py::test_downgrade_noop_when_no_text_only",
  "tests/core/test_subject_reference_policy.py::test_downgrade_overrides_id_and_outlook_required",
  "tests/core/test_subject_reference_policy.py::test_downgrade_passthrough_non_list",
  "tests/core/test_subject_reference_policy.py::test_downgrade_preserves_base_id_required",
  "tests/core/test_visible_entities_validator.py::TestPro13PropPidInPrompt::test_pro13_multi_required_props_all_must_appear",
  "tests/core/test_visible_entities_validator.py::TestPro13PropPidInPrompt::test_pro13_no_required_prop_skips_check",
  "tests/core/test_visible_entities_validator.py::TestPro13PropPidInPrompt::test_pro13_prop_pid_in_variation_passes",
  "tests/core/test_visible_entities_validator.py::TestPro13PropPidInPrompt::test_pro13_prop_pid_missing_from_all_variations_fails",
  "tests/core/test_visible_entities_validator.py::TestPro13PropPidInPrompt::test_pro13_word_boundary_blocks_substring_false_positive",
  "tests/core/test_visible_entities_validator.py::test_apperror_constructor_signature_module_source",
  "tests/core/test_visible_entities_validator.py::test_area_c_consumer_applies_false_falls_through",
  "tests/core/test_visible_entities_validator.py::test_area_c_consumer_applies_none_raises",
  "tests/core/test_visible_entities_validator.py::test_area_c_consumer_applies_string_raises",
  "tests/core/test_visible_entities_validator.py::test_area_c_consumer_applies_true_returns_exempt",
  "tests/core/test_visible_entities_validator.py::test_area_c_consumer_field_absent_falls_through",
  "tests/core/test_visible_entities_validator.py::test_area_c_consumer_no_substring_match_when_applies_false",
  "tests/core/test_visible_entities_validator.py::test_area_c_consumer_reproduction_surface_rule_non_dict_raises",
  "tests/core/test_visible_entities_validator.py::test_build_entity_traits_block_fail_fast_on_missing_short_id",
  "tests/core/test_visible_entities_validator.py::test_build_entity_traits_block_handles_outlook_composite_id",
  "tests/core/test_visible_entities_validator.py::test_build_entity_traits_block_includes_all_visible_with_traits",
  "tests/core/test_visible_entities_validator.py::test_build_entity_traits_block_returns_empty_when_no_traits",
  "tests/core/test_visible_entities_validator.py::test_build_entity_traits_block_returns_empty_when_no_visible_chars",
  "tests/core/test_visible_entities_validator.py::test_no_scenario_descriptor_constants_in_module",
  "tests/core/test_visible_entities_validator.py::test_partial_focus_render_strategy_still_exempts_forward",
  "tests/core/test_visible_entities_validator.py::test_reproduction_surface_rule_applies_still_exempts_forward",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_reverse_enforced_even_when_exempt",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_background_ref_id_empty_string",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_background_ref_id_mismatches_binding",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_background_ref_id_non_string",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_background_ref_policy_missing",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_background_ref_policy_not_required",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_background_ref_present_but_bg_id_none",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_background_ref_present_but_binding_missing",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_background_ref_present_but_mode_not_applicable",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_background_ref_present_but_mode_off",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_background_ref_present_but_mode_skipped_close",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_binding_ref_attached_but_bg_id_none_and_no_ref",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_binding_ref_attached_but_no_required_background_ref",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_character_kind_id_format_invalid",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_composite_id_malformed_format",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_entity_name_anchored_to_other_id",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_entity_name_in_separate_sentence",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_entity_name_outside_window",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_id_policy_character_id_missing_from_visible",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_no_exemption_matches",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_outlook_id_uuid_no_composite",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_prop_kind_id_format_invalid",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_render_strategy_missing_and_no_keyword",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_required_ref_kind_unknown",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_required_refs_id_malformed_format",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_required_refs_id_missing_from_visible",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_required_refs_id_non_string",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_used_id_not_in_visible",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_when_visible_base_missing_in_prompt",
  "tests/core/test_visible_entities_validator.py::test_validate_fail_with_legacy_base_id_shape",
  "tests/core/test_visible_entities_validator.py::test_validate_no_bypass_for_failed_validator_status",
  "tests/core/test_visible_entities_validator.py::test_validate_pass_background_ref_attached_with_matching_bg_id",
  "tests/core/test_visible_entities_validator.py::test_validate_pass_location_kind_with_valid_l_format",
  "tests/core/test_visible_entities_validator.py::test_validate_pass_prop_kind_with_valid_p_format",
  "tests/core/test_visible_entities_validator.py::test_validate_pass_when_all_visible_ids_in_prompt",
  "tests/core/test_visible_entities_validator.py::test_validate_pass_when_body_part_trigger_phrase_in_prompt",
  "tests/core/test_visible_entities_validator.py::test_validate_pass_when_entity_name_anchored_with_specific_id",
  "tests/core/test_visible_entities_validator.py::test_validate_pass_when_outlook_uses_composite_id_field",
  "tests/core/test_visible_entities_validator.py::test_validate_pass_when_render_strategy_mode_is_partial_focus",
  "tests/core/test_visible_entities_validator.py::test_validate_pass_when_reproduction_surface_keyword_in_prompt",
  "tests/core/test_visible_entities_validator.py::test_validate_pass_when_reproduction_surface_rule_applies",
  "tests/core/test_visible_entities_validator.py::test_validate_required_refs_dict_shape_robust",
  "tests/core/test_visible_entities_validator.py::test_validator_base_id_required_bare_base_pass",
  "tests/core/test_visible_entities_validator.py::test_validator_base_id_required_base_present_pass",
  "tests/core/test_visible_entities_validator.py::test_validator_base_id_required_outlook_forbidden_fail",
  "tests/core/test_visible_entities_validator.py::test_validator_card_field_missing_fail_fast",
  "tests/core/test_visible_entities_validator.py::test_validator_generic_descriptor_allowed_bare_base_fail",
  "tests/core/test_visible_entities_validator.py::test_validator_generic_descriptor_allowed_no_id_pass",
  "tests/core/test_visible_entities_validator.py::test_validator_generic_descriptor_allowed_outlook_present_fail",
  "tests/core/test_visible_entities_validator.py::test_validator_id_and_outlook_required_base_missing_fail",
  "tests/core/test_visible_entities_validator.py::test_validator_id_and_outlook_required_both_present_pass",
  "tests/core/test_visible_entities_validator.py::test_validator_id_and_outlook_required_outlook_missing_fail",
  "tests/core/test_visible_entities_validator.py::test_validator_per_subject_exception_does_not_leak",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_korean_offscreen_phrase",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_korean_offscreen_phrase_proximity_warns",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_lp_entities_not_checked",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_no_offscreen_phrase_no_error",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_s13_shot5_drift_raises",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_s13_shot5_proximity_drift_warns",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_s19_shot7_drift_raises",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_s19_shot7_drift_raises_via_gaze_target",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_s27_shot11_offscreen_target_not_in_visible_no_error",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_skips_when_director_ve_missing",
  "tests/core/test_visible_staging_drift_guard.py::test_guard_skips_when_staging_missing",
  "tests/grounding/test_a0_candidate_ledger.py::TestACandidateThatWasTriedAndFailedIsNotPromoted::test_a_candidate_nobody_called_is_still_promoted",
  "tests/grounding/test_a0_candidate_ledger.py::TestACandidateThatWasTriedAndFailedIsNotPromoted::test_an_ambiguous_candidate_is_unresolved_not_promoted",
  "tests/grounding/test_a0_candidate_ledger.py::TestACandidateThatWasTriedAndFailedIsNotPromoted::test_the_five_sets_never_overlap",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_a_base_owner_no_entity_wants_is_promoted_not_invisible",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_a_candidate_no_entity_wants_is_unmatched_not_invisible",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_a_matched_candidate_is_carried",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_a_prop_still_binds_to_a_prop_by_name",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_an_owner_with_no_entity_lane_is_deferred_not_unmatched",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_location_part_is_promoted_when_it_misses",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_location_part_is_tried_but_deferred_when_it_misses",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_location_part_is_tried_not_deferred",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_location_part_never_binds_to_a_prop_by_name",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_location_part_still_binds_when_it_matches",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_no_candidates_is_an_empty_ledger_not_a_missing_one",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_the_deferred_rule_reads_both_tables",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_the_ledger_totals_the_candidates",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_the_sum_is_enforced_not_just_reported",
  "tests/grounding/test_a0_candidate_ledger.py::TestEveryCandidateLandsSomewhere::test_two_entities_wanting_one_candidate_is_contested",
  "tests/grounding/test_a0_candidate_ledger.py::TestPromotionMustReachTheCompletenessGate::test_a_promoted_candidate_is_not_counted_missing",
  "tests/grounding/test_a0_candidate_ledger.py::TestPromotionMustReachTheCompletenessGate::test_an_empty_promotion_list_changes_nothing[None]",
  "tests/grounding/test_a0_candidate_ledger.py::TestPromotionMustReachTheCompletenessGate::test_an_empty_promotion_list_changes_nothing[bad1]",
  "tests/grounding/test_a0_candidate_ledger.py::TestPromotionMustReachTheCompletenessGate::test_an_empty_promotion_list_changes_nothing[bad2]",
  "tests/grounding/test_a0_candidate_ledger.py::TestPromotionMustReachTheCompletenessGate::test_it_is_explicit_not_inferred",
  "tests/grounding/test_a0_candidate_ledger.py::TestPromotionMustReachTheCompletenessGate::test_the_plan_step_passes_the_ledger_ids",
  "tests/grounding/test_a0_candidate_ledger.py::TestPromotionMustReachTheCompletenessGate::test_without_the_promoted_ids_it_is_still_missing",
  "tests/grounding/test_a0_candidate_ledger.py::TestTheLedgerIsNotAReplacementForCarryReasons::test_carry_reasons_still_counts_entities",
  "tests/grounding/test_a0_candidate_ledger.py::TestTheRealTwentyThreeCandidatesAreBurnedNotJustClaimed::test_all_twenty_three_land_somewhere",
  "tests/grounding/test_a0_candidate_ledger.py::TestTheRealTwentyThreeCandidatesAreBurnedNotJustClaimed::test_the_fixture_names_where_it_came_from",
  "tests/grounding/test_a0_candidate_ledger.py::TestTheRealTwentyThreeCandidatesAreBurnedNotJustClaimed::test_the_manuscript_quotes_survive_into_the_subjects",
  "tests/grounding/test_a0_candidate_ledger.py::TestTheRealTwentyThreeCandidatesAreBurnedNotJustClaimed::test_the_measured_split_is_locked",
  "tests/grounding/test_a0_candidate_ledger.py::TestTheRealTwentyThreeCandidatesAreBurnedNotJustClaimed::test_the_promoted_ones_clear_the_completeness_gate",
  "tests/grounding/test_a_cancelled_target_is_a_retry_debt_not_a_seal.py::TestANewStopRequestDoesNotWriteACompletedCheckpoint::test_a_cancel_inside_the_central_run_propagates_out_of_the_step",
  "tests/grounding/test_a_cancelled_target_is_a_retry_debt_not_a_seal.py::TestTheJournalReplaysOkAndRebuysIncomplete::test_ok_entries_replay_and_incomplete_entries_rebuy",
  "tests/grounding/test_a_cancelled_target_is_a_retry_debt_not_a_seal.py::TestThePendingSplit::test_candidates_mean_rejudge_and_none_means_research_retry",
  "tests/grounding/test_a_cancelled_target_is_a_retry_debt_not_a_seal.py::TestThePendingSplit::test_terminal_and_chosen_and_unbought_rows_are_not_debt",
  "tests/grounding/test_a_cancelled_target_is_a_retry_debt_not_a_seal.py::TestTheProductionResumeReopensTheSealedCheckpoint::test_a_clean_cp_is_still_skipped",
  "tests/grounding/test_a_cancelled_target_is_a_retry_debt_not_a_seal.py::TestTheProductionResumeReopensTheSealedCheckpoint::test_a_completed_cp_with_nine_candidateless_retryable_rows_is_rerun_self",
  "tests/grounding/test_a_cancelled_target_is_a_retry_debt_not_a_seal.py::TestTheSealIsRefused::test_central_wrap_counts_both_debts_in_failed_count",
  "tests/grounding/test_a_cancelled_target_is_a_retry_debt_not_a_seal.py::TestTheSealIsRefused::test_verify_completion_reports_the_debt_without_asking_a_human",
  "tests/grounding/test_a_forced_step_is_still_in_the_plan.py::TestADebtIsReopenedWithANormalCap::test_a_drifted_step_is_counted_once_as_forced_not_as_debt",
  "tests/grounding/test_a_forced_step_is_still_in_the_plan.py::TestADebtIsReopenedWithANormalCap::test_plan_reentry_gives_a_completed_step_with_debt_a_normal_cap",
  "tests/grounding/test_a_forced_step_is_still_in_the_plan.py::TestADebtIsReopenedWithANormalCap::test_the_dry_lists_a_completed_step_whose_runner_says_debt",
  "tests/grounding/test_a_forced_step_is_still_in_the_plan.py::TestTheOutboundDoorsFollowACodeReopen::test_a_completed_central_step_reopened_for_debt_gets_the_table_doors",
  "tests/grounding/test_a_forced_step_is_still_in_the_plan.py::TestTheOutboundDoorsFollowACodeReopen::test_run_recomputes_the_doors_after_the_reopened_lists",
  "tests/grounding/test_a_forced_step_is_still_in_the_plan.py::test_a_completed_step_whose_hash_drifts_is_reported_as_forced",
  "tests/grounding/test_a_forced_step_is_still_in_the_plan.py::test_the_dry_plan_reads_the_forced_list_before_the_done_set_is_used",
  "tests/grounding/test_a_forced_step_is_still_in_the_plan.py::test_without_an_approved_transition_a_drifted_step_is_not_forced",
  "tests/grounding/test_a_forced_step_shows_what_it_would_wipe.py::TestATransitionBindsOnlyRealAdoptionEvents::test_an_unknown_adoption_id_stops",
  "tests/grounding/test_a_forced_step_shows_what_it_would_wipe.py::TestDriftIsSplitByTheTransitionsAck::test_every_drifted_completed_step_is_forced_there_is_no_ack",
  "tests/grounding/test_a_forced_step_shows_what_it_would_wipe.py::TestDriftIsSplitByTheTransitionsAck::test_the_old_name_still_answers_forced_only",
  "tests/grounding/test_a_forced_step_shows_what_it_would_wipe.py::TestTheDryShowsTheCascade::test_it_lists_the_completed_downstream_of_each_forced_step",
  "tests/grounding/test_a_forced_step_shows_what_it_would_wipe.py::TestTheDryShowsTheCascade::test_no_forced_step_no_listing",
  "tests/grounding/test_a_person_settles_an_uncertain_purchase.py::test_a_settled_but_not_retried_line_survives_reload_as_not_sent",
  "tests/grounding/test_a_person_settles_an_uncertain_purchase.py::test_rejudge_rows_skips_an_uncertain_replay_instead_of_dying",
  "tests/grounding/test_a_person_settles_an_uncertain_purchase.py::test_settling_as_bought_is_refused_and_non_uncertain_lines_are_refused",
  "tests/grounding/test_a_person_settles_an_uncertain_purchase.py::test_settling_as_not_sent_frees_the_slot_and_keeps_the_line",
  "tests/grounding/test_acquisition_adapter.py::TestItFitsWhatAcquireOneExpects::test_the_target_keys_match_the_consumer",
  "tests/grounding/test_acquisition_adapter.py::TestNothingVanishesAndNothingIsBought::test_a_row_without_search_material_is_recorded_not_dropped",
  "tests/grounding/test_acquisition_adapter.py::TestNothingVanishesAndNothingIsBought::test_nothing_wires_it_yet",
  "tests/grounding/test_acquisition_adapter.py::TestNothingVanishesAndNothingIsBought::test_the_evidence_rides_along_for_the_review_screen",
  "tests/grounding/test_acquisition_adapter.py::TestNothingVanishesAndNothingIsBought::test_the_module_buys_nothing",
  "tests/grounding/test_acquisition_adapter.py::TestTheAdapterKeepsTheTwoGatesItself::test_a_bound_obligation_passes",
  "tests/grounding/test_acquisition_adapter.py::TestTheAdapterKeepsTheTwoGatesItself::test_a_non_obligation_is_refused[capped]",
  "tests/grounding/test_acquisition_adapter.py::TestTheAdapterKeepsTheTwoGatesItself::test_a_non_obligation_is_refused[not_target]",
  "tests/grounding/test_acquisition_adapter.py::TestTheAdapterKeepsTheTwoGatesItself::test_a_non_obligation_is_refused[unresolved]",
  "tests/grounding/test_acquisition_adapter.py::TestTheAdapterKeepsTheTwoGatesItself::test_an_unbound_row_is_refused",
  "tests/grounding/test_acquisition_adapter.py::TestTheAdapterKeepsTheTwoGatesItself::test_nothing_is_lost_in_the_accounting",
  "tests/grounding/test_acquisition_adapter.py::TestTheAdapterKeepsTheTwoGatesItself::test_the_verdict_names_come_from_the_one_place",
  "tests/grounding/test_acquisition_adapter.py::TestTheCentralDoorIsOwnerNeutral::test_the_adapter_does_not_import_the_outlook_binder",
  "tests/grounding/test_acquisition_adapter.py::TestTheCentralDoorIsOwnerNeutral::test_the_ledger_contract_lives_in_exactly_one_module",
  "tests/grounding/test_acquisition_adapter.py::TestTheFieldsHaveAProducer::test_every_payload_field_is_in_the_chunk_schema",
  "tests/grounding/test_acquisition_adapter.py::TestTheFieldsHaveAProducer::test_the_two_split_tables_are_covered_too",
  "tests/grounding/test_acquisition_adapter.py::TestTheOneDoorFromLedgerToBuyer::test_an_unbound_obligation_auto_completes",
  "tests/grounding/test_acquisition_adapter.py::TestTheOneDoorFromLedgerToBuyer::test_every_ledger_row_is_accounted_for",
  "tests/grounding/test_acquisition_adapter.py::TestTheOneDoorFromLedgerToBuyer::test_only_an_obligation_reaches_the_buyer",
  "tests/grounding/test_acquisition_adapter.py::TestTheOneDoorFromLedgerToBuyer::test_the_target_carries_the_split_fields",
  "tests/grounding/test_acquisition_adapter.py::TestTheTwoSidesReadDifferentFields::test_the_guard_would_catch_a_real_leak",
  "tests/grounding/test_acquisition_adapter.py::TestTheTwoSidesReadDifferentFields::test_the_judge_side_never_reads_a_search_field",
  "tests/grounding/test_acquisition_adapter.py::TestTheTwoSidesReadDifferentFields::test_the_same_word_on_both_sides_is_fine",
  "tests/grounding/test_acquisition_adapter.py::TestTheTwoSidesReadDifferentFields::test_the_search_side_never_reads_a_judge_field",
  "tests/grounding/test_acquisition_adapter.py::TestTheTwoSidesReadDifferentFields::test_the_search_side_reads_only_what_it_may",
  "tests/grounding/test_acquisition_adapter.py::TestWhatGoesOutToTheJudge::test_a_missing_label_is_none_not_a_substitute",
  "tests/grounding/test_acquisition_adapter.py::TestWhatGoesOutToTheJudge::test_it_is_the_coarse_label_only",
  "tests/grounding/test_acquisition_adapter.py::TestWhatGoesOutToTheSearchWriter::test_it_carries_only_the_four_search_slots",
  "tests/grounding/test_acquisition_adapter.py::TestWhatGoesOutToTheSearchWriter::test_it_carries_what_the_writer_reads",
  "tests/grounding/test_acquisition_adapter.py::TestWhatGoesOutToTheSearchWriter::test_no_directive_and_no_terms_refuses",
  "tests/grounding/test_acquisition_adapter.py::TestWhatGoesOutToTheSearchWriter::test_terms_alone_are_enough",
  "tests/grounding/test_acquisition_adapter.py::TestWhatGoesOutToTheSearchWriter::test_the_judge_still_gets_only_the_kind",
  "tests/grounding/test_acquisition_ledger.py::TestEntityBackedOwnersResolveDirectly::test_a_facet_owner_may_not_come_here",
  "tests/grounding/test_acquisition_ledger.py::TestEntityBackedOwnersResolveDirectly::test_a_final_id_of_the_wrong_lane_is_refused",
  "tests/grounding/test_acquisition_ledger.py::TestEntityBackedOwnersResolveDirectly::test_no_registered_row_is_unresolved_not_invented",
  "tests/grounding/test_acquisition_ledger.py::TestEntityBackedOwnersResolveDirectly::test_the_three_base_owners_resolve_from_the_registered_row",
  "tests/grounding/test_acquisition_ledger.py::TestFacetRowsResolveByCoordinate::test_a_coordinate_of_the_wrong_lane_is_refused",
  "tests/grounding/test_acquisition_ledger.py::TestFacetRowsResolveByCoordinate::test_it_binds_by_the_coordinate_the_producer_left",
  "tests/grounding/test_acquisition_ledger.py::TestFacetRowsResolveByCoordinate::test_no_coordinate_is_unresolved",
  "tests/grounding/test_acquisition_ledger.py::TestTheCommonRowShape::test_a_resolved_row_without_a_final_id_stops",
  "tests/grounding/test_acquisition_ledger.py::TestTheCommonRowShape::test_an_unknown_value_stops[bad0]",
  "tests/grounding/test_acquisition_ledger.py::TestTheCommonRowShape::test_an_unknown_value_stops[bad1]",
  "tests/grounding/test_acquisition_ledger.py::TestTheCommonRowShape::test_an_unknown_value_stops[bad2]",
  "tests/grounding/test_acquisition_ledger.py::TestTheCommonRowShape::test_it_names_the_fields_codex_asked_for",
  "tests/grounding/test_acquisition_ledger.py::TestTheCommonRowShape::test_the_status_value_did_not_change",
  "tests/grounding/test_acquisition_ledger.py::TestTheMergedLedgerCarriesEveryLane::test_all_five_owners_can_reach_the_central_door",
  "tests/grounding/test_acquisition_ledger.py::TestTheMergedLedgerCarriesEveryLane::test_an_unresolved_row_still_has_the_common_fields",
  "tests/grounding/test_acquisition_ledger.py::TestTheMergedLedgerCarriesEveryLane::test_splitting_covers_every_known_lane",
  "tests/grounding/test_acquisition_ledger.py::TestTheMergedLedgerCarriesEveryLane::test_splitting_refuses_an_unknown_lane",
  "tests/grounding/test_acquisition_ledger.py::TestTheMergedLedgerCarriesEveryLane::test_the_same_subject_from_two_resolvers_stops",
  "tests/grounding/test_acquisition_projection.py::TestItReadsWhatProductionActuallyWrites::test_a_selected_row_carries_its_final_id",
  "tests/grounding/test_acquisition_projection.py::TestItReadsWhatProductionActuallyWrites::test_every_field_is_declared",
  "tests/grounding/test_acquisition_projection.py::TestItReadsWhatProductionActuallyWrites::test_no_checkpoint_is_the_old_road",
  "tests/grounding/test_acquisition_projection.py::TestItStandsInsteadOfPassingAHalfTruth::test_a_status_on_a_non_target_stops",
  "tests/grounding/test_acquisition_projection.py::TestItStandsInsteadOfPassingAHalfTruth::test_an_unknown_disposition_stops",
  "tests/grounding/test_acquisition_projection.py::TestItStandsInsteadOfPassingAHalfTruth::test_an_unknown_raw_status_stops",
  "tests/grounding/test_acquisition_projection.py::TestItStandsInsteadOfPassingAHalfTruth::test_selected_without_a_final_id_stops",
  "tests/grounding/test_acquisition_projection.py::TestTheThreeAxesStaySeparate::test_a_capped_run_is_unavailable_not_absent",
  "tests/grounding/test_acquisition_projection.py::TestTheThreeAxesStaySeparate::test_a_not_applicable_row_has_no_outcome_at_all",
  "tests/grounding/test_activation_contract.py::TestEveryGateHasSomeoneWhoEnforcesIt::test_a_gate_with_no_module_stops",
  "tests/grounding/test_activation_contract.py::TestEveryGateHasSomeoneWhoEnforcesIt::test_a_module_declaring_an_unknown_gate_stops",
  "tests/grounding/test_activation_contract.py::TestEveryGateHasSomeoneWhoEnforcesIt::test_all_three_gates_are_implemented_today",
  "tests/grounding/test_activation_contract.py::TestEveryGateHasSomeoneWhoEnforcesIt::test_each_implementor_is_actually_called_from_app",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_a_lane_the_gate_does_not_accept_stops",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_a_missing_direct_dependency_stops",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_a_missing_runner_stops",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_a_predicate_still_true_under_the_chunk_mode_stops",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_a_scene_that_does_not_depend_on_it_stops",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_a_step_missing_from_the_catalog_stops",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_a_step_still_disabled_stops",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_accepting_all_five_passes",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_extract_left_always_on_stops[entity_all_character]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_extract_left_always_on_stops[entity_all_location]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_extract_left_always_on_stops[entity_all_prop]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_extract_left_always_on_stops[entity_extract_character]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_extract_left_always_on_stops[entity_extract_location]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_extract_left_always_on_stops[entity_extract_prop]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_paid_step_left_on_stops[grounding_a0]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_paid_step_left_on_stops[grounding_plan]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_paid_step_left_on_stops[grounding_research]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_paid_step_on_another_predicate_stops[grounding_a0]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_paid_step_on_another_predicate_stops[grounding_plan]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_an_old_paid_step_on_another_predicate_stops[grounding_research]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_being_in_both_sets_stops",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_researching_after_the_scene_stops",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_researching_before_its_inputs_stops[grounding_plan]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_researching_before_its_inputs_stops[grounding_screen]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_researching_before_its_inputs_stops[outlook_phase3]",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_the_real_catalog_turns_all_six_off",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_the_real_predicate_is_false_under_the_chunk_mode",
  "tests/grounding/test_activation_contract.py::TestOnceOnEveryAxisMustBeThere::test_the_whole_thing_passes",
  "tests/grounding/test_activation_contract.py::TestTheExecutionChainIsActuallyWired::test_the_central_branch_calls_every_public_endpoint",
  "tests/grounding/test_activation_contract.py::TestTheExecutionChainIsActuallyWired::test_the_provider_parts_are_the_existing_ones",
  "tests/grounding/test_activation_contract.py::TestTheExecutionChainIsActuallyWired::test_the_scene_depends_on_the_central_checkpoint",
  "tests/grounding/test_activation_contract.py::TestTheExecutionChainIsActuallyWired::test_the_sidecar_is_written_before_the_card_hash",
  "tests/grounding/test_activation_contract.py::TestTheExecutionChainIsActuallyWired::test_the_sidecar_writer_has_a_production_caller",
  "tests/grounding/test_activation_contract.py::TestTheExecutionChainIsActuallyWired::test_the_step_dispatches_to_the_central_branch",
  "tests/grounding/test_activation_contract.py::TestTheGateRunsAtAssembly::test_it_runs_before_the_catalog_is_returned",
  "tests/grounding/test_activation_contract.py::TestTheGateRunsAtAssembly::test_the_build_calls_it",
  "tests/grounding/test_activation_contract.py::TestTheGateRunsAtAssembly::test_the_contract_module_builds_no_second_list",
  "tests/grounding/test_activation_contract.py::TestTodayItIsOn::test_runtime_config_now_takes_it",
  "tests/grounding/test_activation_contract.py::TestTodayItIsOn::test_the_central_step_runs_after_outlook_and_before_the_scene",
  "tests/grounding/test_activation_contract.py::TestTodayItIsOn::test_the_mode_is_accepted_not_planned",
  "tests/grounding/test_activation_contract.py::TestTodayItIsOn::test_the_old_paid_lanes_are_off_in_this_mode",
  "tests/grounding/test_activation_contract.py::TestTodayItIsOn::test_the_real_catalog_has_the_producer",
  "tests/grounding/test_activation_contract.py::TestTodayItIsOn::test_the_reference_gate_takes_all_five",
  "tests/grounding/test_activation_contract.py::TestTodayItIsOn::test_the_screen_step_runs_on_the_chunk_producer",
  "tests/grounding/test_activation_contract.py::TestTodayItIsOn::test_turning_only_the_producer_on_stops_the_assembly",
  "tests/grounding/test_activation_contract.py::TestTodayItIsOn::test_turning_only_the_screen_on_stops_the_assembly",
  "tests/grounding/test_activation_contract.py::TestTodayItIsStillOff::test_the_mode_is_planned_not_accepted",
  "tests/grounding/test_activation_contract.py::TestTodayItIsStillOff::test_the_real_catalog_assembles",
  "tests/grounding/test_activation_contract.py::TestTodayItIsStillOff::test_the_reference_gate_is_still_two_owners",
  "tests/grounding/test_activation_contract.py::TestTodayItIsStillOff::test_the_screen_step_is_still_disabled",
  "tests/grounding/test_activation_contract.py::TestTodayItIsStillOff::test_turning_only_the_producer_on_stops_the_assembly",
  "tests/grounding/test_activation_contract.py::TestTodayItIsStillOff::test_turning_only_the_screen_on_stops_the_assembly",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_a_person_verifying_one_candidate_promotes_it_to_chosen",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_an_unchosen_row_still_puts_every_downloaded_photo_in_front_of_a_person",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_choosing_a_then_b_leaves_only_b",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_no_decision_yet_is_unverified_and_the_pipeline_is_not_blocked",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_rejecting_the_model_pick_with_nothing_else_verified_is_rejected",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_selecting_an_unverified_or_rejected_photo_does_not_attach",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_the_digest_moves_when_the_selection_moves",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_the_model_pick_is_marked_and_a_person_can_override_it",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_the_page_shows_every_candidate_with_the_model_mark_only",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_two_verified_candidates_auto_picks_one",
  "tests/grounding/test_all_downloaded_candidates_reach_human_review.py::test_two_verified_plus_an_explicit_selection_promotes_the_selected_one",
  "tests/grounding/test_an_unfinished_round_is_redone_on_resume.py::test_a_capped_second_pass_keeps_the_first_pass_result",
  "tests/grounding/test_an_unfinished_round_is_redone_on_resume.py::test_a_person_can_settle_a_stored_ok_line_as_incomplete",
  "tests/grounding/test_an_unfinished_round_is_redone_on_resume.py::test_a_round_that_downloaded_but_did_not_judge_is_not_redone",
  "tests/grounding/test_an_unfinished_round_is_redone_on_resume.py::test_a_round_with_no_candidates_is_redone_and_kept_for_audit",
  "tests/grounding/test_an_unfinished_round_is_redone_on_resume.py::test_an_incomplete_purchase_is_not_reused_and_frees_its_slot",
  "tests/grounding/test_an_unfinished_round_is_redone_on_resume.py::test_legacy_journal_lines_get_a_derived_slot_in_the_view",
  "tests/grounding/test_an_unfinished_round_is_redone_on_resume.py::test_pass_two_identity_moves_with_the_finished_rounds",
  "tests/grounding/test_audit_tool_seal.py::TestTheOutermostDoorIsLocked::test_each_boundary_refuses[http-import http.client;http.client.HTTPConnection('x').request('GET','/')]",
  "tests/grounding/test_audit_tool_seal.py::TestTheOutermostDoorIsLocked::test_each_boundary_refuses[https-import http.client;http.client.HTTPSConnection('x').request('GET','/')]",
  "tests/grounding/test_audit_tool_seal.py::TestTheOutermostDoorIsLocked::test_each_boundary_refuses[socket-import socket;socket.socket().connect(('127.0.0.1', 9))]",
  "tests/grounding/test_audit_tool_seal.py::TestTheOutermostDoorIsLocked::test_it_is_called_after_imports",
  "tests/grounding/test_audit_tool_seal.py::TestTheOutermostDoorIsLocked::test_the_tool_has_the_guard",
  "tests/grounding/test_audit_tool_seal.py::TestTheOutermostDoorIsLocked::test_without_the_guard_the_call_is_not_refused",
  "tests/grounding/test_background_bundle_capacity.py::TestTheBundleKeepsItsOwnProvenance::test_context_and_detail_are_distinguishable",
  "tests/grounding/test_background_bundle_capacity.py::TestTheBundleKeepsItsOwnProvenance::test_the_bundle_cannot_replace_the_required_plate",
  "tests/grounding/test_background_bundle_capacity.py::TestTheBundleKeepsItsOwnProvenance::test_they_share_the_same_kind",
  "tests/grounding/test_background_bundle_capacity.py::TestTheContractLayerTakesMoreThanOne::test_a_declared_kind_with_nothing_attached_stops",
  "tests/grounding/test_background_bundle_capacity.py::TestTheContractLayerTakesMoreThanOne::test_one_background_passes",
  "tests/grounding/test_background_bundle_capacity.py::TestTheContractLayerTakesMoreThanOne::test_the_outdoor_precedent_two_passes",
  "tests/grounding/test_background_bundle_capacity.py::TestTheContractLayerTakesMoreThanOne::test_the_parallel_lists_must_stay_the_same_length",
  "tests/grounding/test_background_bundle_capacity.py::TestTheContractLayerTakesMoreThanOne::test_three_backgrounds_pass",
  "tests/grounding/test_background_bundle_capacity.py::TestTheWaiverThatWouldHideAMissingGroundingRef::test_close_framing_skips_the_background_check",
  "tests/grounding/test_background_bundle_capacity.py::TestTheWaiverThatWouldHideAMissingGroundingRef::test_one_synthetic_background_waives_all_required",
  "tests/grounding/test_background_bundle_capacity.py::TestThroughTheProductionHelper::test_a_grounding_pair_stacks_on_top",
  "tests/grounding/test_background_bundle_capacity.py::TestThroughTheProductionHelper::test_each_ref_keeps_its_own_metadata",
  "tests/grounding/test_background_bundle_capacity.py::TestThroughTheProductionHelper::test_the_production_helper_is_additive_and_parallel",
  "tests/grounding/test_background_bundle_capacity.py::TestThroughTheProductionHelper::test_three_from_the_helper_pass_the_validator",
  "tests/grounding/test_background_metering_units.py::TestTheGatesReadTheProducerOutput::test_all_three_units_are_in_the_producer_gate_table",
  "tests/grounding/test_background_metering_units.py::TestTheGatesReadTheProducerOutput::test_chain_groups_use_productions_predicate",
  "tests/grounding/test_background_metering_units.py::TestTheGatesReadTheProducerOutput::test_floor_plans_and_backgrounds_are_counted_across_groups",
  "tests/grounding/test_background_metering_units.py::TestTheGatesReadTheProducerOutput::test_without_the_producer_cp_the_declared_value_stands",
  "tests/grounding/test_background_metering_units.py::TestTheUnitsAreDeclaredFromTheLoops::test_an_undeclared_cap_stops",
  "tests/grounding/test_background_metering_units.py::TestTheUnitsAreDeclaredFromTheLoops::test_the_caps_come_from_the_fixture_and_flow_into_the_logical_cap",
  "tests/grounding/test_background_metering_units.py::TestTheUnitsAreDeclaredFromTheLoops::test_the_four_steps_are_no_longer_unverified",
  "tests/grounding/test_background_metering_units.py::TestTheUnitsAreDeclaredFromTheLoops::test_the_full_background_closure_has_no_unverified_unit",
  "tests/grounding/test_background_metering_units.py::TestTheUnitsAreDeclaredFromTheLoops::test_the_render_step_buys_images_not_text",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestAFatalWorkerStopsThePending::test_pending_jobs_never_reach_the_provider_after_a_fatal",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestTheBoundedPool::test_a_duplicate_subject_id_is_refused_before_the_pool",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestTheBoundedPool::test_a_resume_buys_nothing_twice",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestTheBoundedPool::test_at_most_n_workers_are_inside_at_once",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestTheBoundedPool::test_no_second_pass_starts_before_every_first_pass_ended",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestTheBoundedPool::test_the_cap_is_the_journal_gate_not_a_shared_flag",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestTheBoundedPool::test_the_output_order_is_the_target_order_even_when_the_last_finishes_first",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestTheBoundedPool::test_workers_are_bounded_by_the_module_maximum",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestTheBoundedPool::test_workers_see_the_research_budget_and_the_stop_check",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestTheOutboundGateIsAtomic::test_many_threads_cannot_exceed_the_cap",
  "tests/grounding/test_bounded_parallel_acquisition.py::TestTheResearchWriterDoesNotAlias::test_an_old_selected_purchase_under_the_old_identity_is_not_aliased",
  "tests/grounding/test_bundle_canary_preflight.py::TestItBuysNothing::test_the_module_never_generates",
  "tests/grounding/test_bundle_canary_preflight.py::TestItLocksWhatMatters::test_it_is_deterministic",
  "tests/grounding/test_bundle_canary_preflight.py::TestItLocksWhatMatters::test_the_bytes_themselves_are_folded",
  "tests/grounding/test_bundle_canary_preflight.py::TestItLocksWhatMatters::test_the_image_dispatch_is_one",
  "tests/grounding/test_bundle_canary_preflight.py::TestItLocksWhatMatters::test_the_lock_has_every_axis",
  "tests/grounding/test_bundle_canary_preflight.py::TestItStopsWhenTheApprovedThingChanges::test_a_changed_plan_stops[over0]",
  "tests/grounding/test_bundle_canary_preflight.py::TestItStopsWhenTheApprovedThingChanges::test_a_changed_plan_stops[over1]",
  "tests/grounding/test_bundle_canary_preflight.py::TestItStopsWhenTheApprovedThingChanges::test_a_changed_plan_stops[over2]",
  "tests/grounding/test_bundle_canary_preflight.py::TestItStopsWhenTheApprovedThingChanges::test_a_changed_plan_stops[over3]",
  "tests/grounding/test_bundle_canary_preflight.py::TestItStopsWhenTheApprovedThingChanges::test_no_approved_lock_means_first_run",
  "tests/grounding/test_bundle_canary_preflight.py::TestItStopsWhenTheApprovedThingChanges::test_the_same_plan_passes",
  "tests/grounding/test_bundle_canary_preflight.py::TestTheCountComesFromTheClient::test_a_declared_max_would_be_enforced",
  "tests/grounding/test_bundle_canary_preflight.py::TestTheCountComesFromTheClient::test_an_unknown_max_is_recorded_not_invented",
  "tests/grounding/test_bundle_canary_preflight.py::TestTheCountComesFromTheClient::test_the_client_is_read_not_copied",
  "tests/grounding/test_bundle_canary_preflight.py::TestTheCountComesFromTheClient::test_the_provider_is_the_scene_image_one",
  "tests/grounding/test_bundle_canary_runner.py::TestAFailedCallStillLeavesItsRecord::test_the_journal_keeps_the_identity_and_reason",
  "tests/grounding/test_bundle_canary_runner.py::TestAFailedCallStillLeavesItsRecord::test_the_observation_survives_a_rate_limit",
  "tests/grounding/test_bundle_canary_runner.py::TestItRefusesBeforeSpending::test_a_changed_capability_stops_before_the_call",
  "tests/grounding/test_bundle_canary_runner.py::TestItRefusesBeforeSpending::test_a_file_coordinate_passes",
  "tests/grounding/test_bundle_canary_runner.py::TestItRefusesBeforeSpending::test_an_asset_coordinate_is_refused",
  "tests/grounding/test_bundle_canary_runner.py::TestItRefusesBeforeSpending::test_too_many_references_stop_before_the_call",
  "tests/grounding/test_bundle_canary_runner.py::TestNobodyIsAskedToFixTheJournal::test_a_capability_drift_releases_its_slot",
  "tests/grounding/test_bundle_canary_runner.py::TestNobodyIsAskedToFixTheJournal::test_a_trace_failure_leaves_no_reservation",
  "tests/grounding/test_bundle_canary_runner.py::TestNobodyIsAskedToFixTheJournal::test_after_the_trace_comes_back_the_same_plan_just_runs",
  "tests/grounding/test_bundle_canary_runner.py::TestNobodyIsAskedToFixTheJournal::test_an_unknown_outcome_ends_the_next_run_without_buying",
  "tests/grounding/test_bundle_canary_runner.py::TestOnlyOneRawCallCanHappen::test_a_success_uses_exactly_one",
  "tests/grounding/test_bundle_canary_runner.py::TestOnlyOneRawCallCanHappen::test_the_budget_is_gone_afterwards",
  "tests/grounding/test_bundle_canary_runner.py::TestOnlyOneRawCallCanHappen::test_the_cap_is_one",
  "tests/grounding/test_bundle_canary_runner.py::TestOnlyOneRawCallCanHappen::test_the_second_raw_attempt_is_denied",
  "tests/grounding/test_bundle_canary_runner.py::TestTheAcceptanceCountsWhatHappened::test_a_denied_extra_call_is_not_a_pass",
  "tests/grounding/test_bundle_canary_runner.py::TestTheAcceptanceCountsWhatHappened::test_a_dry_run_is_not_a_pass",
  "tests/grounding/test_bundle_canary_runner.py::TestTheAcceptanceCountsWhatHappened::test_a_failed_send_is_not_a_pass",
  "tests/grounding/test_bundle_canary_runner.py::TestTheAcceptanceCountsWhatHappened::test_a_pass_needs_used_one_and_denied_zero",
  "tests/grounding/test_bundle_canary_runner.py::TestTheAcceptanceMeasuresWhatTheProviderSaw::test_a_dropped_image_is_seen",
  "tests/grounding/test_bundle_canary_runner.py::TestTheAcceptanceMeasuresWhatTheProviderSaw::test_it_counts_the_images_that_actually_went",
  "tests/grounding/test_bundle_canary_runner.py::TestTheActualRunLocksWhatGoesOut::test_a_changed_attached_meta_stops_the_run",
  "tests/grounding/test_bundle_canary_runner.py::TestTheActualRunLocksWhatGoesOut::test_the_same_plan_passes_the_lock",
  "tests/grounding/test_bundle_canary_runner.py::TestTheCapabilityIsComparedToTheApprovedOne::test_a_drifting_capability_stops_before_the_call",
  "tests/grounding/test_bundle_canary_runner.py::TestTheRunnerDoesNotUseTheValidatingPath::test_it_calls_generate_image_not_the_scene_wrapper",
  "tests/grounding/test_bundle_canary_runner.py::TestTheSamePlanIsNotBoughtTwice::test_a_second_run_reuses_and_does_not_buy",
  "tests/grounding/test_bundle_canary_runner.py::TestTheSamePlanIsNotBoughtTwice::test_an_unknown_outcome_stops_the_next_run",
  "tests/grounding/test_bundle_canary_runner.py::TestTheSamePlanIsNotBoughtTwice::test_the_identity_is_the_whole_outbound",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestAStaleMemberIdentityIsCaught::test_the_old_attachment_does_not_satisfy_the_new_obligation",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestAStaleMemberIdentityIsCaught::test_the_same_identity_still_passes",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestBothCoordinatesAreVerified::test_a_contaminated_coordinate_stops_it[0]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestBothCoordinatesAreVerified::test_a_contaminated_coordinate_stops_it[1]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestBothCoordinatesAreVerified::test_an_unreadable_second_coordinate_stops_it",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestBothCoordinatesAreVerified::test_the_order_does_not_change_the_result[order0]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestBothCoordinatesAreVerified::test_the_order_does_not_change_the_result[order1]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestBothCoordinatesAreVerified::test_two_pointers_to_one_photo_become_one_image",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestCloseFramingDoesNotHideAMissingDetail::test_a_missing_detail_still_stops_in_close_framing",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestCloseFramingDoesNotHideAMissingDetail::test_it_passes_when_attached_even_in_close_framing",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestPlateAndContextAndDetailAllArrive::test_each_role_says_a_different_thing",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestPlateAndContextAndDetailAllArrive::test_the_merged_one_carries_both",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestPlateAndContextAndDetailAllArrive::test_the_plate_is_still_there",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestPlateAndContextAndDetailAllArrive::test_three_photos_reach_the_prompt",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheChainStopsOnRealBreakage::test_an_undeclared_role_would_stop",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheChainStopsOnRealBreakage::test_dropping_the_plate_stops",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheSidecarGateIsByteIdenticalWhenAbsent::test_a_broken_sidecar_stops",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheSidecarGateIsByteIdenticalWhenAbsent::test_an_empty_list_is_an_explicit_verdict",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheSidecarGateIsByteIdenticalWhenAbsent::test_no_sidecar_changes_nothing[7]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheSidecarGateIsByteIdenticalWhenAbsent::test_no_sidecar_changes_nothing[None]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheSidecarGateIsByteIdenticalWhenAbsent::test_no_sidecar_changes_nothing[\\uae00\\uc790]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheSidecarGateIsByteIdenticalWhenAbsent::test_no_sidecar_changes_nothing[rpc1]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheSidecarGateIsByteIdenticalWhenAbsent::test_no_sidecar_changes_nothing[rpc4]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheSidecarGateIsByteIdenticalWhenAbsent::test_no_sidecar_changes_nothing[rpc5]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheSidecarGateIsByteIdenticalWhenAbsent::test_no_sidecar_means_no_check_either",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheValidatorReadsWhatWasWritten::test_a_broken_required_list_stops[\\uae00\\uc790]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheValidatorReadsWhatWasWritten::test_a_broken_required_list_stops[bad1]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheValidatorReadsWhatWasWritten::test_a_broken_required_list_stops[bad2]",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheValidatorReadsWhatWasWritten::test_a_dropped_attachment_is_caught_by_the_written_list",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheValidatorReadsWhatWasWritten::test_attaching_writes_the_required_list",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestTheValidatorReadsWhatWasWritten::test_the_written_list_survives_a_round_trip",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestUnavailableFlowsThroughWithoutBlocking::test_both_unavailable_leaves_only_the_plate",
  "tests/grounding/test_bundle_end_to_end_inert.py::TestUnavailableFlowsThroughWithoutBlocking::test_one_selected_one_unavailable",
  "tests/grounding/test_bundle_projection.py::TestALocationWithNoPartsStillGetsContext::test_it_is_its_own_subject",
  "tests/grounding/test_bundle_projection.py::TestItInventsNothing::test_a_lane_with_no_purpose_is_not_projected",
  "tests/grounding/test_bundle_projection.py::TestItInventsNothing::test_it_does_not_decide_who_owns_the_context",
  "tests/grounding/test_bundle_projection.py::TestItInventsNothing::test_it_makes_no_member_the_obligation_did_not_ask_for",
  "tests/grounding/test_bundle_projection.py::TestItInventsNothing::test_the_purpose_comes_from_the_obligation_row",
  "tests/grounding/test_bundle_projection.py::TestItRefusesToGuess::test_a_row_without_an_acquisition_identity_stops",
  "tests/grounding/test_bundle_projection.py::TestItRefusesToGuess::test_a_selected_row_without_a_hash_stops",
  "tests/grounding/test_bundle_projection.py::TestItRefusesToGuess::test_a_selected_row_without_an_identity_stops",
  "tests/grounding/test_bundle_projection.py::TestItRefusesToGuess::test_an_obligation_without_a_final_id_stops",
  "tests/grounding/test_bundle_projection.py::TestItRefusesToGuess::test_other_lanes_are_not_projected_here",
  "tests/grounding/test_bundle_projection.py::TestOnePhotoMayServeSeveralSubjects::test_different_bytes_stay_two",
  "tests/grounding/test_bundle_projection.py::TestOnePhotoMayServeSeveralSubjects::test_the_merged_role_is_the_combined_one",
  "tests/grounding/test_bundle_projection.py::TestOnePhotoMayServeSeveralSubjects::test_the_same_bytes_land_once",
  "tests/grounding/test_bundle_projection.py::TestTheMissingOneReachesTheSidecar::test_both_obligations_are_written",
  "tests/grounding/test_bundle_projection.py::TestTheMissingOneReachesTheSidecar::test_only_the_found_one_becomes_required",
  "tests/grounding/test_bundle_projection.py::TestTheMissingOneReachesTheSidecar::test_reading_it_back_still_shows_what_was_missing",
  "tests/grounding/test_bundle_projection.py::TestTheMissingOneReachesTheSidecar::test_the_sidecar_is_json",
  "tests/grounding/test_bundle_projection.py::TestTheParentPhotoIsNotDuplicated::test_each_part_still_gets_its_own_detail",
  "tests/grounding/test_bundle_projection.py::TestTheParentPhotoIsNotDuplicated::test_only_one_physical_image_lands_for_the_parent",
  "tests/grounding/test_bundle_projection.py::TestTheParentPhotoIsNotDuplicated::test_the_covered_set_reaches_the_attached_value",
  "tests/grounding/test_bundle_projection.py::TestTheParentPhotoIsNotDuplicated::test_the_parent_identity_is_the_parents_own",
  "tests/grounding/test_bundle_projection.py::TestTheParentPhotoIsNotDuplicated::test_two_siblings_share_one_parent_context",
  "tests/grounding/test_bundle_projection.py::TestWhatWasNotFoundStillSurvives::test_a_missing_context_does_not_block_the_detail",
  "tests/grounding/test_bundle_projection.py::TestWhatWasNotFoundStillSurvives::test_it_invents_no_identity_or_hash_for_it",
  "tests/grounding/test_bundle_projection.py::TestWhatWasNotFoundStillSurvives::test_it_makes_no_image_required",
  "tests/grounding/test_bundle_projection.py::TestWhatWasNotFoundStillSurvives::test_the_unavailable_obligation_is_kept",
  "tests/grounding/test_bundle_projection.py::TestWhenThereIsNoParentRow::test_a_missing_parent_context_does_not_block_the_detail",
  "tests/grounding/test_bundle_projection.py::TestWhenThereIsNoParentRow::test_a_part_with_no_parent_coordinate_owns_it_too",
  "tests/grounding/test_bundle_projection.py::TestWhenThereIsNoParentRow::test_the_part_owns_its_own_context",
  "tests/grounding/test_call_bound_contract.py::TestBothToolsUseThisOneContract::test_it_matches_production_only_when_retries_are_pinned",
  "tests/grounding/test_call_bound_contract.py::TestBothToolsUseThisOneContract::test_the_cost_table_delegates",
  "tests/grounding/test_call_bound_contract.py::TestBothToolsUseThisOneContract::test_the_counted_half_matches_the_production_formula",
  "tests/grounding/test_call_bound_contract.py::TestBothToolsUseThisOneContract::test_the_sdk_constant_is_not_duplicated",
  "tests/grounding/test_call_bound_contract.py::TestBothToolsUseThisOneContract::test_the_sdk_constant_is_the_same_object_not_a_copy",
  "tests/grounding/test_call_bound_contract.py::TestItDoesNotInventWhatItCannotCount::test_a_negative_retry_is_floored[-1]",
  "tests/grounding/test_call_bound_contract.py::TestItDoesNotInventWhatItCannotCount::test_a_negative_retry_is_floored[-5]",
  "tests/grounding/test_call_bound_contract.py::TestItDoesNotInventWhatItCannotCount::test_unknown_slots_give_no_number",
  "tests/grounding/test_call_bound_contract.py::TestRawIsNotCounted::test_a_loose_contract_is_twelve_times_a_pinned_one",
  "tests/grounding/test_call_bound_contract.py::TestRawIsNotCounted::test_a_loose_contract_raises_counted_by_tiers_only",
  "tests/grounding/test_call_bound_contract.py::TestRawIsNotCounted::test_locking_the_sdk_makes_them_equal",
  "tests/grounding/test_call_bound_contract.py::TestRawIsNotCounted::test_the_note_says_which_one_can_be_stopped",
  "tests/grounding/test_call_bound_contract.py::TestRawIsNotCounted::test_the_sdk_layer_multiplies_raw_only",
  "tests/grounding/test_call_bound_contract.py::TestTheLayersAreWhatTheContractSays::test_a_pinned_contract_has_one_tier_and_one_try",
  "tests/grounding/test_call_bound_contract.py::TestTheLayersAreWhatTheContractSays::test_fallback_brings_three_tiers",
  "tests/grounding/test_call_bound_contract.py::TestTheLayersAreWhatTheContractSays::test_retries_add_attempts_not_multiply_slots",
  "tests/grounding/test_call_bound_contract.py::TestTheLayersAreWhatTheContractSays::test_router_retries_are_below_the_door_not_counted",
  "tests/grounding/test_call_bound_contract.py::TestTheLayersAreWhatTheContractSays::test_tiers_and_slots_are_above_the_door",
  "tests/grounding/test_call_bound_contract.py::TestTheLayersAreWhatTheContractSays::test_zero_slots_still_counts_one",
  "tests/grounding/test_canary_bootstrap.py::TestItWillNotBuyWithoutACap::test_a_dry_run_says_it_bought_nothing",
  "tests/grounding/test_canary_bootstrap.py::TestItWillNotBuyWithoutACap::test_live_without_a_cap_stops",
  "tests/grounding/test_canary_bootstrap.py::TestReconcileLooksAtBothRows::test_it_returns_the_existing_episode",
  "tests/grounding/test_canary_bootstrap.py::TestReconcileLooksAtBothRows::test_no_episode_means_make_one",
  "tests/grounding/test_canary_bootstrap.py::TestReconcileLooksAtBothRows::test_two_episodes_means_do_not_guess",
  "tests/grounding/test_canary_bootstrap.py::TestReconcileLooksAtBothRows::test_two_projects_means_do_not_guess",
  "tests/grounding/test_canary_bootstrap.py::TestRecoveryAtThePublicEndpoint::test_an_existing_episode_is_reused_not_remade",
  "tests/grounding/test_canary_bootstrap.py::TestRecoveryAtThePublicEndpoint::test_no_episode_means_make_one_for_free",
  "tests/grounding/test_canary_bootstrap.py::TestRecoveryAtThePublicEndpoint::test_the_prior_trace_and_purchase_survive",
  "tests/grounding/test_canary_bootstrap.py::TestRecoveryAtThePublicEndpoint::test_two_projects_fail_closed",
  "tests/grounding/test_canary_bootstrap.py::TestTheBootstrapBudgetIsItsOwn::test_it_records_whether_it_bought_by_the_budget_delta",
  "tests/grounding/test_canary_bootstrap.py::TestTheBootstrapBudgetIsItsOwn::test_the_code_opens_a_separate_scope",
  "tests/grounding/test_canary_bootstrap.py::TestTheBootstrapBudgetIsItsOwn::test_the_dry_result_carries_its_own_cap",
  "tests/grounding/test_canary_bootstrap.py::TestTheEnvIsIsolated::test_it_points_at_the_canary_database",
  "tests/grounding/test_canary_bootstrap.py::TestTheEnvIsIsolated::test_the_directory_is_under_this_runs_root",
  "tests/grounding/test_canary_bootstrap.py::TestTheEnvIsIsolated::test_with_neither_it_stops",
  "tests/grounding/test_canary_bootstrap.py::TestTheEnvIsIsolated::test_without_a_template_it_stops",
  "tests/grounding/test_canary_bootstrap.py::TestTheEnvIsIsolated::test_without_an_env_var_it_falls_back_to_dotenv",
  "tests/grounding/test_canary_bootstrap.py::TestTheManuscriptSurvivesTheRoundTrip::test_the_pdf_gives_back_the_fixture_text",
  "tests/grounding/test_canary_bootstrap.py::TestTheManuscriptSurvivesTheRoundTrip::test_the_shape_is_checked_before_writing",
  "tests/grounding/test_canary_cost_table.py::TestAPredicateThatSwallowsItsOwnErrorMustNotAnswer::test_a_predicate_that_reads_the_runner_never_answers",
  "tests/grounding/test_canary_cost_table.py::TestAPredicateThatSwallowsItsOwnErrorMustNotAnswer::test_a_settings_only_predicate_still_answers",
  "tests/grounding/test_canary_cost_table.py::TestAPredicateThatSwallowsItsOwnErrorMustNotAnswer::test_an_unreadable_predicate_is_treated_as_unknown",
  "tests/grounding/test_canary_cost_table.py::TestAPredicateThatSwallowsItsOwnErrorMustNotAnswer::test_the_two_that_swallow_their_error_are_caught",
  "tests/grounding/test_canary_cost_table.py::TestAppliedIsNotTheSameAsPaid::test_a_step_that_does_call_a_model_is_not_free",
  "tests/grounding/test_canary_cost_table.py::TestAppliedIsNotTheSameAsPaid::test_nothing_is_dropped_from_the_run",
  "tests/grounding/test_canary_cost_table.py::TestAppliedIsNotTheSameAsPaid::test_the_deterministic_steps_are_free_not_blocked",
  "tests/grounding/test_canary_cost_table.py::TestAppliedIsNotTheSameAsPaid::test_the_three_buckets_add_up",
  "tests/grounding/test_canary_cost_table.py::TestItAsksProductionNotMyOwnDict::test_a_declared_value_that_disagrees_stops_everything",
  "tests/grounding/test_canary_cost_table.py::TestItAsksProductionNotMyOwnDict::test_a_predicate_that_needs_a_runner_is_undecided",
  "tests/grounding/test_canary_cost_table.py::TestItAsksProductionNotMyOwnDict::test_it_calls_the_production_predicate",
  "tests/grounding/test_canary_cost_table.py::TestItAsksProductionNotMyOwnDict::test_production_wins_when_nothing_was_declared",
  "tests/grounding/test_canary_cost_table.py::TestItAsksProductionNotMyOwnDict::test_the_declared_value_still_answers_when_production_cannot",
  "tests/grounding/test_canary_cost_table.py::TestTheBoundaryComesFromTheRealModule::test_a_deterministic_step_is_marked_free_not_unknown",
  "tests/grounding/test_canary_cost_table.py::TestTheBoundaryComesFromTheRealModule::test_a_passed_function_counts_as_using_it",
  "tests/grounding/test_canary_cost_table.py::TestTheBoundaryComesFromTheRealModule::test_a_step_resolves_to_its_module",
  "tests/grounding/test_canary_cost_table.py::TestTheBoundaryComesFromTheRealModule::test_an_unknown_door_blocks_too",
  "tests/grounding/test_canary_cost_table.py::TestTheBoundaryComesFromTheRealModule::test_an_unknown_step_is_not_guessed",
  "tests/grounding/test_canary_cost_table.py::TestTheBoundaryComesFromTheRealModule::test_it_says_not_found_is_not_absent",
  "tests/grounding/test_canary_cost_table.py::TestTheBoundaryComesFromTheRealModule::test_no_applied_step_uses_the_doorless_path",
  "tests/grounding/test_canary_cost_table.py::TestTheDeclaredRuleMeansWhatProductionMeans::test_always_is_applied",
  "tests/grounding/test_canary_cost_table.py::TestTheDeclaredRuleMeansWhatProductionMeans::test_an_if_rule_follows_the_config",
  "tests/grounding/test_canary_cost_table.py::TestTheDeclaredRuleMeansWhatProductionMeans::test_an_unknown_rule_shape_is_not_folded_to_true",
  "tests/grounding/test_canary_cost_table.py::TestTheExecutionListIsNotTheCostList::test_new_counts_only_the_metered_ones",
  "tests/grounding/test_canary_cost_table.py::TestTheExecutionListIsNotTheCostList::test_the_closure_is_bigger_than_the_cost_list",
  "tests/grounding/test_canary_cost_table.py::TestTheExecutionListIsNotTheCostList::test_the_code_step_comes_before_its_consumers",
  "tests/grounding/test_canary_cost_table.py::TestTheExecutionListIsNotTheCostList::test_the_code_step_is_in_the_closure_but_not_the_cost_list",
  "tests/grounding/test_canary_cost_table.py::TestTheExecutionListIsNotTheCostList::test_the_execution_plan_keeps_the_code_step",
  "tests/grounding/test_canary_cost_table.py::TestTheExecutionListIsNotTheCostList::test_the_note_says_applied_is_the_run_list",
  "tests/grounding/test_canary_cost_table.py::TestTheFreeVerdictIsLockedByTheRun::test_a_free_step_that_sends_nothing_passes",
  "tests/grounding/test_canary_cost_table.py::TestTheFreeVerdictIsLockedByTheRun::test_a_free_step_that_sends_stops",
  "tests/grounding/test_canary_cost_table.py::TestTheFreeVerdictIsLockedByTheRun::test_the_delta_is_the_difference",
  "tests/grounding/test_canary_cost_table.py::TestTheGateStopsBeforeTheNextStep::test_an_unapproved_step_stops",
  "tests/grounding/test_canary_cost_table.py::TestTheGateStopsBeforeTheNextStep::test_going_over_stops",
  "tests/grounding/test_canary_cost_table.py::TestTheGateStopsBeforeTheNextStep::test_staying_within_passes",
  "tests/grounding/test_canary_cost_table.py::TestTheGateStopsBeforeTheNextStep::test_the_message_names_both_numbers",
  "tests/grounding/test_canary_cost_table.py::TestThePaidListComesFromTheGraph::test_a_code_only_step_is_not_counted_as_paid",
  "tests/grounding/test_canary_cost_table.py::TestThePaidListComesFromTheGraph::test_a_shorter_target_needs_fewer_steps",
  "tests/grounding/test_canary_cost_table.py::TestThePaidListComesFromTheGraph::test_it_is_derived_not_hand_written",
  "tests/grounding/test_canary_cost_table.py::TestThePlanIsNotTheConservativeList::test_an_undeclared_rule_is_unknown_not_applied",
  "tests/grounding/test_canary_cost_table.py::TestThePlanIsNotTheConservativeList::test_reuse_is_declared_not_measured",
  "tests/grounding/test_canary_cost_table.py::TestThePlanIsNotTheConservativeList::test_the_applied_list_is_smaller",
  "tests/grounding/test_canary_cost_table.py::TestThePlanIsNotTheConservativeList::test_the_conditional_grounding_steps_are_skipped",
  "tests/grounding/test_canary_cost_table.py::TestThePlanIsNotTheConservativeList::test_the_note_forbids_using_the_total_as_a_denominator",
  "tests/grounding/test_canary_cost_table.py::TestThePlanIsNotTheConservativeList::test_turning_it_on_brings_them_back",
  "tests/grounding/test_canary_cost_table.py::TestTheThreeLayersAreSeparate::test_a_loose_contract_raises_the_raw_bound",
  "tests/grounding/test_canary_cost_table.py::TestTheThreeLayersAreSeparate::test_every_row_carries_all_three",
  "tests/grounding/test_canary_cost_table.py::TestTheThreeLayersAreSeparate::test_the_bound_uses_the_production_formula",
  "tests/grounding/test_canary_cost_table.py::TestTheThreeLayersAreSeparate::test_the_counted_and_raw_are_not_the_same_number",
  "tests/grounding/test_canary_cost_table.py::TestTheThreeLayersAreSeparate::test_the_counted_bound_excludes_the_layers_below_the_door",
  "tests/grounding/test_canary_cost_table.py::TestTheThreeLayersAreSeparate::test_the_counted_bound_matches_the_production_formula",
  "tests/grounding/test_canary_cost_table.py::TestTheThreeLayersAreSeparate::test_the_shared_contract_is_the_source",
  "tests/grounding/test_canary_cost_table.py::TestTheThreeLayersAreSeparate::test_the_text_path_declares_it_has_no_door",
  "tests/grounding/test_canary_cost_table.py::TestTheThreeLayersAreSeparate::test_the_text_path_names_its_central_doors",
  "tests/grounding/test_canary_cost_table.py::TestTheThreeLayersAreSeparate::test_unknown_slots_are_not_invented",
  "tests/grounding/test_canary_cost_table.py::TestTheTotalsSayWhatIsNotMeasured::test_an_unknown_bound_makes_the_total_unknown",
  "tests/grounding/test_canary_cost_table.py::TestTheTotalsSayWhatIsNotMeasured::test_nothing_is_unmeasured_once_the_doors_are_named",
  "tests/grounding/test_canary_cost_table.py::TestTheTotalsSayWhatIsNotMeasured::test_the_unmeasured_steps_are_listed",
  "tests/grounding/test_canary_cost_table.py::TestThereIsPaidWorkOutsideTheStepList::test_creating_a_project_costs_one_call",
  "tests/grounding/test_canary_cost_table.py::TestThereIsPaidWorkOutsideTheStepList::test_it_is_counted_with_the_same_layers",
  "tests/grounding/test_canary_cost_table.py::TestThereIsPaidWorkOutsideTheStepList::test_making_an_episode_is_free",
  "tests/grounding/test_canary_cost_table.py::TestThereIsPaidWorkOutsideTheStepList::test_the_named_call_site_still_exists",
  "tests/grounding/test_canary_image_budget.py::TestEveryThreadSeesIt::test_a_worker_that_never_binds_is_still_gated",
  "tests/grounding/test_canary_image_budget.py::TestEveryThreadSeesIt::test_it_puts_the_thread_local_back",
  "tests/grounding/test_canary_image_budget.py::TestEveryThreadSeesIt::test_the_bind_helper_does_not_erase_the_shared_install",
  "tests/grounding/test_canary_image_budget.py::TestItRefusesToStealSomeoneElsesCount::test_an_existing_install_stops",
  "tests/grounding/test_canary_image_budget.py::TestItRefusesToStealSomeoneElsesCount::test_nesting_stops",
  "tests/grounding/test_canary_image_budget.py::TestTheGateIsOpenUntilSomeoneInstallsABudget::test_with_a_zero_budget_the_door_refuses",
  "tests/grounding/test_canary_image_budget.py::TestTheGateIsOpenUntilSomeoneInstallsABudget::test_without_a_budget_the_door_is_a_no_op",
  "tests/grounding/test_canary_image_budget.py::TestWhatItReports::test_the_delta_counts_both_bought_and_refused",
  "tests/grounding/test_canary_image_budget.py::TestWhatItReports::test_the_named_door_is_really_in_that_file",
  "tests/grounding/test_canary_isolation.py::TestAProperSetupPasses::test_the_canary_env_is_accepted",
  "tests/grounding/test_canary_isolation.py::TestAProperSetupPasses::test_the_trace_coordinates_are_canary_only",
  "tests/grounding/test_canary_isolation.py::TestAlembicEnvActuallyCallsTheGate::test_a_wrong_database_stops_before_any_sql",
  "tests/grounding/test_canary_isolation.py::TestAlembicEnvActuallyCallsTheGate::test_the_gate_is_called_before_run_migrations",
  "tests/grounding/test_canary_isolation.py::TestAlembicEnvActuallyCallsTheGate::test_the_right_database_passes",
  "tests/grounding/test_canary_isolation.py::TestAlembicEnvActuallyCallsTheGate::test_the_run_id_travels_to_the_child",
  "tests/grounding/test_canary_isolation.py::TestAlembicEnvActuallyCallsTheGate::test_without_the_run_id_nothing_changes",
  "tests/grounding/test_canary_isolation.py::TestAlembicGoesThroughTheSameGate::test_a_bad_env_stops_before_building_the_child",
  "tests/grounding/test_canary_isolation.py::TestAlembicGoesThroughTheSameGate::test_a_half_applied_schema_stops",
  "tests/grounding/test_canary_isolation.py::TestAlembicGoesThroughTheSameGate::test_only_the_allowlist_is_handed_down",
  "tests/grounding/test_canary_isolation.py::TestAlembicGoesThroughTheSameGate::test_the_command_is_a_separate_process",
  "tests/grounding/test_canary_isolation.py::TestAlembicGoesThroughTheSameGate::test_the_command_runs_the_gated_entry_not_bare_alembic",
  "tests/grounding/test_canary_isolation.py::TestAlembicGoesThroughTheSameGate::test_the_migration_connection_is_checked_inside",
  "tests/grounding/test_canary_isolation.py::TestAlembicGoesThroughTheSameGate::test_the_production_pointers_never_travel",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_a_database_without_the_run_id_stops",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_a_dir_outside_this_runs_root_stops",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_a_junk_run_id_stops[../../etc]",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_a_junk_run_id_stops[..]",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_a_junk_run_id_stops[A1B2C3D4]",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_a_junk_run_id_stops[XYZ]",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_a_junk_run_id_stops[]",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_a_junk_run_id_stops[a1b2]",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_a_junk_run_id_stops[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_a_junk_run_id_stops[theroad]",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_no_database_url_stops",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_no_projects_dir_stops",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_the_production_database_stops",
  "tests/grounding/test_canary_isolation.py::TestItRefusesToTouchTheRealThing::test_the_real_projects_dir_stops",
  "tests/grounding/test_canary_isolation.py::TestNoConnectionDetailsAreBakedIn::test_no_template_means_stop",
  "tests/grounding/test_canary_isolation.py::TestNoConnectionDetailsAreBakedIn::test_the_module_has_no_password",
  "tests/grounding/test_canary_isolation.py::TestNoConnectionDetailsAreBakedIn::test_the_url_is_built_by_the_parser_not_by_string_surgery",
  "tests/grounding/test_canary_isolation.py::TestNoConnectionDetailsAreBakedIn::test_with_neither_it_stops",
  "tests/grounding/test_canary_isolation.py::TestNoConnectionDetailsAreBakedIn::test_without_an_env_var_it_falls_back_to_dotenv",
  "tests/grounding/test_canary_isolation.py::TestTheAdminConnectionIsGated::test_an_admin_pointing_at_production_stops",
  "tests/grounding/test_canary_isolation.py::TestTheAdminConnectionIsGated::test_an_admin_that_is_not_the_maintenance_db_stops",
  "tests/grounding/test_canary_isolation.py::TestTheAdminConnectionIsGated::test_deriving_stops_when_there_is_no_source",
  "tests/grounding/test_canary_isolation.py::TestTheAdminConnectionIsGated::test_it_verifies_current_database_after_connecting",
  "tests/grounding/test_canary_isolation.py::TestTheAdminConnectionIsGated::test_no_admin_dsn_means_stop",
  "tests/grounding/test_canary_isolation.py::TestTheAdminConnectionIsGated::test_the_admin_dsn_is_derived_not_asked_for",
  "tests/grounding/test_canary_isolation.py::TestTheAlembicWrapperCanActuallyRun::test_alembic_can_read_it_and_find_a_head",
  "tests/grounding/test_canary_isolation.py::TestTheAlembicWrapperCanActuallyRun::test_the_backend_root_is_not_doubled",
  "tests/grounding/test_canary_isolation.py::TestTheAlembicWrapperCanActuallyRun::test_the_config_file_is_really_there",
  "tests/grounding/test_canary_isolation.py::TestTheCanaryUsesProductionPrompts::test_a_different_table_stops_instead_of_overwriting",
  "tests/grounding/test_canary_isolation.py::TestTheCanaryUsesProductionPrompts::test_a_source_that_is_not_production_stops",
  "tests/grounding/test_canary_isolation.py::TestTheCanaryUsesProductionPrompts::test_it_refuses_to_write_into_production",
  "tests/grounding/test_canary_isolation.py::TestTheCanaryUsesProductionPrompts::test_no_db_consulting_prompt_is_overridden",
  "tests/grounding/test_canary_isolation.py::TestTheCanaryUsesProductionPrompts::test_the_loader_falls_back_to_files_when_absent",
  "tests/grounding/test_canary_isolation.py::TestTheCanaryUsesProductionPrompts::test_the_password_is_never_in_argv",
  "tests/grounding/test_canary_isolation.py::TestTheCanaryUsesProductionPrompts::test_the_same_table_is_reused_not_recopied",
  "tests/grounding/test_canary_isolation.py::TestTheCanaryUsesProductionPrompts::test_the_schema_step_seeds_it",
  "tests/grounding/test_canary_isolation.py::TestTheCanaryUsesProductionPrompts::test_the_step_that_needs_it_is_in_the_plan",
  "tests/grounding/test_canary_isolation.py::TestTheGateMustNotVoidTheMigration::test_a_wrong_database_still_stops",
  "tests/grounding/test_canary_isolation.py::TestTheGateMustNotVoidTheMigration::test_it_closes_what_it_opened",
  "tests/grounding/test_canary_isolation.py::TestTheGateMustNotVoidTheMigration::test_it_does_nothing_when_not_a_canary",
  "tests/grounding/test_canary_isolation.py::TestTheLockComesBeforeTheConnection::test_it_notices_the_module_already_loaded",
  "tests/grounding/test_canary_isolation.py::TestTheLockComesBeforeTheConnection::test_it_passes_when_not_loaded",
  "tests/grounding/test_canary_isolation.py::TestTheRootHoldsEverything::test_outputs_and_journal_live_under_the_run_root",
  "tests/grounding/test_canary_isolation.py::TestTheSecretIsZeroInEveryArtifact::test_a_failure_path_writes_nothing_with_it",
  "tests/grounding/test_canary_isolation.py::TestTheSecretIsZeroInEveryArtifact::test_the_child_env_check_does_not_need_the_public_url",
  "tests/grounding/test_canary_isolation.py::TestTheSecretIsZeroInEveryArtifact::test_zero_occurrences_across_all_written_files",
  "tests/grounding/test_canary_isolation.py::TestTheSecretNeverShowsUp::test_a_broken_url_is_still_masked",
  "tests/grounding/test_canary_isolation.py::TestTheSecretNeverShowsUp::test_no_refusal_message_carries_it",
  "tests/grounding/test_canary_isolation.py::TestTheSecretNeverShowsUp::test_the_alembic_output_is_masked",
  "tests/grounding/test_canary_isolation.py::TestTheSecretNeverShowsUp::test_the_mask_removes_it",
  "tests/grounding/test_canary_isolation.py::TestTheSecretNeverShowsUp::test_the_public_return_has_no_full_url",
  "tests/grounding/test_canary_isolation.py::TestTheSecretNeverShowsUp::test_the_refusal_message_does_not_carry_it",
  "tests/grounding/test_canary_isolation.py::TestTheSecretNeverShowsUp::test_the_run_record_has_no_url",
  "tests/grounding/test_canary_isolation.py::TestTheSecretSurvivesTheUrlRoundTrip::test_the_admin_dsn_keeps_the_password",
  "tests/grounding/test_canary_isolation.py::TestTheSecretSurvivesTheUrlRoundTrip::test_the_canary_url_keeps_the_password",
  "tests/grounding/test_canary_isolation.py::TestTheSecretSurvivesTheUrlRoundTrip::test_the_password_length_survives",
  "tests/grounding/test_canary_isolation.py::TestTheSeedWasRemovedOnPurpose::test_no_db_consulting_prompt_is_overridden",
  "tests/grounding/test_canary_isolation.py::TestTheSeedWasRemovedOnPurpose::test_the_module_still_runs_as_a_script",
  "tests/grounding/test_canary_isolation.py::TestTheSeedWasRemovedOnPurpose::test_the_schema_step_does_not_seed",
  "tests/grounding/test_canary_isolation.py::TestThereIsNoWayToDeleteFromHere::test_creating_is_add_only",
  "tests/grounding/test_canary_isolation.py::TestThereIsNoWayToDeleteFromHere::test_the_module_has_no_drop",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_a_correction_without_any_physical_number_is_refused",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_a_debit_below_the_known_upper_is_refused",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_a_second_correction_supersedes",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_a_status_correction_still_works",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_a_usage_correction_does_not_touch_the_status",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_an_exact_number_is_allowed_too",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_it_is_counted_exactly_once",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_it_refuses_when_it_misread_the_current_value",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_logical_and_physical_are_kept_apart",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_the_correction_changes_the_cumulative",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_the_debit_changes_the_cumulative",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_the_original_row_is_untouched",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestAUsageCorrectionActuallyMovesTheTotal::test_the_unknown_stays_unknown",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestItReadsBackWhatActuallyHappened::test_a_missing_checkpoint_is_not_finished",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestItReadsBackWhatActuallyHappened::test_anything_else_stops[]",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestItReadsBackWhatActuallyHappened::test_anything_else_stops[blocked]",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestItReadsBackWhatActuallyHappened::test_anything_else_stops[failed]",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestItReadsBackWhatActuallyHappened::test_anything_else_stops[running]",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestItReadsBackWhatActuallyHappened::test_the_finished_states_pass[completed]",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestItReadsBackWhatActuallyHappened::test_the_finished_states_pass[not_applicable]",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestItReadsBackWhatActuallyHappened::test_the_finished_states_pass[partial]",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestItReadsBackWhatActuallyHappened::test_the_real_crashed_run_would_be_caught",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTheLedgerIsAppendOnly::test_a_code_transition_is_recorded_too",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTheLedgerIsAppendOnly::test_a_correction_is_a_new_row",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTheLedgerIsAppendOnly::test_an_event_row_is_not_counted_as_a_run",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTheLedgerIsAppendOnly::test_an_unknown_event_is_refused",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTheLedgerIsAppendOnly::test_it_refuses_to_correct_what_it_misread",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTheLedgerIsAppendOnly::test_the_effective_status_follows_the_correction",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTheTransportRowCarriesTheRealAttemptId::test_a_row_bound_to_that_id_is_settled_after_it_closes",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTheTransportRowCarriesTheRealAttemptId::test_the_pipeline_takes_the_given_id",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTheTransportRowCarriesTheRealAttemptId::test_the_run_makes_the_id_before_the_pipeline",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTransportIsNotDebitedTwice::test_a_broken_line_stops",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTransportIsNotDebitedTwice::test_a_row_with_no_attempt_is_adopted",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTransportIsNotDebitedTwice::test_a_settled_attempts_transport_is_not_adopted",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTransportIsNotDebitedTwice::test_an_open_attempts_transport_is_adopted",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTransportIsNotDebitedTwice::test_reopening_a_settled_attempt_does_not_lower_it_twice",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTransportIsNotDebitedTwice::test_scopes_do_not_mix",
  "tests/grounding/test_canary_ledger_tells_the_truth.py::TestTransportIsNotDebitedTwice::test_the_run_uses_the_reconciler",
  "tests/grounding/test_canary_locks_both_layers.py::TestAnInnerScopeCannotHideCalls::test_it_is_put_back",
  "tests/grounding/test_canary_locks_both_layers.py::TestAnInnerScopeCannotHideCalls::test_it_stops_before_the_network",
  "tests/grounding/test_canary_locks_both_layers.py::TestAnInnerScopeCannotHideCalls::test_the_step_scope_really_replaces_the_budget",
  "tests/grounding/test_canary_locks_both_layers.py::TestAnInnerScopeCannotHideCalls::test_the_transport_counter_still_sees_them",
  "tests/grounding/test_canary_locks_both_layers.py::TestBootstrapAndPipelineAreSeparateScopes::test_switching_scope_starts_a_new_count",
  "tests/grounding/test_canary_locks_both_layers.py::TestBootstrapAndPipelineAreSeparateScopes::test_the_run_opens_bootstrap_first_then_pipeline",
  "tests/grounding/test_canary_locks_both_layers.py::TestBootstrapAndPipelineAreSeparateScopes::test_the_run_opens_only_what_is_left",
  "tests/grounding/test_canary_locks_both_layers.py::TestItPicksUpWhereADeadRunLeftOff::test_adopt_never_lowers_it",
  "tests/grounding/test_canary_locks_both_layers.py::TestItPicksUpWhereADeadRunLeftOff::test_adopt_raises_the_count",
  "tests/grounding/test_canary_locks_both_layers.py::TestItPicksUpWhereADeadRunLeftOff::test_the_cap_still_holds_after_adopting",
  "tests/grounding/test_canary_locks_both_layers.py::TestItPicksUpWhereADeadRunLeftOff::test_the_record_is_append_only",
  "tests/grounding/test_canary_locks_both_layers.py::TestItPicksUpWhereADeadRunLeftOff::test_the_run_reads_the_record_back",
  "tests/grounding/test_canary_locks_both_layers.py::TestItSurvivesAnActualProcessDeath::test_the_next_run_reconciles_it",
  "tests/grounding/test_canary_locks_both_layers.py::TestItSurvivesAnActualProcessDeath::test_the_record_is_there_after_the_kill",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheClientLockActuallyPins::test_a_client_built_with_a_bad_value_still_stops",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheClientLockActuallyPins::test_a_client_built_without_the_kwarg_gets_zero",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheCounterIsThreadSafe::test_exactly_the_cap_gets_through",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheCounterIsThreadSafe::test_one_over_is_refused",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheCounterIsThreadSafe::test_the_durable_record_ends_at_the_cap",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheLockClosesBothLayers::test_everything_is_put_back",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheLockClosesBothLayers::test_it_closes_the_tier_fallback",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheLockClosesBothLayers::test_it_injects_zero_before_sending",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheObservationIsTheEvidence::test_a_nonzero_client_stops",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheObservationIsTheEvidence::test_all_zero_passes",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheObservationIsTheEvidence::test_no_observation_is_not_a_failure",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheObservationIsTheEvidence::test_the_spy_records_what_the_client_got",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheSdkLayerCanActuallyBePinned::test_the_default_client_retries_twice",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheSdkLayerCanActuallyBePinned::test_zero_reaches_the_client",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheTransportRecordSurvivesDeath::test_a_denial_is_written_too",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheTransportRecordSurvivesDeath::test_it_refuses_to_send_when_it_cannot_record",
  "tests/grounding/test_canary_locks_both_layers.py::TestTheTransportRecordSurvivesDeath::test_it_writes_before_every_send",
  "tests/grounding/test_canary_outbound_gates.py::TestABadCapIsRefused::test_it_stops[-1]",
  "tests/grounding/test_canary_outbound_gates.py::TestABadCapIsRefused::test_it_stops[1.5]",
  "tests/grounding/test_canary_outbound_gates.py::TestABadCapIsRefused::test_it_stops[3]",
  "tests/grounding/test_canary_outbound_gates.py::TestABadCapIsRefused::test_it_stops[None]",
  "tests/grounding/test_canary_outbound_gates.py::TestABadCapIsRefused::test_it_stops[True]",
  "tests/grounding/test_canary_outbound_gates.py::TestEverythingIsPutBack::test_production_is_restored",
  "tests/grounding/test_canary_outbound_gates.py::TestTheDownloadGateCountsOperations::test_an_operation_is_one_reservation",
  "tests/grounding/test_canary_outbound_gates.py::TestTheDownloadGateCountsOperations::test_raw_fetches_are_observed_not_capped",
  "tests/grounding/test_canary_outbound_gates.py::TestTheDownloadGateCountsOperations::test_the_real_function_tries_both_urls",
  "tests/grounding/test_canary_outbound_gates.py::TestTheOwnerCoverageGateStandsBeforeBuying::test_a_missing_lane_refuses",
  "tests/grounding/test_canary_outbound_gates.py::TestTheOwnerCoverageGateStandsBeforeBuying::test_all_five_pass",
  "tests/grounding/test_canary_outbound_gates.py::TestTheOwnerCoverageGateStandsBeforeBuying::test_the_gate_runs_before_the_first_call",
  "tests/grounding/test_canary_outbound_gates.py::TestTheSearchGateStopsBeforeTheNetwork::test_it_lets_the_approved_number_through",
  "tests/grounding/test_canary_outbound_gates.py::TestTheSearchGateStopsBeforeTheNetwork::test_the_next_one_never_reaches_the_provider",
  "tests/grounding/test_canary_outbound_gates.py::TestTheTextBudgetCannotSeeThesePaths::test_search_does_not_go_through_litellm",
  "tests/grounding/test_canary_pipeline.py::TestAKilledProcessStillLeavesATrace::test_an_open_attempt_is_not_counted_as_zero",
  "tests/grounding/test_canary_pipeline.py::TestAKilledProcessStillLeavesATrace::test_the_next_run_buys_nothing",
  "tests/grounding/test_canary_pipeline.py::TestAKilledProcessStillLeavesATrace::test_the_open_attempt_survives_the_kill",
  "tests/grounding/test_canary_pipeline.py::TestAKilledProcessStillLeavesATrace::test_two_attempts_cannot_be_open_at_once",
  "tests/grounding/test_canary_pipeline.py::TestAReopenPassRunsOnlyWhatItReopened::test_a_normal_pass_keeps_every_step",
  "tests/grounding/test_canary_pipeline.py::TestAReopenPassRunsOnlyWhatItReopened::test_an_unknown_step_stops",
  "tests/grounding/test_canary_pipeline.py::TestAReopenPassRunsOnlyWhatItReopened::test_it_narrows_the_step_list",
  "tests/grounding/test_canary_pipeline.py::TestItDoesNotRunWithoutLive::test_a_dry_call_runs_nothing",
  "tests/grounding/test_canary_pipeline.py::TestItDoesNotRunWithoutLive::test_the_free_steps_are_named_up_front",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_a_crash_records_where_it_stopped",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_a_free_step_that_sends_stops_the_run",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_a_gate_that_recomputes_a_larger_cap_opens_the_step_that_wide",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_a_producer_gate_runs_before_the_step_and_a_raise_stops_before_it",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_a_recompute_beyond_the_remaining_ceiling_stops_before_the_step",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_a_step_outside_the_paid_list_may_not_send",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_every_applied_step_runs_once",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_every_step_of_the_closure_runs_once",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_going_over_a_step_cap_stops",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_it_writes_after_every_step",
  "tests/grounding/test_canary_pipeline.py::TestOneStepAtATime::test_the_ceiling_ends_the_run_as_inconclusive",
  "tests/grounding/test_canary_pipeline.py::TestPartialIsNotACapZeroReuse::test_the_gate_reads_the_reuse_set_not_the_finished_set",
  "tests/grounding/test_canary_pipeline.py::TestPartialIsNotACapZeroReuse::test_the_reuse_set_excludes_partial",
  "tests/grounding/test_canary_pipeline.py::TestTheCeilingIsForTheWholeRunNotOneAttempt::test_a_broken_ledger_stops",
  "tests/grounding/test_canary_pipeline.py::TestTheCeilingIsForTheWholeRunNotOneAttempt::test_a_stop_reason_is_recorded_in_the_attempt",
  "tests/grounding/test_canary_pipeline.py::TestTheCeilingIsForTheWholeRunNotOneAttempt::test_an_attempt_without_a_number_stops",
  "tests/grounding/test_canary_pipeline.py::TestTheCeilingIsForTheWholeRunNotOneAttempt::test_it_stops_at_the_run_wide_ceiling",
  "tests/grounding/test_canary_pipeline.py::TestTheCeilingIsForTheWholeRunNotOneAttempt::test_nothing_left_refuses_before_provider",
  "tests/grounding/test_canary_pipeline.py::TestTheCeilingIsForTheWholeRunNotOneAttempt::test_the_third_attempt_sees_the_cumulative",
  "tests/grounding/test_canary_pipeline.py::TestTheCeilingIsForTheWholeRunNotOneAttempt::test_two_attempts_both_survive",
  "tests/grounding/test_canary_pipeline.py::TestTheGateStandsBeforeTheProviderNotAfter::test_a_free_step_never_reaches_the_provider_either",
  "tests/grounding/test_canary_pipeline.py::TestTheGateStandsBeforeTheProviderNotAfter::test_a_metered_step_beyond_its_own_cap_is_cut_at_its_cap",
  "tests/grounding/test_canary_pipeline.py::TestTheGateStandsBeforeTheProviderNotAfter::test_a_step_outside_the_paid_list_never_reaches_the_provider",
  "tests/grounding/test_canary_pipeline.py::TestTheGateStandsBeforeTheProviderNotAfter::test_the_run_wide_cap_still_holds_at_the_same_time",
  "tests/grounding/test_canary_pipeline.py::TestTheTextLedgerCannotSeeImages::test_a_free_step_that_touches_the_image_door_is_a_misclassification",
  "tests/grounding/test_canary_pipeline.py::TestTheTextLedgerCannotSeeImages::test_a_step_that_buys_within_approval_goes_on",
  "tests/grounding/test_canary_pipeline.py::TestTheTextLedgerCannotSeeImages::test_a_step_that_buys_within_approval_still_stops",
  "tests/grounding/test_canary_pipeline.py::TestTheTextLedgerCannotSeeImages::test_an_unapproved_image_stops_at_the_door",
  "tests/grounding/test_canary_pipeline.py::TestTheTextLedgerCannotSeeImages::test_beyond_the_run_wide_image_cap_the_door_stops",
  "tests/grounding/test_canary_pipeline.py::TestTheTextLedgerCannotSeeImages::test_nothing_touching_images_leaves_zeros",
  "tests/grounding/test_canary_pipeline.py::TestTheTextLedgerCannotSeeImages::test_the_ledger_writes_images_apart_from_text",
  "tests/grounding/test_canary_report_acceptance.py::TestItPassesOnlyWhenNothingIsUnknown::test_a_changed_sentinel_is_a_mismatch",
  "tests/grounding/test_canary_report_acceptance.py::TestItPassesOnlyWhenNothingIsUnknown::test_a_clean_run_passes",
  "tests/grounding/test_canary_report_acceptance.py::TestItPassesOnlyWhenNothingIsUnknown::test_a_rebought_step_is_a_mismatch",
  "tests/grounding/test_canary_report_acceptance.py::TestItPassesOnlyWhenNothingIsUnknown::test_a_skipped_step_with_no_record_is_a_mismatch",
  "tests/grounding/test_canary_report_acceptance.py::TestItPassesOnlyWhenNothingIsUnknown::test_an_image_purchase_is_a_mismatch",
  "tests/grounding/test_canary_report_acceptance.py::TestItPassesOnlyWhenNothingIsUnknown::test_an_open_attempt_is_a_mismatch",
  "tests/grounding/test_canary_report_acceptance.py::TestItPassesOnlyWhenNothingIsUnknown::test_an_unreadable_db_is_undecided_not_a_pass",
  "tests/grounding/test_canary_report_acceptance.py::TestOpikIsASubsetNotTheSourceOfTruthForMoney::test_a_zero_from_a_bad_time_window_is_not_reported_as_a_gap",
  "tests/grounding/test_canary_report_acceptance.py::TestOpikIsASubsetNotTheSourceOfTruthForMoney::test_an_attempt_without_times_is_not_counted_as_a_gap",
  "tests/grounding/test_canary_report_acceptance.py::TestOpikIsASubsetNotTheSourceOfTruthForMoney::test_it_counts_llm_spans_not_only_top_level_traces",
  "tests/grounding/test_canary_report_acceptance.py::TestOpikIsASubsetNotTheSourceOfTruthForMoney::test_the_opik_logger_really_has_no_failure_hook",
  "tests/grounding/test_canary_report_acceptance.py::TestOpikIsASubsetNotTheSourceOfTruthForMoney::test_the_report_says_the_ledger_is_the_source_of_truth",
  "tests/grounding/test_canary_report_acceptance.py::TestOpikIsASubsetNotTheSourceOfTruthForMoney::test_without_a_binding_key_it_refuses_instead_of_saying_zero",
  "tests/grounding/test_canary_report_acceptance.py::TestTheFixtureMatchesWhatProductionWrites::test_acceptance_reads_what_the_real_writer_wrote",
  "tests/grounding/test_canary_report_acceptance.py::TestTheFixtureMatchesWhatProductionWrites::test_the_real_writer_produces_strings",
  "tests/grounding/test_canary_report_acceptance.py::TestTheStartingNumbersComeFromTheLedgerNotMyHand::test_a_stale_hardcoded_start_is_a_mismatch",
  "tests/grounding/test_canary_report_acceptance.py::TestTheStartingNumbersComeFromTheLedgerNotMyHand::test_an_open_prior_attempt_is_not_counted_into_the_start",
  "tests/grounding/test_canary_report_acceptance.py::TestTheStartingNumbersComeFromTheLedgerNotMyHand::test_the_next_run_starts_at_forty_two",
  "tests/grounding/test_canary_report_acceptance.py::TestTimeIsComparedAsAMomentNotAsText::test_a_naive_stamp_stops_instead_of_guessing",
  "tests/grounding/test_canary_report_acceptance.py::TestTimeIsComparedAsAMomentNotAsText::test_a_utc_stamp_after_the_kst_start_is_not_prior",
  "tests/grounding/test_canary_report_acceptance.py::TestTimeIsComparedAsAMomentNotAsText::test_a_utc_stamp_before_the_kst_start_is_prior",
  "tests/grounding/test_canary_report_acceptance.py::TestWhatItCountsAsAlreadyDone::test_a_step_finished_inside_this_attempt_does_not_count_as_prior",
  "tests/grounding/test_canary_report_acceptance.py::TestWhatItCountsAsAlreadyDone::test_it_reads_the_db_instead_of_a_hand_written_list",
  "tests/grounding/test_canary_request_lock.py::TestADeniedCallDoesNotEatTheApproval::test_a_denied_reservation_does_not_move_the_counter",
  "tests/grounding/test_canary_request_lock.py::TestADeniedCallDoesNotEatTheApproval::test_the_counter_moves_only_when_the_inner_gate_lets_it_through",
  "tests/grounding/test_canary_request_lock.py::TestADeniedCallDoesNotEatTheApproval::test_the_gate_is_still_before_the_network",
  "tests/grounding/test_canary_request_lock.py::TestItReallyChangesTheValue::test_inside_the_lock_the_setting_is_zero",
  "tests/grounding/test_canary_request_lock.py::TestItReallyChangesTheValue::test_it_restores_even_on_error",
  "tests/grounding/test_canary_request_lock.py::TestItReallyChangesTheValue::test_the_router_is_built_with_zero",
  "tests/grounding/test_canary_request_lock.py::TestPuttingItBackMustFail::test_a_router_with_retries_is_refused",
  "tests/grounding/test_canary_request_lock.py::TestPuttingItBackMustFail::test_an_already_built_router_cannot_be_locked",
  "tests/grounding/test_canary_request_lock.py::TestPuttingItBackMustFail::test_an_unreadable_router_is_unknown_not_locked",
  "tests/grounding/test_canary_request_lock.py::TestPuttingItBackMustFail::test_an_unreadable_router_stops_the_run",
  "tests/grounding/test_canary_request_lock.py::TestPuttingItBackMustFail::test_no_router_at_all_stops",
  "tests/grounding/test_canary_request_lock.py::TestTheBootstrapIsInsideTheLockToo::test_building_a_router_inside_the_lock_stays_zero",
  "tests/grounding/test_canary_request_lock.py::TestTheBootstrapIsInsideTheLockToo::test_it_checks_the_router_after_the_bootstrap",
  "tests/grounding/test_canary_request_lock.py::TestTheBootstrapIsInsideTheLockToo::test_the_lock_opens_before_the_bootstrap",
  "tests/grounding/test_canary_request_lock.py::TestTheRunUsesIt::test_the_contract_does_not_claim_to_pin_fallback",
  "tests/grounding/test_canary_request_lock.py::TestTheRunUsesIt::test_the_contract_now_pins_all_three_layers",
  "tests/grounding/test_canary_request_lock.py::TestTheRunUsesIt::test_the_pipeline_stage_is_wrapped",
  "tests/grounding/test_canary_request_lock.py::TestTheRunUsesIt::test_what_the_contract_says_is_what_the_lock_does",
  "tests/grounding/test_canary_resume_gate.py::TestASwallowedDenialIsNotSuccess::test_the_pipeline_stops_on_a_denied_reuse",
  "tests/grounding/test_canary_resume_gate.py::TestSupersedesIsActuallyResolved::test_a_transition_with_other_terms_stops",
  "tests/grounding/test_canary_resume_gate.py::TestSupersedesIsActuallyResolved::test_only_the_superseding_row_counts",
  "tests/grounding/test_canary_resume_gate.py::TestSupersedesIsActuallyResolved::test_two_events_in_the_same_second_are_told_apart",
  "tests/grounding/test_canary_resume_gate.py::TestTheCentralStepGetsItsOwnCap::test_a_fixture_without_declared_targets_stops",
  "tests/grounding/test_canary_resume_gate.py::TestTheCentralStepGetsItsOwnCap::test_search_and_download_are_one_and_many_per_round",
  "tests/grounding/test_canary_resume_gate.py::TestTheCentralStepGetsItsOwnCap::test_the_candidate_cap_comes_from_the_shared_constant",
  "tests/grounding/test_canary_resume_gate.py::TestTheCentralStepGetsItsOwnCap::test_the_cap_comes_from_the_declared_targets",
  "tests/grounding/test_canary_resume_gate.py::TestTheCentralStepGetsItsOwnCap::test_the_per_round_number_counts_what_production_wires",
  "tests/grounding/test_canary_resume_gate.py::TestTheCentralStepGetsItsOwnCap::test_the_per_round_number_matches_the_real_function",
  "tests/grounding/test_canary_resume_gate.py::TestTheCentralStepGetsItsOwnCap::test_the_plan_uses_it",
  "tests/grounding/test_canary_resume_gate.py::TestTheCentralStepGetsItsOwnCap::test_the_production_obligation_count_raises_the_cap_but_never_lowers_it",
  "tests/grounding/test_canary_resume_gate.py::TestTheCentralStepGetsItsOwnCap::test_the_three_doors_are_different_numbers",
  "tests/grounding/test_canary_resume_gate.py::TestTheFirstRunIsNotOverwritten::test_a_resume_writes_its_own_file",
  "tests/grounding/test_canary_resume_gate.py::TestTheRunCanMoveMoreThanOnce::test_a_hop_that_starts_somewhere_else_is_not_valid",
  "tests/grounding/test_canary_resume_gate.py::TestTheRunCanMoveMoreThanOnce::test_a_loop_stops",
  "tests/grounding/test_canary_resume_gate.py::TestTheRunCanMoveMoreThanOnce::test_a_superseded_hop_drops_out",
  "tests/grounding/test_canary_resume_gate.py::TestTheRunCanMoveMoreThanOnce::test_the_lineage_follows_every_hop",
  "tests/grounding/test_canary_resume_gate.py::TestTheRunCanMoveMoreThanOnce::test_the_order_is_the_number_not_the_clock",
  "tests/grounding/test_canary_resume_gate.py::TestTheRunCanMoveMoreThanOnce::test_the_second_hop_is_checked_the_same_way",
  "tests/grounding/test_canary_resume_gate.py::TestTheRunCanMoveMoreThanOnce::test_the_tip_moves_when_the_run_actually_runs_again",
  "tests/grounding/test_canary_resume_gate.py::TestTheRunCanMoveMoreThanOnce::test_two_live_hops_from_one_tip_stop",
  "tests/grounding/test_canary_resume_gate.py::TestTheTransitionGateIsActuallyCalled::test_a_dirty_tree_stops",
  "tests/grounding/test_canary_resume_gate.py::TestTheTransitionGateIsActuallyCalled::test_a_new_run_needs_no_transition",
  "tests/grounding/test_canary_resume_gate.py::TestTheTransitionGateIsActuallyCalled::test_a_new_tip_without_a_transition_stops",
  "tests/grounding/test_canary_resume_gate.py::TestTheTransitionGateIsActuallyCalled::test_run_calls_it_before_anything_paid",
  "tests/grounding/test_canary_resume_gate.py::TestTheTransitionGateIsActuallyCalled::test_the_same_code_needs_no_transition",
  "tests/grounding/test_canary_run.py::TestANarrowedRunDoesOnlyWhatItSays::test_an_empty_list_stops",
  "tests/grounding/test_canary_run.py::TestANarrowedRunDoesOnlyWhatItSays::test_it_zeroes_the_outbound_doors_and_keeps_text",
  "tests/grounding/test_canary_run.py::TestANarrowedRunDoesOnlyWhatItSays::test_main_parses_steps_into_the_run",
  "tests/grounding/test_canary_run.py::TestANarrowedRunDoesOnlyWhatItSays::test_replay_and_steps_together_stop",
  "tests/grounding/test_canary_run.py::TestIsolationComesBeforeAnyAppImport::test_building_the_plan_really_pulls_the_db_module",
  "tests/grounding/test_canary_run.py::TestIsolationComesBeforeAnyAppImport::test_the_env_is_set_before_the_plan_is_built",
  "tests/grounding/test_canary_run.py::TestItRefusesToMeasureFromTheWrongPlace::test_it_stops_when_the_cwd_is_wrong",
  "tests/grounding/test_canary_run.py::TestItRefusesToMeasureFromTheWrongPlace::test_it_stops_when_the_env_file_is_missing",
  "tests/grounding/test_canary_run.py::TestItRefusesToMeasureFromTheWrongPlace::test_module_paths_do_not_depend_on_the_cwd",
  "tests/grounding/test_canary_run.py::TestItRefusesToMeasureFromTheWrongPlace::test_the_paid_entry_checks_it_first",
  "tests/grounding/test_canary_run.py::TestItStopsBeforeOpeningAnythingWhenThePlanLies::test_a_contradicting_declaration_stops_at_build_plan",
  "tests/grounding/test_canary_run.py::TestItStopsBeforeOpeningAnythingWhenThePlanLies::test_build_plan_runs_before_the_database_and_the_ledger",
  "tests/grounding/test_canary_run.py::TestItStopsBeforeOpeningAnythingWhenThePlanLies::test_the_fixture_declares_only_what_it_can_set",
  "tests/grounding/test_canary_run.py::TestSlotsFollowTheProviderNotTheAliasName::test_plan_rows_pass_the_manifest_provider",
  "tests/grounding/test_canary_run.py::TestSlotsFollowTheProviderNotTheAliasName::test_provider_wins",
  "tests/grounding/test_canary_run.py::TestSlotsFollowTheProviderNotTheAliasName::test_without_provider_the_physical_model_decides",
  "tests/grounding/test_canary_run.py::TestTheApprovedCeilingIsTheGate::test_a_computation_above_the_approval_stops",
  "tests/grounding/test_canary_run.py::TestTheApprovedCeilingIsTheGate::test_an_unknown_step_stops_before_anything",
  "tests/grounding/test_canary_run.py::TestTheApprovedCeilingIsTheGate::test_the_computed_number_is_reported_separately",
  "tests/grounding/test_canary_run.py::TestTheApprovedCeilingIsTheGate::test_the_expected_is_inside_but_the_worst_case_is_above",
  "tests/grounding/test_canary_run.py::TestTheApprovedCeilingIsTheGate::test_the_gate_uses_the_approved_number",
  "tests/grounding/test_canary_run.py::TestTheCapsComeFromTheFixtureNotAConstant::test_a_fan_out_step_gets_the_fixture_cap",
  "tests/grounding/test_canary_run.py::TestTheCapsComeFromTheFixtureNotAConstant::test_growing_the_manuscript_moves_the_number",
  "tests/grounding/test_canary_run.py::TestTheCapsComeFromTheFixtureNotAConstant::test_the_dimensions_are_read_from_the_manuscript",
  "tests/grounding/test_canary_run.py::TestTheCapsComeFromTheFixtureNotAConstant::test_the_expected_still_fits_the_approved_stop_line",
  "tests/grounding/test_canary_run.py::TestTheLockWrapsBothPaidStages::test_a_dirty_router_stops_everything_with_zero_bought",
  "tests/grounding/test_canary_run.py::TestTheLockWrapsBothPaidStages::test_both_stages_see_a_locked_router",
  "tests/grounding/test_canary_run.py::TestTheLockWrapsBothPaidStages::test_the_router_is_ready_before_the_first_purchase",
  "tests/grounding/test_canary_run.py::TestTheOrderIsTheContract::test_a_dry_run_stops_before_buying",
  "tests/grounding/test_canary_run.py::TestTheOrderIsTheContract::test_it_writes_what_it_did",
  "tests/grounding/test_canary_run.py::TestTheOrderIsTheContract::test_the_five_stages_are_in_this_order",
  "tests/grounding/test_canary_run.py::TestThePlanIsWhatWeAgreed::test_nothing_applied_is_unknown",
  "tests/grounding/test_canary_run.py::TestThePlanIsWhatWeAgreed::test_the_bootstrap_cap_is_separate",
  "tests/grounding/test_canary_run.py::TestThePlanIsWhatWeAgreed::test_the_free_steps_are_the_three",
  "tests/grounding/test_canary_run.py::TestThePlanIsWhatWeAgreed::test_the_free_steps_include_the_code_step",
  "tests/grounding/test_canary_run.py::TestThePlanIsWhatWeAgreed::test_the_grounding_steps_are_skipped_while_d_is_inert",
  "tests/grounding/test_canary_run.py::TestTheReplayPassCannotBuyPictures::test_a_normal_pass_reopens_nothing",
  "tests/grounding/test_canary_run.py::TestTheReplayPassCannotBuyPictures::test_it_reopens_only_the_central_step",
  "tests/grounding/test_canary_run.py::TestTheReplayPassCannotBuyPictures::test_it_zeroes_the_two_outbound_doors",
  "tests/grounding/test_canary_run.py::TestTheReplayPassCannotBuyPictures::test_the_run_passes_reopen_and_the_zeroed_doors_down",
  "tests/grounding/test_canary_run.py::TestTheReportNamesWhatIsReallyThere::test_a_dirty_path_it_names_actually_exists",
  "tests/grounding/test_canary_run.py::TestTheReportNamesWhatIsReallyThere::test_it_prints_the_file_it_actually_wrote",
  "tests/grounding/test_canary_run.py::TestTheStepGateUsesTheContractWeActuallyLocked::test_build_plan_is_the_only_place_that_injects_the_contract",
  "tests/grounding/test_canary_run.py::TestTheStepGateUsesTheContractWeActuallyLocked::test_the_gate_is_six_and_eighteen",
  "tests/grounding/test_canary_run.py::TestTheStepGateUsesTheContractWeActuallyLocked::test_the_gate_is_wider_with_fallback_on",
  "tests/grounding/test_canary_run.py::TestTheStepGateUsesTheContractWeActuallyLocked::test_the_gate_matches_the_locked_contract",
  "tests/grounding/test_canary_run.py::TestTheStepGateUsesTheContractWeActuallyLocked::test_the_locked_contract_pins_every_layer_below_the_door",
  "tests/grounding/test_canary_run.py::TestTheStepGateUsesTheContractWeActuallyLocked::test_the_locked_contract_says_fallback_is_not_locked",
  "tests/grounding/test_canary_run.py::TestTheStepGateUsesTheContractWeActuallyLocked::test_the_pipeline_receives_that_very_plan",
  "tests/grounding/test_canary_run.py::TestTheStepGateUsesTheContractWeActuallyLocked::test_the_plan_carries_the_locked_contract",
  "tests/grounding/test_canary_run.py::TestTheStepGateUsesTheContractWeActuallyLocked::test_the_run_hands_the_locked_contract_to_the_pipeline",
  "tests/grounding/test_canary_run.py::TestWhatWeBoughtIsSavedBeforeAnyGate::test_the_pipeline_stage_is_saved_before_the_next_gate",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestOneChangedAxisStopsBeforeTheProvider::test_it_refuses[fixture-canary_one_scene]",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestOneChangedAxisStopsBeforeTheProvider::test_it_refuses[mode-legacy]",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestOneChangedAxisStopsBeforeTheProvider::test_it_refuses[target-scene_detail]",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestOneChangedAxisStopsBeforeTheProvider::test_the_same_scenario_passes",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheCliDoesNotFallBackQuietly::test_it_builds_a_scenario_and_passes_it",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheCliDoesNotFallBackQuietly::test_it_takes_all_three",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheCodeTransitionCannotBeMadeUp::test_a_matching_prefix_is_accepted",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheCodeTransitionCannotBeMadeUp::test_a_run_without_a_recorded_tip_stops",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheCodeTransitionCannotBeMadeUp::test_a_wrong_from_tip_stops",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheCodeTransitionCannotBeMadeUp::test_it_reads_the_tip_from_the_run",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheLiveChainActuallyThreadsIt::test_run_builds_the_plan_from_the_scenario",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheLiveChainActuallyThreadsIt::test_run_checks_the_scope_before_paying",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheLiveChainActuallyThreadsIt::test_the_bootstrap_gets_the_fixture",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheLiveChainActuallyThreadsIt::test_the_env_gets_the_mode",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheLiveChainActuallyThreadsIt::test_the_manuscript_comes_from_the_fixture",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheLiveChainActuallyThreadsIt::test_the_pipeline_gets_this_modes_approval",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheOutputNamesTheNumberHonestly::test_the_field_is_renamed",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheOutputNamesTheNumberHonestly::test_the_run_output_carries_the_identity",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestThePlanIsBuiltFromIt::test_all_three_axes_reach_the_plan",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestThePlanIsBuiltFromIt::test_no_argument_still_means_legacy",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestThePlanIsBuiltFromIt::test_the_numbers_are_the_approved_ones",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestThePlanIsBuiltFromIt::test_the_numbers_come_from_the_central_target_count",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestThePlanIsBuiltFromIt::test_the_planning_number_is_compared_with_the_stop_line",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestThePlanIsBuiltFromIt::test_the_planning_number_is_inside_the_stop_line",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheScenarioIsOneValue::test_it_carries_the_approval_of_that_mode",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheScenarioIsOneValue::test_it_refuses_an_unknown_axis",
  "tests/grounding/test_canary_scenario_reaches_the_end.py::TestTheScenarioIsOneValue::test_the_legacy_approval_is_not_inherited",
  "tests/grounding/test_canary_shot_selector.py::TestEachConditionActuallyBlocks::test_a_wrong_hash_is_rejected",
  "tests/grounding/test_canary_shot_selector.py::TestEachConditionActuallyBlocks::test_an_asset_coordinate_is_rejected",
  "tests/grounding/test_canary_shot_selector.py::TestEachConditionActuallyBlocks::test_no_base_ref_is_rejected",
  "tests/grounding/test_canary_shot_selector.py::TestEachConditionActuallyBlocks::test_no_sidecar_is_rejected",
  "tests/grounding/test_canary_shot_selector.py::TestEachConditionActuallyBlocks::test_only_one_purpose_is_rejected",
  "tests/grounding/test_canary_shot_selector.py::TestEachConditionActuallyBlocks::test_over_capability_is_rejected",
  "tests/grounding/test_canary_shot_selector.py::TestItCanActuallyFindOne::test_a_proper_shot_is_found",
  "tests/grounding/test_canary_shot_selector.py::TestItCanActuallyFindOne::test_two_same_photos_fold_into_one",
  "tests/grounding/test_canary_shot_selector.py::TestItSaysWhyWhenThereAreNone::test_an_empty_result_carries_its_reason",
  "tests/grounding/test_canary_shot_selector.py::TestItSaysWhyWhenThereAreNone::test_no_projects_dir_is_not_a_silent_zero",
  "tests/grounding/test_canary_shot_selector.py::TestOnlyAFinishedCheckpointCounts::test_a_failed_count_above_zero_is_rejected",
  "tests/grounding/test_canary_shot_selector.py::TestOnlyAFinishedCheckpointCounts::test_an_unfinished_manifest_is_rejected[]",
  "tests/grounding/test_canary_shot_selector.py::TestOnlyAFinishedCheckpointCounts::test_an_unfinished_manifest_is_rejected[failed]",
  "tests/grounding/test_canary_shot_selector.py::TestOnlyAFinishedCheckpointCounts::test_an_unfinished_manifest_is_rejected[partial]",
  "tests/grounding/test_canary_shot_selector.py::TestOnlyAFinishedCheckpointCounts::test_an_unfinished_manifest_is_rejected[running]",
  "tests/grounding/test_canary_shot_selector.py::TestTheChoiceComesFromTheRealAssembly::test_a_disagreeing_assembly_is_rejected",
  "tests/grounding/test_canary_shot_selector.py::TestTheChoiceComesFromTheRealAssembly::test_a_raising_assembly_is_recorded_not_swallowed",
  "tests/grounding/test_canary_shot_selector.py::TestTheChoiceComesFromTheRealAssembly::test_it_falls_through_to_the_next_shot",
  "tests/grounding/test_canary_shot_selector.py::TestTheChoiceComesFromTheRealAssembly::test_without_an_assembly_nothing_is_chosen",
  "tests/grounding/test_canary_shot_selector.py::TestTheOneSceneFixtureYieldsExactlyOne::test_both_sign_shots_are_eligible",
  "tests/grounding/test_canary_shot_selector.py::TestTheOneSceneFixtureYieldsExactlyOne::test_dropping_the_second_scene_shot_is_seen",
  "tests/grounding/test_canary_shot_selector.py::TestTheOneSceneFixtureYieldsExactlyOne::test_every_shot_of_every_scene_is_examined",
  "tests/grounding/test_canary_shot_selector.py::TestTheOneSceneFixtureYieldsExactlyOne::test_exactly_one_shot_is_eligible",
  "tests/grounding/test_canary_shot_selector.py::TestTheOneSceneFixtureYieldsExactlyOne::test_the_canonical_first_row_is_chosen",
  "tests/grounding/test_canary_shot_selector.py::TestTheOneSceneFixtureYieldsExactlyOne::test_the_chosen_n_comes_from_the_assembly",
  "tests/grounding/test_canary_shot_selector.py::TestTheOneSceneFixtureYieldsExactlyOne::test_the_first_shot_is_rejected_for_the_right_reason",
  "tests/grounding/test_canary_shot_selector.py::TestTheOneSceneFixtureYieldsExactlyOne::test_the_fixture_is_the_approved_size",
  "tests/grounding/test_canary_shot_selector.py::TestTheOneSceneFixtureYieldsExactlyOne::test_the_wide_shot_is_rejected_for_the_right_reason",
  "tests/grounding/test_canary_shot_selector.py::TestTheOrderIsCanonical::test_it_is_deterministic",
  "tests/grounding/test_canary_shot_selector.py::TestTheOrderIsCanonical::test_the_first_row_of_the_canonical_sort_wins",
  "tests/grounding/test_canary_text_budget.py::TestEveryTextBoundaryHasTheSameDoor::test_a_missing_key_is_counted_too",
  "tests/grounding/test_canary_text_budget.py::TestEveryTextBoundaryHasTheSameDoor::test_outside_the_scope_the_direct_path_is_untouched",
  "tests/grounding/test_canary_text_budget.py::TestEveryTextBoundaryHasTheSameDoor::test_the_direct_path_is_counted_for_a_non_openai_model",
  "tests/grounding/test_canary_text_budget.py::TestEveryTextBoundaryHasTheSameDoor::test_the_direct_path_is_counted_inside_the_slot_loop",
  "tests/grounding/test_canary_text_budget.py::TestEveryTextBoundaryHasTheSameDoor::test_the_router_path_is_counted",
  "tests/grounding/test_canary_text_budget.py::TestItRefusesToOverlap::test_an_existing_budget_stops",
  "tests/grounding/test_canary_text_budget.py::TestItRefusesToOverlap::test_it_still_restores_after_a_refusal",
  "tests/grounding/test_canary_text_budget.py::TestItRefusesToOverlap::test_nesting_stops",
  "tests/grounding/test_canary_text_budget.py::TestItSaysWhatItDoesNotCover::test_every_named_door_is_really_in_the_code",
  "tests/grounding/test_canary_text_budget.py::TestItSaysWhatItDoesNotCover::test_it_admits_that_images_do_not_pass_here",
  "tests/grounding/test_canary_text_budget.py::TestItSaysWhatItDoesNotCover::test_the_doorless_path_is_named",
  "tests/grounding/test_canary_text_budget.py::TestItSaysWhatItDoesNotCover::test_the_snapshot_says_it_is_counted_not_raw",
  "tests/grounding/test_canary_text_budget.py::TestTheDoorReachesEveryThread::test_a_worker_thread_is_counted",
  "tests/grounding/test_canary_text_budget.py::TestTheDoorReachesEveryThread::test_it_restores_even_on_error",
  "tests/grounding/test_canary_text_budget.py::TestTheDoorReachesEveryThread::test_many_workers_share_one_count",
  "tests/grounding/test_canary_text_budget.py::TestTheDoorReachesEveryThread::test_the_scope_does_not_leak",
  "tests/grounding/test_canary_text_budget.py::TestTheNextOneStopsBeforeTheProvider::test_a_worker_cannot_go_over_either",
  "tests/grounding/test_canary_text_budget.py::TestTheNextOneStopsBeforeTheProvider::test_outside_the_scope_nothing_changes",
  "tests/grounding/test_canary_text_budget.py::TestTheNextOneStopsBeforeTheProvider::test_the_cap_stops_the_real_central_door",
  "tests/grounding/test_canonical_refs_have_one_executor_per_owner.py::TestTheContractNamesOneExecutorPerOwner::test_canonical_owners_are_the_policy_owners",
  "tests/grounding/test_canonical_refs_have_one_executor_per_owner.py::TestTheContractNamesOneExecutorPerOwner::test_every_materializable_owner_has_exactly_one_executor",
  "tests/grounding/test_canonical_refs_have_one_executor_per_owner.py::TestTheContractNamesOneExecutorPerOwner::test_sidecar_owners_are_disjoint_from_canonical",
  "tests/grounding/test_canonical_refs_have_one_executor_per_owner.py::TestTheFinalRefMapDoesNotLeakSidecarOwners::test_an_old_lp_reference_asset_does_not_reach_the_scene",
  "tests/grounding/test_canonical_refs_have_one_executor_per_owner.py::TestTheFinalRefMapDoesNotLeakSidecarOwners::test_unknown_or_missing_type_is_left_alone",
  "tests/grounding/test_canonical_refs_have_one_executor_per_owner.py::TestTheGateAndReadinessCountOnlyPolicyOwners::test_nothing_is_missing_and_the_lp_is_not_in_the_denominator",
  "tests/grounding/test_canonical_refs_have_one_executor_per_owner.py::TestTheGateAndReadinessCountOnlyPolicyOwners::test_readiness_expects_character_and_prop_only",
  "tests/grounding/test_canonical_refs_have_one_executor_per_owner.py::TestTheGateAndReadinessCountOnlyPolicyOwners::test_the_gate_targets_are_character_and_prop_only",
  "tests/grounding/test_canonical_refs_have_one_executor_per_owner.py::TestTheGateAndReadinessCountOnlyPolicyOwners::test_the_three_consumers_agree_with_the_contract",
  "tests/grounding/test_card_endpoint_required_refs.py::TestAnEmptyGroundingLeavesTheCardIdentical::test_a_policy_with_no_grounding_field_changes_nothing",
  "tests/grounding/test_card_endpoint_required_refs.py::TestAnEmptyGroundingLeavesTheCardIdentical::test_an_empty_grounding_manifest_changes_nothing",
  "tests/grounding/test_card_endpoint_required_refs.py::TestAnEmptyGroundingLeavesTheCardIdentical::test_none_policy_and_empty_forced_are_the_same",
  "tests/grounding/test_card_endpoint_required_refs.py::TestTheForcedRefsReachTheRealCard::test_a_forced_character_appears",
  "tests/grounding/test_card_endpoint_required_refs.py::TestTheForcedRefsReachTheRealCard::test_a_forced_prop_appears",
  "tests/grounding/test_card_endpoint_required_refs.py::TestTheForcedRefsReachTheRealCard::test_a_location_does_not_appear",
  "tests/grounding/test_card_endpoint_required_refs.py::TestTheForcedRefsReachTheRealCard::test_an_invisible_entity_is_not_forced",
  "tests/grounding/test_card_endpoint_required_refs.py::TestTheForcedRefsReachTheRealCard::test_it_does_not_remove_or_double_existing_refs",
  "tests/grounding/test_cc_c_runner.py::TestCHasItsOwnTraceCoordinates::test_the_c_send_passes_its_own_coordinates",
  "tests/grounding/test_cc_c_runner.py::TestCHasItsOwnTraceCoordinates::test_the_coordinates_differ_from_b",
  "tests/grounding/test_cc_c_runner.py::TestCHasItsOwnTraceCoordinates::test_the_sender_is_not_copied_but_parameterised",
  "tests/grounding/test_cc_c_runner.py::TestItNeverInventsTargets::test_the_c_runner_does_not_use_the_target_scorer",
  "tests/grounding/test_cc_c_runner.py::TestItNeverInventsTargets::test_the_output_says_what_it_is_not",
  "tests/grounding/test_cc_c_runner.py::TestReplayBuysNothingAndRedoesTheProcessing::test_a_missing_response_stops_instead_of_buying",
  "tests/grounding/test_cc_c_runner.py::TestReplayBuysNothingAndRedoesTheProcessing::test_replay_of_a_c_journal_reuses_everything",
  "tests/grounding/test_cc_c_runner.py::TestTheApprovedCapIsADoorNotAComputation::test_a_plan_of_a_different_size_stops",
  "tests/grounding/test_cc_c_runner.py::TestTheApprovedCapIsADoorNotAComputation::test_it_stops_before_the_journal_and_the_provider",
  "tests/grounding/test_cc_c_runner.py::TestTheApprovedCapIsADoorNotAComputation::test_the_approved_numbers_are_written_by_hand",
  "tests/grounding/test_cc_c_runner.py::TestTheAutomaticChecksSeeOnlyStructure::test_a_bad_quote_is_caught",
  "tests/grounding/test_cc_c_runner.py::TestTheAutomaticChecksSeeOnlyStructure::test_a_catalog_outsider_is_caught",
  "tests/grounding/test_cc_c_runner.py::TestTheAutomaticChecksSeeOnlyStructure::test_a_clean_row_passes",
  "tests/grounding/test_cc_c_runner.py::TestTheLockCarriesWhatDecidesThisRun::test_a_processing_stamp_per_chunk",
  "tests/grounding/test_cc_c_runner.py::TestTheLockCarriesWhatDecidesThisRun::test_it_pins_the_episode_and_the_shot_ids",
  "tests/grounding/test_cc_c_runner.py::TestTheLockPinsThePlannedIdentities::test_a_changed_manuscript_drifts_the_lock",
  "tests/grounding/test_cc_c_runner.py::TestTheLockPinsThePlannedIdentities::test_the_identities_use_the_same_callable_as_preflight",
  "tests/grounding/test_cc_c_runner.py::TestTheLockPinsThePlannedIdentities::test_the_lock_carries_every_chunk_identity",
  "tests/grounding/test_cc_c_runner.py::TestThePlanComesFromTheRealEpisode::test_every_chunk_carries_its_own_catalog",
  "tests/grounding/test_cc_c_runner.py::TestThePlanComesFromTheRealEpisode::test_the_shot_descriptions_are_whole",
  "tests/grounding/test_cc_c_runner.py::TestThePlanComesFromTheRealEpisode::test_the_world_facts_come_from_the_production_builder",
  "tests/grounding/test_cc_reconcile.py::TestItCatchesEachMismatch::test_a_planned_but_never_sent_call_is_not_counted_as_sent",
  "tests/grounding/test_cc_reconcile.py::TestItCatchesEachMismatch::test_an_uncertain_call_still_counts_as_sent",
  "tests/grounding/test_cc_reconcile.py::TestItCatchesEachMismatch::test_an_unlabeled_trace_is_counted_not_ignored",
  "tests/grounding/test_cc_reconcile.py::TestItCatchesEachMismatch::test_buying_without_journaling_is_caught",
  "tests/grounding/test_cc_reconcile.py::TestItCatchesEachMismatch::test_journaled_but_never_logged_is_caught",
  "tests/grounding/test_cc_reconcile.py::TestItCatchesEachMismatch::test_the_same_identity_bought_twice_is_caught",
  "tests/grounding/test_cc_reconcile.py::TestItMatchesWhenBothAgree::test_a_clean_run_reconciles",
  "tests/grounding/test_cc_reconcile.py::TestTheRunScopeKeepsOldTracesOut::test_a_new_lock_gives_a_new_run",
  "tests/grounding/test_cc_reconcile.py::TestTheRunScopeKeepsOldTracesOut::test_the_journal_keeps_one_nonce_across_reopens",
  "tests/grounding/test_cc_reconcile.py::TestTheRunScopeKeepsOldTracesOut::test_the_run_id_changes_with_a_new_journal",
  "tests/grounding/test_cc_reconcile.py::TestTheRunScopeKeepsOldTracesOut::test_the_run_id_is_stable_across_a_resume",
  "tests/grounding/test_cc_reconcile.py::TestZeroTracesIsNeverASuccess::test_journal_five_opik_zero_is_a_mismatch",
  "tests/grounding/test_cc_reconcile.py::TestZeroTracesIsNeverASuccess::test_the_verdict_needs_both_difference_sets_empty",
  "tests/grounding/test_cc_runner.py::TestAnUncertainSendIsNotBoughtAgain::test_a_clean_run_resumes_without_buying",
  "tests/grounding/test_cc_runner.py::TestAnUncertainSendIsNotBoughtAgain::test_resuming_refuses_to_re_buy_it",
  "tests/grounding/test_cc_runner.py::TestAnUncertainSendIsNotBoughtAgain::test_the_failed_send_is_journaled_immediately",
  "tests/grounding/test_cc_runner.py::TestAnUncertainSendIsNotBoughtAgain::test_the_sent_count_includes_the_uncertain_one",
  "tests/grounding/test_cc_runner.py::TestExitCodeSeparatesCliSuccessFromAcceptance::test_machine_fail_is_one",
  "tests/grounding/test_cc_runner.py::TestExitCodeSeparatesCliSuccessFromAcceptance::test_machine_pass_without_a_human_is_not_zero",
  "tests/grounding/test_cc_runner.py::TestExitCodeSeparatesCliSuccessFromAcceptance::test_the_scorer_never_produces_a_final_candidate",
  "tests/grounding/test_cc_runner.py::TestExitCodeSeparatesCliSuccessFromAcceptance::test_zero_needs_a_human_verdict",
  "tests/grounding/test_cc_runner.py::TestIdentityIsPayloadPlusModel::test_every_call_in_one_run_has_its_own_identity",
  "tests/grounding/test_cc_runner.py::TestIdentityIsPayloadPlusModel::test_the_identity_folds_the_schema_too",
  "tests/grounding/test_cc_runner.py::TestIdentityIsPayloadPlusModel::test_the_same_payload_on_a_different_model_is_not_reused",
  "tests/grounding/test_cc_runner.py::TestIdentityIsPayloadPlusModelPlusContract::test_every_call_in_one_run_has_its_own_identity",
  "tests/grounding/test_cc_runner.py::TestIdentityIsPayloadPlusModelPlusContract::test_the_request_contract_is_folded_in",
  "tests/grounding/test_cc_runner.py::TestIdentityIsPayloadPlusModelPlusContract::test_the_same_payload_on_a_different_model_is_not_reused",
  "tests/grounding/test_cc_runner.py::TestIdentityIsPayloadPlusModelPlusContract::test_the_schema_is_folded_in",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_a_free_form_metadata_key_also_would_not_have_survived",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_an_empty_dry_run_produces_no_rows_and_does_not_pretend",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_live_is_still_closed",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_no_parent_trace_means_no_purchase",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_the_dry_send_makes_nothing_up",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_the_free_form_metadata_key_would_not_have_survived",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_the_identity_cannot_ride_a_tag_and_we_prove_it",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_the_identity_rides_the_parent_trace_metadata",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_the_key_survives_all_the_way_to_the_router_metadata",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_the_live_sender_asks_for_the_approved_model",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_the_live_sender_consumes_the_pinned_contract",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_the_live_sender_leaves_a_key_to_cross_check_opik",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_the_live_sender_puts_the_key_in_tags",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_the_lock_folds_whether_tracing_is_even_on",
  "tests/grounding/test_cc_runner.py::TestNothingLeavesWithoutASender::test_tracing_turned_off_drifts_the_lock",
  "tests/grounding/test_cc_runner.py::TestQuarantineIsRowLevelAndContributesNothing::test_a_clean_run_is_unchanged",
  "tests/grounding/test_cc_runner.py::TestQuarantineIsRowLevelAndContributesNothing::test_a_quarantined_row_touches_nothing_downstream",
  "tests/grounding/test_cc_runner.py::TestQuarantineIsRowLevelAndContributesNothing::test_an_all_invalid_row_is_recorded_not_dropped",
  "tests/grounding/test_cc_runner.py::TestQuarantineIsRowLevelAndContributesNothing::test_bad_evidence_kills_the_rows_axes_and_obligation",
  "tests/grounding/test_cc_runner.py::TestQuarantineIsRowLevelAndContributesNothing::test_no_quarantine_leaves_that_axis_ok",
  "tests/grounding/test_cc_runner.py::TestQuarantineIsRowLevelAndContributesNothing::test_no_verified_mention_still_quarantines",
  "tests/grounding/test_cc_runner.py::TestQuarantineIsRowLevelAndContributesNothing::test_one_invalid_mention_is_dropped_and_recorded",
  "tests/grounding/test_cc_runner.py::TestQuarantineIsRowLevelAndContributesNothing::test_one_invalid_mention_quarantines_the_whole_row",
  "tests/grounding/test_cc_runner.py::TestQuarantineIsRowLevelAndContributesNothing::test_the_processing_contract_never_touches_acquisition_identity",
  "tests/grounding/test_cc_runner.py::TestQuarantineIsRowLevelAndContributesNothing::test_the_score_marks_it_unresolved",
  "tests/grounding/test_cc_runner.py::TestReplayCannotBuyAtAll::test_a_missing_response_stops_instead_of_buying",
  "tests/grounding/test_cc_runner.py::TestReplayCannotBuyAtAll::test_replay_of_the_frozen_journal_buys_nothing",
  "tests/grounding/test_cc_runner.py::TestReplayCannotBuyAtAll::test_replay_takes_no_sender",
  "tests/grounding/test_cc_runner.py::TestReplayCannotBuyAtAll::test_replaying_an_old_contract_journal_stops",
  "tests/grounding/test_cc_runner.py::TestReplayCannotBuyAtAll::test_the_archived_rescore_is_kept_as_a_record",
  "tests/grounding/test_cc_runner.py::TestReplayCannotBuyAtAll::test_the_corrected_oracle_clears_the_only_wrong",
  "tests/grounding/test_cc_runner.py::TestReplayOfTheSavedPaidJournalBuysNothingNew::test_replaying_it_buys_only_the_missing_merge",
  "tests/grounding/test_cc_runner.py::TestReplayOfTheSavedPaidJournalBuysNothingNew::test_the_replay_quarantines_the_two_reworded_rows",
  "tests/grounding/test_cc_runner.py::TestReplayOfTheSavedPaidJournalBuysNothingNew::test_the_saved_lock_still_matches_todays_lock",
  "tests/grounding/test_cc_runner.py::TestStampFollowsTheContractItActuallyBoughtWith::test_replay_stamps_with_the_saved_contract_not_the_current_one",
  "tests/grounding/test_cc_runner.py::TestStampFollowsTheContractItActuallyBoughtWith::test_stamp_is_computed_in_exactly_one_place",
  "tests/grounding/test_cc_runner.py::TestTheCapStandsBeforeTheSend::test_the_approved_cap_matches_the_plan_and_is_not_derived",
  "tests/grounding/test_cc_runner.py::TestTheCapStandsBeforeTheSend::test_the_full_plan_fits_the_approved_cap",
  "tests/grounding/test_cc_runner.py::TestTheCapStandsBeforeTheSend::test_the_send_never_fires_past_the_cap",
  "tests/grounding/test_cc_runner.py::TestTheCapStandsBeforeTheSend::test_the_send_never_fires_past_the_logical_cap",
  "tests/grounding/test_cc_runner.py::TestTheExperimentLockStopsDrift::test_a_changed_cap_stops_with_zero_sends",
  "tests/grounding/test_cc_runner.py::TestTheExperimentLockStopsDrift::test_a_changed_model_stops_with_zero_sends",
  "tests/grounding/test_cc_runner.py::TestTheExperimentLockStopsDrift::test_a_changed_world_stops_with_zero_sends",
  "tests/grounding/test_cc_runner.py::TestTheExperimentLockStopsDrift::test_the_lock_records_what_the_run_was_bought_under",
  "tests/grounding/test_cc_runner.py::TestTheFrozenPaidRunBelongsToTheOldContract::test_resuming_it_stops_instead_of_mixing_contracts",
  "tests/grounding/test_cc_runner.py::TestTheFrozenPaidRunBelongsToTheOldContract::test_the_saved_lock_no_longer_matches",
  "tests/grounding/test_cc_runner.py::TestTheJournalIsWrittenPerCall::test_bought_and_reused_are_counted_apart",
  "tests/grounding/test_cc_runner.py::TestTheJournalIsWrittenPerCall::test_resuming_buys_only_what_is_missing",
  "tests/grounding/test_cc_runner.py::TestTheJournalIsWrittenPerCall::test_what_was_bought_before_the_break_survives",
  "tests/grounding/test_cc_runner.py::TestTheOutboundSealIsReversible::test_seal_then_unseal_restores_the_socket",
  "tests/grounding/test_cc_runner.py::TestTheOutboundSealIsReversible::test_unseal_without_seal_is_harmless",
  "tests/grounding/test_cc_runner.py::TestThePhysicalBudgetIsSeparateFromTheLogicalCap::test_default_budget_is_logical_times_slots",
  "tests/grounding/test_cc_runner.py::TestThePhysicalBudgetIsSeparateFromTheLogicalCap::test_the_budget_counts_the_journal_not_just_this_run",
  "tests/grounding/test_cc_runner.py::TestThePhysicalBudgetIsSeparateFromTheLogicalCap::test_the_budget_stops_the_send_before_it_fires",
  "tests/grounding/test_cc_runner.py::TestThePhysicalBudgetIsSeparateFromTheLogicalCap::test_the_names_say_what_is_actually_counted",
  "tests/grounding/test_cc_runner.py::TestTheRunIsScoredNotJustSurvived::test_an_empty_run_is_scored_as_failing",
  "tests/grounding/test_cc_runner.py::TestTheRunIsScoredNotJustSurvived::test_the_review_artifact_carries_the_basis_for_the_two_axes",
  "tests/grounding/test_cc_runner.py::TestTheRunIsScoredNotJustSurvived::test_the_world_facts_come_from_the_fixture",
  "tests/grounding/test_cc_runner.py::TestTheRunIsScoredNotJustSurvived::test_the_world_facts_give_a_basis_for_every_judged_target",
  "tests/grounding/test_cc_runner.py::TestTheSlotCountIsCheckedBeforeAnything::test_a_different_slot_count_stops_with_zero_sends",
  "tests/grounding/test_cc_runner.py::TestTheSlotCountIsCheckedBeforeAnything::test_the_matching_slot_count_lets_it_through",
  "tests/grounding/test_cc_runner.py::TestTracingOffStopsBeforeTheJournalRecordsAPurchase::test_no_journal_purchase_row_when_tracing_is_off",
  "tests/grounding/test_cc_scorer.py::TestAGoodRunIsAMechanicalCandidate::test_the_ideal_output_passes_the_machine_part",
  "tests/grounding/test_cc_scorer.py::TestAGoodRunIsAMechanicalCandidate::test_the_machine_never_declares_the_final_verdict",
  "tests/grounding/test_cc_scorer.py::TestAnEmptyRunDoesNotPass::test_no_rows_at_all_fails",
  "tests/grounding/test_cc_scorer.py::TestAnchorAndRowAreOneToOne::test_a_clean_one_to_one_still_passes",
  "tests/grounding/test_cc_scorer.py::TestAnchorAndRowAreOneToOne::test_one_row_holding_both_anchors_fails",
  "tests/grounding/test_cc_scorer.py::TestAnchorAndRowAreOneToOne::test_two_rows_on_the_same_anchor_fails",
  "tests/grounding/test_cc_scorer.py::TestCodexSecondRoundCounterexamples::test_duplicating_one_anchor_and_dropping_the_other_fails",
  "tests/grounding/test_cc_scorer.py::TestCodexSecondRoundCounterexamples::test_merging_a_neighbouring_object_into_the_target_fails",
  "tests/grounding/test_cc_scorer.py::TestCodexSecondRoundCounterexamples::test_the_correct_output_still_passes",
  "tests/grounding/test_cc_scorer.py::TestTheAddressRuleStopsCrossClaims::test_a_long_sentence_holding_two_targets_claims_neither",
  "tests/grounding/test_cc_scorer.py::TestTheAddressRuleStopsCrossClaims::test_a_neighbouring_phrase_does_not_claim_the_target",
  "tests/grounding/test_cc_scorer.py::TestTheAddressRuleStopsCrossClaims::test_a_wider_quote_is_unresolved_not_a_claim",
  "tests/grounding/test_cc_scorer.py::TestTheAddressRuleStopsCrossClaims::test_an_ambiguous_row_is_unresolved_not_wrong",
  "tests/grounding/test_cc_scorer.py::TestTheAddressRuleStopsCrossClaims::test_the_tight_mention_claims_exactly_one",
  "tests/grounding/test_cc_scorer.py::TestThePostHocOracleCorrection::test_the_old_oracle_reproduces_the_original_wrong",
  "tests/grounding/test_cc_scorer.py::TestThePostHocOracleCorrection::test_the_two_anchors_are_the_complete_minimal_phrases",
  "tests/grounding/test_cc_scorer.py::TestThePostHocOracleCorrection::test_two_separate_rows_pass_and_merging_them_still_fails",
  "tests/grounding/test_cc_scorer.py::TestThePromptAndTheScorerAskForTheSameThing::test_every_anchor_is_the_exact_manuscript_text",
  "tests/grounding/test_cc_scorer.py::TestThePromptAndTheScorerAskForTheSameThing::test_no_target_anchor_is_inside_another_in_the_same_scene",
  "tests/grounding/test_cc_scorer.py::TestThePromptAndTheScorerAskForTheSameThing::test_the_prompt_states_the_minimal_complete_rule",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesEachDefect::test_a_fabricated_quote_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesEachDefect::test_a_missing_part_of_relation_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesEachDefect::test_a_missing_target_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesEachDefect::test_a_wrong_owner_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesEachDefect::test_folding_the_part_into_the_whole_is_unresolved_not_ok",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesEachDefect::test_losing_one_of_two_occurrences_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesEachDefect::test_merging_the_two_different_things_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesTheOlderDefects::test_a_fabricated_quote_stops_at_the_merge",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesTheOlderDefects::test_a_missing_part_of_relation_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesTheOlderDefects::test_a_missing_target_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesTheOlderDefects::test_a_wrong_owner_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesTheOlderDefects::test_folding_the_part_into_the_whole_is_unresolved_not_ok",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesTheOlderDefects::test_losing_one_of_two_occurrences_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerCatchesTheOlderDefects::test_merging_the_two_different_things_fails",
  "tests/grounding/test_cc_scorer.py::TestTheScorerPassesAGoodRun::test_an_extra_row_with_real_evidence_is_not_a_defect",
  "tests/grounding/test_cc_scorer.py::TestTheScorerPassesAGoodRun::test_the_ideal_output_passes",
  "tests/grounding/test_cc_scorer.py::TestTheThreeCounterexamplesCodexFound::test_an_unlisted_row_is_not_called_a_defect_either",
  "tests/grounding/test_cc_scorer.py::TestTheThreeCounterexamplesCodexFound::test_borrowing_someone_elses_quote_is_not_auto_ok",
  "tests/grounding/test_cc_scorer.py::TestTheThreeCounterexamplesCodexFound::test_losing_one_chunks_occurrence_fails",
  "tests/grounding/test_cc_scorer.py::TestTheThreeCounterexamplesCodexFound::test_missing_flags_and_registration_fail",
  "tests/grounding/test_cc_scorer.py::TestTheThreeCounterexamplesCodexFound::test_the_registration_ledger_is_required_not_optional",
  "tests/grounding/test_central_acquisition.py::TestAProviderFailureDoesNotStrandTheRun::test_a_search_failure_is_already_terminal_inside_the_loop",
  "tests/grounding/test_central_acquisition.py::TestAProviderFailureDoesNotStrandTheRun::test_a_stop_still_propagates_before_the_provider",
  "tests/grounding/test_central_acquisition.py::TestAProviderFailureDoesNotStrandTheRun::test_an_undeclared_failure_stops_the_run",
  "tests/grounding/test_central_acquisition.py::TestAProviderFailureDoesNotStrandTheRun::test_it_does_not_swallow_a_stop_or_a_defect_mid_send",
  "tests/grounding/test_central_acquisition.py::TestAProviderFailureDoesNotStrandTheRun::test_only_a_transport_that_knows_may_wrap",
  "tests/grounding/test_central_acquisition.py::TestAProviderFailureDoesNotStrandTheRun::test_only_the_declared_kind_is_folded",
  "tests/grounding/test_central_acquisition.py::TestAProviderFailureDoesNotStrandTheRun::test_production_raises_it_nowhere_yet",
  "tests/grounding/test_central_acquisition.py::TestAProviderFailureDoesNotStrandTheRun::test_the_failed_row_finishes_and_the_rest_go_on",
  "tests/grounding/test_central_acquisition.py::TestAProviderFailureDoesNotStrandTheRun::test_the_next_resume_still_needs_no_person",
  "tests/grounding/test_central_acquisition.py::TestAProviderFailureDoesNotStrandTheRun::test_the_swallow_rule_is_one_place",
  "tests/grounding/test_central_acquisition.py::TestEveryLaneSurvivesIntoTheOutput::test_all_five_buckets_are_written",
  "tests/grounding/test_central_acquisition.py::TestEveryLaneSurvivesIntoTheOutput::test_the_evidence_rides_with_every_row",
  "tests/grounding/test_central_acquisition.py::TestEveryLaneSurvivesIntoTheOutput::test_the_evidence_rides_with_what_was_bought",
  "tests/grounding/test_central_acquisition.py::TestEveryLaneSurvivesIntoTheOutput::test_the_output_is_json_serialisable",
  "tests/grounding/test_central_acquisition.py::TestEveryLedgerRowSurvivesInFull::test_counting_missed_references_excludes_the_not_needed",
  "tests/grounding/test_central_acquisition.py::TestEveryLedgerRowSurvivesInFull::test_each_disposition_is_a_known_one",
  "tests/grounding/test_central_acquisition.py::TestEveryLedgerRowSurvivesInFull::test_every_id_appears_exactly_once",
  "tests/grounding/test_central_acquisition.py::TestEveryLedgerRowSurvivesInFull::test_no_row_of_any_lane_waits_for_a_person",
  "tests/grounding/test_central_acquisition.py::TestEveryLedgerRowSurvivesInFull::test_not_applicable_is_not_a_failed_search",
  "tests/grounding/test_central_acquisition.py::TestEveryLedgerRowSurvivesInFull::test_the_counts_are_derived_from_the_rows",
  "tests/grounding/test_central_acquisition.py::TestEveryLedgerRowSurvivesInFull::test_the_coverage_endpoint_actually_catches_a_hole",
  "tests/grounding/test_central_acquisition.py::TestEveryLedgerRowSurvivesInFull::test_the_original_row_rides_with_every_disposition",
  "tests/grounding/test_central_acquisition.py::TestEveryLedgerRowSurvivesInFull::test_the_terminal_check_catches_a_wrong_outcome_either_way",
  "tests/grounding/test_central_acquisition.py::TestEveryLedgerRowSurvivesInFull::test_the_whole_result_is_json_serialisable",
  "tests/grounding/test_central_acquisition.py::TestItGoesThroughTheOneDoor::test_a_not_target_row_never_reaches_the_provider",
  "tests/grounding/test_central_acquisition.py::TestItGoesThroughTheOneDoor::test_the_module_reads_the_ledger_only_through_the_adapter",
  "tests/grounding/test_central_acquisition.py::TestItIsNotWiredYet::test_it_builds_no_second_buyer",
  "tests/grounding/test_central_acquisition.py::TestItIsNotWiredYet::test_no_step_imports_it",
  "tests/grounding/test_central_acquisition.py::TestItNamesNoNewTerminalState::test_no_human_waiting_state_is_declared",
  "tests/grounding/test_central_acquisition.py::TestItNamesNoNewTerminalState::test_the_outcome_comes_from_the_policy_function",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_cap_stops_before_anything_opens[-1]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_cap_stops_before_anything_opens[1.0]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_cap_stops_before_anything_opens[1]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_cap_stops_before_anything_opens[False]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_cap_stops_before_anything_opens[None]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_cap_stops_before_anything_opens[True]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_round_count_stops[-1]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_round_count_stops[0]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_round_count_stops[2.0]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_round_count_stops[2]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_a_loose_round_count_stops[True]",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_cap_zero_is_allowed_and_buys_nothing",
  "tests/grounding/test_central_acquisition.py::TestTheCostDoorTakesNoLooseValues::test_none_resolves_to_the_loops_own_default",
  "tests/grounding/test_central_acquisition.py::TestTheFakeIsShapedLikeTheRealThing::test_a_matching_judgement_actually_selects",
  "tests/grounding/test_central_acquisition.py::TestTheFakeIsShapedLikeTheRealThing::test_a_non_matching_judgement_retries_once_then_stops",
  "tests/grounding/test_central_acquisition.py::TestTheFakeIsShapedLikeTheRealThing::test_the_download_fake_matches",
  "tests/grounding/test_central_acquisition.py::TestTheFakeIsShapedLikeTheRealThing::test_the_search_fake_uses_the_real_argument_names",
  "tests/grounding/test_central_acquisition.py::TestTheFakeIsShapedLikeTheRealThing::test_the_verdict_enum_comes_from_production",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_a_changed_pack_or_round_is_a_different_purchase",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_a_changed_query_is_a_different_purchase",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_a_different_round_count_does_not_reuse",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_a_stop_check_fires_before_any_spend",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_an_unconfirmed_prior_call_never_waits_for_a_person",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_it_does_not_rebuy_an_unconfirmed_identity",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_no_row_ever_waits_for_a_person",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_the_cap_stops_buying_but_not_the_run",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_the_cap_stops_instead_of_growing",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_the_capped_row_finishes_without_a_person",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_the_run_folds_the_production_contract_into_the_identity",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_the_same_identity_is_bought_once",
  "tests/grounding/test_central_acquisition.py::TestTheGatesStandBeforeTheProvider::test_what_was_already_paid_for_survives_the_cap",
  "tests/grounding/test_central_acquisition_step.py::TestItIsReachableNow::test_it_is_still_one_step_not_a_new_one",
  "tests/grounding/test_central_acquisition_step.py::TestItIsReachableNow::test_it_runs_after_outlook_and_before_the_scene",
  "tests/grounding/test_central_acquisition_step.py::TestItIsReachableNow::test_runtime_config_takes_it",
  "tests/grounding/test_central_acquisition_step.py::TestItIsReachableNow::test_the_mode_is_accepted",
  "tests/grounding/test_central_acquisition_step.py::TestItIsStillUnreachableAtRuntime::test_runtime_config_refuses_it",
  "tests/grounding/test_central_acquisition_step.py::TestItIsStillUnreachableAtRuntime::test_the_mode_is_declared_but_not_accepted",
  "tests/grounding/test_central_acquisition_step.py::TestItIsStillUnreachableAtRuntime::test_the_step_is_not_in_any_manifest_change",
  "tests/grounding/test_central_acquisition_step.py::TestItRefusesToWriteABrokenCheckpoint::test_a_lost_row_stops",
  "tests/grounding/test_central_acquisition_step.py::TestItRefusesToWriteABrokenCheckpoint::test_a_row_that_waits_for_a_person_stops",
  "tests/grounding/test_central_acquisition_step.py::TestNotApplicableIsNotAFailedSearch::test_a_needed_one_that_was_not_found_is_counted",
  "tests/grounding/test_central_acquisition_step.py::TestNotApplicableIsNotAFailedSearch::test_a_not_target_row_is_not_counted_as_missing",
  "tests/grounding/test_central_acquisition_step.py::TestNotApplicableIsNotAFailedSearch::test_the_two_are_told_apart_in_one_run",
  "tests/grounding/test_central_acquisition_step.py::TestNotApplicableIsNotAFailedSearch::test_the_verdict_comes_from_the_one_place",
  "tests/grounding/test_central_acquisition_step.py::TestTheLegacyBranchIsUntouched::test_it_still_stands_when_targets_exist",
  "tests/grounding/test_central_acquisition_step.py::TestTheStepRunsTheWholeThing::test_it_writes_one_checkpoint_with_every_row",
  "tests/grounding/test_central_acquisition_step.py::TestTheStepRunsTheWholeThing::test_nobody_waits_for_a_person",
  "tests/grounding/test_central_acquisition_step.py::TestTheStepRunsTheWholeThing::test_nothing_is_lost",
  "tests/grounding/test_central_acquisition_step.py::TestTheStepRunsTheWholeThing::test_the_contracts_are_stamped",
  "tests/grounding/test_central_acquisition_step.py::TestTheStepRunsTheWholeThing::test_there_is_exactly_one_buyer",
  "tests/grounding/test_central_acquisition_step.py::TestTheStepRunsTheWholeThing::test_what_was_not_found_is_named",
  "tests/grounding/test_central_acquisition_step.py::TestTheThreeCheckpointsBecomeOneLedger::test_a_missing_phase3_stops",
  "tests/grounding/test_central_acquisition_step.py::TestTheThreeCheckpointsBecomeOneLedger::test_a_missing_phase3_stops_when_outlooks_need_binding",
  "tests/grounding/test_central_acquisition_step.py::TestTheThreeCheckpointsBecomeOneLedger::test_a_missing_screen_output_stops",
  "tests/grounding/test_central_acquisition_step.py::TestTheThreeCheckpointsBecomeOneLedger::test_an_empty_phase3_is_not_the_same_as_a_missing_one",
  "tests/grounding/test_central_acquisition_step.py::TestTheThreeCheckpointsBecomeOneLedger::test_an_episode_with_no_outlook_does_not_need_phase3",
  "tests/grounding/test_central_acquisition_step.py::TestTheThreeCheckpointsBecomeOneLedger::test_every_owner_reaches_the_door",
  "tests/grounding/test_central_acquisition_step.py::TestTheThreeCheckpointsBecomeOneLedger::test_the_final_ids_come_from_the_plan_checkpoint",
  "tests/grounding/test_central_acquisition_step.py::TestTheThreeCheckpointsBecomeOneLedger::test_the_obligations_split_context_and_detail",
  "tests/grounding/test_chunk_entity_adapter.py::TestAgainstTheRealPaidOutput::test_every_row_is_either_carried_or_explained",
  "tests/grounding/test_chunk_entity_adapter.py::TestAgainstTheRealPaidOutput::test_no_facet_reached_a_base_type",
  "tests/grounding/test_chunk_entity_adapter.py::TestAgainstTheRealPaidOutput::test_short_ids_are_unique_within_each_type",
  "tests/grounding/test_chunk_entity_adapter.py::TestAgainstTheRealPaidOutput::test_the_carried_count_matches_the_registered_base_owners",
  "tests/grounding/test_chunk_entity_adapter.py::TestAllOneHundredFortyOneRowsCanBeTracedBack::test_all_five_owners_are_present_in_the_output",
  "tests/grounding/test_chunk_entity_adapter.py::TestAllOneHundredFortyOneRowsCanBeTracedBack::test_every_row_keeps_its_quotes_spans_evidence_and_ledger",
  "tests/grounding/test_chunk_entity_adapter.py::TestAllOneHundredFortyOneRowsCanBeTracedBack::test_every_single_row_appears_exactly_once",
  "tests/grounding/test_chunk_entity_adapter.py::TestAllOneHundredFortyOneRowsCanBeTracedBack::test_unregistered_rows_keep_an_empty_id_not_an_invented_one",
  "tests/grounding/test_chunk_entity_adapter.py::TestFacetsDoNotSneakIntoBaseTypes::test_a_location_part_becomes_its_own_row_not_a_location",
  "tests/grounding/test_chunk_entity_adapter.py::TestFacetsDoNotSneakIntoBaseTypes::test_a_registered_facet_becomes_a_skip_not_a_base_row[location_part]",
  "tests/grounding/test_chunk_entity_adapter.py::TestFacetsDoNotSneakIntoBaseTypes::test_a_registered_facet_becomes_a_skip_not_a_base_row[outlook]",
  "tests/grounding/test_chunk_entity_adapter.py::TestFacetsDoNotSneakIntoBaseTypes::test_an_outlook_still_becomes_a_skip_not_a_base_row",
  "tests/grounding/test_chunk_entity_adapter.py::TestFacetsDoNotSneakIntoBaseTypes::test_the_key_map_gives_the_part_its_own_slot",
  "tests/grounding/test_chunk_entity_adapter.py::TestFacetsDoNotSneakIntoBaseTypes::test_the_key_map_has_no_facet_slot",
  "tests/grounding/test_chunk_entity_adapter.py::TestIdsDoNotCollideWithWhatIsAlreadyThere::test_existing_rows_are_not_touched",
  "tests/grounding/test_chunk_entity_adapter.py::TestIdsDoNotCollideWithWhatIsAlreadyThere::test_numbering_continues_past_existing_rows",
  "tests/grounding/test_chunk_entity_adapter.py::TestItDoesNotInventADescription::test_description_is_empty_and_the_brief_is_kept_elsewhere",
  "tests/grounding/test_chunk_entity_adapter.py::TestItDoesNotInventADescription::test_the_brief_never_lands_in_a_t2i_bound_field",
  "tests/grounding/test_chunk_entity_adapter.py::TestProvenanceSurvivesToTheRow::test_every_carried_row_can_be_traced_back",
  "tests/grounding/test_chunk_entity_adapter.py::TestProvenanceSurvivesToTheRow::test_provenance_never_bleeds_into_the_t2i_fields",
  "tests/grounding/test_chunk_entity_adapter.py::TestProvenanceSurvivesToTheRow::test_the_evidence_quotes_are_still_there",
  "tests/grounding/test_chunk_entity_adapter.py::TestProvenanceSurvivesToTheRow::test_the_original_quotes_and_spans_are_still_there",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_a_blank_local_id_stops[   ]",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_a_blank_local_id_stops[]",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_registered_must_be_exactly_true_false_or_none[0]",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_registered_must_be_exactly_true_false_or_none[1]",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_registered_must_be_exactly_true_false_or_none[True]",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_registered_must_be_exactly_true_false_or_none[]",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_registered_must_be_exactly_true_false_or_none[bad4]",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_registered_must_be_exactly_true_false_or_none[true]",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_the_three_real_values_pass[False]",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_the_three_real_values_pass[None]",
  "tests/grounding/test_chunk_entity_adapter.py::TestQuietFoldsAtTheInputBoundary::test_the_three_real_values_pass[True]",
  "tests/grounding/test_chunk_entity_adapter.py::TestSameInputSameBytes::test_two_runs_are_byte_identical",
  "tests/grounding/test_chunk_entity_adapter.py::TestSkippedRowsKeepTheirEvidence::test_every_skipped_row_carries_its_provenance",
  "tests/grounding/test_chunk_entity_adapter.py::TestSkippedRowsKeepTheirEvidence::test_the_facet_owners_can_still_be_audited_from_the_output",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_a_mismatched_id_stops_at_the_endpoint[character-P01]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_a_mismatched_id_stops_at_the_endpoint[location-LP01]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_a_mismatched_id_stops_at_the_endpoint[location_part-L01]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_a_mismatched_id_stops_at_the_endpoint[prop-P]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_a_mismatched_id_stops_at_the_endpoint[prop-Pfoo]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[-None]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[C07-character]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[L-None]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[L01-location]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[LP01-location_part]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[LPfoo-None]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[O99-outlook]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[P0-prop]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[P\\u0661\\u0662-None]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[Pfoo-None]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheIdGrammarIsOneContractAndItIsStrict::test_the_parser[X9-None]",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheInputContractIsCheckedBeforeConsuming::test_a_duplicated_final_id_stops",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheInputContractIsCheckedBeforeConsuming::test_a_duplicated_local_id_stops",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheInputContractIsCheckedBeforeConsuming::test_a_ledger_entry_without_a_row_stops",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheInputContractIsCheckedBeforeConsuming::test_a_prefix_that_disagrees_with_the_owner_stops",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheInputContractIsCheckedBeforeConsuming::test_a_row_without_a_ledger_entry_stops",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheInputContractIsCheckedBeforeConsuming::test_the_check_uses_the_central_prefix_contract",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheInputContractIsCheckedBeforeConsuming::test_the_real_paid_ledger_passes",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheLedgerOwnsTheIdentity::test_a_collision_stops_instead_of_renumbering",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheLedgerOwnsTheIdentity::test_existing_rows_are_not_touched",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheLedgerOwnsTheIdentity::test_registered_without_a_final_id_is_skipped_not_invented",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheLedgerOwnsTheIdentity::test_registered_without_a_final_id_stops",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheLedgerOwnsTheIdentity::test_short_id_is_the_ledger_final_id",
  "tests/grounding/test_chunk_entity_adapter.py::TestTheNameKeepsItsCase::test_normalization_does_not_lowercase",
  "tests/grounding/test_chunk_entity_adapter.py::TestThePrefixTableIsNotPrefixFree::test_a_base_id_on_a_facet_row_stops",
  "tests/grounding/test_chunk_entity_adapter.py::TestThePrefixTableIsNotPrefixFree::test_a_facet_id_on_a_base_row_stops",
  "tests/grounding/test_chunk_entity_adapter.py::TestThePrefixTableIsNotPrefixFree::test_every_prefix_resolves_to_its_own_owner",
  "tests/grounding/test_chunk_entity_adapter.py::TestThePrefixTableIsNotPrefixFree::test_the_adapter_does_not_compare_prefixes_itself",
  "tests/grounding/test_chunk_entity_adapter.py::TestThePrefixTableIsNotPrefixFree::test_the_contract_resolves_by_longest_prefix",
  "tests/grounding/test_chunk_entity_adapter.py::TestUnresolvedIsNotFolded::test_nothing_disappears_without_a_reason",
  "tests/grounding/test_chunk_entity_adapter.py::TestUnresolvedIsNotFolded::test_unresolved_and_not_registered_are_told_apart",
  "tests/grounding/test_chunk_merge_contract.py::TestAllFiveOwners::test_a_cross_owner_same_referent_is_refused",
  "tests/grounding/test_chunk_merge_contract.py::TestAllFiveOwners::test_every_owner_survives_a_no_op_reduce",
  "tests/grounding/test_chunk_merge_contract.py::TestCyclesAndConflicts::test_a_chain_without_a_cycle_still_works",
  "tests/grounding/test_chunk_merge_contract.py::TestCyclesAndConflicts::test_a_three_row_cycle_is_refused_whole",
  "tests/grounding/test_chunk_merge_contract.py::TestCyclesAndConflicts::test_a_two_row_cycle_is_refused_whole",
  "tests/grounding/test_chunk_merge_contract.py::TestCyclesAndConflicts::test_both_relations_on_one_row_is_refused",
  "tests/grounding/test_chunk_merge_contract.py::TestEveryRemoveNeedsOneValidKeeper::test_a_keeper_that_is_also_removed_refuses",
  "tests/grounding/test_chunk_merge_contract.py::TestEveryRemoveNeedsOneValidKeeper::test_a_row_without_provenance_is_still_protected",
  "tests/grounding/test_chunk_merge_contract.py::TestEveryRemoveNeedsOneValidKeeper::test_an_unknown_keeper_refuses",
  "tests/grounding/test_chunk_merge_contract.py::TestEveryRemoveNeedsOneValidKeeper::test_merging_into_itself_refuses",
  "tests/grounding/test_chunk_merge_contract.py::TestEveryRemoveNeedsOneValidKeeper::test_two_keepers_refuse",
  "tests/grounding/test_chunk_merge_contract.py::TestExceptionNeedsBothOnOneRow::test_a_merged_exception_carries_which_row_said_so",
  "tests/grounding/test_chunk_merge_contract.py::TestExceptionNeedsBothOnOneRow::test_a_real_exception_survives_the_merge",
  "tests/grounding/test_chunk_merge_contract.py::TestExceptionNeedsBothOnOneRow::test_a_split_verdict_is_unresolved_not_a_plain_no",
  "tests/grounding/test_chunk_merge_contract.py::TestExceptionNeedsBothOnOneRow::test_both_on_one_row_is_an_exception",
  "tests/grounding/test_chunk_merge_contract.py::TestExceptionNeedsBothOnOneRow::test_hard_here_and_notice_there_is_not_an_exception",
  "tests/grounding/test_chunk_merge_contract.py::TestExceptionNeedsBothOnOneRow::test_no_flags_at_all_is_a_plain_no",
  "tests/grounding/test_chunk_merge_contract.py::TestExceptionNeedsBothOnOneRow::test_the_ledger_is_flattened_and_deduped_on_re_merge",
  "tests/grounding/test_chunk_merge_contract.py::TestExceptionNeedsBothOnOneRow::test_the_merge_does_not_undo_the_same_row_rule",
  "tests/grounding/test_chunk_merge_contract.py::TestExceptionNeedsBothOnOneRow::test_the_original_row_verdicts_are_not_overwritten",
  "tests/grounding/test_chunk_merge_contract.py::TestExceptionNeedsBothOnOneRow::test_the_removed_rows_verdict_survives_in_the_ledger",
  "tests/grounding/test_chunk_merge_contract.py::TestItIsNotWiredYet::test_no_production_code_imports_it",
  "tests/grounding/test_chunk_merge_contract.py::TestItIsNotWiredYet::test_no_step_reaches_it",
  "tests/grounding/test_chunk_merge_contract.py::TestItIsNotWiredYet::test_only_the_registry_reaches_it",
  "tests/grounding/test_chunk_merge_contract.py::TestItIsNotWiredYet::test_outside_that_one_place_nothing_imports_it",
  "tests/grounding/test_chunk_merge_contract.py::TestItIsNotWiredYet::test_outside_the_cc_modules_nothing_imports_it",
  "tests/grounding/test_chunk_merge_contract.py::TestItIsNotWiredYet::test_the_guard_would_catch_a_real_import",
  "tests/grounding/test_chunk_merge_contract.py::TestItIsNotWiredYet::test_the_producer_step_is_the_only_step_file_in_the_family",
  "tests/grounding/test_chunk_merge_contract.py::TestItIsNotWiredYet::test_the_step_registry_does_not_know_a_chunk_step",
  "tests/grounding/test_chunk_merge_contract.py::TestItIsNotWiredYet::test_the_step_registry_knows_exactly_one_chunk_step",
  "tests/grounding/test_chunk_merge_contract.py::TestLocalIdIsCodeIssued::test_a_blank_chunk_stops[  ]",
  "tests/grounding/test_chunk_merge_contract.py::TestLocalIdIsCodeIssued::test_a_blank_chunk_stops[]",
  "tests/grounding/test_chunk_merge_contract.py::TestLocalIdIsCodeIssued::test_it_is_deterministic_and_globally_unique",
  "tests/grounding/test_chunk_merge_contract.py::TestLocalIdIsCodeIssued::test_the_row_index_must_be_a_plain_non_negative_int[-1]",
  "tests/grounding/test_chunk_merge_contract.py::TestLocalIdIsCodeIssued::test_the_row_index_must_be_a_plain_non_negative_int[0]",
  "tests/grounding/test_chunk_merge_contract.py::TestLocalIdIsCodeIssued::test_the_row_index_must_be_a_plain_non_negative_int[1.0]",
  "tests/grounding/test_chunk_merge_contract.py::TestLocalIdIsCodeIssued::test_the_row_index_must_be_a_plain_non_negative_int[True]",
  "tests/grounding/test_chunk_merge_contract.py::TestPartOfIsNotAMerge::test_a_missing_relation_is_not_guessed",
  "tests/grounding/test_chunk_merge_contract.py::TestPartOfIsNotAMerge::test_a_part_stays_its_own_row",
  "tests/grounding/test_chunk_merge_contract.py::TestSameNameDifferentThing::test_changing_only_the_name_changes_nothing",
  "tests/grounding/test_chunk_merge_contract.py::TestSameNameDifferentThing::test_making_two_names_identical_does_not_merge_them",
  "tests/grounding/test_chunk_merge_contract.py::TestSameNameDifferentThing::test_the_module_never_compares_surface_forms",
  "tests/grounding/test_chunk_merge_contract.py::TestSameNameDifferentThing::test_without_a_decision_nothing_is_merged",
  "tests/grounding/test_chunk_merge_contract.py::TestSameOwnerCrossChunk::test_the_exception_flags_survive_the_merge",
  "tests/grounding/test_chunk_merge_contract.py::TestSameOwnerCrossChunk::test_the_exception_verdict_survives_the_merge",
  "tests/grounding/test_chunk_merge_contract.py::TestSameOwnerCrossChunk::test_the_union_makes_it_registerable",
  "tests/grounding/test_chunk_merge_contract.py::TestSameOwnerCrossChunk::test_two_chunks_holding_one_thing_become_one_row",
  "tests/grounding/test_chunk_merge_contract.py::TestTheContractIsActuallyConsumed::test_a_facet_is_still_not_materialized",
  "tests/grounding/test_chunk_merge_contract.py::TestTheContractIsActuallyConsumed::test_the_filter_receives_the_shared_threshold",
  "tests/grounding/test_chunk_merge_contract.py::TestTheContractIsActuallyConsumed::test_the_list_step_uses_that_prefix",
  "tests/grounding/test_chunk_merge_contract.py::TestTheContractIsActuallyConsumed::test_the_overlay_prefix_table_is_derived_not_retyped",
  "tests/grounding/test_chunk_merge_contract.py::TestTheContractIsActuallyConsumed::test_the_short_id_prefixes_come_from_the_contract",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_all_five_owners_get_a_prefix",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_an_unknown_owner_stops",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_changing_only_the_quote_does_not_swap_the_numbers",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_identical_evidence_is_contested_not_numbered",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_it_numbers_by_owner_from_one",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_it_skips_taken_numbers",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_it_validates_its_own_input",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_reordering_the_model_rows_does_not_swap_the_numbers",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_the_earliest_anchor_wins_the_lower_number",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_the_key_does_not_contain_the_local_id",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_the_order_of_arrival_does_not_change_the_ids",
  "tests/grounding/test_chunk_merge_contract.py::TestTheFinalIdIsDeterministic::test_the_prefix_table_and_the_a0_owners_are_one_set",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_blank_anchor_stops",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_blank_local_id_stops",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_broken_span_stops[sp0]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_broken_span_stops[sp1]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_broken_span_stops[sp2]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_broken_span_stops[sp3]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_broken_span_stops[sp4]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_duplicate_local_id_stops",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_flag_that_is_not_exactly_bool_stops[0]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_flag_that_is_not_exactly_bool_stops[1]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_flag_that_is_not_exactly_bool_stops[None]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_flag_that_is_not_exactly_bool_stops[]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_flag_that_is_not_exactly_bool_stops[false]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_flag_that_is_not_exactly_bool_stops[true]",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_missing_occurrences_field_stops",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_missing_span_stops",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_a_quote_that_is_not_at_that_place_stops",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_an_unknown_owner_stops",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_the_owners_come_from_the_a0_schema",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_the_threshold_comes_from_the_enforcing_call_site",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_the_threshold_has_one_source",
  "tests/grounding/test_chunk_merge_contract.py::TestTheInputIsCheckedBeforeReducing::test_the_threshold_matches_the_one_that_is_enforced",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_both_flags_off_is_a_plain_no",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_hard_and_explicit_not_notice_is_a_plain_no",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_hard_without_notice_is_not_the_exception",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_one_flag_on_is_unresolved_not_a_plain_no",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_one_occurrence_alone_is_not_registered",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_one_occurrence_but_hard_and_noticed_is_registered",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_the_same_anchor_twice_counts_once",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_the_same_thing_named_three_ways_still_needs_the_exception",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_the_two_axes_are_a_union_across_chunks",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_two_anchors_in_one_chunk_count_as_two",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_two_places_in_one_scene_count_as_one",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_two_places_in_two_scenes_count_as_two",
  "tests/grounding/test_chunk_merge_contract.py::TestTwiceInOneChunkCounts::test_two_shots_count_as_two",
  "tests/grounding/test_chunk_payload.py::TestAllFiveOwnersPassAcquisition::test_every_target_has_a_written_basis",
  "tests/grounding/test_chunk_payload.py::TestAllFiveOwnersPassAcquisition::test_several_owners_actually_pass",
  "tests/grounding/test_chunk_payload.py::TestAllFiveOwnersPassAcquisition::test_the_fixture_covers_every_owner",
  "tests/grounding/test_chunk_payload.py::TestAllFiveOwnersPassAcquisition::test_the_guard_actually_runs_inside_assert_planted",
  "tests/grounding/test_chunk_payload.py::TestAllFiveOwnersPassAcquisition::test_the_selection_does_not_filter_by_owner",
  "tests/grounding/test_chunk_payload.py::TestAllFiveOwnersPassAcquisition::test_there_are_both_positives_and_negatives",
  "tests/grounding/test_chunk_payload.py::TestEvidenceIsNotCountedAsAnOccurrence::test_a_fabricated_evidence_quote_quarantines_the_row",
  "tests/grounding/test_chunk_payload.py::TestEvidenceIsNotCountedAsAnOccurrence::test_a_fabricated_evidence_quote_stops",
  "tests/grounding/test_chunk_payload.py::TestEvidenceIsNotCountedAsAnOccurrence::test_it_registers_through_the_exception_axis_not_repetition",
  "tests/grounding/test_chunk_payload.py::TestEvidenceIsNotCountedAsAnOccurrence::test_the_evidence_does_not_raise_the_occurrence_count",
  "tests/grounding/test_chunk_payload.py::TestEvidenceIsNotCountedAsAnOccurrence::test_the_merge_sees_mentions_and_evidence_apart",
  "tests/grounding/test_chunk_payload.py::TestItReachesTheMergeEndpoint::test_a_single_occurrence_needs_both_flags_on_the_same_row",
  "tests/grounding/test_chunk_payload.py::TestItReachesTheMergeEndpoint::test_rows_from_two_chunks_reduce_without_touching_them",
  "tests/grounding/test_chunk_payload.py::TestTheIdentityFoldsEveryPart::test_adding_a_second_part_moves_it",
  "tests/grounding/test_chunk_payload.py::TestTheIdentityFoldsEveryPart::test_changing_a_part_field_moves_it",
  "tests/grounding/test_chunk_payload.py::TestTheIdentityFoldsEveryPart::test_the_runner_and_the_builder_agree_on_the_shape",
  "tests/grounding/test_chunk_payload.py::TestTheManuscriptIsNotPadding::test_it_still_splits_into_several_chunks",
  "tests/grounding/test_chunk_payload.py::TestTheManuscriptIsNotPadding::test_no_planted_word_dominates_the_manuscript",
  "tests/grounding/test_chunk_payload.py::TestTheManuscriptIsNotPadding::test_no_sentence_repeats",
  "tests/grounding/test_chunk_payload.py::TestTheManuscriptIsNotPadding::test_the_planted_words_have_believable_counts",
  "tests/grounding/test_chunk_payload.py::TestTheMergeGetsEnoughToTellThingsApart::test_each_row_carries_its_quote_and_which_scene",
  "tests/grounding/test_chunk_payload.py::TestTheMergeGetsEnoughToTellThingsApart::test_the_manuscript_bodies_still_do_not_go",
  "tests/grounding/test_chunk_payload.py::TestTheMergeGetsEnoughToTellThingsApart::test_two_rows_with_the_same_name_are_distinguishable",
  "tests/grounding/test_chunk_payload.py::TestTheObligationNeedsBothFlags::test_both_flags_keep_them",
  "tests/grounding/test_chunk_payload.py::TestTheObligationNeedsBothFlags::test_one_flag_alone_does_not_open_the_search_terms",
  "tests/grounding/test_chunk_payload.py::TestThePackIsRealAndFailsClosed::test_a_missing_pack_version_stops",
  "tests/grounding/test_chunk_payload.py::TestThePackIsRealAndFailsClosed::test_every_file_the_builders_need_is_there",
  "tests/grounding/test_chunk_payload.py::TestThePackIsRealAndFailsClosed::test_the_chunk_schema_asks_for_exactly_the_five_owners",
  "tests/grounding/test_chunk_payload.py::TestThePackIsRealAndFailsClosed::test_the_chunk_schema_does_not_ask_for_char_offsets",
  "tests/grounding/test_chunk_payload.py::TestThePackIsRealAndFailsClosed::test_the_chunk_schema_does_not_ask_the_model_for_an_id",
  "tests/grounding/test_chunk_payload.py::TestThePackIsRealAndFailsClosed::test_the_merge_schema_asks_for_exactly_the_known_relations",
  "tests/grounding/test_chunk_payload.py::TestThePinnedContractHasOneHome::test_the_preflight_reads_the_runners_contract",
  "tests/grounding/test_chunk_payload.py::TestThePreflightCountsInsteadOfStating::test_arm_b_is_one_call_per_chunk_plus_one_merge",
  "tests/grounding/test_chunk_payload.py::TestThePreflightCountsInsteadOfStating::test_every_chunk_call_has_its_own_identity",
  "tests/grounding/test_chunk_payload.py::TestThePreflightCountsInsteadOfStating::test_only_the_chunk_calls_are_marked_parallel",
  "tests/grounding/test_chunk_payload.py::TestThePreflightCountsInsteadOfStating::test_the_merge_identity_is_left_open_not_invented",
  "tests/grounding/test_chunk_payload.py::TestThePreflightCountsInsteadOfStating::test_the_model_is_resolved_not_hardcoded",
  "tests/grounding/test_chunk_payload.py::TestThePreflightCountsInsteadOfStating::test_the_planted_ledger_comes_from_the_fixture_not_the_tool",
  "tests/grounding/test_chunk_payload.py::TestThePromptAndSchemaSayTheSameThing::test_every_field_the_prompt_names_is_in_the_schema",
  "tests/grounding/test_chunk_payload.py::TestThePromptAndSchemaSayTheSameThing::test_the_prompt_does_not_mention_a_dead_field",
  "tests/grounding/test_chunk_payload.py::TestThePromptCarriesRelationsNotANounList::test_all_five_owners_still_have_a_rule",
  "tests/grounding/test_chunk_payload.py::TestThePromptCarriesRelationsNotANounList::test_the_owner_table_names_relations_only",
  "tests/grounding/test_chunk_payload.py::TestTheProseDistributionIsNotDegenerate::test_enough_distinct_clauses",
  "tests/grounding/test_chunk_payload.py::TestTheProseDistributionIsNotDegenerate::test_no_clause_dominates",
  "tests/grounding/test_chunk_payload.py::TestTheProseDistributionIsNotDegenerate::test_the_target_sentences_are_not_drowned",
  "tests/grounding/test_chunk_payload.py::TestTheQuoteBecomesACanonicalSpan::test_a_bad_occurrence_index_quarantines_the_row",
  "tests/grounding/test_chunk_payload.py::TestTheQuoteBecomesACanonicalSpan::test_a_fabricated_quote_quarantines_the_row",
  "tests/grounding/test_chunk_payload.py::TestTheQuoteBecomesACanonicalSpan::test_a_fabricated_quote_stops_here",
  "tests/grounding/test_chunk_payload.py::TestTheQuoteBecomesACanonicalSpan::test_an_owner_outside_the_five_stops",
  "tests/grounding/test_chunk_payload.py::TestTheQuoteBecomesACanonicalSpan::test_asking_for_a_later_occurrence_than_exists_stops",
  "tests/grounding/test_chunk_payload.py::TestTheQuoteBecomesACanonicalSpan::test_counting_stops_at_the_end_of_the_chunk",
  "tests/grounding/test_chunk_payload.py::TestTheQuoteBecomesACanonicalSpan::test_the_index_counts_across_the_whole_chunk",
  "tests/grounding/test_chunk_payload.py::TestTheQuoteBecomesACanonicalSpan::test_the_second_occurrence_is_a_different_span",
  "tests/grounding/test_chunk_payload.py::TestTheQuoteBecomesACanonicalSpan::test_the_span_lands_on_the_quote",
  "tests/grounding/test_chunk_payload.py::TestTwoIdentitiesNotOne::test_a_processing_change_does_not_move_the_acquisition",
  "tests/grounding/test_chunk_payload.py::TestTwoIdentitiesNotOne::test_each_ingredient_moves_the_acquisition_identity",
  "tests/grounding/test_chunk_payload.py::TestTwoIdentitiesNotOne::test_the_processing_stamp_moves_with_the_acquisition_too",
  "tests/grounding/test_chunk_payload.py::TestTwoIdentitiesNotOne::test_the_runner_consumes_the_production_callable",
  "tests/grounding/test_chunk_payload.py::TestTwoIdentitiesNotOne::test_the_same_input_gives_the_same_identity",
  "tests/grounding/test_chunk_payload.py::TestWhatGoesOutTheWire::test_an_unknown_segment_stops",
  "tests/grounding/test_chunk_payload.py::TestWhatGoesOutTheWire::test_the_chunk_payload_carries_the_segment_text_whole",
  "tests/grounding/test_chunk_payload.py::TestWhatGoesOutTheWire::test_the_merge_payload_does_not_carry_the_manuscript",
  "tests/grounding/test_chunk_payload.py::TestWhatGoesOutTheWire::test_the_merge_payload_is_much_smaller_than_the_chunk",
  "tests/grounding/test_chunk_plan.py::TestItMatchesTheProductionGrouping::test_real_checkpoints_group_the_same",
  "tests/grounding/test_chunk_plan.py::TestItMatchesTheProductionGrouping::test_synthetic_inputs_group_the_same[lens0]",
  "tests/grounding/test_chunk_plan.py::TestItMatchesTheProductionGrouping::test_synthetic_inputs_group_the_same[lens1]",
  "tests/grounding/test_chunk_plan.py::TestItMatchesTheProductionGrouping::test_synthetic_inputs_group_the_same[lens2]",
  "tests/grounding/test_chunk_plan.py::TestItMatchesTheProductionGrouping::test_synthetic_inputs_group_the_same[lens3]",
  "tests/grounding/test_chunk_plan.py::TestItMatchesTheProductionGrouping::test_synthetic_inputs_group_the_same[lens4]",
  "tests/grounding/test_chunk_plan.py::TestItNeverCutsASceneOrLosesOne::test_an_oversized_scene_becomes_its_own_chunk",
  "tests/grounding/test_chunk_plan.py::TestItNeverCutsASceneOrLosesOne::test_every_scene_lands_in_exactly_one_chunk",
  "tests/grounding/test_chunk_plan.py::TestItNeverCutsASceneOrLosesOne::test_the_length_field_name_can_differ",
  "tests/grounding/test_chunk_plan.py::TestTheCcToolsAllUseThisOneFunction::test_no_cc_tool_reimplements_the_loop[cc_b_verify]",
  "tests/grounding/test_chunk_plan.py::TestTheCcToolsAllUseThisOneFunction::test_no_cc_tool_reimplements_the_loop[cc_c_preflight]",
  "tests/grounding/test_chunk_plan.py::TestTheConstantIsNotAllowedToDrift::test_it_stops_when_they_disagree",
  "tests/grounding/test_chunk_plan.py::TestTheConstantIsNotAllowedToDrift::test_the_two_definitions_agree",
  "tests/grounding/test_chunk_producer_step.py::TestABrokenJournalIsNotAnEmptyOne::test_a_missing_journal_is_still_a_fresh_start",
  "tests/grounding/test_chunk_producer_step.py::TestABrokenJournalIsNotAnEmptyOne::test_it_stops_instead_of_re_buying_everything",
  "tests/grounding/test_chunk_producer_step.py::TestCancellationIsNotASingleChunkFailure::test_an_ordinary_error_stops_differently_and_later",
  "tests/grounding/test_chunk_producer_step.py::TestCancellationIsNotASingleChunkFailure::test_an_ordinary_provider_error_is_still_counted_not_raised",
  "tests/grounding/test_chunk_producer_step.py::TestCancellationIsNotASingleChunkFailure::test_it_is_re_raised_immediately[step.cancelled]",
  "tests/grounding/test_chunk_producer_step.py::TestCancellationIsNotASingleChunkFailure::test_it_is_re_raised_immediately[step.gate_unreadable]",
  "tests/grounding/test_chunk_producer_step.py::TestCancellationIsNotASingleChunkFailure::test_it_is_re_raised_immediately[step.owner_lost]",
  "tests/grounding/test_chunk_producer_step.py::TestCancellationIsNotASingleChunkFailure::test_the_abort_list_lives_in_one_place",
  "tests/grounding/test_chunk_producer_step.py::TestCancellationIsNotASingleChunkFailure::test_the_merge_checks_for_a_stop_before_paying",
  "tests/grounding/test_chunk_producer_step.py::TestCancellationIsNotASingleChunkFailure::test_the_two_kinds_are_told_apart_by_the_code_that_surfaces",
  "tests/grounding/test_chunk_producer_step.py::TestItBuysNothingWhenTheModeIsOff::test_every_other_mode_returns_without_planning[legacy]",
  "tests/grounding/test_chunk_producer_step.py::TestItBuysNothingWhenTheModeIsOff::test_every_other_mode_returns_without_planning[shadow_plan]",
  "tests/grounding/test_chunk_producer_step.py::TestItBuysNothingWhenTheModeIsOff::test_every_other_mode_returns_without_planning[v2]",
  "tests/grounding/test_chunk_producer_step.py::TestItBuysNothingWhenTheModeIsOff::test_it_asks_the_single_activation_predicate",
  "tests/grounding/test_chunk_producer_step.py::TestItDoesNotReimplementAnything::test_it_calls_the_shared_helpers",
  "tests/grounding/test_chunk_producer_step.py::TestItDoesNotReimplementAnything::test_it_does_not_define_a_second_bundle_target",
  "tests/grounding/test_chunk_producer_step.py::TestItDoesNotReimplementAnything::test_it_does_not_slice_any_text",
  "tests/grounding/test_chunk_producer_step.py::TestItDoesNotReimplementAnything::test_results_are_gathered_in_plan_order_not_completion_order",
  "tests/grounding/test_chunk_producer_step.py::TestItIsNotWiredYet::test_nothing_in_app_imports_this_step",
  "tests/grounding/test_chunk_producer_step.py::TestItIsNotWiredYet::test_the_manifest_does_not_know_it",
  "tests/grounding/test_chunk_producer_step.py::TestItIsNotWiredYet::test_the_step_registry_does_not_know_it",
  "tests/grounding/test_chunk_producer_step.py::TestItIsWiredNow::test_only_the_registry_imports_this_step",
  "tests/grounding/test_chunk_producer_step.py::TestItIsWiredNow::test_the_manifest_knows_it_under_the_same_id",
  "tests/grounding/test_chunk_producer_step.py::TestItIsWiredNow::test_the_step_registry_knows_it_under_one_id",
  "tests/grounding/test_chunk_producer_step.py::TestMyStubMustMatchTheRealSignature::test_every_overridden_method_keeps_the_real_signature[_call]",
  "tests/grounding/test_chunk_producer_step.py::TestMyStubMustMatchTheRealSignature::test_every_overridden_method_keeps_the_real_signature[_merge]",
  "tests/grounding/test_chunk_producer_step.py::TestMyStubMustMatchTheRealSignature::test_every_overridden_method_keeps_the_real_signature[_one]",
  "tests/grounding/test_chunk_producer_step.py::TestMyStubMustMatchTheRealSignature::test_every_overridden_method_keeps_the_real_signature[_read_chunks]",
  "tests/grounding/test_chunk_producer_step.py::TestMyStubMustMatchTheRealSignature::test_every_overridden_method_keeps_the_real_signature[_wrap]",
  "tests/grounding/test_chunk_producer_step.py::TestProcessingOnlyChangesDoNotRebuy::test_a_processing_change_keeps_the_saved_answers",
  "tests/grounding/test_chunk_producer_step.py::TestProcessingOnlyChangesDoNotRebuy::test_the_config_hash_separates_the_two",
  "tests/grounding/test_chunk_producer_step.py::TestProcessingOnlyChangesDoNotRebuy::test_the_identity_ignores_the_processing_contract",
  "tests/grounding/test_chunk_producer_step.py::TestProcessingOnlyChangesDoNotRebuy::test_the_identity_moves_when_the_request_contract_moves",
  "tests/grounding/test_chunk_producer_step.py::TestProcessingOnlyChangesDoNotRebuy::test_the_journal_contract_holds_only_acquisition",
  "tests/grounding/test_chunk_producer_step.py::TestTheBudgetIsCheckedBeforeSending::test_it_stops_instead_of_quietly_buying_less",
  "tests/grounding/test_chunk_producer_step.py::TestTheBudgetIsCheckedBeforeSending::test_the_step_caps_at_chunks_plus_merge",
  "tests/grounding/test_chunk_producer_step.py::TestTheBudgetIsCheckedBeforeSending::test_the_stop_check_runs_before_the_budget_and_the_send",
  "tests/grounding/test_chunk_producer_step.py::TestTheCallIdentityRidesToOpik::test_the_identity_is_put_in_the_opik_metadata",
  "tests/grounding/test_chunk_producer_step.py::TestTheCallIdentityRidesToOpik::test_the_identity_rides_on_the_parent_trace_not_the_call_metadata",
  "tests/grounding/test_chunk_producer_step.py::TestTheCallIdentityRidesToOpik::test_the_join_key_matches_the_audit_tool",
  "tests/grounding/test_chunk_producer_step.py::TestTheCallIdentityRidesToOpik::test_the_send_arms_the_research_budget",
  "tests/grounding/test_chunk_producer_step.py::TestTheCallIdentityRidesToOpik::test_the_send_is_wrapped_in_a_per_call_deadline",
  "tests/grounding/test_chunk_producer_step.py::TestTheCallIdentityRidesToOpik::test_the_tag_survives_the_axis_whitelist",
  "tests/grounding/test_chunk_producer_step.py::TestTheCallIdentityRidesToOpik::test_there_is_only_one_place_that_sends",
  "tests/grounding/test_chunk_producer_step.py::TestTheDeadlineReachesTheWorkers::test_a_deadline_actually_stops_a_worker",
  "tests/grounding/test_chunk_producer_step.py::TestTheDeadlineReachesTheWorkers::test_the_step_opens_a_run_scope_with_a_deadline",
  "tests/grounding/test_chunk_producer_step.py::TestTheDeadlineReachesTheWorkers::test_the_workers_get_the_stop_check_bound",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_an_unknown_value_is_still_refused",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_env_cannot_select_it_before_d",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_env_selects_it_now",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_exactly_one_accepted_mode_reaches_the_chunk_producer",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_no_accepted_mode_reaches_the_chunk_producer",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_project_config_cannot_select_it_before_d",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_project_config_selects_it_now",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_the_old_chain_is_off_in_that_very_mode",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_the_old_paid_chain_is_what_that_predicate_opens",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_the_planned_value_is_not_in_the_accepted_set",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_the_predicate_that_opens_the_old_chain_stays_v2_only",
  "tests/grounding/test_chunk_producer_step.py::TestTheHalfOnModeIsStructurallyImpossible::test_the_two_sets_still_do_not_overlap",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalCountsOnlyThisEpoch::test_a_new_acquisition_contract_starts_a_fresh_budget",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalCountsOnlyThisEpoch::test_an_old_epoch_answer_is_not_reused",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalCountsOnlyThisEpoch::test_processing_only_change_keeps_the_same_epoch",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalCountsOnlyThisEpoch::test_the_old_rows_are_kept_for_audit",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalDoesNotBuyTwice::test_a_changed_contract_is_visible",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalDoesNotBuyTwice::test_a_saved_answer_is_reused_without_sending",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalDoesNotBuyTwice::test_a_send_that_never_answered_is_not_re_bought",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalDoesNotBuyTwice::test_it_survives_a_restart",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalSurvivesParallelWriters::test_every_parallel_buy_is_in_the_journal",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalSurvivesParallelWriters::test_no_stray_temp_file_is_left_behind",
  "tests/grounding/test_chunk_producer_step.py::TestTheJournalSurvivesParallelWriters::test_the_file_is_always_valid_json_mid_flight",
  "tests/grounding/test_chunk_producer_step.py::TestTheLogicalCapIsAtomic::test_only_one_buy_gets_through_a_cap_of_one",
  "tests/grounding/test_chunk_producer_step.py::TestTheLogicalCapIsAtomic::test_the_same_identity_is_bought_once",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalBoundIsDecidedNotGuessed::test_a_plan_inside_the_bound_passes",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalBoundIsDecidedNotGuessed::test_a_plan_over_the_approved_bound_stops_before_buying",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalBoundIsDecidedNotGuessed::test_a_plan_over_the_approved_cap_stops_before_buying",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalBoundIsDecidedNotGuessed::test_it_is_checked_before_the_run_scope_opens",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalBoundIsDecidedNotGuessed::test_the_cap_comes_from_the_same_key_the_research_step_uses",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalBoundIsDecidedNotGuessed::test_the_formula_follows_the_request_contract",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalBoundIsDecidedNotGuessed::test_the_output_says_it_is_a_bound_not_a_count",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalBoundIsDecidedNotGuessed::test_the_pinned_contract_keeps_it_to_slots_only",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalReserveIsAtTheProviderBoundary::test_a_cap_of_one_blocks_the_secondary",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalReserveIsAtTheProviderBoundary::test_both_transmissions_are_reserved",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalReserveIsAtTheProviderBoundary::test_parallel_workers_share_one_cap",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalReserveIsAtTheProviderBoundary::test_the_reserve_is_inside_the_slot_loop",
  "tests/grounding/test_chunk_producer_step.py::TestThePhysicalReserveIsAtTheProviderBoundary::test_unarmed_calls_are_unchanged",
  "tests/grounding/test_chunk_producer_step.py::TestTheRequestContractIsActuallySent::test_the_contract_rides_in_the_identity",
  "tests/grounding/test_chunk_producer_step.py::TestTheRequestContractIsActuallySent::test_the_pinned_values_are_the_quiet_ones",
  "tests/grounding/test_chunk_producer_step.py::TestTheRequestContractIsActuallySent::test_the_send_passes_the_pinned_contract",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestLegacyBuysNoGroundingAtAll::test_but_the_old_extracts_do",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestLegacyBuysNoGroundingAtAll::test_none_of_the_grounding_steps_run",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_exactly_one_grounding_producer_runs",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_no_old_extract_runs[entity_all_character]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_no_old_extract_runs[entity_all_location]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_no_old_extract_runs[entity_all_prop]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_no_old_extract_runs[entity_extract_character]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_no_old_extract_runs[entity_extract_location]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_no_old_extract_runs[entity_extract_prop]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_no_old_paid_lane_runs[grounding_a0]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_no_old_paid_lane_runs[grounding_plan]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_no_old_paid_lane_runs[grounding_research]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestOnlyOneProducerRunsInTheChunkMode::test_the_chunk_producer_runs",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestScreeningBuysNothingInTheChunkMode::test_a_missing_axis_is_unresolved_not_no",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestScreeningBuysNothingInTheChunkMode::test_it_bought_nothing",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestScreeningBuysNothingInTheChunkMode::test_it_calls_no_assess_function",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestScreeningBuysNothingInTheChunkMode::test_the_step_takes_that_branch",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestScreeningBuysNothingInTheChunkMode::test_the_two_axes_decide_it",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheAnswersComeFromProduction::test_the_predicate_names_are_the_real_ones",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheAnswersComeFromProduction::test_the_two_mode_predicates_are_exclusive",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheMergeProjectsInsteadOfLosingEverything::test_a_missing_producer_output_stops",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheMergeProjectsInsteadOfLosingEverything::test_every_lane_survives_into_the_merge",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheMergeProjectsInsteadOfLosingEverything::test_it_calls_no_model",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheMergeProjectsInsteadOfLosingEverything::test_it_says_where_it_came_from",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheMergeProjectsInsteadOfLosingEverything::test_the_merge_is_invalidated_by_the_producer",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_every_old_extract_still_runs[entity_all_character]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_every_old_extract_still_runs[entity_all_location]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_every_old_extract_still_runs[entity_all_prop]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_every_old_extract_still_runs[entity_extract_character]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_every_old_extract_still_runs[entity_extract_location]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_every_old_extract_still_runs[entity_extract_prop]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_every_old_paid_lane_still_runs[grounding_a0]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_every_old_paid_lane_still_runs[grounding_plan]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_every_old_paid_lane_still_runs[grounding_research]",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_the_central_step_runs_in_both",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheOldModeIsUntouched::test_the_new_producer_does_not_run",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestThePartOfRelationIsProjectedNotAsked::test_a_missing_producer_output_stops",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestThePartOfRelationIsProjectedNotAsked::test_a_wrong_owner_pair_stops",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestThePartOfRelationIsProjectedNotAsked::test_an_unsupported_pair_is_recorded_not_fatal",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestThePartOfRelationIsProjectedNotAsked::test_it_asks_no_model",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestThePartOfRelationIsProjectedNotAsked::test_the_relation_lands",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestThePartOfRelationIsProjectedNotAsked::test_the_sync_path_is_still_strict",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheSyncMarkerOpensTheFourthLane::test_a_missing_marker_fails_closed_in_this_mode",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheSyncMarkerOpensTheFourthLane::test_legacy_still_passes_through",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheSyncMarkerOpensTheFourthLane::test_the_merge_stamps_it",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheSyncMarkerOpensTheFourthLane::test_the_merge_stamps_it_at_the_top",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheSyncMarkerOpensTheFourthLane::test_the_sync_then_reads_the_fourth_lane",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheSyncMarkerOpensTheFourthLane::test_the_t2i_step_carries_it_forward",
  "tests/grounding/test_chunk_run_has_one_producer.py::TestTheSyncMarkerOpensTheFourthLane::test_without_the_marker_it_stays_three",
  "tests/grounding/test_coarse_type_pick.py::TestAJudgeAnswerIsAtomic::test_a_duplicate_index_removes_that_judge",
  "tests/grounding/test_coarse_type_pick.py::TestAJudgeAnswerIsAtomic::test_a_short_answer_removes_that_judge",
  "tests/grounding/test_coarse_type_pick.py::TestAJudgeAnswerIsAtomic::test_an_enum_violation_removes_that_judge",
  "tests/grounding/test_coarse_type_pick.py::TestAJudgeAnswerIsAtomic::test_no_valid_judge_fails_closed",
  "tests/grounding/test_coarse_type_pick.py::TestAJudgeAnswerIsAtomic::test_removals_are_written_down",
  "tests/grounding/test_coarse_type_pick.py::TestDedupeKeepsTheLedger::test_a_repeat_content_hash_counts_too",
  "tests/grounding/test_coarse_type_pick.py::TestDedupeKeepsTheLedger::test_a_repeat_url_is_recorded_not_dropped",
  "tests/grounding/test_coarse_type_pick.py::TestDedupeKeepsTheLedger::test_fewer_than_asked_is_not_padded",
  "tests/grounding/test_coarse_type_pick.py::TestDedupeKeepsTheLedger::test_over_cap_is_recorded_not_silently_cut",
  "tests/grounding/test_coarse_type_pick.py::TestDedupeKeepsTheLedger::test_within_a_round_duplicates_are_caught_too",
  "tests/grounding/test_coarse_type_pick.py::TestEligibilityIsConservative::test_all_judges_must_say_yes",
  "tests/grounding/test_coarse_type_pick.py::TestEligibilityIsConservative::test_not_visible_blocks_it",
  "tests/grounding/test_coarse_type_pick.py::TestEligibilityIsConservative::test_one_no_blocks_it",
  "tests/grounding/test_coarse_type_pick.py::TestEligibilityIsConservative::test_unsure_is_not_yes",
  "tests/grounding/test_coarse_type_pick.py::TestItIsDeterministicNotAnAverage::test_the_lowest_eligible_index_wins",
  "tests/grounding/test_coarse_type_pick.py::TestItIsDeterministicNotAnAverage::test_the_same_input_gives_the_same_answer",
  "tests/grounding/test_coarse_type_pick.py::TestItIsDeterministicNotAnAverage::test_there_is_no_score_anywhere_in_the_output",
  "tests/grounding/test_coarse_type_pick.py::TestItWorksWithOneJudge::test_one_judge_can_also_refuse",
  "tests/grounding/test_coarse_type_pick.py::TestItWorksWithOneJudge::test_one_judge_can_select",
  "tests/grounding/test_coarse_type_pick.py::TestItWorksWithOneJudge::test_one_judge_is_recorded_as_such",
  "tests/grounding/test_coarse_type_pick.py::TestItWorksWithOneJudge::test_the_contract_does_not_require_two",
  "tests/grounding/test_coarse_type_pick.py::TestTheAuditTableKeepsWhatEachJudgeSaid::test_it_shows_every_candidate_and_judge",
  "tests/grounding/test_coarse_type_pick.py::TestTheNarrowHintKeepsTheCoordinates::test_it_is_not_the_outdoor_wording",
  "tests/grounding/test_coarse_type_pick.py::TestTheNarrowHintKeepsTheCoordinates::test_it_keeps_era_region_and_model_in_the_query",
  "tests/grounding/test_coarse_type_pick.py::TestTheNarrowHintKeepsTheCoordinates::test_it_says_one_subject_not_one_object",
  "tests/grounding/test_coarse_type_pick.py::TestTheNarrowHintKeepsTheCoordinates::test_it_says_what_to_drop",
  "tests/grounding/test_coarse_type_pick.py::TestThePromptAsksOnlyForTheKind::test_it_asks_resemblance_of_form_but_never_quality_or_era",
  "tests/grounding/test_coarse_type_pick.py::TestThePromptAsksOnlyForTheKind::test_it_asks_the_two_questions",
  "tests/grounding/test_coarse_type_pick.py::TestThePromptAsksOnlyForTheKind::test_it_does_not_ask_for_a_score",
  "tests/grounding/test_coarse_type_pick.py::TestThePromptAsksOnlyForTheKind::test_it_says_a_specialist_would_be_needed",
  "tests/grounding/test_coarse_type_pick.py::TestThePromptAsksOnlyForTheKind::test_it_says_what_it_is_not_asking",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_a_limit_is_not_the_same_either",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_a_provider_error_is_not_the_same_as_finding_nothing",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_an_eligible_first_round_does_not_retry",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_an_empty_first_round_narrows_and_retries",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_it_is_still_not_the_outdoor_structure_contract",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_no_new_candidates_and_none_before_is_no_match",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_no_new_candidates_but_some_before_picks_the_closest",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_no_new_candidates_in_round_two_is_immediately_no_match",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_the_cap_comes_from_the_existing_constant",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_the_caps_are_the_new_contract_not_the_outdoor_ones",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_there_is_no_third_round",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_two_empty_rounds_end_in_no_match",
  "tests/grounding/test_coarse_type_pick.py::TestTheRoundContract::test_two_rounds_of_wrong_kind_end_in_the_closest_pick",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_adoption_changes_only_the_hash_metadata_and_leaves_an_event",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_no_drift_means_nothing_to_adopt",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_one_axis_off_refuses_before_writing[at_tip-ffffffffffffffffffffffffffffffffffffffff]",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_one_axis_off_refuses_before_writing[data_digest-zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz]",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_one_axis_off_refuses_before_writing[new_config_hash-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy]",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_one_axis_off_refuses_before_writing[old_config_hash-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_one_axis_off_refuses_before_writing[pack_raw_hashes-value6]",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_one_axis_off_refuses_before_writing[produced_at_tip-eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee]",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_one_axis_off_refuses_before_writing[produced_by_attempt-att9]",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_one_axis_off_refuses_before_writing[step_id-entity_t2i]",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_the_runner_must_agree_afterwards_or_it_is_rolled_back",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheExactTuple::test_the_tuple_is_measured_not_typed",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheProducingTipComesFromTheLedger::test_a_pack_dir_that_did_not_exist_at_the_producing_tip_refuses",
  "tests/grounding/test_config_hash_adoption_is_exact.py::TestTheProducingTipComesFromTheLedger::test_a_transition_before_the_attempt_wins_over_the_first_run",
  "tests/grounding/test_coordinates_have_a_production_writer.py::TestHelpers::test_declaring_and_clearing",
  "tests/grounding/test_coordinates_have_a_production_writer.py::TestHelpers::test_step_config_save_keeps_scalar_keys",
  "tests/grounding/test_coordinates_have_a_production_writer.py::TestTheRouteAndHandler::test_handler_writes_the_keys_the_pipeline_reads",
  "tests/grounding/test_coordinates_have_a_production_writer.py::TestTheRouteAndHandler::test_llm_config_save_no_longer_erases_the_declaration",
  "tests/grounding/test_coordinates_have_a_production_writer.py::TestTheRouteAndHandler::test_routes_are_registered",
  "tests/grounding/test_coordinates_have_a_production_writer.py::TestTheWriteGate::test_a_reader_member_is_refused_and_nothing_is_written",
  "tests/grounding/test_coordinates_have_a_production_writer.py::TestTheWriteGate::test_an_owner_member_writes",
  "tests/grounding/test_coordinates_have_a_production_writer.py::TestTheWriteGate::test_the_fidelity_post_and_the_put_share_one_gate",
  "tests/grounding/test_downstream_derives_lanes.py::TestAddingTheLaneChangesNothingYet::test_a_missing_key_is_skipped_not_an_error",
  "tests/grounding/test_downstream_derives_lanes.py::TestAddingTheLaneChangesNothingYet::test_the_entities_bag_has_no_such_key_yet",
  "tests/grounding/test_downstream_derives_lanes.py::TestAddingTheLaneChangesNothingYet::test_the_gate_is_open_now",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheEntityChainCarriesTheFourthLane::test_no_lane_name_is_hand_written_in_those_two_steps",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheEntityChainCarriesTheFourthLane::test_the_detail_queue_takes_the_fourth_lane_too",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheEntityChainCarriesTheFourthLane::test_the_fourth_key_appears_only_when_it_has_something",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheEntityChainCarriesTheFourthLane::test_the_lane_table_comes_from_the_contract",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheEntityChainCarriesTheFourthLane::test_the_legacy_extract_fallback_is_three_steps_not_a_lane_table",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheEntityChainCarriesTheFourthLane::test_the_t2i_step_writes_no_lane_name_by_hand",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheEntityChainCarriesTheFourthLane::test_the_v2_projection_already_emits_it",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheEntityChainCarriesTheFourthLane::test_three_lanes_look_exactly_like_before",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheVisibleEntityLoopUsesTheContract::test_it_iterates_the_contract_not_a_hand_list",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheVisibleEntityLoopUsesTheContract::test_no_lane_name_is_written_by_hand_in_that_loop",
  "tests/grounding/test_downstream_derives_lanes.py::TestTheVisibleEntityLoopUsesTheContract::test_the_contract_already_has_the_fourth_lane",
  "tests/grounding/test_downstream_derives_lanes.py::TestWhereTheEntityBagStillStopsShort::test_so_the_fourth_lane_is_absent_but_not_an_error",
  "tests/grounding/test_downstream_derives_lanes.py::TestWhereTheEntityBagStillStopsShort::test_the_entity_chain_still_emits_only_three",
  "tests/grounding/test_downstream_derives_lanes.py::TestWhereTheEntityBagStillStopsShort::test_the_loader_just_passes_the_checkpoint_through",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheContractIsInBothHashes::test_both_steps_bind_the_identity_contract_and_move_when_it_changes",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheDetailFingerprintFollowsTheRealPack::test_legacy_and_v2_hashes_do_not_move_with_the_pack",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheDetailFingerprintFollowsTheRealPack::test_the_hash_moves_when_the_resolved_pack_bytes_change",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheDetailFingerprintFollowsTheRealPack::test_the_hash_reads_the_batch_prompt_and_schema_through_the_real_loader",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheDetailQueueKeepsBothInstances::test_chunk_producer_mode_stops_before_the_provider_on_a_missing_or_duplicate_id",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheDetailQueueKeepsBothInstances::test_legacy_mode_without_ids_still_folds_by_name_and_type",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheDetailQueueKeepsBothInstances::test_same_name_same_type_different_ids_are_both_kept_and_matched_by_id",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheDetailQueueKeepsBothInstances::test_the_accounting_is_per_instance_not_per_name",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheRealPackCarriesTheIdEcho::test_an_unechoed_answer_still_lands_on_a_unique_pair",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheRealPackCarriesTheIdEcho::test_the_resolved_detail_schema_and_prompt_speak_entity_id",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheT2iStepKeysByInstance::test_a_legacy_name_keyed_record_without_an_id_is_not_reused_for_a_duplicated_pair",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheT2iStepKeysByInstance::test_a_legacy_record_for_a_unique_pair_is_still_reused",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheT2iStepKeysByInstance::test_a_new_checkpoint_resumes_by_id_with_zero_calls",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheT2iStepKeysByInstance::test_one_finished_instance_buys_only_the_other",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestTheT2iStepKeysByInstance::test_two_same_named_instances_are_both_generated_and_stored_by_id",
  "tests/grounding/test_entity_instance_identity_is_short_id.py::TestV15PreservesV14AndOnlyAddsTheIdEcho::test_only_the_batch_prompt_and_its_schema_differ_and_only_additively",
  "tests/grounding/test_entity_sync_ext_inert.py::TestCanonLookupPrefersTheCanonicalId::test_a_renamed_entity_is_still_found_by_id",
  "tests/grounding/test_entity_sync_ext_inert.py::TestCanonLookupPrefersTheCanonicalId::test_nothing_found_is_none",
  "tests/grounding/test_entity_sync_ext_inert.py::TestCanonLookupPrefersTheCanonicalId::test_the_name_is_the_fallback",
  "tests/grounding/test_entity_sync_ext_inert.py::TestCanonLookupPrefersTheCanonicalId::test_the_same_canon_from_both_keys_is_fine",
  "tests/grounding/test_entity_sync_ext_inert.py::TestCanonLookupPrefersTheCanonicalId::test_the_same_name_in_two_owners_does_not_collide",
  "tests/grounding/test_entity_sync_ext_inert.py::TestCanonLookupPrefersTheCanonicalId::test_the_short_id_wins",
  "tests/grounding/test_entity_sync_ext_inert.py::TestCanonLookupPrefersTheCanonicalId::test_two_keys_pointing_at_different_canons_is_the_id",
  "tests/grounding/test_entity_sync_ext_inert.py::TestCanonLookupPrefersTheCanonicalId::test_two_keys_pointing_at_different_canons_stop",
  "tests/grounding/test_entity_sync_ext_inert.py::TestItIsStillInert::test_nothing_in_app_imports_it",
  "tests/grounding/test_entity_sync_ext_inert.py::TestItIsStillInert::test_the_live_sync_actually_consumes_it",
  "tests/grounding/test_entity_sync_ext_inert.py::TestItIsStillInert::test_the_live_sync_asks_the_checkpoint_which_kinds_to_read",
  "tests/grounding/test_entity_sync_ext_inert.py::TestItIsStillInert::test_the_live_sync_still_reads_only_three",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_a_present_but_unknown_version_stops[0]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_a_present_but_unknown_version_stops[1.1]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_a_present_but_unknown_version_stops[2]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_a_present_but_unknown_version_stops[]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_a_present_but_unknown_version_stops[abc]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_no_marker_means_the_old_three[7]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_no_marker_means_the_old_three[None]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_no_marker_means_the_old_three[\\uae00\\uc790]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_no_marker_means_the_old_three[cp0]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_no_marker_means_the_old_three[cp3]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_no_marker_means_the_old_three[cp4]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_no_marker_means_the_old_three[cp5]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_no_marker_means_the_old_three[cp6]",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_outlook_is_never_in_this_path",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_the_marker_key_alone_is_enough_to_stop",
  "tests/grounding/test_entity_sync_ext_inert.py::TestLegacyCheckpointsAreUntouched::test_the_marker_opens_the_new_key",
  "tests/grounding/test_entity_sync_ext_inert.py::TestTheCounterSeesEveryOwnerApart::test_an_unknown_owner_stops",
  "tests/grounding/test_entity_sync_ext_inert.py::TestTheCounterSeesEveryOwnerApart::test_every_owner_has_a_slot",
  "tests/grounding/test_entity_sync_ext_inert.py::TestTheCounterSeesEveryOwnerApart::test_junk_is_not_counted",
  "tests/grounding/test_entity_sync_ext_inert.py::TestTheCounterSeesEveryOwnerApart::test_location_and_its_part_are_counted_apart",
  "tests/grounding/test_entity_sync_ext_inert.py::TestTheCounterSeesEveryOwnerApart::test_the_next_id_does_not_collide",
  "tests/grounding/test_entity_sync_ext_inert.py::TestTheCounterSeesEveryOwnerApart::test_the_old_way_would_have_reissued",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestABlankDescriptionIsFilledFromMerge::test_a_blank_completed_entry_is_redone_and_filled",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestABlankDescriptionIsFilledFromMerge::test_a_blank_entry_is_filled_from_merge",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestABlankDescriptionIsFilledFromMerge::test_a_filled_entry_is_left_alone",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestABlankDescriptionIsFilledFromMerge::test_a_filled_entry_is_not_rebought",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestABlankDescriptionIsFilledFromMerge::test_filling_buys_nothing",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestABlankDescriptionIsFilledFromMerge::test_the_detail_still_wins_over_merge",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestABlankDescriptionIsFilledFromMerge::test_without_a_source_it_does_not_loop",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestABlankDescriptionIsFilledFromMerge::test_without_a_source_the_blank_stays_blank",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestResumeBuysOnlyTheMissingOnes::test_the_kept_twelve_are_byte_identical",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestResumeBuysOnlyTheMissingOnes::test_three_calls_fifteen_completed_neutral_shape",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestTheSourceMustBeTheSameEntity::test_a_namesake_with_another_short_id_does_not_donate",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestTheSourceMustBeTheSameEntity::test_a_row_without_a_type_gets_it_from_its_lane",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestTheSourceMustBeTheSameEntity::test_a_source_without_a_description_still_counts_as_a_candidate",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestTheSourceMustBeTheSameEntity::test_only_another_type_exists_so_it_stays_blank",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestTheSourceMustBeTheSameEntity::test_traits_that_are_already_there_are_not_overwritten",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestTheSourceMustBeTheSameEntity::test_two_namesakes_without_ids_leave_it_blank",
  "tests/grounding/test_entity_t2i_resume_buys_only_the_missing_ones.py::TestWithoutTheFoldTheDefectComesBack::test_positive_control_unfolded_dict_fails_all_three",
  "tests/grounding/test_era_consumer_endpoints.py::TestB1EntityReference::test_a_research_failure_is_also_non_blocking",
  "tests/grounding/test_era_consumer_endpoints.py::TestB1EntityReference::test_an_assess_failure_is_recorded_not_swallowed",
  "tests/grounding/test_era_consumer_endpoints.py::TestB1EntityReference::test_no_subject_keeps_the_old_non_blocking_input",
  "tests/grounding/test_era_consumer_endpoints.py::TestB1EntityReference::test_selected_bytes_reach_reference_images",
  "tests/grounding/test_era_consumer_endpoints.py::TestB1EntityReference::test_the_direct_path_still_uses_the_public_api",
  "tests/grounding/test_era_consumer_endpoints.py::TestB1EntityReference::test_the_public_functions_keep_their_shape",
  "tests/grounding/test_era_consumer_endpoints.py::TestConfinedProjection::test_it_does_not_mutate_the_input",
  "tests/grounding/test_era_consumer_endpoints.py::TestConfinedProjection::test_it_inserts_at_index_one",
  "tests/grounding/test_era_consumer_endpoints.py::TestConfinedProjection::test_none_leaves_refs_alone",
  "tests/grounding/test_era_consumer_endpoints.py::TestConfinedProjection::test_production_calls_it_and_attach_uses_the_row",
  "tests/grounding/test_era_consumer_endpoints.py::TestConfinedProjection::test_the_lineage_row_carries_file_and_sha",
  "tests/grounding/test_era_consumer_endpoints.py::TestGroupbgProjection::test_none_changes_nothing",
  "tests/grounding/test_era_consumer_endpoints.py::TestGroupbgProjection::test_production_calls_it",
  "tests/grounding/test_era_consumer_endpoints.py::TestGroupbgProjection::test_selected_gives_all_three",
  "tests/grounding/test_era_consumer_endpoints.py::TestGroupbgProjection::test_the_fingerprint_comes_with_the_reference",
  "tests/grounding/test_era_consumer_endpoints.py::TestGroupbgProjection::test_the_fragment_exists_when_era_is_off",
  "tests/grounding/test_era_consumer_endpoints.py::TestGroupbgProjection::test_the_meta_consumes_the_fragment",
  "tests/grounding/test_era_consumer_endpoints.py::TestGroupbgProjection::test_the_role_aliases_are_gone",
  "tests/grounding/test_era_consumer_endpoints.py::TestNormalizeIsSharedButProjectionsAreNot::test_none_and_half_results_stay_none",
  "tests/grounding/test_era_consumer_endpoints.py::TestNormalizeIsSharedButProjectionsAreNot::test_normalize_has_no_side_effects",
  "tests/grounding/test_era_consumer_endpoints.py::TestNormalizeIsSharedButProjectionsAreNot::test_normalize_reads_the_fields_once",
  "tests/grounding/test_era_consumer_endpoints.py::TestPlateProjection::test_none_changes_nothing",
  "tests/grounding/test_era_consumer_endpoints.py::TestPlateProjection::test_path_and_meta_come_together",
  "tests/grounding/test_era_consumer_endpoints.py::TestPlateProjection::test_production_calls_it_and_passes_both",
  "tests/grounding/test_era_consumer_endpoints.py::TestPlateProjection::test_selected_gives_prompt_path_and_meta",
  "tests/grounding/test_era_consumer_endpoints.py::TestPlateProjection::test_the_variables_exist_when_era_is_off",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheCoarsePickerReachesTheDirectPath::test_the_judge_does_not_get_world_facts",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheCoarsePickerReachesTheDirectPath::test_the_picker_prompt_is_the_coarse_one",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheCoarsePickerReachesTheDirectPath::test_the_search_query_still_carries_them",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheLateWrapperKeepsItsContract::test_a_failure_is_still_non_blocking_none",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheLateWrapperKeepsItsContract::test_no_subject_is_still_non_blocking_none",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheLateWrapperKeepsItsContract::test_the_late_path_folds_one_round",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheLateWrapperKeepsItsContract::test_the_three_call_sites_still_call_the_wrapper",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheLateWrapperKeepsItsContract::test_the_wrapper_returns_what_they_read",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheSharedConsumptionHelper::test_a_half_result_is_refused",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheSharedConsumptionHelper::test_confined_inserts_the_slot_into_refs",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheSharedConsumptionHelper::test_it_builds_role_path_and_sha",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheSharedConsumptionHelper::test_none_stays_none",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheSharedConsumptionHelper::test_plate_appends_the_role_to_the_prompt",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheSharedConsumptionHelper::test_plate_passes_the_slot_path_to_bgfirst",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheSharedConsumptionHelper::test_the_production_sites_call_it",
  "tests/grounding/test_era_consumer_endpoints.py::TestTheSharedConsumptionHelper::test_the_role_comes_from_the_production_builder",
  "tests/grounding/test_era_coordinate_in_queries.py::TestAYearInsideTheDecadeCountsToo::test_a_year_in_another_decade_is_not",
  "tests/grounding/test_era_coordinate_in_queries.py::TestAYearInsideTheDecadeCountsToo::test_a_year_in_the_same_decade_is_the_era",
  "tests/grounding/test_era_coordinate_in_queries.py::TestAYearInsideTheDecadeCountsToo::test_it_is_arithmetic_not_meaning",
  "tests/grounding/test_era_coordinate_in_queries.py::TestAYearInsideTheDecadeCountsToo::test_no_era_token_still_measures_nothing",
  "tests/grounding/test_era_coordinate_in_queries.py::TestItCountsWhatCarriesTheEra::test_it_does_not_judge_meaning",
  "tests/grounding/test_era_coordinate_in_queries.py::TestItCountsWhatCarriesTheEra::test_it_separates_with_and_without",
  "tests/grounding/test_era_coordinate_in_queries.py::TestItCountsWhatCarriesTheEra::test_no_tokens_means_it_measures_nothing",
  "tests/grounding/test_era_coordinate_in_queries.py::TestItReadsTheEraFromTheWorldFacts::test_a_different_era_gives_different_tokens",
  "tests/grounding/test_era_coordinate_in_queries.py::TestItReadsTheEraFromTheWorldFacts::test_it_picks_up_the_year",
  "tests/grounding/test_era_coordinate_in_queries.py::TestItReadsTheEraFromTheWorldFacts::test_no_year_gives_nothing",
  "tests/grounding/test_era_coordinate_in_queries.py::TestItReadsTheEraFromTheWorldFacts::test_the_code_names_no_era",
  "tests/grounding/test_era_coordinate_in_queries.py::TestThePackSaysIt::test_the_brief_pack_demands_the_period_in_every_query",
  "tests/grounding/test_era_coordinate_in_queries.py::TestThePackSaysIt::test_the_narrow_hint_does_not_contradict_itself",
  "tests/grounding/test_era_coordinate_in_queries.py::TestThePackSaysIt::test_the_narrow_hint_keeps_the_period_too",
  "tests/grounding/test_era_coordinate_in_queries.py::TestThePackSaysIt::test_the_rule_is_a_principle_not_a_word_list",
  "tests/grounding/test_era_coordinate_in_queries.py::TestTheRoundsRecordIt::test_each_round_carries_the_count",
  "tests/grounding/test_era_coordinate_in_queries.py::TestTheRoundsRecordIt::test_the_runner_passes_the_tokens",
  "tests/grounding/test_era_coordinate_in_queries.py::TestWrongEraIsNotTheSameAsNoEra::test_a_year_outside_the_decade_is_counted_apart",
  "tests/grounding/test_era_coordinate_in_queries.py::TestWrongEraIsNotTheSameAsNoEra::test_all_three_kinds_add_up",
  "tests/grounding/test_era_coordinate_in_queries.py::TestWrongEraIsNotTheSameAsNoEra::test_the_new_pack_cut_both_kinds",
  "tests/grounding/test_era_coordinate_in_queries.py::TestWrongEraIsNotTheSameAsNoEra::test_the_wrong_ones_are_kept_for_reading",
  "tests/grounding/test_era_research_split_2a.py::TestAcquireTransitions::test_a_cache_hit_with_matching_file_does_not_acquire",
  "tests/grounding/test_era_research_split_2a.py::TestAcquireTransitions::test_a_hash_mismatch_is_not_a_hit_either",
  "tests/grounding/test_era_research_split_2a.py::TestAcquireTransitions::test_a_missing_file_is_not_faked_as_a_hit",
  "tests/grounding/test_era_research_split_2a.py::TestAcquireTransitions::test_miss_acquires_once_and_stores_content_addressed",
  "tests/grounding/test_era_research_split_2a.py::TestAcquireTransitions::test_research_failure_stores_no_success_and_audits",
  "tests/grounding/test_era_research_split_2a.py::TestAcquireTransitions::test_the_same_walk_does_not_retry_a_research_failure",
  "tests/grounding/test_era_research_split_2a.py::TestAssessTransitions::test_attempts_grow_monotonically",
  "tests/grounding/test_era_research_split_2a.py::TestAssessTransitions::test_empty_is_stored_and_not_re_asked",
  "tests/grounding/test_era_research_split_2a.py::TestAssessTransitions::test_failure_stores_no_success_and_bumps_attempts",
  "tests/grounding/test_era_research_split_2a.py::TestAssessTransitions::test_miss_calls_once_and_stores_positive",
  "tests/grounding/test_era_research_split_2a.py::TestAssessTransitions::test_the_same_walk_does_not_retry_a_failure",
  "tests/grounding/test_era_research_split_2a.py::TestNoSubjectAndFailureAreDifferentStates::test_a_failure_says_so",
  "tests/grounding/test_era_research_split_2a.py::TestNoSubjectAndFailureAreDifferentStates::test_a_memo_hit_is_a_failure_not_an_empty_list",
  "tests/grounding/test_era_research_split_2a.py::TestNoSubjectAndFailureAreDifferentStates::test_an_empty_subject_name_is_a_failure",
  "tests/grounding/test_era_research_split_2a.py::TestNoSubjectAndFailureAreDifferentStates::test_no_subject_says_so",
  "tests/grounding/test_era_research_split_2a.py::TestNoSubjectAndFailureAreDifferentStates::test_the_legacy_wrapper_still_folds_both_to_none",
  "tests/grounding/test_era_research_split_2a.py::TestNoSubjectAndFailureAreDifferentStates::test_the_status_does_not_need_the_outcome_channel",
  "tests/grounding/test_era_research_split_2a.py::TestTheAcquireHalfRefusesRoundsItCannotRun::test_it_refuses_before_spending_anything",
  "tests/grounding/test_era_research_split_2a.py::TestTheAcquireHalfRefusesRoundsItCannotRun::test_one_round_is_allowed",
  "tests/grounding/test_era_research_split_2a.py::TestTheAcquireHalfRefusesRoundsItCannotRun::test_two_rounds_is_refused_until_the_loop_exists",
  "tests/grounding/test_era_research_split_2a.py::TestTheBoundaryIsExplicit::test_the_old_entry_is_now_a_thin_wrapper",
  "tests/grounding/test_era_research_split_2a.py::TestTheBoundaryIsExplicit::test_the_plan_is_durable_enough_to_replay",
  "tests/grounding/test_era_research_split_2a.py::TestTheBoundaryIsExplicit::test_the_plan_records_which_identity_was_used",
  "tests/grounding/test_era_research_split_2a.py::TestTheBoundaryIsExplicit::test_the_public_return_shape_did_not_change",
  "tests/grounding/test_era_research_split_2a.py::TestTheBoundaryIsExplicit::test_the_two_halves_are_marked",
  "tests/grounding/test_era_research_split_2a.py::TestTheBoundaryIsExplicit::test_the_two_halves_are_real_callables",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeyFoldsWhatThatCallerActuallyDoes::test_a_string_or_bool_is_not_a_round_count",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeyFoldsWhatThatCallerActuallyDoes::test_an_impossible_round_count_is_refused",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeyFoldsWhatThatCallerActuallyDoes::test_one_round_and_two_rounds_are_different_keys",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeyFoldsWhatThatCallerActuallyDoes::test_the_default_is_the_full_contract",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeyFoldsWhatThatCallerActuallyDoes::test_the_late_key_folds_one_round",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeyFoldsWhatThatCallerActuallyDoes::test_the_late_path_declares_one_round",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeyFoldsWhatThatCallerActuallyDoes::test_there_is_no_default",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeysAreByteIdentical::test_2b_has_not_been_wired_yet",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeysAreByteIdentical::test_2b_is_now_wired",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeysAreByteIdentical::test_nothing_was_deleted_from_the_function",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeysAreByteIdentical::test_the_assess_key_bytes_did_not_move",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeysAreByteIdentical::test_the_assess_key_still_folds_the_same_things",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeysAreByteIdentical::test_the_ref_key_still_folds_the_same_things",
  "tests/grounding/test_era_research_split_2a.py::TestTheKeysAreByteIdentical::test_the_split_and_the_key_helper_agree",
  "tests/grounding/test_era_research_split_2a.py::TestThePickerNoLongerSeesEraOrRegion::test_the_prompt_is_the_coarse_one",
  "tests/grounding/test_era_research_split_2a.py::TestThePickerNoLongerSeesEraOrRegion::test_the_search_query_still_keeps_era_and_region",
  "tests/grounding/test_era_research_split_2a.py::TestThePickerNoLongerSeesEraOrRegion::test_the_source_no_longer_builds_the_old_head",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_every_required_element_is_present",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_one_byte_of_each_coarse_stem_moves_it[narrow_retry_hint]",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_one_byte_of_each_coarse_stem_moves_it[pick_schema]",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_one_byte_of_each_coarse_stem_moves_it[system]",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_the_actual_round_count_moves_it",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_the_coarse_contract_version_moves_it",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_the_coarse_pack_moves_it",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_the_per_round_cap_moves_it",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_the_picker_model_is_folded_by_the_ref_key_itself",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_the_round_count_moves_it",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefKeyMovesWithTheAcquisitionContract::test_the_search_contract_moves_it",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefactorDidNotChangeTheKeyMaterial::test_multiple_terms_join_the_old_way",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefactorDidNotChangeTheKeyMaterial::test_the_canonical_assembly_is_unchanged",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefactorDidNotChangeTheKeyMaterial::test_the_fallback_assembly_is_unchanged",
  "tests/grounding/test_era_research_split_2a.py::TestTheRefactorDidNotChangeTheKeyMaterial::test_the_separator_is_a_newline_not_a_pipe",
  "tests/grounding/test_era_research_split_2a.py::TestTheSplitPathEqualsTheOldWrapper::test_the_empty_path_is_equivalent",
  "tests/grounding/test_era_research_split_2a.py::TestTheSplitPathEqualsTheOldWrapper::test_the_failure_path_is_equivalent",
  "tests/grounding/test_era_research_split_2a.py::TestTheSplitPathEqualsTheOldWrapper::test_the_front_half_can_stop_without_buying",
  "tests/grounding/test_era_research_split_2a.py::TestTheSplitPathEqualsTheOldWrapper::test_the_success_path_is_equivalent",
  "tests/grounding/test_exit_verify_reads_the_fresh_result.py::test_exit_verify_uses_the_fresh_result_not_the_stale_checkpoint",
  "tests/grounding/test_exit_verify_reads_the_fresh_result.py::test_resume_verify_reads_the_checkpoint_when_there_is_no_fresh_result",
  "tests/grounding/test_facet_binding.py::TestLocationPartBindsNow::test_a_part_without_a_relation_is_still_debt",
  "tests/grounding/test_facet_binding.py::TestLocationPartBindsNow::test_a_registered_part_binds_to_its_registered_location",
  "tests/grounding/test_facet_binding.py::TestLocationPartBindsNow::test_an_unregistered_part_is_still_debt",
  "tests/grounding/test_facet_binding.py::TestLocationPartBindsNow::test_it_never_registers_as_a_plain_location",
  "tests/grounding/test_facet_binding.py::TestLocationPartBindsNow::test_the_canon_types_now_include_it",
  "tests/grounding/test_facet_binding.py::TestLocationPartBindsNow::test_two_parents_refuse_instead_of_picking_one",
  "tests/grounding/test_facet_binding.py::TestLocationPartIsDurableDebt::test_it_becomes_debt_even_with_a_perfect_relation",
  "tests/grounding/test_facet_binding.py::TestLocationPartIsDurableDebt::test_the_canon_types_do_not_include_it",
  "tests/grounding/test_facet_binding.py::TestLocationPartIsDurableDebt::test_the_debt_names_why_it_is_not_registered_as_a_location",
  "tests/grounding/test_facet_binding.py::TestNothingIsBoundByName::test_base_owners_are_not_touched",
  "tests/grounding/test_facet_binding.py::TestNothingIsBoundByName::test_the_module_never_reads_surface_forms_for_binding",
  "tests/grounding/test_facet_binding.py::TestOutlookBindsToItsCharacter::test_an_unregistered_child_is_debt_not_a_binding",
  "tests/grounding/test_facet_binding.py::TestOutlookBindsToItsCharacter::test_an_unregistered_parent_is_debt",
  "tests/grounding/test_facet_binding.py::TestOutlookBindsToItsCharacter::test_it_binds_through_the_relation_ledger",
  "tests/grounding/test_facet_binding.py::TestOutlookBindsToItsCharacter::test_it_binds_when_both_sides_are_registered",
  "tests/grounding/test_facet_binding.py::TestOutlookBindsToItsCharacter::test_the_same_relation_twice_is_not_two_parents",
  "tests/grounding/test_facet_binding.py::TestOutlookBindsToItsCharacter::test_two_different_parents_is_still_debt",
  "tests/grounding/test_facet_binding.py::TestOutlookBindsToItsCharacter::test_two_parents_is_debt_not_a_pick",
  "tests/grounding/test_facet_binding.py::TestOutlookBindsToItsCharacter::test_without_a_relation_it_is_debt_not_a_guess",
  "tests/grounding/test_facet_binding.py::TestTheOwnerPairIsTheRelation::test_a_wrong_pair_is_refused",
  "tests/grounding/test_facet_binding.py::TestTheOwnerPairIsTheRelation::test_the_table_is_the_contract",
  "tests/grounding/test_facet_binding.py::TestTheOwnerSetsAreThreeDifferentThings::test_an_unknown_relation_type_reaches_nothing",
  "tests/grounding/test_facet_binding.py::TestTheOwnerSetsAreThreeDifferentThings::test_entity_sync_does_not_swallow_outlook",
  "tests/grounding/test_facet_binding.py::TestTheOwnerSetsAreThreeDifferentThings::test_entity_sync_owns_everything_else",
  "tests/grounding/test_facet_binding.py::TestTheOwnerSetsAreThreeDifferentThings::test_nobody_writes_the_list_by_hand_anymore",
  "tests/grounding/test_facet_binding.py::TestTheOwnerSetsAreThreeDifferentThings::test_part_of_is_exactly_location_part_to_location",
  "tests/grounding/test_facet_binding.py::TestTheOwnerSetsAreThreeDifferentThings::test_visual_variant_does_not_reach_the_facet_owners",
  "tests/grounding/test_facet_binding.py::TestTheOwnerTypeContractHasOneOwner::test_all_five_owners_are_materializable",
  "tests/grounding/test_facet_binding.py::TestTheOwnerTypeContractHasOneOwner::test_location_part_is_not_materializable",
  "tests/grounding/test_facet_binding.py::TestTheOwnerTypeContractHasOneOwner::test_nobody_else_copies_the_list",
  "tests/grounding/test_facet_binding.py::TestTheOwnerTypeContractHasOneOwner::test_the_db_column_never_blocked_it",
  "tests/grounding/test_facet_binding.py::TestTheOwnerTypeContractHasOneOwner::test_the_facet_binder_reads_the_domain_contract",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestAFabricatedContextNeverGoesOut::test_a_quote_from_another_scene_is_refused",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestAFabricatedContextNeverGoesOut::test_a_quote_that_is_not_in_the_text_at_all_is_refused",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestAFabricatedContextNeverGoesOut::test_a_real_quote_with_an_invented_subject_is_refused",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestAFabricatedContextNeverGoesOut::test_the_verified_one_still_goes_out",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestAPartWithNoPlaceRowStillGetsBoth::test_both_targets_really_go_out",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestAPartWithNoPlaceRowStillGetsBoth::test_no_place_id_was_invented",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestAPartWithNoPlaceRowStillGetsBoth::test_the_model_context_survives_the_whole_chain",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestAPartWithNoPlaceRowStillGetsBoth::test_they_ask_for_different_things",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestObligationsStandBeforeAnyResearch::test_context_and_detail_ask_different_things",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestObligationsStandBeforeAnyResearch::test_each_part_gets_its_own_detail_obligation",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestObligationsStandBeforeAnyResearch::test_nothing_disappears_from_the_ledger",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestObligationsStandBeforeAnyResearch::test_siblings_share_one_context_obligation",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestObligationsStandBeforeAnyResearch::test_the_parent_owns_the_context",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheCentralResearcherTakesThemAll::test_each_lane_is_projected_to_a_reference_place",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheCentralResearcherTakesThemAll::test_no_ledger_row_disappears",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheCentralResearcherTakesThemAll::test_no_obligation_disappears",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheCentralResearcherTakesThemAll::test_nobody_waits_for_a_person",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheParentPhotoLandsOnce::test_siblings_share_one_context_member",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheParentPhotoLandsOnce::test_the_parent_context_is_researched_once",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRealChainCarriesEveryLane::test_all_five_owners_reach_the_common_ledger",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRealChainCarriesEveryLane::test_every_row_lands_in_exactly_one_lane",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRealChainCarriesEveryLane::test_the_negative_controls_are_not_targets",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRealChainCarriesEveryLane::test_the_screen_rows_come_from_the_real_producer",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRecordReachesTheDurableSidecar::test_a_coarse_selection_alone_becomes_required_nothing",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRecordReachesTheDurableSidecar::test_a_verified_selection_attaches_exactly_as_before",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRecordReachesTheDurableSidecar::test_every_background_obligation_is_written",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRecordReachesTheDurableSidecar::test_nobody_waits_for_a_person",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRecordReachesTheDurableSidecar::test_only_the_found_ones_become_required",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRecordReachesTheDurableSidecar::test_reading_it_back_keeps_both_outcomes",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRecordReachesTheDurableSidecar::test_the_missing_one_is_the_context",
  "tests/grounding/test_five_lanes_to_the_bundle.py::TestTheRecordReachesTheDurableSidecar::test_the_sidecar_is_json",
  "tests/grounding/test_five_owners_endpoint.py::TestABoundRowNeverCarriesAFault::test_a_link_that_matches_nothing_keeps_its_fault",
  "tests/grounding/test_five_owners_endpoint.py::TestABoundRowNeverCarriesAFault::test_a_link_to_the_first_row_also_binds_without_a_fault",
  "tests/grounding/test_five_owners_endpoint.py::TestABoundRowNeverCarriesAFault::test_a_link_to_the_second_row_binds_without_a_fault",
  "tests/grounding/test_five_owners_endpoint.py::TestABoundRowNeverCarriesAFault::test_no_row_ever_has_both",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_a_candidate_without_a_link_still_carries_by_name[character-\\uc774\\ubc1c\\uc0ac]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_a_candidate_without_a_link_still_carries_by_name[location-\\uad6d\\ubc25\\uc9d1]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_a_candidate_without_a_link_still_carries_by_name[prop-\\ud45c]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_a_valid_link_binds_only_to_its_own_coordinate",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_an_invalid_link_binds_nothing_and_promotes_nothing[coord-character-\\uc774\\ubc1c\\uc0ac]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_an_invalid_link_binds_nothing_and_promotes_nothing[coord-location-\\uad6d\\ubc25\\uc9d1]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_an_invalid_link_binds_nothing_and_promotes_nothing[coord-prop-\\ud45c]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_an_invalid_link_binds_nothing_and_promotes_nothing[issuer-character-\\uc774\\ubc1c\\uc0ac]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_an_invalid_link_binds_nothing_and_promotes_nothing[issuer-location-\\uad6d\\ubc25\\uc9d1]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_an_invalid_link_binds_nothing_and_promotes_nothing[issuer-prop-\\ud45c]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_an_invalid_link_binds_nothing_and_promotes_nothing[malformed-character-\\uc774\\ubc1c\\uc0ac]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_an_invalid_link_binds_nothing_and_promotes_nothing[malformed-location-\\uad6d\\ubc25\\uc9d1]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_an_invalid_link_binds_nothing_and_promotes_nothing[malformed-prop-\\ud45c]",
  "tests/grounding/test_five_owners_endpoint.py::TestADeclaredLinkNeverFallsBackToNames::test_the_obligation_count_matches_what_was_registered",
  "tests/grounding/test_five_owners_endpoint.py::TestALinkMustMatchEveryCoordinateItClaims::test_a_bogus_local_id_is_refused_even_when_final_matches",
  "tests/grounding/test_five_owners_endpoint.py::TestALinkMustMatchEveryCoordinateItClaims::test_a_coordinate_the_target_does_not_have_is_refused",
  "tests/grounding/test_five_owners_endpoint.py::TestALinkMustMatchEveryCoordinateItClaims::test_both_coordinates_agreeing_is_the_positive_control",
  "tests/grounding/test_five_owners_endpoint.py::TestALinkMustMatchEveryCoordinateItClaims::test_broken_is_told_apart_from_absent[None-None]",
  "tests/grounding/test_five_owners_endpoint.py::TestALinkMustMatchEveryCoordinateItClaims::test_broken_is_told_apart_from_absent[link0-unknown_issuer]",
  "tests/grounding/test_five_owners_endpoint.py::TestALinkMustMatchEveryCoordinateItClaims::test_the_entity_local_id_is_read_from_its_provenance",
  "tests/grounding/test_five_owners_endpoint.py::TestALinkMustMatchEveryCoordinateItClaims::test_the_symmetric_case_is_refused_too",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_a_bare_short_id_is_not_enough",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_a_missing_or_wrong_contract_is_refused",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_a_plain_prop_still_carries",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_a_producer_issued_link_does_bind",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_a_registered_part_with_no_candidate_is_an_entity_row",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_an_exact_or_partial_name_never_binds[\\uac04\\ud310]",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_an_exact_or_partial_name_never_binds[\\uc774\\ubc1c\\uc18c \\ud68c\\uc804 \\uac04\\ud310]",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_an_exact_or_partial_name_never_binds[\\ud68c\\uc804 \\uac04\\ud310]",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_an_issuer_string_alone_is_not_a_contract",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_an_unknown_issuer_is_refused",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_both_survive_when_they_cannot_be_linked",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_conflicting_coordinates_are_refused",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_the_link_it_trusted_is_kept_verbatim",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_the_real_a0_shape_has_no_id_field",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_the_same_reduced_row_is_a_link",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_the_two_kinds_never_cross",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_two_coordinates_that_disagree_are_refused",
  "tests/grounding/test_five_owners_endpoint.py::TestALocationPartNeverBindsByName::test_two_storage_places_that_disagree_are_refused",
  "tests/grounding/test_five_owners_endpoint.py::TestAMalformedLinkIsNotAnAbsentLink::test_a_none_value_is_still_malformed_not_absent",
  "tests/grounding/test_five_owners_endpoint.py::TestAMalformedLinkIsNotAnAbsentLink::test_a_present_but_malformed_link_is_explicit[broken]",
  "tests/grounding/test_five_owners_endpoint.py::TestAMalformedLinkIsNotAnAbsentLink::test_a_present_but_malformed_link_is_explicit[value1]",
  "tests/grounding/test_five_owners_endpoint.py::TestAMalformedLinkIsNotAnAbsentLink::test_a_present_but_malformed_link_is_explicit[value2]",
  "tests/grounding/test_five_owners_endpoint.py::TestAMalformedLinkIsNotAnAbsentLink::test_an_absent_key_carries_no_fault",
  "tests/grounding/test_five_owners_endpoint.py::TestAMalformedLinkIsNotAnAbsentLink::test_one_broken_place_poisons_a_good_one",
  "tests/grounding/test_five_owners_endpoint.py::TestAMalformedLinkIsNotAnAbsentLink::test_one_good_place_binds",
  "tests/grounding/test_five_owners_endpoint.py::TestAMalformedLinkIsNotAnAbsentLink::test_two_good_places_bind",
  "tests/grounding/test_five_owners_endpoint.py::TestASpanThatStartsAtZeroKeepsItsIdentity::test_a_missing_offset_makes_no_anchor",
  "tests/grounding/test_five_owners_endpoint.py::TestASpanThatStartsAtZeroKeepsItsIdentity::test_zero_offsets_make_a_real_anchor",
  "tests/grounding/test_five_owners_endpoint.py::TestAllFiveReachRegistration::test_every_owner_gets_a_final_id",
  "tests/grounding/test_five_owners_endpoint.py::TestAllFiveReachRegistration::test_the_part_never_borrows_the_base_prefix",
  "tests/grounding/test_five_owners_endpoint.py::TestAnOutlookCandidateIsActuallyBurned::test_exactly_one_outlook_stays_deferred_with_a_reason",
  "tests/grounding/test_five_owners_endpoint.py::TestBothFacetsBindStructurally::test_binding_never_reads_a_surface_form",
  "tests/grounding/test_five_owners_endpoint.py::TestBothFacetsBindStructurally::test_nothing_is_left_as_debt",
  "tests/grounding/test_five_owners_endpoint.py::TestBothFacetsBindStructurally::test_the_location_part_binds_to_its_location",
  "tests/grounding/test_five_owners_endpoint.py::TestBothFacetsBindStructurally::test_the_outlook_binds_to_its_character",
  "tests/grounding/test_five_owners_endpoint.py::TestEveryExpectedSpanSurvivesToTheScreen::test_a_row_without_occurrences_gets_no_invented_ones",
  "tests/grounding/test_five_owners_endpoint.py::TestEveryExpectedSpanSurvivesToTheScreen::test_not_one_expected_span_is_lost",
  "tests/grounding/test_five_owners_endpoint.py::TestEveryExpectedSpanSurvivesToTheScreen::test_the_outlook_evidence_survives_without_an_entity_row",
  "tests/grounding/test_five_owners_endpoint.py::TestEveryLinkSlotIsKeptWithItsLocation::test_a_present_value_is_kept_whatever_it_is[None]",
  "tests/grounding/test_five_owners_endpoint.py::TestEveryLinkSlotIsKeptWithItsLocation::test_a_present_value_is_kept_whatever_it_is[]",
  "tests/grounding/test_five_owners_endpoint.py::TestEveryLinkSlotIsKeptWithItsLocation::test_a_present_value_is_kept_whatever_it_is[broken]",
  "tests/grounding/test_five_owners_endpoint.py::TestEveryLinkSlotIsKeptWithItsLocation::test_a_present_value_is_kept_whatever_it_is[value2]",
  "tests/grounding/test_five_owners_endpoint.py::TestEveryLinkSlotIsKeptWithItsLocation::test_both_places_are_kept_when_they_disagree",
  "tests/grounding/test_five_owners_endpoint.py::TestEveryLinkSlotIsKeptWithItsLocation::test_no_link_has_no_slots",
  "tests/grounding/test_five_owners_endpoint.py::TestNobodyWaitsForAHuman::test_downstream_is_never_blocked[\\ubb34\\uc5c7\\uc778\\uc9c0 \\ubaa8\\ub984]",
  "tests/grounding/test_five_owners_endpoint.py::TestNobodyWaitsForAHuman::test_downstream_is_never_blocked[no_match_after_retry]",
  "tests/grounding/test_five_owners_endpoint.py::TestNobodyWaitsForAHuman::test_downstream_is_never_blocked[retryable]",
  "tests/grounding/test_five_owners_endpoint.py::TestNobodyWaitsForAHuman::test_downstream_is_never_blocked[selected]",
  "tests/grounding/test_five_owners_endpoint.py::TestNobodyWaitsForAHuman::test_the_outcome_is_one_of_two[no_match_after_retry]",
  "tests/grounding/test_five_owners_endpoint.py::TestNobodyWaitsForAHuman::test_the_outcome_is_one_of_two[retryable]",
  "tests/grounding/test_five_owners_endpoint.py::TestNobodyWaitsForAHuman::test_the_outcome_is_one_of_two[selected]",
  "tests/grounding/test_five_owners_endpoint.py::TestTheDownstreamCheckpointKeepsThemApart::test_nothing_vanished_without_a_reason",
  "tests/grounding/test_five_owners_endpoint.py::TestTheDownstreamCheckpointKeepsThemApart::test_the_outlook_is_not_a_base_row",
  "tests/grounding/test_five_owners_endpoint.py::TestTheDownstreamCheckpointKeepsThemApart::test_the_part_gets_its_own_key",
  "tests/grounding/test_five_owners_endpoint.py::TestTheEmitterGivesEachRowItsOwnIdentity::test_a_link_only_wins_when_it_is_verified",
  "tests/grounding/test_five_owners_endpoint.py::TestTheEmitterGivesEachRowItsOwnIdentity::test_a_row_without_a_span_stops_instead_of_a_blank_anchor",
  "tests/grounding/test_five_owners_endpoint.py::TestTheEmitterGivesEachRowItsOwnIdentity::test_both_bind_at_the_receiving_end",
  "tests/grounding/test_five_owners_endpoint.py::TestTheEmitterGivesEachRowItsOwnIdentity::test_same_scene_same_word_different_spans_get_two_identities",
  "tests/grounding/test_five_owners_endpoint.py::TestTheEmitterGivesEachRowItsOwnIdentity::test_the_emitter_checks_uniqueness_itself",
  "tests/grounding/test_five_owners_endpoint.py::TestTheEmitterNeverInventsAnObligation::test_a_row_the_producer_did_not_register_gets_no_candidate",
  "tests/grounding/test_five_owners_endpoint.py::TestTheEmitterNeverInventsAnObligation::test_an_owner_with_no_entity_row_here_still_carries_evidence",
  "tests/grounding/test_five_owners_endpoint.py::TestTheEmitterNeverInventsAnObligation::test_the_gate_is_the_ledger_not_the_owner",
  "tests/grounding/test_five_owners_endpoint.py::TestTheEmitterNeverInventsAnObligation::test_the_obligation_count_matches_what_was_registered",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFacetContractIsThreeAxesNotOne::test_a_missing_key_invents_no_phantom_row",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFacetContractIsThreeAxesNotOne::test_a_parentless_candidate_creates_nothing",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFacetContractIsThreeAxesNotOne::test_an_orphan_stays_recorded_with_a_reason",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFacetContractIsThreeAxesNotOne::test_the_base_kinds_still_get_promoted",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFacetContractIsThreeAxesNotOne::test_the_part_of_ledger_survives_the_scan",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFacetContractIsThreeAxesNotOne::test_the_three_axes_say_different_things",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFixtureItselfIsHonest::test_every_owner_appears_at_least_once_as_a_positive",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFixtureItselfIsHonest::test_every_owner_appears_exactly_once_as_a_positive",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFixtureItselfIsHonest::test_it_still_holds_together",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFixtureItselfIsHonest::test_the_negatives_carry_no_axis_basis",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFixtureItselfIsHonest::test_the_negatives_say_why_they_are_not_grounded",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFrontEndKeepsTheEvidenceForLater::test_a_base_owner_keeps_evidence_too",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFrontEndKeepsTheEvidenceForLater::test_every_row_carries_its_source_evidence",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFrontEndKeepsTheEvidenceForLater::test_it_keeps_spans_verbatim_when_they_exist",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFrontEndKeepsTheEvidenceForLater::test_it_never_invents_a_span",
  "tests/grounding/test_five_owners_endpoint.py::TestTheFrontEndKeepsTheEvidenceForLater::test_the_facet_debt_is_a_view_not_a_second_ledger",
  "tests/grounding/test_five_owners_endpoint.py::TestTheObligationLedgerCoversWhatWeRegistered::test_a_registered_location_part_binds_as_an_entity_row",
  "tests/grounding/test_five_owners_endpoint.py::TestTheObligationLedgerCoversWhatWeRegistered::test_every_registered_row_has_a_subject",
  "tests/grounding/test_five_owners_endpoint.py::TestTheObligationLedgerCoversWhatWeRegistered::test_it_did_not_buy_anything",
  "tests/grounding/test_five_owners_endpoint.py::TestTheObligationLedgerCoversWhatWeRegistered::test_the_ledger_has_one_row_per_subject",
  "tests/grounding/test_five_owners_endpoint.py::TestTheObligationLedgerCoversWhatWeRegistered::test_the_location_part_is_no_longer_deferred_to_a_producer",
  "tests/grounding/test_five_owners_endpoint.py::TestTheObligationLedgerCoversWhatWeRegistered::test_the_outlook_is_still_the_open_one",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerDecisionSurvivesToTheScreen::test_a_row_without_those_fields_gets_no_empty_payload",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerDecisionSurvivesToTheScreen::test_every_structured_field_survives_verbatim",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerDecisionSurvivesToTheScreen::test_it_is_not_mixed_into_the_manuscript_evidence",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerDecisionSurvivesToTheScreen::test_the_contract_version_was_bumped",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerDecisionSurvivesToTheScreen::test_the_judge_never_sees_how_it_looks",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerDecisionSurvivesToTheScreen::test_the_outlook_keeps_it_without_an_entity_row",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerDecisionSurvivesToTheScreen::test_the_two_uses_do_not_overlap",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerEmitsTheLinkItselfNow::test_every_registered_row_gets_a_candidate_that_points_at_it",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerEmitsTheLinkItselfNow::test_exactly_one_step_wires_it",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerEmitsTheLinkItselfNow::test_it_invents_no_occurrence",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerEmitsTheLinkItselfNow::test_it_is_deterministic",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerEmitsTheLinkItselfNow::test_nothing_wires_it_into_a_step_yet",
  "tests/grounding/test_five_owners_endpoint.py::TestTheProducerEmitsTheLinkItselfNow::test_the_link_it_emits_is_the_one_carry_accepts",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestAStopRequestIsNotASearchFailure::test_a_cancel_from_the_search_propagates",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestAStopRequestIsNotASearchFailure::test_an_ordinary_search_error_still_folds_into_a_retryable_row",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestAStopRequestIsNotASearchFailure::test_the_row_level_reason_comes_from_the_last_round_when_the_top_is_empty",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestCodexCounterexamples::test_a_changed_quote_changes_the_identity_and_reruns_the_research",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestCodexCounterexamples::test_a_failed_second_search_still_picks_from_the_first_round",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestCodexCounterexamples::test_a_judge_that_raises_in_both_rounds_still_yields_one_photo",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestCodexCounterexamples::test_a_research_answer_with_an_empty_core_field_is_a_failure[appearance_criteria]",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestCodexCounterexamples::test_a_research_answer_with_an_empty_core_field_is_a_failure[narrow_queries]",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestCodexCounterexamples::test_a_research_answer_with_an_empty_core_field_is_a_failure[rough_queries]",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestCodexCounterexamples::test_a_research_answer_with_an_empty_core_field_is_a_failure[search_directive_native]",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestCodexCounterexamples::test_a_research_answer_with_an_empty_core_field_is_a_failure[what_it_is]",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestCodexCounterexamples::test_nothing_downloaded_and_a_failure_is_retryable_not_no_match",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestProductionWiring::test_the_production_judge_forwards_the_criteria",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestProductionWiring::test_the_research_prompt_carries_the_full_evidence",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestProductionWiring::test_the_step_writer_is_the_research_writer",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheCombinerV2::test_a_wrong_kind_by_all_judges_is_ranked_behind_the_rest",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheCombinerV2::test_criteria_no_blocks_eligibility_but_closest_is_still_named",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheCombinerV2::test_the_last_round_decides_closest_only_when_candidates_exist",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheCombinerV2::test_v1_verdicts_without_the_new_fields_still_parse",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLanguageDoorStandsOnTheFinalOutboundQuery::test_native_terms_decide_the_script_when_the_lock_is_a_code",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLanguageDoorStandsOnTheFinalOutboundQuery::test_no_basis_means_no_door",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLanguageDoorStandsOnTheFinalOutboundQuery::test_the_door_checks_the_query_after_the_coordinates",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLanguageLockDoorIsGeneric::test_a_query_in_another_script_is_dropped_and_the_rest_kept",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLanguageLockDoorIsGeneric::test_all_queries_in_another_script_is_a_retryable_failure",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLanguageLockDoorIsGeneric::test_dominant_script_is_a_property_lookup_not_a_language_list",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLanguageLockDoorIsGeneric::test_no_readable_lock_means_no_door",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLastRoundAlwaysPicksOne::test_a_criteria_match_in_round_one_ends_it",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLastRoundAlwaysPicksOne::test_an_old_judge_without_the_criteria_argument_still_works",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLastRoundAlwaysPicksOne::test_no_criteria_match_in_two_rounds_still_selects_the_closest",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheLastRoundAlwaysPicksOne::test_nothing_downloaded_in_either_round_is_no_match",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheResearchWriter::test_a_prior_research_on_the_target_is_reused_without_a_call",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheResearchWriter::test_coordinates_are_prepended_when_the_model_left_them_out",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheResearchWriter::test_identity_is_the_skeleton_the_packs_and_the_quotes_not_the_prose",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheResearchWriter::test_round_one_is_narrow_round_two_is_rough_and_research_happens_once",
  "tests/grounding/test_five_step_acquisition_always_picks_one.py::TestTheResearchWriter::test_the_packs_carry_no_fixture_nouns",
  "tests/grounding/test_general_ref_brief_pack.py::TestBothCoordinatesRideEveryQuery::test_the_narrow_hint_drops_neither",
  "tests/grounding/test_general_ref_brief_pack.py::TestBothCoordinatesRideEveryQuery::test_the_narrow_hint_keeps_both",
  "tests/grounding/test_general_ref_brief_pack.py::TestBothCoordinatesRideEveryQuery::test_the_narrow_hint_keeps_the_specificity_too",
  "tests/grounding/test_general_ref_brief_pack.py::TestBothCoordinatesRideEveryQuery::test_the_region_and_the_era_both_go_out",
  "tests/grounding/test_general_ref_brief_pack.py::TestSpecificityIsPreserved::test_the_builder_never_inspects_the_description",
  "tests/grounding/test_general_ref_brief_pack.py::TestSpecificityIsPreserved::test_the_description_goes_out_verbatim[\\uba38\\ub9ac\\ub97c \\uae4e\\ub294 \\uac00\\uac8c \\uc55e\\uc5d0 \\uc138\\uc6b0\\ub294 \\uc6d0\\ud1b5 \\uac04\\ud310]",
  "tests/grounding/test_general_ref_brief_pack.py::TestSpecificityIsPreserved::test_the_description_goes_out_verbatim[\\uc5b4\\ub290 \\ud68c\\uc0ac\\uac00 1962\\ub144\\uc5d0 \\ub0b4\\ub193\\uc740 \\uadf8 \\ud2b9\\uc815 \\uae30\\uc885\\uc758 \\uc6d0\\ud1b5 \\uac04\\ud310]",
  "tests/grounding/test_general_ref_brief_pack.py::TestSpecificityIsPreserved::test_the_pack_does_not_forbid_a_real_particular_subject",
  "tests/grounding/test_general_ref_brief_pack.py::TestSpecificityIsPreserved::test_the_two_blocks_differ_only_by_the_description",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheCanaryActuallySendsTheGeneralPack::test_a_prop_is_not_sent_as_a_place_structure",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheCanaryActuallySendsTheGeneralPack::test_an_exact_referent_goes_out_unchanged",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheCanaryActuallySendsTheGeneralPack::test_both_coordinates_actually_go_out",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheCanaryActuallySendsTheGeneralPack::test_every_owner_goes_out_through_the_same_pack",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheCanaryActuallySendsTheGeneralPack::test_the_narrow_round_appends_the_general_hint",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheCanaryActuallySendsTheGeneralPack::test_the_system_prompt_is_not_the_outdoor_one",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheCanaryActuallySendsTheGeneralPack::test_the_system_prompt_is_the_general_one",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheGuardActuallyCatchesSomething::test_a_single_mention_passes",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheGuardActuallyCatchesSomething::test_a_synthetic_two_item_list_is_caught",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheGuardActuallyCatchesSomething::test_the_old_pack_is_caught",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheNewPackNamesNoExamples::test_no_file_in_any_version_enumerates_literals",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheNewPackNamesNoExamples::test_the_period_rule_survives_without_the_word_list",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheOldStructurePackIsUntouched::test_the_old_general_version_is_kept_not_overwritten",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheOldStructurePackIsUntouched::test_the_outdoor_pack_still_loads",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheOldStructurePackIsUntouched::test_the_schema_is_shared_not_copied",
  "tests/grounding/test_general_ref_brief_pack.py::TestTheOldStructurePackIsUntouched::test_the_two_packs_are_different_files",
  "tests/grounding/test_general_ref_brief_pack.py::TestThePackIsOwnerAgnostic::test_every_owner_builds",
  "tests/grounding/test_general_ref_brief_pack.py::TestThePackIsOwnerAgnostic::test_it_carries_the_structured_era_not_a_guess",
  "tests/grounding/test_general_ref_brief_pack.py::TestThePackIsOwnerAgnostic::test_it_refuses_an_owner_outside_the_enum",
  "tests/grounding/test_general_ref_brief_pack.py::TestThePackIsOwnerAgnostic::test_the_blocks_are_identical_except_the_runtime_values",
  "tests/grounding/test_general_ref_brief_pack.py::TestThePackIsOwnerAgnostic::test_the_builder_does_not_branch_on_the_owner",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_falls_back_to_scene_chaining[entity_all_character-characters-character]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_falls_back_to_scene_chaining[entity_all_character-characters]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_falls_back_to_scene_chaining[entity_all_location-locations-location]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_falls_back_to_scene_chaining[entity_all_location-locations]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_falls_back_to_scene_chaining[entity_all_prop-props-prop]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_falls_back_to_scene_chaining[entity_all_prop-props]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_reaches_the_provider[entity_all_character-characters-C-character]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_reaches_the_provider[entity_all_character-characters-C]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_reaches_the_provider[entity_all_location-locations-L-location]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_reaches_the_provider[entity_all_location-locations-L]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_reaches_the_provider[entity_all_prop-props-P-prop]",
  "tests/grounding/test_grounding_binding.py::TestEveryListStepActuallyRuns::test_each_list_step_reaches_the_provider[entity_all_prop-props-P]",
  "tests/grounding/test_grounding_binding.py::TestMergeRefusesWhatItCannotPreserve::test_a_keeper_that_is_also_removed_refuses",
  "tests/grounding/test_grounding_binding.py::TestMergeRefusesWhatItCannotPreserve::test_a_missing_keeper_refuses",
  "tests/grounding/test_grounding_binding.py::TestMergeRefusesWhatItCannotPreserve::test_a_row_without_provenance_is_deleted_as_before",
  "tests/grounding/test_grounding_binding.py::TestMergeRefusesWhatItCannotPreserve::test_a_valid_mapping_moves_the_ids",
  "tests/grounding/test_grounding_binding.py::TestMergeRefusesWhatItCannotPreserve::test_an_empty_mapping_refuses_the_deletion",
  "tests/grounding/test_grounding_binding.py::TestMergeRefusesWhatItCannotPreserve::test_merging_into_itself_refuses",
  "tests/grounding/test_grounding_binding.py::TestMergeRefusesWhatItCannotPreserve::test_the_step_subtracts_the_refusals_before_deleting",
  "tests/grounding/test_grounding_binding.py::TestMergeRefusesWhatItCannotPreserve::test_two_keepers_for_one_row_refuses",
  "tests/grounding/test_grounding_binding.py::TestMergingKeepsProvenance::test_a_keeper_with_nothing_picks_up_the_removed_ids",
  "tests/grounding/test_grounding_binding.py::TestMergingKeepsProvenance::test_carry_into_edits_the_keeper_in_place",
  "tests/grounding/test_grounding_binding.py::TestMergingKeepsProvenance::test_it_survives_none_and_missing",
  "tests/grounding/test_grounding_binding.py::TestMergingKeepsProvenance::test_union_keeps_first_seen_order",
  "tests/grounding/test_grounding_binding.py::TestOneCandidateTwoRowsIsContested::test_a_missing_field_becomes_an_empty_array",
  "tests/grounding/test_grounding_binding.py::TestOneCandidateTwoRowsIsContested::test_a_repeat_inside_one_row_folds",
  "tests/grounding/test_grounding_binding.py::TestOneCandidateTwoRowsIsContested::test_an_id_outside_the_catalog_is_dropped",
  "tests/grounding/test_grounding_binding.py::TestOneCandidateTwoRowsIsContested::test_many_candidates_on_one_row_are_kept_as_an_array",
  "tests/grounding/test_grounding_binding.py::TestOneCandidateTwoRowsIsContested::test_the_rows_themselves_survive",
  "tests/grounding/test_grounding_binding.py::TestOneCandidateTwoRowsIsContested::test_two_rows_claiming_one_candidate_lose_it",
  "tests/grounding/test_grounding_binding.py::TestTheBindingHelpersDoNotDependOnRowOrder::test_a_blank_candidate_id_stops_the_catalog",
  "tests/grounding/test_grounding_binding.py::TestTheBindingHelpersDoNotDependOnRowOrder::test_a_clean_catalog_still_works",
  "tests/grounding/test_grounding_binding.py::TestTheBindingHelpersDoNotDependOnRowOrder::test_a_duplicate_candidate_id_stops_the_catalog",
  "tests/grounding/test_grounding_binding.py::TestTheBindingHelpersDoNotDependOnRowOrder::test_the_same_row_twice_is_fine",
  "tests/grounding/test_grounding_binding.py::TestTheBindingHelpersDoNotDependOnRowOrder::test_two_rows_claiming_one_candidate_stop_instead_of_first_wins",
  "tests/grounding/test_grounding_binding.py::TestTheCatalogCarriesOnlyDynamicSlots::test_a_facet_never_reaches_a_base_catalog",
  "tests/grounding/test_grounding_binding.py::TestTheCatalogCarriesOnlyDynamicSlots::test_a_repeated_id_is_listed_once",
  "tests/grounding/test_grounding_binding.py::TestTheCatalogCarriesOnlyDynamicSlots::test_a_repeated_id_stops_instead_of_folding",
  "tests/grounding/test_grounding_binding.py::TestTheCatalogCarriesOnlyDynamicSlots::test_every_slot_is_present",
  "tests/grounding/test_grounding_binding.py::TestTheCatalogCarriesOnlyDynamicSlots::test_it_emits_only_slot_labels_and_the_input",
  "tests/grounding/test_grounding_binding.py::TestTheCatalogCarriesOnlyDynamicSlots::test_it_holds_no_example_object",
  "tests/grounding/test_grounding_binding.py::TestTheCatalogCarriesOnlyDynamicSlots::test_it_lists_the_ids_of_that_owner_only",
  "tests/grounding/test_grounding_binding.py::TestTheCatalogCarriesOnlyDynamicSlots::test_no_candidates_means_no_catalog",
  "tests/grounding/test_grounding_binding.py::TestTheChainActuallyCarriesIt::test_no_candidates_leaves_the_shot_path_byte_identical",
  "tests/grounding/test_grounding_binding.py::TestTheChainActuallyCarriesIt::test_the_detail_step_is_untouched_without_candidates",
  "tests/grounding/test_grounding_binding.py::TestTheChainActuallyCarriesIt::test_the_detail_step_moves_the_ids_onto_the_detailed_rows",
  "tests/grounding/test_grounding_binding.py::TestTheChainActuallyCarriesIt::test_the_scene_chain_unions_ids_across_bundles",
  "tests/grounding/test_grounding_binding.py::TestTheChainActuallyCarriesIt::test_the_shot_path_puts_the_catalog_and_the_enum_in",
  "tests/grounding/test_grounding_binding.py::TestTheConsumerSideReadsTheIds::test_a_bound_row_uses_the_id_not_the_name",
  "tests/grounding/test_grounding_binding.py::TestTheConsumerSideReadsTheIds::test_a_row_claiming_two_candidates_is_not_bound",
  "tests/grounding/test_grounding_binding.py::TestTheConsumerSideReadsTheIds::test_an_empty_array_means_none_not_try_the_name",
  "tests/grounding/test_grounding_binding.py::TestTheConsumerSideReadsTheIds::test_protection_does_not_paint_over_an_empty_answer",
  "tests/grounding/test_grounding_binding.py::TestTheConsumerSideReadsTheIds::test_protection_falls_back_when_nobody_was_asked",
  "tests/grounding/test_grounding_binding.py::TestTheConsumerSideReadsTheIds::test_protection_follows_the_id",
  "tests/grounding/test_grounding_binding.py::TestTheConsumerSideReadsTheIds::test_skip_is_still_not_protected",
  "tests/grounding/test_grounding_binding.py::TestTheConsumerSideReadsTheIds::test_without_the_field_the_old_way_still_works",
  "tests/grounding/test_grounding_binding.py::TestTheDetailStepReconnectsByShortId::test_a_renamed_row_still_keeps_its_binding",
  "tests/grounding/test_grounding_binding.py::TestTheDetailStepReconnectsByShortId::test_an_empty_list_leaves_it_alone",
  "tests/grounding/test_grounding_binding.py::TestTheDetailStepReconnectsByShortId::test_an_invented_short_id_is_recorded",
  "tests/grounding/test_grounding_binding.py::TestTheDetailStepReconnectsByShortId::test_it_carries_the_candidate_ids_across",
  "tests/grounding/test_grounding_binding.py::TestTheDetailStepReconnectsByShortId::test_it_never_reads_a_name",
  "tests/grounding/test_grounding_binding.py::TestTheDetailStepReconnectsByShortId::test_the_schema_gets_a_required_short_id_enum",
  "tests/grounding/test_grounding_binding.py::TestTheDetailStepReconnectsByShortId::test_two_rows_claiming_one_short_id_get_nothing",
  "tests/grounding/test_grounding_binding.py::TestTheLedgerSurvivesToTheCheckpoint::test_a_blank_short_id_stops_instead_of_falling_back",
  "tests/grounding/test_grounding_binding.py::TestTheLedgerSurvivesToTheCheckpoint::test_a_contested_candidate_is_not_unbound",
  "tests/grounding/test_grounding_binding.py::TestTheLedgerSurvivesToTheCheckpoint::test_a_lost_candidate_is_written_back",
  "tests/grounding/test_grounding_binding.py::TestTheLedgerSurvivesToTheCheckpoint::test_contested_wins_over_lost",
  "tests/grounding/test_grounding_binding.py::TestTheLedgerSurvivesToTheCheckpoint::test_every_allowed_candidate_gets_a_row",
  "tests/grounding/test_grounding_binding.py::TestTheLedgerSurvivesToTheCheckpoint::test_only_unbound_may_be_promoted",
  "tests/grounding/test_grounding_binding.py::TestTheLedgerSurvivesToTheCheckpoint::test_the_detail_step_hands_lost_back",
  "tests/grounding/test_grounding_binding.py::TestTheLedgerSurvivesToTheCheckpoint::test_the_lister_hands_the_ledger_back",
  "tests/grounding/test_grounding_binding.py::TestTheProducerChainIsWired::test_a_keeper_that_is_also_removed_does_not_swallow_the_ids",
  "tests/grounding/test_grounding_binding.py::TestTheProducerChainIsWired::test_a_normal_merge_moves_the_ids",
  "tests/grounding/test_grounding_binding.py::TestTheProducerChainIsWired::test_all_three_steps_pass_the_candidates_to_the_fallback",
  "tests/grounding/test_grounding_binding.py::TestTheProducerChainIsWired::test_merge_asks_where_each_removed_row_goes",
  "tests/grounding/test_grounding_binding.py::TestTheProducerChainIsWired::test_merge_carries_provenance_before_deleting",
  "tests/grounding/test_grounding_binding.py::TestTheProducerChainIsWired::test_merge_only_asks_when_there_is_provenance_to_move",
  "tests/grounding/test_grounding_binding.py::TestTheProducerChainIsWired::test_the_detail_step_gets_short_ids_and_rebinds",
  "tests/grounding/test_grounding_binding.py::TestTheProducerChainIsWired::test_the_scene_chain_path_asks_too",
  "tests/grounding/test_grounding_binding.py::TestTheProducerChainIsWired::test_the_shot_path_asks_for_the_binding",
  "tests/grounding/test_grounding_binding.py::TestTheProducerChainIsWired::test_the_single_call_fallback_asks_too",
  "tests/grounding/test_grounding_binding.py::TestTheRulesLiveInAPack::test_the_block_still_comes_out_whole",
  "tests/grounding/test_grounding_binding.py::TestTheRulesLiveInAPack::test_the_fingerprint_carries_the_bytes_not_just_the_version",
  "tests/grounding/test_grounding_binding.py::TestTheRulesLiveInAPack::test_the_pack_has_all_four_stems",
  "tests/grounding/test_grounding_binding.py::TestTheRulesLiveInAPack::test_the_source_holds_no_rule_text",
  "tests/grounding/test_grounding_binding.py::TestTheSchemaGetsARuntimeEnum::test_an_empty_list_leaves_the_schema_alone",
  "tests/grounding/test_grounding_binding.py::TestTheSchemaGetsARuntimeEnum::test_it_does_not_mutate_the_input",
  "tests/grounding/test_grounding_binding.py::TestTheSchemaGetsARuntimeEnum::test_it_is_required",
  "tests/grounding/test_grounding_binding.py::TestTheSchemaGetsARuntimeEnum::test_it_keeps_the_existing_fields",
  "tests/grounding/test_grounding_binding.py::TestTheSchemaGetsARuntimeEnum::test_the_field_is_an_array_with_the_given_enum",
  "tests/grounding/test_grounding_binding.py::TestTheShortIdMapIsTheOnlySemanticOutput::test_a_row_without_a_short_id_is_skipped",
  "tests/grounding/test_grounding_binding.py::TestTheShortIdMapIsTheOnlySemanticOutput::test_it_maps_candidate_to_short_id",
  "tests/grounding/test_grounding_binding.py::TestTheShortIdMapIsTheOnlySemanticOutput::test_it_never_reads_a_name",
  "tests/grounding/test_grounding_binding.py::TestTheShortIdMapIsTheOnlySemanticOutput::test_the_module_has_no_substring_comparison",
  "tests/grounding/test_grounding_binding.py::TestTheStepsInvalidateOldCheckpoints::test_every_step_returns_the_hash_it_compares_with",
  "tests/grounding/test_grounding_binding.py::TestTheStepsInvalidateOldCheckpoints::test_the_hash_is_untouched_without_candidates",
  "tests/grounding/test_grounding_binding.py::TestTheStepsInvalidateOldCheckpoints::test_the_hash_moves_when_candidates_arrive",
  "tests/grounding/test_grounding_binding.py::TestTheStepsInvalidateOldCheckpoints::test_the_hash_moves_when_the_pack_bytes_move",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_a_blank_statement_is_refused[  ]",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_a_blank_statement_is_refused[None]",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_a_blank_statement_is_refused[\\n]",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_a_blank_statement_is_refused[]",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_an_unknown_kind_is_refused",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_optional_without_sources_is_allowed_but_kept_optional",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_required_must_be_a_real_bool[0]",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_required_must_be_a_real_bool[1]",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_required_must_be_a_real_bool[None]",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_required_must_be_a_real_bool[true]",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_required_must_be_a_real_bool[yes]",
  "tests/grounding/test_grounding_claims.py::TestASourcelessRequiredClaimIsNotAClaim::test_required_without_sources_is_refused",
  "tests/grounding/test_grounding_claims.py::TestAdmissionIsDeterministicAndResumable::test_a_capped_run_is_not_an_acceptance_baseline",
  "tests/grounding/test_grounding_claims.py::TestAdmissionIsDeterministicAndResumable::test_completed_ones_are_never_rebought",
  "tests/grounding/test_grounding_claims.py::TestAdmissionIsDeterministicAndResumable::test_duplicate_ids_are_bought_once",
  "tests/grounding/test_grounding_claims.py::TestAdmissionIsDeterministicAndResumable::test_the_next_run_continues_from_pending",
  "tests/grounding/test_grounding_claims.py::TestAdmissionIsDeterministicAndResumable::test_the_order_does_not_depend_on_input_order",
  "tests/grounding/test_grounding_claims.py::TestAdmissionIsDeterministicAndResumable::test_the_overflow_is_counted_not_silently_dropped",
  "tests/grounding/test_grounding_claims.py::TestAdmissionIsDeterministicAndResumable::test_two_runs_cover_everything",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_hash_field_must_look_like_a_hash[0123 4567 89ab]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_hash_field_must_look_like_a_hash[0123456]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_hash_field_must_look_like_a_hash[ABCDEF0123456789]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_hash_field_must_look_like_a_hash[gggggggggggggggg]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_hash_field_must_look_like_a_hash[not-a-hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_hash_field_must_look_like_a_hash[ph1]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_non_string_coordinate_is_refused[1983]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_non_string_coordinate_is_refused[7]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_non_string_coordinate_is_refused[None]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_non_string_coordinate_is_refused[True]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_non_string_coordinate_is_refused[bad3]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_non_string_coordinate_is_refused[bad4]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_a_normal_value_that_merely_contains_a_sentinel_word_survives",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_all_twelve_unsettled_is_refused",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--claims_pack_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--era]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--model]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--model_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--policy_contract_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--policy_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--prompt_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--provider]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--region]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--research_subject_id]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--schema_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[--subject_payload_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-claims_pack_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-era]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-model]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-model_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-policy_contract_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-policy_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-prompt_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-provider]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-region]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-research_subject_id]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-schema_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[N/A-subject_payload_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-claims_pack_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-era]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-model]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-model_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-policy_contract_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-policy_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-prompt_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-provider]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-region]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-research_subject_id]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-schema_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[TBD-subject_payload_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-claims_pack_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-era]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-model]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-model_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-policy_contract_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-policy_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-prompt_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-provider]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-region]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-research_subject_id]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-schema_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[none-subject_payload_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-claims_pack_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-era]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-model]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-model_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-policy_contract_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-policy_version]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-prompt_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-provider]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-region]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-research_subject_id]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-schema_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_an_unsettled_value_is_refused[unknown-subject_payload_hash]",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_the_baseline_still_hashes",
  "tests/grounding/test_grounding_claims.py::TestAnUnsettledIdentityIsNotAnIdentity::test_the_same_rule_guards_the_admission_path",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_a_bad_batch_size_is_refused[-1]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_a_bad_batch_size_is_refused[0]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_a_zero_cap_buys_nothing_but_counts_everything",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_no_subject_appears_in_two_batches",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_the_cap_is_applied_before_batching",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_the_logical_call_count_is_ceil[1-9]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_the_logical_call_count_is_ceil[12-1]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_the_logical_call_count_is_ceil[2-5]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_the_logical_call_count_is_ceil[4-3]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_the_logical_call_count_is_ceil[8-2]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_whatever_the_batch_size_the_same_subjects_are_bought[12]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_whatever_the_batch_size_the_same_subjects_are_bought[1]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_whatever_the_batch_size_the_same_subjects_are_bought[2]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_whatever_the_batch_size_the_same_subjects_are_bought[4]",
  "tests/grounding/test_grounding_claims.py::TestBatchingOnlySlicesIt::test_whatever_the_batch_size_the_same_subjects_are_bought[8]",
  "tests/grounding/test_grounding_claims.py::TestClaimIdIsStableAcrossBatching::test_a_different_subject_gives_a_different_id",
  "tests/grounding/test_grounding_claims.py::TestClaimIdIsStableAcrossBatching::test_a_prohibition_is_not_the_same_claim_as_the_fact",
  "tests/grounding/test_grounding_claims.py::TestClaimIdIsStableAcrossBatching::test_the_id_does_not_depend_on_call_order_or_batch",
  "tests/grounding/test_grounding_claims.py::TestClaimIdIsStableAcrossBatching::test_the_same_statement_gives_the_same_id",
  "tests/grounding/test_grounding_claims.py::TestClaimsFromAnotherSubjectNeverDecideThisOne::test_a_foreign_claim_blocks_instead_of_deciding",
  "tests/grounding/test_grounding_claims.py::TestClaimsFromAnotherSubjectNeverDecideThisOne::test_a_foreign_gap_also_blocks",
  "tests/grounding/test_grounding_claims.py::TestClaimsFromAnotherSubjectNeverDecideThisOne::test_it_does_not_silently_filter",
  "tests/grounding/test_grounding_claims.py::TestClaimsFromAnotherSubjectNeverDecideThisOne::test_subject_id_is_required",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[claims_pack_version]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[era]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[model]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[model_version]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[policy_contract_hash]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[policy_version]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[prompt_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[provider]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[region]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[research_subject_id]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[schema_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_blank_identity_field_is_refused[subject_payload_hash]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_missing_payload_hash_is_refused",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_a_stale_pack_makes_everyone_pending_again",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_an_unknown_identity_field_is_refused",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[claims_pack_version]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[era]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[model]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[model_version]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[policy_contract_hash]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[policy_version]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[prompt_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[provider]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[region]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[research_subject_id]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[schema_raw_hash]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_every_identity_field_changes_the_hash[subject_payload_hash]",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_one_subjects_hash_does_not_complete_another",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_the_expected_input_hashes_are_reported",
  "tests/grounding/test_grounding_claims.py::TestCompletionIsBoundToTheResearchRevision::test_two_completed_subjects_are_both_recognised",
  "tests/grounding/test_grounding_claims.py::TestDeltaEffectIsAnEnumNotAMagicString::test_an_effect_outside_the_enum_is_refused[diff]",
  "tests/grounding/test_grounding_claims.py::TestDeltaEffectIsAnEnumNotAMagicString::test_an_effect_outside_the_enum_is_refused[no_delta]",
  "tests/grounding/test_grounding_claims.py::TestDeltaEffectIsAnEnumNotAMagicString::test_an_effect_outside_the_enum_is_refused[true]",
  "tests/grounding/test_grounding_claims.py::TestDeltaEffectIsAnEnumNotAMagicString::test_an_effect_outside_the_enum_is_refused[yes]",
  "tests/grounding/test_grounding_claims.py::TestDeltaEffectIsAnEnumNotAMagicString::test_the_decider_reads_the_field_not_the_string",
  "tests/grounding/test_grounding_claims.py::TestDeltaEffectIsAnEnumNotAMagicString::test_the_family_string_no_delta_does_nothing_by_itself",
  "tests/grounding/test_grounding_claims.py::TestNoNeedsPositiveEvidence::test_a_sourced_no_delta_claim_gives_no",
  "tests/grounding/test_grounding_claims.py::TestNoNeedsPositiveEvidence::test_an_unsourced_no_delta_claim_is_refused_outright",
  "tests/grounding/test_grounding_claims.py::TestNoNeedsPositiveEvidence::test_both_effects_together_are_unresolved",
  "tests/grounding/test_grounding_claims.py::TestNotFoundIsNeverNo::test_a_conflict_beats_a_sourced_claim",
  "tests/grounding/test_grounding_claims.py::TestNotFoundIsNeverNo::test_a_time_cap_beats_a_sourced_claim",
  "tests/grounding/test_grounding_claims.py::TestNotFoundIsNeverNo::test_an_unknown_gap_reason_is_refused",
  "tests/grounding/test_grounding_claims.py::TestNotFoundIsNeverNo::test_every_gap_reason_lands_on_unresolved_not_no[conflict]",
  "tests/grounding/test_grounding_claims.py::TestNotFoundIsNeverNo::test_every_gap_reason_lands_on_unresolved_not_no[no_source]",
  "tests/grounding/test_grounding_claims.py::TestNotFoundIsNeverNo::test_every_gap_reason_lands_on_unresolved_not_no[not_found]",
  "tests/grounding/test_grounding_claims.py::TestNotFoundIsNeverNo::test_every_gap_reason_lands_on_unresolved_not_no[time_capped]",
  "tests/grounding/test_grounding_claims.py::TestNotFoundIsNeverNo::test_nothing_at_all_is_unresolved",
  "tests/grounding/test_grounding_claims.py::TestRetryableIsNotStale::test_a_retryable_row_is_retryable_not_stale",
  "tests/grounding/test_grounding_claims.py::TestRetryableIsNotStale::test_a_stale_row_is_stale_not_retryable",
  "tests/grounding/test_grounding_claims.py::TestRetryableIsNotStale::test_an_unknown_status_is_neither",
  "tests/grounding/test_grounding_claims.py::TestRetryableIsNotStale::test_both_are_bought_again",
  "tests/grounding/test_grounding_claims.py::TestRowOrderNeverChangesTheAnswer::test_an_old_row_does_not_erase_the_current_one",
  "tests/grounding/test_grounding_claims.py::TestRowOrderNeverChangesTheAnswer::test_every_permutation_gives_the_same_answer",
  "tests/grounding/test_grounding_claims.py::TestRowOrderNeverChangesTheAnswer::test_rows_missing_a_field_are_ignored",
  "tests/grounding/test_grounding_claims.py::TestSourcesMustBeReachableAddresses::test_a_non_url_source_is_refused[\\uadf8\\ub0e5 \\uae00\\uc790]",
  "tests/grounding/test_grounding_claims.py::TestSourcesMustBeReachableAddresses::test_a_non_url_source_is_refused[example.org]",
  "tests/grounding/test_grounding_claims.py::TestSourcesMustBeReachableAddresses::test_a_non_url_source_is_refused[ftp://a.org]",
  "tests/grounding/test_grounding_claims.py::TestSourcesMustBeReachableAddresses::test_a_non_url_source_is_refused[http://\\ub178\\uc2ac\\ub798\\uc2dc]",
  "tests/grounding/test_grounding_claims.py::TestSourcesMustBeReachableAddresses::test_a_non_url_source_is_refused[https://]",
  "tests/grounding/test_grounding_claims.py::TestSourcesMustBeReachableAddresses::test_a_non_url_source_is_refused[https://a.org \\uc5ec\\ubc31]",
  "tests/grounding/test_grounding_claims.py::TestSourcesMustBeReachableAddresses::test_a_real_url_passes[http://a.co/b?c=1]",
  "tests/grounding/test_grounding_claims.py::TestSourcesMustBeReachableAddresses::test_a_real_url_passes[https://a.org]",
  "tests/grounding/test_grounding_claims.py::TestSourcesMustBeReachableAddresses::test_a_real_url_passes[https://sub.a.or.kr/p/q]",
  "tests/grounding/test_grounding_claims.py::TestTimeCappedIsNotDone::test_a_retryable_row_is_bought_again",
  "tests/grounding/test_grounding_claims.py::TestTimeCappedIsNotDone::test_a_terminal_row_is_not_rebought[completed]",
  "tests/grounding/test_grounding_claims.py::TestTimeCappedIsNotDone::test_a_terminal_row_is_not_rebought[unresolved_terminal]",
  "tests/grounding/test_grounding_claims.py::TestTimeCappedIsNotDone::test_an_unknown_status_is_not_counted_as_done",
  "tests/grounding/test_grounding_claims.py::TestYesNeedsASourcedRequiredClaim::test_a_prohibition_also_counts",
  "tests/grounding/test_grounding_claims.py::TestYesNeedsASourcedRequiredClaim::test_a_sourceless_required_claim_sneaking_in_is_caught",
  "tests/grounding/test_grounding_claims.py::TestYesNeedsASourcedRequiredClaim::test_one_sourced_required_fact_is_enough",
  "tests/grounding/test_grounding_claims.py::TestYesNeedsASourcedRequiredClaim::test_optional_claims_alone_do_not_make_yes",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAForeignSourceIsWrongNotUnsure::test_a_url_the_call_never_saw_is_wrong",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAForeignSourceIsWrongNotUnsure::test_the_seen_url_passes",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAForeignSurfaceFormIsOnlyUnsure::test_another_subjects_unique_form_without_evidence_is_unsure",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAForeignSurfaceFormIsOnlyUnsure::test_the_form_in_its_own_evidence_is_fine",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAPlausibleSelfReportIsStillCaughtByTheOtherAxis::test_the_real_manifest_keeps_the_bus_form",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAPlausibleSelfReportIsStillCaughtByTheOtherAxis::test_the_runner_always_passes_the_forms",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAPlausibleSelfReportIsStillCaughtByTheOtherAxis::test_with_the_other_axis_it_is_unsure",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAPlausibleSelfReportIsStillCaughtByTheOtherAxis::test_without_the_other_axis_it_passes",
  "tests/grounding/test_grounding_claims_acceptance.py::TestATrueCitationCanStillBeTheWrongSubject::test_a_binding_word_not_in_the_statement_is_wrong",
  "tests/grounding/test_grounding_claims_acceptance.py::TestATrueCitationCanStillBeTheWrongSubject::test_a_claim_that_admits_it_is_not_about_the_target_is_wrong",
  "tests/grounding/test_grounding_claims_acceptance.py::TestATrueCitationCanStillBeTheWrongSubject::test_a_missing_binding_is_wrong_not_unsure",
  "tests/grounding/test_grounding_claims_acceptance.py::TestATrueCitationCanStillBeTheWrongSubject::test_the_real_first_paid_row_is_caught",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAnEmptyResultIsNotAWin::test_a_real_claim_still_wins",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAnEmptyResultIsNotAWin::test_an_all_empty_run_is_not_a_candidate",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAnEmptyResultIsNotAWin::test_choose_does_not_pick_an_empty_but_clean_size",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAnEmptyResultIsNotAWin::test_no_claims_is_its_own_bucket",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAnUnmeasuredBatchCannotWin::test_a_baseline_compared_batch_can_win",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAnUnmeasuredBatchCannotWin::test_a_clean_call_level_batch_is_not_a_candidate",
  "tests/grounding/test_grounding_claims_acceptance.py::TestAnUnmeasuredBatchCannotWin::test_clean_but_unmeasured_is_not_the_same_as_bad",
  "tests/grounding/test_grounding_claims_acceptance.py::TestChoosingTheBatchSize::test_every_size_is_reported_even_when_it_loses",
  "tests/grounding/test_grounding_claims_acceptance.py::TestChoosingTheBatchSize::test_no_candidate_means_no_change",
  "tests/grounding/test_grounding_claims_acceptance.py::TestChoosingTheBatchSize::test_the_largest_clean_size_wins",
  "tests/grounding/test_grounding_claims_acceptance.py::TestContractSurvivalIsADifferentAxis::test_a_clean_batch_can_still_have_zero_usable_claims",
  "tests/grounding/test_grounding_claims_acceptance.py::TestContractSurvivalIsADifferentAxis::test_a_sourceless_claim_is_rejected_by_the_production_validator",
  "tests/grounding/test_grounding_claims_acceptance.py::TestContractSurvivalIsADifferentAxis::test_a_string_sources_is_caught_explicitly_not_by_accident",
  "tests/grounding/test_grounding_claims_acceptance.py::TestContractSurvivalIsADifferentAxis::test_a_valid_claim_passes",
  "tests/grounding/test_grounding_claims_acceptance.py::TestContractSurvivalIsADifferentAxis::test_it_counts_not_ratios",
  "tests/grounding/test_grounding_claims_acceptance.py::TestContractSurvivalIsADifferentAxis::test_the_schema_check_catches_it_even_earlier",
  "tests/grounding/test_grounding_claims_acceptance.py::TestMissingAndDuplicateSubjectsAreWrong::test_a_dropped_subject_is_wrong",
  "tests/grounding/test_grounding_claims_acceptance.py::TestMissingAndDuplicateSubjectsAreWrong::test_a_duplicated_subject_is_wrong",
  "tests/grounding/test_grounding_claims_acceptance.py::TestMissingAndDuplicateSubjectsAreWrong::test_an_unrequested_subject_is_wrong",
  "tests/grounding/test_grounding_claims_acceptance.py::TestOnlyACleanRunIsACandidate::test_a_clean_run_is_a_candidate",
  "tests/grounding/test_grounding_claims_acceptance.py::TestOnlyACleanRunIsACandidate::test_it_says_what_it_does_not_prove",
  "tests/grounding/test_grounding_claims_acceptance.py::TestOnlyACleanRunIsACandidate::test_one_unsure_disqualifies",
  "tests/grounding/test_grounding_claims_acceptance.py::TestOnlyACleanRunIsACandidate::test_the_counts_are_numbers_not_ratios",
  "tests/grounding/test_grounding_claims_acceptance.py::TestOwnershipIsWeakerWhenTheBatchIsBigger::test_a_clean_big_batch_still_says_it_measured_less",
  "tests/grounding/test_grounding_claims_acceptance.py::TestOwnershipIsWeakerWhenTheBatchIsBigger::test_more_than_one_is_only_call_level",
  "tests/grounding/test_grounding_claims_acceptance.py::TestOwnershipIsWeakerWhenTheBatchIsBigger::test_one_subject_per_call_is_exact",
  "tests/grounding/test_grounding_claims_acceptance.py::TestOwnershipIsWeakerWhenTheBatchIsBigger::test_the_run_result_carries_the_limit",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheBaselineCatchesABorrowInsideOneCall::test_a_new_url_outside_every_baseline_is_unsure",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheBaselineCatchesABorrowInsideOneCall::test_borrowing_another_subjects_url_is_wrong",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheBaselineCatchesABorrowInsideOneCall::test_the_baseline_is_built_only_from_single_subject_calls",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheBindingHoleIsRealAndNotClosedByMachines::test_so_the_machine_result_is_not_a_final_candidate",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheBindingHoleIsRealAndNotClosedByMachines::test_the_counterexample_still_passes_the_machines",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheSpanMustComeFromTheUrlItCites::test_a_cross_subject_borrow_inside_one_call_is_caught",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheSpanMustComeFromTheUrlItCites::test_a_span_from_another_url_is_unsure",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheSpanMustComeFromTheUrlItCites::test_a_span_from_its_own_url_passes",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheWholeResponseIsCheckedAgainstTheSchema::test_a_bad_enum_is_caught",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheWholeResponseIsCheckedAgainstTheSchema::test_a_clean_response_passes_the_schema",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheWholeResponseIsCheckedAgainstTheSchema::test_a_gap_the_production_contract_rejects_is_caught",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheWholeResponseIsCheckedAgainstTheSchema::test_an_extra_field_is_caught",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheWholeResponseIsCheckedAgainstTheSchema::test_one_bad_row_makes_the_whole_call_unsure",
  "tests/grounding/test_grounding_claims_acceptance.py::TestTheWholeResponseIsCheckedAgainstTheSchema::test_the_codex_counterexample_no_longer_passes",
  "tests/grounding/test_grounding_claims_acceptance.py::TestUnverifiableIsUnsureNotFine::test_a_broken_transmission_is_unsure",
  "tests/grounding/test_grounding_claims_acceptance.py::TestUnverifiableIsUnsureNotFine::test_a_claim_without_sources_is_unsure",
  "tests/grounding/test_grounding_claims_acceptance.py::TestUnverifiableIsUnsureNotFine::test_a_missing_evidence_span_is_unsure",
  "tests/grounding/test_grounding_claims_acceptance.py::TestUnverifiableIsUnsureNotFine::test_a_not_sent_batch_is_unsure_not_wrong",
  "tests/grounding/test_grounding_claims_acceptance.py::TestUnverifiableIsUnsureNotFine::test_a_span_not_in_any_snippet_is_unsure",
  "tests/grounding/test_grounding_claims_acceptance.py::TestUnverifiableIsUnsureNotFine::test_an_unreadable_response_is_unsure_for_everyone",
  "tests/grounding/test_grounding_claims_search.py::TestABrokenBaselineStopsBeforeBuyingMore::test_a_failed_baseline_call_stops_the_run",
  "tests/grounding/test_grounding_claims_search.py::TestABrokenBaselineStopsBeforeBuyingMore::test_the_run_stops_when_it_passes_the_cap",
  "tests/grounding/test_grounding_claims_search.py::TestAFailedCaptureIsNotAPurchase::test_a_good_row_is_still_reused",
  "tests/grounding/test_grounding_claims_search.py::TestAFailedCaptureIsNotAPurchase::test_a_row_that_captured_nothing_is_bought_again",
  "tests/grounding/test_grounding_claims_search.py::TestAFailedCaptureIsNotAPurchase::test_a_row_with_urls_but_no_snippet_is_bought_again",
  "tests/grounding/test_grounding_claims_search.py::TestAPriorCaptureFailureStopsTheRun::test_a_good_row_is_still_reused",
  "tests/grounding/test_grounding_claims_search.py::TestAPriorCaptureFailureStopsTheRun::test_a_prior_capture_failure_stops_with_zero_new_calls[srcs0]",
  "tests/grounding/test_grounding_claims_search.py::TestAPriorCaptureFailureStopsTheRun::test_a_prior_capture_failure_stops_with_zero_new_calls[srcs1]",
  "tests/grounding/test_grounding_claims_search.py::TestARestartDoesNotReBuy::test_a_broken_row_is_not_reused",
  "tests/grounding/test_grounding_claims_search.py::TestARestartDoesNotReBuy::test_a_different_batch_size_does_not_reuse_across",
  "tests/grounding/test_grounding_claims_search.py::TestARestartDoesNotReBuy::test_a_different_research_is_not_reused[changed0]",
  "tests/grounding/test_grounding_claims_search.py::TestARestartDoesNotReBuy::test_a_different_research_is_not_reused[changed1]",
  "tests/grounding/test_grounding_claims_search.py::TestARestartDoesNotReBuy::test_a_different_research_is_not_reused[changed2]",
  "tests/grounding/test_grounding_claims_search.py::TestARestartDoesNotReBuy::test_a_finished_call_is_not_bought_again",
  "tests/grounding/test_grounding_claims_search.py::TestARestartDoesNotReBuy::test_a_half_finished_run_buys_only_the_rest",
  "tests/grounding/test_grounding_claims_search.py::TestARestartDoesNotReBuy::test_a_reused_row_is_not_pushed_to_the_journal_again",
  "tests/grounding/test_grounding_claims_search.py::TestARestartDoesNotReBuy::test_bought_and_reused_are_reported_separately",
  "tests/grounding/test_grounding_claims_search.py::TestARestartDoesNotReBuy::test_the_reused_row_is_marked",
  "tests/grounding/test_grounding_claims_search.py::TestARetryAfterAFailureCannotExceedTheCap::test_the_run_stops_when_it_passes_the_cap",
  "tests/grounding/test_grounding_claims_search.py::TestASourcedNoIsNotEmpty::test_nine_sourced_no_goes_all_the_way",
  "tests/grounding/test_grounding_claims_search.py::TestAnEmptyBaselineStopsTheRun::test_it_does_not_stop_when_something_was_established",
  "tests/grounding/test_grounding_claims_search.py::TestAnEmptyBaselineStopsTheRun::test_it_stops_after_the_baseline",
  "tests/grounding/test_grounding_claims_search.py::TestAnOldFailureDoesNotBlockANewPack::test_a_different_model_failure_is_ignored",
  "tests/grounding/test_grounding_claims_search.py::TestAnOldFailureDoesNotBlockANewPack::test_a_different_payload_failure_is_ignored",
  "tests/grounding/test_grounding_claims_search.py::TestAnOldFailureDoesNotBlockANewPack::test_the_same_call_failure_still_stops",
  "tests/grounding/test_grounding_claims_search.py::TestAnOldFailureDoesNotBlockANewPack::test_the_stop_names_the_payload",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_every_subject_is_asked_exactly_once[12]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_every_subject_is_asked_exactly_once[1]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_every_subject_is_asked_exactly_once[2]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_every_subject_is_asked_exactly_once[4]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_every_subject_is_asked_exactly_once[8]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_the_call_count_is_the_ceiling[12-1-12]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_the_call_count_is_the_ceiling[12-12-1]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_the_call_count_is_the_ceiling[12-2-6]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_the_call_count_is_the_ceiling[12-4-3]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_the_call_count_is_the_ceiling[12-8-2]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_the_call_count_is_the_ceiling[5-2-3]",
  "tests/grounding/test_grounding_claims_search.py::TestBatchOnlyCuts::test_the_order_does_not_change_with_batch_size",
  "tests/grounding/test_grounding_claims_search.py::TestEachCallIsHandedOverAsSoonAsItFinishes::test_a_broken_call_is_handed_over_too",
  "tests/grounding/test_grounding_claims_search.py::TestEachCallIsHandedOverAsSoonAsItFinishes::test_the_callback_fires_per_call_not_at_the_end",
  "tests/grounding/test_grounding_claims_search.py::TestEachCallIsHandedOverAsSoonAsItFinishes::test_the_handed_rows_are_the_same_objects_as_the_result",
  "tests/grounding/test_grounding_claims_search.py::TestEarlyStopReportsSixteenAndThirty::test_no_string_calls_it_the_first_subjects_reuse",
  "tests/grounding/test_grounding_claims_search.py::TestEarlyStopReportsSixteenAndThirty::test_screen_says_sixteen_and_json_keeps_both",
  "tests/grounding/test_grounding_claims_search.py::TestLogicalCallsAreNotPhysicalTransmissions::test_the_physical_bound_is_reported_not_the_logical_count",
  "tests/grounding/test_grounding_claims_search.py::TestLogicalCallsAreNotPhysicalTransmissions::test_the_result_says_it_could_not_count_physical",
  "tests/grounding/test_grounding_claims_search.py::TestLogicalCallsAreNotPhysicalTransmissions::test_the_sdk_retries_are_turned_off",
  "tests/grounding/test_grounding_claims_search.py::TestOfficialCitationsAreCollectedForOwnershipOnly::test_a_response_without_annotations_gives_an_empty_list",
  "tests/grounding/test_grounding_claims_search.py::TestOfficialCitationsAreCollectedForOwnershipOnly::test_url_citations_are_kept",
  "tests/grounding/test_grounding_claims_search.py::TestOnlyTextComesBack::test_the_search_tool_is_text_only",
  "tests/grounding/test_grounding_claims_search.py::TestPriorReuseIsScopedToTheSameRequest::test_a_free_rescoring_policy_does_not_buy_again",
  "tests/grounding/test_grounding_claims_search.py::TestPriorReuseIsScopedToTheSameRequest::test_changing_one_acquisition_field_buys_again[PROVIDER_STORE-True]",
  "tests/grounding/test_grounding_claims_search.py::TestPriorReuseIsScopedToTheSameRequest::test_changing_one_acquisition_field_buys_again[RESPONSE_INCLUDE-val0]",
  "tests/grounding/test_grounding_claims_search.py::TestPriorReuseIsScopedToTheSameRequest::test_changing_one_acquisition_field_buys_again[SCHEMA_STRICT-False]",
  "tests/grounding/test_grounding_claims_search.py::TestPriorReuseIsScopedToTheSameRequest::test_changing_one_acquisition_field_buys_again[SCHEMA_STRICT-True]",
  "tests/grounding/test_grounding_claims_search.py::TestPriorReuseIsScopedToTheSameRequest::test_changing_one_acquisition_field_buys_again[TEXT_ONLY_SEARCH-False]",
  "tests/grounding/test_grounding_claims_search.py::TestPriorReuseIsScopedToTheSameRequest::test_the_same_request_reuses",
  "tests/grounding/test_grounding_claims_search.py::TestProvenanceIsAssembledHere::test_a_broken_transmission_is_recorded_not_swallowed",
  "tests/grounding/test_grounding_claims_search.py::TestProvenanceIsAssembledHere::test_a_successful_call_carries_the_request_id",
  "tests/grounding/test_grounding_claims_search.py::TestProvenanceIsAssembledHere::test_one_broken_batch_does_not_kill_the_others",
  "tests/grounding/test_grounding_claims_search.py::TestProvenanceIsAssembledHere::test_the_pack_coordinates_are_real",
  "tests/grounding/test_grounding_claims_search.py::TestProvenanceIsAssembledHere::test_the_payload_hash_moves_with_the_batch",
  "tests/grounding/test_grounding_claims_search.py::TestReuseIsJudgedByInputNotByExpectedOutput::test_a_changed_input_actually_stops_the_reuse[entity_merge]",
  "tests/grounding/test_grounding_claims_search.py::TestReuseIsJudgedByInputNotByExpectedOutput::test_a_changed_input_actually_stops_the_reuse[manuscript]",
  "tests/grounding/test_grounding_claims_search.py::TestReuseIsJudgedByInputNotByExpectedOutput::test_the_fixture_is_the_approved_episode",
  "tests/grounding/test_grounding_claims_search.py::TestReuseIsJudgedByInputNotByExpectedOutput::test_the_fixture_pins_both_inputs_by_hash",
  "tests/grounding/test_grounding_claims_search.py::TestReuseIsJudgedByInputNotByExpectedOutput::test_the_fixture_says_the_reuse_rule",
  "tests/grounding/test_grounding_claims_search.py::TestReuseIsJudgedByInputNotByExpectedOutput::test_the_recovered_candidates_are_never_silently_dropped",
  "tests/grounding/test_grounding_claims_search.py::TestReuseIsJudgedByInputNotByExpectedOutput::test_the_reused_pack_coordinate_comes_from_the_fixture",
  "tests/grounding/test_grounding_claims_search.py::TestReuseIsJudgedByInputNotByExpectedOutput::test_the_tool_compares_hashes_not_lengths",
  "tests/grounding/test_grounding_claims_search.py::TestSoftAndHardSizeCapsAreDifferentThings::test_a_hard_oversized_subject_is_not_sent",
  "tests/grounding/test_grounding_claims_search.py::TestSoftAndHardSizeCapsAreDifferentThings::test_a_hard_smaller_than_soft_is_refused",
  "tests/grounding/test_grounding_claims_search.py::TestSoftAndHardSizeCapsAreDifferentThings::test_a_normal_run_counts_neither",
  "tests/grounding/test_grounding_claims_search.py::TestSoftAndHardSizeCapsAreDifferentThings::test_a_not_sent_batch_claims_no_provenance",
  "tests/grounding/test_grounding_claims_search.py::TestSoftAndHardSizeCapsAreDifferentThings::test_a_not_sent_batch_says_the_transmission_failed",
  "tests/grounding/test_grounding_claims_search.py::TestSoftAndHardSizeCapsAreDifferentThings::test_a_not_sent_batch_still_names_its_subjects",
  "tests/grounding/test_grounding_claims_search.py::TestSoftAndHardSizeCapsAreDifferentThings::test_a_soft_oversized_subject_is_still_sent_and_counted",
  "tests/grounding/test_grounding_claims_search.py::TestTheA0GateGuardDoesNotKillItsOwnFallback::test_a_fallback_is_actually_declared",
  "tests/grounding/test_grounding_claims_search.py::TestTheA0GateGuardDoesNotKillItsOwnFallback::test_it_stops_instead_of_filling_from_descriptions",
  "tests/grounding/test_grounding_claims_search.py::TestTheA0GateGuardDoesNotKillItsOwnFallback::test_the_cap_covers_every_declared_episode",
  "tests/grounding/test_grounding_claims_search.py::TestTheA0GateGuardDoesNotKillItsOwnFallback::test_the_second_episode_is_reached_when_the_first_is_short",
  "tests/grounding/test_grounding_claims_search.py::TestTheA0GateNeverWidensItsOwnApprovedScope::test_a_passing_result_returns_the_approved_episode",
  "tests/grounding/test_grounding_claims_search.py::TestTheA0GateNeverWidensItsOwnApprovedScope::test_a_short_result_stops_instead_of_moving_on",
  "tests/grounding/test_grounding_claims_search.py::TestTheA0GateNeverWidensItsOwnApprovedScope::test_the_approved_run_is_one_episode",
  "tests/grounding/test_grounding_claims_search.py::TestTheA0GateNeverWidensItsOwnApprovedScope::test_the_cap_is_derived_from_the_approved_list",
  "tests/grounding/test_grounding_claims_search.py::TestTheA0GateNeverWidensItsOwnApprovedScope::test_the_next_candidate_is_written_down_but_not_approved",
  "tests/grounding/test_grounding_claims_search.py::TestTheBaselineGateIsClaimsAndSupport::test_no_citation_found_stops_it",
  "tests/grounding/test_grounding_claims_search.py::TestTheBaselineGateIsClaimsAndSupport::test_no_valid_claim_stops_it",
  "tests/grounding/test_grounding_claims_search.py::TestTheBaselineGateIsClaimsAndSupport::test_the_result_says_the_gate_was_changed_after_seeing_results",
  "tests/grounding/test_grounding_claims_search.py::TestTheBaselineGateIsClaimsAndSupport::test_valid_claims_and_a_found_citation_let_it_continue",
  "tests/grounding/test_grounding_claims_search.py::TestTheBatchSizeHasNoDefault::test_a_bad_size_is_refused[-1]",
  "tests/grounding/test_grounding_claims_search.py::TestTheBatchSizeHasNoDefault::test_a_bad_size_is_refused[0]",
  "tests/grounding/test_grounding_claims_search.py::TestTheBatchSizeHasNoDefault::test_a_bad_size_is_refused[2.0]",
  "tests/grounding/test_grounding_claims_search.py::TestTheBatchSizeHasNoDefault::test_a_bad_size_is_refused[4]",
  "tests/grounding/test_grounding_claims_search.py::TestTheBatchSizeHasNoDefault::test_a_bad_size_is_refused[False]",
  "tests/grounding/test_grounding_claims_search.py::TestTheBatchSizeHasNoDefault::test_a_bad_size_is_refused[None]",
  "tests/grounding/test_grounding_claims_search.py::TestTheBatchSizeHasNoDefault::test_a_bad_size_is_refused[True]",
  "tests/grounding/test_grounding_claims_search.py::TestTheBatchSizeHasNoDefault::test_it_is_a_required_argument",
  "tests/grounding/test_grounding_claims_search.py::TestTheBatchSizeHasNoDefault::test_the_module_declares_no_default",
  "tests/grounding/test_grounding_claims_search.py::TestTheCallCountIsCountedBeforeItIsSpent::test_a_plain_run_matches_the_ceiling",
  "tests/grounding/test_grounding_claims_search.py::TestTheCallCountIsCountedBeforeItIsSpent::test_a_size_split_shows_up_before_sending",
  "tests/grounding/test_grounding_claims_search.py::TestTheCallCountIsCountedBeforeItIsSpent::test_counting_is_free",
  "tests/grounding/test_grounding_claims_search.py::TestTheCallCountIsCountedBeforeItIsSpent::test_the_counted_number_is_what_actually_goes_out",
  "tests/grounding/test_grounding_claims_search.py::TestTheCapAlsoHoldsDuringTheRun::test_it_stops_when_a_size_would_exceed_the_cap",
  "tests/grounding/test_grounding_claims_search.py::TestTheCommentsMatchTheCode::test_no_source_says_strict_is_off",
  "tests/grounding/test_grounding_claims_search.py::TestTheCommentsMatchTheCode::test_the_local_check_is_described_as_independent",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticBuysExactlyOneAndDoesNotFeedChoice::test_it_buys_one_call_for_the_locked_first_subject",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticBuysExactlyOneAndDoesNotFeedChoice::test_running_it_twice_does_not_buy_twice",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticBuysExactlyOneAndDoesNotFeedChoice::test_the_result_carries_no_candidate_for_choice",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticBuysExactlyOneAndDoesNotFeedChoice::test_what_was_bought_is_on_disk_before_it_is_judged",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticCallIsNotBoughtTwice::test_isolating_the_journals_again_would_buy_more",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticCallIsNotBoughtTwice::test_the_first_batch_one_call_is_the_diagnostic_one",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticCallIsNotBoughtTwice::test_the_first_subject_is_not_written_twice",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticCallIsNotBoughtTwice::test_the_full_run_reuses_the_diagnostic_call",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticCallIsNotBoughtTwice::test_the_scoring_population_is_unchanged_by_reuse",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticFailsClosedOnAWeakProbe::test_a_failed_probe_is_not_bought_again",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticFailsClosedOnAWeakProbe::test_a_good_probe_exits_zero",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticFailsClosedOnAWeakProbe::test_a_lost_response_dump_exits_nonzero",
  "tests/grounding/test_grounding_claims_search.py::TestTheDiagnosticFailsClosedOnAWeakProbe::test_no_source_url_exits_nonzero",
  "tests/grounding/test_grounding_claims_search.py::TestTheEndReportSaysThisRunsBound::test_the_diagnostic_does_not_say_first_subject",
  "tests/grounding/test_grounding_claims_search.py::TestTheEndReportSaysThisRunsBound::test_the_final_line_reports_the_run_bound_not_the_cap",
  "tests/grounding/test_grounding_claims_search.py::TestTheLockedManifestSaysWhatWeWillBuy::test_changing_any_locked_value_changes_the_hash",
  "tests/grounding/test_grounding_claims_search.py::TestTheLockedManifestSaysWhatWeWillBuy::test_every_subject_is_manuscript_backed",
  "tests/grounding/test_grounding_claims_search.py::TestTheLockedManifestSaysWhatWeWillBuy::test_it_keeps_the_caveats",
  "tests/grounding/test_grounding_claims_search.py::TestTheLockedManifestSaysWhatWeWillBuy::test_it_matches_the_module_contract",
  "tests/grounding/test_grounding_claims_search.py::TestTheLockedManifestSaysWhatWeWillBuy::test_it_says_the_a0_was_reused_not_bought",
  "tests/grounding/test_grounding_claims_search.py::TestTheLockedManifestSaysWhatWeWillBuy::test_the_content_hash_matches_everything_locked",
  "tests/grounding/test_grounding_claims_search.py::TestTheLockedManifestSaysWhatWeWillBuy::test_the_content_hash_matches_the_subjects",
  "tests/grounding/test_grounding_claims_search.py::TestTheLockedManifestSaysWhatWeWillBuy::test_the_lock_covers_more_than_subjects",
  "tests/grounding/test_grounding_claims_search.py::TestTheLockedManifestSaysWhatWeWillBuy::test_the_search_model_is_its_own_axis",
  "tests/grounding/test_grounding_claims_search.py::TestTheLockedManifestSaysWhatWeWillBuy::test_the_subject_ids_are_unique",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_flipping_one_locked_request_field_stops_the_runner[include]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_flipping_one_locked_request_field_stops_the_runner[probe_requirement]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_flipping_one_locked_request_field_stops_the_runner[schema_strict]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_flipping_one_locked_request_field_stops_the_runner[sdk_retries]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_flipping_one_locked_request_field_stops_the_runner[source_capture]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_flipping_one_locked_request_field_stops_the_runner[store]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_flipping_one_locked_request_field_stops_the_runner[support_policy]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_flipping_one_locked_request_field_stops_the_runner[text_only_search]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_no_copy_survives_at_top_level[era]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_no_copy_survives_at_top_level[region]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_no_copy_survives_at_top_level[search_model]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_no_copy_survives_at_top_level[subjects]",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_the_contract_is_not_written_twice",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_the_locked_request_is_what_the_code_actually_sends",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_the_request_meaning_is_locked_too",
  "tests/grounding/test_grounding_claims_search.py::TestTheManifestHasOneEnvelopeOnly::test_the_runner_refuses_a_manifest_with_copies",
  "tests/grounding/test_grounding_claims_search.py::TestThePaidModesAreExclusive::test_conflicting_modes_stop_the_parser[argv0]",
  "tests/grounding/test_grounding_claims_search.py::TestThePaidModesAreExclusive::test_conflicting_modes_stop_the_parser[argv1]",
  "tests/grounding/test_grounding_claims_search.py::TestThePaidModesAreExclusive::test_conflicting_modes_stop_the_parser[argv2]",
  "tests/grounding/test_grounding_claims_search.py::TestThePaidModesAreExclusive::test_no_argument_is_free",
  "tests/grounding/test_grounding_claims_search.py::TestThePreflightStopsBeforeBuying::test_a_broken_journal_line_also_stops",
  "tests/grounding/test_grounding_claims_search.py::TestThePreflightStopsBeforeBuying::test_a_missing_diagnostic_journal_buys_nothing",
  "tests/grounding/test_grounding_claims_search.py::TestThePreflightStopsBeforeBuying::test_it_counts_fifteen_new_and_proceeds",
  "tests/grounding/test_grounding_claims_search.py::TestThePreflightStopsBeforeBuying::test_the_physical_cap_is_new_times_slots",
  "tests/grounding/test_grounding_claims_search.py::TestTheProbeAlsoNeedsTheRawResponseKept::test_a_failed_dump_stops_it",
  "tests/grounding/test_grounding_claims_search.py::TestTheProbeAlsoNeedsTheRawResponseKept::test_a_url_alone_is_not_enough",
  "tests/grounding/test_grounding_claims_search.py::TestTheProbeAlsoNeedsTheRawResponseKept::test_an_empty_dump_stops_it",
  "tests/grounding/test_grounding_claims_search.py::TestTheProbeAlsoNeedsTheRawResponseKept::test_both_together_pass",
  "tests/grounding/test_grounding_claims_search.py::TestTheProbeAlsoNeedsTheRawResponseKept::test_the_missing_url_reason_is_not_hidden_by_the_dump_reason",
  "tests/grounding/test_grounding_claims_search.py::TestTheReaderDoesNotGuessKeyNames::test_an_unknown_key_shape_is_not_ok",
  "tests/grounding/test_grounding_claims_search.py::TestTheReaderDoesNotGuessKeyNames::test_an_unknown_key_shape_leaves_the_snippet_empty",
  "tests/grounding/test_grounding_claims_search.py::TestTheReaderDoesNotGuessKeyNames::test_only_the_declared_key_is_read",
  "tests/grounding/test_grounding_claims_search.py::TestTheReaderDoesNotGuessKeyNames::test_the_shape_probe_records_the_unknown_keys",
  "tests/grounding/test_grounding_claims_search.py::TestTheRealSdkShapeIsWhatWeRead::test_a_citation_alone_is_enough",
  "tests/grounding/test_grounding_claims_search.py::TestTheRealSdkShapeIsWhatWeRead::test_both_shapes_do_not_double_count_one_url",
  "tests/grounding/test_grounding_claims_search.py::TestTheRealSdkShapeIsWhatWeRead::test_the_beta_shape_still_works",
  "tests/grounding/test_grounding_claims_search.py::TestTheRealSdkShapeIsWhatWeRead::test_the_probe_says_why_it_is_not_ok",
  "tests/grounding/test_grounding_claims_search.py::TestTheRealSdkShapeIsWhatWeRead::test_the_stable_shape_has_no_snippet",
  "tests/grounding/test_grounding_claims_search.py::TestTheRealSdkShapeIsWhatWeRead::test_the_stable_shape_has_no_snippet_but_still_passes",
  "tests/grounding/test_grounding_claims_search.py::TestTheRealSdkShapeIsWhatWeRead::test_the_stable_shape_is_read_at_all",
  "tests/grounding/test_grounding_claims_search.py::TestTheRequestActuallyConsumesTheContract::test_the_call_is_text_only_and_not_strict",
  "tests/grounding/test_grounding_claims_search.py::TestTheRequestActuallyConsumesTheContract::test_the_runner_builds_its_client_from_the_constant",
  "tests/grounding/test_grounding_claims_search.py::TestTheResponseIsKeptLocallyNotAtTheProvider::test_a_dump_failure_does_not_kill_the_research",
  "tests/grounding/test_grounding_claims_search.py::TestTheResponseIsKeptLocallyNotAtTheProvider::test_the_official_include_is_used",
  "tests/grounding/test_grounding_claims_search.py::TestTheResponseIsKeptLocallyNotAtTheProvider::test_the_request_pins_store_off",
  "tests/grounding/test_grounding_claims_search.py::TestTheResponseIsKeptLocallyNotAtTheProvider::test_the_whole_response_is_dumped_locally",
  "tests/grounding/test_grounding_claims_search.py::TestTheResponseIsStoredSoItCanBeRetrieved::test_the_request_asks_to_store",
  "tests/grounding/test_grounding_claims_search.py::TestTheRunnerBuildsTheOwnershipBaselineFirst::test_one_is_in_the_contract",
  "tests/grounding/test_grounding_claims_search.py::TestTheRunnerBuildsTheOwnershipBaselineFirst::test_the_baseline_is_passed_to_scoring",
  "tests/grounding/test_grounding_claims_search.py::TestTheRunnerBuildsTheOwnershipBaselineFirst::test_the_sizes_run_in_ascending_order",
  "tests/grounding/test_grounding_claims_search.py::TestTheRunnerReadsOnlyTheLockedValues::test_the_run_inputs_come_from_lock[era]",
  "tests/grounding/test_grounding_claims_search.py::TestTheRunnerReadsOnlyTheLockedValues::test_the_run_inputs_come_from_lock[region]",
  "tests/grounding/test_grounding_claims_search.py::TestTheRunnerReadsOnlyTheLockedValues::test_the_run_inputs_come_from_lock[search_model]",
  "tests/grounding/test_grounding_claims_search.py::TestTheSampleIsNineNotTwelve::test_no_candidate_exceeds_the_sample",
  "tests/grounding/test_grounding_claims_search.py::TestTheSampleIsNineNotTwelve::test_the_logical_call_count_is_what_we_will_buy",
  "tests/grounding/test_grounding_claims_search.py::TestTheSampleIsNineNotTwelve::test_the_need_is_nine",
  "tests/grounding/test_grounding_claims_search.py::TestTheSampleIsNineNotTwelve::test_the_tool_does_not_restate_the_contract",
  "tests/grounding/test_grounding_claims_search.py::TestTheSampleIsNineNotTwelve::test_twelve_is_not_a_batch_candidate",
  "tests/grounding/test_grounding_claims_search.py::TestTheSchemaActuallyGoesOut::test_a_broken_schema_stops_before_sending",
  "tests/grounding/test_grounding_claims_search.py::TestTheSchemaActuallyGoesOut::test_it_is_the_packs_schema_not_a_handwritten_one",
  "tests/grounding/test_grounding_claims_search.py::TestTheSchemaActuallyGoesOut::test_the_request_carries_the_json_schema",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_a_bad_size_cap_is_refused[-1]",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_a_bad_size_cap_is_refused[0]",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_a_bad_size_cap_is_refused[2.0]",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_a_bad_size_cap_is_refused[4]",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_a_bad_size_cap_is_refused[None]",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_a_bad_size_cap_is_refused[True]",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_a_big_subject_spills_to_the_next_batch",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_a_single_oversized_subject_still_gets_its_own_batch",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_nothing_is_dropped_when_it_spills",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_the_actual_size_is_recorded",
  "tests/grounding/test_grounding_claims_search.py::TestTheSizeCapSpillsInsteadOfCutting::test_the_size_cap_does_not_reorder",
  "tests/grounding/test_grounding_claims_search.py::TestTheSourceTextIsNotCut::test_a_long_quote_survives_whole",
  "tests/grounding/test_grounding_claims_search.py::TestTheSubjectIdIsCarriedNotGuessed::test_a_missing_context_is_refused[  -\\ud55c\\uad6d]",
  "tests/grounding/test_grounding_claims_search.py::TestTheSubjectIdIsCarriedNotGuessed::test_a_missing_context_is_refused[-\\ud55c\\uad6d]",
  "tests/grounding/test_grounding_claims_search.py::TestTheSubjectIdIsCarriedNotGuessed::test_a_missing_context_is_refused[1983-]",
  "tests/grounding/test_grounding_claims_search.py::TestTheSubjectIdIsCarriedNotGuessed::test_a_subject_without_an_id_is_refused",
  "tests/grounding/test_grounding_claims_search.py::TestTheSubjectIdIsCarriedNotGuessed::test_the_prompt_names_every_subject_id",
  "tests/grounding/test_grounding_claims_search.py::TestThisFunctionDoesNotJudge::test_the_raw_text_is_kept_as_is",
  "tests/grounding/test_grounding_claims_search.py::TestThisFunctionDoesNotJudge::test_unparseable_output_is_not_turned_into_an_empty_result",
  "tests/grounding/test_grounding_claims_search.py::TestWhatTheSearchActuallySawIsKept::test_a_response_without_results_leaves_an_empty_list",
  "tests/grounding/test_grounding_claims_search.py::TestWhatTheSearchActuallySawIsKept::test_the_snippets_are_collected",
  "tests/grounding/test_grounding_claims_search.py::TestWhatWasPaidForIsSavedBeforeItIsJudged::test_the_raw_output_is_written_even_when_the_gate_stops",
  "tests/grounding/test_grounding_claims_search.py::TestWhatWasPaidForIsSavedBeforeItIsJudged::test_the_stop_message_says_why_it_is_short",
  "tests/grounding/test_grounding_claims_support.py::TestDnsRebindingIsClosed::test_a_private_peer_is_refused_after_connect[10.1.2.3]",
  "tests/grounding/test_grounding_claims_support.py::TestDnsRebindingIsClosed::test_a_private_peer_is_refused_after_connect[127.0.0.1]",
  "tests/grounding/test_grounding_claims_support.py::TestDnsRebindingIsClosed::test_a_private_peer_is_refused_after_connect[169.254.169.254]",
  "tests/grounding/test_grounding_claims_support.py::TestDnsRebindingIsClosed::test_a_private_peer_is_refused_after_connect[192.168.0.9]",
  "tests/grounding/test_grounding_claims_support.py::TestDnsRebindingIsClosed::test_a_private_peer_is_refused_after_connect[::1]",
  "tests/grounding/test_grounding_claims_support.py::TestDnsRebindingIsClosed::test_a_public_peer_passes",
  "tests/grounding/test_grounding_claims_support.py::TestDnsRebindingIsClosed::test_the_connection_classes_check_the_peer",
  "tests/grounding/test_grounding_claims_support.py::TestFabricatedCitationsAreCaught::test_a_shortened_quote_matches_by_its_head",
  "tests/grounding/test_grounding_claims_support.py::TestFabricatedCitationsAreCaught::test_a_span_not_on_the_page_is_absent",
  "tests/grounding/test_grounding_claims_support.py::TestFabricatedCitationsAreCaught::test_an_empty_body_is_not_absent",
  "tests/grounding/test_grounding_claims_support.py::TestFabricatedCitationsAreCaught::test_an_unreachable_page_is_not_absent",
  "tests/grounding/test_grounding_claims_support.py::TestFabricatedCitationsAreCaught::test_html_tags_do_not_hide_the_quote",
  "tests/grounding/test_grounding_claims_support.py::TestFabricatedCitationsAreCaught::test_script_content_is_stripped",
  "tests/grounding/test_grounding_claims_support.py::TestHttpFetchStopsBeforeReadingABody::test_a_private_peer_returns_none_without_reading[10.0.0.7]",
  "tests/grounding/test_grounding_claims_support.py::TestHttpFetchStopsBeforeReadingABody::test_a_private_peer_returns_none_without_reading[127.0.0.1]",
  "tests/grounding/test_grounding_claims_support.py::TestHttpFetchStopsBeforeReadingABody::test_a_private_peer_returns_none_without_reading[169.254.169.254]",
  "tests/grounding/test_grounding_claims_support.py::TestHttpFetchStopsBeforeReadingABody::test_a_public_peer_reads_the_body",
  "tests/grounding/test_grounding_claims_support.py::TestNormalizeDoesNotJudgeMeaning::test_different_words_stay_different",
  "tests/grounding/test_grounding_claims_support.py::TestNormalizeDoesNotJudgeMeaning::test_whitespace_and_case_are_folded",
  "tests/grounding/test_grounding_claims_support.py::TestOnlyOfficialUrlsAreOpened::test_a_url_outside_the_official_list_is_not_fetched",
  "tests/grounding/test_grounding_claims_support.py::TestOnlyOfficialUrlsAreOpened::test_no_fallback_to_another_url",
  "tests/grounding/test_grounding_claims_support.py::TestOnlyOfficialUrlsAreOpened::test_the_batch_builds_the_allowed_list_from_official_paths",
  "tests/grounding/test_grounding_claims_support.py::TestOnlyOfficialUrlsAreOpened::test_the_official_url_is_fetched",
  "tests/grounding/test_grounding_claims_support.py::TestTheProxyPathIsFailClosed::test_a_configured_proxy_stops_everything",
  "tests/grounding/test_grounding_claims_support.py::TestTheProxyPathIsFailClosed::test_the_opener_disables_proxies_explicitly",
  "tests/grounding/test_grounding_claims_support.py::TestTheProxyPathIsFailClosed::test_without_a_proxy_the_opener_is_built",
  "tests/grounding/test_grounding_claims_support.py::TestTheRunReportsCountsNotRatios::test_a_clean_run_is_not_flagged",
  "tests/grounding/test_grounding_claims_support.py::TestTheRunReportsCountsNotRatios::test_a_page_is_fetched_once",
  "tests/grounding/test_grounding_claims_support.py::TestTheRunReportsCountsNotRatios::test_it_says_unverified_is_not_fine",
  "tests/grounding/test_grounding_claims_support.py::TestTheRunReportsCountsNotRatios::test_one_fabricated_flags_the_run",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_a_public_address_passes",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_it_is_refused[file:///etc/passwd-scheme]",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_it_is_refused[ftp://a.org/-scheme]",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_it_is_refused[http:///nohost-host \\uc5c6\\uc74c]",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_it_is_refused[http://10.0.0.5/-\\uc0ac\\uc124\\ub9dd]",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_it_is_refused[http://127.0.0.1/x-loopback]",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_it_is_refused[http://169.254.169.254/latest/meta-data/-link-local \\uba54\\ud0c0\\ub370\\uc774\\ud130]",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_it_is_refused[http://192.168.1.1/-\\uc0ac\\uc124\\ub9dd]",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_it_is_refused[http://user:pw@ex.org/-userinfo]",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_it_is_refused[https://localhost/-\\uc774\\ub984\\uc774 loopback \\uc73c\\ub85c \\ud480\\ub9b0\\ub2e4]",
  "tests/grounding/test_grounding_claims_support.py::TestTheSsrfBoundary::test_the_dns_result_is_what_is_checked",
  "tests/grounding/test_grounding_claims_support.py::TestTruncationAndEncoding::test_a_truncated_page_is_unreachable_not_absent",
  "tests/grounding/test_grounding_claims_support.py::TestTruncationAndEncoding::test_the_source_reads_one_more_than_the_cap",
  "tests/grounding/test_grounding_claims_support.py::TestWeDoNotCallItFabricated::test_the_field_name_does_not_claim_fabrication",
  "tests/grounding/test_grounding_claims_support.py::TestWeDoNotCallItFabricated::test_the_source_does_not_assert_fabrication_anywhere",
  "tests/grounding/test_grounding_materialize_entities.py::TestFacetsAreNotPromotedHere::test_a_facet_does_not_leak_into_the_base_bucket",
  "tests/grounding/test_grounding_materialize_entities.py::TestFacetsAreNotPromotedHere::test_a_location_part_is_not_registered_here",
  "tests/grounding/test_grounding_materialize_entities.py::TestFacetsAreNotPromotedHere::test_an_outlook_is_not_registered_here",
  "tests/grounding/test_grounding_materialize_entities.py::TestFacetsAreNotPromotedToBaseTypes::test_a_location_part_is_not_registered_here",
  "tests/grounding/test_grounding_materialize_entities.py::TestFacetsAreNotPromotedToBaseTypes::test_an_outlook_is_not_registered_here",
  "tests/grounding/test_grounding_materialize_entities.py::TestItDoesNotUseRouteAsAProxy::test_research_route_alone_does_not_register",
  "tests/grounding/test_grounding_materialize_entities.py::TestItNoLongerJudgesByName::test_a_row_with_the_same_name_does_not_block_it",
  "tests/grounding/test_grounding_materialize_entities.py::TestItNoLongerJudgesByName::test_an_empty_surface_form_still_gets_a_row",
  "tests/grounding/test_grounding_materialize_entities.py::TestItNoLongerJudgesByName::test_the_old_positional_call_is_gone",
  "tests/grounding/test_grounding_materialize_entities.py::TestItRegistersTheHardOnes::test_a_candidate_that_survived_extraction_is_not_duplicated",
  "tests/grounding/test_grounding_materialize_entities.py::TestItRegistersTheHardOnes::test_a_hard_candidate_with_no_row_becomes_one",
  "tests/grounding/test_grounding_materialize_entities.py::TestItRegistersTheHardOnes::test_not_hard_is_left_alone",
  "tests/grounding/test_grounding_materialize_entities.py::TestItRegistersTheHardOnes::test_uncertain_counts_as_hard",
  "tests/grounding/test_grounding_materialize_entities.py::TestItRegistersWhatTheScreenOpened::test_an_id_that_was_not_opened_is_left_alone",
  "tests/grounding/test_grounding_materialize_entities.py::TestItRegistersWhatTheScreenOpened::test_an_opened_candidate_with_no_row_becomes_one",
  "tests/grounding/test_grounding_materialize_entities.py::TestItRegistersWhatTheScreenOpened::test_only_the_named_ids_are_made",
  "tests/grounding/test_grounding_materialize_entities.py::TestItWorksWithTheKeysTheCallerActuallyUses::test_it_gives_back_the_key_it_was_given",
  "tests/grounding/test_grounding_materialize_entities.py::TestItWorksWithTheKeysTheCallerActuallyUses::test_plural_keys_register_too",
  "tests/grounding/test_grounding_materialize_entities.py::TestNumberingAndKeys::test_characters_and_locations_go_to_their_own_buckets",
  "tests/grounding/test_grounding_materialize_entities.py::TestNumberingAndKeys::test_it_gives_back_the_key_it_was_given",
  "tests/grounding/test_grounding_materialize_entities.py::TestNumberingAndKeys::test_it_skips_numbers_already_taken",
  "tests/grounding/test_grounding_materialize_entities.py::TestNumberingAndKeys::test_plural_keys_register_too",
  "tests/grounding/test_grounding_materialize_entities.py::TestNumberingAndKeys::test_two_new_rows_get_two_free_numbers",
  "tests/grounding/test_grounding_materialize_entities.py::TestNumbersDoNotCollide::test_two_new_rows_get_two_free_numbers",
  "tests/grounding/test_grounding_materialize_entities.py::TestTheOldChannelCouldNotRegister::test_protection_only_finds_rows_that_already_exist",
  "tests/grounding/test_grounding_research_record.py::TestATimeCapNeverStoresADecidedDelta::test_a_capped_run_is_unresolved_even_with_a_good_claim",
  "tests/grounding/test_grounding_research_record.py::TestATimeCapNeverStoresADecidedDelta::test_an_uncapped_run_still_decides",
  "tests/grounding/test_grounding_research_record.py::TestATimeCapNeverStoresADecidedDelta::test_the_cap_is_recorded_as_a_gap",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_a_broken_transmission_is_stored_as_retryable",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_a_clean_call_with_only_a_request_id_still_concludes",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_a_partial_result_from_a_broken_call_is_not_a_conclusion",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_a_retryable_row_is_bought_again_next_round",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_an_unknown_transmission_status_is_refused[OK]",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_an_unknown_transmission_status_is_refused[\\uc131\\uacf5]",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_an_unknown_transmission_status_is_refused[]",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_an_unknown_transmission_status_is_refused[abandoned]",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_an_unknown_transmission_status_is_refused[timeout]",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_surrounding_whitespace_is_not_a_different_status",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_the_always_known_fields_are_still_all_required",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_the_failure_text_survives_into_the_gap",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_the_outcome_must_match_what_the_status_says[failed-transmission_error]",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_the_outcome_must_match_what_the_status_says[ok-provider_request_id]",
  "tests/grounding/test_grounding_research_record.py::TestATransmissionFailureCanActuallyBeStored::test_the_outcome_pair_is_not_in_the_always_required_list",
  "tests/grounding/test_grounding_research_record.py::TestOneCallableDecidesForBothSides::test_the_helper_closes_on_malformed_like_the_record_does",
  "tests/grounding/test_grounding_research_record.py::TestOneCallableDecidesForBothSides::test_the_record_and_the_helper_agree",
  "tests/grounding/test_grounding_research_record.py::TestOneCanonicalizerForHashAndStorage::test_claim_order_changes_neither_hash_nor_bytes",
  "tests/grounding/test_grounding_research_record.py::TestOneCanonicalizerForHashAndStorage::test_source_order_inside_a_claim_does_not_matter",
  "tests/grounding/test_grounding_research_record.py::TestOneCanonicalizerForHashAndStorage::test_the_canonicalizer_sorts_sources",
  "tests/grounding/test_grounding_research_record.py::TestOnlyValidatedRowsReachTheRecord::test_a_malformed_claim_is_not_in_the_record",
  "tests/grounding/test_grounding_research_record.py::TestOnlyValidatedRowsReachTheRecord::test_a_malformed_gap_is_caught_too",
  "tests/grounding/test_grounding_research_record.py::TestOnlyValidatedRowsReachTheRecord::test_good_and_bad_together_keeps_only_the_good",
  "tests/grounding/test_grounding_research_record.py::TestOnlyValidatedRowsReachTheRecord::test_the_raw_payload_is_only_kept_if_the_caller_passes_it",
  "tests/grounding/test_grounding_research_record.py::TestOnlyValidatedRowsReachTheRecord::test_the_stored_rows_are_normalised",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_a_drifting_coordinate_is_refused[model-model]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_a_drifting_coordinate_is_refused[model_version-model_version]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_a_drifting_coordinate_is_refused[policy_version-policy_version]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_a_drifting_coordinate_is_refused[prompt_pack_version-claims_pack_version]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_a_drifting_coordinate_is_refused[prompt_raw_hash-prompt_raw_hash]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_a_drifting_coordinate_is_refused[provider-provider]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_a_drifting_coordinate_is_refused[schema_raw_hash-schema_raw_hash]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_every_bound_coordinate_names_a_real_field_on_both_sides",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_the_bound_baseline_still_stores",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_the_producer_may_still_differ_where_it_is_free_to",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceAndInputsPointAtTheSameCall::test_the_schema_locator_is_kept",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceDoesNotSwallowUnknownFields::test_an_unknown_field_is_refused",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceDoesNotSwallowUnknownFields::test_the_error_names_the_field",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceDoesNotSwallowUnknownFields::test_the_known_envelope_still_passes",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceIsRequiredAndSeparate::test_a_missing_envelope_is_refused[7]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceIsRequiredAndSeparate::test_a_missing_envelope_is_refused[None]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceIsRequiredAndSeparate::test_a_missing_envelope_is_refused[bad0]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceIsRequiredAndSeparate::test_a_missing_envelope_is_refused[x]",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceIsRequiredAndSeparate::test_every_field_is_required",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceIsRequiredAndSeparate::test_it_is_stored_as_its_own_column",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceIsRequiredAndSeparate::test_the_model_column_exists",
  "tests/grounding/test_grounding_research_record.py::TestProvenanceIsRequiredAndSeparate::test_the_producer_does_not_change_the_semantic_hash",
  "tests/grounding/test_grounding_research_record.py::TestResumeReadsRowsNotASingleHash::test_a_changed_pack_makes_it_pending_again",
  "tests/grounding/test_grounding_research_record.py::TestResumeReadsRowsNotASingleHash::test_a_completed_row_stops_the_rebuy",
  "tests/grounding/test_grounding_research_record.py::TestResumeReadsRowsNotASingleHash::test_a_retryable_row_is_bought_again",
  "tests/grounding/test_grounding_research_record.py::TestResumeReadsRowsNotASingleHash::test_every_row_order_gives_the_same_answer",
  "tests/grounding/test_grounding_research_record.py::TestStatusSeparatesCappedFromTerminal::test_a_conflict_is_terminal_not_retryable",
  "tests/grounding/test_grounding_research_record.py::TestStatusSeparatesCappedFromTerminal::test_a_decided_row_is_completed",
  "tests/grounding/test_grounding_research_record.py::TestStatusSeparatesCappedFromTerminal::test_a_time_capped_gap_is_retryable",
  "tests/grounding/test_grounding_research_record.py::TestStatusSeparatesCappedFromTerminal::test_an_explicit_time_cap_is_retryable",
  "tests/grounding/test_grounding_research_record.py::TestStatusSeparatesCappedFromTerminal::test_nothing_found_is_terminal_not_retryable",
  "tests/grounding/test_grounding_research_record.py::TestTheEnvelopeFieldsAreRequired::test_a_real_bool_and_a_real_time_pass",
  "tests/grounding/test_grounding_research_record.py::TestTheEnvelopeFieldsAreRequired::test_created_at_is_required[   ]",
  "tests/grounding/test_grounding_research_record.py::TestTheEnvelopeFieldsAreRequired::test_created_at_is_required[None]",
  "tests/grounding/test_grounding_research_record.py::TestTheEnvelopeFieldsAreRequired::test_created_at_is_required[]",
  "tests/grounding/test_grounding_research_record.py::TestTheEnvelopeFieldsAreRequired::test_time_capped_must_be_a_real_bool[0]",
  "tests/grounding/test_grounding_research_record.py::TestTheEnvelopeFieldsAreRequired::test_time_capped_must_be_a_real_bool[1]",
  "tests/grounding/test_grounding_research_record.py::TestTheEnvelopeFieldsAreRequired::test_time_capped_must_be_a_real_bool[None]",
  "tests/grounding/test_grounding_research_record.py::TestTheEnvelopeFieldsAreRequired::test_time_capped_must_be_a_real_bool[false]",
  "tests/grounding/test_grounding_research_record.py::TestTheEnvelopeFieldsAreRequired::test_time_capped_must_be_a_real_bool[true]",
  "tests/grounding/test_grounding_research_record.py::TestTheShapeSearchActuallyReturns::test_a_raw_search_claim_is_not_malformed",
  "tests/grounding/test_grounding_research_record.py::TestTheShapeSearchActuallyReturns::test_a_wrong_claim_id_is_still_malformed",
  "tests/grounding/test_grounding_research_record.py::TestTheShapeSearchActuallyReturns::test_it_gets_the_computed_claim_id",
  "tests/grounding/test_grounding_research_record.py::TestTheShapeSearchActuallyReturns::test_the_status_is_completed_not_unresolved",
  "tests/grounding/test_grounding_research_record.py::TestTheStoredRowCanRecomputeItsOwnInputHash::test_adding_a_thirteenth_field_would_be_stored_too",
  "tests/grounding/test_grounding_research_record.py::TestTheStoredRowCanRecomputeItsOwnInputHash::test_the_envelope_holds_every_identity_field",
  "tests/grounding/test_grounding_research_record.py::TestTheStoredRowCanRecomputeItsOwnInputHash::test_the_hash_is_computed_from_the_stored_bytes_themselves",
  "tests/grounding/test_grounding_research_record.py::TestTheStoredRowCanRecomputeItsOwnInputHash::test_the_model_has_the_envelope_column",
  "tests/grounding/test_grounding_research_record.py::TestTheStoredRowCanRecomputeItsOwnInputHash::test_the_row_actually_recomputes_the_same_hash",
  "tests/grounding/test_grounding_research_record.py::TestTheTableIsAppendOnlyAndAdditive::test_the_migration_is_additive_only",
  "tests/grounding/test_grounding_research_record.py::TestTheTableIsAppendOnlyAndAdditive::test_the_model_has_the_three_identity_columns",
  "tests/grounding/test_grounding_research_record.py::TestTheTableIsAppendOnlyAndAdditive::test_the_record_does_not_live_in_canon_or_review_notes",
  "tests/grounding/test_grounding_research_record.py::TestTheTableIsAppendOnlyAndAdditive::test_uniqueness_is_per_attempt_not_per_input",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_a_different_result_gives_a_different_content_hash",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_a_retry_after_a_time_cap_does_not_collide",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_a_time_capped_result_still_differs_from_a_complete_one",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_attempt_id_is_required_not_derived",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_changing_the_input_changes_the_input_hash[claims_pack_version-claims/2.0]",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_changing_the_input_changes_the_input_hash[era-1990\\ub144]",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_changing_the_input_changes_the_input_hash[policy_version-pol_v2]",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_changing_the_input_changes_the_input_hash[prompt_raw_hash-3e6e0aa20880123a]",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_changing_the_input_changes_the_input_hash[provider-google]",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_changing_the_input_changes_the_input_hash[region-\\uc77c\\ubcf8]",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_changing_the_source_text_changes_the_input_hash",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_the_content_hash_ignores_gap_order",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_the_content_hash_ignores_row_order",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_the_row_id_hashes_the_whole_attempt_id",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_the_same_call_twice_is_the_same_row",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_the_same_input_gives_the_same_input_hash",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_the_status_is_derived_from_gaps_and_delta[claims0-kw0-unresolved_terminal]",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_the_status_is_derived_from_gaps_and_delta[claims3-kw3-retryable]",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_the_status_is_derived_from_gaps_and_delta[one-kw1-completed]",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_the_status_is_derived_from_gaps_and_delta[one-kw2-retryable]",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_two_attempts_of_the_same_capped_result_hash_the_same",
  "tests/grounding/test_grounding_research_record.py::TestThreeIdentitiesAreNotOne::test_two_attempts_of_the_same_input_are_different_rows",
  "tests/grounding/test_grounding_research_step.py::TestAHardLimitRowCanBeAdmittedAgain::test_a_completed_row_is_not_admitted",
  "tests/grounding/test_grounding_research_step.py::TestAHardLimitRowCanBeAdmittedAgain::test_a_retryable_row_is_admitted",
  "tests/grounding/test_grounding_research_step.py::TestAHardLimitRowIsRecordedAsBoundedRun::test_it_is_marked_as_an_admission_limit",
  "tests/grounding/test_grounding_research_step.py::TestAHardLimitRowIsRecordedAsBoundedRun::test_it_is_not_counted_as_bought",
  "tests/grounding/test_grounding_research_step.py::TestAHardLimitRowIsRecordedAsBoundedRun::test_the_callback_gets_it_too",
  "tests/grounding/test_grounding_research_step.py::TestAHardLimitRowIsRecordedAsBoundedRun::test_the_saved_revision_is_retryable_with_the_right_gap",
  "tests/grounding/test_grounding_research_step.py::TestARowThatWasNeverSentIsStillRecorded::test_it_does_not_raise_and_leaves_a_row",
  "tests/grounding/test_grounding_research_step.py::TestARowThatWasNeverSentIsStillRecorded::test_it_is_retryable",
  "tests/grounding/test_grounding_research_step.py::TestARowThatWasNeverSentIsStillRecorded::test_the_reason_survives",
  "tests/grounding/test_grounding_research_step.py::TestARunWithNothingToResearchIsNormal::test_an_empty_decided_list_is_also_fine",
  "tests/grounding/test_grounding_research_step.py::TestARunWithNothingToResearchIsNormal::test_it_does_not_raise",
  "tests/grounding/test_grounding_research_step.py::TestARunWithNothingToResearchIsNormal::test_the_public_run_buys_nothing_and_completes",
  "tests/grounding/test_grounding_research_step.py::TestAllThreeSitesReadTheSamePack::test_a_db_pack_change_moves_the_config_hash",
  "tests/grounding/test_grounding_research_step.py::TestAllThreeSitesReadTheSamePack::test_the_input_identity_uses_the_same_pack",
  "tests/grounding/test_grounding_research_step.py::TestAllThreeSitesReadTheSamePack::test_the_pack_is_loaded_with_the_db",
  "tests/grounding/test_grounding_research_step.py::TestAllThreeSitesReadTheSamePack::test_the_pack_is_read_once_per_run",
  "tests/grounding/test_grounding_research_step.py::TestEachPaidCallIsSavedImmediately::test_the_callback_saves_before_the_run_ends",
  "tests/grounding/test_grounding_research_step.py::TestItDoesNotBuyWhatIsAlreadyDone::test_a_completed_subject_is_not_bought_again",
  "tests/grounding/test_grounding_research_step.py::TestItDoesNotBuyWhatIsAlreadyDone::test_a_retryable_subject_is_bought_again",
  "tests/grounding/test_grounding_research_step.py::TestItDoesNotBuyWhatIsAlreadyDone::test_all_done_buys_nothing",
  "tests/grounding/test_grounding_research_step.py::TestItDoesNotBuyWhatIsAlreadyDone::test_the_cap_defers_instead_of_dropping",
  "tests/grounding/test_grounding_research_step.py::TestItIsRegisteredInTheChain::test_a_capped_run_blocks_downstream",
  "tests/grounding/test_grounding_research_step.py::TestItIsRegisteredInTheChain::test_it_sits_between_plan_and_filter",
  "tests/grounding/test_grounding_research_step.py::TestItIsRegisteredInTheChain::test_legacy_does_not_run_it",
  "tests/grounding/test_grounding_research_step.py::TestItIsRegisteredInTheChain::test_the_plan_invalidates_it",
  "tests/grounding/test_grounding_research_step.py::TestItIsRegisteredInTheChain::test_the_runner_is_dispatchable",
  "tests/grounding/test_grounding_research_step.py::TestItOnlyBuysWhatThePlanMarked::test_a_subject_without_a_quote_is_not_bought",
  "tests/grounding/test_grounding_research_step.py::TestItOnlyBuysWhatThePlanMarked::test_no_world_context_stops_it",
  "tests/grounding/test_grounding_research_step.py::TestItOnlyBuysWhatThePlanMarked::test_skip_rows_are_not_bought",
  "tests/grounding/test_grounding_research_step.py::TestItSavesDurableRevisions::test_a_capped_row_is_saved_as_retryable",
  "tests/grounding/test_grounding_research_step.py::TestItSavesDurableRevisions::test_a_row_is_saved_per_subject",
  "tests/grounding/test_grounding_research_step.py::TestItSavesDurableRevisions::test_a_subject_that_was_not_requested_is_not_saved",
  "tests/grounding/test_grounding_research_step.py::TestItSavesDurableRevisions::test_the_payload_hash_comes_from_production",
  "tests/grounding/test_grounding_research_step.py::TestLegacyAddsNothing::test_it_produces_no_rows_and_no_calls",
  "tests/grounding/test_grounding_research_step.py::TestLegacyAddsNothing::test_the_policy_gets_an_empty_forced_set_without_a_db",
  "tests/grounding/test_grounding_research_step.py::TestNothingIsSilentlyDropped::test_a_quoted_subject_is_still_bought",
  "tests/grounding/test_grounding_research_step.py::TestNothingIsSilentlyDropped::test_a_subject_the_plan_wanted_but_we_could_not_build",
  "tests/grounding/test_grounding_research_step.py::TestNothingIsSilentlyDropped::test_all_without_quotes_buys_nothing_and_is_partial",
  "tests/grounding/test_grounding_research_step.py::TestTheBatchSizeIsWhatTheExperimentSaid::test_it_is_one",
  "tests/grounding/test_grounding_research_step.py::TestTheChainInvalidatesDownstream::test_scene_detail_depends_on_the_policy",
  "tests/grounding/test_grounding_research_step.py::TestTheChainInvalidatesDownstream::test_the_filter_does_not_depend_on_research",
  "tests/grounding/test_grounding_research_step.py::TestTheChainInvalidatesDownstream::test_the_policy_depends_on_research",
  "tests/grounding/test_grounding_research_step.py::TestTheConfigHashFoldsTheRequestContract::test_changing_the_request_changes_the_hash",
  "tests/grounding/test_grounding_research_step.py::TestTheConfigHashFoldsTheRequestContract::test_the_same_config_gives_the_same_hash",
  "tests/grounding/test_grounding_research_step.py::TestTheRunHappensInsideTheScope::test_a_capped_row_counts_as_failed",
  "tests/grounding/test_grounding_research_step.py::TestTheRunHappensInsideTheScope::test_legacy_does_nothing",
  "tests/grounding/test_grounding_research_step.py::TestTheRunHappensInsideTheScope::test_the_budget_is_installed_when_search_runs",
  "tests/grounding/test_grounding_screen.py::TestEveryOwnerStaysInTheLedger::test_a_blank_id_in_the_candidate_side_stops_it",
  "tests/grounding/test_grounding_screen.py::TestEveryOwnerStaysInTheLedger::test_a_duplicate_inside_one_source_stops_it",
  "tests/grounding/test_grounding_screen.py::TestEveryOwnerStaysInTheLedger::test_a_facet_is_recorded_not_dropped",
  "tests/grounding/test_grounding_screen.py::TestEveryOwnerStaysInTheLedger::test_all_five_owners_get_a_row",
  "tests/grounding/test_grounding_screen.py::TestEveryOwnerStaysInTheLedger::test_the_ledger_is_measured_by_id_not_by_count",
  "tests/grounding/test_grounding_screen.py::TestEveryOwnerStaysInTheLedger::test_the_population_keeps_every_owner_and_refuses_collisions",
  "tests/grounding/test_grounding_screen.py::TestEveryOwnerStaysInTheLedger::test_the_same_id_pointing_at_a_different_thing_stops_it",
  "tests/grounding/test_grounding_screen.py::TestEveryOwnerStaysInTheLedger::test_the_same_id_pointing_at_the_same_thing_folds",
  "tests/grounding/test_grounding_screen.py::TestEveryOwnerStaysInTheLedger::test_two_blank_ids_do_not_cancel_each_other_out",
  "tests/grounding/test_grounding_screen.py::TestItBuysNothing::test_the_module_never_touches_acquisition",
  "tests/grounding/test_grounding_screen.py::TestItSendsTheCanonicalIdentity::test_a_different_owner_is_a_different_payload",
  "tests/grounding/test_grounding_screen.py::TestItSendsTheCanonicalIdentity::test_a_different_quote_is_a_different_payload",
  "tests/grounding/test_grounding_screen.py::TestItSendsTheCanonicalIdentity::test_all_three_canonical_slots_go_out",
  "tests/grounding/test_grounding_screen.py::TestItSendsTheCanonicalIdentity::test_the_payload_sha_ignores_the_id_and_uses_structured_slots",
  "tests/grounding/test_grounding_screen.py::TestItSendsTheCanonicalIdentity::test_the_subject_text_carries_the_manuscript_quote",
  "tests/grounding/test_grounding_screen.py::TestItSendsTheCanonicalIdentity::test_the_walk_memo_is_passed_through",
  "tests/grounding/test_grounding_screen.py::TestScreenAndBindingAreTwoAxes::test_a_facet_obligation_is_not_promotable",
  "tests/grounding/test_grounding_screen.py::TestScreenAndBindingAreTwoAxes::test_an_obligation_that_already_has_a_row_is_not_made",
  "tests/grounding/test_grounding_screen.py::TestScreenAndBindingAreTwoAxes::test_an_obligation_with_no_row_is_what_gets_made",
  "tests/grounding/test_grounding_screen.py::TestScreenAndBindingAreTwoAxes::test_binding_comes_from_the_carry_ledger[-unbound]",
  "tests/grounding/test_grounding_screen.py::TestScreenAndBindingAreTwoAxes::test_binding_comes_from_the_carry_ledger[carried-entity_row]",
  "tests/grounding/test_grounding_screen.py::TestScreenAndBindingAreTwoAxes::test_binding_comes_from_the_carry_ledger[contested-unbound]",
  "tests/grounding/test_grounding_screen.py::TestScreenAndBindingAreTwoAxes::test_binding_comes_from_the_carry_ledger[deferred-deferred_producer]",
  "tests/grounding/test_grounding_screen.py::TestScreenAndBindingAreTwoAxes::test_binding_comes_from_the_carry_ledger[promoted-promoted_row]",
  "tests/grounding/test_grounding_screen.py::TestTheCapActuallyStopsSpending::test_a_cache_hit_does_not_eat_the_budget",
  "tests/grounding/test_grounding_screen.py::TestTheCapActuallyStopsSpending::test_a_failing_flush_does_not_stop_the_screen",
  "tests/grounding/test_grounding_screen.py::TestTheCapActuallyStopsSpending::test_a_failing_flush_stops_before_the_next_buy",
  "tests/grounding/test_grounding_screen.py::TestTheCapActuallyStopsSpending::test_a_walk_memo_return_is_neither_bought_nor_reused",
  "tests/grounding/test_grounding_screen.py::TestTheCapActuallyStopsSpending::test_every_bought_row_is_flushed_before_the_next_buy",
  "tests/grounding/test_grounding_screen.py::TestTheCapActuallyStopsSpending::test_it_buys_no_more_than_the_cap",
  "tests/grounding/test_grounding_screen.py::TestTheCapActuallyStopsSpending::test_something_already_cached_does_not_get_capped",
  "tests/grounding/test_grounding_screen.py::TestTheCapActuallyStopsSpending::test_something_that_never_reads_the_cache_counts_as_bought",
  "tests/grounding/test_grounding_screen.py::TestTheCapRefusesJunk::test_a_plain_int_passes",
  "tests/grounding/test_grounding_screen.py::TestTheCapRefusesJunk::test_it_only_takes_an_exact_positive_int[-1]",
  "tests/grounding/test_grounding_screen.py::TestTheCapRefusesJunk::test_it_only_takes_an_exact_positive_int[0]",
  "tests/grounding/test_grounding_screen.py::TestTheCapRefusesJunk::test_it_only_takes_an_exact_positive_int[2.0]",
  "tests/grounding/test_grounding_screen.py::TestTheCapRefusesJunk::test_it_only_takes_an_exact_positive_int[2]",
  "tests/grounding/test_grounding_screen.py::TestTheCapRefusesJunk::test_it_only_takes_an_exact_positive_int[False]",
  "tests/grounding/test_grounding_screen.py::TestTheCapRefusesJunk::test_it_only_takes_an_exact_positive_int[True]",
  "tests/grounding/test_grounding_screen.py::TestTheCapRefusesJunk::test_none_means_the_contract_default",
  "tests/grounding/test_grounding_screen.py::TestUnresolvedIsNotNotTarget::test_a_failed_assess_is_unresolved",
  "tests/grounding/test_grounding_screen.py::TestUnresolvedIsNotNotTarget::test_a_none_envelope_is_unresolved",
  "tests/grounding/test_grounding_screen.py::TestUnresolvedIsNotNotTarget::test_a_subject_with_no_id_is_not_bought",
  "tests/grounding/test_grounding_screen.py::TestUnresolvedIsNotNotTarget::test_a_subject_with_no_id_stops_before_buying",
  "tests/grounding/test_grounding_screen.py::TestUnresolvedIsNotNotTarget::test_a_subject_with_no_text_is_not_bought",
  "tests/grounding/test_grounding_screen.py::TestUnresolvedIsNotNotTarget::test_an_empty_subject_list_is_not_target_and_is_not_a_failure",
  "tests/grounding/test_grounding_screen.py::TestUnresolvedIsNotNotTarget::test_an_unknown_status_falls_to_unresolved",
  "tests/grounding/test_grounding_screen.py::TestUnresolvedIsNotNotTarget::test_the_cap_is_capped_not_not_target",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_a_stuck_screen_blocks_downstream",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_it_does_not_take_the_old_axis_as_a_dependency",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_it_is_invalidated_by_what_it_reads",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_it_is_not_reachable_from_legacy",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_it_is_not_reachable_from_legacy_once_enabled",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_it_runs_before_the_low_frequency_filter",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_it_runs_before_the_paid_claim_search",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_its_order_is_free",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_legacy_does_not_run_it",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_the_filter_is_invalidated_when_the_screen_reruns",
  "tests/grounding/test_grounding_screen_step.py::TestItSitsWhereItMust::test_the_registry_knows_it",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_owner_set_is_a_controlled_enum_not_a_word_list",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_entity_contract as _ec\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n#: \\u2605\\u2605\\ud55c \\uc904\\uc774 \\ub0a0 \\ub54c\\ub9c8\\ub2e4 **\\uc5ec\\uae30\\uc5d0 \\uba3c\\uc800** \\uc313\\uc778\\ub2e4. \\uc2a4\\ud15d\\uc774 \\uc911\\uac04\\uc5d0 \\ub04a\\uaca8\\ub3c4 \\uc774\\n#:  \\ud30c\\uc77c\\uc774 \\ub0a8\\uc544 \\ub2e4\\uc74c \\ud310\\uc774 \\uc55e\\uc758 \\uc720\\ub8cc \\uacb0\\uacfc\\ub97c **\\ub2e4\\uc2dc \\uc548 \\uc0b0\\ub2e4**.\\nPARTIAL_NAME = \"screen_partial.json\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        # \\u2605\\u2605\\u2605C(c) \\ud310\\uc774\\uba74 **\\uc0c8 producer \\uc758 \\uc0b0\\ucd9c**\\uc744 \\uc77d\\ub294\\ub2e4 (Codex BLOCK \\xb7 09-01).\\n        #  \\uc55e \\ud310\\uc740 \\uc5b4\\ub290 \\ud310\\uc774\\ub4e0 `entity_merge`+`grounding_a0` \\ub97c \\uc77d\\uc5c8\\ub294\\ub370,\\n        #  C(c) \\uc5d0\\uc11c\\ub294 \\uadf8 \\ub458\\uc774 **\\uc548 \\ub3cc\\ubbc0\\ub85c** \\ud310\\ubcc4\\uc774 \\ube48\\uc190\\uc774\\uac70\\ub098 **\\uc61b CP \\ub97c\\n        #  \\ub418\\uc4f4\\ub2e4**. \\uc0c8 producer \\ub294 \\uac19\\uc740 \\ud310\\ub3c5\\uc5d0\\uc11c **\\uc5d4\\ud2f0\\ud2f0 \\uc904\\uacfc \\ud6c4\\ubcf4\\ub97c \\ud568\\uaed8**\\n        #  \\ub0b4\\ubbc0\\ub85c \\uadf8\\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f4\\ub2e4 \\u2014 \\uac19\\uc740 \\uac83\\uc744 \\ub2e4\\uc2dc \\ud310\\ub2e8\\ud558\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n        from app.core.grounding_mode import uses_chunk_producer\\n\\n        if uses_chunk_producer(g_mode):\\n            chunk_cp = self._load_prev_checkpoint(\"grounding_chunk\")\\n            data = (chunk_cp or {}).get(\"data\") or {}\\n            if not data:\\n                from app.core.errors import AppError\\n                raise AppError(\\n                    code=\"step.no_input\",\\n                    message=(\"grounding_chunk \\uc0b0\\ucd9c \\uc5c6\\uc74c \\u2014 C(c) \\ud310\\uc5d0\\uc11c \\ud310\\ubcc4\\uc740 \"\\n                             \"\\uadf8 producer \\uc758 \\uc904\\ub85c\\ub9cc \\uc120\\ub2e4\"),\\n                    status_code=400)\\n            entities = data\\n            a0_cands = list(data.get(\"grounding_candidates\") or [])\\n        else:\\n            merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n            entities = (merge_cp or {}).get(\"data\") or {}\\n            a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n            a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\\n                \"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        # \\u2605\\u2605\\u2605**\\ub450 \\uc7a5\\ubd80\\ub97c \\ud569\\uce5c\\ub2e4** (Codex BLOCK \\xb7 09-01).\\n        #  \\ud6c4\\ubcf4 \\uc7a5\\ubd80\\ub9cc \\ubcf4\\uba74 \\u300cA0 \\ud6c4\\ubcf4\\uac00 \\uc5c6\\ub294 \\uae30\\uc874 \\uc5d4\\ud2f0\\ud2f0 \\ud589\\u300d\\uc744 \\ud45c\\ud604\\ud560 \\uc218 \\uc5c6\\uc5b4\\n        #  `binding_of` \\uac00 \\uadf8\\uac83\\uc744 `unbound` \\ub85c \\ub5a8\\uc5b4\\ub728\\ub9b0\\ub2e4 \\u2014 \\uc2e4\\uce21: \\ub4f1\\ub85d LP +\\n        #  A0=[] \\u2192 `unbound`. subject \\ucabd \\ucc98\\ubd84\\uc740 `build_subjects` \\uac00 \\ub0b8\\ub2e4.\\n        dispositions = dict(built.get(\"subject_dispositions\") or {})\\n        dispositions.update({\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        })\\n        # \\u2605\\u2605**\\ub2e4\\uc12f \\uac08\\ub798\\ub97c \\uc804\\ubd80** \\ubaa8\\uc9d1\\ub2e8\\uc5d0 \\ub123\\ub294\\ub2e4. `build_subjects` \\uc758\\n        #  `subjects` \\ub294 `DISP_PROMOTED` \\ub9cc \\uc2b9\\uaca9\\ud558\\ubbc0\\ub85c facet \\ub450 \\uac08\\ub798\\uac00 \\ud1b5\\uc9f8\\ub85c\\n        #  \\ube60\\uc9c4\\ub2e4 \\u2014 \\uadf8\\uac83\\ub9cc \\ubcf4\\ub0b4 \\ub193\\uace0 \\u300c\\ub2e4\\uc12f owner \\ud310\\ubcc4\\u300d\\uc774\\ub77c\\uace0 \\uc4f0\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n        subjects = _screen.build_population(\\n            built[\"subjects\"], a0_cands, dispositions)\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        # \\u2605\\u2605**\\ub04a\\uae34 \\ud310\\uc774 \\ub0a8\\uae34 \\uac83\\ub3c4 \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4.** \\uccb4\\ud06c\\ud3ec\\uc778\\ud2b8\\ub294 \\uc2a4\\ud15d\\uc774 \\ub05d\\ub098\\uc57c\\n        #  \\uc368\\uc9c0\\ubbc0\\ub85c, N\\ubc88\\uc9f8\\uc5d0\\uc11c \\ub04a\\uae30\\uba74 \\uc55e\\uc758 N-1 \\uc720\\ub8cc \\uacb0\\uacfc\\uac00 CP \\uc5d0\\ub294 \\uc5c6\\ub2e4.\\n        cache.update(self._load_partial())\\n        failed_memo: set = set()\\n\\n        def _flush_row(_row, _plan, _cache=cache) -> None:\\n            # \\u2605\\uce90\\uc2dc \\uc804\\uccb4\\ub97c \\ub2e4\\uc2dc \\uc4f4\\ub2e4. \\uc904 \\ub2e8\\uc704\\ub85c \\ub367\\ubd99\\uc774\\uba74 \\ud30c\\uc77c\\uc774 \\ubc18\\ucabd\\uc778 \\ucc44\\ub85c\\n            #  \\ub04a\\uae38 \\uc218 \\uc788\\uace0, \\ubc18\\ucabd JSON \\uc740 \\ub2e4\\uc74c \\ud310\\uc774 \\ud1b5\\uc9f8\\ub85c \\ubabb \\uc77d\\ub294\\ub2e4.\\n            self._save_partial(_cache)\\n\\n        # \\u2605\\u2605\\u2605C(c) \\ud310\\uc774\\uba74 **\\uacb0\\uc815\\uc801 \\ud22c\\uc601**\\uc774\\ub2e4 \\u2014 \\uac19\\uc740 \\ub73b\\uc744 \\ub2e4\\uc2dc \\uc548 \\ud310\\ub2e8\\ud55c\\ub2e4.\\n        #  producer \\uac00 \\uc774\\ubbf8 \\ub450 \\ucd95\\uc744 \\ub0c8\\uc73c\\ubbc0\\ub85c \\uc5ec\\uae30\\uc11c \\ub610 \\uc0ac\\uba74 \\u2460\\ub450 \\ubc88 \\uc0ac\\uace0\\n        #  \\u2461\\ub450 \\ud310\\uc815\\uc774 \\uac08\\ub9b4 \\ub54c \\uc815\\ubcf8\\uc774 \\uc5c6\\ub2e4 (Codex BLOCK \\xb7 09-01).\\n        if uses_chunk_producer(g_mode):\\n            projected = _screen.project_from_producer(\\n                subjects, dispositions=dispositions)\\n            finals = {str(r.get(\"research_subject_id\") or \"\"):\\n                      str(((r.get(\"producer_link\") or {}).get(\"final_id\"))\\n                          or \"\")\\n                      for r in (ledger.get(\"rows\") or [])\\n                      if (r.get(\"producer_link\") or {}).get(\"final_id\")}\\n            return self._wrap(g_mode, screened=projected, final_ids=finals)\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n            on_row=_flush_row,\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        # \\u2605\\u2605**\\uc9c0\\uc6b0\\uc9c0 \\uc54a\\ub294\\ub2e4** (Codex BLOCK-2). manifest \\uc800\\uc7a5\\uc740\\n        #  `StepRunner.run \\u2192 _execute_and_finalize \\u2192 save_checkpoint` \\uc5d0\\uc11c\\n        #  `_execute` **\\uac00 \\ub3cc\\uc544\\uc628 \\ub4a4**\\uc5d0 \\uc77c\\uc5b4\\ub09c\\ub2e4. \\uc5ec\\uae30\\uc11c \\uc9c0\\uc6b0\\uba74 \\ubc18\\ud658 \\uc9c1\\ud6c4\\n        #  crash \\ub098 CP \\uc800\\uc7a5 \\uc2e4\\ud328\\uc5d0 \\uc0b0 \\uac83\\uc774 **\\uc544\\ubb34 \\ub370\\ub3c4 \\uc548 \\ub0a8\\ub294\\ub2e4**.\\n        #  \\u2605\\ub0a8\\uaca8 \\ub450\\ub294 \\ube44\\uc6a9\\uc740 \\ud30c\\uc77c \\ud558\\ub098\\ubfd0\\uc774\\ub2e4 \\u2014 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\ud329\\xb7\\ubaa8\\ub378\\xb7\\uc815\\ucc45\\uc774\\n        #   \\uc811\\ud600 \\uc788\\uc5b4 \\uacc4\\uc57d\\uc774 \\ubc14\\ub00c\\uba74 \\uc61b \\uce78\\uc740 \\uadf8\\ub0e5 \\uc548 \\ub9de\\ub294\\ub2e4.\\n        # \\u2605\\uac80\\uc99d\\ub41c \\ub9c1\\ud06c\\uc5d0\\uc11c\\ub9cc \\uc815\\ubcf8 ID \\ub97c \\ub0b8\\ub2e4 \\u2014 \\uc774\\ub984\\uc73c\\ub85c \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4\\n        finals = {str(r.get(\"research_subject_id\") or \"\"):\\n                  str(((r.get(\"producer_link\") or {}).get(\"final_id\")) or \"\")\\n                  for r in (ledger.get(\"rows\") or [])\\n                  if (r.get(\"producer_link\") or {}).get(\"final_id\")}\\n        return self._wrap(g_mode, screened=out, cache=cache, final_ids=finals)\\n\\n    def _partial_path(self):\\n        return self._cp_dir / PARTIAL_NAME\\n\\n    def _load_partial(self) -> Dict[str, Any]:\\n        import json\\n\\n        p = self._partial_path()\\n        if not p.exists():\\n            return {}\\n        try:\\n            got = json.loads(p.read_text(encoding=\"utf-8\"))\\n        except Exception:  # noqa: BLE001 \\u2014 \\ubc18\\ucabd \\ud30c\\uc77c\\uc774 \\ud310\\ubcc4\\uc744 \\ub9c9\\uc73c\\uba74 \\uc548 \\ub41c\\ub2e4\\n            logger.warning(\"grounding_screen: \\uc911\\uac04 \\uc800\\uc7a5\\uc774 \\uae68\\uc84c\\ub2e4 \\u2014 \\ubb34\\uc2dc\\ud558\\uace0 \\uac04\\ub2e4\")\\n            return {}\\n        return got if isinstance(got, dict) else {}\\n\\n    def _save_partial(self, cache: Dict[str, Any]) -> None:\\n        import json\\n        import os\\n\\n        p = self._partial_path()\\n        p.parent.mkdir(parents=True, exist_ok=True)\\n        tmp = p.with_suffix(\".tmp\")\\n        tmp.write_text(json.dumps(cache, ensure_ascii=False), encoding=\"utf-8\")\\n        # \\u2605**\\uc6d0\\uc790\\uc801\\uc73c\\ub85c** \\ubc14\\uafbc\\ub2e4. \\uadf8\\ub0e5 \\ub36e\\uc5b4\\uc4f0\\uba74 \\uc4f0\\ub294 \\ub3c4\\uc911\\uc5d0 \\ub04a\\uacbc\\uc744 \\ub54c\\n        #  \\ub2e4\\uc74c \\ud310\\uc774 \\ubc18\\ucabd \\ud30c\\uc77c\\uc744 \\uc77d\\ub294\\ub2e4.\\n        os.replace(tmp, p)\\n\\n\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False,\\n              final_ids: Dict[str, str] | None = None) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n            # \\u2605\\u2605subject \\u2192 **\\uac80\\uc99d\\ub41c \\uc815\\ubcf8 ID**. \\uc911\\uc559 \\uc870\\uc0ac\\uae30\\uac00 \\uc774\\uac83\\uc744 \\uc77d\\ub294\\ub2e4.\\n            #  \\u2605\\uc55e \\ud310\\uc740 \\uadf8\\uac83\\uc774 `grounding_plan` CP \\uc5d0\\ub9cc \\uc788\\uc5c8\\ub294\\ub370 C(c) \\uc5d0\\uc11c\\ub294\\n            #   \\uadf8 \\uc2a4\\ud15d\\uc774 **\\uc548 \\ub3c8\\ub2e4** \\u2014 \\ube48 \\ud45c\\uac70\\ub098 **\\uc61b CP \\uc758 stale \\uc88c\\ud45c**\\uac00\\n            #   \\ub41c\\ub2e4 (Codex \\uc7ac\\ud604 \\xb7 09-01).\\n            \"final_id_by_subject\": dict(final_ids or {}),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            # \\u2605\\u2605\\u2605producer \\uacc4\\uc57d\\ub3c4 **\\uc811\\ub294\\ub2e4** (Codex NON-BLOCK \\xb7 09-01).\\n            #  \\uc774 \\uc2a4\\ud15d\\uc758 \\uc815\\ubcf8 \\ud589\\uc774 `grounding_producer_payload` \\ub97c \\uc2e3\\uae30\\n            #  \\uc2dc\\uc791\\ud588\\uc73c\\ubbc0\\ub85c, \\uc548 \\uc811\\uc73c\\uba74 **payload \\uac00 \\uc5c6\\ub358 \\uc61b CP** \\ub97c resume \\uc774\\n            #  \\uadf8\\ub300\\ub85c \\uc7ac\\uc0ac\\uc6a9\\ud55c\\ub2e4 \\u2014 \\uadf8\\ub7ec\\uba74 \\ud558\\ub958\\uac00 \\ud310\\uc815 \\uce78 \\uc5c6\\uc774 \\ub3c8\\ub2e4.\\n            \"producer_contract\": _ec.PRODUCER_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n            # \\u2605\\u2605alias \\ub294 \\uadf8\\ub300\\ub85c\\uc778\\ub370 **\\ubb3c\\ub9ac \\ubaa8\\ub378\\ub9cc \\ubc14\\ub00c\\uba74** outer resume \\uc774\\n            #  \\uc61b CP \\ub97c \\uac74\\ub108\\ub6f4\\ub2e4 \\u2014 \\ub2e4\\ub978 \\ubaa8\\ub378\\uc774 \\ud310\\ubcc4\\ud55c \\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f0\\uac8c \\ub41c\\ub2e4\\n            #  (Codex). `era_research` \\uac00 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\uc811\\ub294 \\uac83\\uacfc \\uac19\\uc740 \\uac12\\uc774\\ub2e4.\\n            \"assess_model_physical\": _era.resolve_model_physical(\\n                _era.ASSESS_MODEL),\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_entity_contract as _ec\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n#: \\u2605\\u2605\\ud55c \\uc904\\uc774 \\ub0a0 \\ub54c\\ub9c8\\ub2e4 **\\uc5ec\\uae30\\uc5d0 \\uba3c\\uc800** \\uc313\\uc778\\ub2e4. \\uc2a4\\ud15d\\uc774 \\uc911\\uac04\\uc5d0 \\ub04a\\uaca8\\ub3c4 \\uc774\\n#:  \\ud30c\\uc77c\\uc774 \\ub0a8\\uc544 \\ub2e4\\uc74c \\ud310\\uc774 \\uc55e\\uc758 \\uc720\\ub8cc \\uacb0\\uacfc\\ub97c **\\ub2e4\\uc2dc \\uc548 \\uc0b0\\ub2e4**.\\nPARTIAL_NAME = \"screen_partial.json\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        # \\u2605\\u2605\\u2605C(c) \\ud310\\uc774\\uba74 **\\uc0c8 producer \\uc758 \\uc0b0\\ucd9c**\\uc744 \\uc77d\\ub294\\ub2e4 (Codex BLOCK \\xb7 09-01).\\n        #  \\uc55e \\ud310\\uc740 \\uc5b4\\ub290 \\ud310\\uc774\\ub4e0 `entity_merge`+`grounding_a0` \\ub97c \\uc77d\\uc5c8\\ub294\\ub370,\\n        #  C(c) \\uc5d0\\uc11c\\ub294 \\uadf8 \\ub458\\uc774 **\\uc548 \\ub3cc\\ubbc0\\ub85c** \\ud310\\ubcc4\\uc774 \\ube48\\uc190\\uc774\\uac70\\ub098 **\\uc61b CP \\ub97c\\n        #  \\ub418\\uc4f4\\ub2e4**. \\uc0c8 producer \\ub294 \\uac19\\uc740 \\ud310\\ub3c5\\uc5d0\\uc11c **\\uc5d4\\ud2f0\\ud2f0 \\uc904\\uacfc \\ud6c4\\ubcf4\\ub97c \\ud568\\uaed8**\\n        #  \\ub0b4\\ubbc0\\ub85c \\uadf8\\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f4\\ub2e4 \\u2014 \\uac19\\uc740 \\uac83\\uc744 \\ub2e4\\uc2dc \\ud310\\ub2e8\\ud558\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n        from app.core.grounding_mode import uses_chunk_producer\\n\\n        if uses_chunk_producer(g_mode):\\n            chunk_cp = self._load_prev_checkpoint(\"grounding_chunk\")\\n            data = (chunk_cp or {}).get(\"data\") or {}\\n            if not data:\\n                from app.core.errors import AppError\\n                raise AppError(\\n                    code=\"step.no_input\",\\n                    message=(\"grounding_chunk \\uc0b0\\ucd9c \\uc5c6\\uc74c \\u2014 C(c) \\ud310\\uc5d0\\uc11c \\ud310\\ubcc4\\uc740 \"\\n                             \"\\uadf8 producer \\uc758 \\uc904\\ub85c\\ub9cc \\uc120\\ub2e4\"),\\n                    status_code=400)\\n            entities = data\\n            a0_cands = list(data.get(\"grounding_candidates\") or [])\\n        else:\\n            merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n            entities = (merge_cp or {}).get(\"data\") or {}\\n            a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n            a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\\n                \"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        # \\u2605\\u2605\\u2605**\\ub450 \\uc7a5\\ubd80\\ub97c \\ud569\\uce5c\\ub2e4** (Codex BLOCK \\xb7 09-01).\\n        #  \\ud6c4\\ubcf4 \\uc7a5\\ubd80\\ub9cc \\ubcf4\\uba74 \\u300cA0 \\ud6c4\\ubcf4\\uac00 \\uc5c6\\ub294 \\uae30\\uc874 \\uc5d4\\ud2f0\\ud2f0 \\ud589\\u300d\\uc744 \\ud45c\\ud604\\ud560 \\uc218 \\uc5c6\\uc5b4\\n        #  `binding_of` \\uac00 \\uadf8\\uac83\\uc744 `unbound` \\ub85c \\ub5a8\\uc5b4\\ub728\\ub9b0\\ub2e4 \\u2014 \\uc2e4\\uce21: \\ub4f1\\ub85d LP +\\n        #  A0=[] \\u2192 `unbound`. subject \\ucabd \\ucc98\\ubd84\\uc740 `build_subjects` \\uac00 \\ub0b8\\ub2e4.\\n        dispositions = dict(built.get(\"subject_dispositions\") or {})\\n        dispositions.update({\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        })\\n        # \\u2605\\u2605**\\ub2e4\\uc12f \\uac08\\ub798\\ub97c \\uc804\\ubd80** \\ubaa8\\uc9d1\\ub2e8\\uc5d0 \\ub123\\ub294\\ub2e4. `build_subjects` \\uc758\\n        #  `subjects` \\ub294 `DISP_PROMOTED` \\ub9cc \\uc2b9\\uaca9\\ud558\\ubbc0\\ub85c facet \\ub450 \\uac08\\ub798\\uac00 \\ud1b5\\uc9f8\\ub85c\\n        #  \\ube60\\uc9c4\\ub2e4 \\u2014 \\uadf8\\uac83\\ub9cc \\ubcf4\\ub0b4 \\ub193\\uace0 \\u300c\\ub2e4\\uc12f owner \\ud310\\ubcc4\\u300d\\uc774\\ub77c\\uace0 \\uc4f0\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n        subjects = _screen.build_population(\\n            built[\"subjects\"], a0_cands, dispositions)\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        # \\u2605\\u2605**\\ub04a\\uae34 \\ud310\\uc774 \\ub0a8\\uae34 \\uac83\\ub3c4 \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4.** \\uccb4\\ud06c\\ud3ec\\uc778\\ud2b8\\ub294 \\uc2a4\\ud15d\\uc774 \\ub05d\\ub098\\uc57c\\n        #  \\uc368\\uc9c0\\ubbc0\\ub85c, N\\ubc88\\uc9f8\\uc5d0\\uc11c \\ub04a\\uae30\\uba74 \\uc55e\\uc758 N-1 \\uc720\\ub8cc \\uacb0\\uacfc\\uac00 CP \\uc5d0\\ub294 \\uc5c6\\ub2e4.\\n        cache.update(self._load_partial())\\n        failed_memo: set = set()\\n\\n        def _flush_row(_row, _plan, _cache=cache) -> None:\\n            # \\u2605\\uce90\\uc2dc \\uc804\\uccb4\\ub97c \\ub2e4\\uc2dc \\uc4f4\\ub2e4. \\uc904 \\ub2e8\\uc704\\ub85c \\ub367\\ubd99\\uc774\\uba74 \\ud30c\\uc77c\\uc774 \\ubc18\\ucabd\\uc778 \\ucc44\\ub85c\\n            #  \\ub04a\\uae38 \\uc218 \\uc788\\uace0, \\ubc18\\ucabd JSON \\uc740 \\ub2e4\\uc74c \\ud310\\uc774 \\ud1b5\\uc9f8\\ub85c \\ubabb \\uc77d\\ub294\\ub2e4.\\n            self._save_partial(_cache)\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n            on_row=_flush_row,\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        # \\u2605\\u2605**\\uc9c0\\uc6b0\\uc9c0 \\uc54a\\ub294\\ub2e4** (Codex BLOCK-2). manifest \\uc800\\uc7a5\\uc740\\n        #  `StepRunner.run \\u2192 _execute_and_finalize \\u2192 save_checkpoint` \\uc5d0\\uc11c\\n        #  `_execute` **\\uac00 \\ub3cc\\uc544\\uc628 \\ub4a4**\\uc5d0 \\uc77c\\uc5b4\\ub09c\\ub2e4. \\uc5ec\\uae30\\uc11c \\uc9c0\\uc6b0\\uba74 \\ubc18\\ud658 \\uc9c1\\ud6c4\\n        #  crash \\ub098 CP \\uc800\\uc7a5 \\uc2e4\\ud328\\uc5d0 \\uc0b0 \\uac83\\uc774 **\\uc544\\ubb34 \\ub370\\ub3c4 \\uc548 \\ub0a8\\ub294\\ub2e4**.\\n        #  \\u2605\\ub0a8\\uaca8 \\ub450\\ub294 \\ube44\\uc6a9\\uc740 \\ud30c\\uc77c \\ud558\\ub098\\ubfd0\\uc774\\ub2e4 \\u2014 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\ud329\\xb7\\ubaa8\\ub378\\xb7\\uc815\\ucc45\\uc774\\n        #   \\uc811\\ud600 \\uc788\\uc5b4 \\uacc4\\uc57d\\uc774 \\ubc14\\ub00c\\uba74 \\uc61b \\uce78\\uc740 \\uadf8\\ub0e5 \\uc548 \\ub9de\\ub294\\ub2e4.\\n        # \\u2605\\uac80\\uc99d\\ub41c \\ub9c1\\ud06c\\uc5d0\\uc11c\\ub9cc \\uc815\\ubcf8 ID \\ub97c \\ub0b8\\ub2e4 \\u2014 \\uc774\\ub984\\uc73c\\ub85c \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4\\n        finals = {str(r.get(\"research_subject_id\") or \"\"):\\n                  str(((r.get(\"producer_link\") or {}).get(\"final_id\")) or \"\")\\n                  for r in (ledger.get(\"rows\") or [])\\n                  if (r.get(\"producer_link\") or {}).get(\"final_id\")}\\n        return self._wrap(g_mode, screened=out, cache=cache, final_ids=finals)\\n\\n    def _partial_path(self):\\n        return self._cp_dir / PARTIAL_NAME\\n\\n    def _load_partial(self) -> Dict[str, Any]:\\n        import json\\n\\n        p = self._partial_path()\\n        if not p.exists():\\n            return {}\\n        try:\\n            got = json.loads(p.read_text(encoding=\"utf-8\"))\\n        except Exception:  # noqa: BLE001 \\u2014 \\ubc18\\ucabd \\ud30c\\uc77c\\uc774 \\ud310\\ubcc4\\uc744 \\ub9c9\\uc73c\\uba74 \\uc548 \\ub41c\\ub2e4\\n            logger.warning(\"grounding_screen: \\uc911\\uac04 \\uc800\\uc7a5\\uc774 \\uae68\\uc84c\\ub2e4 \\u2014 \\ubb34\\uc2dc\\ud558\\uace0 \\uac04\\ub2e4\")\\n            return {}\\n        return got if isinstance(got, dict) else {}\\n\\n    def _save_partial(self, cache: Dict[str, Any]) -> None:\\n        import json\\n        import os\\n\\n        p = self._partial_path()\\n        p.parent.mkdir(parents=True, exist_ok=True)\\n        tmp = p.with_suffix(\".tmp\")\\n        tmp.write_text(json.dumps(cache, ensure_ascii=False), encoding=\"utf-8\")\\n        # \\u2605**\\uc6d0\\uc790\\uc801\\uc73c\\ub85c** \\ubc14\\uafbc\\ub2e4. \\uadf8\\ub0e5 \\ub36e\\uc5b4\\uc4f0\\uba74 \\uc4f0\\ub294 \\ub3c4\\uc911\\uc5d0 \\ub04a\\uacbc\\uc744 \\ub54c\\n        #  \\ub2e4\\uc74c \\ud310\\uc774 \\ubc18\\ucabd \\ud30c\\uc77c\\uc744 \\uc77d\\ub294\\ub2e4.\\n        os.replace(tmp, p)\\n\\n\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False,\\n              final_ids: Dict[str, str] | None = None) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n            # \\u2605\\u2605subject \\u2192 **\\uac80\\uc99d\\ub41c \\uc815\\ubcf8 ID**. \\uc911\\uc559 \\uc870\\uc0ac\\uae30\\uac00 \\uc774\\uac83\\uc744 \\uc77d\\ub294\\ub2e4.\\n            #  \\u2605\\uc55e \\ud310\\uc740 \\uadf8\\uac83\\uc774 `grounding_plan` CP \\uc5d0\\ub9cc \\uc788\\uc5c8\\ub294\\ub370 C(c) \\uc5d0\\uc11c\\ub294\\n            #   \\uadf8 \\uc2a4\\ud15d\\uc774 **\\uc548 \\ub3c8\\ub2e4** \\u2014 \\ube48 \\ud45c\\uac70\\ub098 **\\uc61b CP \\uc758 stale \\uc88c\\ud45c**\\uac00\\n            #   \\ub41c\\ub2e4 (Codex \\uc7ac\\ud604 \\xb7 09-01).\\n            \"final_id_by_subject\": dict(final_ids or {}),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            # \\u2605\\u2605\\u2605producer \\uacc4\\uc57d\\ub3c4 **\\uc811\\ub294\\ub2e4** (Codex NON-BLOCK \\xb7 09-01).\\n            #  \\uc774 \\uc2a4\\ud15d\\uc758 \\uc815\\ubcf8 \\ud589\\uc774 `grounding_producer_payload` \\ub97c \\uc2e3\\uae30\\n            #  \\uc2dc\\uc791\\ud588\\uc73c\\ubbc0\\ub85c, \\uc548 \\uc811\\uc73c\\uba74 **payload \\uac00 \\uc5c6\\ub358 \\uc61b CP** \\ub97c resume \\uc774\\n            #  \\uadf8\\ub300\\ub85c \\uc7ac\\uc0ac\\uc6a9\\ud55c\\ub2e4 \\u2014 \\uadf8\\ub7ec\\uba74 \\ud558\\ub958\\uac00 \\ud310\\uc815 \\uce78 \\uc5c6\\uc774 \\ub3c8\\ub2e4.\\n            \"producer_contract\": _ec.PRODUCER_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n            # \\u2605\\u2605alias \\ub294 \\uadf8\\ub300\\ub85c\\uc778\\ub370 **\\ubb3c\\ub9ac \\ubaa8\\ub378\\ub9cc \\ubc14\\ub00c\\uba74** outer resume \\uc774\\n            #  \\uc61b CP \\ub97c \\uac74\\ub108\\ub6f4\\ub2e4 \\u2014 \\ub2e4\\ub978 \\ubaa8\\ub378\\uc774 \\ud310\\ubcc4\\ud55c \\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f0\\uac8c \\ub41c\\ub2e4\\n            #  (Codex). `era_research` \\uac00 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\uc811\\ub294 \\uac83\\uacfc \\uac19\\uc740 \\uac12\\uc774\\ub2e4.\\n            \"assess_model_physical\": _era.resolve_model_physical(\\n                _era.ASSESS_MODEL),\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_entity_contract as _ec\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n#: \\u2605\\u2605\\ud55c \\uc904\\uc774 \\ub0a0 \\ub54c\\ub9c8\\ub2e4 **\\uc5ec\\uae30\\uc5d0 \\uba3c\\uc800** \\uc313\\uc778\\ub2e4. \\uc2a4\\ud15d\\uc774 \\uc911\\uac04\\uc5d0 \\ub04a\\uaca8\\ub3c4 \\uc774\\n#:  \\ud30c\\uc77c\\uc774 \\ub0a8\\uc544 \\ub2e4\\uc74c \\ud310\\uc774 \\uc55e\\uc758 \\uc720\\ub8cc \\uacb0\\uacfc\\ub97c **\\ub2e4\\uc2dc \\uc548 \\uc0b0\\ub2e4**.\\nPARTIAL_NAME = \"screen_partial.json\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        # \\u2605\\u2605\\u2605C(c) \\ud310\\uc774\\uba74 **\\uc0c8 producer \\uc758 \\uc0b0\\ucd9c**\\uc744 \\uc77d\\ub294\\ub2e4 (Codex BLOCK \\xb7 09-01).\\n        #  \\uc55e \\ud310\\uc740 \\uc5b4\\ub290 \\ud310\\uc774\\ub4e0 `entity_merge`+`grounding_a0` \\ub97c \\uc77d\\uc5c8\\ub294\\ub370,\\n        #  C(c) \\uc5d0\\uc11c\\ub294 \\uadf8 \\ub458\\uc774 **\\uc548 \\ub3cc\\ubbc0\\ub85c** \\ud310\\ubcc4\\uc774 \\ube48\\uc190\\uc774\\uac70\\ub098 **\\uc61b CP \\ub97c\\n        #  \\ub418\\uc4f4\\ub2e4**. \\uc0c8 producer \\ub294 \\uac19\\uc740 \\ud310\\ub3c5\\uc5d0\\uc11c **\\uc5d4\\ud2f0\\ud2f0 \\uc904\\uacfc \\ud6c4\\ubcf4\\ub97c \\ud568\\uaed8**\\n        #  \\ub0b4\\ubbc0\\ub85c \\uadf8\\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f4\\ub2e4 \\u2014 \\uac19\\uc740 \\uac83\\uc744 \\ub2e4\\uc2dc \\ud310\\ub2e8\\ud558\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n        from app.core.grounding_mode import uses_chunk_producer\\n\\n        if uses_chunk_producer(g_mode):\\n            chunk_cp = self._load_prev_checkpoint(\"grounding_chunk\")\\n            data = (chunk_cp or {}).get(\"data\") or {}\\n            if not data:\\n                from app.core.errors import AppError\\n                raise AppError(\\n                    code=\"step.no_input\",\\n                    message=(\"grounding_chunk \\uc0b0\\ucd9c \\uc5c6\\uc74c \\u2014 C(c) \\ud310\\uc5d0\\uc11c \\ud310\\ubcc4\\uc740 \"\\n                             \"\\uadf8 producer \\uc758 \\uc904\\ub85c\\ub9cc \\uc120\\ub2e4\"),\\n                    status_code=400)\\n            entities = data\\n            a0_cands = list(data.get(\"grounding_candidates\") or [])\\n        else:\\n            merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n            entities = (merge_cp or {}).get(\"data\") or {}\\n            a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n            a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\\n                \"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        # \\u2605\\u2605\\u2605**\\ub450 \\uc7a5\\ubd80\\ub97c \\ud569\\uce5c\\ub2e4** (Codex BLOCK \\xb7 09-01).\\n        #  \\ud6c4\\ubcf4 \\uc7a5\\ubd80\\ub9cc \\ubcf4\\uba74 \\u300cA0 \\ud6c4\\ubcf4\\uac00 \\uc5c6\\ub294 \\uae30\\uc874 \\uc5d4\\ud2f0\\ud2f0 \\ud589\\u300d\\uc744 \\ud45c\\ud604\\ud560 \\uc218 \\uc5c6\\uc5b4\\n        #  `binding_of` \\uac00 \\uadf8\\uac83\\uc744 `unbound` \\ub85c \\ub5a8\\uc5b4\\ub728\\ub9b0\\ub2e4 \\u2014 \\uc2e4\\uce21: \\ub4f1\\ub85d LP +\\n        #  A0=[] \\u2192 `unbound`. subject \\ucabd \\ucc98\\ubd84\\uc740 `build_subjects` \\uac00 \\ub0b8\\ub2e4.\\n        dispositions = dict(built.get(\"subject_dispositions\") or {})\\n        dispositions.update({\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        })\\n        # \\u2605\\u2605**\\ub2e4\\uc12f \\uac08\\ub798\\ub97c \\uc804\\ubd80** \\ubaa8\\uc9d1\\ub2e8\\uc5d0 \\ub123\\ub294\\ub2e4. `build_subjects` \\uc758\\n        #  `subjects` \\ub294 `DISP_PROMOTED` \\ub9cc \\uc2b9\\uaca9\\ud558\\ubbc0\\ub85c facet \\ub450 \\uac08\\ub798\\uac00 \\ud1b5\\uc9f8\\ub85c\\n        #  \\ube60\\uc9c4\\ub2e4 \\u2014 \\uadf8\\uac83\\ub9cc \\ubcf4\\ub0b4 \\ub193\\uace0 \\u300c\\ub2e4\\uc12f owner \\ud310\\ubcc4\\u300d\\uc774\\ub77c\\uace0 \\uc4f0\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n        subjects = _screen.build_population(\\n            built[\"subjects\"], a0_cands, dispositions)\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        # \\u2605\\u2605**\\ub04a\\uae34 \\ud310\\uc774 \\ub0a8\\uae34 \\uac83\\ub3c4 \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4.** \\uccb4\\ud06c\\ud3ec\\uc778\\ud2b8\\ub294 \\uc2a4\\ud15d\\uc774 \\ub05d\\ub098\\uc57c\\n        #  \\uc368\\uc9c0\\ubbc0\\ub85c, N\\ubc88\\uc9f8\\uc5d0\\uc11c \\ub04a\\uae30\\uba74 \\uc55e\\uc758 N-1 \\uc720\\ub8cc \\uacb0\\uacfc\\uac00 CP \\uc5d0\\ub294 \\uc5c6\\ub2e4.\\n        cache.update(self._load_partial())\\n        failed_memo: set = set()\\n\\n        def _flush_row(_row, _plan, _cache=cache) -> None:\\n            # \\u2605\\uce90\\uc2dc \\uc804\\uccb4\\ub97c \\ub2e4\\uc2dc \\uc4f4\\ub2e4. \\uc904 \\ub2e8\\uc704\\ub85c \\ub367\\ubd99\\uc774\\uba74 \\ud30c\\uc77c\\uc774 \\ubc18\\ucabd\\uc778 \\ucc44\\ub85c\\n            #  \\ub04a\\uae38 \\uc218 \\uc788\\uace0, \\ubc18\\ucabd JSON \\uc740 \\ub2e4\\uc74c \\ud310\\uc774 \\ud1b5\\uc9f8\\ub85c \\ubabb \\uc77d\\ub294\\ub2e4.\\n            self._save_partial(_cache)\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n            on_row=_flush_row,\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        # \\u2605\\u2605**\\uc9c0\\uc6b0\\uc9c0 \\uc54a\\ub294\\ub2e4** (Codex BLOCK-2). manifest \\uc800\\uc7a5\\uc740\\n        #  `StepRunner.run \\u2192 _execute_and_finalize \\u2192 save_checkpoint` \\uc5d0\\uc11c\\n        #  `_execute` **\\uac00 \\ub3cc\\uc544\\uc628 \\ub4a4**\\uc5d0 \\uc77c\\uc5b4\\ub09c\\ub2e4. \\uc5ec\\uae30\\uc11c \\uc9c0\\uc6b0\\uba74 \\ubc18\\ud658 \\uc9c1\\ud6c4\\n        #  crash \\ub098 CP \\uc800\\uc7a5 \\uc2e4\\ud328\\uc5d0 \\uc0b0 \\uac83\\uc774 **\\uc544\\ubb34 \\ub370\\ub3c4 \\uc548 \\ub0a8\\ub294\\ub2e4**.\\n        #  \\u2605\\ub0a8\\uaca8 \\ub450\\ub294 \\ube44\\uc6a9\\uc740 \\ud30c\\uc77c \\ud558\\ub098\\ubfd0\\uc774\\ub2e4 \\u2014 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\ud329\\xb7\\ubaa8\\ub378\\xb7\\uc815\\ucc45\\uc774\\n        #   \\uc811\\ud600 \\uc788\\uc5b4 \\uacc4\\uc57d\\uc774 \\ubc14\\ub00c\\uba74 \\uc61b \\uce78\\uc740 \\uadf8\\ub0e5 \\uc548 \\ub9de\\ub294\\ub2e4.\\n        return self._wrap(g_mode, screened=out, cache=cache)\\n\\n    def _partial_path(self):\\n        return self._cp_dir / PARTIAL_NAME\\n\\n    def _load_partial(self) -> Dict[str, Any]:\\n        import json\\n\\n        p = self._partial_path()\\n        if not p.exists():\\n            return {}\\n        try:\\n            got = json.loads(p.read_text(encoding=\"utf-8\"))\\n        except Exception:  # noqa: BLE001 \\u2014 \\ubc18\\ucabd \\ud30c\\uc77c\\uc774 \\ud310\\ubcc4\\uc744 \\ub9c9\\uc73c\\uba74 \\uc548 \\ub41c\\ub2e4\\n            logger.warning(\"grounding_screen: \\uc911\\uac04 \\uc800\\uc7a5\\uc774 \\uae68\\uc84c\\ub2e4 \\u2014 \\ubb34\\uc2dc\\ud558\\uace0 \\uac04\\ub2e4\")\\n            return {}\\n        return got if isinstance(got, dict) else {}\\n\\n    def _save_partial(self, cache: Dict[str, Any]) -> None:\\n        import json\\n        import os\\n\\n        p = self._partial_path()\\n        p.parent.mkdir(parents=True, exist_ok=True)\\n        tmp = p.with_suffix(\".tmp\")\\n        tmp.write_text(json.dumps(cache, ensure_ascii=False), encoding=\"utf-8\")\\n        # \\u2605**\\uc6d0\\uc790\\uc801\\uc73c\\ub85c** \\ubc14\\uafbc\\ub2e4. \\uadf8\\ub0e5 \\ub36e\\uc5b4\\uc4f0\\uba74 \\uc4f0\\ub294 \\ub3c4\\uc911\\uc5d0 \\ub04a\\uacbc\\uc744 \\ub54c\\n        #  \\ub2e4\\uc74c \\ud310\\uc774 \\ubc18\\ucabd \\ud30c\\uc77c\\uc744 \\uc77d\\ub294\\ub2e4.\\n        os.replace(tmp, p)\\n\\n\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            # \\u2605\\u2605\\u2605producer \\uacc4\\uc57d\\ub3c4 **\\uc811\\ub294\\ub2e4** (Codex NON-BLOCK \\xb7 09-01).\\n            #  \\uc774 \\uc2a4\\ud15d\\uc758 \\uc815\\ubcf8 \\ud589\\uc774 `grounding_producer_payload` \\ub97c \\uc2e3\\uae30\\n            #  \\uc2dc\\uc791\\ud588\\uc73c\\ubbc0\\ub85c, \\uc548 \\uc811\\uc73c\\uba74 **payload \\uac00 \\uc5c6\\ub358 \\uc61b CP** \\ub97c resume \\uc774\\n            #  \\uadf8\\ub300\\ub85c \\uc7ac\\uc0ac\\uc6a9\\ud55c\\ub2e4 \\u2014 \\uadf8\\ub7ec\\uba74 \\ud558\\ub958\\uac00 \\ud310\\uc815 \\uce78 \\uc5c6\\uc774 \\ub3c8\\ub2e4.\\n            \"producer_contract\": _ec.PRODUCER_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n            # \\u2605\\u2605alias \\ub294 \\uadf8\\ub300\\ub85c\\uc778\\ub370 **\\ubb3c\\ub9ac \\ubaa8\\ub378\\ub9cc \\ubc14\\ub00c\\uba74** outer resume \\uc774\\n            #  \\uc61b CP \\ub97c \\uac74\\ub108\\ub6f4\\ub2e4 \\u2014 \\ub2e4\\ub978 \\ubaa8\\ub378\\uc774 \\ud310\\ubcc4\\ud55c \\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f0\\uac8c \\ub41c\\ub2e4\\n            #  (Codex). `era_research` \\uac00 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\uc811\\ub294 \\uac83\\uacfc \\uac19\\uc740 \\uac12\\uc774\\ub2e4.\\n            \"assess_model_physical\": _era.resolve_model_physical(\\n                _era.ASSESS_MODEL),\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_entity_contract as _ec\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n#: \\u2605\\u2605\\ud55c \\uc904\\uc774 \\ub0a0 \\ub54c\\ub9c8\\ub2e4 **\\uc5ec\\uae30\\uc5d0 \\uba3c\\uc800** \\uc313\\uc778\\ub2e4. \\uc2a4\\ud15d\\uc774 \\uc911\\uac04\\uc5d0 \\ub04a\\uaca8\\ub3c4 \\uc774\\n#:  \\ud30c\\uc77c\\uc774 \\ub0a8\\uc544 \\ub2e4\\uc74c \\ud310\\uc774 \\uc55e\\uc758 \\uc720\\ub8cc \\uacb0\\uacfc\\ub97c **\\ub2e4\\uc2dc \\uc548 \\uc0b0\\ub2e4**.\\nPARTIAL_NAME = \"screen_partial.json\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n        entities = (merge_cp or {}).get(\"data\") or {}\\n        a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n        a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        # \\u2605\\u2605\\u2605**\\ub450 \\uc7a5\\ubd80\\ub97c \\ud569\\uce5c\\ub2e4** (Codex BLOCK \\xb7 09-01).\\n        #  \\ud6c4\\ubcf4 \\uc7a5\\ubd80\\ub9cc \\ubcf4\\uba74 \\u300cA0 \\ud6c4\\ubcf4\\uac00 \\uc5c6\\ub294 \\uae30\\uc874 \\uc5d4\\ud2f0\\ud2f0 \\ud589\\u300d\\uc744 \\ud45c\\ud604\\ud560 \\uc218 \\uc5c6\\uc5b4\\n        #  `binding_of` \\uac00 \\uadf8\\uac83\\uc744 `unbound` \\ub85c \\ub5a8\\uc5b4\\ub728\\ub9b0\\ub2e4 \\u2014 \\uc2e4\\uce21: \\ub4f1\\ub85d LP +\\n        #  A0=[] \\u2192 `unbound`. subject \\ucabd \\ucc98\\ubd84\\uc740 `build_subjects` \\uac00 \\ub0b8\\ub2e4.\\n        dispositions = dict(built.get(\"subject_dispositions\") or {})\\n        dispositions.update({\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        })\\n        # \\u2605\\u2605**\\ub2e4\\uc12f \\uac08\\ub798\\ub97c \\uc804\\ubd80** \\ubaa8\\uc9d1\\ub2e8\\uc5d0 \\ub123\\ub294\\ub2e4. `build_subjects` \\uc758\\n        #  `subjects` \\ub294 `DISP_PROMOTED` \\ub9cc \\uc2b9\\uaca9\\ud558\\ubbc0\\ub85c facet \\ub450 \\uac08\\ub798\\uac00 \\ud1b5\\uc9f8\\ub85c\\n        #  \\ube60\\uc9c4\\ub2e4 \\u2014 \\uadf8\\uac83\\ub9cc \\ubcf4\\ub0b4 \\ub193\\uace0 \\u300c\\ub2e4\\uc12f owner \\ud310\\ubcc4\\u300d\\uc774\\ub77c\\uace0 \\uc4f0\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n        subjects = _screen.build_population(\\n            built[\"subjects\"], a0_cands, dispositions)\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        # \\u2605\\u2605**\\ub04a\\uae34 \\ud310\\uc774 \\ub0a8\\uae34 \\uac83\\ub3c4 \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4.** \\uccb4\\ud06c\\ud3ec\\uc778\\ud2b8\\ub294 \\uc2a4\\ud15d\\uc774 \\ub05d\\ub098\\uc57c\\n        #  \\uc368\\uc9c0\\ubbc0\\ub85c, N\\ubc88\\uc9f8\\uc5d0\\uc11c \\ub04a\\uae30\\uba74 \\uc55e\\uc758 N-1 \\uc720\\ub8cc \\uacb0\\uacfc\\uac00 CP \\uc5d0\\ub294 \\uc5c6\\ub2e4.\\n        cache.update(self._load_partial())\\n        failed_memo: set = set()\\n\\n        def _flush_row(_row, _plan, _cache=cache) -> None:\\n            # \\u2605\\uce90\\uc2dc \\uc804\\uccb4\\ub97c \\ub2e4\\uc2dc \\uc4f4\\ub2e4. \\uc904 \\ub2e8\\uc704\\ub85c \\ub367\\ubd99\\uc774\\uba74 \\ud30c\\uc77c\\uc774 \\ubc18\\ucabd\\uc778 \\ucc44\\ub85c\\n            #  \\ub04a\\uae38 \\uc218 \\uc788\\uace0, \\ubc18\\ucabd JSON \\uc740 \\ub2e4\\uc74c \\ud310\\uc774 \\ud1b5\\uc9f8\\ub85c \\ubabb \\uc77d\\ub294\\ub2e4.\\n            self._save_partial(_cache)\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n            on_row=_flush_row,\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        # \\u2605\\u2605**\\uc9c0\\uc6b0\\uc9c0 \\uc54a\\ub294\\ub2e4** (Codex BLOCK-2). manifest \\uc800\\uc7a5\\uc740\\n        #  `StepRunner.run \\u2192 _execute_and_finalize \\u2192 save_checkpoint` \\uc5d0\\uc11c\\n        #  `_execute` **\\uac00 \\ub3cc\\uc544\\uc628 \\ub4a4**\\uc5d0 \\uc77c\\uc5b4\\ub09c\\ub2e4. \\uc5ec\\uae30\\uc11c \\uc9c0\\uc6b0\\uba74 \\ubc18\\ud658 \\uc9c1\\ud6c4\\n        #  crash \\ub098 CP \\uc800\\uc7a5 \\uc2e4\\ud328\\uc5d0 \\uc0b0 \\uac83\\uc774 **\\uc544\\ubb34 \\ub370\\ub3c4 \\uc548 \\ub0a8\\ub294\\ub2e4**.\\n        #  \\u2605\\ub0a8\\uaca8 \\ub450\\ub294 \\ube44\\uc6a9\\uc740 \\ud30c\\uc77c \\ud558\\ub098\\ubfd0\\uc774\\ub2e4 \\u2014 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\ud329\\xb7\\ubaa8\\ub378\\xb7\\uc815\\ucc45\\uc774\\n        #   \\uc811\\ud600 \\uc788\\uc5b4 \\uacc4\\uc57d\\uc774 \\ubc14\\ub00c\\uba74 \\uc61b \\uce78\\uc740 \\uadf8\\ub0e5 \\uc548 \\ub9de\\ub294\\ub2e4.\\n        return self._wrap(g_mode, screened=out, cache=cache)\\n\\n    def _partial_path(self):\\n        return self._cp_dir / PARTIAL_NAME\\n\\n    def _load_partial(self) -> Dict[str, Any]:\\n        import json\\n\\n        p = self._partial_path()\\n        if not p.exists():\\n            return {}\\n        try:\\n            got = json.loads(p.read_text(encoding=\"utf-8\"))\\n        except Exception:  # noqa: BLE001 \\u2014 \\ubc18\\ucabd \\ud30c\\uc77c\\uc774 \\ud310\\ubcc4\\uc744 \\ub9c9\\uc73c\\uba74 \\uc548 \\ub41c\\ub2e4\\n            logger.warning(\"grounding_screen: \\uc911\\uac04 \\uc800\\uc7a5\\uc774 \\uae68\\uc84c\\ub2e4 \\u2014 \\ubb34\\uc2dc\\ud558\\uace0 \\uac04\\ub2e4\")\\n            return {}\\n        return got if isinstance(got, dict) else {}\\n\\n    def _save_partial(self, cache: Dict[str, Any]) -> None:\\n        import json\\n        import os\\n\\n        p = self._partial_path()\\n        p.parent.mkdir(parents=True, exist_ok=True)\\n        tmp = p.with_suffix(\".tmp\")\\n        tmp.write_text(json.dumps(cache, ensure_ascii=False), encoding=\"utf-8\")\\n        # \\u2605**\\uc6d0\\uc790\\uc801\\uc73c\\ub85c** \\ubc14\\uafbc\\ub2e4. \\uadf8\\ub0e5 \\ub36e\\uc5b4\\uc4f0\\uba74 \\uc4f0\\ub294 \\ub3c4\\uc911\\uc5d0 \\ub04a\\uacbc\\uc744 \\ub54c\\n        #  \\ub2e4\\uc74c \\ud310\\uc774 \\ubc18\\ucabd \\ud30c\\uc77c\\uc744 \\uc77d\\ub294\\ub2e4.\\n        os.replace(tmp, p)\\n\\n\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            # \\u2605\\u2605\\u2605producer \\uacc4\\uc57d\\ub3c4 **\\uc811\\ub294\\ub2e4** (Codex NON-BLOCK \\xb7 09-01).\\n            #  \\uc774 \\uc2a4\\ud15d\\uc758 \\uc815\\ubcf8 \\ud589\\uc774 `grounding_producer_payload` \\ub97c \\uc2e3\\uae30\\n            #  \\uc2dc\\uc791\\ud588\\uc73c\\ubbc0\\ub85c, \\uc548 \\uc811\\uc73c\\uba74 **payload \\uac00 \\uc5c6\\ub358 \\uc61b CP** \\ub97c resume \\uc774\\n            #  \\uadf8\\ub300\\ub85c \\uc7ac\\uc0ac\\uc6a9\\ud55c\\ub2e4 \\u2014 \\uadf8\\ub7ec\\uba74 \\ud558\\ub958\\uac00 \\ud310\\uc815 \\uce78 \\uc5c6\\uc774 \\ub3c8\\ub2e4.\\n            \"producer_contract\": _ec.PRODUCER_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n            # \\u2605\\u2605alias \\ub294 \\uadf8\\ub300\\ub85c\\uc778\\ub370 **\\ubb3c\\ub9ac \\ubaa8\\ub378\\ub9cc \\ubc14\\ub00c\\uba74** outer resume \\uc774\\n            #  \\uc61b CP \\ub97c \\uac74\\ub108\\ub6f4\\ub2e4 \\u2014 \\ub2e4\\ub978 \\ubaa8\\ub378\\uc774 \\ud310\\ubcc4\\ud55c \\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f0\\uac8c \\ub41c\\ub2e4\\n            #  (Codex). `era_research` \\uac00 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\uc811\\ub294 \\uac83\\uacfc \\uac19\\uc740 \\uac12\\uc774\\ub2e4.\\n            \"assess_model_physical\": _era.resolve_model_physical(\\n                _era.ASSESS_MODEL),\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n#: \\u2605\\u2605\\ud55c \\uc904\\uc774 \\ub0a0 \\ub54c\\ub9c8\\ub2e4 **\\uc5ec\\uae30\\uc5d0 \\uba3c\\uc800** \\uc313\\uc778\\ub2e4. \\uc2a4\\ud15d\\uc774 \\uc911\\uac04\\uc5d0 \\ub04a\\uaca8\\ub3c4 \\uc774\\n#:  \\ud30c\\uc77c\\uc774 \\ub0a8\\uc544 \\ub2e4\\uc74c \\ud310\\uc774 \\uc55e\\uc758 \\uc720\\ub8cc \\uacb0\\uacfc\\ub97c **\\ub2e4\\uc2dc \\uc548 \\uc0b0\\ub2e4**.\\nPARTIAL_NAME = \"screen_partial.json\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n        entities = (merge_cp or {}).get(\"data\") or {}\\n        a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n        a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        # \\u2605\\u2605\\u2605**\\ub450 \\uc7a5\\ubd80\\ub97c \\ud569\\uce5c\\ub2e4** (Codex BLOCK 2026-09-01).\\n        #  \\ud6c4\\ubcf4 \\uc7a5\\ubd80\\ub9cc \\ubcf4\\uba74 \\u300cA0 \\ud6c4\\ubcf4\\uac00 \\uc5c6\\ub294 \\uae30\\uc874 \\uc5d4\\ud2f0\\ud2f0 \\ud589\\u300d\\uc744 \\ud45c\\ud604\\ud560 \\uc218 \\uc5c6\\uc5b4\\n        #  `binding_of` \\uac00 \\uadf8\\uac83\\uc744 `unbound` \\ub85c \\ub5a8\\uc5b4\\ub728\\ub9b0\\ub2e4 \\u2014 \\uc2e4\\uce21: \\ub4f1\\ub85d LP +\\n        #  A0=[] \\u2192 `unbound`. subject \\ucabd \\ucc98\\ubd84\\uc740 `build_subjects` \\uac00 \\ub0b8\\ub2e4.\\n        dispositions = dict(built.get(\"subject_dispositions\") or {})\\n        dispositions.update({\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        })\\n        # \\u2605\\u2605**\\ub2e4\\uc12f \\uac08\\ub798\\ub97c \\uc804\\ubd80** \\ubaa8\\uc9d1\\ub2e8\\uc5d0 \\ub123\\ub294\\ub2e4. `build_subjects` \\uc758\\n        #  `subjects` \\ub294 `DISP_PROMOTED` \\ub9cc \\uc2b9\\uaca9\\ud558\\ubbc0\\ub85c facet \\ub450 \\uac08\\ub798\\uac00 \\ud1b5\\uc9f8\\ub85c\\n        #  \\ube60\\uc9c4\\ub2e4 \\u2014 \\uadf8\\uac83\\ub9cc \\ubcf4\\ub0b4 \\ub193\\uace0 \\u300c\\ub2e4\\uc12f owner \\ud310\\ubcc4\\u300d\\uc774\\ub77c\\uace0 \\uc4f0\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n        subjects = _screen.build_population(\\n            built[\"subjects\"], a0_cands, dispositions)\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        # \\u2605\\u2605**\\ub04a\\uae34 \\ud310\\uc774 \\ub0a8\\uae34 \\uac83\\ub3c4 \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4.** \\uccb4\\ud06c\\ud3ec\\uc778\\ud2b8\\ub294 \\uc2a4\\ud15d\\uc774 \\ub05d\\ub098\\uc57c\\n        #  \\uc368\\uc9c0\\ubbc0\\ub85c, N\\ubc88\\uc9f8\\uc5d0\\uc11c \\ub04a\\uae30\\uba74 \\uc55e\\uc758 N-1 \\uc720\\ub8cc \\uacb0\\uacfc\\uac00 CP \\uc5d0\\ub294 \\uc5c6\\ub2e4.\\n        cache.update(self._load_partial())\\n        failed_memo: set = set()\\n\\n        def _flush_row(_row, _plan, _cache=cache) -> None:\\n            # \\u2605\\uce90\\uc2dc \\uc804\\uccb4\\ub97c \\ub2e4\\uc2dc \\uc4f4\\ub2e4. \\uc904 \\ub2e8\\uc704\\ub85c \\ub367\\ubd99\\uc774\\uba74 \\ud30c\\uc77c\\uc774 \\ubc18\\ucabd\\uc778 \\ucc44\\ub85c\\n            #  \\ub04a\\uae38 \\uc218 \\uc788\\uace0, \\ubc18\\ucabd JSON \\uc740 \\ub2e4\\uc74c \\ud310\\uc774 \\ud1b5\\uc9f8\\ub85c \\ubabb \\uc77d\\ub294\\ub2e4.\\n            self._save_partial(_cache)\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n            on_row=_flush_row,\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        # \\u2605\\u2605**\\uc9c0\\uc6b0\\uc9c0 \\uc54a\\ub294\\ub2e4** (Codex BLOCK-2). manifest \\uc800\\uc7a5\\uc740\\n        #  `StepRunner.run \\u2192 _execute_and_finalize \\u2192 save_checkpoint` \\uc5d0\\uc11c\\n        #  `_execute` **\\uac00 \\ub3cc\\uc544\\uc628 \\ub4a4**\\uc5d0 \\uc77c\\uc5b4\\ub09c\\ub2e4. \\uc5ec\\uae30\\uc11c \\uc9c0\\uc6b0\\uba74 \\ubc18\\ud658 \\uc9c1\\ud6c4\\n        #  crash \\ub098 CP \\uc800\\uc7a5 \\uc2e4\\ud328\\uc5d0 \\uc0b0 \\uac83\\uc774 **\\uc544\\ubb34 \\ub370\\ub3c4 \\uc548 \\ub0a8\\ub294\\ub2e4**.\\n        #  \\u2605\\ub0a8\\uaca8 \\ub450\\ub294 \\ube44\\uc6a9\\uc740 \\ud30c\\uc77c \\ud558\\ub098\\ubfd0\\uc774\\ub2e4 \\u2014 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\ud329\\xb7\\ubaa8\\ub378\\xb7\\uc815\\ucc45\\uc774\\n        #   \\uc811\\ud600 \\uc788\\uc5b4 \\uacc4\\uc57d\\uc774 \\ubc14\\ub00c\\uba74 \\uc61b \\uce78\\uc740 \\uadf8\\ub0e5 \\uc548 \\ub9de\\ub294\\ub2e4.\\n        return self._wrap(g_mode, screened=out, cache=cache)\\n\\n    def _partial_path(self):\\n        return self._cp_dir / PARTIAL_NAME\\n\\n    def _load_partial(self) -> Dict[str, Any]:\\n        import json\\n\\n        p = self._partial_path()\\n        if not p.exists():\\n            return {}\\n        try:\\n            got = json.loads(p.read_text(encoding=\"utf-8\"))\\n        except Exception:  # noqa: BLE001 \\u2014 \\ubc18\\ucabd \\ud30c\\uc77c\\uc774 \\ud310\\ubcc4\\uc744 \\ub9c9\\uc73c\\uba74 \\uc548 \\ub41c\\ub2e4\\n            logger.warning(\"grounding_screen: \\uc911\\uac04 \\uc800\\uc7a5\\uc774 \\uae68\\uc84c\\ub2e4 \\u2014 \\ubb34\\uc2dc\\ud558\\uace0 \\uac04\\ub2e4\")\\n            return {}\\n        return got if isinstance(got, dict) else {}\\n\\n    def _save_partial(self, cache: Dict[str, Any]) -> None:\\n        import json\\n        import os\\n\\n        p = self._partial_path()\\n        p.parent.mkdir(parents=True, exist_ok=True)\\n        tmp = p.with_suffix(\".tmp\")\\n        tmp.write_text(json.dumps(cache, ensure_ascii=False), encoding=\"utf-8\")\\n        # \\u2605**\\uc6d0\\uc790\\uc801\\uc73c\\ub85c** \\ubc14\\uafbc\\ub2e4. \\uadf8\\ub0e5 \\ub36e\\uc5b4\\uc4f0\\uba74 \\uc4f0\\ub294 \\ub3c4\\uc911\\uc5d0 \\ub04a\\uacbc\\uc744 \\ub54c\\n        #  \\ub2e4\\uc74c \\ud310\\uc774 \\ubc18\\ucabd \\ud30c\\uc77c\\uc744 \\uc77d\\ub294\\ub2e4.\\n        os.replace(tmp, p)\\n\\n\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n            # \\u2605\\u2605alias \\ub294 \\uadf8\\ub300\\ub85c\\uc778\\ub370 **\\ubb3c\\ub9ac \\ubaa8\\ub378\\ub9cc \\ubc14\\ub00c\\uba74** outer resume \\uc774\\n            #  \\uc61b CP \\ub97c \\uac74\\ub108\\ub6f4\\ub2e4 \\u2014 \\ub2e4\\ub978 \\ubaa8\\ub378\\uc774 \\ud310\\ubcc4\\ud55c \\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f0\\uac8c \\ub41c\\ub2e4\\n            #  (Codex). `era_research` \\uac00 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\uc811\\ub294 \\uac83\\uacfc \\uac19\\uc740 \\uac12\\uc774\\ub2e4.\\n            \"assess_model_physical\": _era.resolve_model_physical(\\n                _era.ASSESS_MODEL),\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n#: \\u2605\\u2605\\ud55c \\uc904\\uc774 \\ub0a0 \\ub54c\\ub9c8\\ub2e4 **\\uc5ec\\uae30\\uc5d0 \\uba3c\\uc800** \\uc313\\uc778\\ub2e4. \\uc2a4\\ud15d\\uc774 \\uc911\\uac04\\uc5d0 \\ub04a\\uaca8\\ub3c4 \\uc774\\n#:  \\ud30c\\uc77c\\uc774 \\ub0a8\\uc544 \\ub2e4\\uc74c \\ud310\\uc774 \\uc55e\\uc758 \\uc720\\ub8cc \\uacb0\\uacfc\\ub97c **\\ub2e4\\uc2dc \\uc548 \\uc0b0\\ub2e4**.\\nPARTIAL_NAME = \"screen_partial.json\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n        entities = (merge_cp or {}).get(\"data\") or {}\\n        a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n        a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        # \\u2605\\u2605\\u2605**\\ub450 \\uc7a5\\ubd80\\ub97c \\ud569\\uce5c\\ub2e4** (Codex BLOCK \\xb7 09-01).\\n        #  \\ud6c4\\ubcf4 \\uc7a5\\ubd80\\ub9cc \\ubcf4\\uba74 \\u300cA0 \\ud6c4\\ubcf4\\uac00 \\uc5c6\\ub294 \\uae30\\uc874 \\uc5d4\\ud2f0\\ud2f0 \\ud589\\u300d\\uc744 \\ud45c\\ud604\\ud560 \\uc218 \\uc5c6\\uc5b4\\n        #  `binding_of` \\uac00 \\uadf8\\uac83\\uc744 `unbound` \\ub85c \\ub5a8\\uc5b4\\ub728\\ub9b0\\ub2e4 \\u2014 \\uc2e4\\uce21: \\ub4f1\\ub85d LP +\\n        #  A0=[] \\u2192 `unbound`. subject \\ucabd \\ucc98\\ubd84\\uc740 `build_subjects` \\uac00 \\ub0b8\\ub2e4.\\n        dispositions = dict(built.get(\"subject_dispositions\") or {})\\n        dispositions.update({\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        })\\n        # \\u2605\\u2605**\\ub2e4\\uc12f \\uac08\\ub798\\ub97c \\uc804\\ubd80** \\ubaa8\\uc9d1\\ub2e8\\uc5d0 \\ub123\\ub294\\ub2e4. `build_subjects` \\uc758\\n        #  `subjects` \\ub294 `DISP_PROMOTED` \\ub9cc \\uc2b9\\uaca9\\ud558\\ubbc0\\ub85c facet \\ub450 \\uac08\\ub798\\uac00 \\ud1b5\\uc9f8\\ub85c\\n        #  \\ube60\\uc9c4\\ub2e4 \\u2014 \\uadf8\\uac83\\ub9cc \\ubcf4\\ub0b4 \\ub193\\uace0 \\u300c\\ub2e4\\uc12f owner \\ud310\\ubcc4\\u300d\\uc774\\ub77c\\uace0 \\uc4f0\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n        subjects = _screen.build_population(\\n            built[\"subjects\"], a0_cands, dispositions)\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        # \\u2605\\u2605**\\ub04a\\uae34 \\ud310\\uc774 \\ub0a8\\uae34 \\uac83\\ub3c4 \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4.** \\uccb4\\ud06c\\ud3ec\\uc778\\ud2b8\\ub294 \\uc2a4\\ud15d\\uc774 \\ub05d\\ub098\\uc57c\\n        #  \\uc368\\uc9c0\\ubbc0\\ub85c, N\\ubc88\\uc9f8\\uc5d0\\uc11c \\ub04a\\uae30\\uba74 \\uc55e\\uc758 N-1 \\uc720\\ub8cc \\uacb0\\uacfc\\uac00 CP \\uc5d0\\ub294 \\uc5c6\\ub2e4.\\n        cache.update(self._load_partial())\\n        failed_memo: set = set()\\n\\n        def _flush_row(_row, _plan, _cache=cache) -> None:\\n            # \\u2605\\uce90\\uc2dc \\uc804\\uccb4\\ub97c \\ub2e4\\uc2dc \\uc4f4\\ub2e4. \\uc904 \\ub2e8\\uc704\\ub85c \\ub367\\ubd99\\uc774\\uba74 \\ud30c\\uc77c\\uc774 \\ubc18\\ucabd\\uc778 \\ucc44\\ub85c\\n            #  \\ub04a\\uae38 \\uc218 \\uc788\\uace0, \\ubc18\\ucabd JSON \\uc740 \\ub2e4\\uc74c \\ud310\\uc774 \\ud1b5\\uc9f8\\ub85c \\ubabb \\uc77d\\ub294\\ub2e4.\\n            self._save_partial(_cache)\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n            on_row=_flush_row,\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        # \\u2605\\u2605**\\uc9c0\\uc6b0\\uc9c0 \\uc54a\\ub294\\ub2e4** (Codex BLOCK-2). manifest \\uc800\\uc7a5\\uc740\\n        #  `StepRunner.run \\u2192 _execute_and_finalize \\u2192 save_checkpoint` \\uc5d0\\uc11c\\n        #  `_execute` **\\uac00 \\ub3cc\\uc544\\uc628 \\ub4a4**\\uc5d0 \\uc77c\\uc5b4\\ub09c\\ub2e4. \\uc5ec\\uae30\\uc11c \\uc9c0\\uc6b0\\uba74 \\ubc18\\ud658 \\uc9c1\\ud6c4\\n        #  crash \\ub098 CP \\uc800\\uc7a5 \\uc2e4\\ud328\\uc5d0 \\uc0b0 \\uac83\\uc774 **\\uc544\\ubb34 \\ub370\\ub3c4 \\uc548 \\ub0a8\\ub294\\ub2e4**.\\n        #  \\u2605\\ub0a8\\uaca8 \\ub450\\ub294 \\ube44\\uc6a9\\uc740 \\ud30c\\uc77c \\ud558\\ub098\\ubfd0\\uc774\\ub2e4 \\u2014 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\ud329\\xb7\\ubaa8\\ub378\\xb7\\uc815\\ucc45\\uc774\\n        #   \\uc811\\ud600 \\uc788\\uc5b4 \\uacc4\\uc57d\\uc774 \\ubc14\\ub00c\\uba74 \\uc61b \\uce78\\uc740 \\uadf8\\ub0e5 \\uc548 \\ub9de\\ub294\\ub2e4.\\n        return self._wrap(g_mode, screened=out, cache=cache)\\n\\n    def _partial_path(self):\\n        return self._cp_dir / PARTIAL_NAME\\n\\n    def _load_partial(self) -> Dict[str, Any]:\\n        import json\\n\\n        p = self._partial_path()\\n        if not p.exists():\\n            return {}\\n        try:\\n            got = json.loads(p.read_text(encoding=\"utf-8\"))\\n        except Exception:  # noqa: BLE001 \\u2014 \\ubc18\\ucabd \\ud30c\\uc77c\\uc774 \\ud310\\ubcc4\\uc744 \\ub9c9\\uc73c\\uba74 \\uc548 \\ub41c\\ub2e4\\n            logger.warning(\"grounding_screen: \\uc911\\uac04 \\uc800\\uc7a5\\uc774 \\uae68\\uc84c\\ub2e4 \\u2014 \\ubb34\\uc2dc\\ud558\\uace0 \\uac04\\ub2e4\")\\n            return {}\\n        return got if isinstance(got, dict) else {}\\n\\n    def _save_partial(self, cache: Dict[str, Any]) -> None:\\n        import json\\n        import os\\n\\n        p = self._partial_path()\\n        p.parent.mkdir(parents=True, exist_ok=True)\\n        tmp = p.with_suffix(\".tmp\")\\n        tmp.write_text(json.dumps(cache, ensure_ascii=False), encoding=\"utf-8\")\\n        # \\u2605**\\uc6d0\\uc790\\uc801\\uc73c\\ub85c** \\ubc14\\uafbc\\ub2e4. \\uadf8\\ub0e5 \\ub36e\\uc5b4\\uc4f0\\uba74 \\uc4f0\\ub294 \\ub3c4\\uc911\\uc5d0 \\ub04a\\uacbc\\uc744 \\ub54c\\n        #  \\ub2e4\\uc74c \\ud310\\uc774 \\ubc18\\ucabd \\ud30c\\uc77c\\uc744 \\uc77d\\ub294\\ub2e4.\\n        os.replace(tmp, p)\\n\\n\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n            # \\u2605\\u2605alias \\ub294 \\uadf8\\ub300\\ub85c\\uc778\\ub370 **\\ubb3c\\ub9ac \\ubaa8\\ub378\\ub9cc \\ubc14\\ub00c\\uba74** outer resume \\uc774\\n            #  \\uc61b CP \\ub97c \\uac74\\ub108\\ub6f4\\ub2e4 \\u2014 \\ub2e4\\ub978 \\ubaa8\\ub378\\uc774 \\ud310\\ubcc4\\ud55c \\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f0\\uac8c \\ub41c\\ub2e4\\n            #  (Codex). `era_research` \\uac00 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\uc811\\ub294 \\uac83\\uacfc \\uac19\\uc740 \\uac12\\uc774\\ub2e4.\\n            \"assess_model_physical\": _era.resolve_model_physical(\\n                _era.ASSESS_MODEL),\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n#: \\u2605\\u2605\\ud55c \\uc904\\uc774 \\ub0a0 \\ub54c\\ub9c8\\ub2e4 **\\uc5ec\\uae30\\uc5d0 \\uba3c\\uc800** \\uc313\\uc778\\ub2e4. \\uc2a4\\ud15d\\uc774 \\uc911\\uac04\\uc5d0 \\ub04a\\uaca8\\ub3c4 \\uc774\\n#:  \\ud30c\\uc77c\\uc774 \\ub0a8\\uc544 \\ub2e4\\uc74c \\ud310\\uc774 \\uc55e\\uc758 \\uc720\\ub8cc \\uacb0\\uacfc\\ub97c **\\ub2e4\\uc2dc \\uc548 \\uc0b0\\ub2e4**.\\nPARTIAL_NAME = \"screen_partial.json\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n        entities = (merge_cp or {}).get(\"data\") or {}\\n        a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n        a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        dispositions = {\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        }\\n        # \\u2605\\u2605**\\ub2e4\\uc12f \\uac08\\ub798\\ub97c \\uc804\\ubd80** \\ubaa8\\uc9d1\\ub2e8\\uc5d0 \\ub123\\ub294\\ub2e4. `build_subjects` \\uc758\\n        #  `subjects` \\ub294 `DISP_PROMOTED` \\ub9cc \\uc2b9\\uaca9\\ud558\\ubbc0\\ub85c facet \\ub450 \\uac08\\ub798\\uac00 \\ud1b5\\uc9f8\\ub85c\\n        #  \\ube60\\uc9c4\\ub2e4 \\u2014 \\uadf8\\uac83\\ub9cc \\ubcf4\\ub0b4 \\ub193\\uace0 \\u300c\\ub2e4\\uc12f owner \\ud310\\ubcc4\\u300d\\uc774\\ub77c\\uace0 \\uc4f0\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n        subjects = _screen.build_population(\\n            built[\"subjects\"], a0_cands, dispositions)\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        # \\u2605\\u2605**\\ub04a\\uae34 \\ud310\\uc774 \\ub0a8\\uae34 \\uac83\\ub3c4 \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4.** \\uccb4\\ud06c\\ud3ec\\uc778\\ud2b8\\ub294 \\uc2a4\\ud15d\\uc774 \\ub05d\\ub098\\uc57c\\n        #  \\uc368\\uc9c0\\ubbc0\\ub85c, N\\ubc88\\uc9f8\\uc5d0\\uc11c \\ub04a\\uae30\\uba74 \\uc55e\\uc758 N-1 \\uc720\\ub8cc \\uacb0\\uacfc\\uac00 CP \\uc5d0\\ub294 \\uc5c6\\ub2e4.\\n        cache.update(self._load_partial())\\n        failed_memo: set = set()\\n\\n        def _flush_row(_row, _plan, _cache=cache) -> None:\\n            # \\u2605\\uce90\\uc2dc \\uc804\\uccb4\\ub97c \\ub2e4\\uc2dc \\uc4f4\\ub2e4. \\uc904 \\ub2e8\\uc704\\ub85c \\ub367\\ubd99\\uc774\\uba74 \\ud30c\\uc77c\\uc774 \\ubc18\\ucabd\\uc778 \\ucc44\\ub85c\\n            #  \\ub04a\\uae38 \\uc218 \\uc788\\uace0, \\ubc18\\ucabd JSON \\uc740 \\ub2e4\\uc74c \\ud310\\uc774 \\ud1b5\\uc9f8\\ub85c \\ubabb \\uc77d\\ub294\\ub2e4.\\n            self._save_partial(_cache)\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n            on_row=_flush_row,\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        # \\u2605\\u2605**\\uc9c0\\uc6b0\\uc9c0 \\uc54a\\ub294\\ub2e4** (Codex BLOCK-2). manifest \\uc800\\uc7a5\\uc740\\n        #  `StepRunner.run \\u2192 _execute_and_finalize \\u2192 save_checkpoint` \\uc5d0\\uc11c\\n        #  `_execute` **\\uac00 \\ub3cc\\uc544\\uc628 \\ub4a4**\\uc5d0 \\uc77c\\uc5b4\\ub09c\\ub2e4. \\uc5ec\\uae30\\uc11c \\uc9c0\\uc6b0\\uba74 \\ubc18\\ud658 \\uc9c1\\ud6c4\\n        #  crash \\ub098 CP \\uc800\\uc7a5 \\uc2e4\\ud328\\uc5d0 \\uc0b0 \\uac83\\uc774 **\\uc544\\ubb34 \\ub370\\ub3c4 \\uc548 \\ub0a8\\ub294\\ub2e4**.\\n        #  \\u2605\\ub0a8\\uaca8 \\ub450\\ub294 \\ube44\\uc6a9\\uc740 \\ud30c\\uc77c \\ud558\\ub098\\ubfd0\\uc774\\ub2e4 \\u2014 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\ud329\\xb7\\ubaa8\\ub378\\xb7\\uc815\\ucc45\\uc774\\n        #   \\uc811\\ud600 \\uc788\\uc5b4 \\uacc4\\uc57d\\uc774 \\ubc14\\ub00c\\uba74 \\uc61b \\uce78\\uc740 \\uadf8\\ub0e5 \\uc548 \\ub9de\\ub294\\ub2e4.\\n        return self._wrap(g_mode, screened=out, cache=cache)\\n\\n    def _partial_path(self):\\n        return self._cp_dir / PARTIAL_NAME\\n\\n    def _load_partial(self) -> Dict[str, Any]:\\n        import json\\n\\n        p = self._partial_path()\\n        if not p.exists():\\n            return {}\\n        try:\\n            got = json.loads(p.read_text(encoding=\"utf-8\"))\\n        except Exception:  # noqa: BLE001 \\u2014 \\ubc18\\ucabd \\ud30c\\uc77c\\uc774 \\ud310\\ubcc4\\uc744 \\ub9c9\\uc73c\\uba74 \\uc548 \\ub41c\\ub2e4\\n            logger.warning(\"grounding_screen: \\uc911\\uac04 \\uc800\\uc7a5\\uc774 \\uae68\\uc84c\\ub2e4 \\u2014 \\ubb34\\uc2dc\\ud558\\uace0 \\uac04\\ub2e4\")\\n            return {}\\n        return got if isinstance(got, dict) else {}\\n\\n    def _save_partial(self, cache: Dict[str, Any]) -> None:\\n        import json\\n        import os\\n\\n        p = self._partial_path()\\n        p.parent.mkdir(parents=True, exist_ok=True)\\n        tmp = p.with_suffix(\".tmp\")\\n        tmp.write_text(json.dumps(cache, ensure_ascii=False), encoding=\"utf-8\")\\n        # \\u2605**\\uc6d0\\uc790\\uc801\\uc73c\\ub85c** \\ubc14\\uafbc\\ub2e4. \\uadf8\\ub0e5 \\ub36e\\uc5b4\\uc4f0\\uba74 \\uc4f0\\ub294 \\ub3c4\\uc911\\uc5d0 \\ub04a\\uacbc\\uc744 \\ub54c\\n        #  \\ub2e4\\uc74c \\ud310\\uc774 \\ubc18\\ucabd \\ud30c\\uc77c\\uc744 \\uc77d\\ub294\\ub2e4.\\n        os.replace(tmp, p)\\n\\n\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n            # \\u2605\\u2605alias \\ub294 \\uadf8\\ub300\\ub85c\\uc778\\ub370 **\\ubb3c\\ub9ac \\ubaa8\\ub378\\ub9cc \\ubc14\\ub00c\\uba74** outer resume \\uc774\\n            #  \\uc61b CP \\ub97c \\uac74\\ub108\\ub6f4\\ub2e4 \\u2014 \\ub2e4\\ub978 \\ubaa8\\ub378\\uc774 \\ud310\\ubcc4\\ud55c \\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f0\\uac8c \\ub41c\\ub2e4\\n            #  (Codex). `era_research` \\uac00 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\uc811\\ub294 \\uac83\\uacfc \\uac19\\uc740 \\uac12\\uc774\\ub2e4.\\n            \"assess_model_physical\": _era.resolve_model_physical(\\n                _era.ASSESS_MODEL),\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n#: \\u2605\\u2605\\ud55c \\uc904\\uc774 \\ub0a0 \\ub54c\\ub9c8\\ub2e4 **\\uc5ec\\uae30\\uc5d0 \\uba3c\\uc800** \\uc313\\uc778\\ub2e4. \\uc2a4\\ud15d\\uc774 \\uc911\\uac04\\uc5d0 \\ub04a\\uaca8\\ub3c4 \\uc774\\n#:  \\ud30c\\uc77c\\uc774 \\ub0a8\\uc544 \\ub2e4\\uc74c \\ud310\\uc774 \\uc55e\\uc758 \\uc720\\ub8cc \\uacb0\\uacfc\\ub97c **\\ub2e4\\uc2dc \\uc548 \\uc0b0\\ub2e4**.\\nPARTIAL_NAME = \"screen_partial.json\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n        entities = (merge_cp or {}).get(\"data\") or {}\\n        a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n        a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        dispositions = {\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        }\\n        # \\u2605\\u2605**\\ub2e4\\uc12f \\uac08\\ub798\\ub97c \\uc804\\ubd80** \\ubaa8\\uc9d1\\ub2e8\\uc5d0 \\ub123\\ub294\\ub2e4. `build_subjects` \\uc758\\n        #  `subjects` \\ub294 `DISP_PROMOTED` \\ub9cc \\uc2b9\\uaca9\\ud558\\ubbc0\\ub85c facet \\ub450 \\uac08\\ub798\\uac00 \\ud1b5\\uc9f8\\ub85c\\n        #  \\ube60\\uc9c4\\ub2e4 \\u2014 \\uadf8\\uac83\\ub9cc \\ubcf4\\ub0b4 \\ub193\\uace0 \\u300c\\ub2e4\\uc12f owner \\ud310\\ubcc4\\u300d\\uc774\\ub77c\\uace0 \\uc4f0\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n        subjects = _screen.build_population(\\n            built[\"subjects\"], a0_cands, dispositions)\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        # \\u2605\\u2605**\\ub04a\\uae34 \\ud310\\uc774 \\ub0a8\\uae34 \\uac83\\ub3c4 \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4.** \\uccb4\\ud06c\\ud3ec\\uc778\\ud2b8\\ub294 \\uc2a4\\ud15d\\uc774 \\ub05d\\ub098\\uc57c\\n        #  \\uc368\\uc9c0\\ubbc0\\ub85c, N\\ubc88\\uc9f8\\uc5d0\\uc11c \\ub04a\\uae30\\uba74 \\uc55e\\uc758 N-1 \\uc720\\ub8cc \\uacb0\\uacfc\\uac00 CP \\uc5d0\\ub294 \\uc5c6\\ub2e4.\\n        cache.update(self._load_partial())\\n        failed_memo: set = set()\\n\\n        def _flush_row(_row, _plan, _cache=cache) -> None:\\n            # \\u2605\\uce90\\uc2dc \\uc804\\uccb4\\ub97c \\ub2e4\\uc2dc \\uc4f4\\ub2e4. \\uc904 \\ub2e8\\uc704\\ub85c \\ub367\\ubd99\\uc774\\uba74 \\ud30c\\uc77c\\uc774 \\ubc18\\ucabd\\uc778 \\ucc44\\ub85c\\n            #  \\ub04a\\uae38 \\uc218 \\uc788\\uace0, \\ubc18\\ucabd JSON \\uc740 \\ub2e4\\uc74c \\ud310\\uc774 \\ud1b5\\uc9f8\\ub85c \\ubabb \\uc77d\\ub294\\ub2e4.\\n            self._save_partial(_cache)\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n            on_row=_flush_row,\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        # \\u2605\\u2605**\\uc9c0\\uc6b0\\uc9c0 \\uc54a\\ub294\\ub2e4** (Codex BLOCK-2). manifest \\uc800\\uc7a5\\uc740\\n        #  `StepRunner.run \\u2192 _execute_and_finalize \\u2192 save_checkpoint` \\uc5d0\\uc11c\\n        #  `_execute` **\\uac00 \\ub3cc\\uc544\\uc628 \\ub4a4**\\uc5d0 \\uc77c\\uc5b4\\ub09c\\ub2e4. \\uc5ec\\uae30\\uc11c \\uc9c0\\uc6b0\\uba74 \\ubc18\\ud658 \\uc9c1\\ud6c4\\n        #  crash \\ub098 CP \\uc800\\uc7a5 \\uc2e4\\ud328\\uc5d0 \\uc0b0 \\uac83\\uc774 **\\uc544\\ubb34 \\ub370\\ub3c4 \\uc548 \\ub0a8\\ub294\\ub2e4**.\\n        #  \\u2605\\ub0a8\\uaca8 \\ub450\\ub294 \\ube44\\uc6a9\\uc740 \\ud30c\\uc77c \\ud558\\ub098\\ubfd0\\uc774\\ub2e4 \\u2014 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\ud329\\xb7\\ubaa8\\ub378\\xb7\\uc815\\ucc45\\uc774\\n        #   \\uc811\\ud600 \\uc788\\uc5b4 \\uacc4\\uc57d\\uc774 \\ubc14\\ub00c\\uba74 \\uc61b \\uce78\\uc740 \\uadf8\\ub0e5 \\uc548 \\ub9de\\ub294\\ub2e4.\\n        w = self._wrap(g_mode, screened=out, cache=cache)\\n        self._clear_partial()\\n        return w\\n\\n    def _partial_path(self):\\n        return self._cp_dir / PARTIAL_NAME\\n\\n    def _load_partial(self) -> Dict[str, Any]:\\n        import json\\n\\n        p = self._partial_path()\\n        if not p.exists():\\n            return {}\\n        try:\\n            got = json.loads(p.read_text(encoding=\"utf-8\"))\\n        except Exception:  # noqa: BLE001 \\u2014 \\ubc18\\ucabd \\ud30c\\uc77c\\uc774 \\ud310\\ubcc4\\uc744 \\ub9c9\\uc73c\\uba74 \\uc548 \\ub41c\\ub2e4\\n            logger.warning(\"grounding_screen: \\uc911\\uac04 \\uc800\\uc7a5\\uc774 \\uae68\\uc84c\\ub2e4 \\u2014 \\ubb34\\uc2dc\\ud558\\uace0 \\uac04\\ub2e4\")\\n            return {}\\n        return got if isinstance(got, dict) else {}\\n\\n    def _save_partial(self, cache: Dict[str, Any]) -> None:\\n        import json\\n        import os\\n\\n        p = self._partial_path()\\n        p.parent.mkdir(parents=True, exist_ok=True)\\n        tmp = p.with_suffix(\".tmp\")\\n        tmp.write_text(json.dumps(cache, ensure_ascii=False), encoding=\"utf-8\")\\n        # \\u2605**\\uc6d0\\uc790\\uc801\\uc73c\\ub85c** \\ubc14\\uafbc\\ub2e4. \\uadf8\\ub0e5 \\ub36e\\uc5b4\\uc4f0\\uba74 \\uc4f0\\ub294 \\ub3c4\\uc911\\uc5d0 \\ub04a\\uacbc\\uc744 \\ub54c\\n        #  \\ub2e4\\uc74c \\ud310\\uc774 \\ubc18\\ucabd \\ud30c\\uc77c\\uc744 \\uc77d\\ub294\\ub2e4.\\n        os.replace(tmp, p)\\n\\n\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n            # \\u2605\\u2605alias \\ub294 \\uadf8\\ub300\\ub85c\\uc778\\ub370 **\\ubb3c\\ub9ac \\ubaa8\\ub378\\ub9cc \\ubc14\\ub00c\\uba74** outer resume \\uc774\\n            #  \\uc61b CP \\ub97c \\uac74\\ub108\\ub6f4\\ub2e4 \\u2014 \\ub2e4\\ub978 \\ubaa8\\ub378\\uc774 \\ud310\\ubcc4\\ud55c \\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f0\\uac8c \\ub41c\\ub2e4\\n            #  (Codex). `era_research` \\uac00 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\uc811\\ub294 \\uac83\\uacfc \\uac19\\uc740 \\uac12\\uc774\\ub2e4.\\n            \"assess_model_physical\": _era.resolve_model_physical(\\n                _era.ASSESS_MODEL),\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n#: \\u2605\\u2605\\ud55c \\uc904\\uc774 \\ub0a0 \\ub54c\\ub9c8\\ub2e4 **\\uc5ec\\uae30\\uc5d0 \\uba3c\\uc800** \\uc313\\uc778\\ub2e4. \\uc2a4\\ud15d\\uc774 \\uc911\\uac04\\uc5d0 \\ub04a\\uaca8\\ub3c4 \\uc774\\n#:  \\ud30c\\uc77c\\uc774 \\ub0a8\\uc544 \\ub2e4\\uc74c \\ud310\\uc774 \\uc55e\\uc758 \\uc720\\ub8cc \\uacb0\\uacfc\\ub97c **\\ub2e4\\uc2dc \\uc548 \\uc0b0\\ub2e4**.\\nPARTIAL_NAME = \"screen_partial.json\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n        entities = (merge_cp or {}).get(\"data\") or {}\\n        a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n        a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        dispositions = {\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        }\\n        # \\u2605\\u2605**\\ub2e4\\uc12f \\uac08\\ub798\\ub97c \\uc804\\ubd80** \\ubaa8\\uc9d1\\ub2e8\\uc5d0 \\ub123\\ub294\\ub2e4. `build_subjects` \\uc758\\n        #  `subjects` \\ub294 `DISP_PROMOTED` \\ub9cc \\uc2b9\\uaca9\\ud558\\ubbc0\\ub85c facet \\ub450 \\uac08\\ub798\\uac00 \\ud1b5\\uc9f8\\ub85c\\n        #  \\ube60\\uc9c4\\ub2e4 \\u2014 \\uadf8\\uac83\\ub9cc \\ubcf4\\ub0b4 \\ub193\\uace0 \\u300c\\ub2e4\\uc12f owner \\ud310\\ubcc4\\u300d\\uc774\\ub77c\\uace0 \\uc4f0\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n        subjects = _screen.build_population(\\n            built[\"subjects\"], a0_cands, dispositions)\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        # \\u2605\\u2605**\\ub04a\\uae34 \\ud310\\uc774 \\ub0a8\\uae34 \\uac83\\ub3c4 \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4.** \\uccb4\\ud06c\\ud3ec\\uc778\\ud2b8\\ub294 \\uc2a4\\ud15d\\uc774 \\ub05d\\ub098\\uc57c\\n        #  \\uc368\\uc9c0\\ubbc0\\ub85c, N\\ubc88\\uc9f8\\uc5d0\\uc11c \\ub04a\\uae30\\uba74 \\uc55e\\uc758 N-1 \\uc720\\ub8cc \\uacb0\\uacfc\\uac00 CP \\uc5d0\\ub294 \\uc5c6\\ub2e4.\\n        cache.update(self._load_partial())\\n        failed_memo: set = set()\\n\\n        def _flush_row(_row, _plan, _cache=cache) -> None:\\n            # \\u2605\\uce90\\uc2dc \\uc804\\uccb4\\ub97c \\ub2e4\\uc2dc \\uc4f4\\ub2e4. \\uc904 \\ub2e8\\uc704\\ub85c \\ub367\\ubd99\\uc774\\uba74 \\ud30c\\uc77c\\uc774 \\ubc18\\ucabd\\uc778 \\ucc44\\ub85c\\n            #  \\ub04a\\uae38 \\uc218 \\uc788\\uace0, \\ubc18\\ucabd JSON \\uc740 \\ub2e4\\uc74c \\ud310\\uc774 \\ud1b5\\uc9f8\\ub85c \\ubabb \\uc77d\\ub294\\ub2e4.\\n            self._save_partial(_cache)\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n            on_row=_flush_row,\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        wrapped = self._wrap(g_mode, screened=out, cache=cache)\\n        # \\u2605\\uccb4\\ud06c\\ud3ec\\uc778\\ud2b8\\uc5d0 \\ub2f4\\uae34 \\ub4a4\\uc5d0\\uc57c \\uc9c0\\uc6b4\\ub2e4 \\u2014 \\uba3c\\uc800 \\uc9c0\\uc6b0\\uba74 \\uc800\\uc7a5\\uc774 \\uc2e4\\ud328\\ud588\\uc744 \\ub54c\\n        #  \\uc0b0 \\uac83\\uc774 \\uc544\\ubb34 \\ub370\\ub3c4 \\uc548 \\ub0a8\\ub294\\ub2e4.\\n        self._clear_partial()\\n        return wrapped\\n\\n    def _partial_path(self):\\n        return self._cp_dir / PARTIAL_NAME\\n\\n    def _load_partial(self) -> Dict[str, Any]:\\n        import json\\n\\n        p = self._partial_path()\\n        if not p.exists():\\n            return {}\\n        try:\\n            got = json.loads(p.read_text(encoding=\"utf-8\"))\\n        except Exception:  # noqa: BLE001 \\u2014 \\ubc18\\ucabd \\ud30c\\uc77c\\uc774 \\ud310\\ubcc4\\uc744 \\ub9c9\\uc73c\\uba74 \\uc548 \\ub41c\\ub2e4\\n            logger.warning(\"grounding_screen: \\uc911\\uac04 \\uc800\\uc7a5\\uc774 \\uae68\\uc84c\\ub2e4 \\u2014 \\ubb34\\uc2dc\\ud558\\uace0 \\uac04\\ub2e4\")\\n            return {}\\n        return got if isinstance(got, dict) else {}\\n\\n    def _save_partial(self, cache: Dict[str, Any]) -> None:\\n        import json\\n        import os\\n\\n        p = self._partial_path()\\n        p.parent.mkdir(parents=True, exist_ok=True)\\n        tmp = p.with_suffix(\".tmp\")\\n        tmp.write_text(json.dumps(cache, ensure_ascii=False), encoding=\"utf-8\")\\n        # \\u2605**\\uc6d0\\uc790\\uc801\\uc73c\\ub85c** \\ubc14\\uafbc\\ub2e4. \\uadf8\\ub0e5 \\ub36e\\uc5b4\\uc4f0\\uba74 \\uc4f0\\ub294 \\ub3c4\\uc911\\uc5d0 \\ub04a\\uacbc\\uc744 \\ub54c\\n        #  \\ub2e4\\uc74c \\ud310\\uc774 \\ubc18\\ucabd \\ud30c\\uc77c\\uc744 \\uc77d\\ub294\\ub2e4.\\n        os.replace(tmp, p)\\n\\n    def _clear_partial(self) -> None:\\n        p = self._partial_path()\\n        if p.exists():\\n            p.unlink()\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n            # \\u2605\\u2605alias \\ub294 \\uadf8\\ub300\\ub85c\\uc778\\ub370 **\\ubb3c\\ub9ac \\ubaa8\\ub378\\ub9cc \\ubc14\\ub00c\\uba74** outer resume \\uc774\\n            #  \\uc61b CP \\ub97c \\uac74\\ub108\\ub6f4\\ub2e4 \\u2014 \\ub2e4\\ub978 \\ubaa8\\ub378\\uc774 \\ud310\\ubcc4\\ud55c \\uac83\\uc744 \\uadf8\\ub300\\ub85c \\uc4f0\\uac8c \\ub41c\\ub2e4\\n            #  (Codex). `era_research` \\uac00 \\uce90\\uc2dc \\ud0a4\\uc5d0 \\uc811\\ub294 \\uac83\\uacfc \\uac19\\uc740 \\uac12\\uc774\\ub2e4.\\n            \"assess_model_physical\": _era.resolve_model_physical(\\n                _era.ASSESS_MODEL),\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n        entities = (merge_cp or {}).get(\"data\") or {}\\n        a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n        a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        dispositions = {\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        }\\n        # \\u2605\\u2605**\\ub2e4\\uc12f \\uac08\\ub798\\ub97c \\uc804\\ubd80** \\ubaa8\\uc9d1\\ub2e8\\uc5d0 \\ub123\\ub294\\ub2e4. `build_subjects` \\uc758\\n        #  `subjects` \\ub294 `DISP_PROMOTED` \\ub9cc \\uc2b9\\uaca9\\ud558\\ubbc0\\ub85c facet \\ub450 \\uac08\\ub798\\uac00 \\ud1b5\\uc9f8\\ub85c\\n        #  \\ube60\\uc9c4\\ub2e4 \\u2014 \\uadf8\\uac83\\ub9cc \\ubcf4\\ub0b4 \\ub193\\uace0 \\u300c\\ub2e4\\uc12f owner \\ud310\\ubcc4\\u300d\\uc774\\ub77c\\uace0 \\uc4f0\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n        subjects = _screen.build_population(\\n            built[\"subjects\"], a0_cands, dispositions)\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        failed_memo: set = set()\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        return self._wrap(g_mode, screened=out, cache=cache)\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\"\"\"\\uc55e\\ucabd **\\ud310\\ubcc4** \\uc2a4\\ud15d (13.68) \\u2014 \\u300c\\ubb34\\uc5c7\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d.\\n\\n    13.5  entity_merge        \\u2190 \\uacb0\\uc18d\\ud560 \\uc5d4\\ud2f0\\ud2f0\\uac00 \\uc5ec\\uae30\\uc11c \\uc815\\ud574\\uc9c4\\ub2e4\\n      \\u2193\\n    13.65 grounding_plan      route \\ud655\\uc815 (\\uae30\\uc874 \\ucd95)\\n      \\u2193\\n    13.68 \\u2605grounding_screen   **\\ud310\\ubcc4\\ub9cc** \\u2014 `era_research.assess_plan_cached`\\n      \\u2193\\n    13.7  entity_filter       \\ud310\\ubcc4\\uc774 \\uc5f0 \\uac83\\uc744 **\\uc548 \\uc9c0\\uc6b4\\ub2e4** + \\uc5c6\\ub294 \\ud589\\uc740 \\ub9cc\\ub4e0\\ub2e4\\n      \\u2193\\n    19.x  \\uc911\\uc559 \\ud68d\\ub4dd           \\u2605\\uc0ac\\ub294 \\uacf3\\uc740 **\\uc5ec\\uae30 \\ud558\\ub098**\\n\\n\\u2605\\uc774 \\uc2a4\\ud15d\\uc740 **\\ucc38\\uc870\\ub97c \\uc0ac\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac80\\uc0c9\\xb7\\uc774\\ubbf8\\uc9c0 \\uac80\\uc0c9\\xb7VLM \\ud638\\ucd9c 0.\\n\\uc0ac\\ub294 \\uac83\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4 \\u2014 \\ub450 \\uacf3\\uc5d0\\uc11c \\uc0ac\\uba74 \\uac19\\uc740 \\ub300\\uc0c1\\uc744 \\ub450 \\ubc88 \\uc0b0\\ub2e4.\\n\\n\\u2605`generation_difficulty` \\ub97c **\\uadfc\\uac70\\ub85c \\uc4f0\\uc9c0 \\uc54a\\ub294\\ub2e4.** \\uac19\\uc740 \\uc720\\ub8cc \\ud310\\ub2e8\\uc744 \\ub450 \\ubc88\\n\\uc0ac\\uc9c0 \\uc54a\\uae30\\ub85c \\ud655\\uc815\\ub410\\ub2e4 \\u2014 \\ud310\\ubcc4 SOT \\ub294 `era_research.assess_subjects` \\ub2e4.\\n\\n\\u2605\\uacb0\\uc18d(`binding`)\\uc740 `grounding_carry` \\uac00 SOT \\ub2e4. \\uc774 \\uc2a4\\ud15d\\uc740 \\uadf8 \\uc7a5\\ubd80\\ub97c \\uc77d\\uc744 \\ubfd0\\n\\uc774\\ub984\\uc744 \\ub2e4\\uc2dc \\uc9dd\\uc9d3\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n\"\"\"\\nfrom __future__ import annotations\\n\\nimport logging\\nfrom typing import Any, Dict\\n\\nfrom app.core.grounding_mode import (GROUNDING_MODE_LEGACY,\\n                                     resolve_grounding_mode)\\nfrom app.core.step_runner import StepRunner\\nfrom app.core.steps.entity_steps import _EntityStepMixin\\nfrom app.modules.pipeline import grounding_carry as _carry\\nfrom app.modules.pipeline import grounding_screen as _screen\\nfrom app.modules.pipeline import era_research as _era\\nfrom app.modules.pipeline.grounding_subject import SUBJECT_ID_CONTRACT_VERSION\\n\\nlogger = logging.getLogger(__name__)\\n\\n#: \\u2605\\ud310\\ubcc4 \\uce90\\uc2dc\\uac00 \\uc549\\ub294 \\uce78. CP \\uc548\\uc5d0 \\ub450\\uc5b4 **resume \\uc774 \\ub2e4\\uc2dc \\uc548 \\uc0ac\\uac8c** \\ud55c\\ub2e4.\\nCACHE_KEY = \"assess_cache\"\\n\\n\\nclass GroundingScreenStep(_EntityStepMixin, StepRunner):\\n    \"\"\"\\ucc38\\uc870 \\ud68d\\ub4dd **\\uc758\\ubb34**\\ub97c \\uc815\\ud55c\\ub2e4. \\uc0ac\\uc9c0\\ub294 \\uc54a\\ub294\\ub2e4.\"\"\"\\n\\n    def _execute(self, mode: str = \"resume\") -> Dict[str, Any]:\\n        g_mode = resolve_grounding_mode(self.project_config)\\n        if g_mode == GROUNDING_MODE_LEGACY:\\n            # \\u2605manifest \\uc758 `if_grounding_v2` \\uac00 \\uc774\\ubbf8 \\uac70\\ub978\\ub2e4. \\ub2e8\\ub3c5 \\ud638\\ucd9c\\ub85c \\ub4e4\\uc5b4\\uc640\\ub3c4\\n            #  **\\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud558\\uace0** \\uc120\\ub2e4.\\n            logger.info(\"grounding_screen: mode=legacy \\u2014 \\uc544\\ubb34\\uac83\\ub3c4 \\uc548 \\ud55c\\ub2e4\")\\n            return self._wrap(g_mode, screened={}, skipped=True)\\n\\n        merge_cp = self._load_prev_checkpoint(\"entity_merge\")\\n        entities = (merge_cp or {}).get(\"data\") or {}\\n        a0_cp = self._load_prev_checkpoint(\"grounding_a0\")\\n        a0_cands = ((a0_cp or {}).get(\"data\") or {}).get(\"candidates\") or []\\n\\n        # \\u2605\\u2605\\uacb0\\uc18d\\uc740 `grounding_carry` **\\ud55c \\ud568\\uc218**\\uac00 \\ud55c\\ub2e4 \\u2014 `grounding_plan` \\uacfc\\n        #  offline \\uc7ac\\uc0dd\\uae30\\uac00 \\uc4f0\\ub294 \\ubc14\\ub85c \\uadf8 \\ud568\\uc218\\ub2e4. \\uc5ec\\uae30\\uc11c \\ub530\\ub85c \\uc9dd\\uc9c0\\uc73c\\uba74 \\uc138 \\uacf3\\uc774\\n        #  \\uac08\\ub9ac\\uace0, \\uac08\\ub9b0 \\uac83\\uc744 \\uc544\\ubb34\\ub3c4 \\ubabb \\ubcf8\\ub2e4.\\n        built = _carry.build_subjects(\\n            entities, project_id=self.project_id, episode_id=self.episode_id,\\n            source_step=\"entity_merge\", a0_candidates=a0_cands)\\n        subjects = built[\"subjects\"]\\n        ledger = built.get(\"candidate_ledger\") or {}\\n        dispositions = {\\n            str(r.get(\"research_subject_id\") or \"\"): str(r.get(\"disposition\") or \"\")\\n            for r in (ledger.get(\"rows\") or [])\\n        }\\n\\n        from app.core.world_context import build_world_facts_block\\n\\n        rules_cp = self._load_prev_checkpoint(\"visual_world_rules\")\\n        world = build_world_facts_block(rules_cp)\\n        if not world.strip():\\n            from app.core.errors import AppError\\n\\n            # \\u2605\\uc138\\uacc4\\uad00 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud558\\uba74 \\u300c\\uadf8 \\uc2dc\\ub300\\uc5d0 \\ud2b9\\ubcc4\\ud55c\\uac00\\u300d\\ub97c \\ubb3c\\uc744 \\uae30\\uc900\\uc774 \\uc5c6\\ub2e4.\\n            #  \\ube48 \\ube14\\ub85d\\uc73c\\ub85c \\uc0ac\\uba74 \\uadf8 \\ub3c8\\uc774 \\uadf8\\ub0e5 \\ubc84\\ub824\\uc9c4\\ub2e4.\\n            raise AppError(\\n                code=\"grounding_screen.missing_world_context\",\\n                message=\"visual_world_rules \\uac00 \\ube44\\uc5c8\\ub2e4 \\u2014 \\uc2dc\\ub300 \\uae30\\uc900 \\uc5c6\\uc774 \\ud310\\ubcc4\\ud560 \\uc218 \\uc5c6\\ub2e4\",\\n                status_code=400,\\n            )\\n\\n        # \\u2605\\uc774\\uc804 \\ud310\\uc758 \\ud310\\ubcc4 \\uce90\\uc2dc\\ub97c \\uc774\\uc5b4\\ubc1b\\ub294\\ub2e4 \\u2014 resume \\uc774 \\uac19\\uc740 \\uac83\\uc744 **\\ub2e4\\uc2dc \\uc0ac\\uba74**\\n        #  \\uc548 \\ub41c\\ub2e4. \\ube48 \\ubaa9\\ub85d(\\ube44\\ub300\\uc0c1)\\ub3c4 \\uce90\\uc2dc\\ub77c \\uadf8\\uac83\\uae4c\\uc9c0 \\uc774\\uc5b4\\ubc1b\\uc544\\uc57c \\ub73b\\uc774 \\uc788\\ub2e4.\\n        prev = ((self._load_prev_checkpoint(self.step_id) or {}).get(\"data\")\\n                or {}).get(CACHE_KEY) or {}\\n        cache: Dict[str, Any] = dict(prev) if isinstance(prev, dict) else {}\\n        failed_memo: set = set()\\n\\n        out = _screen.screen_subjects(\\n            subjects,\\n            dispositions=dispositions,\\n            world_facts_block=world,\\n            cache_get=lambda k: (cache.get(k)\\n                                 if isinstance(cache.get(k), dict) else None),\\n            cache_put=lambda k, v: cache.__setitem__(k, v),\\n            project_config=self.project_config,\\n            opik_metadata=self.build_opik_metadata(),\\n            failed_memo=failed_memo,\\n            max_assess=(self.project_config or {}).get(\\n                \"grounding_screen_max_assess\"),\\n        )\\n        logger.info(\\n            \"grounding_screen: \\ub300\\uc0c1 %d\\uac1c \\xb7 \\ud310\\ubcc4 \\ud638\\ucd9c %d \\xb7 %s \\xb7 \\uac08\\ub798\\ubcc4 %s\",\\n            len(subjects), out[\"assess_calls\"], out[\"counts\"], out[\"by_owner\"])\\n\\n        facet_debt = _screen.facet_obligations(out)\\n        if facet_debt:\\n            # \\u2605**\\uc0ac\\uc57c \\ud558\\ub294\\ub370 \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub294 \\uac83\\ub4e4.** \\xa72-6.5a producer \\ubaab\\uc774\\ub2e4.\\n            #  \\uc774 \\ubaa9\\ub85d\\uc774 \\ub0a8\\uc740 \\ucc44\\ub85c \\u300c\\ub2e4\\uc12f \\uac08\\ub798 \\uc644\\ub8cc\\u300d\\ub97c \\ub9d0\\ud558\\uba74 \\uac70\\uc9d3\\uc774\\ub2e4.\\n            logger.warning(\\n                \"grounding_screen: producer \\uac00 \\uc5c6\\uc5b4 \\ubbf8\\ub8ec \\uc758\\ubb34 %d\\uac74 \\u2014 \\xa72-6.5a\",\\n                len(facet_debt))\\n        return self._wrap(g_mode, screened=out, cache=cache)\\n\\n    def _wrap(self, g_mode: str, *, screened: Dict[str, Any],\\n              cache: Dict[str, Any] | None = None,\\n              skipped: bool = False) -> Dict[str, Any]:\\n        rows = screened.get(\"rows\") or []\\n        counts = screened.get(\"counts\") or {}\\n        # \\u2605\\ubabb \\uc120 \\uac83\\uacfc \\uc0c1\\ud55c\\uc5d0 \\uac78\\ub9b0 \\uac83\\uc740 **\\uc2e4\\ud328\\ub85c \\uc13c\\ub2e4** \\u2014 `partial` \\uc774 \\ub418\\uc5b4\\n        #  \\ud558\\ub958\\uac00 \\ub9c9\\ud78c\\ub2e4. \\u300c\\ubbf8\\ud655\\uc815\\u300d\\uc744 \\u300c\\ube44\\ub300\\uc0c1\\u300d\\uc73c\\ub85c \\uc77d\\uc73c\\uba74 \\ucc38\\uc870 \\uc5c6\\uc774 \\ub0b4\\ub824\\uac04\\ub2e4.\\n        failed = (counts.get(_screen.SCREEN_UNRESOLVED, 0)\\n                  + counts.get(_screen.SCREEN_CAPPED, 0))\\n        done = len(rows) - failed\\n        payload: Dict[str, Any] = {\\n            \"mode\": g_mode,\\n            \"contract_version\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"subject_count\": len(rows),\\n            \"search_calls\": 0,\\n            \"image_calls\": 0,\\n            **{k: v for k, v in screened.items() if k != \"contract_version\"},\\n            \"facet_debt\": _screen.facet_obligations(screened),\\n        }\\n        if cache is not None:\\n            payload[CACHE_KEY] = cache\\n        if skipped:\\n            payload[\"skipped\"] = True\\n        return {\\n            \"completed_count\": done,\\n            \"applicable_count\": len(rows),\\n            \"failed_count\": failed,\\n            \"config_hash\": self._config_hash(),\\n            \"data\": payload,\\n        }\\n\\n    def _config_hash(self) -> str:\\n        \"\"\"\\u2605\\ud310\\ubcc4 \\uacc4\\uc57d\\xb7\\ud329 \\ubc14\\uc774\\ud2b8\\ub97c \\uc9c0\\ubb38\\uc5d0 \\uc811\\ub294\\ub2e4.\\n\\n        \\uc548 \\uc811\\uc73c\\uba74 \\ud329\\uc774\\ub098 \\ubaa8\\ub378\\uc744 \\ubc14\\uafd4\\ub3c4 resume \\uc774 **\\uc61b \\ud310\\ubcc4\\uc744 \\uadf8\\ub300\\ub85c \\uac74\\ub108\\ub6f4\\ub2e4**.\\n        \"\"\"\\n        import hashlib\\n        import json\\n\\n        from app.core.step_runner import compute_config_hash\\n\\n        raw = json.dumps({\\n            \"base\": compute_config_hash(self.project_config),\\n            \"screen_contract\": _screen.SCREEN_CONTRACT_VERSION,\\n            \"carry_contract\": _carry.CARRY_CONTRACT_VERSION,\\n            \"subject_contract\": SUBJECT_ID_CONTRACT_VERSION,\\n            \"era_policy\": _era.ERA_RESEARCH_POLICY_VERSION,\\n            \"era_pack\": _era.resolve_era_pack(),\\n            \"era_pack_hash\": _era.era_pack_content_hash(),\\n            \"assess_model\": _era.ASSESS_MODEL,\\n        }, sort_keys=True, ensure_ascii=False)\\n        return hashlib.sha256(raw.encode(\"utf-8\")).hexdigest()[:16]\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestNoScenarioWordsInTheCode::test_the_source_holds_no_literal_target_list[\\uc55e\\ucabd **\\ud310\\ubcc4**(screen) \\u2014 \\u300c\\uc774 \\ub300\\uc0c1\\uc774 \\ucc38\\uc870 \\uc0ac\\uc9c4\\uc744 \\uc0ac\\uc57c \\ud558\\ub294\\uac00\\u300d \\ud55c \\uc790\\ub9ac.\\n\\n## \\ubb34\\uc5c7\\uc774 \\ubc14\\ub00c\\ub098\\n\\n\\uc61b \\ucd95(`generation_difficulty`)\\uc740 \\ubd84\\ub958\\uae30\\uac00 **\\ub610 \\ud55c \\ubc88 \\uc720\\ub8cc\\ub85c** \\ub0b4\\ub358 \\ud310\\ub2e8\\uc774\\uc5c8\\ub2e4.\\n\\uac19\\uc740 \\ubb3c\\uc74c\\uc744 `era_research.assess_subjects` \\uac00 **\\ud310\\ubcc4 + \\uc6d0\\uc5b4 \\uc9c8\\uc758 \\uc800\\uc791**\\uc744\\n\\ud55c \\ubc88\\uc5d0 \\ud558\\ubbc0\\ub85c, \\uadf8\\ucabd\\uc744 SOT \\ub85c \\uc0bc\\uace0 \\uc774 \\ubaa8\\ub4c8\\uc740 \\uadf8\\uac83\\uc744 **\\ub300\\uc0c1\\ub9c8\\ub2e4 \\ub3cc\\ub824 \\uc7a5\\ubd80\\ub85c\\n\\ub0a8\\uae34\\ub2e4.** \\uc0ac\\ub294 \\uac83\\uc740 \\uc5ec\\uae30\\uc11c **\\ud558\\uc9c0 \\uc54a\\ub294\\ub2e4** \\u2014 \\ud68d\\ub4dd\\uc740 \\uc911\\uc559 19.x \\ud55c \\uacf3\\uc774\\ub2e4.\\n\\n## \\uc774 \\ubaa8\\ub4c8\\uc774 \\uc9c0\\ud0a4\\ub294 \\uac83\\n\\n1. **\\ub2e4\\uc12f owner \\uc804\\ubd80** \\uc7a5\\ubd80\\uc5d0 \\ub0a8\\ub294\\ub2e4. `prop`\\xb7`character`\\xb7`location` \\uc740 \\ubd99\\uc744\\n   \\ud589\\uc774 \\uc788\\uace0, `location_part`\\xb7`outlook` \\uc740 producer(\\xa72-6.5a\\xb7\\uc544\\uc6c3\\ub8e9 \\ub2e8\\uacc4)\\uac00\\n   \\uc544\\uc9c1 \\uc5c6\\ub2e4 \\u2014 \\uadf8 \\uc0ac\\uc2e4\\uc744 **`deferred_producer` \\ub85c \\uc801\\uc9c0**, \\uc774\\ub984\\uc774 \\ub2ee\\uc558\\ub2e4\\uace0\\n   base \\uac08\\ub798\\uc5d0 \\uc62c\\ub9ac\\uc9c0 \\uc54a\\ub294\\ub2e4.\\n2. **\\ud310\\ubcc4\\uacfc \\uacb0\\uc18d\\uc740 \\ub2e4\\ub978 \\ucd95**\\uc774\\ub2e4. \\uadf8\\ub798\\uc11c \\uce78\\uc774 \\ub458\\uc774\\ub2e4 \\u2014\\n   `screen`(\\uc0ac\\uc57c \\ud558\\ub098)\\uacfc `binding`(\\uc5b4\\ub514\\uc5d0 \\ubd99\\ub098). \\ud55c \\uce78\\uc5d0 \\uc811\\uc73c\\uba74 \\u300c\\uc0ac\\uc57c \\ud558\\ub294\\ub370\\n   \\ubd99\\uc744 \\ub370\\uac00 \\uc5c6\\ub2e4\\u300d\\ub97c \\uc801\\uc744 \\uc790\\ub9ac\\uac00 \\uc5c6\\uc5b4\\uc9c4\\ub2e4.\\n3. \\uc2e0\\uc6d0\\uc740 **stable subject id + controlled owner + canonical payload sha** \\uc14b\\uc774\\ub2e4.\\n   \\ud558\\ub098\\ub77c\\ub3c4 \\uc5c6\\uc73c\\uba74 fallback \\uc73c\\ub85c \\ub0b4\\ub824\\uac04\\ub2e4 \\u2014 \\u300c**\\uc798\\ubabb \\ud569\\uce58\\ub294 \\uac83\\uc774 \\uc911\\ubcf5 \\uc870\\uc0ac\\ubcf4\\ub2e4\\n   \\ub098\\uc058\\ub2e4**\\u300d.\\n4. \\uc774\\ub984\\xb7\\ubd80\\ubd84\\ubb38\\uc790\\uc5f4\\ub85c \\ub73b\\uc744 \\uc815\\ud558\\uc9c0 \\uc54a\\ub294\\ub2e4. \\uc774 \\ubaa8\\ub4c8\\uc5d0\\ub294 \\ubb38\\uc790\\uc5f4 \\ub300\\uc870\\uac00 **\\uc5c6\\ub2e4**.\\n]",
  "tests/grounding/test_grounding_screen_step.py::TestTheFilterReadsTheScreen::test_it_asks_the_one_helper_that_joins_both_axes",
  "tests/grounding/test_grounding_screen_step.py::TestTheFilterReadsTheScreen::test_it_does_not_join_the_two_axes_itself",
  "tests/grounding/test_grounding_screen_step.py::TestTheFilterReadsTheScreen::test_it_loads_the_screen_checkpoint",
  "tests/grounding/test_grounding_screen_step.py::TestTheFilterReadsTheScreen::test_the_old_difficulty_axis_is_no_longer_the_basis",
  "tests/grounding/test_grounding_screen_step.py::TestTheFilterReadsTheScreen::test_the_old_positional_materialize_call_is_gone",
  "tests/grounding/test_grounding_screen_step.py::TestTheNewPackHasNoHandWrittenList::test_it_exists_and_the_old_one_is_untouched",
  "tests/grounding/test_grounding_screen_step.py::TestTheNewPackHasNoHandWrittenList::test_it_names_no_object_category",
  "tests/grounding/test_grounding_screen_step.py::TestTheNewPackHasNoHandWrittenList::test_it_still_asks_the_two_conditions",
  "tests/grounding/test_grounding_screen_step.py::TestTheProducerContractIsFoldedIntoResume::test_bumping_it_changes_the_hash",
  "tests/grounding/test_grounding_screen_step.py::TestTheProducerContractIsFoldedIntoResume::test_the_config_hash_reads_the_producer_contract",
  "tests/grounding/test_grounding_screen_step.py::TestTheProducerContractIsFoldedIntoResume::test_the_field_split_is_only_a_declaration_for_now",
  "tests/grounding/test_grounding_screen_step.py::TestTheStepItself::test_binding_comes_from_the_one_carry_function",
  "tests/grounding/test_grounding_screen_step.py::TestTheStepItself::test_it_carries_the_cache_forward",
  "tests/grounding/test_grounding_screen_step.py::TestTheStepItself::test_it_folds_the_assess_contract_into_the_fingerprint",
  "tests/grounding/test_grounding_screen_step.py::TestTheStepItself::test_it_records_zero_purchases",
  "tests/grounding/test_grounding_screen_step.py::TestTheStepItself::test_it_refuses_to_screen_without_world_context",
  "tests/grounding/test_grounding_screen_step.py::TestTheStepItself::test_it_saves_what_it_bought_before_judging",
  "tests/grounding/test_grounding_screen_step.py::TestTheStepItself::test_the_cap_is_counted_as_failed_too",
  "tests/grounding/test_grounding_screen_step.py::TestTheStepItself::test_the_partial_is_never_deleted_by_the_step",
  "tests/grounding/test_grounding_screen_step.py::TestTheStepItself::test_the_partial_write_is_atomic",
  "tests/grounding/test_grounding_screen_step.py::TestTheStepItself::test_unresolved_counts_as_failed",
  "tests/grounding/test_grounding_screen_step.py::TestThreeAIsInert::test_the_filter_does_not_consume_it_yet",
  "tests/grounding/test_grounding_screen_step.py::TestThreeAIsInert::test_the_new_pack_is_not_pinned_yet",
  "tests/grounding/test_grounding_screen_step.py::TestThreeAIsInert::test_the_old_channel_is_untouched",
  "tests/grounding/test_grounding_screen_step.py::TestThreeAIsInert::test_the_step_does_not_run_yet",
  "tests/grounding/test_grounding_screen_step.py::TestThreeAIsInert::test_the_step_runs_on_the_chunk_producer_now",
  "tests/grounding/test_grounding_time_control.py::TestALateWorkerCannotChangeTheRow::test_the_attempt_is_still_recorded",
  "tests/grounding/test_grounding_time_control.py::TestALateWorkerCannotChangeTheRow::test_the_late_arrival_does_not_rewrite_it",
  "tests/grounding/test_grounding_time_control.py::TestALateWorkerCannotChangeTheRow::test_the_row_says_capped_and_carries_no_result",
  "tests/grounding/test_grounding_time_control.py::TestAUserCancelIsNotSwallowed::test_it_propagates_and_buys_nothing",
  "tests/grounding/test_grounding_time_control.py::TestAUserCancelIsNotSwallowed::test_our_own_limits_are_still_folded",
  "tests/grounding/test_grounding_time_control.py::TestAUserCancelIsNotSwallowed::test_the_later_subjects_do_not_keep_running",
  "tests/grounding/test_grounding_time_control.py::TestEachSlotAttemptReservesOne::test_the_budget_stops_the_second_slot",
  "tests/grounding/test_grounding_time_control.py::TestEachSlotAttemptReservesOne::test_two_slots_take_two_units",
  "tests/grounding/test_grounding_time_control.py::TestTheBudgetOnlyCountsResearchCalls::test_an_unrelated_call_does_not_spend_it",
  "tests/grounding/test_grounding_time_control.py::TestTheBudgetOnlyCountsResearchCalls::test_the_arm_is_dropped_after_the_block",
  "tests/grounding/test_grounding_time_control.py::TestTheBudgetOnlyCountsResearchCalls::test_the_research_call_does_spend_it",
  "tests/grounding/test_grounding_time_control.py::TestTheDeadlineWrapperDoesNotConsumeALateReturn::test_the_attempt_is_still_recorded",
  "tests/grounding/test_grounding_time_control.py::TestTheDeadlineWrapperDoesNotConsumeALateReturn::test_the_late_arrival_does_not_rewrite_it",
  "tests/grounding/test_grounding_time_control.py::TestTheDeadlineWrapperDoesNotConsumeALateReturn::test_the_row_says_capped_and_carries_no_result",
  "tests/grounding/test_grounding_time_control.py::TestTheLimitKindIsDerivedFromTheType::test_a_per_call_deadline",
  "tests/grounding/test_grounding_time_control.py::TestTheLimitKindIsDerivedFromTheType::test_a_plain_provider_error_is_not_a_limit",
  "tests/grounding/test_grounding_time_control.py::TestTheLimitKindIsDerivedFromTheType::test_a_run_deadline_is_marked",
  "tests/grounding/test_grounding_time_control.py::TestTheLimitKindIsDerivedFromTheType::test_a_transmission_budget",
  "tests/grounding/test_grounding_time_control.py::TestTheLimitKindSurvivesTheRoundTrip::test_a_gap_without_a_kind_is_refused",
  "tests/grounding/test_grounding_time_control.py::TestTheLimitKindSurvivesTheRoundTrip::test_a_kind_on_another_reason_is_refused",
  "tests/grounding/test_grounding_time_control.py::TestTheLimitKindSurvivesTheRoundTrip::test_it_round_trips_through_the_revision_row[admission_limit]",
  "tests/grounding/test_grounding_time_control.py::TestTheLimitKindSurvivesTheRoundTrip::test_it_round_trips_through_the_revision_row[per_call_deadline]",
  "tests/grounding/test_grounding_time_control.py::TestTheLimitKindSurvivesTheRoundTrip::test_it_round_trips_through_the_revision_row[run_deadline]",
  "tests/grounding/test_grounding_time_control.py::TestTheLimitKindSurvivesTheRoundTrip::test_it_round_trips_through_the_revision_row[transmission_budget]",
  "tests/grounding/test_grounding_time_control.py::TestTheRunDeadlineStopsBeforeTheNetwork::test_an_earlier_stop_check_still_wins",
  "tests/grounding/test_grounding_time_control.py::TestTheRunDeadlineStopsBeforeTheNetwork::test_it_blocks_at_the_reserve_point",
  "tests/grounding/test_grounding_time_control.py::TestTheRunDeadlineStopsBeforeTheNetwork::test_the_budget_still_caps_inside_the_scope",
  "tests/grounding/test_grounding_time_control.py::TestTheRunDeadlineStopsBeforeTheNetwork::test_the_deadline_error_is_a_run_deadline_kind",
  "tests/grounding/test_grounding_time_control.py::TestTheRunDeadlineStopsBeforeTheNetwork::test_the_scope_restores_what_was_there",
  "tests/grounding/test_grounding_time_control.py::TestTheStopCheckRunsBeforeTheBudget::test_a_stopped_run_calls_the_provider_zero_times",
  "tests/grounding/test_grounding_time_control.py::TestTheStopCheckRunsBeforeTheBudget::test_a_stopped_run_spends_no_budget",
  "tests/grounding/test_grounding_v2_a0.py::TestHallucinatedQuotesAreDropped::test_a_real_quote_survives",
  "tests/grounding/test_grounding_v2_a0.py::TestHallucinatedQuotesAreDropped::test_an_invented_quote_is_dropped_with_a_reason",
  "tests/grounding/test_grounding_v2_a0.py::TestHallucinatedQuotesAreDropped::test_dropped_ones_are_kept_not_silently_lost",
  "tests/grounding/test_grounding_v2_a0.py::TestHallucinatedQuotesAreDropped::test_fingerprint_records_the_actual_judge",
  "tests/grounding/test_grounding_v2_a0.py::TestHallucinatedQuotesAreDropped::test_no_search_is_bought",
  "tests/grounding/test_grounding_v2_a0.py::TestInputIsNotSilentlyEmpty::test_empty_fulltext_is_rejected",
  "tests/grounding/test_grounding_v2_a0.py::TestInputIsNotSilentlyEmpty::test_fulltext_is_not_truncated",
  "tests/grounding/test_grounding_v2_a0.py::TestInputIsNotSilentlyEmpty::test_missing_context_is_rejected[-KR]",
  "tests/grounding/test_grounding_v2_a0.py::TestInputIsNotSilentlyEmpty::test_missing_context_is_rejected[-]",
  "tests/grounding/test_grounding_v2_a0.py::TestInputIsNotSilentlyEmpty::test_missing_context_is_rejected[1983\\ub144-]",
  "tests/grounding/test_grounding_v2_a0.py::TestModelIsActuallySol::test_step_resolves_to_sol",
  "tests/grounding/test_grounding_v2_a0.py::TestOwnerVocabularyIsOneSource::test_every_enum_value_appears_in_the_prompt",
  "tests/grounding/test_grounding_v2_a0.py::TestOwnerVocabularyIsOneSource::test_the_prompt_uses_no_value_outside_the_enum",
  "tests/grounding/test_grounding_v2_a0.py::TestOwnerVocabularyIsOneSource::test_the_rule_of_thumb_agrees_with_the_table",
  "tests/grounding/test_grounding_v2_a0.py::TestPackIsPinned::test_missing_pack_fails_closed",
  "tests/grounding/test_grounding_v2_a0.py::TestPackIsPinned::test_pack_is_complete_and_pinned",
  "tests/grounding/test_grounding_v2_a0.py::TestPackIsPinned::test_prompt_has_no_scenario_specific_terms",
  "tests/grounding/test_grounding_v2_a0.py::TestPackIsPinned::test_prompt_says_to_catch_one_shot_items",
  "tests/grounding/test_grounding_v2_a0.py::TestStrictSingleAttempt::test_default_leaves_production_behaviour_alone",
  "tests/grounding/test_grounding_v2_a0.py::TestStrictSingleAttempt::test_seal_is_passed_when_asked",
  "tests/grounding/test_grounding_v2_overlay.py::TestCompletenessCatchesDrops::test_a_dropped_candidate_is_reported",
  "tests/grounding/test_grounding_v2_overlay.py::TestCompletenessCatchesDrops::test_a_survivor_with_a_shortened_name_still_counts",
  "tests/grounding/test_grounding_v2_overlay.py::TestCompletenessCatchesDrops::test_empty_surface_form_is_skipped_not_counted_missing",
  "tests/grounding/test_grounding_v2_overlay.py::TestCompletenessCatchesDrops::test_normalization_is_letters_only",
  "tests/grounding/test_grounding_v2_overlay.py::TestCompletenessCatchesDrops::test_report_is_complete_when_all_survive",
  "tests/grounding/test_grounding_v2_overlay.py::TestCompletenessCatchesDrops::test_report_is_not_complete_when_something_is_gone",
  "tests/grounding/test_grounding_v2_overlay.py::TestFilterStepUnionIsLegacySafe::test_it_unions_rather_than_replacing",
  "tests/grounding/test_grounding_v2_overlay.py::TestFilterStepUnionIsLegacySafe::test_legacy_without_a_checkpoint_is_unchanged",
  "tests/grounding/test_grounding_v2_overlay.py::TestFilterStepUnionIsLegacySafe::test_shadow_plan_does_not_reach_the_filter",
  "tests/grounding/test_grounding_v2_overlay.py::TestFilterStepUnionIsLegacySafe::test_skip_route_is_not_protected",
  "tests/grounding/test_grounding_v2_overlay.py::TestFilterStepUnionIsLegacySafe::test_v2_plan_actually_reaches_the_filter",
  "tests/grounding/test_grounding_v2_overlay.py::TestLegacyIsByteIdentical::test_candidates_of_another_type_do_not_change_the_prompt",
  "tests/grounding/test_grounding_v2_overlay.py::TestLegacyIsByteIdentical::test_candidates_of_this_type_do_change_it",
  "tests/grounding/test_grounding_v2_overlay.py::TestLegacyIsByteIdentical::test_no_candidates_is_identical_to_not_passing_the_arg",
  "tests/grounding/test_grounding_v2_overlay.py::TestLegacyIsByteIdentical::test_the_exception_comes_after_the_exclusion_rules",
  "tests/grounding/test_grounding_v2_overlay.py::TestLegacyIsByteIdentical::test_the_overlay_tells_it_not_to_re_filter",
  "tests/grounding/test_grounding_v2_overlay.py::TestOwnerIsNotForced::test_each_owner_goes_to_its_own_type[character-character]",
  "tests/grounding/test_grounding_v2_overlay.py::TestOwnerIsNotForced::test_each_owner_goes_to_its_own_type[location-location]",
  "tests/grounding/test_grounding_v2_overlay.py::TestOwnerIsNotForced::test_each_owner_goes_to_its_own_type[prop-prop]",
  "tests/grounding/test_grounding_v2_overlay.py::TestOwnerIsNotForced::test_outlook_goes_to_no_entity_type",
  "tests/grounding/test_grounding_v2_overlay.py::TestOwnerIsNotForced::test_outlook_is_deferred_not_lost",
  "tests/grounding/test_grounding_v2_overlay.py::TestProtectedUnion::test_a_shortened_survivor_name_still_matches",
  "tests/grounding/test_grounding_v2_overlay.py::TestProtectedUnion::test_design_is_protected",
  "tests/grounding/test_grounding_v2_overlay.py::TestProtectedUnion::test_entities_without_short_id_are_skipped",
  "tests/grounding/test_grounding_v2_overlay.py::TestProtectedUnion::test_nothing_decided_protects_nothing",
  "tests/grounding/test_grounding_v2_overlay.py::TestProtectedUnion::test_research_is_protected",
  "tests/grounding/test_grounding_v2_overlay.py::TestProtectedUnion::test_skip_is_not_protected",
  "tests/grounding/test_grounding_v2_overlay.py::TestProtectedUnion::test_unresolved_is_protected",
  "tests/grounding/test_grounding_v2_plan_step.py::TestAPanelThatCollapsedIsNotAPanel::test_a_collapse_to_one_physical_model_is_blocked",
  "tests/grounding/test_grounding_v2_plan_step.py::TestAPanelThatCollapsedIsNotAPanel::test_a_healthy_panel_passes",
  "tests/grounding/test_grounding_v2_plan_step.py::TestAPanelThatCollapsedIsNotAPanel::test_a_missing_judge_is_blocked",
  "tests/grounding/test_grounding_v2_plan_step.py::TestAPanelThatCollapsedIsNotAPanel::test_an_uneven_sample_count_is_blocked",
  "tests/grounding/test_grounding_v2_plan_step.py::TestAPanelThatCollapsedIsNotAPanel::test_every_judge_column_the_gate_reads_reaches_the_fingerprint",
  "tests/grounding/test_grounding_v2_plan_step.py::TestAPanelThatCollapsedIsNotAPanel::test_the_expected_panel_comes_from_the_contract_not_the_return",
  "tests/grounding/test_grounding_v2_plan_step.py::TestAPanelThatCollapsedIsNotAPanel::test_the_real_fingerprint_has_the_column_the_gate_reads",
  "tests/grounding/test_grounding_v2_plan_step.py::TestApplicabilityIsResolvedBothWays::test_a_broken_value_is_treated_as_on",
  "tests/grounding/test_grounding_v2_plan_step.py::TestApplicabilityIsResolvedBothWays::test_runner_path[None-False]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestApplicabilityIsResolvedBothWays::test_runner_path[legacy-False]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestApplicabilityIsResolvedBothWays::test_runner_path[shadow_plan-False]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestApplicabilityIsResolvedBothWays::test_runner_path[v2-True]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestApplicabilityIsResolvedBothWays::test_static_path_reads_env_when_there_is_no_config[None-not_applicable]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestApplicabilityIsResolvedBothWays::test_static_path_reads_env_when_there_is_no_config[legacy-not_applicable]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestApplicabilityIsResolvedBothWays::test_static_path_reads_env_when_there_is_no_config[shadow_plan-not_applicable]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestApplicabilityIsResolvedBothWays::test_static_path_reads_env_when_there_is_no_config[v2-applicable]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestApplicabilityIsResolvedBothWays::test_the_rule_name_is_registered",
  "tests/grounding/test_grounding_v2_plan_step.py::TestCarryIsOwnerSafeAndOneToOne::test_a_candidate_without_owner_or_surface_is_not_indexed",
  "tests/grounding/test_grounding_v2_plan_step.py::TestCarryIsOwnerSafeAndOneToOne::test_a_different_owner_never_matches",
  "tests/grounding/test_grounding_v2_plan_step.py::TestCarryIsOwnerSafeAndOneToOne::test_a_repeated_surface_form_binds_to_neither",
  "tests/grounding/test_grounding_v2_plan_step.py::TestCarryIsOwnerSafeAndOneToOne::test_no_match_is_not_an_error",
  "tests/grounding/test_grounding_v2_plan_step.py::TestCarryIsOwnerSafeAndOneToOne::test_same_owner_matches",
  "tests/grounding/test_grounding_v2_plan_step.py::TestCarryIsOwnerSafeAndOneToOne::test_two_candidates_matching_one_name_bind_to_neither",
  "tests/grounding/test_grounding_v2_plan_step.py::TestFailClosed::test_missing_world_context_stops",
  "tests/grounding/test_grounding_v2_plan_step.py::TestFailClosed::test_no_subjects_is_not_an_error",
  "tests/grounding/test_grounding_v2_plan_step.py::TestFailClosed::test_provenance_mismatch_stops",
  "tests/grounding/test_grounding_v2_plan_step.py::TestFilterFailsClosedWithoutAPlan::test_other_modes_do_not_require_a_plan[None]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestFilterFailsClosedWithoutAPlan::test_other_modes_do_not_require_a_plan[legacy]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestFilterFailsClosedWithoutAPlan::test_other_modes_do_not_require_a_plan[shadow_plan]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestFilterFailsClosedWithoutAPlan::test_v2_with_a_legacy_plan_checkpoint_raises",
  "tests/grounding/test_grounding_v2_plan_step.py::TestFilterFailsClosedWithoutAPlan::test_v2_without_plan_checkpoint_raises",
  "tests/grounding/test_grounding_v2_plan_step.py::TestLegacyDoesNothing::test_legacy_does_not_even_need_world_context",
  "tests/grounding/test_grounding_v2_plan_step.py::TestLegacyDoesNothing::test_no_llm_call_and_no_output",
  "tests/grounding/test_grounding_v2_plan_step.py::TestOneJudgeSelfReportIsFailClosed::test_a_contract_shaped_panel_passes",
  "tests/grounding/test_grounding_v2_plan_step.py::TestOneJudgeSelfReportIsFailClosed::test_one_judge_that_reports_itself_as_the_whole_panel_is_blocked",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_a_differing_column_fails[judge_model_alias]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_a_differing_column_fails[judge_physical_model]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_a_differing_column_fails[payload_hash]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_a_differing_column_fails[prompt_version]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_an_empty_column_fails[judge_model_alias]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_an_empty_column_fails[judge_physical_model]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_an_empty_column_fails[payload_hash]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_an_empty_column_fails[prompt_version]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_an_empty_column_fails[requested_judge_alias]",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_matching_runs_pass",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_no_runs_fails",
  "tests/grounding/test_grounding_v2_plan_step.py::TestProvenanceGate::test_two_judges_are_normal_but_each_must_be_consistent",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStaleGateCoversPackAndModel::test_an_unreadable_pack_stops_instead_of_going_constant",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStaleGateCoversPackAndModel::test_both_steps_produce_a_hash",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStaleGateCoversPackAndModel::test_grounding_mode_still_moves_it",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStaleGateCoversPackAndModel::test_pack_bytes_are_folded_in",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStaleGateCoversPackAndModel::test_planner_contract_is_folded_in",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStaleGateCoversPackAndModel::test_sample_count_is_folded_in",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStaleGateCoversPackAndModel::test_schemas_are_read_as_schemas",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStaleGateCoversPackAndModel::test_target_image_model_is_folded_in",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStaleGateCoversPackAndModel::test_the_image_model_is_no_longer_folded_in",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStepIsActuallyDispatchable::test_manifest_and_dispatch_agree",
  "tests/grounding/test_grounding_v2_plan_step.py::TestStepIsActuallyDispatchable::test_production_dispatch_returns_the_step",
  "tests/grounding/test_grounding_v2_plan_step.py::TestTheContractNamesFieldsThatActuallyExist::test_the_history_block_still_keeps_them",
  "tests/grounding/test_grounding_v2_plan_step.py::TestTheContractNamesFieldsThatActuallyExist::test_the_judge_coordinates_in_the_doc_are_the_ones_the_code_writes",
  "tests/grounding/test_grounding_v2_plan_step.py::TestTheContractNamesFieldsThatActuallyExist::test_the_old_names_are_gone_from_the_doc",
  "tests/grounding/test_grounding_v2_plan_step.py::TestTheContractNamesFieldsThatActuallyExist::test_the_retired_cutoff_is_not_stated_as_current",
  "tests/grounding/test_grounding_v2_plan_step.py::TestTheJudgePanelIsInTheFingerprint::test_changing_the_panel_moves_the_fingerprint",
  "tests/grounding/test_grounding_v2_plan_step.py::TestTheJudgePanelIsInTheFingerprint::test_folding_really_is_order_independent",
  "tests/grounding/test_grounding_v2_plan_step.py::TestTheJudgePanelIsInTheFingerprint::test_the_classifier_contract_is_folded_too",
  "tests/grounding/test_grounding_v2_plan_step.py::TestTheJudgePanelIsInTheFingerprint::test_the_panel_order_is_not_an_identity",
  "tests/grounding/test_grounding_v2_plan_step.py::TestTheJudgePanelIsInTheFingerprint::test_the_same_panel_gives_the_same_fingerprint",
  "tests/grounding/test_grounding_v2_plan_step.py::TestV2WritesWhatTheFilterReads::test_no_search_is_bought",
  "tests/grounding/test_grounding_v2_plan_step.py::TestV2WritesWhatTheFilterReads::test_samples_are_folded_not_single",
  "tests/grounding/test_grounding_v2_plan_step.py::TestV2WritesWhatTheFilterReads::test_v2_writes_the_key_the_filter_reads",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock1ModelIsActuallySol::test_step_resolves_to_sol_alias",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock1ModelIsActuallySol::test_unregistered_step_would_fall_back",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock2TargetIsInThePayload::test_changing_target_moves_payload_hash",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock2TargetIsInThePayload::test_coords_appear_in_prompt",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock2TargetIsNotInThePayloadAnyMore::test_the_call_does_not_even_accept_the_coords",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock2TargetIsNotInThePayloadAnyMore::test_the_fingerprint_no_longer_carries_them",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock2TargetIsNotInThePayloadAnyMore::test_the_image_model_block_is_gone_from_the_prompt",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock3JudgeProvenanceIsTheRealModel::test_no_usage_reported_does_not_become_a_lie",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock3JudgeProvenanceIsTheRealModel::test_records_the_model_the_response_reported",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_a_no_from_the_classifier_does_not_close_it",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_externally_grounded_easy_but_unconfident_is_not_skipped",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_externally_grounded_easy_skips_regardless_of_confidence",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_externally_grounded_goes_to_sourced_screening",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_externally_grounded_with_no_discriminability_is_just_not_recognizable",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_fictional_is_design_not_skip_and_stays_sealed",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_fictional_is_design_regardless_of_confidence",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_fictional_with_low_confidence_is_not_designed",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_fictional_with_low_confidence_is_researched_not_designed",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_out_of_range_confidence_is_unresolved[-0.1]",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_out_of_range_confidence_is_unresolved[1.1]",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_out_of_range_confidence_is_unresolved[True]",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_out_of_range_confidence_is_unresolved[\\ub192\\uc74c]",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_prompt_documents_the_routing_enums",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock4ContractIsImplemented::test_uncertain_discriminability_is_researched",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock5Bijection::test_duplicate_input_id_is_rejected",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock5Bijection::test_duplicate_response_collapses_to_one_unresolved",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock5Bijection::test_one_response_per_input_is_the_normal_case",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock6RawBytesHash::test_content_is_still_trimmed_for_the_loader",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock6RawBytesHash::test_exact_version_db_row_wins_and_moves_the_fingerprint",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock6RawBytesHash::test_hash_matches_the_file_bytes_the_ratchet_uses",
  "tests/grounding/test_grounding_v2_stage2.py::TestBlock6RawBytesHash::test_schema_hash_is_bytes_not_reserialized_json",
  "tests/grounding/test_grounding_v2_stage2.py::TestBothAxesWarnAgainstMuseumPrecision::test_both_axes_now_carry_the_same_warning",
  "tests/grounding/test_grounding_v2_stage2.py::TestBothAxesWarnAgainstMuseumPrecision::test_it_says_no_is_a_legitimate_answer_there",
  "tests/grounding/test_grounding_v2_stage2.py::TestBothAxesWarnAgainstMuseumPrecision::test_the_dont_close_with_no_advice_is_scoped_to_visibility",
  "tests/grounding/test_grounding_v2_stage2.py::TestBothAxesWarnAgainstMuseumPrecision::test_the_horizontal_axis_says_it_is_not_about_dating",
  "tests/grounding/test_grounding_v2_stage2.py::TestBothAxesWarnAgainstMuseumPrecision::test_the_three_axes_are_kept_apart",
  "tests/grounding/test_grounding_v2_stage2.py::TestClassifier::test_fingerprint_keeps_raw_and_payload_hash_apart",
  "tests/grounding/test_grounding_v2_stage2.py::TestClassifier::test_no_subjects_makes_no_call",
  "tests/grounding/test_grounding_v2_stage2.py::TestClassifier::test_unknown_id_is_not_accepted",
  "tests/grounding/test_grounding_v2_stage2.py::TestClassifier::test_unreturned_subject_is_marked_missing_not_dropped",
  "tests/grounding/test_grounding_v2_stage2.py::TestEndToEndClassifyThenPlan::test_every_planner_required_field_survives_the_classifier",
  "tests/grounding/test_grounding_v2_stage2.py::TestEndToEndClassifyThenPlan::test_normal_generic_answer_now_goes_to_sourced_screening",
  "tests/grounding/test_grounding_v2_stage2.py::TestEndToEndClassifyThenPlan::test_normal_generic_answer_routes_to_skip",
  "tests/grounding/test_grounding_v2_stage2.py::TestEndToEndClassifyThenPlan::test_normal_grounded_answer_routes_to_research_not_unresolved",
  "tests/grounding/test_grounding_v2_stage2.py::TestEndToEndClassifyThenPlan::test_provenance_rides_along_without_gating_the_route",
  "tests/grounding/test_grounding_v2_stage2.py::TestGenerationDifficultyOpensRetentionNotRouting::test_a_missing_value_does_not_silently_become_not_hard",
  "tests/grounding/test_grounding_v2_stage2.py::TestGenerationDifficultyOpensRetentionNotRouting::test_an_enum_violation_closes_to_unresolved",
  "tests/grounding/test_grounding_v2_stage2.py::TestGenerationDifficultyOpensRetentionNotRouting::test_hard_opens_reference_acquisition",
  "tests/grounding/test_grounding_v2_stage2.py::TestGenerationDifficultyOpensRetentionNotRouting::test_not_hard_does_not",
  "tests/grounding/test_grounding_v2_stage2.py::TestGenerationDifficultyOpensRetentionNotRouting::test_the_acquisition_list_is_only_the_hard_ones",
  "tests/grounding/test_grounding_v2_stage2.py::TestGenerationDifficultyOpensRetentionNotRouting::test_the_planner_requires_the_field",
  "tests/grounding/test_grounding_v2_stage2.py::TestGenerationDifficultyOpensRetentionNotRouting::test_the_route_does_not_look_at_it",
  "tests/grounding/test_grounding_v2_stage2.py::TestGenerationDifficultyOpensRetentionNotRouting::test_uncertain_is_treated_as_hard",
  "tests/grounding/test_grounding_v2_stage2.py::TestPlanAggregate::test_counts_and_zero_search",
  "tests/grounding/test_grounding_v2_stage2.py::TestPluralityIsNotAMajority::test_three_of_six_does_not_decide_the_axis",
  "tests/grounding/test_grounding_v2_stage2.py::TestPromptPack::test_missing_stem_fails_closed",
  "tests/grounding/test_grounding_v2_stage2.py::TestPromptPack::test_pack_is_complete_and_pinned",
  "tests/grounding/test_grounding_v2_stage2.py::TestPromptPack::test_resolve_effective_rejects_unknown_kind",
  "tests/grounding/test_grounding_v2_stage2.py::TestPromptPack::test_resolve_effective_separates_source_and_locator",
  "tests/grounding/test_grounding_v2_stage2.py::TestPromptPack::test_schema_requires_every_field_planner_needs",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_an_explicit_uncertain_axis_still_researches",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_confidence_does_not_change_the_route",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_exact_variant_forces_research_even_when_called_easy",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_generic_is_detailed_not_researched",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_generic_no_longer_skips_before_search",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_high_confidence_still_skips",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_low_confidence_never_closes_anything",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_medium_and_up_is_researched[hard]",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_medium_and_up_is_researched[medium]",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_medium_and_up_is_researched[very_hard]",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_the_axes_still_decide",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_the_measured_wobble_band_does_not_pass",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_the_threshold_constant_is_gone",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_uncertain_is_researched_not_closed",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_unique_identity_forces_research",
  "tests/grounding/test_grounding_v2_stage2.py::TestRoute::test_visibility_uncertain_is_researched",
  "tests/grounding/test_grounding_v2_stage2.py::TestSpecificityVsClass::test_fictional_with_exact_specificity_is_not_the_same_case",
  "tests/grounding/test_grounding_v2_stage2.py::TestSpecificityVsClass::test_generic_no_longer_short_circuits[branded_family]",
  "tests/grounding/test_grounding_v2_stage2.py::TestSpecificityVsClass::test_generic_no_longer_short_circuits[generic_class]",
  "tests/grounding/test_grounding_v2_stage2.py::TestSpecificityVsClass::test_generic_with_exact_specificity_is_a_real_inconsistency[exact_variant]",
  "tests/grounding/test_grounding_v2_stage2.py::TestSpecificityVsClass::test_generic_with_exact_specificity_is_a_real_inconsistency[unique_identity]",
  "tests/grounding/test_grounding_v2_stage2.py::TestSpecificityVsClass::test_generic_with_loose_specificity_is_still_skipped[branded_family]",
  "tests/grounding/test_grounding_v2_stage2.py::TestSpecificityVsClass::test_generic_with_loose_specificity_is_still_skipped[generic_class]",
  "tests/grounding/test_grounding_v2_stage2.py::TestSpecificityVsClass::test_prompt_says_what_the_matrix_actually_does",
  "tests/grounding/test_grounding_v2_stage2.py::TestSubjectId::test_a0_pack_bump_keeps_same_subject",
  "tests/grounding/test_grounding_v2_stage2.py::TestSubjectId::test_blank_field_is_rejected[   ]",
  "tests/grounding/test_grounding_v2_stage2.py::TestSubjectId::test_blank_field_is_rejected[]",
  "tests/grounding/test_grounding_v2_stage2.py::TestSubjectId::test_deterministic_across_reruns",
  "tests/grounding/test_grounding_v2_stage2.py::TestSubjectId::test_episode_scoped",
  "tests/grounding/test_grounding_v2_stage2.py::TestSubjectId::test_normalization_is_letters_only_not_meaning",
  "tests/grounding/test_grounding_v2_stage2.py::TestSubjectId::test_starts_unbound",
  "tests/grounding/test_grounding_v2_stage2.py::TestSubjectId::test_surface_form_not_ordinal",
  "tests/grounding/test_grounding_v2_stage2.py::TestThePromptNoLongerAsksForTheRetiredAxes::test_it_does_not_ask_for_the_two_axes",
  "tests/grounding/test_grounding_v2_stage2.py::TestThePromptNoLongerAsksForTheRetiredAxes::test_it_says_the_axis_does_not_decide_research",
  "tests/grounding/test_grounding_v2_stage2.py::TestThePromptNoLongerAsksForTheRetiredAxes::test_it_says_why_they_are_gone",
  "tests/grounding/test_grounding_v2_stage2.py::TestThePromptNoLongerAsksForTheRetiredAxes::test_it_still_tells_what_to_answer",
  "tests/grounding/test_grounding_v2_stage2.py::TestThePromptNoLongerAsksForTheRetiredAxes::test_the_generation_difficulty_axis_is_back",
  "tests/grounding/test_grounding_v2_stage2.py::TestThePromptNoLongerAsksForTheRetiredAxes::test_the_old_five_step_ordinal_is_not_back",
  "tests/grounding/test_grounding_v2_stage2.py::TestThePromptNoLongerAsksForTheRetiredAxes::test_the_recognisability_axis_stays_retired",
  "tests/grounding/test_grounding_v2_stage2.py::TestThePromptNoLongerAsksForTheRetiredAxes::test_the_schema_does_not_require_them",
  "tests/grounding/test_grounding_v2_stage2.py::TestThePromptNoLongerAsksForTheRetiredAxes::test_the_uncertainty_channel_is_scoped_to_b",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheThreeWayBoundaryIsSpelledOut::test_generic_is_defined_by_era_not_by_naming",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheThreeWayBoundaryIsSpelledOut::test_it_points_specificity_at_the_right_field",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheThreeWayBoundaryIsSpelledOut::test_it_says_an_unnamed_instance_is_not_fictional",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheThreeWayBoundaryIsSpelledOut::test_the_first_question_is_whether_the_kind_exists",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheThreeWayBoundaryIsSpelledOut::test_the_person_and_their_clothes_are_still_apart",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheTwoByTwo::test_difficulty_no_longer_decides",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheTwoByTwo::test_exact_variant_forces_research_but_b_no_still_skips",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheTwoByTwo::test_exact_variant_forces_research_only_inside_the_recognizable_corner",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheTwoByTwo::test_fictional_with_exact_variant_is_not_a_contradiction",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheTwoByTwo::test_not_recognizable_a_no_is_skipped_regardless_of_difficulty",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheTwoByTwo::test_not_recognizable_b_no_is_skipped_regardless_of_difficulty",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheTwoByTwo::test_recognizable_and_no_evidence_is_researched",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheTwoByTwo::test_recognizable_but_model_knows_it_is_skipped",
  "tests/grounding/test_grounding_v2_stage2.py::TestTheTwoByTwo::test_the_classifier_a_no_longer_decides",
  "tests/grounding/test_grounding_v2_stage2.py::TestTieOnlyMattersWhenItChangesTheAnswer::test_a_difficulty_tie_is_always_immaterial_now",
  "tests/grounding/test_grounding_v2_stage2.py::TestTieOnlyMattersWhenItChangesTheAnswer::test_a_retired_axis_does_not_even_enter_the_fold",
  "tests/grounding/test_grounding_v2_stage2.py::TestTieOnlyMattersWhenItChangesTheAnswer::test_a_tie_that_does_change_the_answer_still_closes_to_research",
  "tests/grounding/test_grounding_v2_stage2.py::TestTieOnlyMattersWhenItChangesTheAnswer::test_codex_counterexample_is_untouched",
  "tests/grounding/test_grounding_v2_stage2.py::TestTieOnlyMattersWhenItChangesTheAnswer::test_the_routing_axes_table_no_longer_lists_them",
  "tests/grounding/test_grounding_v2_stage2.py::TestTieOnlyMattersWhenItChangesTheAnswer::test_unanimous_skip_survives_an_immaterial_difficulty_tie",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_a_retired_axis_with_a_bogus_value_is_ignored",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_empty_list_counts_as_missing",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_enum_violation_is_unresolved",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_missing_field_is_unresolved[confidence]",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_missing_field_is_unresolved[difficulty]",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_missing_field_is_unresolved[discriminability]",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_missing_field_is_unresolved[generation]",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_missing_field_is_unresolved[grounding_class]",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_missing_field_is_unresolved[likely_failure_modes]",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_missing_field_is_unresolved[locale]",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_missing_field_is_unresolved[referent_specificity]",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_missing_field_is_unresolved[visible_discriminators]",
  "tests/grounding/test_grounding_v2_stage2.py::TestUnresolvedIsNotSkip::test_skip_is_not_grounding_controlled",
  "tests/grounding/test_grounding_v2_stage2.py::TestVoteAndFoldAreAlwaysCompared::test_a_tie_with_no_research_stays_unresolved",
  "tests/grounding/test_grounding_v2_stage2.py::TestVoteAndFoldAreAlwaysCompared::test_every_order_of_those_six_gives_the_same_answer",
  "tests/grounding/test_grounding_v2_stage2.py::TestVoteAndFoldAreAlwaysCompared::test_the_codex_counterexample",
  "tests/grounding/test_grounding_v2_stage2.py::TestVoteAndFoldAreAlwaysCompared::test_the_vote_verdict_has_exactly_one_home",
  "tests/grounding/test_grounding_v2_stage3.py::TestBothPathsTakeTheSameCallable::test_same_entities_and_candidates_give_identical_output",
  "tests/grounding/test_grounding_v2_stage3.py::TestBothPathsTakeTheSameCallable::test_the_step_and_the_tool_call_one_builder",
  "tests/grounding/test_grounding_v2_stage3.py::TestEffectiveTargetFollowsTheBackend::test_backend_alias_is_not_reported_as_a_version",
  "tests/grounding/test_grounding_v2_stage3.py::TestEffectiveTargetFollowsTheBackend::test_blank_model_setting_stops",
  "tests/grounding/test_grounding_v2_stage3.py::TestEffectiveTargetFollowsTheBackend::test_grok2_reports_xai_not_gemini",
  "tests/grounding/test_grounding_v2_stage3.py::TestEffectiveTargetFollowsTheBackend::test_nb2_reports_gemini",
  "tests/grounding/test_grounding_v2_stage3.py::TestEffectiveTargetFollowsTheBackend::test_unknown_backend_stops_instead_of_guessing",
  "tests/grounding/test_grounding_v2_stage3.py::TestIdsAreTheRealScopeNotThePrefix::test_a_prefix_and_the_full_uuid_give_different_ids",
  "tests/grounding/test_grounding_v2_stage3.py::TestIdsAreTheRealScopeNotThePrefix::test_the_tool_resolves_the_real_ids_from_the_path",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_config_beats_env",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_default_is_legacy",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_exactly_one_accepted_mode_reaches_the_chunk_producer",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_exactly_three_modes",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_no_accepted_mode_reaches_the_chunk_producer",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_no_project_or_env_actually_selects_the_new_mode",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_only_the_chunk_mode_uses_the_chunk_producer",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_only_v2_buys_v2_research",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_shadow_plan_never_touches_production_fingerprint",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_the_accepted_value_uses_the_chunk_producer",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_the_catalog_only_names_it_inside_the_activation_gate",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_the_modes_are_exactly_these",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_the_new_mode_is_not_wired_anywhere_yet",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_the_new_mode_is_wired_only_where_activation_needs_it",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_the_old_and_new_producers_never_run_together",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_the_planned_value_is_declared_but_not_accepted",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_the_planned_value_would_use_the_chunk_producer",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_the_two_v2_modes_have_different_fingerprints",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_the_value_moved_from_planned_to_accepted",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_typo_fails_closed_not_silently_legacy[  ]",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_typo_fails_closed_not_silently_legacy[SHADOW]",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_typo_fails_closed_not_silently_legacy[]",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_typo_fails_closed_not_silently_legacy[shadowplan]",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_typo_fails_closed_not_silently_legacy[true]",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_which_accepted_modes_buy_v2_research",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeEnum::test_which_modes_buy_v2_research",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeSemanticsAreNarrow::test_only_shadow_plan_buys_nothing",
  "tests/grounding/test_grounding_v2_stage3.py::TestModeSemanticsAreNarrow::test_v2_predicate_is_named_for_v2_research_only",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_a_fixed_installation_binds_to_a_stored_prop",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_a_fixed_installation_never_binds_to_a_stored_prop",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_no_entity_is_ever_silently_dropped",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_one_candidate_taken_by_two_entities_binds_to_neither",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_the_person_and_what_they_wear_never_bind[character-outlook]",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_the_person_and_what_they_wear_never_bind[character-prop]",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_the_person_and_what_they_wear_never_bind[location-outlook]",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_the_person_and_what_they_wear_never_bind[location-prop]",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_the_person_and_what_they_wear_never_bind[location_part-prop]",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_the_person_and_what_they_wear_never_bind[outlook-character]",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_the_person_and_what_they_wear_never_bind[prop-location_part]",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_the_person_and_what_they_wear_never_bind[prop-outlook]",
  "tests/grounding/test_grounding_v2_stage3.py::TestOwnerGroupsAndContestedCandidates::test_two_entities_that_hit_different_candidates_both_bind",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_builds_subjects_from_saved_checkpoint",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_classifier_calls_are_counted_separately_from_search",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_corrupt_checkpoint_fails_closed",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_digest_catches_a_real_production_change",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_digest_covers_non_manifest_files_too",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_digest_ignores_the_shadow_step_itself",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_no_classifier_leaves_every_subject_undecided",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_no_source_checkpoint_fails_closed",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_records_the_model_that_actually_judged",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_replay_makes_no_search_and_changes_nothing",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_replay_takes_only_shadow_plan[legacy]",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_replay_takes_only_shadow_plan[v2]",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_the_count_is_named_logical_not_transmissions",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowReplay::test_writing_the_shadow_checkpoint_leaves_production_alone",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowRerunKeepsEvidence::test_archives_do_not_count_as_production_change",
  "tests/grounding/test_grounding_v2_stage3.py::TestShadowRerunKeepsEvidence::test_second_run_archives_the_first",
  "tests/grounding/test_grounding_v2_stage3.py::TestShapeFailsClosed::test_non_completed_status_is_rejected[None]",
  "tests/grounding/test_grounding_v2_stage3.py::TestShapeFailsClosed::test_non_completed_status_is_rejected[]",
  "tests/grounding/test_grounding_v2_stage3.py::TestShapeFailsClosed::test_non_completed_status_is_rejected[failed]",
  "tests/grounding/test_grounding_v2_stage3.py::TestShapeFailsClosed::test_non_completed_status_is_rejected[partial]",
  "tests/grounding/test_grounding_v2_stage3.py::TestShapeFailsClosed::test_non_completed_status_is_rejected[running]",
  "tests/grounding/test_grounding_v2_stage3.py::TestShapeFailsClosed::test_rules_checkpoint_must_be_completed_too",
  "tests/grounding/test_grounding_v2_stage3.py::TestShapeFailsClosed::test_wrong_filtered_entities_shape_is_rejected[3]",
  "tests/grounding/test_grounding_v2_stage3.py::TestShapeFailsClosed::test_wrong_filtered_entities_shape_is_rejected[None]",
  "tests/grounding/test_grounding_v2_stage3.py::TestShapeFailsClosed::test_wrong_filtered_entities_shape_is_rejected[\\ubb38\\uc790\\uc5f4]",
  "tests/grounding/test_grounding_v2_stage3.py::TestShapeFailsClosed::test_wrong_filtered_entities_shape_is_rejected[bad1]",
  "tests/grounding/test_grounding_v2_stage3.py::TestTheMeasurementBasisIsNeverLost::test_an_empty_population_stops_instead_of_returning",
  "tests/grounding/test_grounding_v2_stage3.py::TestTheMeasurementBasisIsNeverLost::test_every_return_carries_it[ents0]",
  "tests/grounding/test_grounding_v2_stage3.py::TestTheMeasurementBasisIsNeverLost::test_every_return_carries_it[ents1]",
  "tests/grounding/test_grounding_v2_stage3.py::TestTheMeasurementBasisIsNeverLost::test_every_return_carries_it[ents2]",
  "tests/grounding/test_grounding_v2_stage3.py::TestTheMeasurementBasisIsNeverLost::test_replay_output_carries_it_too",
  "tests/grounding/test_grounding_v2_stage3.py::TestTheToolReadsTheSamePopulationProductionDoes::test_it_reads_merge_not_filter",
  "tests/grounding/test_grounding_v2_stage3.py::TestTheToolReadsTheSamePopulationProductionDoes::test_missing_merge_stops_instead_of_falling_back",
  "tests/grounding/test_grounding_v2_stage3.py::TestTheToolReadsTheSamePopulationProductionDoes::test_the_source_step_is_the_one_production_reads",
  "tests/grounding/test_grounding_v2_stage3.py::TestToolAndProductionShareOneCarry::test_both_call_the_same_function",
  "tests/grounding/test_grounding_v2_stage3.py::TestToolAndProductionShareOneCarry::test_the_same_input_gives_the_same_subjects",
  "tests/grounding/test_grounding_v2_stage3.py::TestToolAndProductionShareOneCarry::test_without_a0_the_basis_is_recorded_not_hidden",
  "tests/grounding/test_grounding_v2_stage3.py::TestWorldContextReachesTheJudge::test_blank_era_or_region_fails_closed[-\\ub300\\ud55c\\ubbfc\\uad6d]",
  "tests/grounding/test_grounding_v2_stage3.py::TestWorldContextReachesTheJudge::test_blank_era_or_region_fails_closed[-]",
  "tests/grounding/test_grounding_v2_stage3.py::TestWorldContextReachesTheJudge::test_blank_era_or_region_fails_closed[1983\\ub144-]",
  "tests/grounding/test_grounding_v2_stage3.py::TestWorldContextReachesTheJudge::test_changing_era_moves_the_payload_hash",
  "tests/grounding/test_grounding_v2_stage3.py::TestWorldContextReachesTheJudge::test_era_and_region_appear_in_the_prompt",
  "tests/grounding/test_grounding_v2_stage3.py::TestWorldContextReachesTheJudge::test_missing_era_is_marked_not_silently_empty",
  "tests/grounding/test_grounding_v2_stage3.py::TestWorldContextReachesTheJudge::test_missing_rules_checkpoint_fails_closed",
  "tests/grounding/test_grounding_v2_stage3.py::TestWorldContextReachesTheJudge::test_no_classifier_does_not_need_the_rules_checkpoint",
  "tests/grounding/test_grounding_v2_stage3.py::TestWorldContextReachesTheJudge::test_prompt_tells_the_judge_not_to_infer_generic_from_a_silent_description",
  "tests/grounding/test_grounding_v2_stage3.py::TestWorldContextReachesTheJudge::test_replayer_reads_era_from_the_saved_rules_checkpoint",
  "tests/grounding/test_grounding_v2_stage3b.py::TestEnvBranchIsFolded::test_config_key_beats_env",
  "tests/grounding/test_grounding_v2_stage3b.py::TestEnvBranchIsFolded::test_env_free_modes_without_key_stay_identical[legacy]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestEnvBranchIsFolded::test_env_free_modes_without_key_stay_identical[shadow_plan]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestEnvBranchIsFolded::test_env_typo_fails_closed",
  "tests/grounding/test_grounding_v2_stage3b.py::TestEnvBranchIsFolded::test_env_v2_without_key_moves_the_hash",
  "tests/grounding/test_grounding_v2_stage3b.py::TestEnvBranchIsFolded::test_none_value_falls_through_to_env",
  "tests/grounding/test_grounding_v2_stage3b.py::TestFingerprintValue::test_case_and_space_are_normalized_for_known_values",
  "tests/grounding/test_grounding_v2_stage3b.py::TestFingerprintValue::test_free_modes_are_dropped",
  "tests/grounding/test_grounding_v2_stage3b.py::TestFingerprintValue::test_none_is_dropped",
  "tests/grounding/test_grounding_v2_stage3b.py::TestFingerprintValue::test_typo_fails_closed_here_too[  ]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestFingerprintValue::test_typo_fails_closed_here_too[]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestFingerprintValue::test_typo_fails_closed_here_too[shadowplan]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestFingerprintValue::test_typo_fails_closed_here_too[true]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestFingerprintValue::test_typo_fails_closed_here_too[v_2]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestFingerprintValue::test_v2_is_kept",
  "tests/grounding/test_grounding_v2_stage3b.py::TestNothingElseChanged::test_caller_config_is_not_mutated",
  "tests/grounding/test_grounding_v2_stage3b.py::TestNothingElseChanged::test_empty_and_none_are_unchanged",
  "tests/grounding/test_grounding_v2_stage3b.py::TestNothingElseChanged::test_hash_is_still_sixteen_hex",
  "tests/grounding/test_grounding_v2_stage3b.py::TestNothingElseChanged::test_key_order_still_does_not_matter",
  "tests/grounding/test_grounding_v2_stage3b.py::TestNothingElseChanged::test_other_keys_still_move_the_hash[model]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestNothingElseChanged::test_other_keys_still_move_the_hash[project_id]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestNothingElseChanged::test_other_keys_still_move_the_hash[still_image_backend]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestNothingElseChanged::test_other_keys_still_move_the_hash[style_rules]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestNothingElseChanged::test_other_keys_still_move_the_hash[target_scenes]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestNothingElseChanged::test_unhashable_values_are_still_deterministic",
  "tests/grounding/test_grounding_v2_stage3b.py::TestPublicRunActuallyStops::test_a_valid_mode_gets_past_the_preflight",
  "tests/grounding/test_grounding_v2_stage3b.py::TestPublicRunActuallyStops::test_invalid_config_mode_stops_public_run_touching_nothing",
  "tests/grounding/test_grounding_v2_stage3b.py::TestPublicRunActuallyStops::test_invalid_env_mode_stops_public_run_touching_nothing",
  "tests/grounding/test_grounding_v2_stage3b.py::TestShadowDoesNotStaleButV2Does::test_it_agrees_with_the_touches_production_fingerprint_contract",
  "tests/grounding/test_grounding_v2_stage3b.py::TestShadowDoesNotStaleButV2Does::test_no_key_equals_legacy_equals_shadow_plan",
  "tests/grounding/test_grounding_v2_stage3b.py::TestShadowDoesNotStaleButV2Does::test_v2_differs_from_both_free_modes",
  "tests/grounding/test_grounding_v2_stage3b.py::TestShadowDoesNotStaleButV2Does::test_v2_moves_the_hash",
  "tests/grounding/test_grounding_v2_stage3b.py::TestTypoStopsBeforeAnySpending::test_missing_key_passes",
  "tests/grounding/test_grounding_v2_stage3b.py::TestTypoStopsBeforeAnySpending::test_preflight_runs_at_the_front_of_run_not_in_validate_mode",
  "tests/grounding/test_grounding_v2_stage3b.py::TestTypoStopsBeforeAnySpending::test_the_expensive_step_still_gets_the_preflight",
  "tests/grounding/test_grounding_v2_stage3b.py::TestTypoStopsBeforeAnySpending::test_valid_modes_pass_the_preflight[legacy]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestTypoStopsBeforeAnySpending::test_valid_modes_pass_the_preflight[shadow_plan]",
  "tests/grounding/test_grounding_v2_stage3b.py::TestTypoStopsBeforeAnySpending::test_valid_modes_pass_the_preflight[v2]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestA0IdentityIsTheRealPayloadToo::test_a0_has_the_same_free_planner_as_the_classifier",
  "tests/grounding/test_grounding_v2_stage3c.py::TestA0IdentityIsTheRealPayloadToo::test_a_second_crash_does_not_lose_the_first_runs_calls",
  "tests/grounding/test_grounding_v2_stage3c.py::TestA0IdentityIsTheRealPayloadToo::test_it_matches_what_collect_candidates_actually_sends",
  "tests/grounding/test_grounding_v2_stage3c.py::TestA0IdentityIsTheRealPayloadToo::test_the_fingerprint_keeps_requested_and_actual_apart",
  "tests/grounding/test_grounding_v2_stage3c.py::TestA0IdentityIsTheRealPayloadToo::test_the_manifest_default_is_what_it_reads",
  "tests/grounding/test_grounding_v2_stage3c.py::TestA0IdentityIsTheRealPayloadToo::test_the_requested_alias_moves_the_identity",
  "tests/grounding/test_grounding_v2_stage3c.py::TestA0IdentityIsTheRealPayloadToo::test_the_tool_folds_the_payload_and_the_scope",
  "tests/grounding/test_grounding_v2_stage3c.py::TestAxesAreFoldedBeforeRouting::test_a_split_axis_is_recorded",
  "tests/grounding/test_grounding_v2_stage3c.py::TestAxesAreFoldedBeforeRouting::test_a_tied_axis_closes_toward_research",
  "tests/grounding/test_grounding_v2_stage3c.py::TestAxesAreFoldedBeforeRouting::test_a_tied_axis_without_uncertain_uses_the_research_ward_value",
  "tests/grounding/test_grounding_v2_stage3c.py::TestAxesAreFoldedBeforeRouting::test_a_tied_class_with_no_research_ward_value_is_unresolved",
  "tests/grounding/test_grounding_v2_stage3c.py::TestAxesAreFoldedBeforeRouting::test_agreeing_samples_still_fold_normally",
  "tests/grounding/test_grounding_v2_stage3c.py::TestAxesAreFoldedBeforeRouting::test_the_conflict_is_still_constructible_at_four",
  "tests/grounding/test_grounding_v2_stage3c.py::TestAxesAreFoldedBeforeRouting::test_the_counterexample_does_not_slip_through_as_skip",
  "tests/grounding/test_grounding_v2_stage3c.py::TestChangedMeaningMovesTheFingerprint::test_contract_versions_are_folded_in[app.modules.pipeline.grounding_carry-CARRY_CONTRACT_VERSION]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestChangedMeaningMovesTheFingerprint::test_contract_versions_are_folded_in[app.modules.pipeline.grounding_planner-PLANNER_CONTRACT_VERSION]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestChangedMeaningMovesTheFingerprint::test_the_pack_bytes_move_it_too",
  "tests/grounding/test_grounding_v2_stage3c.py::TestChangedMeaningMovesTheFingerprint::test_the_versions_moved_for_this_change",
  "tests/grounding/test_grounding_v2_stage3c.py::TestConfidenceIsDiagnosticNotADecider::test_a_low_number_alone_changes_nothing",
  "tests/grounding/test_grounding_v2_stage3c.py::TestConfidenceIsDiagnosticNotADecider::test_confidence_is_still_kept_for_diagnosis",
  "tests/grounding/test_grounding_v2_stage3c.py::TestConfidenceIsDiagnosticNotADecider::test_no_split_means_no_axis_split_entry",
  "tests/grounding/test_grounding_v2_stage3c.py::TestConfidenceIsDiagnosticNotADecider::test_the_categorical_majority_survives",
  "tests/grounding/test_grounding_v2_stage3c.py::TestConfidenceIsDiagnosticNotADecider::test_the_split_is_recorded_per_axis",
  "tests/grounding/test_grounding_v2_stage3c.py::TestEveryPaidCallIsSavedBeforeTheNextOne::test_a_crash_midway_still_leaves_what_was_already_bought",
  "tests/grounding/test_grounding_v2_stage3c.py::TestEveryPaidCallIsSavedBeforeTheNextOne::test_the_a0_call_carries_an_identity_too",
  "tests/grounding/test_grounding_v2_stage3c.py::TestEveryPaidCallIsSavedBeforeTheNextOne::test_the_production_call_hands_back_each_sample",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.3-difficulty]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.3-discriminability]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.3-visibility_intent]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.58-difficulty]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.58-discriminability]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.58-visibility_intent]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.79-difficulty]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.79-discriminability]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.79-visibility_intent]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.9-difficulty]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.9-discriminability]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_an_uncertain_axis_is_research_at_any_confidence[0.9-visibility_intent]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_low_confidence_alone_is_unresolved[0.3]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_low_confidence_alone_is_unresolved[0.79]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainBeatsLowConfidence::test_the_two_are_told_apart_in_the_prompt",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_a_retired_axis_being_uncertain_still_lands_in_research[0.3-difficulty]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_a_retired_axis_being_uncertain_still_lands_in_research[0.3-discriminability]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_a_retired_axis_being_uncertain_still_lands_in_research[0.9-difficulty]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_a_retired_axis_being_uncertain_still_lands_in_research[0.9-discriminability]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.3-difficulty]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.3-discriminability]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.3-visibility_intent]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.58-difficulty]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.58-discriminability]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.58-visibility_intent]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.79-difficulty]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.79-discriminability]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.79-visibility_intent]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.9-difficulty]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.9-discriminability]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_axis_is_research_at_any_confidence[0.9-visibility_intent]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_b_is_research_at_any_confidence[0.3]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_b_is_research_at_any_confidence[0.58]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_b_is_research_at_any_confidence[0.79]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_an_uncertain_b_is_research_at_any_confidence[0.9]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_low_confidence_alone_does_not_change_the_route[0.3]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_low_confidence_alone_does_not_change_the_route[0.79]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestExplicitUncertainIsTheUncertaintyChannel::test_the_two_are_told_apart_in_the_prompt",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_a_route_split_is_reported_but_the_axes_still_decide",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_an_axis_with_no_majority_is_undecided",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_no_dead_fold_helper_remains",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_split_is_reported_as_unstable",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_the_scorer_counts_a_split_as_undecided",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_the_scorer_counts_a_split_as_undecided[non-research-\\ud754\\ub4e4\\ub9bc:skip-\\ubbf8\\ud655\\uc815]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_the_scorer_counts_a_split_as_undecided[non-research-research-\\u2605\\uc5b4\\uae0b\\ub0a8]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_the_scorer_counts_a_split_as_undecided[non-research-skip-\\ub9de\\uc74c]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_the_scorer_counts_a_split_as_undecided[research-\\ud45c\\ubcf8 \\uc5c6\\uc74c-\\ubbf8\\ud655\\uc815]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_the_scorer_counts_a_split_as_undecided[research-\\ud6c4\\ubcf4\\uc5d0 \\uc5c6\\uc74c-\\ubbf8\\ud655\\uc815]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_the_scorer_counts_a_split_as_undecided[research-\\ud754\\ub4e4\\ub9bc:research-\\ubbf8\\ud655\\uc815]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_the_scorer_counts_a_split_as_undecided[research-research-\\ub9de\\uc74c]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_the_scorer_counts_a_split_as_undecided[research-skip-\\u2605\\uc5b4\\uae0b\\ub0a8]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_the_scorer_counts_a_split_as_undecided[research-unresolved-\\ubbf8\\ud655\\uc815]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldDoesNotHideDisagreement::test_unanimous_is_stable",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldingDoesNotDependOnSampleOrder::test_a_minority_of_answers_does_not_decide",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldingDoesNotDependOnSampleOrder::test_every_permutation_gives_the_same_answer",
  "tests/grounding/test_grounding_v2_stage3c.py::TestFoldingDoesNotDependOnSampleOrder::test_unanswered_samples_do_not_enter_the_axis_fold",
  "tests/grounding/test_grounding_v2_stage3c.py::TestHeaderMatchesTheImplementation::test_completion_wording_is_narrow",
  "tests/grounding/test_grounding_v2_stage3c.py::TestHeaderMatchesTheImplementation::test_no_stale_fold_rule_in_the_docstring",
  "tests/grounding/test_grounding_v2_stage3c.py::TestHeldOutAlsoSavesWhatItBought::test_a_crash_in_the_middle_of_held_out_still_leaves_the_earlier_calls",
  "tests/grounding/test_grounding_v2_stage3c.py::TestHeldOutAlsoSavesWhatItBought::test_the_flush_target_is_set_before_any_branch",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_a_mismatched_axis_still_stops",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_a_mixed_basis_is_fine_when_a0_ran",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_a_synthetic_axis_basis_is_fine",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_an_unstable_axis_is_not_a_pass",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_broken_provenance_stops",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_it_passes_when_every_axis_used_the_manuscript",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_nine_matching_axes_are_undecided_on_imagined_descriptions",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_not_running_a0_is_not_a_pass",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_one_weak_axis_is_enough_to_stop",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_the_basis_is_still_printed",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_the_flag_that_buys_the_manuscript_basis_exists",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLegacyBasisIsNotReadAsPass::test_wrong_axis_count_stops",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLowConfidenceDoesNotBuyResearch::test_a_bare_majority_of_wobbles_does_not_decide",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLowConfidenceDoesNotBuyResearch::test_a_real_research_axis_still_buys_research",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLowConfidenceDoesNotBuyResearch::test_all_wobbly_is_unresolved_not_skip",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLowConfidenceDoesNotBuyResearch::test_it_is_unresolved_not_research",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLowConfidenceDoesNotBuyResearch::test_it_still_never_skips",
  "tests/grounding/test_grounding_v2_stage3c.py::TestLowConfidenceDoesNotBuyResearch::test_one_wobbly_sample_does_not_flip_a_stable_verdict",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProductionFoldsSamples::test_a_panel_asks_every_judge",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProductionFoldsSamples::test_a_tie_closes_toward_research",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProductionFoldsSamples::test_classify_samples_calls_n_times",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProductionFoldsSamples::test_each_record_says_who_judged_it",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProductionFoldsSamples::test_majority_wins_and_records_the_wobble",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProductionFoldsSamples::test_no_samples_is_unresolved",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProductionFoldsSamples::test_samples_below_one_is_rejected[-1]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProductionFoldsSamples::test_samples_below_one_is_rejected[0]",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProductionFoldsSamples::test_the_tool_uses_the_same_fold_as_production",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProductionFoldsSamples::test_unanimous_keeps_the_route_and_is_stable",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProvenanceIsGatedNotJustPrinted::test_fixture_hash_is_rechecked",
  "tests/grounding/test_grounding_v2_stage3c.py::TestProvenanceIsGatedNotJustPrinted::test_the_tool_fails_on_mixed_or_empty_provenance",
  "tests/grounding/test_grounding_v2_stage3c.py::TestRegressionControlsAreLockedButNotIndependent::test_both_directions_are_represented",
  "tests/grounding/test_grounding_v2_stage3c.py::TestRegressionControlsAreLockedButNotIndependent::test_it_does_not_overlap_the_nine_axes",
  "tests/grounding/test_grounding_v2_stage3c.py::TestRegressionControlsAreLockedButNotIndependent::test_it_is_locked_by_a_content_hash",
  "tests/grounding/test_grounding_v2_stage3c.py::TestRegressionControlsAreLockedButNotIndependent::test_no_held_out_word_is_in_either_prompt",
  "tests/grounding/test_grounding_v2_stage3c.py::TestRegressionControlsHaveARealRunner::test_it_folds_with_the_production_function",
  "tests/grounding/test_grounding_v2_stage3c.py::TestRegressionControlsHaveARealRunner::test_the_lock_is_rechecked_at_run_time",
  "tests/grounding/test_grounding_v2_stage3c.py::TestRegressionControlsHaveARealRunner::test_the_mode_exists_and_costs_money",
  "tests/grounding/test_grounding_v2_stage3c.py::TestRegressionControlsHaveARealRunner::test_the_real_file_passes_its_own_lock",
  "tests/grounding/test_grounding_v2_stage3c.py::TestRegressionControlsHaveARealRunner::test_the_reason_never_reaches_the_model",
  "tests/grounding/test_grounding_v2_stage3c.py::TestReplayCannotSmuggleAnOldRunIntoANewContract::test_a_replay_of_a_different_pack_is_refused",
  "tests/grounding/test_grounding_v2_stage3c.py::TestReplayCannotSmuggleAnOldRunIntoANewContract::test_the_classifier_path_carries_an_identity_at_all",
  "tests/grounding/test_grounding_v2_stage3c.py::TestReplayCannotSmuggleAnOldRunIntoANewContract::test_the_same_identity_replays_fine",
  "tests/grounding/test_grounding_v2_stage3c.py::TestResumeBuysOnlyWhatIsMissing::test_a_record_from_a_different_contract_is_not_resumed",
  "tests/grounding/test_grounding_v2_stage3c.py::TestResumeBuysOnlyWhatIsMissing::test_a_resumed_run_buys_only_the_missing_three",
  "tests/grounding/test_grounding_v2_stage3c.py::TestResumeBuysOnlyWhatIsMissing::test_a_second_crash_does_not_lose_the_first_runs_calls",
  "tests/grounding/test_grounding_v2_stage3c.py::TestResumeBuysOnlyWhatIsMissing::test_the_resumed_result_matches_an_uninterrupted_run",
  "tests/grounding/test_grounding_v2_stage3c.py::TestResumeBuysOnlyWhatIsMissing::test_the_resumed_run_restores_provenance_the_same_way",
  "tests/grounding/test_grounding_v2_stage3c.py::TestSinglePhysicalAttempt::test_classify_seals_fallback_and_retries_when_asked",
  "tests/grounding/test_grounding_v2_stage3c.py::TestSinglePhysicalAttempt::test_default_does_not_change_production_behaviour",
  "tests/grounding/test_grounding_v2_stage3c.py::TestSinglePhysicalAttempt::test_the_tool_asks_for_the_seal",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheAcceptanceToolsCostCapMatchesItsCodePath::test_a0_is_zero_when_it_is_not_asked_for",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheAcceptanceToolsCostCapMatchesItsCodePath::test_an_unarmed_call_does_not_eat_the_search_budget",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheAcceptanceToolsCostCapMatchesItsCodePath::test_that_number_actually_blocks",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheAcceptanceToolsCostCapMatchesItsCodePath::test_the_cap_is_counted_from_the_fixture_not_written_by_hand",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheAcceptanceToolsCostCapMatchesItsCodePath::test_the_printed_lines_say_it_is_a_slice_not_a_full_e2e",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheBudgetComesDownEvenWhenTheRunThrows::test_the_scope_restores_what_was_there_before",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheBudgetComesDownEvenWhenTheRunThrows::test_the_tool_uses_the_production_scope_not_a_bare_install",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheCostLineSeparatesLogicalFromPhysical::test_it_prints_the_whole_physical_cap_not_just_search",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheCostLineSeparatesLogicalFromPhysical::test_it_says_which_part_the_budget_actually_gates",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheFreePreflightShowsTheNineBeforeAnyMoneyMoves::test_it_names_every_axis_that_cannot_bind",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheFreePreflightShowsTheNineBeforeAnyMoneyMoves::test_it_prints_both_the_logical_and_the_physical_cap",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheFreePreflightShowsTheNineBeforeAnyMoneyMoves::test_the_synthetic_ids_are_stable",
  "tests/grounding/test_grounding_v2_stage3c.py::TestThePreflightIdsMatchWhatTheRunActuallyBuys::test_it_reads_a0_out_of_a_replay_file_too",
  "tests/grounding/test_grounding_v2_stage3c.py::TestThePreflightIdsMatchWhatTheRunActuallyBuys::test_it_reads_a0_out_of_a_resume_file",
  "tests/grounding/test_grounding_v2_stage3c.py::TestThePreflightIdsMatchWhatTheRunActuallyBuys::test_no_records_means_none_not_an_empty_list",
  "tests/grounding/test_grounding_v2_stage3c.py::TestThePreflightIdsMatchWhatTheRunActuallyBuys::test_the_preflight_says_so_when_it_is_guessing",
  "tests/grounding/test_grounding_v2_stage3c.py::TestThePromptDoesNotLeakTheControls::test_no_control_name_appears_in_the_classifier_prompt",
  "tests/grounding/test_grounding_v2_stage3c.py::TestThePromptDoesNotLeakTheControls::test_the_prompt_says_not_to_memorize_examples",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheReplayIdentityIsTheRealPayload::test_changing_the_system_prompt_moves_the_identity",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheReplayIdentityIsTheRealPayload::test_the_free_planner_matches_what_the_call_actually_sends",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheReplayIdentityIsTheRealPayload::test_the_tool_uses_that_function_not_a_subject_id_list",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheSplitCountIsReportedSeparately::test_both_summaries_print_the_split_count",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheSplitCountIsReportedSeparately::test_it_warns_against_writing_zero_splits",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheToolAndProductionDecideTheSameWay::test_the_tool_imports_the_production_callable",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheToolUsesTheProductionProvenanceGate::test_neither_runner_rewrites_the_rule",
  "tests/grounding/test_grounding_v2_stage3c.py::TestTheToolUsesTheProductionProvenanceGate::test_the_fingerprint_is_kept_whole",
  "tests/grounding/test_grounding_v2_stage3c.py::TestUnresolvedSamplesDoNotVote::test_a_majority_of_answers_still_decides",
  "tests/grounding/test_grounding_v2_stage3c.py::TestUnresolvedSamplesDoNotVote::test_a_single_answer_against_a_non_answer_is_undecided",
  "tests/grounding/test_grounding_v2_stage3c.py::TestUnresolvedSamplesDoNotVote::test_a_tie_with_research_still_closes_toward_research",
  "tests/grounding/test_grounding_v2_stage3c.py::TestUnresolvedSamplesDoNotVote::test_a_tie_without_research_is_not_broken_arbitrarily",
  "tests/grounding/test_grounding_v2_stage3c.py::TestUnresolvedSamplesDoNotVote::test_all_unanswered_is_undecided",
  "tests/grounding/test_grounding_v2_stage3c.py::TestUnresolvedSamplesDoNotVote::test_unanswered_count_is_always_reported",
  "tests/grounding/test_grounding_v2_stage3c.py::TestWeDoNotClaimIndependenceAnywhere::test_no_file_claims_independence",
  "tests/grounding/test_host_context_contract.py::TestBoundParent::test_a_good_one_passes",
  "tests/grounding/test_host_context_contract.py::TestBoundParent::test_a_parent_not_in_the_rows_falls",
  "tests/grounding/test_host_context_contract.py::TestBoundParent::test_a_parent_of_the_wrong_owner_falls",
  "tests/grounding/test_host_context_contract.py::TestBoundParent::test_no_parent_id_falls_to_unresolved",
  "tests/grounding/test_host_context_contract.py::TestBoundParent::test_part_of_must_agree_with_the_declared_parent",
  "tests/grounding/test_host_context_contract.py::TestBoundParent::test_part_of_must_be_exactly_one[links0]",
  "tests/grounding/test_host_context_contract.py::TestBoundParent::test_part_of_must_be_exactly_one[links1]",
  "tests/grounding/test_host_context_contract.py::TestConflictIsNotResolvedBySilentlyPicking::test_different_parents_become_unresolved",
  "tests/grounding/test_host_context_contract.py::TestConflictIsNotResolvedBySilentlyPicking::test_different_states_become_unresolved",
  "tests/grounding/test_host_context_contract.py::TestConflictIsNotResolvedBySilentlyPicking::test_different_subjects_become_unresolved",
  "tests/grounding/test_host_context_contract.py::TestConflictIsNotResolvedBySilentlyPicking::test_nothing_seen_is_unresolved",
  "tests/grounding/test_host_context_contract.py::TestConflictIsNotResolvedBySilentlyPicking::test_the_same_answer_twice_agrees",
  "tests/grounding/test_host_context_contract.py::TestExplicitContextOnly::test_a_good_one_passes",
  "tests/grounding/test_host_context_contract.py::TestExplicitContextOnly::test_a_parent_id_is_forbidden",
  "tests/grounding/test_host_context_contract.py::TestExplicitContextOnly::test_evidence_not_found_in_the_source_falls",
  "tests/grounding/test_host_context_contract.py::TestExplicitContextOnly::test_no_evidence_falls",
  "tests/grounding/test_host_context_contract.py::TestExplicitContextOnly::test_no_search_subject_falls",
  "tests/grounding/test_host_context_contract.py::TestItDoesNotReadTheSourceItself::test_the_module_does_not_search_the_text",
  "tests/grounding/test_host_context_contract.py::TestMemberIdentityKeepsContextAndDetailApart::test_a_missing_piece_stops[kw0]",
  "tests/grounding/test_host_context_contract.py::TestMemberIdentityKeepsContextAndDetailApart::test_a_missing_piece_stops[kw1]",
  "tests/grounding/test_host_context_contract.py::TestMemberIdentityKeepsContextAndDetailApart::test_a_missing_piece_stops[kw2]",
  "tests/grounding/test_host_context_contract.py::TestMemberIdentityKeepsContextAndDetailApart::test_it_is_deterministic",
  "tests/grounding/test_host_context_contract.py::TestMemberIdentityKeepsContextAndDetailApart::test_purpose_moves_the_identity",
  "tests/grounding/test_host_context_contract.py::TestMemberIdentityKeepsContextAndDetailApart::test_the_outbound_identity_moves_it",
  "tests/grounding/test_host_context_contract.py::TestReconcileKeepsEverythingItWasGiven::test_a_clean_run_carries_no_empty_audit_key",
  "tests/grounding/test_host_context_contract.py::TestReconcileKeepsEverythingItWasGiven::test_a_wrong_shape_stops",
  "tests/grounding/test_host_context_contract.py::TestReconcileKeepsEverythingItWasGiven::test_evidence_from_every_chunk_survives",
  "tests/grounding/test_host_context_contract.py::TestReconcileKeepsEverythingItWasGiven::test_failure_reasons_are_kept_per_chunk",
  "tests/grounding/test_host_context_contract.py::TestReconcileKeepsEverythingItWasGiven::test_plain_string_evidence_also_merges",
  "tests/grounding/test_host_context_contract.py::TestReconcileKeepsEverythingItWasGiven::test_reasons_survive_a_conflict_too",
  "tests/grounding/test_host_context_contract.py::TestReconcileKeepsEverythingItWasGiven::test_the_old_two_tuple_shape_still_works",
  "tests/grounding/test_host_context_contract.py::TestReconcileKeepsEverythingItWasGiven::test_the_order_of_the_chunks_does_not_change_the_bytes",
  "tests/grounding/test_host_context_contract.py::TestReconcileKeepsEverythingItWasGiven::test_the_same_span_twice_is_one",
  "tests/grounding/test_host_context_contract.py::TestTheAuditIsDeterministicAndPerChunk::test_a_wrong_shape_still_stops",
  "tests/grounding/test_host_context_contract.py::TestTheAuditIsDeterministicAndPerChunk::test_it_says_which_chunk",
  "tests/grounding/test_host_context_contract.py::TestTheAuditIsDeterministicAndPerChunk::test_the_exact_same_line_twice_is_one",
  "tests/grounding/test_host_context_contract.py::TestTheAuditIsDeterministicAndPerChunk::test_the_older_shapes_still_work",
  "tests/grounding/test_host_context_contract.py::TestTheAuditIsDeterministicAndPerChunk::test_the_order_of_the_chunks_does_not_change_it",
  "tests/grounding/test_host_context_contract.py::TestTheAuditIsDeterministicAndPerChunk::test_the_same_reason_from_two_chunks_is_kept_apart",
  "tests/grounding/test_host_context_contract.py::TestUnresolvedCarriesNothing::test_a_clean_unresolved_passes",
  "tests/grounding/test_host_context_contract.py::TestUnresolvedCarriesNothing::test_a_missing_host_context_falls",
  "tests/grounding/test_host_context_contract.py::TestUnresolvedCarriesNothing::test_a_smuggled_semantic_field_falls[parent_local_id]",
  "tests/grounding/test_host_context_contract.py::TestUnresolvedCarriesNothing::test_a_smuggled_semantic_field_falls[search_subject]",
  "tests/grounding/test_host_context_contract.py::TestUnresolvedCarriesNothing::test_an_unknown_state_falls",
  "tests/grounding/test_integration_scope_image_sources.py::TestTheIntegrationScope::test_a_scope_without_an_entry_only_records",
  "tests/grounding/test_integration_scope_image_sources.py::TestTheIntegrationScope::test_another_image_source_in_the_plan_stops",
  "tests/grounding/test_integration_scope_image_sources.py::TestTheIntegrationScope::test_the_image_approval_is_eighteen_and_only_the_floor_plan_render_may_buy",
  "tests/grounding/test_integration_scope_image_sources.py::TestTheRecomputedCapRespectsTheRemainingCeiling::test_the_hook_source_stops_only_when_the_new_cap_exceeds_what_is_left",
  "tests/grounding/test_journal_slots_let_a_superseded_merge_be_rebought.py::test_a_new_slot_beyond_the_cap_still_stops",
  "tests/grounding/test_journal_slots_let_a_superseded_merge_be_rebought.py::test_a_superseded_merge_slot_can_be_rebought_within_the_cap",
  "tests/grounding/test_journal_slots_let_a_superseded_merge_be_rebought.py::test_reuse_of_a_bought_identity_keeps_its_slot",
  "tests/grounding/test_journal_slots_let_a_superseded_merge_be_rebought.py::test_the_chunk_step_names_its_slots",
  "tests/grounding/test_journal_slots_let_a_superseded_merge_be_rebought.py::test_without_slots_the_old_meaning_is_unchanged",
  "tests/grounding/test_label_reaches_the_judge.py::TestItSurvivesEveryStage::test_targets_from_carries_it",
  "tests/grounding/test_label_reaches_the_judge.py::TestItSurvivesEveryStage::test_the_fallback_is_the_only_way_to_the_surface_form",
  "tests/grounding/test_label_reaches_the_judge.py::TestItSurvivesEveryStage::test_the_judge_gets_the_label_not_the_surface_form",
  "tests/grounding/test_label_reaches_the_judge.py::TestItSurvivesEveryStage::test_the_search_still_gets_the_appearance",
  "tests/grounding/test_label_reaches_the_judge.py::TestTheFrozenRunShowsTheDefectIsGone::test_every_real_target_carries_the_label",
  "tests/grounding/test_label_reaches_the_judge.py::TestTheFrozenRunShowsTheDefectIsGone::test_no_target_hands_the_surface_form_to_the_judge",
  "tests/grounding/test_label_reaches_the_judge.py::TestThePackRequiresIt::test_the_schema_demands_the_label",
  "tests/grounding/test_location_identity_check.py::test_a_missing_anchor_stops_rather_than_passing",
  "tests/grounding/test_location_identity_check.py::test_a_scene_whose_place_was_not_cited_there_is_joined_through_the_same_declared_word",
  "tests/grounding/test_location_identity_check.py::test_an_establishment_split_into_front_and_inside_is_not_a_collapse",
  "tests/grounding/test_location_identity_check.py::test_the_collapsed_run_is_caught",
  "tests/grounding/test_location_identity_check.py::test_the_distinct_run_passes_and_cross_refs_are_counted",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestAModernPlaceIsATargetWithoutAnEra::test_but_a_query_that_drops_the_region_is_refused",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestAModernPlaceIsATargetWithoutAnEra::test_no_model_is_asked_again",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestAModernPlaceIsATargetWithoutAnEra::test_the_provider_gate_asks_only_for_the_declared_region",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestAModernPlaceIsATargetWithoutAnEra::test_those_rows_are_buyable",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestAModernPlaceIsATargetWithoutAnEra::test_two_true_axes_make_an_obligation",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestEasyThingsInTheSameSettingAreNotTargets::test_a_missing_axis_is_unresolved_not_a_no",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestEasyThingsInTheSameSettingAreNotTargets::test_a_not_target_row_is_not_buyable",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestEasyThingsInTheSameSettingAreNotTargets::test_false_axes_are_not_target",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestEasyThingsInTheSameSettingAreNotTargets::test_one_true_axis_is_not_enough",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestLocationAndItsPartReachTheProviderPayload::test_an_unverified_modern_reference_attaches",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestLocationAndItsPartReachTheProviderPayload::test_an_unverified_modern_reference_does_not_attach",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestLocationAndItsPartReachTheProviderPayload::test_both_owners_attach_when_visible_and_verified",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestLocationAndItsPartReachTheProviderPayload::test_only_the_visible_one_attaches",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestLocationAndItsPartReachTheProviderPayload::test_the_human_review_binding_accepts_an_empty_era",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestNoFixtureWordLeaksIntoProductionOrActivePacks::test_active_packs_carry_none_of_the_terms",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestNoFixtureWordLeaksIntoProductionOrActivePacks::test_app_string_literals_carry_none_of_the_terms",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestNoFixtureWordLeaksIntoProductionOrActivePacks::test_the_ratchet_itself_can_see",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheFixtureIsWhatItSaysItIs::test_it_declares_a_region_and_no_era",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheFixtureIsWhatItSaysItIs::test_it_is_a_canary_fixture",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheFixtureIsWhatItSaysItIs::test_it_is_not_the_period_fixture_in_disguise",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheJudgementIsStructuralNotLexical::test_and_renaming_does_not_rescue_a_non_target",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheJudgementIsStructuralNotLexical::test_renaming_the_subject_keeps_the_screen",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheJudgementIsStructuralNotLexical::test_the_projection_reads_no_name_field_and_no_regex",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheRegionAloneChangesDirectiveAndIdentity::test_identity_inputs_differ_by_region_only",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheRegionAloneChangesDirectiveAndIdentity::test_the_outbound_prompt_carries_the_region_and_invents_no_era",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheRegionAloneChangesDirectiveAndIdentity::test_the_outbound_prompt_changes_with_the_region",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheRegionAloneChangesDirectiveAndIdentity::test_the_writer_carries_the_region_and_no_era_tokens",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheReportSplitsByShapeButEnforcementDoesNot::test_enforcement_never_reads_era_or_region[assert_buyable]",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheReportSplitsByShapeButEnforcementDoesNot::test_enforcement_never_reads_era_or_region[members_from_rows]",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheReportSplitsByShapeButEnforcementDoesNot::test_enforcement_never_reads_era_or_region[project_from_producer]",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheReportSplitsByShapeButEnforcementDoesNot::test_enforcement_never_reads_era_or_region[usable_as_reference]",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheReportSplitsByShapeButEnforcementDoesNot::test_the_shape_reads_no_meaning",
  "tests/grounding/test_modern_places_are_grounded_without_an_era.py::TestTheReportSplitsByShapeButEnforcementDoesNot::test_the_two_fixtures_land_in_different_shapes",
  "tests/grounding/test_neutral_shape_metadata_is_normalized_before_validation.py::TestNeutralShapesAreFolded::test_a_made_up_dict_is_folded_to_the_contract_shape[character]",
  "tests/grounding/test_neutral_shape_metadata_is_normalized_before_validation.py::TestNeutralShapesAreFolded::test_a_made_up_dict_is_folded_to_the_contract_shape[location_part]",
  "tests/grounding/test_neutral_shape_metadata_is_normalized_before_validation.py::TestNeutralShapesAreFolded::test_location_part_is_a_neutral_shape",
  "tests/grounding/test_neutral_shape_metadata_is_normalized_before_validation.py::TestNeutralShapesAreFolded::test_the_bad_shape_still_fails_validation_without_folding",
  "tests/grounding/test_neutral_shape_metadata_is_normalized_before_validation.py::TestNeutralShapesAreFolded::test_value_bearing_types_are_left_alone[location]",
  "tests/grounding/test_neutral_shape_metadata_is_normalized_before_validation.py::TestNeutralShapesAreFolded::test_value_bearing_types_are_left_alone[prop]",
  "tests/grounding/test_neutral_shape_metadata_is_normalized_before_validation.py::TestTheStepFoldsBeforeItValidates::test_normalize_is_called_before_validate_in_entity_t2i",
  "tests/grounding/test_neutral_shape_metadata_is_normalized_before_validation.py::TestTheStepFoldsBeforeItValidates::test_the_fold_reads_no_entity_name",
  "tests/grounding/test_no_human_in_the_loop.py::TestBothOutcomesFinishWithoutAPerson::test_a_no_match_also_finishes",
  "tests/grounding/test_no_human_in_the_loop.py::TestBothOutcomesFinishWithoutAPerson::test_a_selection_finishes",
  "tests/grounding/test_no_human_in_the_loop.py::TestBothOutcomesFinishWithoutAPerson::test_a_wrong_kind_still_finishes_with_the_closest_one",
  "tests/grounding/test_no_human_in_the_loop.py::TestBothOutcomesFinishWithoutAPerson::test_it_does_not_grab_a_wrong_kind",
  "tests/grounding/test_no_human_in_the_loop.py::TestBothOutcomesFinishWithoutAPerson::test_the_forced_pick_is_marked_not_hidden",
  "tests/grounding/test_no_human_in_the_loop.py::TestBothOutcomesFinishWithoutAPerson::test_the_record_says_which_kind_of_failure",
  "tests/grounding/test_no_human_in_the_loop.py::TestBothOutcomesFinishWithoutAPerson::test_the_record_says_why_the_last_round_ended",
  "tests/grounding/test_no_human_in_the_loop.py::TestNoProductionCodeWaitsForAPerson::test_missing_reference_is_allowed",
  "tests/grounding/test_no_human_in_the_loop.py::TestNoProductionCodeWaitsForAPerson::test_nothing_returns_a_human_review_state",
  "tests/grounding/test_no_human_in_the_loop.py::TestNoProductionCodeWaitsForAPerson::test_the_loop_never_asks_for_input",
  "tests/grounding/test_no_human_in_the_loop.py::TestTheJudgeIsNotAskedForDetails::test_the_appearance_never_reaches_the_judge",
  "tests/grounding/test_no_human_in_the_loop.py::TestTheJudgeIsNotAskedForDetails::test_the_kind_is_the_coarse_label_only",
  "tests/grounding/test_no_human_in_the_loop.py::TestTheJudgeIsNotAskedForDetails::test_the_pack_asks_for_the_label",
  "tests/grounding/test_no_human_in_the_loop.py::TestTheJudgeIsNotAskedForDetails::test_the_pack_forbids_the_detail_axes",
  "tests/grounding/test_no_human_in_the_loop.py::TestTheJudgeIsNotAskedForDetails::test_the_search_still_gets_the_details",
  "tests/grounding/test_no_human_in_the_loop.py::TestTheOutcomeIsWrittenNotJustComputable::test_a_failed_acquisition_writes_the_outcome",
  "tests/grounding/test_no_human_in_the_loop.py::TestTheOutcomeIsWrittenNotJustComputable::test_both_fields_are_present_on_every_path",
  "tests/grounding/test_no_human_in_the_loop.py::TestTheOutcomeIsWrittenNotJustComputable::test_the_outcome_is_the_one_mapping",
  "tests/grounding/test_no_human_in_the_loop.py::TestTheStepDocMatchesThePolicy::test_the_policy_says_no_match_does_not_block",
  "tests/grounding/test_no_human_in_the_loop.py::TestTheStepDocMatchesThePolicy::test_the_step_doc_does_not_claim_the_opposite",
  "tests/grounding/test_one_run_outdoor_integration_units.py::TestTheTwoSeedClosureStepsAreDeclared::test_calls_per_unit_are_read_from_production",
  "tests/grounding/test_one_run_outdoor_integration_units.py::TestTheTwoSeedClosureStepsAreDeclared::test_the_seed_closure_has_no_unverified_unit_left",
  "tests/grounding/test_one_run_outdoor_integration_units.py::TestTheTwoSeedClosureStepsAreDeclared::test_the_seed_scope_buys_only_seed_rolls",
  "tests/grounding/test_one_run_outdoor_integration_units.py::TestTheTwoSeedClosureStepsAreDeclared::test_the_settings_the_table_assumes_are_the_defaults",
  "tests/grounding/test_one_run_outdoor_integration_units.py::TestTheTwoSeedClosureStepsAreDeclared::test_units_come_from_the_loops",
  "tests/grounding/test_outbound_doors_follow_the_consumer_contract.py::TestTheConsumerContractIsComplete::test_a_consumer_outside_the_closure_does_not_open_the_doors",
  "tests/grounding/test_outbound_doors_follow_the_consumer_contract.py::TestTheConsumerContractIsComplete::test_every_step_importing_the_search_or_download_factory_is_listed",
  "tests/grounding/test_outbound_doors_follow_the_consumer_contract.py::TestTheConsumerContractIsComplete::test_the_contract_module_is_light_enough_to_read_before_the_isolation_lock",
  "tests/grounding/test_outbound_doors_follow_the_consumer_contract.py::TestTheDoorsFollowRemainingConsumers::test_a_reopened_consumer_opens_the_doors_even_when_done",
  "tests/grounding/test_outbound_doors_follow_the_consumer_contract.py::TestTheDoorsFollowRemainingConsumers::test_all_consumers_done_or_not_applicable_closes_the_doors",
  "tests/grounding/test_outbound_doors_follow_the_consumer_contract.py::TestTheDoorsFollowRemainingConsumers::test_central_done_but_outdoor_supplement_remaining_opens_the_doors",
  "tests/grounding/test_outdoor_group_cap_is_a_producer_gate.py::TestTheGateIsCalledRightBeforeTheStep::test_a_forced_finished_step_is_still_gated_and_a_single_unit_step_is_not",
  "tests/grounding/test_outdoor_group_cap_is_a_producer_gate.py::TestTheGateIsCalledRightBeforeTheStep::test_every_producer_gate_names_a_real_function",
  "tests/grounding/test_outdoor_group_cap_is_a_producer_gate.py::TestTheGateIsCalledRightBeforeTheStep::test_the_outdoor_unit_step_calls_the_gate",
  "tests/grounding/test_outdoor_group_cap_is_a_producer_gate.py::TestTheGateReadsTheProducerOutput::test_a_third_outdoor_group_stops_before_buying",
  "tests/grounding/test_outdoor_group_cap_is_a_producer_gate.py::TestTheGateReadsTheProducerOutput::test_the_predicate_is_productions_own",
  "tests/grounding/test_outdoor_group_cap_is_a_producer_gate.py::TestTheGateReadsTheProducerOutput::test_two_outdoor_groups_under_a_cap_of_two_pass_with_both_denominators",
  "tests/grounding/test_outdoor_group_cap_is_a_producer_gate.py::TestTheGateReadsTheProducerOutput::test_without_the_cp_the_declared_value_stands",
  "tests/grounding/test_outdoor_hash_carries_the_ownership_cutover.py::TestABuyingModeBindsTheCutover::test_changing_any_one_contract_moves_the_hash[app.core.steps.outdoor_structure_form_reference_step-FRONT_PROJECTION_CONTRACT_VERSION]",
  "tests/grounding/test_outdoor_hash_carries_the_ownership_cutover.py::TestABuyingModeBindsTheCutover::test_changing_any_one_contract_moves_the_hash[app.modules.pipeline.grounding_outdoor_supplement-SUPPLEMENT_CONTRACT_VERSION]",
  "tests/grounding/test_outdoor_hash_carries_the_ownership_cutover.py::TestABuyingModeBindsTheCutover::test_changing_any_one_contract_moves_the_hash[app.modules.pipeline.reference_acquisition-ACQUISITION_CONTRACT_VERSION]",
  "tests/grounding/test_outdoor_hash_carries_the_ownership_cutover.py::TestABuyingModeBindsTheCutover::test_the_hash_differs_from_legacy_and_names_the_owner[v2]",
  "tests/grounding/test_outdoor_hash_carries_the_ownership_cutover.py::TestABuyingModeBindsTheCutover::test_the_hash_differs_from_legacy_and_names_the_owner[v2_chunk]",
  "tests/grounding/test_outdoor_hash_carries_the_ownership_cutover.py::TestAnOldLegacyCheckpointDriftsUnderTheNewCode::test_the_runner_reports_the_mismatch_so_the_canary_forces_the_step",
  "tests/grounding/test_outdoor_hash_carries_the_ownership_cutover.py::TestTheLegacyHashDoesNotMove::test_legacy_mode_hash_is_byte_identical_to_the_old_payload",
  "tests/grounding/test_outdoor_metering_units.py::TestTheFourOutdoorStepsAreVerified::test_an_undeclared_group_cap_stops_before_the_provider",
  "tests/grounding/test_outdoor_metering_units.py::TestTheFourOutdoorStepsAreVerified::test_calls_per_unit_are_read_from_production",
  "tests/grounding/test_outdoor_metering_units.py::TestTheFourOutdoorStepsAreVerified::test_the_group_cap_is_declared_by_the_fixture",
  "tests/grounding/test_outdoor_metering_units.py::TestTheFourOutdoorStepsAreVerified::test_the_render_step_stays_unverified_and_the_seed_is_declared",
  "tests/grounding/test_outdoor_metering_units.py::TestTheFourOutdoorStepsAreVerified::test_units_come_from_the_loops",
  "tests/grounding/test_outdoor_step_needs_the_central_front.py::TestABuyingModeWithoutTheFrontStops::test_a_non_buying_mode_keeps_the_explicit_legacy_owner",
  "tests/grounding/test_outdoor_step_needs_the_central_front.py::TestABuyingModeWithoutTheFrontStops::test_the_owner_rule_raises_instead_of_falling_back[v2]",
  "tests/grounding/test_outdoor_step_needs_the_central_front.py::TestABuyingModeWithoutTheFrontStops::test_the_owner_rule_raises_instead_of_falling_back[v2_chunk]",
  "tests/grounding/test_outdoor_step_needs_the_central_front.py::TestABuyingModeWithoutTheFrontStops::test_the_step_turns_it_into_a_422_before_any_purchase",
  "tests/grounding/test_outdoor_step_needs_the_central_front.py::TestTheDependencyIsDeclared::test_the_canary_closure_now_carries_the_central_step",
  "tests/grounding/test_outdoor_step_needs_the_central_front.py::TestTheDependencyIsDeclared::test_the_outdoor_step_depends_on_the_central_acquisition",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestObligationsAreDeterministic::test_a_base_structure_form_row_means_no_obligation",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestObligationsAreDeterministic::test_an_existing_supplement_row_does_not_block_the_obligation",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestObligationsAreDeterministic::test_one_obligation_per_location_without_a_base_structure_form_row",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestObligationsAreDeterministic::test_structural_errors_are_found_before_any_purchase",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheEndpointsCodexNamed::test_a_changed_description_is_a_new_identity_and_a_new_purchase",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheEndpointsCodexNamed::test_a_retryable_row_is_retried_and_the_recovered_selected_supersedes_it",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheEndpointsCodexNamed::test_an_unchanged_selected_row_costs_nothing_and_appends_nothing",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheMergeView::test_base_plus_live_supplement_and_a_conflict_stops",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheProjectionReadsTheMergeView::test_a_selected_supplement_row_becomes_the_form_reference",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheProjectionReadsTheMergeView::test_the_same_selection_binds_the_same_asset_row_on_resume",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheProjectionReadsTheMergeView::test_without_a_structure_form_row_it_stops_naming_the_location",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheSupplementBuysThroughTheCentralBoundary::test_a_base_structure_form_row_means_provider_zero",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheSupplementBuysThroughTheCentralBoundary::test_it_calls_ca_run_with_the_same_factories_and_the_stop_check",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheSupplementBuysThroughTheCentralBoundary::test_structural_errors_stop_before_ca_run",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheSupplementBuysThroughTheCentralBoundary::test_the_central_step_uses_the_same_factories_and_keeps_its_replay_journal",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheSupplementIsAppendOnly::test_a_new_identity_supersedes",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheSupplementIsAppendOnly::test_same_identity_and_same_result_is_a_noop",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheSupplementIsAppendOnly::test_same_identity_but_a_recovered_result_supersedes",
  "tests/grounding/test_outdoor_structure_form_supplement.py::TestTheSupplementIsAppendOnly::test_two_live_rows_for_one_subject_stop",
  "tests/grounding/test_outlook_binding.py::TestASharedSceneIsNotOwnership::test_a_different_expected_parent_never_binds",
  "tests/grounding/test_outlook_binding.py::TestASharedSceneIsNotOwnership::test_no_parent_coordinate_means_no_guessing",
  "tests/grounding/test_outlook_binding.py::TestASharedSceneIsNotOwnership::test_two_sources_in_one_scene_each_get_their_own",
  "tests/grounding/test_outlook_binding.py::TestEveryRowLandsInExactlyOneLane::test_a_broken_non_obligation_row_is_not_hidden",
  "tests/grounding/test_outlook_binding.py::TestEveryRowLandsInExactlyOneLane::test_a_row_missing_both_fields_stops",
  "tests/grounding/test_outlook_binding.py::TestEveryRowLandsInExactlyOneLane::test_a_row_with_an_unknown_screen_is_not_bought",
  "tests/grounding/test_outlook_binding.py::TestEveryRowLandsInExactlyOneLane::test_a_row_with_an_unknown_screen_stops",
  "tests/grounding/test_outlook_binding.py::TestEveryRowLandsInExactlyOneLane::test_a_row_with_an_unknown_status_stops[None]",
  "tests/grounding/test_outlook_binding.py::TestEveryRowLandsInExactlyOneLane::test_a_row_with_an_unknown_status_stops[]",
  "tests/grounding/test_outlook_binding.py::TestEveryRowLandsInExactlyOneLane::test_a_row_with_an_unknown_status_stops[corrupt]",
  "tests/grounding/test_outlook_binding.py::TestEveryRowLandsInExactlyOneLane::test_the_buy_lane_equals_the_buyer_list",
  "tests/grounding/test_outlook_binding.py::TestEveryRowLandsInExactlyOneLane::test_the_known_names_come_from_the_screen_module",
  "tests/grounding/test_outlook_binding.py::TestEveryRowLandsInExactlyOneLane::test_the_three_lanes_cover_everything",
  "tests/grounding/test_outlook_binding.py::TestItBindsByStructureOnly::test_a_different_scene_does_not_bind",
  "tests/grounding/test_outlook_binding.py::TestItBindsByStructureOnly::test_a_shared_scene_and_id_binds",
  "tests/grounding/test_outlook_binding.py::TestItBindsByStructureOnly::test_no_evidence_means_no_binding",
  "tests/grounding/test_outlook_binding.py::TestItBindsByStructureOnly::test_the_module_never_reads_a_name",
  "tests/grounding/test_outlook_binding.py::TestItIsNotWiredYet::test_it_buys_nothing",
  "tests/grounding/test_outlook_binding.py::TestItIsNotWiredYet::test_no_step_calls_it",
  "tests/grounding/test_outlook_binding.py::TestItRefusesInsteadOfGuessing::test_a_duplicated_catalog_entry_stops",
  "tests/grounding/test_outlook_binding.py::TestItRefusesInsteadOfGuessing::test_an_id_outside_the_catalog_is_unresolved",
  "tests/grounding/test_outlook_binding.py::TestItRefusesInsteadOfGuessing::test_another_character_in_the_scene_does_not_blur_it",
  "tests/grounding/test_outlook_binding.py::TestItRefusesInsteadOfGuessing::test_two_characters_for_one_outlook_are_unresolved",
  "tests/grounding/test_outlook_binding.py::TestItRefusesInsteadOfGuessing::test_two_outlooks_in_one_scene_are_unresolved",
  "tests/grounding/test_outlook_binding.py::TestMergedSourcesMayShareOneOutlook::test_one_source_never_gets_two_outlooks",
  "tests/grounding/test_outlook_binding.py::TestMergedSourcesMayShareOneOutlook::test_two_rows_can_bind_to_the_same_outlook",
  "tests/grounding/test_outlook_binding.py::TestNothingIsLostAndNobodyWaits::test_an_unresolved_row_completes_itself",
  "tests/grounding/test_outlook_binding.py::TestNothingIsLostAndNobodyWaits::test_every_row_comes_out",
  "tests/grounding/test_outlook_binding.py::TestNothingIsLostAndNobodyWaits::test_only_bound_rows_go_to_the_buyer",
  "tests/grounding/test_outlook_binding.py::TestNothingIsLostAndNobodyWaits::test_the_evidence_and_payload_survive_verbatim",
  "tests/grounding/test_outlook_binding.py::TestTheCoordinateComesFromTheRealChain::test_a_debt_row_gets_no_coordinate_at_all",
  "tests/grounding/test_outlook_binding.py::TestTheCoordinateComesFromTheRealChain::test_a_different_character_in_phase3_refuses",
  "tests/grounding/test_outlook_binding.py::TestTheCoordinateComesFromTheRealChain::test_it_survives_to_the_screen_row",
  "tests/grounding/test_outlook_binding.py::TestTheCoordinateComesFromTheRealChain::test_the_emitter_puts_the_facet_coordinate_on_the_candidate",
  "tests/grounding/test_outlook_binding.py::TestTheCoordinateComesFromTheRealChain::test_the_real_chain_actually_binds",
  "tests/grounding/test_outlook_binding.py::TestTheScreenVerdictGatesTheBuying::test_a_non_target_that_cannot_bind_is_not_a_missing_reference",
  "tests/grounding/test_outlook_binding.py::TestTheScreenVerdictGatesTheBuying::test_an_obligation_that_cannot_bind_completes_itself",
  "tests/grounding/test_outlook_binding.py::TestTheScreenVerdictGatesTheBuying::test_only_an_obligation_is_bought[capped-0-0]",
  "tests/grounding/test_outlook_binding.py::TestTheScreenVerdictGatesTheBuying::test_only_an_obligation_is_bought[not_target-0-0]",
  "tests/grounding/test_outlook_binding.py::TestTheScreenVerdictGatesTheBuying::test_only_an_obligation_is_bought[obligation-1-0]",
  "tests/grounding/test_outlook_binding.py::TestTheScreenVerdictGatesTheBuying::test_only_an_obligation_is_bought[unresolved-0-0]",
  "tests/grounding/test_outlook_binding.py::TestTheScreenVerdictGatesTheBuying::test_the_screen_names_come_from_the_screen_module",
  "tests/grounding/test_outlook_binding.py::TestTheScreenVerdictGatesTheBuying::test_the_screen_verdict_is_kept_verbatim",
  "tests/grounding/test_outlook_grounding_attachment.py::TestAnExistingCompositeDoesNotSatisfyIt::test_the_grounding_value_carries_the_acquisition_identity",
  "tests/grounding/test_outlook_grounding_attachment.py::TestAnExistingCompositeDoesNotSatisfyIt::test_the_same_kind_and_id_is_not_enough",
  "tests/grounding/test_outlook_grounding_attachment.py::TestBothLanesInOneShot::test_kinds_roles_and_meta_are_all_preserved",
  "tests/grounding/test_outlook_grounding_attachment.py::TestBothLanesInOneShot::test_the_same_bytes_in_two_slots_stay_two",
  "tests/grounding/test_outlook_grounding_attachment.py::TestItLandsThroughTheRealAssembly::test_it_uses_an_already_declared_role",
  "tests/grounding/test_outlook_grounding_attachment.py::TestItLandsThroughTheRealAssembly::test_nothing_lands_when_it_was_not_found",
  "tests/grounding/test_outlook_grounding_attachment.py::TestItLandsThroughTheRealAssembly::test_the_photo_reaches_the_outlook_slot",
  "tests/grounding/test_outlook_grounding_attachment.py::TestItLandsThroughTheRealAssembly::test_the_prompt_tells_the_model_what_the_image_is",
  "tests/grounding/test_outlook_grounding_attachment.py::TestItLandsThroughTheRealAssembly::test_the_prompt_tells_the_model_whose_outfit_it_is",
  "tests/grounding/test_outlook_grounding_attachment.py::TestOnlyPairsTheShotActuallyUses::test_a_card_with_no_outlook_is_untouched",
  "tests/grounding/test_outlook_grounding_attachment.py::TestOnlyPairsTheShotActuallyUses::test_a_pair_the_card_does_not_ask_for_is_skipped",
  "tests/grounding/test_outlook_grounding_attachment.py::TestOnlyPairsTheShotActuallyUses::test_the_used_pair_is_written",
  "tests/grounding/test_outlook_grounding_attachment.py::TestTheIdComesFromTheVerifiedBinding::test_a_row_without_a_parent_makes_nothing",
  "tests/grounding/test_outlook_grounding_attachment.py::TestTheIdComesFromTheVerifiedBinding::test_a_wrong_parent_kind_makes_nothing",
  "tests/grounding/test_outlook_grounding_attachment.py::TestTheIdComesFromTheVerifiedBinding::test_another_lane_is_not_an_outlook",
  "tests/grounding/test_outlook_grounding_attachment.py::TestTheIdComesFromTheVerifiedBinding::test_it_joins_the_parent_and_the_facet",
  "tests/grounding/test_outlook_grounding_attachment.py::TestTheRealCompositeAndTheGroundingPhotoCoexist::test_both_survive_with_their_own_roles",
  "tests/grounding/test_outlook_grounding_attachment.py::TestTheRealCompositeAndTheGroundingPhotoCoexist::test_the_composite_alone_does_not_satisfy_it",
  "tests/grounding/test_outlook_grounding_attachment.py::TestTheRealCompositeAndTheGroundingPhotoCoexist::test_the_exact_grounding_assertion_still_holds",
  "tests/grounding/test_outlook_grounding_attachment.py::TestTheRealCompositeAndTheGroundingPhotoCoexist::test_the_two_instructions_say_different_things",
  "tests/grounding/test_outlook_grounding_attachment.py::TestTwoCharactersNeverGetSwapped::test_each_image_names_its_own_pair",
  "tests/grounding/test_outlook_grounding_attachment.py::TestTwoCharactersNeverGetSwapped::test_one_photo_covering_two_outfits_stays_two_attachments",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestAnOwnerlessOutlookIsNotAFreePass::test_it_is_currently_assignable_to_anyone",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestAnOwnerlessOutlookIsRefused::test_assigning_an_ownerless_outlook_is_refused",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestAnOwnerlessOutlookIsRefused::test_leaving_an_ownerless_outlook_unassigned_is_normal",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestAnOwnerlessOutlookIsRefused::test_leaving_it_unassigned_is_normal",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestAnOwnerlessOutlookIsRefused::test_the_retry_guard_refuses_it_too",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestAnOwnerlessOutlookSkipsTheCheck::test_an_owned_outlook_is_caught",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestAnOwnerlessOutlookSkipsTheCheck::test_an_ownerless_outlook_is_not_caught",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestBothPlacesAgree::test_neither_place_asks_to_borrow",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestCallerDoesNotForceAssignment::test_user_prompt_no_longer_demands_every_character",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestCallerDoesNotForceAssignment::test_user_prompt_tells_it_to_leave_empty",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestNoPaidRetryForUnownedCharacters::test_execute_calls_phase2_exactly_once",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestNoPaidRetryForUnownedCharacters::test_raw_scene_char_map_is_no_longer_the_expectation",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestNobodyBorrowsSomeoneElsesOutfit::test_an_outlook_outside_the_catalog_is_refused",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestNobodyBorrowsSomeoneElsesOutfit::test_another_persons_outlook_is_refused",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestNobodyBorrowsSomeoneElsesOutfit::test_the_owner_gets_their_own_outlook",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestNobodyBorrowsSomeoneElsesOutfit::test_the_retry_guard_sees_it_too",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestOwnerMismatchIsRejected::test_borrowing_also_fails_the_tier3_gate",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestOwnerMismatchIsRejected::test_borrowing_someone_elses_outlook_fails_validate",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestOwnerMismatchIsRejected::test_empty_assignments_are_allowed",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestOwnerMismatchIsRejected::test_owner_match_passes_validate",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestPromptNoLongerContradictsItself::test_it_says_what_to_do_instead",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestPromptNoLongerContradictsItself::test_the_borrow_rule_is_gone",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestPromptNoLongerContradictsItself::test_the_forced_assignment_is_gone",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestPromptNoLongerContradictsItself::test_the_owner_rule_survives",
  "tests/grounding/test_outlook_phase2_no_borrow.py::TestPromptNoLongerContradictsItself::test_unassigned_is_framed_as_a_fact_not_a_failure",
  "tests/grounding/test_owner_reference_projection.py::TestDeclaringIsNotOpening::test_a_place_id_still_makes_no_reference_yet",
  "tests/grounding/test_owner_reference_projection.py::TestDeclaringIsNotOpening::test_the_open_set_is_still_only_two",
  "tests/grounding/test_owner_reference_projection.py::TestDeclaringIsNotOpening::test_what_is_open_must_be_projected",
  "tests/grounding/test_owner_reference_projection.py::TestItMakesNoNewSlot::test_both_place_lanes_go_to_the_existing_background_slot",
  "tests/grounding/test_owner_reference_projection.py::TestItMakesNoNewSlot::test_no_owner_maps_to_a_place_of_its_own",
  "tests/grounding/test_owner_reference_projection.py::TestItMakesNoNewSlot::test_the_kinds_are_ones_production_already_accepts",
  "tests/grounding/test_owner_reference_projection.py::TestOnePartOfListTwoConsumers::test_only_the_contracted_pair_goes_to_the_db",
  "tests/grounding/test_owner_reference_projection.py::TestOnePartOfListTwoConsumers::test_the_live_shape_no_longer_stops_the_run",
  "tests/grounding/test_owner_reference_projection.py::TestOnePartOfListTwoConsumers::test_the_others_are_kept_with_a_reason",
  "tests/grounding/test_owner_reference_projection.py::TestOnePartOfListTwoConsumers::test_the_step_selects_before_projecting",
  "tests/grounding/test_owner_reference_projection.py::TestOnePartOfListTwoConsumers::test_the_supported_set_comes_from_the_contract",
  "tests/grounding/test_owner_reference_projection.py::TestTheGateIsOpenAndDerived::test_a_non_identity_string_still_makes_none",
  "tests/grounding/test_owner_reference_projection.py::TestTheGateIsOpenAndDerived::test_a_place_id_now_makes_a_reference",
  "tests/grounding/test_owner_reference_projection.py::TestTheGateIsOpenAndDerived::test_it_is_derived_not_hand_written",
  "tests/grounding/test_owner_reference_projection.py::TestTheGateIsOpenAndDerived::test_the_open_set_is_the_whole_table",
  "tests/grounding/test_owner_reference_projection.py::TestTheGateIsOpenAndDerived::test_what_is_open_must_be_projected",
  "tests/grounding/test_owner_reference_projection.py::TestTheProjectionCoversEveryLane::test_all_five_owners_are_projected",
  "tests/grounding/test_owner_reference_projection.py::TestTheProjectionCoversEveryLane::test_an_unknown_owner_gets_nothing",
  "tests/grounding/test_owner_reference_projection.py::TestTheProjectionCoversEveryLane::test_it_stops_when_a_lane_is_added_without_a_place",
  "tests/grounding/test_owner_reference_projection.py::TestTheReferenceGatesUseTheContract::test_a_composite_id_is_not_a_bare_owner",
  "tests/grounding/test_owner_reference_projection.py::TestTheReferenceGatesUseTheContract::test_both_gates_ask_the_contract",
  "tests/grounding/test_owner_reference_projection.py::TestTheReferenceGatesUseTheContract::test_neither_gate_hand_compares_a_prefix",
  "tests/grounding/test_owner_reference_projection.py::TestTheSevenPlacesDeriveFromHere::test_no_consumer_compares_prefixes_by_hand",
  "tests/grounding/test_period_fixture.py::TestAllFiveOwnersAreNaturallyGrounded::test_every_owner_has_a_grounding_target",
  "tests/grounding/test_period_fixture.py::TestAllFiveOwnersAreNaturallyGrounded::test_it_holds_together",
  "tests/grounding/test_period_fixture.py::TestAllFiveOwnersAreNaturallyGrounded::test_nothing_was_forced",
  "tests/grounding/test_period_fixture.py::TestAllFiveOwnersAreNaturallyGrounded::test_there_are_negatives_too",
  "tests/grounding/test_period_fixture.py::TestItLooksLikeAStoredCheckpoint::test_bundling_uses_the_one_shared_function",
  "tests/grounding/test_period_fixture.py::TestItLooksLikeAStoredCheckpoint::test_segments_match_the_manuscript_offsets",
  "tests/grounding/test_period_fixture.py::TestItLooksLikeAStoredCheckpoint::test_shots_are_shaped_like_shot_validator",
  "tests/grounding/test_period_fixture.py::TestNoWorkProperNouns::test_the_era_and_region_live_only_in_world_facts",
  "tests/grounding/test_period_fixture.py::TestNoWorkProperNouns::test_the_shots_name_roles_not_people",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestALostRecordIsNotAnEmptyRun::test_a_broken_checkpoint_stops[cp0-\\ub35c \\ub3c8 \\ud310]",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestALostRecordIsNotAnEmptyRun::test_a_broken_checkpoint_stops[cp1-`data` \\uc5c6\\uc74c]",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestALostRecordIsNotAnEmptyRun::test_a_broken_checkpoint_stops[cp2-`rows` \\ud0a4 \\uc5c6\\uc74c]",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestALostRecordIsNotAnEmptyRun::test_a_broken_checkpoint_stops[cp3-rows=None]",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestALostRecordIsNotAnEmptyRun::test_a_broken_checkpoint_stops[cp4-rows=dict]",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestALostRecordIsNotAnEmptyRun::test_a_contradictory_row_stops",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestALostRecordIsNotAnEmptyRun::test_a_missing_checkpoint_stops",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestALostRecordIsNotAnEmptyRun::test_the_old_road_still_folds_quietly",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestALostRecordIsNotAnEmptyRun::test_the_sidecar_door_uses_the_same_rule",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestLegacyIsUntouched::test_legacy_never_reads_the_central_checkpoint",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestLegacyIsUntouched::test_the_audit_block_does_not_exist_in_legacy",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestOnlyThePolicyLaneIsForced::test_character_and_prop_become_obligations",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestOnlyThePolicyLaneIsForced::test_every_owner_has_exactly_one_enforcer",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestOnlyThePolicyLaneIsForced::test_places_and_outlooks_go_to_their_own_gate",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestSelectedIsNotYetGroundingVerified::test_a_human_rejection_is_not_reported_as_unverified",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestSelectedIsNotYetGroundingVerified::test_a_row_with_no_fidelity_field_is_unverified",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestSelectedIsNotYetGroundingVerified::test_a_verified_selection_is_attached",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestSelectedIsNotYetGroundingVerified::test_an_unverified_selection_is_not_attached",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestTheKindThatReachesTheCard::test_a_place_never_reaches_the_card_as_a_kind",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestTheKindThatReachesTheCard::test_policy_lane_ids_become_known_kinds",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestTheKindThatReachesTheCard::test_the_kind_comes_from_the_contract_not_the_owner",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestTheRealExecuteTakesTheBranch::test_an_unavailable_run_does_not_stand",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestTheRealExecuteTakesTheBranch::test_legacy_execute_writes_no_audit_block",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestTheRealExecuteTakesTheBranch::test_the_forced_subject_is_reference_required_in_the_policy",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestTheRealExecuteTakesTheBranch::test_the_manifest_carries_the_central_result",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestWhatWasNotFoundNeitherBlocksNorForces::test_a_not_applicable_row_is_counted_apart",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestWhatWasNotFoundNeitherBlocksNorForces::test_an_explicitly_empty_run_is_a_normal_empty_run",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestWhatWasNotFoundNeitherBlocksNorForces::test_no_checkpoint_means_nothing_is_forced_and_nothing_stands",
  "tests/grounding/test_policy_reads_central_acquisition.py::TestWhatWasNotFoundNeitherBlocksNorForces::test_unavailable_keeps_its_raw_reason",
  "tests/grounding/test_policy_step_hash_is_stored_and_compared_by_one_function.py::test_a_checkpoint_written_from_the_result_hash_is_not_a_mismatch",
  "tests/grounding/test_policy_step_hash_is_stored_and_compared_by_one_function.py::test_the_execute_result_carries_the_step_local_hash",
  "tests/grounding/test_pr82_review_fixes.py::TestALocalStopIsNotUncertain::test_a_local_stop_after_one_transmission_is_uncertain",
  "tests/grounding/test_pr82_review_fixes.py::TestALocalStopIsNotUncertain::test_a_local_stop_without_counting_is_uncertain",
  "tests/grounding/test_pr82_review_fixes.py::TestALocalStopIsNotUncertain::test_an_unknown_transport_error_is_still_uncertain",
  "tests/grounding/test_pr82_review_fixes.py::TestALocalStopIsNotUncertain::test_budget_stop_before_any_transmission_leaves_the_slot_free",
  "tests/grounding/test_pr82_review_fixes.py::TestALocalStopIsNotUncertain::test_budget_stop_leaves_the_slot_free",
  "tests/grounding/test_pr82_review_fixes.py::TestALocalStopIsNotUncertain::test_user_abort_before_any_transmission_leaves_the_slot_free",
  "tests/grounding/test_pr82_review_fixes.py::TestALocalStopIsNotUncertain::test_user_abort_leaves_the_slot_free",
  "tests/grounding/test_pr82_review_fixes.py::TestALocalStopIsNotUncertain::test_workers_count_only_their_own_attempt",
  "tests/grounding/test_pr82_review_fixes.py::TestLegacyHashIsByteIdentical::test_legacy_and_v2_return_the_mixin_base_unchanged[legacy]",
  "tests/grounding/test_pr82_review_fixes.py::TestLegacyHashIsByteIdentical::test_legacy_and_v2_return_the_mixin_base_unchanged[v2]",
  "tests/grounding/test_pr82_review_fixes.py::TestLegacyHashIsByteIdentical::test_v2_chunk_still_binds_the_contract",
  "tests/grounding/test_pr82_review_fixes.py::TestTheBuyingLaneHasAPhysicalDoor::test_a_worker_inherits_the_armed_flag_and_the_budget",
  "tests/grounding/test_pr82_review_fixes.py::TestTheBuyingLaneHasAPhysicalDoor::test_central_opens_the_run_scope_and_arms",
  "tests/grounding/test_pr82_review_fixes.py::TestTheBuyingLaneHasAPhysicalDoor::test_outdoor_supplement_opens_the_same_door",
  "tests/grounding/test_pr82_review_fixes.py::TestTheBuyingLaneHasAPhysicalDoor::test_without_arming_the_reserve_is_a_noop",
  "tests/grounding/test_pr82_review_fixes.py::TestTheCapCountsOnlyCurrentTargets::test_an_orphan_slot_does_not_eat_the_cap",
  "tests/grounding/test_pr82_review_fixes.py::TestTheCapCountsOnlyCurrentTargets::test_run_no_longer_widens_its_own_cap",
  "tests/grounding/test_pr82_review_fixes.py::TestTheCapCountsOnlyCurrentTargets::test_the_cap_is_still_a_cap_for_current_targets",
  "tests/grounding/test_pr82_review_fixes.py::TestTheLaneLocksRetriesToZero::test_search_and_writer_clients_have_sdk_retries_zero",
  "tests/grounding/test_pr82_review_fixes.py::TestTheLaneLocksRetriesToZero::test_the_cap_derivation_matches_the_locked_retries",
  "tests/grounding/test_pr82_review_fixes.py::TestTheLaneLocksRetriesToZero::test_the_judge_passes_router_retries_zero",
  "tests/grounding/test_pr82_review_fixes.py::TestTheSettleTool::test_list_then_settle_not_bought_frees_the_slot",
  "tests/grounding/test_pr82_review_fixes.py::TestTheSettleTool::test_settling_as_bought_is_refused",
  "tests/grounding/test_pr82_review_fixes.py::TestTheSettleToolKeepsTheLedgerAppendOnly::test_a_journal_without_a_contract_is_refused",
  "tests/grounding/test_pr82_review_fixes.py::TestTheSettleToolKeepsTheLedgerAppendOnly::test_release_is_a_settlement_and_only_for_reserved",
  "tests/grounding/test_pr82_review_fixes.py::TestTheSettleToolKeepsTheLedgerAppendOnly::test_settle_keeps_the_stored_contract_and_the_calls_bytes",
  "tests/grounding/test_production_assembly_endpoint.py::TestNoSidecarIsByteIdentical::test_nothing_is_attached",
  "tests/grounding/test_production_assembly_endpoint.py::TestNoSidecarIsByteIdentical::test_the_whole_return_is_the_same[rpc0]",
  "tests/grounding/test_production_assembly_endpoint.py::TestNoSidecarIsByteIdentical::test_the_whole_return_is_the_same[rpc1]",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheAssemblyStopsOnABrokenSidecar::test_a_missing_photo_stops",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheAssemblyStopsOnABrokenSidecar::test_a_missing_required_list_stops",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheAssemblyStopsOnABrokenSidecar::test_a_photo_that_does_not_match_the_hash_stops",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheAssemblyStopsOnABrokenSidecar::test_a_wrong_required_list_stops",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheBundleLandsThroughTheRealAssembly::test_a_detail_member_reaches_attached_meta",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheBundleLandsThroughTheRealAssembly::test_the_same_photo_becomes_one",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheBundleLandsThroughTheRealAssembly::test_two_members_both_land",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheBundleLandsThroughTheRealAssembly::test_unavailable_lands_nothing",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheSeamOrder::test_attach_comes_before_the_payload",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheSeamOrder::test_the_consumer_does_not_write_the_required_list",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheSecondGateActuallyFires::test_it_is_wired_with_an_alias",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheSecondGateActuallyFires::test_it_passes_when_nothing_is_required",
  "tests/grounding/test_production_assembly_endpoint.py::TestTheSecondGateActuallyFires::test_it_stops_when_the_attach_is_bypassed",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_a_failing_rollback_is_not_swallowed_into_success",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_a_good_lookup_does_not_roll_back",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_every_public_entry_leaves_the_session_usable[get_active_version-args2]",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_every_public_entry_leaves_the_session_usable[get_active_version-system]",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_every_public_entry_leaves_the_session_usable[get_active_version]",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_every_public_entry_leaves_the_session_usable[load_prompt-args0]",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_every_public_entry_leaves_the_session_usable[load_prompt-system]",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_every_public_entry_leaves_the_session_usable[load_prompt]",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_every_public_entry_leaves_the_session_usable[load_schema-args1]",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_every_public_entry_leaves_the_session_usable[load_schema-scene_detail_schema]",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_every_public_entry_leaves_the_session_usable[load_schema]",
  "tests/grounding/test_prompt_loader_rollback.py::TestABrokenLookupDoesNotPoisonTheSession::test_it_rolls_back_before_raising",
  "tests/grounding/test_ref_canary_targets.py::TestAPartIsNotBoughtWhenItsWholeIs::test_a_part_whose_whole_is_not_a_target_is_still_bought",
  "tests/grounding/test_ref_canary_targets.py::TestAPartIsNotBoughtWhenItsWholeIs::test_a_row_without_both_axes_is_never_a_target",
  "tests/grounding/test_ref_canary_targets.py::TestAPartIsNotBoughtWhenItsWholeIs::test_relations_come_from_the_ledger_not_from_names",
  "tests/grounding/test_ref_canary_targets.py::TestAPartIsNotBoughtWhenItsWholeIs::test_the_code_does_not_read_surface_forms_for_this",
  "tests/grounding/test_ref_canary_targets.py::TestAPartIsNotBoughtWhenItsWholeIs::test_the_part_is_skipped",
  "tests/grounding/test_ref_canary_targets.py::TestAPartIsNotBoughtWhenItsWholeIs::test_the_skip_is_recorded_not_silent",
  "tests/grounding/test_ref_canary_targets.py::TestAgainstTheRealPaidOutput::test_it_drops_the_eight_sub_parts",
  "tests/grounding/test_ref_canary_targets.py::TestAgainstTheRealPaidOutput::test_the_budget_shrinks_accordingly",
  "tests/grounding/test_ref_canary_targets.py::TestAgainstTheRealPaidOutput::test_the_ones_that_worked_are_kept",
  "tests/grounding/test_ref_canary_targets.py::TestAgainstTheRealPaidOutput::test_the_three_that_found_nothing_are_gone",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestItStopsBeforeTheNetworkWhenTheCapIsHit::test_outside_the_arm_it_does_nothing",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestItStopsBeforeTheNetworkWhenTheCapIsHit::test_the_reserve_raises_at_the_cap",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestNoTraceMeansNoPurchase::test_it_stops_before_acquire_one",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheBoundIsReadFromRealConstants::test_it_names_the_layer_below_the_count",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheBoundIsReadFromRealConstants::test_it_reports_all_three_layers",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheBoundIsReadFromRealConstants::test_the_armed_cap_does_not_follow_the_worst_case",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheBoundIsReadFromRealConstants::test_the_armed_cap_is_not_computed_from_the_worst_case",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheBoundIsReadFromRealConstants::test_the_bound_reflects_the_locked_contract",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheBoundIsReadFromRealConstants::test_the_counted_cap_is_at_least_the_logical_count",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheBoundIsReadFromRealConstants::test_the_raw_http_bound_is_above_the_counted_one",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheBoundIsReadFromRealConstants::test_the_worst_case_is_far_above_the_logical_count",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheEventCarriesTheTraceId::test_a_handle_without_uid_stops_it",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheEventCarriesTheTraceId::test_the_handle_field_is_uid",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheEventCarriesTheTraceId::test_the_runner_reads_uid",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheEventsTieTheJournalToOpik::test_an_unknown_stage_is_refused",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheEventsTieTheJournalToOpik::test_each_stage_and_round_gets_its_own_identity",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheEventsTieTheJournalToOpik::test_it_appends_and_survives",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheEventsTieTheJournalToOpik::test_the_outbound_moves_it",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheGateStopsBeforeAnythingIsBought::test_a_changed_sample_stops_it",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheGateStopsBeforeAnythingIsBought::test_a_different_slot_count_stops_it",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheGateStopsBeforeAnythingIsBought::test_a_doubled_owner_stops_it",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheGateStopsBeforeAnythingIsBought::test_a_missing_owner_stops_it",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheGateStopsBeforeAnythingIsBought::test_the_full_set_passes",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheLockActuallyReachesTheCall::test_the_lock_moves_the_identity",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheLockActuallyReachesTheCall::test_the_writer_call_carries_the_lock",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheLoopRunsInsideTheBudget::test_acquire_one_is_called_with_the_arm_up",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheLoopRunsInsideTheBudget::test_the_budget_is_gone_afterwards",
  "tests/grounding/test_ref_canary_transmission_budget.py::TestTheLoopRunsInsideTheBudget::test_the_cap_matches_the_approved_number",
  "tests/grounding/test_ref_journal.py::TestTheIdentityFoldsWhatDecidesTheSearch::test_a_changed_query_ingredient_moves_the_identity[change0]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityFoldsWhatDecidesTheSearch::test_a_changed_query_ingredient_moves_the_identity[change1]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityFoldsWhatDecidesTheSearch::test_a_changed_query_ingredient_moves_the_identity[change2]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityFoldsWhatDecidesTheSearch::test_it_does_not_fold_things_that_do_not_decide_the_search",
  "tests/grounding/test_ref_journal.py::TestTheIdentityFoldsWhatDecidesTheSearch::test_the_pack_and_models_are_folded",
  "tests/grounding/test_ref_journal.py::TestTheIdentityFoldsWhatDecidesTheSearch::test_the_same_target_gives_the_same_identity",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_a_changed_world_coordinate_moves_the_identity[era_declaration]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_a_changed_world_coordinate_moves_the_identity[region_declaration]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_a_changed_world_coordinate_moves_the_identity[source_text]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_a_changed_world_coordinate_moves_the_identity[world_facts]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_a_changed_writer_input_moves_the_identity[change0]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_a_changed_writer_input_moves_the_identity[change1]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_a_changed_writer_input_moves_the_identity[change2]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_a_changed_writer_input_moves_the_identity[change3]",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_both_rounds_are_folded",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_it_does_not_hand_list_the_fields",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_post_processing_wording_does_not_move_it",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_the_pack_and_models_are_folded",
  "tests/grounding/test_ref_journal.py::TestTheIdentityIsTheOutboundPayload::test_the_same_everything_gives_the_same_identity",
  "tests/grounding/test_ref_journal.py::TestTheRunnerReusesInsteadOfRebuying::test_an_interrupted_buy_is_marked_uncertain",
  "tests/grounding/test_ref_journal.py::TestTheRunnerReusesInsteadOfRebuying::test_it_looks_the_journal_up_before_acquiring",
  "tests/grounding/test_ref_journal.py::TestTheRunnerReusesInsteadOfRebuying::test_the_journal_is_separate_from_the_chunk_one",
  "tests/grounding/test_ref_journal.py::TestTheRunnerReusesInsteadOfRebuying::test_the_record_file_is_merged_not_overwritten",
  "tests/grounding/test_ref_journal.py::TestTheSendAndTheIdentitySeeTheSameThing::test_write_brief_sends_exactly_what_the_identity_folds",
  "tests/grounding/test_ref_journal.py::TestTheSkippedPartsSurviveInTheRecord::test_the_journal_counts_are_recorded",
  "tests/grounding/test_ref_journal.py::TestTheSkippedPartsSurviveInTheRecord::test_the_record_carries_what_was_not_bought",
  "tests/grounding/test_ref_role_reaches_the_prompt.py::TestANewRoleMustBeDeclared::test_an_undeclared_role_stops",
  "tests/grounding/test_ref_role_reaches_the_prompt.py::TestANewRoleMustBeDeclared::test_the_enum_is_the_gate",
  "tests/grounding/test_ref_role_reaches_the_prompt.py::TestANewRoleMustBeDeclared::test_the_lists_must_stay_parallel",
  "tests/grounding/test_ref_role_reaches_the_prompt.py::TestCanBackgroundGeneralBeReused::test_it_talks_about_atmosphere_not_the_object",
  "tests/grounding/test_ref_role_reaches_the_prompt.py::TestCanBackgroundGeneralBeReused::test_the_object_role_says_include_the_object",
  "tests/grounding/test_ref_role_reaches_the_prompt.py::TestCanBackgroundGeneralBeReused::test_the_two_instructions_differ",
  "tests/grounding/test_ref_role_reaches_the_prompt.py::TestEveryRefReachesThePrompt::test_each_one_gets_an_instruction",
  "tests/grounding/test_ref_role_reaches_the_prompt.py::TestEveryRefReachesThePrompt::test_the_order_is_kept",
  "tests/grounding/test_ref_role_reaches_the_prompt.py::TestEveryRefReachesThePrompt::test_three_backgrounds_all_appear",
  "tests/grounding/test_reference_acquisition_contract.py::TestBuyingSomewhereElseStops::test_a_non_owner_raises",
  "tests/grounding/test_reference_acquisition_contract.py::TestBuyingSomewhereElseStops::test_the_message_says_why",
  "tests/grounding/test_reference_acquisition_contract.py::TestBuyingSomewhereElseStops::test_the_owner_may_buy",
  "tests/grounding/test_reference_acquisition_contract.py::TestItDoesNotFoldTheTargetSet::test_the_classifier_pack_is_not_folded",
  "tests/grounding/test_reference_acquisition_contract.py::TestItDoesNotFoldTheTargetSet::test_the_planner_contract_is_not_folded",
  "tests/grounding/test_reference_acquisition_contract.py::TestItMovesWhenTheThingsThatDecideTheReferenceMove::test_the_actual_round_count_moves_it",
  "tests/grounding/test_reference_acquisition_contract.py::TestItMovesWhenTheThingsThatDecideTheReferenceMove::test_the_bound_itself_is_not_folded",
  "tests/grounding/test_reference_acquisition_contract.py::TestItMovesWhenTheThingsThatDecideTheReferenceMove::test_the_coarse_pack_moves_it",
  "tests/grounding/test_reference_acquisition_contract.py::TestItMovesWhenTheThingsThatDecideTheReferenceMove::test_the_contract_version_moves_it",
  "tests/grounding/test_reference_acquisition_contract.py::TestItMovesWhenTheThingsThatDecideTheReferenceMove::test_the_per_round_cap_moves_it",
  "tests/grounding/test_reference_acquisition_contract.py::TestItMovesWhenTheThingsThatDecideTheReferenceMove::test_the_round_count_moves_it",
  "tests/grounding/test_reference_acquisition_contract.py::TestItMovesWhenTheThingsThatDecideTheReferenceMove::test_the_search_pack_moves_it",
  "tests/grounding/test_reference_acquisition_contract.py::TestNothingWaitsForAPerson::test_missing_reference_does_not_stop_the_run",
  "tests/grounding/test_reference_acquisition_contract.py::TestNothingWaitsForAPerson::test_no_match_and_retryable_are_different_states",
  "tests/grounding/test_reference_acquisition_contract.py::TestNothingWaitsForAPerson::test_nothing_blocks_downstream",
  "tests/grounding/test_reference_acquisition_contract.py::TestNothingWaitsForAPerson::test_the_blocking_question_is_asked_in_one_place",
  "tests/grounding/test_reference_acquisition_contract.py::TestNothingWaitsForAPerson::test_the_outcome_is_recorded_not_silent",
  "tests/grounding/test_reference_acquisition_contract.py::TestNothingWaitsForAPerson::test_the_two_failure_kinds_stay_distinguishable",
  "tests/grounding/test_reference_acquisition_contract.py::TestOnePlaceComputesIt::test_it_is_a_short_hex",
  "tests/grounding/test_reference_acquisition_contract.py::TestOnePlaceComputesIt::test_it_is_stable",
  "tests/grounding/test_reference_acquisition_contract.py::TestOnlyOnePlaceBuys::test_legacy_always_uses_the_outdoor_step",
  "tests/grounding/test_reference_acquisition_contract.py::TestOnlyOnePlaceBuys::test_shadow_plan_does_not_buy_v2_research",
  "tests/grounding/test_reference_acquisition_contract.py::TestOnlyOnePlaceBuys::test_the_door_and_the_manifest_predicate_share_one_function",
  "tests/grounding/test_reference_acquisition_contract.py::TestOnlyOnePlaceBuys::test_the_existence_flag_is_explicit_not_guessed",
  "tests/grounding/test_reference_acquisition_contract.py::TestOnlyOnePlaceBuys::test_v2_chunk_with_a_front_checkpoint_makes_the_front_the_owner",
  "tests/grounding/test_reference_acquisition_contract.py::TestOnlyOnePlaceBuys::test_v2_with_a_front_checkpoint_makes_the_front_the_owner",
  "tests/grounding/test_reference_acquisition_contract.py::TestOnlyOnePlaceBuys::test_v2_without_one_falls_back_to_the_outdoor_step",
  "tests/grounding/test_reference_acquisition_contract.py::TestTheOutdoorStepConsultsTheOwner::test_it_asks_who_the_owner_is",
  "tests/grounding/test_reference_acquisition_contract.py::TestTheOutdoorStepConsultsTheOwner::test_it_does_not_guess_v2_when_there_is_no_config",
  "tests/grounding/test_reference_acquisition_contract.py::TestTheOutdoorStepConsultsTheOwner::test_it_returns_without_buying_when_it_is_not_the_owner",
  "tests/grounding/test_reference_acquisition_contract.py::TestTheOutdoorStepConsultsTheOwner::test_the_projection_does_not_invent_a_shape",
  "tests/grounding/test_reference_acquisition_contract.py::TestTheOuterImageStepFoldsTheSameCallable::test_it_calls_the_exported_callable",
  "tests/grounding/test_reference_acquisition_contract.py::TestTheOuterImageStepFoldsTheSameCallable::test_it_does_not_recompute_the_formula",
  "tests/grounding/test_reference_acquisition_contract.py::TestTheOuterImageStepFoldsTheSameCallable::test_the_old_search_contract_is_still_folded",
  "tests/grounding/test_reference_acquisition_contract.py::TestThereIsNoQuietFallbackToPureT2I::test_allow_missing_is_off",
  "tests/grounding/test_reference_acquisition_contract.py::TestThereIsNoQuietFallbackToPureT2I::test_no_match_and_retryable_are_different_states",
  "tests/grounding/test_reference_acquisition_contract.py::TestThereIsNoQuietFallbackToPureT2I::test_no_match_still_blocks_downstream",
  "tests/grounding/test_reference_acquisition_contract.py::TestThereIsNoQuietFallbackToPureT2I::test_only_a_real_selection_passes",
  "tests/grounding/test_reference_acquisition_contract.py::TestThereIsNoQuietFallbackToPureT2I::test_retryable_blocks_too",
  "tests/grounding/test_reference_acquisition_step.py::TestBuyingIsNotWiredYet::test_it_refuses_to_buy_without_the_orchestration",
  "tests/grounding/test_reference_acquisition_step.py::TestItBindsBySubjectIdNotByName::test_a_materialized_row_carries_its_subject_id",
  "tests/grounding/test_reference_acquisition_step.py::TestItBindsBySubjectIdNotByName::test_an_extracted_row_is_matched_by_surface_form",
  "tests/grounding/test_reference_acquisition_step.py::TestItBindsBySubjectIdNotByName::test_an_unrelated_row_is_not_matched",
  "tests/grounding/test_reference_acquisition_step.py::TestTheStepIsRegisteredWhereItBelongs::test_a_missing_reference_blocks_downstream",
  "tests/grounding/test_reference_acquisition_step.py::TestTheStepIsRegisteredWhereItBelongs::test_it_does_not_run_in_legacy",
  "tests/grounding/test_reference_acquisition_step.py::TestTheStepIsRegisteredWhereItBelongs::test_it_is_invalidated_when_the_final_set_changes",
  "tests/grounding/test_reference_acquisition_step.py::TestTheStepIsRegisteredWhereItBelongs::test_it_is_invalidated_when_the_outlook_binding_changes",
  "tests/grounding/test_reference_acquisition_step.py::TestTheStepIsRegisteredWhereItBelongs::test_it_runs_after_outlook_and_before_the_scene",
  "tests/grounding/test_reference_acquisition_step.py::TestTheStepIsRegisteredWhereItBelongs::test_it_runs_between_filter_and_detail",
  "tests/grounding/test_reference_acquisition_step.py::TestWhoGetsBought::test_a_hard_target_that_survived_is_bought",
  "tests/grounding/test_reference_acquisition_step.py::TestWhoGetsBought::test_a_hard_target_the_filter_removed_is_not_bought",
  "tests/grounding/test_reference_acquisition_step.py::TestWhoGetsBought::test_a_not_hard_target_is_not_bought",
  "tests/grounding/test_reference_acquisition_step.py::TestWhoGetsBought::test_nothing_to_buy_is_a_normal_outcome",
  "tests/grounding/test_reference_acquisition_step.py::TestWhoGetsBought::test_research_route_alone_does_not_buy",
  "tests/grounding/test_reference_acquisition_step.py::TestWhoGetsBought::test_uncertain_counts_too",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsAdditive::test_a_member_without_bytes_stops",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsAdditive::test_an_unknown_purpose_stops",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsAdditive::test_each_member_keeps_its_provenance",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsAdditive::test_the_existing_plate_survives",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsAdditive::test_they_share_the_existing_kind",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsAdditive::test_two_members_land_on_all_four_lists",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsAdditiveAndKeepsTheOrder::test_the_canonical_order_is_kept",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsAdditiveAndKeepsTheOrder::test_the_existing_plate_survives",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsAdditiveAndKeepsTheOrder::test_they_share_the_existing_kind",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsStillInert::test_declaring_them_is_non_regressive",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsStillInert::test_every_role_is_declared_now",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsStillInert::test_nothing_in_app_imports_it",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsStillInert::test_the_context_role_is_already_declared",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsStillInert::test_the_detail_role_is_not_declared_yet",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsStillInert::test_the_new_roles_are_not_declared_yet",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsWiredButGated::test_declaring_them_is_non_regressive",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsWiredButGated::test_every_role_is_declared_now",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsWiredButGated::test_it_is_called_before_the_payload_is_built",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsWiredButGated::test_the_consumer_never_writes_the_required_list",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsWiredButGated::test_the_context_role_is_already_declared",
  "tests/grounding/test_reference_bundle_inert.py::TestItIsWiredButGated::test_the_production_assembly_calls_it",
  "tests/grounding/test_reference_bundle_inert.py::TestSelectedMustBeAttachedAndUnavailableMustNot::test_a_missing_selected_ref_stops",
  "tests/grounding/test_reference_bundle_inert.py::TestSelectedMustBeAttachedAndUnavailableMustNot::test_an_attached_bundle_passes",
  "tests/grounding/test_reference_bundle_inert.py::TestSelectedMustBeAttachedAndUnavailableMustNot::test_no_existing_waiver_can_satisfy_it[L01B01]",
  "tests/grounding/test_reference_bundle_inert.py::TestSelectedMustBeAttachedAndUnavailableMustNot::test_no_existing_waiver_can_satisfy_it[outdoor_canon:P1]",
  "tests/grounding/test_reference_bundle_inert.py::TestSelectedMustBeAttachedAndUnavailableMustNot::test_no_existing_waiver_can_satisfy_it[space_set_bg:g1:plate1]",
  "tests/grounding/test_reference_bundle_inert.py::TestSelectedMustBeAttachedAndUnavailableMustNot::test_only_selected_becomes_required",
  "tests/grounding/test_reference_bundle_inert.py::TestSelectedMustBeAttachedAndUnavailableMustNot::test_the_wrong_purpose_does_not_satisfy_it",
  "tests/grounding/test_reference_bundle_inert.py::TestSelectedMustBeAttachedAndUnavailableMustNot::test_unavailable_alone_requires_nothing",
  "tests/grounding/test_reference_bundle_inert.py::TestTheAcquisitionIdentityIsInTheKey::test_a_different_identity_moves_the_value",
  "tests/grounding/test_reference_bundle_inert.py::TestTheAcquisitionIdentityIsInTheKey::test_an_old_attachment_does_not_satisfy_a_new_obligation",
  "tests/grounding/test_reference_bundle_inert.py::TestTheAcquisitionIdentityIsInTheKey::test_no_identity_stops",
  "tests/grounding/test_reference_bundle_inert.py::TestTheAcquisitionIdentityIsInTheKey::test_other_sources_are_not_read_as_grounding[L01B01]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheAcquisitionIdentityIsInTheKey::test_other_sources_are_not_read_as_grounding[]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheAcquisitionIdentityIsInTheKey::test_other_sources_are_not_read_as_grounding[grounding:LP01:detail]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheAcquisitionIdentityIsInTheKey::test_other_sources_are_not_read_as_grounding[outdoor_canon:P1]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheAcquisitionIdentityIsInTheKey::test_other_sources_are_not_read_as_grounding[space_set_bg:g1:plate1]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheAcquisitionIdentityIsInTheKey::test_the_identity_order_does_not_matter",
  "tests/grounding/test_reference_bundle_inert.py::TestTheAcquisitionIdentityIsInTheKey::test_the_value_round_trips",
  "tests/grounding/test_reference_bundle_inert.py::TestTheOutcomeIsTheSourceOfTruth::test_a_missing_or_unknown_outcome_stops[None]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheOutcomeIsTheSourceOfTruth::test_a_missing_or_unknown_outcome_stops[]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheOutcomeIsTheSourceOfTruth::test_a_missing_or_unknown_outcome_stops[ok]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheOutcomeIsTheSourceOfTruth::test_a_missing_or_unknown_outcome_stops[selected_maybe]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheOutcomeIsTheSourceOfTruth::test_selected_becomes_required",
  "tests/grounding/test_reference_bundle_inert.py::TestTheOutcomeIsTheSourceOfTruth::test_selected_without_an_image_stops",
  "tests/grounding/test_reference_bundle_inert.py::TestTheOutcomeIsTheSourceOfTruth::test_the_raw_status_does_not_decide",
  "tests/grounding/test_reference_bundle_inert.py::TestTheOutcomeIsTheSourceOfTruth::test_unavailable_requires_nothing",
  "tests/grounding/test_reference_bundle_inert.py::TestTheSamePhotoBecomesOne::test_both_logical_members_survive_the_merge",
  "tests/grounding/test_reference_bundle_inert.py::TestTheSamePhotoBecomesOne::test_different_bytes_stay_two",
  "tests/grounding/test_reference_bundle_inert.py::TestTheSamePhotoBecomesOne::test_same_bytes_give_one_image",
  "tests/grounding/test_reference_bundle_inert.py::TestTheSamePhotoBecomesOne::test_the_input_order_does_not_change_the_plan",
  "tests/grounding/test_reference_bundle_inert.py::TestTheSamePhotoBecomesOne::test_the_merged_one_gets_the_combined_role",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValidatorReadsADurableList::test_a_missing_one_stops",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValidatorReadsADurableList::test_an_attached_bundle_passes",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValidatorReadsADurableList::test_no_existing_waiver_can_satisfy_it[L01B01]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValidatorReadsADurableList::test_no_existing_waiver_can_satisfy_it[outdoor_canon:P1]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValidatorReadsADurableList::test_no_existing_waiver_can_satisfy_it[space_set_bg:g1:plate1]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValidatorReadsADurableList::test_the_required_list_is_produced_with_the_photos",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValidatorReadsADurableList::test_the_wrong_purpose_does_not_satisfy_it",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValueCarriesWhereItCameFrom::test_an_empty_id_stops",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValueCarriesWhereItCameFrom::test_context_and_detail_differ",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValueCarriesWhereItCameFrom::test_other_sources_are_not_read_as_grounding[L01B01]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValueCarriesWhereItCameFrom::test_other_sources_are_not_read_as_grounding[]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValueCarriesWhereItCameFrom::test_other_sources_are_not_read_as_grounding[a:b:c]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValueCarriesWhereItCameFrom::test_other_sources_are_not_read_as_grounding[outdoor_canon:P1]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValueCarriesWhereItCameFrom::test_other_sources_are_not_read_as_grounding[space_set_bg:g1:plate1]",
  "tests/grounding/test_reference_bundle_inert.py::TestTheValueCarriesWhereItCameFrom::test_round_trips",
  "tests/grounding/test_reference_capability_contract.py::TestTheClientItselfDeclaresIt::test_a_client_without_the_contract_stops",
  "tests/grounding/test_reference_capability_contract.py::TestTheClientItselfDeclaresIt::test_every_client_declares_the_contract[GeminiImageClient]",
  "tests/grounding/test_reference_capability_contract.py::TestTheClientItselfDeclaresIt::test_every_client_declares_the_contract[GrokImageClient]",
  "tests/grounding/test_reference_capability_contract.py::TestTheClientItselfDeclaresIt::test_every_client_declares_the_contract[ReveImageClient]",
  "tests/grounding/test_reference_capability_contract.py::TestTheClientItselfDeclaresIt::test_gemini_does_not_invent_a_max",
  "tests/grounding/test_reference_capability_contract.py::TestTheClientItselfDeclaresIt::test_grok_inherits_the_same_contract",
  "tests/grounding/test_reference_capability_contract.py::TestTheClientItselfDeclaresIt::test_reve_says_exactly_one",
  "tests/grounding/test_reference_capability_contract.py::TestTheCountIsCheckedBeforeSending::test_a_client_that_takes_no_labeled_refs_stops",
  "tests/grounding/test_reference_capability_contract.py::TestTheCountIsCheckedBeforeSending::test_a_declared_max_is_enforced",
  "tests/grounding/test_reference_capability_contract.py::TestTheCountIsCheckedBeforeSending::test_an_unknown_max_does_not_block[0]",
  "tests/grounding/test_reference_capability_contract.py::TestTheCountIsCheckedBeforeSending::test_an_unknown_max_does_not_block[1]",
  "tests/grounding/test_reference_capability_contract.py::TestTheCountIsCheckedBeforeSending::test_an_unknown_max_does_not_block[3]",
  "tests/grounding/test_reference_capability_contract.py::TestTheCountIsCheckedBeforeSending::test_an_unknown_max_does_not_block[99]",
  "tests/grounding/test_reference_capability_contract.py::TestTheCountIsCheckedBeforeSending::test_reve_accepts_exactly_one",
  "tests/grounding/test_reference_capability_contract.py::TestTheCountIsCheckedBeforeSending::test_reve_refuses_more_than_one",
  "tests/grounding/test_reference_capability_contract.py::TestTheCountIsCheckedBeforeSending::test_reve_refuses_zero",
  "tests/grounding/test_reference_capability_contract.py::TestTheLockFoldsProviderAndCapability::test_a_different_model_moves_the_lock",
  "tests/grounding/test_reference_capability_contract.py::TestTheLockFoldsProviderAndCapability::test_a_different_provider_moves_the_lock",
  "tests/grounding/test_reference_capability_contract.py::TestTheLockFoldsProviderAndCapability::test_it_is_deterministic",
  "tests/grounding/test_reference_capability_contract.py::TestTheLockFoldsProviderAndCapability::test_the_capability_itself_is_in_the_lock",
  "tests/grounding/test_reference_capability_contract.py::TestTheSameMethodIsUsedEverywhere::test_no_number_is_hardcoded_in_the_contract_reader",
  "tests/grounding/test_reference_capability_contract.py::TestTheSameMethodIsUsedEverywhere::test_the_checker_reads_through_capability_of",
  "tests/grounding/test_reference_obligations.py::TestEachObligationAsksSomethingDifferent::test_context_and_detail_are_separate_obligations",
  "tests/grounding/test_reference_obligations.py::TestEachObligationAsksSomethingDifferent::test_the_identities_differ",
  "tests/grounding/test_reference_obligations.py::TestEachObligationAsksSomethingDifferent::test_they_carry_different_queries",
  "tests/grounding/test_reference_obligations.py::TestEachObligationAsksSomethingDifferent::test_they_have_different_subject_ids",
  "tests/grounding/test_reference_obligations.py::TestNothingIsLostOrDoubled::test_every_lane_survives",
  "tests/grounding/test_reference_obligations.py::TestNothingIsLostOrDoubled::test_non_background_lanes_get_no_purpose",
  "tests/grounding/test_reference_obligations.py::TestNothingIsLostOrDoubled::test_the_ids_are_unique",
  "tests/grounding/test_reference_obligations.py::TestSiblingsShareOneContextObligation::test_each_sibling_keeps_its_own_detail",
  "tests/grounding/test_reference_obligations.py::TestSiblingsShareOneContextObligation::test_it_covers_every_sibling",
  "tests/grounding/test_reference_obligations.py::TestSiblingsShareOneContextObligation::test_only_one_context_obligation_stands",
  "tests/grounding/test_reference_obligations.py::TestSiblingsShareOneContextObligation::test_the_parent_is_researched_once",
  "tests/grounding/test_reference_obligations.py::TestTheContractRatchetMoved::test_the_acquisition_identity_folds_only_what_goes_out",
  "tests/grounding/test_reference_obligations.py::TestTheContractRatchetMoved::test_the_obligation_version_moved",
  "tests/grounding/test_reference_obligations.py::TestTheContractRatchetMoved::test_the_obligation_version_rides_with_the_plan",
  "tests/grounding/test_reference_obligations.py::TestTheContractRatchetMoved::test_the_processing_stamp_moved",
  "tests/grounding/test_reference_obligations.py::TestTheContractRatchetMoved::test_the_producer_version_reaches_the_screen_config_hash",
  "tests/grounding/test_reference_obligations.py::TestTheParentScreenIsNotAskedAgain::test_it_uses_the_parents_own_search_material",
  "tests/grounding/test_reference_obligations.py::TestTheParentScreenIsNotAskedAgain::test_the_context_obligation_still_stands",
  "tests/grounding/test_reference_obligations.py::TestTheParentScreenIsNotAskedAgain::test_the_parent_row_itself_is_still_recorded",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_both_targets_actually_go_out",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_it_never_reuses_the_parts_own_brief",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_its_context_has_no_search_material_yet",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_no_place_id_is_conjured",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_the_context_keeps_the_models_own_evidence",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_the_part_owns_its_own_context",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_there_is_still_no_producer_for_host_context",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_they_ask_different_things",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_they_have_different_identities",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_without_material_it_makes_nothing_up[None]",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_without_material_it_makes_nothing_up[hc1]",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_without_material_it_makes_nothing_up[hc2]",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_without_material_it_makes_nothing_up[hc3]",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_without_material_it_makes_nothing_up[hc4]",
  "tests/grounding/test_reference_obligations.py::TestWithNoParentItInventsNoPlaceId::test_without_material_it_makes_nothing_up[hc5]",
  "tests/grounding/test_reference_rounds.py::TestItAsksTheVlmOnlyTwoThings::test_the_combine_contract_only_reads_kind_and_visibility",
  "tests/grounding/test_reference_rounds.py::TestItAsksTheVlmOnlyTwoThings::test_this_module_does_not_interpret_the_verdict_itself",
  "tests/grounding/test_reference_rounds.py::TestItLeavesWhatAHumanNeedsToSee::test_a_failed_download_is_recorded_not_dropped",
  "tests/grounding/test_reference_rounds.py::TestItLeavesWhatAHumanNeedsToSee::test_each_candidate_carries_what_each_judge_said",
  "tests/grounding/test_reference_rounds.py::TestItLeavesWhatAHumanNeedsToSee::test_every_downloaded_candidate_is_recorded_with_its_file",
  "tests/grounding/test_reference_rounds.py::TestItLeavesWhatAHumanNeedsToSee::test_the_chosen_reference_has_a_file_path",
  "tests/grounding/test_reference_rounds.py::TestItNarrowsOnceThenStops::test_a_second_round_with_no_new_candidates_stops_there",
  "tests/grounding/test_reference_rounds.py::TestItNarrowsOnceThenStops::test_it_retries_narrowed_and_then_gives_up",
  "tests/grounding/test_reference_rounds.py::TestItNarrowsOnceThenStops::test_the_narrowed_query_keeps_the_original_coordinates",
  "tests/grounding/test_reference_rounds.py::TestItPicksWhenTheKindMatches::test_a_matching_candidate_is_selected",
  "tests/grounding/test_reference_rounds.py::TestItPicksWhenTheKindMatches::test_the_lowest_eligible_index_wins",
  "tests/grounding/test_reference_rounds.py::TestNotSeenIsNotAbsent::test_a_judge_failure_is_recorded_and_the_run_still_ends_with_one",
  "tests/grounding/test_reference_rounds.py::TestNotSeenIsNotAbsent::test_a_judge_failure_is_retryable",
  "tests/grounding/test_reference_rounds.py::TestNotSeenIsNotAbsent::test_a_search_failure_is_retryable_not_no_match",
  "tests/grounding/test_reference_rounds.py::TestNotSeenIsNotAbsent::test_an_empty_directive_buys_nothing",
  "tests/grounding/test_reference_rounds.py::TestNotSeenIsNotAbsent::test_no_judge_survived_is_fail_closed",
  "tests/grounding/test_reference_rounds.py::TestNotSeenIsNotAbsent::test_no_judge_survived_still_picks_one_and_says_why",
  "tests/grounding/test_reference_rounds.py::TestTheBriefIsWrittenNotHandBuilt::test_a_writer_failure_is_retryable_not_no_match",
  "tests/grounding/test_reference_rounds.py::TestTheBriefIsWrittenNotHandBuilt::test_the_narrow_flag_reaches_the_writer_not_the_query",
  "tests/grounding/test_reference_rounds.py::TestTheBriefIsWrittenNotHandBuilt::test_the_narrow_round_actually_carries_the_hint",
  "tests/grounding/test_reference_rounds.py::TestTheBriefIsWrittenNotHandBuilt::test_the_runner_passes_a_writer",
  "tests/grounding/test_reference_rounds.py::TestTheBriefIsWrittenNotHandBuilt::test_the_written_directive_is_used_not_the_raw_name",
  "tests/grounding/test_reference_rounds.py::TestTheBriefIsWrittenNotHandBuilt::test_without_a_writer_it_still_works",
  "tests/grounding/test_reference_rounds.py::TestTheFakesMatchTheRealSignatures::test_download_fake_matches",
  "tests/grounding/test_reference_rounds.py::TestTheFakesMatchTheRealSignatures::test_search_fake_uses_the_real_argument_names",
  "tests/grounding/test_relation_projection_inert.py::TestItIsDeterministic::test_duplicates_collapse",
  "tests/grounding/test_relation_projection_inert.py::TestItIsDeterministic::test_the_input_order_does_not_matter",
  "tests/grounding/test_relation_projection_inert.py::TestItIsDeterministic::test_the_roles_are_fixed",
  "tests/grounding/test_relation_projection_inert.py::TestItIsStillInert::test_nothing_in_app_imports_it",
  "tests/grounding/test_relation_projection_inert.py::TestItIsStillInert::test_the_relation_sync_actually_consumes_it",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_junk_stops[bad0]",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_junk_stops[bad1]",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_junk_stops[bad2]",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_location_part_to_location_passes",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_other_pairs_stop[bad0]",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_other_pairs_stop[bad1]",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_other_pairs_stop[bad2]",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_other_pairs_stop[bad3]",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_other_pairs_stop[bad4]",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_outlook_is_not_in_the_table",
  "tests/grounding/test_relation_projection_inert.py::TestItOnlyLinksTheAllowedOwners::test_self_link_stops",
  "tests/grounding/test_relation_projection_inert.py::TestOneTypeNeverTouchesAnother::test_an_unknown_type_stops",
  "tests/grounding/test_relation_projection_inert.py::TestOneTypeNeverTouchesAnother::test_it_ignores_other_types",
  "tests/grounding/test_relation_projection_inert.py::TestOneTypeNeverTouchesAnother::test_missing_participants_stop",
  "tests/grounding/test_relation_projection_inert.py::TestOneTypeNeverTouchesAnother::test_the_caller_must_name_the_type",
  "tests/grounding/test_relation_projection_inert.py::TestTheExistingSyncIsAlreadyScoped::test_the_delete_set_comes_from_that_scoped_load",
  "tests/grounding/test_relation_projection_inert.py::TestTheExistingSyncIsAlreadyScoped::test_the_existing_loader_filters_by_type",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestDeclaredCoordinatesAreCarriedExactly::test_declared_values_override_the_model",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestDeclaredCoordinatesAreCarriedExactly::test_region_only_declaration_leaves_era_to_the_model",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestDeclaredCoordinatesAreCarriedExactly::test_the_canary_passes_the_fixture_declaration",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestDeclaredCoordinatesAreCarriedExactly::test_the_world_rules_step_applies_it",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestDeclaredCoordinatesAreCarriedExactly::test_without_a_declaration_the_model_value_stays_and_nothing_is_invented",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestRejudgeDoesNotClaimNoMatchWithoutRealSearches::test_one_searched_round_stays_retryable",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestRejudgeDoesNotClaimNoMatchWithoutRealSearches::test_two_searched_rounds_may_be_no_match",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestRoundOneGoesToEveryoneFirst::test_a_cap_of_n_blocks_the_second_pass",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestRoundOneGoesToEveryoneFirst::test_pass_order_with_the_real_journal_and_cap",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestRoundOneGoesToEveryoneFirst::test_resume_buys_nothing_again",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestRoundOneGoesToEveryoneFirst::test_the_step_cap_is_targets_times_passes",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestThePacksSayIt::test_brief_pack_five_is_pinned_and_has_the_rules",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestThePacksSayIt::test_chunk_pack_six_is_pinned_and_has_the_rules",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestThePacksSayIt::test_old_packs_are_untouched",
  "tests/grounding/test_research_blocks_declared_era_and_fair_rounds.py::TestThePacksSayIt::test_pack_five_dropped_the_fixed_noun_examples_of_four",
  "tests/grounding/test_research_forces_reference.py::TestAnUnsupportedOwnerBlocksInsteadOfPassing::test_a_character_and_a_prop_still_pass",
  "tests/grounding/test_research_forces_reference.py::TestAnUnsupportedOwnerBlocksInsteadOfPassing::test_a_location_blocks",
  "tests/grounding/test_research_forces_reference.py::TestAnUnsupportedOwnerBlocksInsteadOfPassing::test_an_outlook_facet_blocks",
  "tests/grounding/test_research_forces_reference.py::TestEveryOwnerNowGetsAReference::test_a_string_that_only_looks_like_an_id_still_blocks",
  "tests/grounding/test_research_forces_reference.py::TestEveryOwnerNowGetsAReference::test_every_lane_is_forced_not_blocked",
  "tests/grounding/test_research_forces_reference.py::TestOldRevisionsDoNotLeakIn::test_a_matching_revision_is_used",
  "tests/grounding/test_research_forces_reference.py::TestOldRevisionsDoNotLeakIn::test_a_no_source_subject_blocks",
  "tests/grounding/test_research_forces_reference.py::TestOldRevisionsDoNotLeakIn::test_a_stale_revision_is_ignored",
  "tests/grounding/test_research_forces_reference.py::TestOldRevisionsDoNotLeakIn::test_an_unbuilt_subject_blocks",
  "tests/grounding/test_research_forces_reference.py::TestResearchForcesAReference::test_a_researched_character_is_forced",
  "tests/grounding/test_research_forces_reference.py::TestResearchForcesAReference::test_a_researched_prop_is_not_provisional_any_more",
  "tests/grounding/test_research_forces_reference.py::TestResearchForcesAReference::test_an_already_required_subject_keeps_its_reason",
  "tests/grounding/test_research_forces_reference.py::TestResearchForcesAReference::test_it_only_raises_never_lowers",
  "tests/grounding/test_research_forces_reference.py::TestResearchForcesAReference::test_nothing_changes_when_the_set_is_empty",
  "tests/grounding/test_research_forces_reference.py::TestResearchForcesAReference::test_the_default_is_no_forcing[None]",
  "tests/grounding/test_research_forces_reference.py::TestResearchForcesAReference::test_the_default_is_no_forcing[marked1]",
  "tests/grounding/test_research_forces_reference.py::TestResearchForcesAReference::test_the_default_is_no_forcing[marked2]",
  "tests/grounding/test_research_forces_reference.py::TestTheEndToEndGate::test_an_unfinished_subject_blocks_the_policy[retryable]",
  "tests/grounding/test_research_forces_reference.py::TestTheEndToEndGate::test_an_unfinished_subject_blocks_the_policy[unresolved_terminal]",
  "tests/grounding/test_research_forces_reference.py::TestTheEndToEndGate::test_completed_no_does_not_force",
  "tests/grounding/test_research_forces_reference.py::TestTheEndToEndGate::test_completed_yes_forces_a_reference",
  "tests/grounding/test_research_forces_reference.py::TestTheEndToEndGate::test_the_latest_attempt_wins",
  "tests/grounding/test_research_forces_reference.py::TestTheEndToEndGate::test_the_override_passes_but_only_completed_yes_is_used",
  "tests/grounding/test_research_forces_reference.py::TestTheSupportedOwnersAreOneContract::test_a_facet_owner_gets_none_until_the_producer_stands",
  "tests/grounding/test_research_forces_reference.py::TestTheSupportedOwnersAreOneContract::test_a_facet_owner_now_gets_one",
  "tests/grounding/test_research_forces_reference.py::TestTheSupportedOwnersAreOneContract::test_a_string_that_only_looks_like_an_id_is_refused",
  "tests/grounding/test_research_forces_reference.py::TestTheSupportedOwnersAreOneContract::test_neither_consumer_compares_prefixes_on_its_own",
  "tests/grounding/test_research_forces_reference.py::TestTheSupportedOwnersAreOneContract::test_the_contract_names_who_can_get_a_reference",
  "tests/grounding/test_research_reaches_required_refs.py::TestOnlyPropAndCharacterAreSupported::test_a_location_is_not_turned_into_a_prop",
  "tests/grounding/test_research_reaches_required_refs.py::TestOnlyPropAndCharacterAreSupported::test_an_unknown_owner_is_not_forced",
  "tests/grounding/test_research_reaches_required_refs.py::TestOnlyPropAndCharacterAreSupported::test_c_and_p_still_pass",
  "tests/grounding/test_research_reaches_required_refs.py::TestTheCardAssemblyPassesItThrough::test_build_asset_requirements_accepts_them",
  "tests/grounding/test_research_reaches_required_refs.py::TestTheCardAssemblyPassesItThrough::test_the_builder_wires_the_forced_ids",
  "tests/grounding/test_research_reaches_required_refs.py::TestThePolicyReachesTheCard::test_a_forced_character_becomes_a_character_ref",
  "tests/grounding/test_research_reaches_required_refs.py::TestThePolicyReachesTheCard::test_a_forced_prop_becomes_a_prop_ref",
  "tests/grounding/test_research_reaches_required_refs.py::TestThePolicyReachesTheCard::test_a_manifest_without_the_grounding_field_forces_nothing",
  "tests/grounding/test_research_reaches_required_refs.py::TestThePolicyReachesTheCard::test_a_reference_required_for_another_reason_is_not_re_added",
  "tests/grounding/test_research_reaches_required_refs.py::TestThePolicyReachesTheCard::test_a_reference_that_is_already_there_is_not_doubled",
  "tests/grounding/test_research_reaches_required_refs.py::TestThePolicyReachesTheCard::test_a_shot_with_nothing_visible_forces_nothing",
  "tests/grounding/test_research_reaches_required_refs.py::TestThePolicyReachesTheCard::test_an_invisible_entity_is_not_forced",
  "tests/grounding/test_research_reaches_required_refs.py::TestThePolicyReachesTheCard::test_no_visibility_list_at_all_keeps_the_old_meaning",
  "tests/grounding/test_research_reaches_required_refs.py::TestThePolicyReachesTheCard::test_nothing_is_added_when_research_forced_nothing",
  "tests/grounding/test_research_reaches_required_refs.py::TestThePolicyReachesTheCard::test_the_meaning_is_not_recovered_from_a_reason_string",
  "tests/grounding/test_salvage_keeps_only_verified_scenes.py::test_a_fabricated_evidence_sentence_still_quarantines_the_row",
  "tests/grounding/test_salvage_keeps_only_verified_scenes.py::test_a_row_mentioned_in_both_scenes_keeps_both_scenes_evidence",
  "tests/grounding/test_salvage_keeps_only_verified_scenes.py::test_evidence_from_another_scene_is_dropped_and_recorded",
  "tests/grounding/test_salvage_keeps_only_verified_scenes.py::test_evidence_in_a_verified_scene_is_kept",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestResumeDoesNotReuseTheOldCard::test_the_stored_hash_no_longer_matches",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestTheIdentityMovesWhenTheContractMoves::test_a_new_acquisition_projection_moves_it",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestTheIdentityMovesWhenTheContractMoves::test_a_new_bundle_projection_moves_it",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestTheIdentityMovesWhenTheContractMoves::test_a_new_bundle_rule_moves_it",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestTheIdentityMovesWhenTheContractMoves::test_a_new_writer_contract_moves_it",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestTheIdentityMovesWhenTheContractMoves::test_the_chunk_run_has_a_different_identity",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestTheOldRunsAreByteIdentical::test_all_the_old_modes_share_one_identity",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestTheOldRunsAreByteIdentical::test_the_contract_is_not_folded_there[None]",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestTheOldRunsAreByteIdentical::test_the_contract_is_not_folded_there[legacy]",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestTheOldRunsAreByteIdentical::test_the_contract_is_not_folded_there[shadow_plan]",
  "tests/grounding/test_scene_detail_identity_knows_the_sidecar.py::TestTheOldRunsAreByteIdentical::test_the_contract_is_not_folded_there[v2]",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestAModernRunKeepsTheRegionAndInventsNoEra::test_a_modern_subject_is_not_skipped",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestAModernRunKeepsTheRegionAndInventsNoEra::test_no_period_line_appears",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestAModernRunKeepsTheRegionAndInventsNoEra::test_the_pack_tells_the_model_the_two_are_independent",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestAModernRunKeepsTheRegionAndInventsNoEra::test_the_region_is_there",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestAModernRunKeepsTheRegionAndInventsNoEra::test_there_are_no_fixed_place_nouns_in_the_pack",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestBothCoordinatesSurviveEveryRound::test_the_narrow_round_adds_the_hint",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestBothCoordinatesSurviveEveryRound::test_the_user_block_carries_both[False]",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestBothCoordinatesSurviveEveryRound::test_the_user_block_carries_both[True]",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestChangingACoordinateChangesTheIdentity::test_a_different_era_is_a_different_purchase",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestChangingACoordinateChangesTheIdentity::test_a_different_pack_is_a_different_purchase",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestChangingACoordinateChangesTheIdentity::test_a_different_region_is_a_different_purchase",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestChangingACoordinateChangesTheIdentity::test_the_identity_carries_the_resolved_pack",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestChangingACoordinateChangesTheIdentity::test_the_same_coordinates_reuse",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestItTakesTheCoordinatesFromTheStructuredFields::test_it_reads_era_and_region",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestItTakesTheCoordinatesFromTheStructuredFields::test_it_refuses_without_authoring_material",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestItTakesTheCoordinatesFromTheStructuredFields::test_missing_fields_are_empty_not_invented",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheCanaryChecksTheOutboundQueries::test_a_missing_region_is_named",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheCanaryChecksTheOutboundQueries::test_an_undeclared_coordinate_is_not_required",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheCanaryChecksTheOutboundQueries::test_both_present_passes",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheCanaryChecksTheOutboundQueries::test_it_counts_every_round",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheProductionCallerActuallyPassesIt::test_it_reaches_acquire_one",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheProductionCallerActuallyPassesIt::test_the_cap_reads_two_from_the_final_caller",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheProductionCallerActuallyPassesIt::test_the_central_caller_wires_write_brief",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheWorldBlockComesFromProduction::test_a_modern_block_still_anchors_the_place",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheWorldBlockComesFromProduction::test_it_carries_each_coordinate_on_its_own",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheWorldBlockComesFromProduction::test_it_keeps_the_rules_the_place_builder_throws_away",
  "tests/grounding/test_search_brief_carries_the_coordinates.py::TestTheWorldBlockComesFromProduction::test_the_step_calls_the_real_builder",
  "tests/grounding/test_short_id_counter_contract.py::TestOneParserNotTwo::test_every_owner_prefix_round_trips",
  "tests/grounding/test_short_id_counter_contract.py::TestOneParserNotTwo::test_it_uses_the_same_rule_as_owner_of_final_id",
  "tests/grounding/test_short_id_counter_contract.py::TestOnlyLocationPartChanges::test_the_new_contract_resolves_it[LP01-1]",
  "tests/grounding/test_short_id_counter_contract.py::TestOnlyLocationPartChanges::test_the_new_contract_resolves_it[LP103-103]",
  "tests/grounding/test_short_id_counter_contract.py::TestOnlyLocationPartChanges::test_the_new_contract_resolves_it[LP7-7]",
  "tests/grounding/test_short_id_counter_contract.py::TestOnlyLocationPartChanges::test_the_old_way_silently_drops_it[LP01]",
  "tests/grounding/test_short_id_counter_contract.py::TestOnlyLocationPartChanges::test_the_old_way_silently_drops_it[LP103]",
  "tests/grounding/test_short_id_counter_contract.py::TestOnlyLocationPartChanges::test_the_old_way_silently_drops_it[LP7]",
  "tests/grounding/test_short_id_counter_contract.py::TestOnlyLocationPartChanges::test_the_old_way_would_miscount_the_location_counter",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_both_refuse_the_same_junk[C08O09]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_both_refuse_the_same_junk[C]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_both_refuse_the_same_junk[L]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_both_refuse_the_same_junk[Pfoo]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_both_refuse_the_same_junk[]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_both_refuse_the_same_junk[xyz]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_same_prefix_and_number[C01]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_same_prefix_and_number[C100]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_same_prefix_and_number[C99]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_same_prefix_and_number[L103]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_same_prefix_and_number[L18]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_same_prefix_and_number[L7]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_same_prefix_and_number[O42]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_same_prefix_and_number[O9]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_same_prefix_and_number[P01]",
  "tests/grounding/test_short_id_counter_contract.py::TestTheNewContractAgreesOnEverythingThatWorkedBefore::test_same_prefix_and_number[P250]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[C01]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[C1]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[C99]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[L01]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[L07]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[L100]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[O01]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[O42]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[P00]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[P03]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_legacy_id_parses_the_same[P12]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_malformed_id_is_still_skipped[1C1]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_malformed_id_is_still_skipped[C0a]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_malformed_id_is_still_skipped[CO01]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_malformed_id_is_still_skipped[C]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_malformed_id_is_still_skipped[L-1]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_malformed_id_is_still_skipped[LL01]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_malformed_id_is_still_skipped[X01]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_a_malformed_id_is_still_skipped[]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_every_single_letter_owner_is_covered",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_the_counters_come_out_identical",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_the_stricter_cases_never_moved_a_counter[L-1]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheOldNumbersDoNotMove::test_the_stricter_cases_never_moved_a_counter[X01]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheServiceUsesTheOneContract::test_no_second_prefix_table_in_the_service",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheServiceUsesTheOneContract::test_the_service_imports_the_contract",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheTwoLetterOwnerNoLongerVanishes::test_a_location_part_id_now_counts[1]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheTwoLetterOwnerNoLongerVanishes::test_a_location_part_id_now_counts[42]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheTwoLetterOwnerNoLongerVanishes::test_a_location_part_id_now_counts[7]",
  "tests/grounding/test_short_id_prefix_equivalence.py::TestTheTwoLetterOwnerNoLongerVanishes::test_it_does_not_steal_the_location_counter",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_a_nonempty_catalog_has_no_maxitems",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_an_empty_catalog_closes_the_array",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_bound_complete_against_an_empty_catalog_drops_to_unresolved",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_bound_complete_against_an_empty_catalog_quarantines",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_the_audit_ids_survive_a_merge",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_unresolved_with_a_duplicate_keeps_one_and_records",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_unresolved_with_a_duplicate_quarantines",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_unresolved_with_a_shot_from_another_scene_is_dropped_with_a_reason",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_unresolved_with_a_shot_from_another_scene_quarantines",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_unresolved_with_an_unknown_id_is_dropped_with_a_reason",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_unresolved_with_an_unknown_id_quarantines",
  "tests/grounding/test_shot_catalog.py::TestCodexShotBindingCounterexamples::test_unresolved_with_good_audit_ids_survives",
  "tests/grounding/test_shot_catalog.py::TestGroundingWorldFactsKeepAllOwners::test_it_labels_the_rule_kind",
  "tests/grounding/test_shot_catalog.py::TestGroundingWorldFactsKeepAllOwners::test_readiness_is_not_a_character_count",
  "tests/grounding/test_shot_catalog.py::TestGroundingWorldFactsKeepAllOwners::test_the_grounding_builder_keeps_every_rule",
  "tests/grounding/test_shot_catalog.py::TestGroundingWorldFactsKeepAllOwners::test_the_place_builder_drops_costume",
  "tests/grounding/test_shot_catalog.py::TestGroundingWorldFactsKeepAllOwners::test_the_preflight_uses_the_production_builder",
  "tests/grounding/test_shot_catalog.py::TestQuarantineCoversShotBinding::test_a_good_binding_survives",
  "tests/grounding/test_shot_catalog.py::TestQuarantineCoversShotBinding::test_a_shot_from_another_scene_quarantines_the_row",
  "tests/grounding/test_shot_catalog.py::TestQuarantineCoversShotBinding::test_a_shot_outside_the_catalog_is_dropped_and_recorded",
  "tests/grounding/test_shot_catalog.py::TestQuarantineCoversShotBinding::test_without_a_catalog_the_row_is_unresolved_not_wrong",
  "tests/grounding/test_shot_catalog.py::TestTheBVerifierActuallyExercisesItsAxes::test_it_reports_a_zero_axis_as_a_problem",
  "tests/grounding/test_shot_catalog.py::TestTheBVerifierActuallyExercisesItsAxes::test_the_fingerprint_moves_with_the_catalog",
  "tests/grounding/test_shot_catalog.py::TestTheBVerifierActuallyExercisesItsAxes::test_the_identity_axes_use_the_production_callable",
  "tests/grounding/test_shot_catalog.py::TestTheCatalogComesFromTheRealCheckpoint::test_a_duplicate_shot_id_stops",
  "tests/grounding/test_shot_catalog.py::TestTheCatalogComesFromTheRealCheckpoint::test_ids_are_built_from_scene_and_shot_index",
  "tests/grounding/test_shot_catalog.py::TestTheCatalogComesFromTheRealCheckpoint::test_only_this_chunks_scenes_are_included",
  "tests/grounding/test_shot_catalog.py::TestTheCatalogComesFromTheRealCheckpoint::test_the_description_is_not_truncated",
  "tests/grounding/test_shot_catalog.py::TestTheCoverageQueryIsScopedAndNotHardcoded::test_a_failure_is_unknown_not_a_guess",
  "tests/grounding/test_shot_catalog.py::TestTheCoverageQueryIsScopedAndNotHardcoded::test_it_binds_both_project_and_episode",
  "tests/grounding/test_shot_catalog.py::TestTheCoverageQueryIsScopedAndNotHardcoded::test_no_hardcoded_credentials_or_subprocess_sql",
  "tests/grounding/test_shot_catalog.py::TestTheEpisodeSelectorIsDeterministic::test_a_tie_breaks_on_the_episode_id",
  "tests/grounding/test_shot_catalog.py::TestTheEpisodeSelectorIsDeterministic::test_candidates_need_two_chunks_and_world_facts",
  "tests/grounding/test_shot_catalog.py::TestTheEpisodeSelectorIsDeterministic::test_it_picks_the_same_one_twice",
  "tests/grounding/test_shot_catalog.py::TestTheEpisodeSelectorIsDeterministic::test_the_selector_never_reads_the_prose",
  "tests/grounding/test_shot_catalog.py::TestThePayloadCarriesTheCatalogWhole::test_a_real_catalog_can_be_built_at_all",
  "tests/grounding/test_shot_catalog.py::TestThePayloadCarriesTheCatalogWhole::test_the_catalog_rides_the_chunk_payload",
  "tests/grounding/test_shot_catalog.py::TestThePayloadCarriesTheCatalogWhole::test_the_real_catalog_sizes_are_recorded_not_guessed",
  "tests/grounding/test_shot_catalog.py::TestThePayloadCarriesTheCatalogWhole::test_without_a_catalog_the_schema_is_untouched",
  "tests/grounding/test_shot_catalog.py::TestTheRepetitionAxisCountsShots::test_merging_takes_the_weakest_state",
  "tests/grounding/test_shot_catalog.py::TestTheRepetitionAxisCountsShots::test_merging_unions_the_shots",
  "tests/grounding/test_shot_catalog.py::TestTheRepetitionAxisCountsShots::test_not_in_catalog_is_an_explicit_zero",
  "tests/grounding/test_shot_catalog.py::TestTheRepetitionAxisCountsShots::test_one_shot_does_not",
  "tests/grounding/test_shot_catalog.py::TestTheRepetitionAxisCountsShots::test_the_exception_axis_is_independent_of_the_binding",
  "tests/grounding/test_shot_catalog.py::TestTheRepetitionAxisCountsShots::test_the_registration_ledger_carries_unresolved",
  "tests/grounding/test_shot_catalog.py::TestTheRepetitionAxisCountsShots::test_two_shots_register",
  "tests/grounding/test_shot_catalog.py::TestTheRepetitionAxisCountsShots::test_unresolved_is_not_a_no",
  "tests/grounding/test_shot_catalog.py::TestTheRuntimeEnumIsThisCallsCatalog::test_the_enum_is_narrowed_to_the_catalog",
  "tests/grounding/test_shot_catalog.py::TestTheRuntimeEnumIsThisCallsCatalog::test_the_pack_itself_carries_no_fixed_ids",
  "tests/grounding/test_shot_catalog.py::TestTheRuntimeEnumIsThisCallsCatalog::test_the_status_enum_is_the_three_states",
  "tests/grounding/test_shot_catalog.py::TestTheSelectorRequiresShotImages::test_a_db_failure_is_not_read_as_no_images",
  "tests/grounding/test_shot_catalog.py::TestTheSelectorRequiresShotImages::test_it_only_picks_from_episodes_that_have_images",
  "tests/grounding/test_shot_catalog.py::TestTheSelectorRequiresShotImages::test_it_stops_instead_of_picking_a_blind_one",
  "tests/grounding/test_shot_catalog.py::TestTheSelectorRequiresShotImages::test_the_count_comes_from_the_shot_link_not_the_episode",
  "tests/grounding/test_shot_catalog.py::TestTheThreeStatesTruthTable::test_a_bad_id_among_good_ones_is_dropped_alone",
  "tests/grounding/test_shot_catalog.py::TestTheThreeStatesTruthTable::test_a_duplicate_id_is_dropped_and_the_rest_kept",
  "tests/grounding/test_shot_catalog.py::TestTheThreeStatesTruthTable::test_a_duplicate_id_is_refused",
  "tests/grounding/test_shot_catalog.py::TestTheThreeStatesTruthTable::test_a_naked_empty_array_is_refused",
  "tests/grounding/test_shot_catalog.py::TestTheThreeStatesTruthTable::test_a_shot_from_another_scene_is_refused",
  "tests/grounding/test_shot_catalog.py::TestTheThreeStatesTruthTable::test_an_id_outside_the_catalog_is_refused",
  "tests/grounding/test_shot_catalog.py::TestTheThreeStatesTruthTable::test_an_unknown_state_is_refused",
  "tests/grounding/test_shot_catalog.py::TestTheThreeStatesTruthTable::test_bound_complete_keeps_the_ids",
  "tests/grounding/test_shot_catalog.py::TestTheThreeStatesTruthTable::test_not_in_catalog_must_be_exactly_empty",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestCandidatesComeFromCoordinatesOnly::test_a_bad_scene_index_gives_nothing",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestCandidatesComeFromCoordinatesOnly::test_a_part_without_coordinates_is_never_a_candidate",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestCandidatesComeFromCoordinatesOnly::test_a_scene_nobody_named_gets_nothing",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestCandidatesComeFromCoordinatesOnly::test_it_does_not_match_by_name",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestCandidatesComeFromCoordinatesOnly::test_no_place_words_in_the_source",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestCandidatesComeFromCoordinatesOnly::test_only_the_scene_the_producer_named",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheLaneIsRead::test_location_parts_are_a_lane",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheLaneIsRead::test_names_and_descriptions_both_carry_it",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheLaneIsRead::test_the_old_lanes_are_untouched",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheOldCheckpointIsNotReused::test_the_hash_folds_it",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheOldCheckpointIsNotReused::test_the_schema_version_moved",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheRealFixtureHasCandidates::test_not_every_part_lands_in_every_scene",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheRealFixtureHasCandidates::test_now_every_scene_gets_its_own_candidates",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheRealFixtureHasCandidates::test_the_director_had_none_of_them",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheRealFixtureHasCandidates::test_the_lane_is_not_empty",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheRealFixtureHasCandidates::test_the_manifest_agrees_with_the_step",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheRealFixtureHasCandidates::test_the_verified_three_are_candidates_somewhere",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheSegmentIdRuleLivesInOnePlace::test_an_unknown_shape_is_not_guessed",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheSegmentIdRuleLivesInOnePlace::test_both_recorded_shapes_are_read",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheSegmentIdRuleLivesInOnePlace::test_making_and_reading_agree",
  "tests/grounding/test_shot_director_sees_location_parts.py::TestTheSegmentIdRuleLivesInOnePlace::test_the_outlook_binder_uses_the_same_one",
  "tests/grounding/test_sidecar_writer.py::TestItReachesTheRealAssembly::test_an_empty_rpc_attaches_nothing",
  "tests/grounding/test_sidecar_writer.py::TestItReachesTheRealAssembly::test_the_assembly_attaches_exactly_what_was_written",
  "tests/grounding/test_sidecar_writer.py::TestNoSidecarMeansNoChange::test_a_shot_that_sees_none_of_them_writes_nothing",
  "tests/grounding/test_sidecar_writer.py::TestNoSidecarMeansNoChange::test_an_absent_central_output_writes_nothing[None]",
  "tests/grounding/test_sidecar_writer.py::TestNoSidecarMeansNoChange::test_an_absent_central_output_writes_nothing[cp1]",
  "tests/grounding/test_sidecar_writer.py::TestNoSidecarMeansNoChange::test_an_absent_central_output_writes_nothing[cp2]",
  "tests/grounding/test_sidecar_writer.py::TestNoSidecarMeansNoChange::test_an_absent_central_output_writes_nothing[cp3]",
  "tests/grounding/test_sidecar_writer.py::TestNoSidecarMeansNoChange::test_an_empty_visible_list_writes_nothing",
  "tests/grounding/test_sidecar_writer.py::TestOnlyWhatThisShotSeesLands::test_a_sibling_pulls_in_the_shared_parent_context",
  "tests/grounding/test_sidecar_writer.py::TestOnlyWhatThisShotSeesLands::test_both_siblings_share_one_parent_member",
  "tests/grounding/test_sidecar_writer.py::TestOnlyWhatThisShotSeesLands::test_it_matches_by_final_id_not_by_name",
  "tests/grounding/test_sidecar_writer.py::TestOnlyWhatThisShotSeesLands::test_the_other_sibling_is_not_dragged_in",
  "tests/grounding/test_sidecar_writer.py::TestTheInvisibleSiblingNeverLeaks::test_a_shot_seeing_only_the_place_gets_no_part_detail",
  "tests/grounding/test_sidecar_writer.py::TestTheInvisibleSiblingNeverLeaks::test_only_the_visible_part_detail_lands",
  "tests/grounding/test_sidecar_writer.py::TestTheInvisibleSiblingNeverLeaks::test_the_parent_context_is_still_pulled_in",
  "tests/grounding/test_sidecar_writer.py::TestTheInvisibleSiblingNeverLeaks::test_the_required_list_names_no_invisible_sibling",
  "tests/grounding/test_sidecar_writer.py::TestTheRolesAreTheDeclaredOnes::test_an_undeclared_role_stops",
  "tests/grounding/test_sidecar_writer.py::TestTheRolesAreTheDeclaredOnes::test_both_place_lanes_use_the_existing_background_slot",
  "tests/grounding/test_sidecar_writer.py::TestTheRolesAreTheDeclaredOnes::test_context_alone_and_detail_alone",
  "tests/grounding/test_sidecar_writer.py::TestTheRolesAreTheDeclaredOnes::test_every_role_it_can_use_is_already_declared",
  "tests/grounding/test_sidecar_writer.py::TestTheRolesAreTheDeclaredOnes::test_one_photo_serving_both_gets_the_combined_role",
  "tests/grounding/test_sidecar_writer.py::TestWhatWasNotFoundIsStillRecorded::test_it_is_written_but_makes_no_requirement",
  "tests/grounding/test_sidecar_writer.py::TestWhatWasNotFoundIsStillRecorded::test_the_detail_still_lands",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestAliasOnlyJoinsSelectedAnswersAndMatchesPassTwo::test_a_selected_pass_one_answer_is_aliased_and_not_rebought",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestAliasOnlyJoinsSelectedAnswersAndMatchesPassTwo::test_an_old_no_match_is_not_aliased_and_the_broad_search_runs",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestAliasOnlyJoinsSelectedAnswersAndMatchesPassTwo::test_an_old_retryable_pass_one_is_rebought_broad_and_pass_two_follows",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestAliasOnlyJoinsSelectedAnswersAndMatchesPassTwo::test_an_old_selected_pass_two_is_aliased_when_the_fresh_pass_one_matches",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestAliasOnlyJoinsSelectedAnswersAndMatchesPassTwo::test_the_pass_two_suffix_is_one_function_for_new_and_legacy",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestOldPurchasesAreAliasedNotRebought::test_alias_joins_the_old_line_and_takes_no_new_slot",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestOldPurchasesAreAliasedNotRebought::test_the_central_pass_aliases_when_the_writer_knows_the_legacy_identity",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestOneObligationPerOutfit::test_the_outbound_query_for_an_outfit_is_the_whole_outfit_skeleton",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestOneObligationPerOutfit::test_three_piece_rows_become_one_outfit_obligation",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestOrphanSlotsDoNotStarveCurrentTargets::test_slots_of_subjects_that_are_no_longer_targets_widen_the_cap",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestProviderFailuresDoNotKillTheLane::test_a_connection_error_is_uncertain_not_refused",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestProviderFailuresDoNotKillTheLane::test_a_refusal_frees_the_slot_for_the_next_attempt",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestProviderFailuresDoNotKillTheLane::test_a_timeout_is_still_uncertain",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestProviderFailuresDoNotKillTheLane::test_rejudge_rows_skips_a_row_whose_provider_failed",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestSkeletonIsWhatGoesOutAndWhatIsIdentified::test_identity_ignores_prose_but_moves_with_the_skeleton",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestSkeletonIsWhatGoesOutAndWhatIsIdentified::test_legacy_identity_still_moves_with_prose",
  "tests/grounding/test_skeleton_identity_and_one_obligation_per_outfit.py::TestSkeletonIsWhatGoesOutAndWhatIsIdentified::test_outbound_carries_the_skeleton_only",
  "tests/grounding/test_steps_have_what_they_call.py::test_every_self_call_resolves[entity_detail]",
  "tests/grounding/test_steps_have_what_they_call.py::test_every_self_call_resolves[entity_filter]",
  "tests/grounding/test_steps_have_what_they_call.py::test_every_self_call_resolves[entity_merge]",
  "tests/grounding/test_steps_have_what_they_call.py::test_every_self_call_resolves[entity_relation]",
  "tests/grounding/test_steps_have_what_they_call.py::test_every_self_call_resolves[entity_t2i]",
  "tests/grounding/test_steps_have_what_they_call.py::test_every_self_call_resolves[episode_reference_policy]",
  "tests/grounding/test_steps_have_what_they_call.py::test_every_self_call_resolves[grounding_chunk]",
  "tests/grounding/test_steps_have_what_they_call.py::test_every_self_call_resolves[grounding_screen]",
  "tests/grounding/test_steps_have_what_they_call.py::test_every_self_call_resolves[reference_acquisition]",
  "tests/grounding/test_steps_have_what_they_call.py::test_every_self_call_resolves[scene_detail]",
  "tests/grounding/test_steps_have_what_they_call.py::test_the_guarded_call_is_not_a_finding",
  "tests/grounding/test_steps_have_what_they_call.py::test_the_producer_can_read_previous_checkpoints",
  "tests/grounding/test_steps_have_what_they_call.py::test_this_test_would_have_caught_it",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestEveryRelationKindGetsItsOwnPermutation::test_all_decision_permutations_serialize_to_one[part_of]",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestEveryRelationKindGetsItsOwnPermutation::test_all_decision_permutations_serialize_to_one[same_referent]",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestEveryRelationKindGetsItsOwnPermutation::test_the_relation_actually_took_effect[part_of]",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestEveryRelationKindGetsItsOwnPermutation::test_the_relation_actually_took_effect[same_referent]",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestOrderIndependenceAsAProperty::test_every_permutation_of_plain_rows_gives_the_same_bytes",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestOrderIndependenceAsAProperty::test_every_permutation_with_a_merge_gives_the_same_bytes",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestOrderIndependenceAsAProperty::test_the_decision_order_does_not_matter_either",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestPartOfIsAlsoOrderIndependent::test_every_decision_permutation_gives_the_same_bytes",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestPartOfIsAlsoOrderIndependent::test_the_parts_are_in_canonical_order",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestPartOfIsAlsoOrderIndependent::test_the_parts_still_survive_as_their_own_rows",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheChainOnARealManuscript::test_all_five_owners_survive_and_get_ids",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheChainOnARealManuscript::test_the_manuscript_verifies_every_quote",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheChainOnARealManuscript::test_the_once_only_hard_thing_is_registered_by_the_exception",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheChainOnARealManuscript::test_the_part_is_not_folded_into_the_whole",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheChainOnARealManuscript::test_the_same_thing_in_two_chunks_becomes_one_registered_row",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheChainOnARealManuscript::test_the_same_word_for_two_different_things_is_not_merged",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheChainOnARealManuscript::test_the_twice_seen_sign_needs_the_exception_axis",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheChainOnARealManuscript::test_twice_in_one_chunk_counts_as_two",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheChainOnARealManuscript::test_twice_in_one_scene_is_still_one_appearance",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheChainOnARealManuscript::test_twice_in_one_shot_is_still_one_appearance",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheManuscriptItself::test_every_span_lands_on_its_word",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheManuscriptItself::test_the_chunks_are_the_production_convention",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheManuscriptItself::test_the_shots_match_the_scenes",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_a_quote_that_is_not_there_stops_before_anything",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_a_span_coordinate_that_is_not_a_plain_int_stops[0]",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_a_span_coordinate_that_is_not_a_plain_int_stops[1.0]",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_a_span_coordinate_that_is_not_a_plain_int_stops[None]",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_a_span_coordinate_that_is_not_a_plain_int_stops[True]",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_a_split_ledger_conflict_stops_the_same_way_either_order[0]",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_a_split_ledger_conflict_stops_the_same_way_either_order[1]",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_a_string_bool_in_the_ledger_stops",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_an_empty_quote_cannot_skip_the_check",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_every_kept_row_gets_its_own_verdict",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_it_refuses_to_run_without_the_manuscript",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_one_exception_does_not_register_its_neighbour",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_the_happy_path_runs_end_to_end",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_the_module_exposes_only_the_verified_path",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_two_chunks_merge_and_register_through_the_endpoint",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestThePublicEndpointCannotSkipVerification::test_two_different_things_do_not_pool_their_occurrences",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheRegistrationLedgerIsPerReferent::test_a_dropped_candidate_gets_no_final_id",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheRegistrationLedgerIsPerReferent::test_a_registered_row_keeps_its_id_whatever_drops_around_it",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheRegistrationLedgerIsPerReferent::test_a_unrelated_singles_are_both_false",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheRegistrationLedgerIsPerReferent::test_an_id_contested_row_is_not_quietly_registered",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheRegistrationLedgerIsPerReferent::test_b_only_the_twice_seen_one_registers",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheRegistrationLedgerIsPerReferent::test_c_only_the_flagged_one_registers",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheRegistrationLedgerIsPerReferent::test_every_entry_carries_its_final_id",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheRegistrationLedgerIsPerReferent::test_the_ledger_never_shows_an_id_the_map_does_not_have",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheRegistrationLedgerIsPerReferent::test_two_registered_rows_get_different_ids",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheStoredRowDoesNotDependOnArrivalOrder::test_merging_gives_the_same_row_either_arrival_order",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheStoredRowDoesNotDependOnArrivalOrder::test_the_occurrences_are_in_span_order",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheStoredRowDoesNotDependOnArrivalOrder::test_the_rows_are_in_canonical_order",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTheStoredRowDoesNotDependOnArrivalOrder::test_the_whole_result_is_byte_identical_either_arrival_order",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTwoMorePropertiesOfTheEndpoint::test_adding_an_unrelated_row_changes_nothing_for_the_others",
  "tests/grounding/test_synthetic_episode_endpoint.py::TestTwoMorePropertiesOfTheEndpoint::test_feeding_the_result_back_in_is_stable",
  "tests/grounding/test_text_only_search_spec.py::TestExistingCallersStillGetImages::test_the_three_image_callers_are_unchanged",
  "tests/grounding/test_text_only_search_spec.py::TestTextOnlyDropsTheImageBlock::test_it_is_still_a_web_search_tool",
  "tests/grounding/test_text_only_search_spec.py::TestTextOnlyDropsTheImageBlock::test_max_results_is_ignored_when_text_only",
  "tests/grounding/test_text_only_search_spec.py::TestTextOnlyDropsTheImageBlock::test_text_only_carries_no_image_settings",
  "tests/grounding/test_text_only_search_spec.py::TestTextOnlyDropsTheImageBlock::test_text_only_omits_the_content_types_key",
  "tests/grounding/test_text_only_search_spec.py::TestTheDefaultDoesNotChange::test_an_explicit_max_results_still_lands",
  "tests/grounding/test_text_only_search_spec.py::TestTheDefaultDoesNotChange::test_default_still_asks_for_images",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestAReopenedCentralStepKeepsTheDoors::test_reopen_keeps_the_table_even_when_completed",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestAReopenedCentralStepKeepsTheDoors::test_steps_scope_keeps_the_doors_only_when_the_central_step_is_named",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestFlippingTheSettingOnAFinishedRun::test_a_flip_over_a_folding_cp_is_refused",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestFlippingTheSettingOnAFinishedRun::test_a_flip_with_no_folding_cp_is_safe",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestFlippingTheSettingOnAFinishedRun::test_an_unknown_previous_counts_as_flipped",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestFlippingTheSettingOnAFinishedRun::test_no_flip_passes_even_over_a_folding_cp",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestFlippingTheSettingOnAFinishedRun::test_the_folding_scan_reads_the_registry",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestFlippingTheSettingOnAFinishedRun::test_the_real_run_can_flip",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheDeclarationAsksThePredicate::test_off_means_false",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheDeclarationAsksThePredicate::test_on_means_true",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheDeclarationAsksThePredicate::test_the_legacy_alias_counts_as_on",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheOutboundDoorsAreZeroOnceTheCentralStepIsDone::test_a_completed_central_step_closes_both_doors",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheOutboundDoorsAreZeroOnceTheCentralStepIsDone::test_a_fresh_run_keeps_the_table",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheOutboundDoorsAreZeroOnceTheCentralStepIsDone::test_a_partial_central_step_keeps_the_doors_open",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheOutboundDoorsAreZeroOnceTheCentralStepIsDone::test_the_real_run_closes_the_doors",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheOutboundDoorsAreZeroOnceTheCentralStepIsDone::test_the_zeroed_door_really_refuses_at_provider_zero",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheScenarioCarriesTheRealSetting::test_a_declaration_that_lies_is_refused",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheScenarioCarriesTheRealSetting::test_a_declaration_that_matches_passes",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheScenarioCarriesTheRealSetting::test_it_records_the_actual_value",
  "tests/grounding/test_the_canary_declares_background_mode_honestly.py::TestTheScenarioCarriesTheRealSetting::test_scope_sees_the_background_axis",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestFlippingALaneOnAResumedRun::test_flip_is_refused_when_a_completed_step_folds_it",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestFlippingALaneOnAResumedRun::test_flip_is_safe_when_no_completed_step_folds_the_setting",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheAxesReadTheActualSettings::test_a_declaration_that_lies_is_refused",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheAxesReadTheActualSettings::test_a_declaration_that_matches_passes",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheAxesReadTheActualSettings::test_all_three_axes_are_scenario_axes",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheAxesReadTheActualSettings::test_off_off_off",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheAxesReadTheActualSettings::test_outdoor_any_lane_flag_is_on",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheAxesReadTheActualSettings::test_still_recipe_v1_is_on",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheAxesReadTheActualSettings::test_the_scenario_records_every_axis",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheFixtureDeclaresWhatProductionCannotAnswer::test_has_outlooks_comes_from_the_fixture",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheFixtureDeclaresWhatProductionCannotAnswer::test_the_plan_no_longer_has_unknown_steps_with_lanes_off",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheFixtureDeclaresWhatProductionCannotAnswer::test_without_a_fixture_has_outlooks_is_not_declared",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheRunIdentityIsNotRetyped::test_a_different_fixture_is_refused",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheRunIdentityIsNotRetyped::test_an_old_record_without_a_scenario_cannot_be_checked",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheRunIdentityIsNotRetyped::test_the_resume_gate_checks_it_before_anything_else",
  "tests/grounding/test_the_canary_declares_every_lane_axis.py::TestTheRunIdentityIsNotRetyped::test_the_same_identity_passes_even_if_the_target_changes",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestImportingTheCanaryDoesNotLoadSettings::test_a_clean_interpreter_imports_canary_run_without_config",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestMainPreparesTheEnvBeforeSettings::test_prepare_env_comes_before_scenario_in_main",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestNoInProcessDatabaseImport::test_scenario_and_flip_scan_leave_the_database_module_unloaded",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestNoInProcessDatabaseImport::test_the_flip_scan_still_sees_the_registry",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestTheSettingsAndEngineGuards::test_engine_guard_reads_the_real_engine",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestTheSettingsAndEngineGuards::test_engine_guard_refuses_a_foreign_engine",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestTheSettingsAndEngineGuards::test_run_checks_the_engine_before_bootstrap_and_pipeline",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestTheSettingsAndEngineGuards::test_settings_guard_passes_when_settings_follow_the_env",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestTheSettingsAndEngineGuards::test_settings_guard_refuses_a_foreign_settings",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestTheSettingsAndEngineGuards::test_the_comparison_is_by_identity_not_by_string",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestTheWrongOrderIsRefusedAndTheRightOrderReuses::test_env_first_then_import_reuses_the_canary_project",
  "tests/grounding/test_the_canary_env_comes_before_settings.py::TestTheWrongOrderIsRefusedAndTheRightOrderReuses::test_settings_loaded_before_env_is_refused_before_any_db_use",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestANarrowedDryShowsOnlyWhatItRuns::test_a_full_run_has_no_narrowed_block",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestANarrowedDryShowsOnlyWhatItRuns::test_the_narrowed_block_carries_eight_and_sixteen",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheAfternoonPairAreAlsoPerScene::test_group_unit_steps_are_bounded_by_the_fan_out_cap",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheAfternoonPairAreAlsoPerScene::test_group_unit_steps_are_bounded_by_the_production_caps",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheAfternoonPairAreAlsoPerScene::test_stage_one_closure_units_are_declared",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheAfternoonPairAreAlsoPerScene::test_the_declared_scene_set_is_exactly_the_four",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheAfternoonPairAreAlsoPerScene::test_the_worker_calls_the_llm_and_execute_submits_it[scene_camera_flow-app.core.steps.scene_camera_flow_step-_process_scene]",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheAfternoonPairAreAlsoPerScene::test_the_worker_calls_the_llm_and_execute_submits_it[scene_consistency-app.core.steps.scene_consistency_step-_process_one_scene]",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheDeclaredUnitMatchesProduction::test_every_declared_step_is_checked_here",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheDeclaredUnitMatchesProduction::test_shot_director_really_calls_per_scene",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheDeclaredUnitMatchesProduction::test_shot_selection_really_calls_per_scene",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheEarlyTextStepsFanOutPerSceneOrLess::test_beat_and_shot_extract_submit_per_bundle_of_scenes",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheEarlyTextStepsFanOutPerSceneOrLess::test_grounding_chunk_submits_per_chunk",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheEarlyTextStepsFanOutPerSceneOrLess::test_scene_summary_submits_per_scene",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheEarlyTextStepsFanOutPerSceneOrLess::test_shot_validator_submits_per_scene",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheEarlyTextStepsFanOutPerSceneOrLess::test_they_are_scene_units_in_the_contract",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheNumbersAndTheGateShareOneSource::test_no_second_cap_rule_survives",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheNumbersAndTheGateShareOneSource::test_the_counted_caps_are_eight_and_eight",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheNumbersAndTheGateShareOneSource::test_the_gate_uses_the_same_caps",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheNumbersAndTheGateShareOneSource::test_the_period_fixture_gives_four_and_four",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheOldRuleWouldHaveRefusedTheThirdScene::test_manifest_alone_says_one",
  "tests/grounding/test_the_cap_follows_the_production_fan_out_unit.py::TestTheOldRuleWouldHaveRefusedTheThirdScene::test_the_new_rule_says_scenes",
  "tests/grounding/test_the_central_cap_is_checked_before_the_provider.py::TestTheGateReadsTheScreenOutput::test_a_plan_that_covers_the_obligations_passes_with_both_numbers",
  "tests/grounding/test_the_central_cap_is_checked_before_the_provider.py::TestTheGateReadsTheScreenOutput::test_more_obligations_than_planned_recomputes_the_cap_instead_of_stopping",
  "tests/grounding/test_the_central_cap_is_checked_before_the_provider.py::TestTheGateReadsTheScreenOutput::test_the_central_unit_is_in_the_producer_gate_table",
  "tests/grounding/test_the_central_cap_is_checked_before_the_provider.py::TestTheGateReadsTheScreenOutput::test_without_a_fixture_name_it_still_stops",
  "tests/grounding/test_the_central_cap_is_checked_before_the_provider.py::TestTheGateReadsTheScreenOutput::test_without_the_screen_cp_the_declared_floor_stands",
  "tests/grounding/test_the_central_cap_is_checked_before_the_provider.py::TestThePlanRecordsItsBasis::test_build_plan_writes_the_target_count_it_used",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestCorrectionsAreNewRowsNotEdits::test_a_superseded_row_dies",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestCorrectionsAreNewRowsNotEdits::test_two_agreeing_live_rows_are_fine",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestCorrectionsAreNewRowsNotEdits::test_two_conflicting_live_rows_fail_safe",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheDecisionIsBoundToWhatWasSeen::test_a_missing_identity_field_stops",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheDecisionIsBoundToWhatWasSeen::test_an_absent_coordinate_is_not_invented",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheDecisionIsBoundToWhatWasSeen::test_every_identity_field_changes_the_hash",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheDecisionIsBoundToWhatWasSeen::test_the_canonical_bytes_are_stable",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheLoginFormGoesOnlyWhereItShould::test_it_has_no_password_in_it",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheLoginFormGoesOnlyWhereItShould::test_it_keeps_the_query_string_intact",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheLoginFormGoesOnlyWhereItShould::test_it_refuses_somewhere_else",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_both_routes_are_registered",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_every_route_requires_a_user",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_it_checks_what_the_person_actually_saw",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_it_never_updates_or_deletes",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_the_client_cannot_send_the_identity_either",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_the_client_cannot_send_the_reviewer",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_the_photo_sha_comes_from_the_file_now",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_the_server_rebuilds_the_payload_from_frozen_things",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_the_server_takes_the_actor_from_the_session",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_the_verdict_list_is_closed",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheOnlyDoorIsTheAuthenticatedEndpoint::test_writing_needs_more_than_read_access",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestThePageComesFromTheSameDoor::test_a_photo_that_will_not_load_disables_the_buttons",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestThePageComesFromTheSameDoor::test_both_new_routes_need_a_user",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestThePageComesFromTheSameDoor::test_it_only_reads_frozen_files",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestThePageComesFromTheSameDoor::test_the_backend_serves_the_page_itself",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestThePageComesFromTheSameDoor::test_the_page_keys_photos_by_identity",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestThePageComesFromTheSameDoor::test_the_page_posts_to_its_own_prefix",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestThePageComesFromTheSameDoor::test_the_photo_route_opens_only_a_candidate",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestThePageComesFromTheSameDoor::test_the_photo_route_will_not_leave_the_root",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheProjectionReadsTheDatabase::test_a_different_coordinate_does_not_inherit_it_either",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheProjectionReadsTheDatabase::test_a_different_photo_does_not_inherit_the_verdict",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheProjectionReadsTheDatabase::test_a_verified_row_becomes_verified_in_the_checkpoint",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheProjectionReadsTheDatabase::test_the_declared_axes_must_agree_with_what_went_out",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheRevisionIdFitsTheColumn::test_every_revision_id_is_short_enough",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheServerRefusesWhatWasNotSeen::test_a_different_coordinate_stops",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheServerRefusesWhatWasNotSeen::test_a_different_sha_stops",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheServerRefusesWhatWasNotSeen::test_nothing_observed_stops",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheServerRefusesWhatWasNotSeen::test_the_same_thing_passes",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheTableIsTheRecord::test_it_is_its_own_table",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheTableIsTheRecord::test_production_schema_path_is_closed_too",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheTableIsTheRecord::test_the_migration_is_additive_only",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestTheTableIsTheRecord::test_the_same_send_twice_is_one_row",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestWhatTheCheckpointGetsIsAProjection::test_a_decision_for_another_input_does_not_follow",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestWhatTheCheckpointGetsIsAProjection::test_an_unknown_verdict_folds_to_unverified",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestWhatTheCheckpointGetsIsAProjection::test_no_decision_is_unverified",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestWhatTheCheckpointGetsIsAProjection::test_only_verified_is_usable",
  "tests/grounding/test_the_human_verdict_is_the_record.py::TestWhatTheCheckpointGetsIsAProjection::test_rejected_is_not_usable_either",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageApprovalIsBoundToTheExactScope::test_only_the_exact_scope_gets_the_value",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageApprovalIsBoundToTheExactScope::test_the_resume_gate_compares_it",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageApprovalIsBoundToTheExactScope::test_the_scenario_carries_it",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageApprovalIsBoundToTheExactScope::test_the_scope_gate_refuses_a_plan_with_another_approval",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageApprovalIsBoundToTheExactScope::test_unlisted_scope_is_zero",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageCapIsCumulative::test_a_correction_is_the_record",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageCapIsCumulative::test_a_terminal_attempt_is_not_subtracted_twice",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageCapIsCumulative::test_an_open_attempt_refuses",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageCapIsCumulative::test_ceiling_zero_means_a_closed_door_not_a_refusal",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageCapIsCumulative::test_first_attempt_twenty_then_the_next_opens_only_twenty",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageCapIsCumulative::test_nothing_left_refuses",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageCapIsCumulative::test_old_attempts_without_the_column_count_as_zero",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageCapIsCumulative::test_over_the_ceiling_refuses",
  "tests/grounding/test_the_image_cap_is_run_wide_and_scope_bound.py::TestTheImageCapIsCumulative::test_the_pipeline_opens_only_the_remainder",
  "tests/grounding/test_the_image_steps_are_metered.py::TestExpectedUnitsComeFromProductionCheckpoints::test_already_generated_references_are_subtracted",
  "tests/grounding/test_the_image_steps_are_metered.py::TestExpectedUnitsComeFromProductionCheckpoints::test_counts_follow_the_checkpoints",
  "tests/grounding/test_the_image_steps_are_metered.py::TestExpectedUnitsComeFromProductionCheckpoints::test_expected_image_and_text_totals",
  "tests/grounding/test_the_image_steps_are_metered.py::TestPerRunExtraTextCalls::test_scene_image_pipeline_has_one_world_guide_call_per_run",
  "tests/grounding/test_the_image_steps_are_metered.py::TestPerRunExtraTextCalls::test_the_plan_adds_it_to_normal_and_hard",
  "tests/grounding/test_the_image_steps_are_metered.py::TestTheCapsAreCheckedAgainstProductionOutput::test_a_done_step_is_not_checked",
  "tests/grounding/test_the_image_steps_are_metered.py::TestTheCapsAreCheckedAgainstProductionOutput::test_an_immobilized_state_over_cap_refuses",
  "tests/grounding/test_the_image_steps_are_metered.py::TestTheCapsAreCheckedAgainstProductionOutput::test_outlook_pairs_over_cap_refuse",
  "tests/grounding/test_the_image_steps_are_metered.py::TestTheCapsAreCheckedAgainstProductionOutput::test_outlook_pairs_within_cap_pass",
  "tests/grounding/test_the_image_steps_are_metered.py::TestTheCapsAreCheckedAgainstProductionOutput::test_state_variants_use_the_production_predicate",
  "tests/grounding/test_the_image_steps_are_metered.py::TestTheFourStepsHaveVerifiedUnits::test_image_calls_per_unit",
  "tests/grounding/test_the_image_steps_are_metered.py::TestTheFourStepsHaveVerifiedUnits::test_none_of_them_is_unverified",
  "tests/grounding/test_the_image_steps_are_metered.py::TestTheFourStepsHaveVerifiedUnits::test_scene_text_is_zero_with_lvm_off_and_follows_settings_when_on",
  "tests/grounding/test_the_image_steps_are_metered.py::TestTheFourStepsHaveVerifiedUnits::test_text_calls_are_dual_lvm",
  "tests/grounding/test_the_image_steps_are_metered.py::TestTheFourStepsHaveVerifiedUnits::test_the_dual_vlm_is_really_two_calls",
  "tests/grounding/test_the_image_steps_are_metered.py::TestThePlanUsesTheFixtureCaps::test_a_missing_cap_is_refused",
  "tests/grounding/test_the_image_steps_are_metered.py::TestThePlanUsesTheFixtureCaps::test_image_plan_totals",
  "tests/grounding/test_the_image_steps_are_metered.py::TestThePlanUsesTheFixtureCaps::test_logical_units",
  "tests/grounding/test_the_image_steps_are_metered.py::TestThePlanUsesTheFixtureCaps::test_the_fixtures_declare_both_caps",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestABoughtButUnjudgedPassIsNotFinished::test_a_pass_that_chose_is_completed",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestABoughtButUnjudgedPassIsNotFinished::test_a_pass_that_could_not_look_is_a_retry_debt",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestABoughtButUnjudgedPassIsNotFinished::test_a_pass_that_looked_and_found_nothing_is_completed",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestABoughtButUnjudgedPassIsNotFinished::test_bought_pictures_nobody_looked_at_make_it_partial",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestABoughtButUnjudgedPassIsNotFinished::test_it_never_becomes_failed",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestAlreadyJudgedRowsAreNotJudgedAgain::test_a_retryable_row_is_still_picked_up",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestAlreadyJudgedRowsAreNotJudgedAgain::test_no_match_after_retry_is_terminal",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestAlreadyJudgedRowsAreNotJudgedAgain::test_the_central_assembly_skips_it_too",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestItStopsBeforeSpendingWhenTheFilesAreNotWhatWeSaved::test_a_changed_file_stops",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestItStopsBeforeSpendingWhenTheFilesAreNotWhatWeSaved::test_a_missing_file_stops",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestItStopsBeforeSpendingWhenTheFilesAreNotWhatWeSaved::test_a_path_outside_the_root_stops",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestItStopsBeforeSpendingWhenTheFilesAreNotWhatWeSaved::test_a_round_with_no_candidates_stops",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestItStopsBeforeSpendingWhenTheFilesAreNotWhatWeSaved::test_an_absolute_path_in_the_record_stops",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestRejudgeUsesOnlyWhatWeAlreadyBought::test_it_cannot_even_reach_search_or_download",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestRejudgeUsesOnlyWhatWeAlreadyBought::test_nothing_eligible_is_recorded_as_no_match",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestRejudgeUsesOnlyWhatWeAlreadyBought::test_the_judge_gets_openable_paths_and_the_record_stays_relative",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheCentralAssemblyOnlyAssembles::test_it_judges_once_and_a_second_run_judges_zero",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheCentralAssemblyOnlyAssembles::test_it_never_touches_search_or_download",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheCentralAssemblyOnlyAssembles::test_the_cap_stops_without_widening_and_keeps_what_is_done",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheCentralAssemblyOnlyAssembles::test_the_replay_identity_never_collides_with_the_purchase_one",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheReplayHasItsOwnIdentity::test_order_url_and_bytes_each_change_it",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheReplayHasItsOwnIdentity::test_the_same_pictures_in_the_same_order_are_the_same_replay",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheReplayHasItsOwnLedger::test_a_full_run_rejudges_every_pending_row",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheReplayHasItsOwnLedger::test_the_central_branch_uses_the_replay_ledger",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheReplayHasItsOwnLedger::test_the_two_journals_are_different_files",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheStepPicksTheReplayOnlyWhenThereIsSomethingToRedo::test_a_bought_row_with_pictures_and_no_choice_counts",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheStepPicksTheReplayOnlyWhenThereIsSomethingToRedo::test_a_row_that_was_never_bought_does_not_count",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheStepPicksTheReplayOnlyWhenThereIsSomethingToRedo::test_a_row_with_no_pictures_does_not_count",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheStepPicksTheReplayOnlyWhenThereIsSomethingToRedo::test_an_already_chosen_row_does_not_count",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheStepPicksTheReplayOnlyWhenThereIsSomethingToRedo::test_the_central_branch_only_calls_it_when_there_is_work",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheStepTellsResumeItIsNotDone::test_a_finished_pass_verifies_clean",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheStepTellsResumeItIsNotDone::test_no_checkpoint_verifies_clean",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestTheStepTellsResumeItIsNotDone::test_pending_rejudge_makes_verify_incomplete",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestWhatTheJudgeGetsCanBeOpened::test_every_path_the_judge_receives_is_a_real_file",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestWhatTheJudgeGetsCanBeOpened::test_the_judge_input_is_not_what_gets_recorded",
  "tests/grounding/test_the_judge_can_open_what_it_judges.py::TestWhatTheJudgeGetsCanBeOpened::test_the_record_keeps_the_relative_path",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestCallsPerUnitFollowProduction::test_build_plan_splits_normal_from_hard",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestCallsPerUnitFollowProduction::test_entity_t2i_attempts_three_in_source",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestCallsPerUnitFollowProduction::test_scene_detail_structure_matches_the_declared_eight",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestCallsPerUnitFollowProduction::test_scene_detail_structure_matches_the_declared_twenty_eight",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestCallsPerUnitFollowProduction::test_shot_staging_hard_cap_is_batches_times_max_attempts",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestCallsPerUnitFollowProduction::test_unlisted_steps_default_to_one",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestEveryMeteredStepHasADeclaredUnit::test_an_unknown_step_stops",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestEveryMeteredStepHasADeclaredUnit::test_closure_steps_are_all_in_the_table[scene_detail-legacy]",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestEveryMeteredStepHasADeclaredUnit::test_closure_steps_are_all_in_the_table[scene_detail-v2_chunk]",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestEveryMeteredStepHasADeclaredUnit::test_closure_steps_are_all_in_the_table[scene_image_pipeline-legacy]",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestEveryMeteredStepHasADeclaredUnit::test_closure_steps_are_all_in_the_table[scene_image_pipeline-v2_chunk]",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestEveryMeteredStepHasADeclaredUnit::test_closure_steps_are_all_in_the_table[world_guide-legacy]",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestEveryMeteredStepHasADeclaredUnit::test_closure_steps_are_all_in_the_table[world_guide-v2_chunk]",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheEntityCapIsDeclaredByTheFixture::test_a_fixture_without_the_declaration_stops",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheEntityCapIsDeclaredByTheFixture::test_every_canary_fixture_declares_it",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheEntityCapIsDeclaredByTheFixture::test_period_fixture_declares_at_least_the_measured_count",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheEntityCapMustCoverTheRealQueue::test_a_done_entity_step_is_not_measured",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheEntityCapMustCoverTheRealQueue::test_a_queue_inside_the_cap_passes",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheEntityCapMustCoverTheRealQueue::test_a_queue_over_the_cap_stops",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheGroupCapComesFromProductionSettings::test_an_unlisted_group_step_stops",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheGroupCapComesFromProductionSettings::test_production_selects_seeds_with_both_caps",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheGroupCapComesFromProductionSettings::test_the_cap_is_the_sum_of_the_two_production_caps",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheGroupCapComesFromProductionSettings::test_the_second_lane_only_counts_when_enabled",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheRepairChainIsMeasuredDirectly::test_the_declared_twenty_eight_is_built_from_five",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheRepairChainIsMeasuredDirectly::test_the_plain_path_is_two_calls",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheRepairChainIsMeasuredDirectly::test_the_worst_path_is_five_calls",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheUnitsThatWereReadMatchTheCode::test_scene_detail_is_per_shot",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheUnitsThatWereReadMatchTheCode::test_shot_staging_batches_by_the_production_constant",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestTheUnitsThatWereReadMatchTheCode::test_world_guide_makes_one_call",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestUnverifiedUnitsFailClosedBeforeTheProvider::test_run_refuses_a_live_with_an_unverified_step_still_to_buy",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestUnverifiedUnitsFailClosedBeforeTheProvider::test_the_stage_one_remaining_steps_are_all_verified",
  "tests/grounding/test_the_metering_unit_is_an_explicit_contract.py::TestUnverifiedUnitsFailClosedBeforeTheProvider::test_unverified_units_in_reports_only_unverified",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestAVerifiedButInvisibleSubjectIsNotAFailure::test_but_a_visible_verified_one_that_did_not_land_fails",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestAVerifiedButInvisibleSubjectIsNotAFailure::test_it_passes_and_is_written_down_separately",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestAVerifiedButInvisibleSubjectIsNotAFailure::test_nothing_visible_at_all_is_still_not_a_pass",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestItBuysNothing::test_it_does_not_even_take_a_provider",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestItBuysNothing::test_it_only_reads",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestItBuysNothing::test_no_provider_name_anywhere",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestItRefusesToInventVisibility::test_an_empty_shot_list_stops",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestItRefusesToInventVisibility::test_it_takes_the_answer_as_given",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestItRefusesToInventVisibility::test_no_shot_director_stops",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestRowsAreKeyedBySubjectNotFinalId::test_two_purposes_of_one_final_id_are_both_kept",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestTheAuditListsKeepTheSubject::test_a_prop_subject_without_purpose_gets_an_empty_purpose",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestTheAuditListsKeepTheSubject::test_unavailable_context_and_selected_detail_stay_apart",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestTheVerdictsSplitTheAxes::test_a_clean_run_passes_every_axis",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestTheVerdictsSplitTheAxes::test_a_double_lane_attachment_fails",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestTheVerdictsSplitTheAxes::test_a_leaked_sha_fails",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestTheVerdictsSplitTheAxes::test_a_skipped_context_row_does_not_hide_the_verified_detail_row",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestTheVerdictsSplitTheAxes::test_an_empty_background_lane_is_not_a_pass",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestTheVerdictsSplitTheAxes::test_an_unverified_in_the_payload_fails",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestTheVerdictsSplitTheAxes::test_but_a_final_id_with_no_verified_row_still_fails",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestWhatLandsInThePayload::test_every_selected_one_lands",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestWhatLandsInThePayload::test_it_records_order_role_bytes_and_sha",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestWhatLandsInThePayload::test_nothing_visible_lands_nothing",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestWhatLandsInThePayload::test_only_the_verified_one_lands",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestWhatLandsInThePayload::test_the_same_bytes_carry_both_subjects",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestWhatLandsInThePayload::test_the_same_bytes_do_not_drag_the_rejected_one_in",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestWhatLandsInThePayload::test_the_sha_is_of_the_bytes_that_actually_go",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestWhatWasDeclaredIsWhatWentOut::test_both_are_recorded_separately",
  "tests/grounding/test_the_payload_probe_measures_the_exit.py::TestWhatWasDeclaredIsWhatWentOut::test_the_declared_and_the_loaded_sha_agree",
  "tests/grounding/test_the_person_picks_one_photo.py::test_both_verified_then_select_b_then_switch_to_a",
  "tests/grounding/test_the_person_picks_one_photo.py::test_select_serialises_on_the_subject_rows",
  "tests/grounding/test_the_person_picks_one_photo.py::test_selecting_before_any_verdict_records_but_does_not_attach",
  "tests/grounding/test_the_person_picks_one_photo.py::test_the_page_words_follow_the_three_questions",
  "tests/grounding/test_the_person_picks_one_photo.py::test_two_live_selections_are_fail_closed_and_the_next_pick_replaces_both",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestItDoesNotGuessMeaning::test_a_coordinate_nobody_could_have_hardcoded_works",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestItDoesNotGuessMeaning::test_a_paraphrase_does_not_pass",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestItDoesNotGuessMeaning::test_no_place_or_country_list_in_the_source",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestItDoesNotGuessMeaning::test_nothing_is_compared_against_a_literal",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestOnlyWhatIsDeclaredIsRequired::test_a_missing_era_stops",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestOnlyWhatIsDeclaredIsRequired::test_a_missing_region_stops",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestOnlyWhatIsDeclaredIsRequired::test_an_empty_term_is_not_a_violation",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestOnlyWhatIsDeclaredIsRequired::test_both_declared_and_both_carried_passes",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestOnlyWhatIsDeclaredIsRequired::test_it_checks_every_term_not_just_the_first",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestOnlyWhatIsDeclaredIsRequired::test_nothing_declared_requires_nothing",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestOnlyWhatIsDeclaredIsRequired::test_region_alone_is_mandatory_and_era_is_not_invented",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestProviderExpansionIsObservedNotGated::test_a_candidate_without_a_binding_is_unknown_not_guessed",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestProviderExpansionIsObservedNotGated::test_it_counts_the_expansion_loss_separately",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestProviderExpansionIsObservedNotGated::test_it_never_gates",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestProviderExpansionIsObservedNotGated::test_it_separates_ours_from_the_providers",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestTheGateStandsBeforeTheProvider::test_a_bad_brief_never_reaches_search",
  "tests/grounding/test_the_query_carries_the_declared_coordinates.py::TestTheGateStandsBeforeTheProvider::test_a_good_brief_passes_and_is_recorded",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestThePageBuysNothing::test_it_only_reads_frozen_things",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestThePageBuysNothing::test_no_provider_call_in_the_builder",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestThePageShowsEveryChosenPhoto::test_all_five_are_there_and_openable",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestThePageShowsEveryChosenPhoto::test_each_carries_the_declared_coordinates",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestThePageShowsEveryChosenPhoto::test_each_carries_the_source_url",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestThePageShowsEveryChosenPhoto::test_every_downloaded_candidate_is_there_and_openable",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestThePageShowsEveryChosenPhoto::test_the_identity_differs_per_photo",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestTheRenderedPage::test_a_missing_photo_cannot_be_picked",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestTheRenderedPage::test_a_missing_photo_disables_both_buttons",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestTheRenderedPage::test_it_asks_one_question_per_target",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestTheRenderedPage::test_it_declares_utf8_first",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestTheRenderedPage::test_it_never_sends_the_reviewer",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestTheRenderedPage::test_it_sends_what_the_person_saw",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestTheRenderedPage::test_it_separates_ours_from_the_expansion",
  "tests/grounding/test_the_review_page_shows_what_matters.py::TestTheRenderedPage::test_it_shows_five_photos_and_ten_buttons",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestAllThreeConsumersShareTheHelper::test_it_calls_row_content_sha256[_write_grounding_sidecar-detail_steps]",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestAllThreeConsumersShareTheHelper::test_it_calls_row_content_sha256[central_cp_with_reviews-fidelity_review]",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestAllThreeConsumersShareTheHelper::test_it_calls_row_content_sha256[measure_shot-probe]",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheHelperReadsTheBytesNotAMissingField::test_a_missing_file_gives_no_hash",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheHelperReadsTheBytesNotAMissingField::test_sha_is_of_the_file_bytes",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheHelperReadsTheBytesNotAMissingField::test_the_old_field_read_fails_on_the_real_shape",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheHelperReadsTheBytesNotAMissingField::test_the_real_shaped_row_attaches_through_production_write_for_shot",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheProductionWrapperItselfAttaches::test_the_wrapper_stops_on_a_coordinate_conflict",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheProductionWrapperItselfAttaches::test_write_grounding_sidecar_records_two_members_with_hash_and_coordinate",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheRealCanaryRowsAttach::test_lp01_and_lp03_attach_from_the_real_checkpoint",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheTwoCoordinatesMustAgree::test_a_selected_row_with_no_coordinate_stops",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheTwoCoordinatesMustAgree::test_conflicting_coordinates_stop_before_attachment",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheTwoCoordinatesMustAgree::test_equal_coordinates_give_sha_and_coordinate_of_the_same_file",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheTwoCoordinatesMustAgree::test_one_side_only_is_accepted",
  "tests/grounding/test_the_sidecar_hashes_the_bytes_production_actually_has.py::TestTheTwoCoordinatesMustAgree::test_the_fidelity_api_uses_the_same_helper",
  "tests/grounding/test_the_sidecar_needs_both_axes.py::TestOneVerdictMakesExactlyOnePhotoUsable::test_the_six_axes",
  "tests/grounding/test_the_sidecar_needs_both_axes.py::TestTheConsumerHashMovesWithTheContracts::test_changing_one_contract_changes_the_hash",
  "tests/grounding/test_the_sidecar_needs_both_axes.py::TestTheConsumerHashMovesWithTheContracts::test_the_hash_folds_the_four_contracts",
  "tests/grounding/test_the_sidecar_needs_both_axes.py::TestTheRealCheckpointAttachesNothingUnverified::test_a_verified_copy_attaches_by_the_canonical_contract",
  "tests/grounding/test_the_sidecar_needs_both_axes.py::TestTheRealCheckpointAttachesNothingUnverified::test_the_background_entry_requires_nothing",
  "tests/grounding/test_the_sidecar_needs_both_axes.py::TestTheRealCheckpointAttachesNothingUnverified::test_the_outlook_entry_requires_nothing",
  "tests/grounding/test_the_sidecar_needs_both_axes.py::TestTheRealCheckpointAttachesNothingUnverified::test_the_rest_stay_unverified_not_unavailable",
  "tests/grounding/test_the_sidecar_needs_both_axes.py::TestTheRealCheckpointAttachesNothingUnverified::test_the_selected_five_are_all_unverified",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheBoundaryOwnsTheLaneMeaning::test_a_row_counted_in_both_lanes_stops",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheBoundaryOwnsTheLaneMeaning::test_it_gives_twelve_and_ten",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheBoundaryOwnsTheLaneMeaning::test_it_refuses_when_the_row_is_not_in_the_other_lane",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheBoundaryOwnsTheLaneMeaning::test_it_survives_a_restart",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheBoundaryOwnsTheLaneMeaning::test_running_it_twice_changes_nothing",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheJournalDoesNotKnowWhatAReplayIs::test_a_broken_transfer_record_stops_on_load",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheJournalDoesNotKnowWhatAReplayIs::test_a_transfer_of_a_row_it_does_not_have_stops",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheJournalDoesNotKnowWhatAReplayIs::test_a_transfer_pointing_at_a_missing_row_stops_on_load",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheJournalDoesNotKnowWhatAReplayIs::test_it_only_records_that_a_row_is_not_its_own",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheJournalDoesNotKnowWhatAReplayIs::test_no_lane_word_in_the_general_journal",
  "tests/grounding/test_the_two_lanes_do_not_double_count.py::TestTheStepReconcilesBeforeItJudges::test_the_central_rejudge_calls_it_first",
  "tests/grounding/test_the_verdict_reaches_production.py::TestASupersededVerdictChangesWhatAttaches::test_reverting_a_verdict_changes_nothing_in_production",
  "tests/grounding/test_the_verdict_reaches_production.py::TestASupersededVerdictChangesWhatAttaches::test_reverting_a_verdict_removes_the_attachment",
  "tests/grounding/test_the_verdict_reaches_production.py::TestASupersededVerdictChangesWhatAttaches::test_the_policy_forced_set_follows_too",
  "tests/grounding/test_the_verdict_reaches_production.py::TestChangingTheVerdictInvalidatesTheOldResult::test_the_digest_is_not_in_the_purchase_identity",
  "tests/grounding/test_the_verdict_reaches_production.py::TestChangingTheVerdictInvalidatesTheOldResult::test_the_policy_audit_carries_the_digest",
  "tests/grounding/test_the_verdict_reaches_production.py::TestChangingTheVerdictInvalidatesTheOldResult::test_the_policy_audit_has_no_review_digest",
  "tests/grounding/test_the_verdict_reaches_production.py::TestChangingTheVerdictReopensThePolicy::test_legacy_and_v2_hashes_do_not_move",
  "tests/grounding/test_the_verdict_reaches_production.py::TestChangingTheVerdictReopensThePolicy::test_the_digest_stays_out_of_the_purchase_identity",
  "tests/grounding/test_the_verdict_reaches_production.py::TestChangingTheVerdictReopensThePolicy::test_the_resume_hash_does_not_move_when_a_verdict_lands",
  "tests/grounding/test_the_verdict_reaches_production.py::TestChangingTheVerdictReopensThePolicy::test_the_resume_hash_moves_when_a_verdict_lands",
  "tests/grounding/test_the_verdict_reaches_production.py::TestChangingTheVerdictReopensThePolicy::test_the_step_runner_uses_this_hash_not_the_fallback",
  "tests/grounding/test_the_verdict_reaches_production.py::TestItFailsClosedWhenTheRecordIsBroken::test_a_missing_checkpoint_stops",
  "tests/grounding/test_the_verdict_reaches_production.py::TestItFailsClosedWhenTheRecordIsBroken::test_a_missing_checkpoint_stops_at_the_consumer",
  "tests/grounding/test_the_verdict_reaches_production.py::TestItFailsClosedWhenTheRecordIsBroken::test_a_missing_photo_only_loses_that_row",
  "tests/grounding/test_the_verdict_reaches_production.py::TestItFailsClosedWhenTheRecordIsBroken::test_a_missing_photo_stops",
  "tests/grounding/test_the_verdict_reaches_production.py::TestItFailsClosedWhenTheRecordIsBroken::test_an_unreadable_table_stops",
  "tests/grounding/test_the_verdict_reaches_production.py::TestTheChainReadsTheDatabase::test_a_rejection_does_not_reach_production",
  "tests/grounding/test_the_verdict_reaches_production.py::TestTheChainReadsTheDatabase::test_a_verified_row_attaches_only_itself",
  "tests/grounding/test_the_verdict_reaches_production.py::TestTheChainReadsTheDatabase::test_a_verified_row_changes_nothing_in_production",
  "tests/grounding/test_the_verdict_reaches_production.py::TestTheChainReadsTheDatabase::test_no_verdict_attaches_every_selected_row",
  "tests/grounding/test_the_verdict_reaches_production.py::TestTheChainReadsTheDatabase::test_no_verdict_attaches_nothing",
  "tests/grounding/test_the_verdict_reaches_production.py::TestTheChainReadsTheDatabase::test_rejected_and_unjudged_stay_off",
  "tests/grounding/test_the_verdict_reaches_production.py::TestTheChainReadsTheDatabase::test_the_policy_lane_sees_the_prop",
  "tests/grounding/test_the_verdict_reaches_production.py::TestTheChainReadsTheDatabase::test_the_same_photo_is_not_merged_across_subjects",
  "tests/grounding/test_the_verdict_reaches_production.py::TestTheChainReadsTheDatabase::test_the_test_never_calls_apply_reviews",
  "tests/grounding/test_the_verdict_reaches_production.py::TestTheChainReadsTheDatabase::test_this_file_does_not_project_for_itself",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestResumeFreshnessFollowsTheGroundingInput::test_a_changed_photo_regenerates_once_and_a_failure_keeps_the_old_primary",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestResumeFreshnessFollowsTheGroundingInput::test_a_pre_feature_ungrounded_ref_is_reused_until_a_verdict_arrives",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestResumeFreshnessFollowsTheGroundingInput::test_asset_only_old_digest_is_not_reused",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestResumeFreshnessFollowsTheGroundingInput::test_cp_only_old_digest_is_not_reused",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestResumeFreshnessFollowsTheGroundingInput::test_same_state_resume_buys_nothing",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheBindingIsByTypedIdOnly::test_the_label_names_no_subject",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheBindingIsByTypedIdOnly::test_the_reader_reads_no_name",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheBytesReachTheGenerationCall::test_p01_gets_the_photo_c01_does_not_lp01_is_not_generated",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheBytesReachTheGenerationCall::test_the_asset_records_which_photo_went_in",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheBytesReachTheGenerationCall::test_the_call_count_does_not_grow",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheBytesReachTheGenerationCall::test_without_a_verdict_p01_is_generated_as_before",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheDirectApiFailsClosedInV2Chunk::test_legacy_without_a_central_cp_is_unchanged",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheDirectApiFailsClosedInV2Chunk::test_v2_chunk_with_the_central_cp_runs",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheDirectApiFailsClosedInV2Chunk::test_v2_chunk_without_a_central_cp_buys_nothing",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheReaderTakesOnlyVerifiedPolicyOwners::test_no_central_cp_means_the_old_path",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheReaderTakesOnlyVerifiedPolicyOwners::test_p01_verified_lp01_verified_only_p01_comes_out",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheReaderTakesOnlyVerifiedPolicyOwners::test_rejected_is_zero",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheReaderTakesOnlyVerifiedPolicyOwners::test_without_a_verdict_nothing_comes_out",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheStepHashFoldsTheInputsOnlyInV2Chunk::test_legacy_hash_is_the_base_hash",
  "tests/grounding/test_the_verified_photo_reaches_canonical_ref_generation.py::TestTheStepHashFoldsTheInputsOnlyInV2Chunk::test_v2_chunk_hash_moves_when_a_verdict_arrives",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_a_changed_region_buys_again",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_a_changed_sentence_does_not_change_it[surface_form-\\ub2e4\\ub984]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_a_changed_sentence_does_not_change_it[visual_brief-\\ub2e4\\ub984]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_a_declared_coordinate_changes_it[era]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_a_declared_coordinate_changes_it[region]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_a_different_source_language_sample_changes_it",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_a_different_source_language_sample_does_not_change_it",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_one_changed_field_changes_it[coarse_type_label-\\ub2e4\\ub984]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_one_changed_field_changes_it[owner_type-prop]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_one_changed_field_changes_it[surface_form-\\ub2e4\\ub984]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_one_changed_field_changes_it[visual_brief-\\ub2e4\\ub984]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_one_changed_skeleton_field_changes_it[coarse_type_label-\\ub2e4\\ub984]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_one_changed_skeleton_field_changes_it[language_lock_native-\\ub2e4\\ub984]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_one_changed_skeleton_field_changes_it[owner_type-prop]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_one_changed_skeleton_field_changes_it[terms_native-other2]",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_the_central_run_folds_it",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_the_field_list_lives_in_one_place",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheIdentityFoldsEveryWriterInput::test_the_same_inputs_reuse",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheProducerPayloadReachesTheWriter::test_it_does_not_die_on_missing_material",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheProducerPayloadReachesTheWriter::test_the_adapter_carries_what_the_writer_reads",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheProducerPayloadReachesTheWriter::test_the_writer_is_called_with_real_target_fields",
  "tests/grounding/test_the_writer_reaches_the_real_chain.py::TestTheProducerPayloadReachesTheWriter::test_the_written_directive_is_what_goes_to_search",
  "tests/grounding/test_veto_review.py::TestBothSidesOfARefusedPairAreVisible::test_a_refusal_with_no_recorded_decision_says_so",
  "tests/grounding/test_veto_review.py::TestBothSidesOfARefusedPairAreVisible::test_both_sides_show_owner_and_surface_and_quotes",
  "tests/grounding/test_veto_review.py::TestBothSidesOfARefusedPairAreVisible::test_each_refused_card_shows_the_keeper_it_was_paired_with",
  "tests/grounding/test_veto_review.py::TestBothSidesOfARefusedPairAreVisible::test_the_frozen_run_still_has_both_refusals",
  "tests/grounding/test_veto_review.py::TestBothSidesOfARefusedPairAreVisible::test_the_pair_card_still_judges_nothing",
  "tests/grounding/test_veto_review.py::TestEverythingAHumanNeedsIsOnTheScreen::test_the_quarantined_rows_and_their_raw",
  "tests/grounding/test_veto_review.py::TestEverythingAHumanNeedsIsOnTheScreen::test_the_quote_the_shot_id_and_the_full_description",
  "tests/grounding/test_veto_review.py::TestEverythingAHumanNeedsIsOnTheScreen::test_the_relation_and_the_binding_state",
  "tests/grounding/test_veto_review.py::TestEverythingAHumanNeedsIsOnTheScreen::test_the_two_axes_and_the_registration_reason",
  "tests/grounding/test_veto_review.py::TestItNeverJudges::test_it_says_so_on_the_screen",
  "tests/grounding/test_veto_review.py::TestItNeverJudges::test_there_is_no_score_or_verdict_field",
  "tests/grounding/test_veto_review.py::TestTheHtmlIsWellFormedForOurConvention::test_it_declares_utf8_first",
  "tests/grounding/test_veto_review.py::TestTheHtmlIsWellFormedForOurConvention::test_user_content_is_escaped",
  "tests/grounding/test_veto_review.py::TestTheScreenSaysWhereTheZeroWasMeasured::test_registration_reasons_count_only_registered_rows",
  "tests/grounding/test_veto_review.py::TestTheScreenSaysWhereTheZeroWasMeasured::test_tally_splits_before_and_after_quarantine",
  "tests/grounding/test_veto_review.py::TestTheScreenSaysWhereTheZeroWasMeasured::test_the_page_shows_merge_refusals_with_the_reason",
  "tests/grounding/test_veto_review.py::TestTheScreenSaysWhereTheZeroWasMeasured::test_the_page_states_the_zero_is_post_quarantine",
  "tests/grounding/test_veto_review.py::TestTheScreenSaysWhereTheZeroWasMeasured::test_the_screen_still_judges_nothing",
  "tests/grounding/test_veto_review.py::TestTheShotImagesActuallyReachTheScreen::test_a_bad_episode_id_does_not_crash_the_screen",
  "tests/grounding/test_veto_review.py::TestTheShotImagesActuallyReachTheScreen::test_a_shot_without_an_image_says_so",
  "tests/grounding/test_veto_review.py::TestTheShotImagesActuallyReachTheScreen::test_only_one_place_draws_a_shot",
  "tests/grounding/test_veto_review.py::TestTheShotImagesActuallyReachTheScreen::test_the_description_is_still_there",
  "tests/grounding/test_veto_review.py::TestTheShotImagesActuallyReachTheScreen::test_the_main_row_cards_show_the_image",
  "tests/grounding/test_veto_review.py::TestTheShotImagesActuallyReachTheScreen::test_the_query_uses_the_real_column_type",
  "tests/grounding/test_veto_review.py::TestTheShotImagesActuallyReachTheScreen::test_the_renderer_is_wired_from_main",
  "tests/grounding/test_visual_authority_decides_before_buying.py::TestCanonAuthorityReachesTheJudge::test_권위마다_다른_심판_지시문을_쓴다",
  "tests/grounding/test_visual_authority_decides_before_buying.py::TestCanonAuthorityReachesTheJudge::test_모르는_권위는_조용히_실물로_접지_않는다",
  "tests/grounding/test_visual_authority_decides_before_buying.py::TestCanonAuthorityReachesTheJudge::test_스텝이_권위를_심판까지_운반한다",
  "tests/grounding/test_visual_authority_decides_before_buying.py::TestCanonAuthorityReachesTheJudge::test_실물_지시문은_그림을_탈락시키고_정본_지시문은_안_그런다",
  "tests/grounding/test_visual_authority_decides_before_buying.py::test_seed_는_생성_확정_그룹에서_안_선다",
  "tests/grounding/test_visual_authority_decides_before_buying.py::test_seed_는_진짜_참조_결손에서는_그대로_선다",
  "tests/grounding/test_visual_authority_decides_before_buying.py::test_모르는_판정은_조용히_생성으로_안_접는다[None]",
  "tests/grounding/test_visual_authority_decides_before_buying.py::test_모르는_판정은_조용히_생성으로_안_접는다[]",
  "tests/grounding/test_visual_authority_decides_before_buying.py::test_모르는_판정은_조용히_생성으로_안_접는다[maybe]",
  "tests/grounding/test_visual_authority_decides_before_buying.py::test_모르는_판정은_조용히_생성으로_안_접는다[unresolved]",
  "tests/grounding/test_visual_authority_decides_before_buying.py::test_실재하는_것은_그대로_검색한다",
  "tests/grounding/test_visual_authority_decides_before_buying.py::test_외부_정본인데_검색어가_없으면_선다",
  "tests/grounding/test_visual_authority_decides_before_buying.py::test_지어낸_것에는_검색을_안_산다",
  "tests/grounding/test_visual_authority_decides_before_buying.py::test_판정_계약이_지문에_실린다",
  "tests/grounding/test_zz_probe.py::test_probe",
  "tests/integration/test_area_11_canary.py::test_canary_10_background_general_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_11_fallback_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_12_factory_non_list_labeled_refs_raises",
  "tests/integration/test_area_11_canary.py::test_canary_13_factory_length_mismatch_raises",
  "tests/integration/test_area_11_canary.py::test_canary_14_factory_invalid_enum_raises",
  "tests/integration/test_area_11_canary.py::test_canary_15_factory_non_dict_metadata_raises",
  "tests/integration/test_area_11_canary.py::test_canary_16_full_pipeline_no_korean_no_id_substitution",
  "tests/integration/test_area_11_canary.py::test_canary_18_composition_guide_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_19_same_room_composition_relaxed_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_1_outfit_ref_explicit_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_2_outfit_ref_inline_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_3_previous_shot_same_frame_zoomed_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_4_previous_shot_same_room_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_5_previous_shot_continuity_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_6_background_chain_ref_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_7_character_ref_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_8_character_state_ref_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_9_prop_ref_dispatch",
  "tests/integration/test_area_11_canary.py::test_canary_extras_ref_role_values_11_count_invariant",
  "tests/integration/test_area_11_residue_gate.py::test_gate_1_classify_label_caller_zero_in_production",
  "tests/integration/test_area_11_residue_gate.py::test_gate_2_is_explicit_character_ref_label_definition_zero",
  "tests/integration/test_area_11_residue_gate.py::test_gate_2_is_explicit_character_ref_label_zero_in_production",
  "tests/integration/test_area_11_residue_gate.py::test_gate_3_image_n_regex_constants_definition_zero",
  "tests/integration/test_area_11_residue_gate.py::test_gate_3_image_n_regex_constants_zero_in_production",
  "tests/integration/test_area_11_residue_gate.py::test_gate_4_character_tag_frozensets_definition_zero",
  "tests/integration/test_area_11_residue_gate.py::test_gate_4_character_tag_frozensets_zero_in_production",
  "tests/integration/test_area_11_residue_gate.py::test_gate_5_substring_branch_in_label_lower_zero_in_production",
  "tests/integration/test_area_11_residue_gate.py::test_gate_6_test_classify_label_direct_import_zero",
  "tests/integration/test_area_11_residue_gate.py::test_gate_6_test_classify_label_import_zero",
  "tests/integration/test_area_11_residue_gate.py::test_gate_7_producer_make_labeled_ref_payload_present",
  "tests/integration/test_area_11_residue_gate.py::test_gate_8_consumer_payload_labeled_refs_3path_cascade",
  "tests/integration/test_area_5_canary.py::test_canary_1_character_kind_sidecar",
  "tests/integration/test_area_5_canary.py::test_canary_2_background_kind_sidecar_close_framing_strict",
  "tests/integration/test_area_5_canary.py::test_canary_3_prop_kind_sidecar_with_meta",
  "tests/integration/test_area_5_canary.py::test_canary_4_empty_array_no_attribution",
  "tests/integration/test_area_5_canary.py::test_canary_5_close_framing_background_declared_no_meta_fails",
  "tests/integration/test_area_5_residue_gate.py::test_active_prompt_residue_scene_detail_v26_no_closed_phrase_examples",
  "tests/integration/test_area_5_residue_gate.py::test_active_prompt_residue_scene_detail_v27_no_closed_phrase_examples",
  "tests/integration/test_area_5_residue_gate.py::test_active_prompt_residue_scene_detail_v28_no_closed_phrase_examples",
  "tests/integration/test_area_5_residue_gate.py::test_active_prompt_residue_scene_image_v4_no_phantom_phrase_prohibition",
  "tests/integration/test_area_5_residue_gate.py::test_active_prompt_residue_t2i_review_v5_no_close_framing_existing_ref",
  "tests/integration/test_area_5_residue_gate.py::test_residue_gate_1_ref_contract_validator_legacy_identifiers_zero",
  "tests/integration/test_area_5_residue_gate.py::test_residue_gate_2_scene_generation_coordinator_validator_kwarg",
  "tests/integration/test_area_5_residue_gate.py::test_residue_gate_3_render_prompt_card_closed_list_literals_zero",
  "tests/integration/test_area_5_residue_gate.py::test_residue_gate_4_prompt_service_translate_phantom_closed_list_zero",
  "tests/integration/test_area_6_no_mutation.py::test_diagnostic_emit_shape",
  "tests/integration/test_area_6_no_mutation.py::test_no_mutation_invariant",
  "tests/integration/test_area_6_no_mutation.py::test_regeneration_required_count_matches_detected",
  "tests/integration/test_area_6_no_mutation.py::test_sentinel_branch_not_invoked",
  "tests/integration/test_area_6_no_mutation.py::test_w1_atomicity_invariant",
  "tests/integration/test_area_6_residue_gate.py::test_active_v6_no_target_suggestion_field",
  "tests/integration/test_area_6_residue_gate.py::test_production_no_blind_mutation",
  "tests/integration/test_area_7a_no_drift.py::test_c1_invalid_rule_type_rejected_by_jsonschema",
  "tests/integration/test_area_7a_no_drift.py::test_c1_valid_rule_type_accepted",
  "tests/integration/test_area_7a_no_drift.py::test_c2_system_md_schema_rule_type_alignment",
  "tests/integration/test_area_7a_no_drift.py::test_c3_scene_director_v9_principle_only",
  "tests/integration/test_area_7a_no_drift.py::test_c4_cp_invalidation_flow_deterministic",
  "tests/integration/test_area_7a_no_drift.py::test_c4_step_manifest_schema_version_set",
  "tests/integration/test_area_7a_no_drift.py::test_c5_scene_director_prompt_loader_latest_v9",
  "tests/integration/test_area_7a_no_drift.py::test_c5_vwr_prompt_loader_latest_v7",
  "tests/integration/test_area_7a_residue_gate.py::test_gate_1_vwr_rule_type_enum_exact_ten",
  "tests/integration/test_area_7a_residue_gate.py::test_gate_2_vwr_rule_type_description_no_six_token_residue",
  "tests/integration/test_area_7a_residue_gate.py::test_gate_3_vwr_system_md_canonical_list_and_no_residue",
  "tests/integration/test_area_7a_residue_gate.py::test_gate_4_scene_director_a047_site1_exclusion_list",
  "tests/integration/test_area_7a_residue_gate.py::test_gate_4_scene_director_a047_site2_possession_remote_repeat",
  "tests/integration/test_area_7a_residue_gate.py::test_gate_4_scene_director_a047_site3_parenthetical",
  "tests/integration/test_area_7a_residue_gate.py::test_scene_director_v9_references_vwr_sot",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[entity_all-5.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[entity_all-6.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[entity_extractor_v2-10.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[entity_extractor_v2-11.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[entity_extractor_v2-12.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[entity_relation-3.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[outlook_extractor-12.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[outlook_extractor-13.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[scene_detail-27.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[scene_detail-28.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[scene_detail-30.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[scene_detail-31.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[scene_detail-32.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[scene_detail-33.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[scene_detail-34.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[scene_detail-36.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[scene_detail-37.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[scene_verify-2.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[shot_extract-12.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[shot_extract-13.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[shot_extract-14.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[shot_extract-15.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[shot_extract-16.]",
  "tests/integration/test_area_7b_no_drift.py::test_c1_prompt_loader_latest_activation[shot_extract-17.]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_all-5.-4.202603310100-character_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_all-5.-4.202603310100-location.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_all-5.-4.202603310100-location_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_all-5.-4.202603310100-prop.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_all-5.-4.202603310100-prop_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_all-5.-4.202603310100-system.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_extractor_v2-10.-9.202605130226-turn0_style_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_extractor_v2-10.-9.202605130226-turn1.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_extractor_v2-10.-9.202605130226-turn1_7_detail_batch.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_extractor_v2-10.-9.202605130226-turn1_7_detail_batch_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_extractor_v2-10.-9.202605130226-turn1_review_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_extractor_v2-10.-9.202605130226-turn2.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_extractor_v2-10.-9.202605130226-turn3.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_extractor_v2-10.-9.202605130226-turn4.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_extractor_v2-10.-9.202605130226-turn_entity_detail.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_relation-3.-2.202603301800-analyze.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[entity_relation-3.-2.202603301800-analyze_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[outlook_extractor-12.-11.202603311724-phase1_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[outlook_extractor-12.-11.202603311724-phase2_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[outlook_extractor-12.-11.202603311724-phase3.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[outlook_extractor-12.-11.202603311724-phase3_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[scene_detail-27.-26.202605181435-detail_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[scene_detail-28.-27.202605181937-system.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[scene_verify-2.-1.202603231200-verify_schema.json]",
  "tests/integration/test_area_7b_no_drift.py::test_c2_sibling_byte_identical[shot_extract-12.-11.202604201230-system.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c3_step_manifest_entry_presence_verify",
  "tests/integration/test_area_7b_no_drift.py::test_c3_step_manifest_snapshot_diff_zero",
  "tests/integration/test_area_7b_no_drift.py::test_c4_visual_world_rules_schema_version_preserved",
  "tests/integration/test_area_7b_no_drift.py::test_c5_d2_entity_character_list_unchanged",
  "tests/integration/test_area_7b_no_drift.py::test_c5_d2_prompt_loader_path_unchanged",
  "tests/integration/test_area_7b_no_drift.py::test_c6_canonical_clause_membership[entity_all-5.-character.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c6_canonical_clause_membership[entity_extractor_v2-10.-system.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c6_canonical_clause_membership[entity_extractor_v2-10.-turn0_style.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c6_canonical_clause_membership[entity_relation-3.-system.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c6_canonical_clause_membership[outlook_extractor-12.-phase1.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c6_canonical_clause_membership[outlook_extractor-12.-phase2.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c6_canonical_clause_membership[scene_detail-27.-system.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c6_canonical_clause_membership[scene_detail-28.-system.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c6_canonical_clause_membership[scene_verify-2.-system.md]",
  "tests/integration/test_area_7b_no_drift.py::test_c6_canonical_clause_membership[shot_extract-12.-user.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_1_1_entity_all_character_md_residue",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_1_2_entity_relation_system_md_residue",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_1_3_entity_extractor_v2_system_md_residue",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_1_4_entity_extractor_v2_turn0_style_md_residue",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_1_5_outlook_phase1_residue",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_1_6_outlook_phase2_residue",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_1_7_scene_verify_system_md_residue",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_1_8_scene_detail_system_md_residue",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_1_9_shot_extract_user_md_residue",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_2_canonical_clause_membership[entity_all_v5_dir-character.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_2_canonical_clause_membership[entity_extractor_v2_v10_dir-system.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_2_canonical_clause_membership[entity_extractor_v2_v10_dir-turn0_style.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_2_canonical_clause_membership[entity_relation_v3_dir-system.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_2_canonical_clause_membership[outlook_extractor_v12_dir-phase1.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_2_canonical_clause_membership[outlook_extractor_v12_dir-phase2.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_2_canonical_clause_membership[scene_detail_v27_dir-system.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_2_canonical_clause_membership[scene_detail_v28_dir-system.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_2_canonical_clause_membership[scene_verify_v2_dir-system.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_2_canonical_clause_membership[shot_extract_v12_dir-user.md]",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_3_d2_entity_character_list_byte_identical",
  "tests/integration/test_area_7b_residue_gate.py::test_gate_4_archive_directory_exclusion",
  "tests/integration/test_area_7b_residue_gate.py::test_sanity_all_modified_file_exist",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_load_prompt_entity_system_resolves_v7",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_load_prompt_scene_system_resolves_v7",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_load_schema_entity_resolves_v7",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_load_schema_scene_resolves_v7",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_residue_gate_entity_strict_phrase_absent",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_residue_gate_scene_strict_phrase_absent",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_residue_gate_total_count",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_resolve_entity_schema_v7",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_resolve_entity_system_v7",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_resolve_scene_schema_v7",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_resolve_scene_system_v7",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_schema_sibling_entity_byte_identical",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_schema_sibling_scene_byte_identical",
  "tests/integration/test_area_7c_t2i_review_placeholder_hygiene.py::test_step_manifest_t2i_review_schema_version_preserved",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate1_site2_r1_camera_list_absent",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate1_site2_r2_color_list_absent",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate1_site2_r3_carrier_description_absent",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate1_site2_r4_example_line_absent",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate2_site1_r5_composition_examples_absent_in_system_md",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate2_site1_r5_r6_absent_in_schema_description",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate2_site1_r6_color_examples_absent_in_system_md",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate3_e6_no_cinematography_closed_list_resub_reintroduced",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate3_e6_r7_regex_literal_a_absent",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate3_e6_r8_regex_literal_b_absent",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate3_e6_r9_comment_absent",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate4_camera_effect_schema_required_preserved",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate4_camera_effect_schema_shape_preserved",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate4_scene_variation_service_consumer_signature_preserved",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate4_variation_item_schema_shape_preserved",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate5_4_gate_inline_assertion",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate5_detail_steps_dual_owner_fallback_path_preserved",
  "tests/integration/test_area_7d_cinematography_sot.py::test_gate5_scene_extractor_v2_latest_resolves_v20",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g1_producer_schema_enum_8_token_strict",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g2_mirror_behavioral",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g2_mirror_presence_helper",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g2_mirror_presence_schema",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g3_render_prompt_card_no_inline_literal",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g4_detail_steps_no_generic_fallback",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g5_scene_detail_v29_cross_reference",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g6_area_c_boundary_anchors_preserve",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g7_direct_guide_not_applicable",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g7_invalid_input_fail_fast[MIRROR]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g7_invalid_input_fail_fast[]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g7_invalid_input_fail_fast[future_unknown_mode]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g7_no_vlm_helper_module",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g7_no_vlm_test_module",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g7_non_direct_all_have_guide",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g8_build_id_policy_canonical_reproduction_still_works[mirror]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g8_build_id_policy_canonical_reproduction_still_works[projection]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g8_build_id_policy_canonical_reproduction_still_works[reflection]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g8_build_id_policy_canonical_reproduction_still_works[through_device]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g8_build_id_policy_legacy_empty_coerced_to_direct[None]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g8_build_id_policy_legacy_empty_coerced_to_direct[]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g8_build_id_policy_noncanonical_casing_fail_fast[DIRECT]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g8_build_id_policy_noncanonical_casing_fail_fast[MIRROR]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_g8_build_id_policy_noncanonical_casing_fail_fast[Reflection]",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_invariant_guide_coverage",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_invariant_strict_subset",
  "tests/integration/test_c1_perception_mode_enum_sot.py::test_validate_perception_mode_direct_ok",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g1_coverage_duplicate_token_raises",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g1_coverage_empty_owned_ok",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g1_coverage_extra_token_raises",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g1_coverage_missing_token_raises",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g1_producer_schema_owned_object_usage_required",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g2_schema_usage_kind_enum",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g2_source_phrase_required_unless_absent",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g2_usage_kind_enum_strict",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g3_build_sentinel_has_owned_usage_hash",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g3_owned_usage_hash_deterministic_order_independent",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g3_owned_usage_hash_tamper_mismatch_raises",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g3_sentinel_v2_schema_version_and_fields",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g4_judge_v4_is_echo_verify",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g4_judge_v4_no_closed_list_residue",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g4_v4_user_template_placeholders",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g5_has_redraw_violation_preserve",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g5_v4_schema_byte_identical_v3",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g5_v4_schema_verdict_enum",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g6_area_c_boundary_preserve",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g6_c1_perception_mode_boundary_preserve",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g6_t2i_prompt_body_shape_unchanged_v29_to_v30",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g7_close_framing_absent_echo_ok",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g7_close_framing_non_absent_raises",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g7_coverage_mismatch_raises_no_silent_fallback",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g7_no_vlm_owned_modules",
  "tests/integration/test_c2_owned_object_usage_echo.py::test_g7_no_vlm_test_module",
  "tests/integration/test_c3_detail_steps_focus_rewrite.py::test_g1_t2i_prompt_invalid_id_possessive_removal",
  "tests/integration/test_c3_detail_steps_focus_rewrite.py::test_g2_representative_moment_invalid_id_possessive_removal",
  "tests/integration/test_c3_detail_steps_focus_rewrite.py::test_g3_composite_id_possessive_removal",
  "tests/integration/test_c3_detail_steps_focus_rewrite.py::test_g4_three_digit_id_preservation",
  "tests/integration/test_c3_detail_steps_focus_rewrite.py::test_g5_no_semantic_injection",
  "tests/integration/test_c3_detail_steps_focus_rewrite.py::test_g6_local_normalization_and_no_match_noop",
  "tests/integration/test_c3_detail_steps_focus_rewrite.py::test_g7_cleanup_loop_removed",
  "tests/integration/test_c7_shot_dependency_subject_kind.py::test_g1_valid_non_human_entry_passes",
  "tests/integration/test_c7_shot_dependency_subject_kind.py::test_g2_human_or_character_reference_fails_fast",
  "tests/integration/test_c7_shot_dependency_subject_kind.py::test_g3_missing_subject_kind_fails_fast",
  "tests/integration/test_c7_shot_dependency_subject_kind.py::test_g4_invalid_subject_kind_fails_fast",
  "tests/integration/test_c7_shot_dependency_subject_kind.py::test_g5_boundary_preserve_kind_enum",
  "tests/integration/test_c7_shot_dependency_subject_kind.py::test_g6_v8_schema_keep_elements_item_strict",
  "tests/integration/test_c7_shot_dependency_subject_kind.py::test_g7_version_cascade",
  "tests/integration/test_c7_shot_dependency_subject_kind.py::test_g8_v8_prompt_residue_canary",
  "tests/integration/test_c7_shot_dependency_subject_kind.py::test_g9_scene_context_loader_envelope_v8_passes_v7_rejected",
  "tests/integration/test_carry_a099_director_notes_abstraction.py::test_gate_1_r1_r9_residue_absent_in_v8_system_md",
  "tests/integration/test_carry_a099_director_notes_abstraction.py::test_gate_2_rules_schema_sha256_byte_identical_from_v7",
  "tests/integration/test_carry_a099_director_notes_abstraction.py::test_gate_3_canonical_process_wording_presence_and_no_enum_taxonomy",
  "tests/integration/test_carry_a099_director_notes_abstraction.py::test_gate_4_step_manifest_schema_version_preserve",
  "tests/integration/test_carry_a099_director_notes_abstraction.py::test_gate_5_fallback_chain_source_preservation",
  "tests/integration/test_carry_a099_director_notes_abstraction.py::test_gate_6_v8_active_source_path_proof",
  "tests/integration/test_carry_a099_director_notes_abstraction.py::test_gate_6_v8_historical_closure_anchor_proof",
  "tests/integration/test_carry_a100_t2i_context_demonym_abstraction.py::test_gate_1_v9_active_source_path_proof",
  "tests/integration/test_carry_a100_t2i_context_demonym_abstraction.py::test_gate_2_v9_file_count",
  "tests/integration/test_carry_a100_t2i_context_demonym_abstraction.py::test_gate_3_r1_r5_residue_absent_in_v9",
  "tests/integration/test_carry_a100_t2i_context_demonym_abstraction.py::test_gate_4_new_abstract_wording_presence",
  "tests/integration/test_carry_a100_t2i_context_demonym_abstraction.py::test_gate_5_carrier_shape_preserve",
  "tests/integration/test_carry_a100_t2i_context_demonym_abstraction.py::test_gate_6_step_manifest_schema_version_preserve",
  "tests/integration/test_carry_a100_t2i_context_demonym_abstraction.py::test_gate_7_director_notes_section_preserve_canary",
  "tests/integration/test_carry_p021_scene_consistency_prompt_abstraction.py::test_gate_1_active_v8_source_path_proof",
  "tests/integration/test_carry_p021_scene_consistency_prompt_abstraction.py::test_gate_2_v8_file_count_2",
  "tests/integration/test_carry_p021_scene_consistency_prompt_abstraction.py::test_gate_3_strict_residues_absent_in_v8_system_md",
  "tests/integration/test_carry_p021_scene_consistency_prompt_abstraction.py::test_gate_4_abstract_wording_presence_in_v8_system_md",
  "tests/integration/test_carry_p021_scene_consistency_prompt_abstraction.py::test_gate_5_schema_sha256_byte_identical_from_v7",
  "tests/integration/test_carry_p021_scene_consistency_prompt_abstraction.py::test_gate_6_version_registry_3_logical_edits_and_step_manifest_preserve",
  "tests/integration/test_carry_p021_scene_consistency_prompt_abstraction.py::test_gate_7_v7_historical_canary",
  "tests/integration/test_concurrent_claim.py::test_concurrent_claim_only_one_succeeds",
  "tests/integration/test_d5_canary_s8.py::test_S8_canary_composite_outlook_attached_unblocks",
  "tests/integration/test_d5_canary_s8.py::test_S8_canary_pre_d5_substring_logic_would_have_passed",
  "tests/integration/test_d5_canary_s8.py::test_S8_canary_prev_shot_lineage_substitute_unblocks",
  "tests/integration/test_d5_canary_s8.py::test_S8_canary_validator_blocks_when_only_C01_base_attached",
  "tests/integration/test_evidence_consumer_wiring.py::TestSceneCheckpointLoadersWiring::test_camera_json_path_normalizes_each_var",
  "tests/integration/test_evidence_consumer_wiring.py::TestSceneCheckpointLoadersWiring::test_scene_detail_fallback_path_normalizes_each_var",
  "tests/integration/test_evidence_consumer_wiring.py::TestSceneConsistencyVerifyCompletionWiring::test_verify_completion_calls_normalize",
  "tests/integration/test_evidence_consumer_wiring.py::TestSceneContextLoaderWiring::test_load_fixed_elements_calls_normalize",
  "tests/integration/test_evidence_consumer_wiring.py::TestSceneDetailVerifyCompletionWiring::test_verify_completion_calls_normalize",
  "tests/integration/test_evidence_consumer_wiring.py::TestSceneStillNormalizerWiring::test_plan_scene_calls_normalize",
  "tests/integration/test_evidence_consumer_wiring.py::TestShotDependencyT2iWiring::test_consistency_iter_calls_normalize",
  "tests/integration/test_evidence_consumer_wiring.py::TestT2iReviewWiring::test_apply_scene_fixes_calls_normalize",
  "tests/integration/test_evidence_consumer_wiring.py::TestT2iReviewWiring::test_review_scene_detail_calls_normalize",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g1_repair_input_includes_redraw_evidence",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g2_repair_success_resolves_contract_violation",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g3_repair_still_redraw_keeps_contract_violation",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g4_anchor_only_path_zero_repair_call",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g5a_unknown_owned_token_merge_revert",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g5b_invalid_id_in_repaired_prompt_revert",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g5c_repair_llm_malformed_revert",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g5d_visible_contract_fail_revert",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g6_repair_called_exactly_once",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g7_repair_reuses_check_prompts_closure",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g8a_repair_verify_judge_apperror_revert",
  "tests/integration/test_finding7_owned_redraw_repair.py::test_g8b_repair_verify_judge_malformed_revert",
  "tests/integration/test_finding8_scene_detail_card_verify_dependency_source.py::test_genuine_hash_corruption_still_drifts",
  "tests/integration/test_finding8_scene_detail_card_verify_dependency_source.py::test_no_schema_version_bump",
  "tests/integration/test_finding8_scene_detail_card_verify_dependency_source.py::test_t2i_built_card_no_false_drift_when_verify_matches",
  "tests/integration/test_finding8_scene_detail_card_verify_dependency_source.py::test_upstream_built_card_resolved_by_dual_source_fallback",
  "tests/integration/test_g3_2_consumer_wiring.py::TestAnalysisOnlyBlockGate::test_check_gate_passes_when_background_prompt_completed",
  "tests/integration/test_g3_2_consumer_wiring.py::TestAnalysisOnlyBlockGate::test_check_gate_raises_when_background_prompt_missing",
  "tests/integration/test_g3_2_consumer_wiring.py::TestAnalysisOnlyBlockGate::test_scene_detail_allow_partial_downstream_false",
  "tests/integration/test_g3_2_consumer_wiring.py::TestAnalysisOnlyBlockGate::test_scene_detail_depends_on_background_prompt",
  "tests/integration/test_g3_2_consumer_wiring.py::TestBgModeOffNoOp::test_judge_skipped_when_owned_empty_in_bg_off_path",
  "tests/integration/test_g3_2_consumer_wiring.py::TestBgModeOffNoOp::test_loader_returns_empty_when_bg_off",
  "tests/integration/test_g3_2_consumer_wiring.py::TestBgModeOffNoOp::test_loader_returns_empty_when_bg_off_with_old_v4_cp",
  "tests/integration/test_g3_2_consumer_wiring.py::TestBgModeOffNoOp::test_verify_completion_clean_with_trivial_sentinel",
  "tests/integration/test_g3_2_consumer_wiring.py::TestCloseFramingThreeBlockSkip::test_close_framing_skips_all_three_blocks",
  "tests/integration/test_g3_2_consumer_wiring.py::TestCloseFramingThreeBlockSkip::test_close_framing_skips_all_three_blocks[ECU on the trembling fingertips]",
  "tests/integration/test_g3_2_consumer_wiring.py::TestCloseFramingThreeBlockSkip::test_close_framing_skips_all_three_blocks[MCU on profile]",
  "tests/integration/test_g3_2_consumer_wiring.py::TestCloseFramingThreeBlockSkip::test_close_framing_skips_all_three_blocks[\\ud074\\ub85c\\uc988\\uc5c5 - \\uc190\\uac00\\ub77d\\uc774 \\ub5a8\\ub9b0\\ub2e4]",
  "tests/integration/test_g3_2_consumer_wiring.py::TestCloseFramingThreeBlockSkip::test_close_framing_skips_all_three_blocks[close-up of trembling hand]",
  "tests/integration/test_g3_2_consumer_wiring.py::TestCloseFramingThreeBlockSkip::test_close_framing_skips_all_three_blocks[extreme close-up of the eye]",
  "tests/integration/test_g3_2_consumer_wiring.py::TestContractViolationStatus::test_judge_no_violations_returns_empty_list",
  "tests/integration/test_g3_2_consumer_wiring.py::TestContractViolationStatus::test_judge_returns_violations_marks_sentinel",
  "tests/integration/test_g3_2_consumer_wiring.py::TestContractViolationStatus::test_judge_skipped_when_owned_empty",
  "tests/integration/test_g3_2_consumer_wiring.py::TestNonCloseOwnedInject::test_no_inject_when_owned_empty",
  "tests/integration/test_g3_2_consumer_wiring.py::TestNonCloseOwnedInject::test_owned_block_appears_with_english_canonical_items",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSchemaIsolationAndPartialCp::test_bg_on_no_cp_raises_silent_block",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSchemaIsolationAndPartialCp::test_old_v4_cp_raises",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSchemaIsolationAndPartialCp::test_partial_v5_cp_missing_owned_raises",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSchemaIsolationAndPartialCp::test_partial_v5_cp_non_ascii_owned_raises",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSchemaIsolationAndPartialCp::test_valid_v5_cp_passes",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSentinelDriftDetection::test_camera_direction_drift_flagged",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSentinelDriftDetection::test_clean_baseline_passes",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSentinelDriftDetection::test_missing_sentinel_flagged",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSentinelDriftDetection::test_owned_drift_flagged",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSentinelDriftDetection::test_t2i_prompt_edit_flagged",
  "tests/integration/test_g3_2_consumer_wiring.py::TestSentinelDriftDetection::test_validator_type_drift_flagged_when_close_changes",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestAssetRequirementsBranches::test_forbidden_only_branch_pure",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestAssetRequirementsBranches::test_mixed_branch_required_and_forbidden",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestAssetRequirementsBranches::test_required_only_branch",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestCardCpFieldPreservation::test_checkpoint_json_roundtrip_preserves_card",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestCardCpFieldPreservation::test_in_memory_deep_copy_preserves_card",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestCardWinsOverLegacyConflict::test_card_id_policy_overrides_legacy_block_in_user_prompt",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestCardWinsOverLegacyConflict::test_v16_system_md_declares_card_wins",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestForwardZoomFullListIntegration::test_forward_zoom_count_change_drifts_hash",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestForwardZoomFullListIntegration::test_forward_zoom_full_list_preserved_in_card",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestPreviousShotRefsVariants::test_continuation_preserved",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestPreviousShotRefsVariants::test_ref_usage_change_drifts_hash",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestPreviousShotRefsVariants::test_zoom_in_detail_preserved",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestRenderPromptCardInjection::test_card_json_parseable_and_valid",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestRenderPromptCardInjection::test_user_prompt_has_exactly_one_card_block",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestT2iReviewPostEditSentinelStale::test_card_hash_unchanged_when_only_t2i_prompt_edited",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestT2iReviewPostEditSentinelStale::test_verify_completion_marks_partial_on_sentinel_drift",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestUserEditedCardDrift::test_helper_returns_none_when_card_matches",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestUserEditedCardDrift::test_helper_returns_reason_on_owned_drift",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestUserEditedCardDrift::test_helper_returns_reason_when_card_missing",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestUserEditedCardDrift::test_user_edited_branch_invokes_fresh_path_via_execute",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestV15ToV16MigrationSmoke::test_step_runner_actually_escalates_to_force_on_v15_resume",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestV15ToV16MigrationSmoke::test_step_runner_blocks_v15_resume_after_b5",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestV15ToV16MigrationSmoke::test_v15_cp_lacks_card_field",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestV15ToV16MigrationSmoke::test_v15_to_v16_cp_field_transition",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestV15ToV16MigrationSmoke::test_v16_cp_has_card_field",
  "tests/integration/test_g4_1_card_consumer_wiring.py::TestVerifyCompletionCleanWithRealInputs::test_verify_completion_clean_when_real_inputs_match_storage",
  "tests/integration/test_g4_2_bg_binding_integration.py::TestCardHashIntegration::test_card_hash_drift_on_owned_change_in_verify",
  "tests/integration/test_g4_2_bg_binding_integration.py::TestG3_2_G4_2_Coexistence::test_g3_2_sentinel_coexists_with_g4_2_card",
  "tests/integration/test_g4_2_bg_binding_integration.py::TestShotCardModes::test_close_framing_shot_card_skips_owned_and_camera",
  "tests/integration/test_g4_2_bg_binding_integration.py::TestShotCardModes::test_non_close_shot_card_carries_owned_and_camera",
  "tests/integration/test_g4_2_bg_binding_integration.py::TestShotCardModes::test_not_applicable_shot_card_carries_no_owned_no_camera_no_reference",
  "tests/integration/test_g4_2_bg_binding_integration.py::TestV17PromptStructure::test_v17_prompt_token_reduction_vs_v16",
  "tests/integration/test_g4_2_bg_binding_integration.py::TestV17PromptStructure::test_v17_system_prompt_has_background_binding_section",
  "tests/integration/test_g4_2_bg_binding_integration.py::TestV17PromptStructure::test_v17_system_prompt_missing_rule_a_section",
  "tests/integration/test_g4_2_bg_binding_integration.py::TestV17PromptStructure::test_v17_system_prompt_missing_rule_c_section",
  "tests/integration/test_g4_2_bg_binding_integration.py::TestV17PromptStructure::test_v17_system_prompt_missing_rule_e_section",
  "tests/integration/test_g4_3_id_policy_integration.py::TestG4_3CarryPaths::test_card_hash_drift_on_id_policy_constraint_change_in_verify",
  "tests/integration/test_g4_3_id_policy_integration.py::TestG4_3CarryPaths::test_close_framing_shot_card_carries_face_phrasing_rules",
  "tests/integration/test_g4_3_id_policy_integration.py::TestG4_3CarryPaths::test_g3_2_sentinel_coexists_with_g4_3_id_policy",
  "tests/integration/test_g4_3_id_policy_integration.py::TestG4_3CarryPaths::test_reproduction_surface_shot_card_applies_bool_shape",
  "tests/integration/test_g4_3_id_policy_integration.py::TestG4_3CarryPaths::test_reproduction_surface_shot_card_lists_9_surfaces",
  "tests/integration/test_g4_3_id_policy_integration.py::TestG4_3CarryPaths::test_snapshot_hash_drift_on_id_policy_change",
  "tests/integration/test_g4_3_id_policy_integration.py::TestRenderPromptCardPipeline::test_render_prompt_card_canonicalize_pops_card_metadata",
  "tests/integration/test_g4_3_id_policy_integration.py::TestRenderPromptCardPipeline::test_render_prompt_card_card_metadata_lift_status_includes_g4_3_keys",
  "tests/integration/test_g4_3_id_policy_integration.py::TestRenderPromptCardPipeline::test_render_prompt_card_card_metadata_rule_source_includes_g4_3_keys",
  "tests/integration/test_g4_3_id_policy_integration.py::TestRenderPromptCardPipeline::test_render_prompt_card_inject_block_carries_5_id_policy_subfields",
  "tests/integration/test_g4_3_id_policy_integration.py::TestRenderPromptCardPipeline::test_render_prompt_card_inject_strips_card_metadata",
  "tests/integration/test_g4_3_id_policy_integration.py::TestRenderPromptCardPipeline::test_render_prompt_card_pipeline_produces_card_with_5_new_sub_fields",
  "tests/integration/test_g4_3_id_policy_integration.py::TestV18PromptStructure::test_v18_system_prompt_4_deletion_target_headings_absent",
  "tests/integration/test_g4_3_id_policy_integration.py::TestV18PromptStructure::test_v18_system_prompt_compact_id_policy_section_30_lines",
  "tests/integration/test_g4_3_id_policy_integration.py::TestV18PromptStructure::test_v18_system_prompt_compact_id_policy_section_present",
  "tests/integration/test_g4_3_id_policy_integration.py::TestV18PromptStructure::test_v18_system_prompt_line_395_inplace_replaced_substring_absent",
  "tests/integration/test_g4_3_id_policy_integration.py::TestV18PromptStructure::test_v18_system_prompt_line_395_inplace_replaced_substring_present",
  "tests/integration/test_g4_3_id_policy_integration.py::TestV18PromptStructure::test_v18_system_prompt_line_count_delta_within_tolerance",
  "tests/integration/test_g4_3_id_policy_integration.py::TestV18PromptStructure::test_v18_system_prompt_no_remaining_id_policy_prose_orphans",
  "tests/integration/test_g4_4_continuity_integration.py::TestCrossCardPairedSubstring::test_cross_card_paired_substring_in_v19_system_md_and_card_inject",
  "tests/integration/test_g4_4_continuity_integration.py::TestDetailStepsInlineDeletion::test_detail_steps_has_zoom_in_detail_variable_no_dead_uses",
  "tests/integration/test_g4_4_continuity_integration.py::TestDetailStepsInlineDeletion::test_detail_steps_zoom_in_detail_inline_prose_absent_after_g4_4",
  "tests/integration/test_g4_4_continuity_integration.py::TestG4_4CarryPaths::test_card_hash_drift_on_continuity_constraint_change",
  "tests/integration/test_g4_4_continuity_integration.py::TestG4_4CarryPaths::test_continuity_snapshot_hash_drift_on_continuity_change",
  "tests/integration/test_g4_4_continuity_integration.py::TestG4_4CarryPaths::test_g3_2_g4_2_g4_3_coexist_with_g4_4_continuity",
  "tests/integration/test_g4_4_continuity_integration.py::TestG4_4CarryPaths::test_render_prompt_card_canonicalize_pops_card_metadata",
  "tests/integration/test_g4_4_continuity_integration.py::TestG4_4CarryPaths::test_render_prompt_card_inject_block_carries_3_continuity_subfields",
  "tests/integration/test_g4_4_continuity_integration.py::TestRenderPromptCardPipeline::test_continuity_card_to_scene_detail_user_prompt_inject_3_sibling_dicts",
  "tests/integration/test_g4_4_continuity_integration.py::TestRenderPromptCardPipeline::test_continuity_card_to_scene_detail_user_prompt_inject_card_metadata_stripped",
  "tests/integration/test_g4_4_continuity_integration.py::TestRenderPromptCardPipeline::test_continuity_card_to_scene_detail_user_prompt_inject_constraints_7_strings",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v18_system_prompt_has_section_a_cross_shot_heading",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v18_system_prompt_has_section_b_ref_usage_heading",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v18_system_prompt_has_section_c_single_view_heading",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v19_background_binding_section_preserved_unchanged",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v19_continuity_section_line_count_under_32",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v19_id_policy_section_preserved_unchanged",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v19_system_md_total_lines_under_550",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v19_system_prompt_has_continuity_compact_heading",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v19_system_prompt_missing_section_a",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v19_system_prompt_missing_section_b",
  "tests/integration/test_g4_4_continuity_integration.py::TestV18AndV19PromptStructure::test_v19_system_prompt_missing_section_c",
  "tests/integration/test_g4_5a_spatial_integration.py::Test4WayAlignment::test_4_way_alignment_post_area7b_w3_bump",
  "tests/integration/test_g4_5a_spatial_integration.py::Test4WayAlignment::test_4_way_alignment_post_g4_5a_bump",
  "tests/integration/test_g4_5a_spatial_integration.py::TestCrossCardPairedSubstring::test_cross_card_paired_substring_in_v20_system_md_and_card_inject",
  "tests/integration/test_g4_5a_spatial_integration.py::TestG4_5aCarryPaths::test_envelope_top_level_keys_unchanged_post_g4_5a",
  "tests/integration/test_g4_5a_spatial_integration.py::TestG4_5aCarryPaths::test_g3_2_sentinel_coexists_with_g4_5a_spatial",
  "tests/integration/test_g4_5a_spatial_integration.py::TestG4_5aCarryPaths::test_render_strategy_snapshot_hash_drift_on_spatial_consistency_change",
  "tests/integration/test_g4_5a_spatial_integration.py::TestRenderPromptCardPipeline::test_camera_frame_rule_card_inject_carries_forbidden_combinations",
  "tests/integration/test_g4_5a_spatial_integration.py::TestRenderPromptCardPipeline::test_card_hash_drift_on_spatial_consistency_change_in_verify",
  "tests/integration/test_g4_5a_spatial_integration.py::TestRenderPromptCardPipeline::test_fg_bg_shared_anchor_rule_card_inject_carries_keywords",
  "tests/integration/test_g4_5a_spatial_integration.py::TestRenderPromptCardPipeline::test_primary_framing_rule_card_inject_carries_close_keywords",
  "tests/integration/test_g4_5a_spatial_integration.py::TestRenderPromptCardPipeline::test_primary_framing_rule_card_inject_carries_enum_consumer_wording",
  "tests/integration/test_g4_5a_spatial_integration.py::TestRenderPromptCardPipeline::test_render_prompt_card_canonicalize_pops_card_metadata",
  "tests/integration/test_g4_5a_spatial_integration.py::TestRenderPromptCardPipeline::test_render_strategy_card_carries_spatial_consistency",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_spatial_consistency_compact_section_references_card_path",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v19_system_prompt_has_rule_f_heading",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v19_system_prompt_has_rule_g_heading",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v19_system_prompt_has_rule_j_heading",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v20_spatial_consistency_section_line_count_under_32",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v20_system_md_total_lines_under_550",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v20_system_prompt_has_spatial_consistency_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v20_system_prompt_keeps_background_binding_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v20_system_prompt_keeps_continuity_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v20_system_prompt_keeps_id_policy_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v20_system_prompt_missing_camera_frame_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v20_system_prompt_missing_fg_bg_separation_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v20_system_prompt_missing_primary_subject_framing_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV20PromptStructure::test_v20_three_prose_sections_absent",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_spatial_consistency_compact_section_references_card_path",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v19_system_prompt_has_rule_f_heading",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v19_system_prompt_has_rule_g_heading",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v19_system_prompt_has_rule_j_heading",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v20_spatial_consistency_section_line_count_under_32",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v20_system_md_total_lines_under_550",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v20_system_prompt_has_spatial_consistency_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v20_system_prompt_keeps_background_binding_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v20_system_prompt_keeps_continuity_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v20_system_prompt_keeps_id_policy_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v20_system_prompt_missing_camera_frame_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v20_system_prompt_missing_fg_bg_separation_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v20_system_prompt_missing_primary_subject_framing_section",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19AndV21PromptStructure::test_v20_three_prose_sections_absent",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19CheckpointResumeOnV20::test_v19_checkpoint_resume_on_v20_escalates_force",
  "tests/integration/test_g4_5a_spatial_integration.py::TestV19CheckpointResumeOnV21::test_v19_checkpoint_resume_on_v20_escalates_force",
  "tests/integration/test_patch_a_story_prop_binding.py::TestPatchARegressionGuards::test_g1_frame_prop_required_and_in_attached_meta",
  "tests/integration/test_patch_a_story_prop_binding.py::TestPatchARegressionGuards::test_g2_photo_prop_required_and_key_prop_skipped",
  "tests/integration/test_patch_a_story_prop_binding.py::TestPatchARegressionGuards::test_g3_photo_prop_required_with_character_outlook_preserved",
  "tests/integration/test_patch_a_story_prop_binding.py::TestPatchARegressionGuards::test_g4_set_dressing_props_not_over_attached",
  "tests/integration/test_patch_a_story_prop_binding.py::TestPatchARegressionGuards::test_g5_schema_normalizer_and_validator_membership",
  "tests/integration/test_phase7_e2e.py::test_phase7_e2e_smoke",
  "tests/integration/test_phase8_e2e.py::test_phase8_floor_plan_to_background_flow_with_numbered_camera",
  "tests/integration/test_scene_image_pipeline_immobilized.py::test_pipeline_no_constraints_default",
  "tests/integration/test_scene_image_pipeline_immobilized.py::test_pipeline_propagates_constraints_to_sanitizer",
  "tests/integration/test_state_and_gaze_e2e.py::test_e2e_router_immobilized_via_subject_state",
  "tests/integration/test_state_and_gaze_e2e.py::test_e2e_state_variant_uses_helper",
  "tests/integration/test_state_and_gaze_e2e.py::test_get_visual_descriptor_dead_returns_motionless_prose",
  "tests/integration/test_step_runner_run_flow.py::test_block_raises_409_without_claim",
  "tests/integration/test_step_runner_run_flow.py::test_check_applicability_false_calls_mark_not_applicable",
  "tests/integration/test_step_runner_run_flow.py::test_claim_failure_raises_already_running",
  "tests/integration/test_step_runner_run_flow.py::test_force_explicit_calls_execute_force",
  "tests/integration/test_step_runner_run_flow.py::test_rerun_self_claims_then_executes",
  "tests/integration/test_step_runner_run_flow.py::test_skip_does_not_claim",
  "tests/integration/test_step_runner_run_flow.py::test_stale_running_recovery_passes_expected_fields",
  "tests/integration/test_subject_reference_policy_e2e.py::test_e2e_legacy_staging_not_applicable_path_graceful",
  "tests/integration/test_subject_reference_policy_e2e.py::test_e2e_per_subject_no_leak",
  "tests/integration/test_subject_reference_policy_e2e.py::test_e2e_producer_to_card_inject",
  "tests/integration/test_subject_reference_policy_e2e.py::test_e2e_v12_staging_missing_field_caller_appends_error_marker",
  "tests/integration/test_t2i_review_run.py::test_run_t2i_review_end_to_end_emits_diagnostic_no_mutation",
  "tests/integration/test_t2i_review_run.py::test_run_t2i_review_end_to_end_propagates_item_id",
  "tests/integration/test_t2i_review_run.py::test_run_t2i_review_raises_on_entity_batch_failure",
  "tests/integration/test_t2i_review_run.py::test_run_t2i_review_raises_on_entity_schema_validation_error",
  "tests/integration/test_t2i_review_run.py::test_run_t2i_review_raises_on_garbage_result_missing_item_id",
  "tests/integration/test_t2i_review_run.py::test_run_t2i_review_raises_on_schema_validation_error",
  "tests/integration/test_t2i_review_run.py::test_run_t2i_review_raises_on_transient_batch_failure",
  "tests/integration/test_t2i_review_run.py::test_run_t2i_review_skips_garbage_result_missing_item_id",
  "tests/integration/test_t2i_review_run.py::test_run_t2i_review_user_prompt_includes_item_id_prefix",
  "tests/integration/test_w5_state_migration.py::test_asset_readiness_reads_subject_state",
  "tests/integration/test_w5_state_migration.py::test_detail_steps_reads_subject_state",
  "tests/integration/test_w5_state_migration.py::test_render_prompt_card_docstring_sync",
  "tests/integration/test_w5_state_migration.py::test_scene_reference_service_reads_subject_state",
  "tests/integration/test_w6_prompt_injection.py::test_detail_steps_camera_focusing_prompt_neutralized",
  "tests/integration/test_w6_prompt_injection.py::test_scene_consistency_step_no_legacy_gaze_target_read",
  "tests/integration/test_w6_prompt_injection.py::test_scene_consistency_step_no_raw_gaze_injection",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallMultiturnFallback::test_tier1_success",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallMultiturnFallback::test_tier2_sanitizes_messages_and_appends_suffix",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallMultiturnFallback::test_tier3_gpt_fallback_multiturn",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallStructuredFallback::test_all_tiers_fail_raises",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallStructuredFallback::test_disable_fallback_legacy",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallStructuredFallback::test_tier1_2_fail_tier3_gpt_success",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallStructuredFallback::test_tier1_empty_response_tier2_success",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallStructuredFallback::test_tier1_prohibited_tier2_success",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallStructuredFallback::test_tier1_success_no_fallback",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallStructuredFallback::test_tier3_uses_gpt_when_initial_step_was_gemini",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallTextFallback::test_disable_fallback_text",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallTextFallback::test_tier1_empty_tier2_success",
  "tests/modules/llm/test_call_structured_fallback.py::TestCallTextFallback::test_tier1_success",
  "tests/modules/llm/test_call_structured_fallback.py::TestF1_1_CallTextLegacyEmptyResponse::test_call_text_all_tiers_empty_raises",
  "tests/modules/llm/test_call_structured_fallback.py::TestF1_1_CallTextLegacyEmptyResponse::test_call_text_empty_response_fallback_enabled_triggers_tier2",
  "tests/modules/llm/test_call_structured_fallback.py::TestF1_1_CallTextLegacyEmptyResponse::test_call_text_empty_response_legacy_fallback_disabled",
  "tests/modules/llm/test_call_structured_fallback.py::TestF1_2_SafetyFilterClassification::test_tier1_api_connection_error_no_fallback_multiturn",
  "tests/modules/llm/test_call_structured_fallback.py::TestF1_2_SafetyFilterClassification::test_tier1_connection_error_no_fallback",
  "tests/modules/llm/test_call_structured_fallback.py::TestF1_2_SafetyFilterClassification::test_tier1_content_filter_triggers_tier2",
  "tests/modules/llm/test_call_structured_fallback.py::TestF1_2_SafetyFilterClassification::test_tier1_empty_response_safety_classified",
  "tests/modules/llm/test_call_structured_fallback.py::TestF1_2_SafetyFilterClassification::test_tier1_prohibited_triggers_tier2",
  "tests/modules/llm/test_call_structured_fallback.py::TestF1_2_SafetyFilterClassification::test_tier1_rate_limit_no_fallback",
  "tests/modules/llm/test_call_structured_fallback.py::TestF1_2_SafetyFilterClassification::test_tier1_timeout_no_fallback",
  "tests/modules/llm/test_call_structured_fallback.py::TestIsSafetyRelatedError::test_empty_semantic_response_error_is_safety",
  "tests/modules/llm/test_call_structured_fallback.py::TestIsSafetyRelatedError::test_excludes_transient_class_names",
  "tests/modules/llm/test_call_structured_fallback.py::TestIsSafetyRelatedError::test_known_safety_signals",
  "tests/modules/llm/test_call_structured_fallback.py::TestIsSafetyRelatedError::test_unknown_exception_defaults_to_safety",
  "tests/modules/llm/test_call_structured_fallback.py::TestP2_3_ValidateResponseCallback::test_empty_semantic_response_error_message",
  "tests/modules/llm/test_call_structured_fallback.py::TestP2_3_ValidateResponseCallback::test_validate_response_false_in_tier1_and_tier2_triggers_tier3",
  "tests/modules/llm/test_call_structured_fallback.py::TestP2_3_ValidateResponseCallback::test_validate_response_false_triggers_tier2",
  "tests/modules/llm/test_call_structured_fallback.py::TestP2_3_ValidateResponseCallback::test_validate_response_not_applied_to_tier3",
  "tests/modules/llm/test_call_structured_fallback.py::TestP2_3_ValidateResponseCallback::test_validate_response_passes_through_when_not_provided",
  "tests/modules/llm/test_call_structured_fallback.py::TestSanitizeForSafety::test_does_not_truncate",
  "tests/modules/llm/test_call_structured_fallback.py::TestSanitizeForSafety::test_empty_string",
  "tests/modules/llm/test_call_structured_fallback.py::TestSanitizeForSafety::test_idempotent_on_clean_text",
  "tests/modules/llm/test_call_structured_fallback.py::TestSanitizeForSafety::test_non_string_passthrough",
  "tests/modules/llm/test_call_structured_fallback.py::TestSanitizeForSafety::test_replaces_english_graphic_words",
  "tests/modules/llm/test_call_structured_fallback.py::TestSanitizeForSafety::test_replaces_korean_graphic_words",
  "tests/modules/llm/test_call_structured_fallback.py::TestSanitizeMessages::test_does_not_mutate_input",
  "tests/modules/llm/test_call_structured_fallback.py::TestSanitizeMessages::test_non_str_content_preserved",
  "tests/modules/llm/test_call_structured_fallback.py::TestSanitizeMessages::test_preserves_role_structure",
  "tests/modules/llm/test_finding10_openai_response_format_sanitizer.py::TestCallMultiturnOpenAISanitize::test_openai_path_strips_uniqueItems_sent_to_router",
  "tests/modules/llm/test_finding10_openai_response_format_sanitizer.py::TestCallStructuredOpenAISanitize::test_gemini_path_keeps_uniqueItems",
  "tests/modules/llm/test_finding10_openai_response_format_sanitizer.py::TestCallStructuredOpenAISanitize::test_openai_path_does_not_mutate_caller_schema",
  "tests/modules/llm/test_finding10_openai_response_format_sanitizer.py::TestCallStructuredOpenAISanitize::test_openai_path_local_validation_still_rejects_uniqueItems_violation",
  "tests/modules/llm/test_finding10_openai_response_format_sanitizer.py::TestCallStructuredOpenAISanitize::test_openai_path_strips_uniqueItems_sent_to_router",
  "tests/modules/llm/test_finding10_openai_response_format_sanitizer.py::TestSanitizeResponseFormatForModel::test_does_not_mutate_caller_original_schema",
  "tests/modules/llm/test_finding10_openai_response_format_sanitizer.py::TestSanitizeResponseFormatForModel::test_gemini_model_is_noop",
  "tests/modules/llm/test_finding10_openai_response_format_sanitizer.py::TestSanitizeResponseFormatForModel::test_openai_model_strips_nested_uniqueItems",
  "tests/modules/llm/test_finding10_openai_response_format_sanitizer.py::TestSanitizeResponseFormatForModel::test_strip_preserves_non_targeted_content",
  "tests/modules/llm/test_gemini_image_client_cap.py::test_cap_exhausts_on_retry_loop_without_swallowing",
  "tests/modules/llm/test_gemini_image_client_cap.py::test_cap_one_allows_exactly_one_urlopen",
  "tests/modules/llm/test_gemini_image_client_cap.py::test_cap_zero_blocks_urlopen",
  "tests/modules/llm/test_gemini_image_client_cap.py::test_gemini_image_client_in_propagated_thread_pool_caps_to_n",
  "tests/modules/llm/test_gemini_image_client_cap.py::test_gemini_image_client_in_propagated_thread_pool_respects_cap_zero",
  "tests/modules/llm/test_gemini_image_client_cap.py::test_no_budget_keeps_legacy_call_path",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestAliasSets::test_gpt56_aliases_in_no_temperature_set",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestAliasSets::test_gpt56_aliases_in_openai_set",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestAliasSets::test_gpt_mini_back_in_gemini_aliases",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestAliasSets::test_gpt_mini_not_in_gemini_aliases",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSafetyInjectionBoundary::test_gemini_alias_still_gets_safety[gemini-flash]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSafetyInjectionBoundary::test_gemini_alias_still_gets_safety[gemini-lite]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSafetyInjectionBoundary::test_gemini_alias_still_gets_safety[gemini-pro]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSafetyInjectionBoundary::test_gemini_alias_still_gets_safety[gpt-mini]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSafetyInjectionBoundary::test_openai_alias_gets_no_gemini_safety[gpt-luna]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSafetyInjectionBoundary::test_openai_alias_gets_no_gemini_safety[gpt-mini]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSafetyInjectionBoundary::test_openai_alias_gets_no_gemini_safety[gpt-terra]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSafetyInjectionBoundary::test_openai_alias_gets_no_gemini_safety[gpt]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSchemaKeySanitizer::test_unique_items_kept_for_gemini_alias[gemini-flash]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSchemaKeySanitizer::test_unique_items_kept_for_gemini_alias[gemini-lite]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSchemaKeySanitizer::test_unique_items_kept_for_gemini_alias[gemini-pro]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSchemaKeySanitizer::test_unique_items_kept_for_gemini_alias[gpt-mini]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSchemaKeySanitizer::test_unique_items_stripped_for_openai_alias[gpt-luna]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSchemaKeySanitizer::test_unique_items_stripped_for_openai_alias[gpt-mini]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSchemaKeySanitizer::test_unique_items_stripped_for_openai_alias[gpt-terra]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestSchemaKeySanitizer::test_unique_items_stripped_for_openai_alias[gpt]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestStrictDowngrade::test_compatible_schema_keeps_strict_true",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestStrictDowngrade::test_gemini_alias_untouched",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestStrictDowngrade::test_incompatible_schema_downgrades_strict",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestStrictDowngrade::test_nested_incompatibility_detected",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestStrictDowngrade::test_schema_content_not_mutated_by_downgrade",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestTemperatureSanitizer::test_temperature_stripped[gpt-luna]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestTemperatureSanitizer::test_temperature_stripped[gpt-mini]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestTemperatureSanitizer::test_temperature_stripped[gpt-terra]",
  "tests/modules/llm/test_gpt56_alias_boundary.py::TestTemperatureSanitizer::test_temperature_stripped[gpt]",
  "tests/modules/llm/test_local_schema_validation.py::TestCallMultiturnSchemaValidation::test_disabled_env_skips_for_multiturn",
  "tests/modules/llm/test_local_schema_validation.py::TestCallMultiturnSchemaValidation::test_free_text_mode_skips_schema_validate",
  "tests/modules/llm/test_local_schema_validation.py::TestCallMultiturnSchemaValidation::test_structured_passes_when_schema_valid",
  "tests/modules/llm/test_local_schema_validation.py::TestCallMultiturnSchemaValidation::test_structured_schema_fail_falls_back",
  "tests/modules/llm/test_local_schema_validation.py::TestCallStructuredSchemaValidation::test_all_tiers_schema_fail_eventually_raises_or_returns",
  "tests/modules/llm/test_local_schema_validation.py::TestCallStructuredSchemaValidation::test_enable_fallback_false_raises_immediately",
  "tests/modules/llm/test_local_schema_validation.py::TestCallStructuredSchemaValidation::test_tier1_passes_when_schema_valid",
  "tests/modules/llm/test_local_schema_validation.py::TestCallStructuredSchemaValidation::test_tier1_schema_fail_falls_back_to_tier2",
  "tests/modules/llm/test_local_schema_validation.py::TestCallStructuredSchemaValidation::test_validate_disabled_skips_for_all_tiers",
  "tests/modules/llm/test_local_schema_validation.py::TestSchemaValidationErrorClassification::test_distinct_from_empty_semantic_response_error",
  "tests/modules/llm/test_local_schema_validation.py::TestSchemaValidationErrorClassification::test_schema_validation_error_inherits_runtime_error",
  "tests/modules/llm/test_local_schema_validation.py::TestSchemaValidationErrorClassification::test_schema_validation_error_is_safety_related",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_default_on_passes_valid_payload",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_default_on_raises_for_extra_property",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_default_on_raises_for_missing_required",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_default_on_raises_for_wrong_type",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_disabled_env_truthy_parsing[0]",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_disabled_env_truthy_parsing[false]",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_disabled_env_truthy_parsing[no]",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_disabled_env_truthy_parsing[off]",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_disabled_via_env_skips_validation",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_empty_schema_no_op",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_enabled_env_truthy_parsing[1]",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_enabled_env_truthy_parsing[TRUE]",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_enabled_env_truthy_parsing[on]",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_enabled_env_truthy_parsing[true]",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_enabled_env_truthy_parsing[yes]",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_invalid_schema_error_not_classified_as_safety",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_invalid_schema_raises_invalid_schema_error",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_invalid_schema_raises_value_error",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_non_dict_schema_no_op",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_unset_env_defaults_on",
  "tests/modules/llm/test_local_schema_validation.py::TestValidateLocalSchema::test_value_error_not_classified_as_safety",
  "tests/modules/test_form_ref_round_journal.py::test_a_boolean_contract_version_is_rejected",
  "tests/modules/test_form_ref_round_journal.py::test_a_boolean_index_contract_is_reported_as_index_corruption",
  "tests/modules/test_form_ref_round_journal.py::test_a_bound_state_must_agree_with_its_header",
  "tests/modules/test_form_ref_round_journal.py::test_a_bound_state_with_an_empty_result_is_corrupt_on_read",
  "tests/modules/test_form_ref_round_journal.py::test_a_corrupt_index_is_fail_closed_without_directory_recovery",
  "tests/modules/test_form_ref_round_journal.py::test_a_malformed_index_entry_is_a_typed_failure",
  "tests/modules/test_form_ref_round_journal.py::test_a_manifest_under_an_unsupported_contract_is_rejected",
  "tests/modules/test_form_ref_round_journal.py::test_a_non_canonical_uuid_is_rejected",
  "tests/modules/test_form_ref_round_journal.py::test_a_real_v1_store_is_rejected_not_silently_migrated",
  "tests/modules/test_form_ref_round_journal.py::test_a_real_v1_store_is_untouched_by_resolve[False]",
  "tests/modules/test_form_ref_round_journal.py::test_a_real_v1_store_is_untouched_by_resolve[True]",
  "tests/modules/test_form_ref_round_journal.py::test_a_round_cannot_be_closed_without_its_result",
  "tests/modules/test_form_ref_round_journal.py::test_a_round_directory_without_a_registry_entry_is_fail_closed",
  "tests/modules/test_form_ref_round_journal.py::test_a_v1_journal_is_read_only_not_silently_current",
  "tests/modules/test_form_ref_round_journal.py::test_abandoned_rounds_reject_further_writes",
  "tests/modules/test_form_ref_round_journal.py::test_an_invalid_transition_does_not_touch_the_manifest",
  "tests/modules/test_form_ref_round_journal.py::test_an_open_partial_round_still_consumes_its_number",
  "tests/modules/test_form_ref_round_journal.py::test_an_unregistered_round_is_rejected",
  "tests/modules/test_form_ref_round_journal.py::test_an_unsupported_index_contract_is_rejected",
  "tests/modules/test_form_ref_round_journal.py::test_asset_bound_binds_the_preallocated_uuid_to_its_result",
  "tests/modules/test_form_ref_round_journal.py::test_bound_states_require_a_stored_result",
  "tests/modules/test_form_ref_round_journal.py::test_finalized_rounds_reject_further_writes",
  "tests/modules/test_form_ref_round_journal.py::test_first_round_is_r001_and_preallocates_an_asset_id",
  "tests/modules/test_form_ref_round_journal.py::test_illegal_transitions_are_rejected",
  "tests/modules/test_form_ref_round_journal.py::test_manifest_identity_is_verified",
  "tests/modules/test_form_ref_round_journal.py::test_opening_a_round_requires_provenance",
  "tests/modules/test_form_ref_round_journal.py::test_provenance_header_is_required_by_the_current_contract[<lambda>-\\uacf5\\ubc31 \\uac12]",
  "tests/modules/test_form_ref_round_journal.py::test_provenance_header_is_required_by_the_current_contract[<lambda>-\\ubb38\\uc790\\uc5f4 \\uc544\\ub2d8]",
  "tests/modules/test_form_ref_round_journal.py::test_provenance_header_is_required_by_the_current_contract[<lambda>-\\ube48 dict]",
  "tests/modules/test_form_ref_round_journal.py::test_provenance_header_is_required_by_the_current_contract[<lambda>-\\uc54c \\uc218 \\uc5c6\\ub294 \\ud0a4 \\ucd94\\uac00]",
  "tests/modules/test_form_ref_round_journal.py::test_provenance_header_is_required_by_the_current_contract[<lambda>-\\ud0a4 \\ud558\\ub098 \\ub204\\ub77d]",
  "tests/modules/test_form_ref_round_journal.py::test_provenance_header_is_required_by_the_current_contract[<lambda>-explicit null]",
  "tests/modules/test_form_ref_round_journal.py::test_provenance_header_is_required_by_the_current_contract[<lambda>-header \\uc0ad\\uc81c]",
  "tests/modules/test_form_ref_round_journal.py::test_registry_path_and_duplicates_are_verified",
  "tests/modules/test_form_ref_round_journal.py::test_resolve_picks_the_numerically_latest_round",
  "tests/modules/test_form_ref_round_journal.py::test_resume_requires_an_exact_input_fingerprint",
  "tests/modules/test_form_ref_round_journal.py::test_round_numbers_compare_numerically_not_lexically",
  "tests/modules/test_form_ref_round_journal.py::test_the_round_manifest_owns_the_state_not_the_index",
  "tests/modules/test_form_ref_round_journal.py::test_two_open_rounds_at_once_is_fail_closed",
  "tests/modules/test_form_ref_round_journal.py::test_writes_are_atomic_leaving_no_partial_file",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_defer_changes_the_fingerprint_on_the_real_path",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_defer_policy_contributes_to_the_fingerprint_but_legacy_does_not",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_defer_policy_keeps_structural_faults_out_of_the_edit",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_defer_policy_with_only_structural_makes_no_paid_call",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_empty_brief_is_blocked_before_a_single_roll_is_drawn",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_legacy_policy_is_the_default_and_unchanged",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_local_fault_still_edits_in_place",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_mixed_unfixable_and_deferred_gets_a_truthful_reason",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_regen_candidate_goes_through_fix_rejudge",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_regen_keeps_the_original_references",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_regen_prompt_keeps_brief_and_names_faults",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_regen_with_empty_brief_does_not_fall_back_to_edit",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_regen_without_rejudge_fails_before_any_image_call",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_resume_with_the_same_policy_makes_no_call",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_schema_carries_needs_regeneration",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_structural_fault_regenerates_without_reference",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_structural_fault_regenerates_without_the_rejected_image",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_unfixable_wins_over_needs_regeneration",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_unknown_regeneration_policy_is_rejected",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_without_regen_fn_all_structural_makes_no_paid_call",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_without_regen_fn_behaviour_is_unchanged",
  "tests/modules/test_multiroll_regen_on_structural_fault.py::test_without_regen_fn_structural_faults_stay_out_of_the_edit",
  "tests/modules/test_search_grounded_ref_v3.py::test_a_judge_with_any_malformed_index_is_excluded_entirely",
  "tests/modules/test_search_grounded_ref_v3.py::test_active_pack_carries_the_dual_judge_scale_contract",
  "tests/modules/test_search_grounded_ref_v3.py::test_active_pack_is_v4",
  "tests/modules/test_search_grounded_ref_v3.py::test_all_unusable_yields_no_choice_fail_closed",
  "tests/modules/test_search_grounded_ref_v3.py::test_contract_sha_is_stable_across_calls",
  "tests/modules/test_search_grounded_ref_v3.py::test_duplicate_index_excludes_the_judge",
  "tests/modules/test_search_grounded_ref_v3.py::test_empty_or_missing_verdicts_do_not_crash",
  "tests/modules/test_search_grounded_ref_v3.py::test_every_candidate_shares_the_same_denominator",
  "tests/modules/test_search_grounded_ref_v3.py::test_judge_physical_models_are_in_the_step_config_hash",
  "tests/modules/test_search_grounded_ref_v3.py::test_judges_contract_is_gemini_and_gpt",
  "tests/modules/test_search_grounded_ref_v3.py::test_missing_index_excludes_the_judge",
  "tests/modules/test_search_grounded_ref_v3.py::test_no_valid_judge_is_reported_as_its_own_cause",
  "tests/modules/test_search_grounded_ref_v3.py::test_non_filenotfound_errors_propagate",
  "tests/modules/test_search_grounded_ref_v3.py::test_out_of_range_and_malformed_indexes_are_ignored",
  "tests/modules/test_search_grounded_ref_v3.py::test_pick_combine_contract_version_moves_the_step_config_hash",
  "tests/modules/test_search_grounded_ref_v3.py::test_pick_schema_score_field_states_the_scale",
  "tests/modules/test_search_grounded_ref_v3.py::test_picks_candidate_with_higher_average_not_higher_single_score",
  "tests/modules/test_search_grounded_ref_v3.py::test_score_is_clamped_to_0_100",
  "tests/modules/test_search_grounded_ref_v3.py::test_single_surviving_judge_proceeds_but_is_disclosed",
  "tests/modules/test_search_grounded_ref_v3.py::test_target_policy_is_seed_parity",
  "tests/modules/test_search_grounded_ref_v3.py::test_tie_prefers_lower_index",
  "tests/modules/test_search_grounded_ref_v3.py::test_unwired_pack_version_fails_loudly",
  "tests/modules/test_search_grounded_ref_v3.py::test_usable_false_is_forced_to_zero_even_with_high_score",
  "tests/modules/test_search_grounded_ref_v3.py::test_v1_contract_differs_and_absorbs_its_missing_file",
  "tests/modules/test_search_grounded_ref_v3.py::test_v2_and_v3_share_the_same_contract_sha",
  "tests/modules/test_search_grounded_ref_v3.py::test_v4_changes_the_contract_because_the_scale_changed",
  "tests/modules/test_search_grounded_ref_v3.py::test_version_resolves_by_key_and_by_full_name",
  "tests/modules/test_search_grounded_ref_v3.py::test_zero_valid_judges_is_fail_closed",
  "tests/modules/test_search_records_what_actually_happened.py::TestImageSearch::test_1_완료된_검색이_없으면_빈손을_결과로_안_돌려준다",
  "tests/modules/test_search_records_what_actually_happened.py::TestImageSearch::test_1b_호출은_있었는데_전부_실패해도_미실행이다",
  "tests/modules/test_search_records_what_actually_happened.py::TestImageSearch::test_2_완료됐고_결과가_0이면_정상적인_빈_결과다",
  "tests/modules/test_search_records_what_actually_happened.py::TestImageSearch::test_3_완료됐고_결과가_있으면_그대로_돌려준다",
  "tests/modules/test_search_records_what_actually_happened.py::TestImageSearch::test_기록이_응답에서_읽은_수와_적용된_강도를_담는다",
  "tests/modules/test_search_records_what_actually_happened.py::TestImageSearch::test_요청은_안_바뀐다_tool_choice_도_reasoning_도_안_보낸다",
  "tests/modules/test_search_records_what_actually_happened.py::TestTheCounting::test_status_가_없는_모양은_완료로_안_센다",
  "tests/modules/test_search_records_what_actually_happened.py::TestTheCounting::test_type_만_세면_실패한_호출도_완료로_센다",
  "tests/modules/test_search_records_what_actually_happened.py::TestTypologyResearch::test_1_조사도_완료된_검색이_없으면_선다",
  "tests/modules/test_search_records_what_actually_happened.py::TestTypologyResearch::test_3_조사가_돌았으면_답을_그대로_돌려준다",
  "tests/modules/test_search_records_what_actually_happened.py::TestTypologyResearch::test_4_문항이_없으면_호출도_안_하고_N_A_다",
  "tests/modules/test_seed_variants_pack_gates.py::test_active_pack_is_in_inventory_gate",
  "tests/modules/test_seed_variants_pack_gates.py::test_active_pack_is_in_scale_gate",
  "tests/modules/test_seed_variants_pack_gates.py::test_active_pack_resolves_to_a_real_directory",
  "tests/modules/test_seed_variants_pack_gates.py::test_gates_never_shrink_across_versions",
  "tests/modules/test_seed_variants_pack_gates.py::test_inventory_gate_actually_adds_the_lettering_contract",
  "tests/modules/test_seed_variants_pack_gates.py::test_inventory_gate_actually_adds_the_signage_contract",
  "tests/modules/test_text_cleaner_split_depth.py::test_narrows_all_the_way_to_a_single_page",
  "tests/modules/test_text_cleaner_split_depth.py::test_never_returns_empty_string_on_empty_response",
  "tests/modules/test_text_cleaner_split_depth.py::test_single_page_document_raises_instead_of_splitting",
  "tests/modules/test_text_cleaner_split_depth.py::test_split_depth_cap_covers_the_chunk_width",
  "tests/modules/test_text_cleaner_split_depth.py::test_successful_halves_are_concatenated_in_page_order",
  "tests/modules/test_typology_prior_axes.py::test_adopted_line_without_fact_is_dropped",
  "tests/modules/test_typology_prior_axes.py::test_axis_coverage_counts_every_axis",
  "tests/modules/test_typology_prior_axes.py::test_blank_question_native_is_rejected",
  "tests/modules/test_typology_prior_axes.py::test_block_is_empty_when_nothing_adopted",
  "tests/modules/test_typology_prior_axes.py::test_block_labels_lines_with_axis",
  "tests/modules/test_typology_prior_axes.py::test_block_marks_strength_and_orders_corroborated_first",
  "tests/modules/test_typology_prior_axes.py::test_block_ranks_below_screenplay_and_spec",
  "tests/modules/test_typology_prior_axes.py::test_empty_question_list_is_valid",
  "tests/modules/test_typology_prior_axes.py::test_four_axes_exactly",
  "tests/modules/test_typology_prior_axes.py::test_missing_axis_is_rejected",
  "tests/modules/test_typology_prior_axes.py::test_module_source_carries_no_typology_or_work_vocabulary",
  "tests/modules/test_typology_prior_axes.py::test_naming_note_appears_only_with_a_naming_line",
  "tests/modules/test_typology_prior_axes.py::test_no_siting_question_is_allowed",
  "tests/modules/test_typology_prior_axes.py::test_non_list_is_rejected",
  "tests/modules/test_typology_prior_axes.py::test_over_cap_is_rejected",
  "tests/modules/test_typology_prior_axes.py::test_scale_questions_never_ask_for_a_measurement",
  "tests/modules/test_typology_prior_axes.py::test_schema_pins_axis_enum_and_requires_it",
  "tests/modules/test_typology_prior_axes.py::test_search_prompts_are_authored_in_the_source_language",
  "tests/modules/test_typology_prior_axes.py::test_search_requests_photographs_not_only_text",
  "tests/modules/test_typology_prior_axes.py::test_siting_first_is_accepted",
  "tests/modules/test_typology_prior_axes.py::test_siting_must_come_first_when_present",
  "tests/modules/test_typology_prior_axes.py::test_unknown_axis_is_rejected",
  "tests/modules/test_typology_prior_axes.py::test_version_bumped_for_four_axis_contract",
  "tests/modules/test_typology_prior_narrowing.py::test_block_is_empty_when_nothing_adopted",
  "tests/modules/test_typology_prior_narrowing.py::test_block_labels_lines_with_the_researched_target",
  "tests/modules/test_typology_prior_narrowing.py::test_block_marks_strength_and_orders_corroborated_first",
  "tests/modules/test_typology_prior_narrowing.py::test_block_ranks_below_screenplay_and_spec",
  "tests/modules/test_typology_prior_narrowing.py::test_cap_is_two_and_version_moved",
  "tests/modules/test_typology_prior_narrowing.py::test_region_block_leads_the_input",
  "tests/modules/test_typology_prior_narrowing.py::test_schema_has_target_and_question_only",
  "tests/modules/test_typology_prior_narrowing.py::test_spec_item_lines_carry_the_quote_not_only_the_name",
  "tests/modules/test_typology_prior_narrowing.py::test_validate_requires_target_and_question",
  "tests/pipeline/test_background_chain_planning.py::test_load_planner_groups_returns_dict_when_groups_present",
  "tests/pipeline/test_background_chain_planning.py::test_load_planner_groups_returns_none_when_chain_bg_empty",
  "tests/pipeline/test_background_chain_planning.py::test_load_planner_groups_returns_none_when_no_cp",
  "tests/pipeline/test_background_chain_planning.py::test_phase0_exact_and_lid_path_preserved",
  "tests/pipeline/test_background_chain_planning.py::test_phase0_groups_selected_shots_by_location",
  "tests/pipeline/test_background_chain_planning.py::test_phase0_legacy_korean_location_name_mapped_to_short_id",
  "tests/pipeline/test_background_chain_planning.py::test_phase0_no_director_location_skips_shot",
  "tests/pipeline/test_background_chain_planning.py::test_phase0_staging_attached_when_present",
  "tests/pipeline/test_background_chain_planning.py::test_phase0_substring_fallback_removed",
  "tests/pipeline/test_background_chain_planning.py::test_phase0_unresolved_location_raises",
  "tests/pipeline/test_background_chain_planning.py::test_phase0_unselected_shot_excluded",
  "tests/pipeline/test_background_chain_planning.py::test_plan_one_location_escapes_curly_braces_in_user_content",
  "tests/pipeline/test_background_chain_planning.py::test_planner_empty_chain_bg_groups_graceful_noop",
  "tests/pipeline/test_background_chain_planning.py::test_planner_floor_plan_id_prepends_when_present",
  "tests/pipeline/test_background_chain_planning.py::test_planner_groups_none_falls_back_to_legacy",
  "tests/pipeline/test_background_chain_planning.py::test_planner_groups_provided_takes_planner_path",
  "tests/pipeline/test_background_chain_planning.py::test_planner_parent_context_injected_into_child_prompt",
  "tests/pipeline/test_background_chain_planning.py::test_planner_partial_group_failure_others_proceed",
  "tests/pipeline/test_background_chain_planning.py::test_planner_root_group_no_parent_context",
  "tests/pipeline/test_background_chain_planning.py::test_planner_unmatched_floor_plan_id_no_prepend",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_cjk_compat_ideograph_rejected",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_cjk_extension_a_rejected",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_duplicate_node_ids_rejected",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_duplicate_shot",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_execution_order_missing_node",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_execution_order_parent_after_child",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_extra_shot_in_node_rejected",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_happy_path",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_kana_in_label_rejected",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_korean_in_description_rejected",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_korean_in_rationale_summary_rejected",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_literal_None_parent_id_rejected",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_literal_null_parent_id_rejected",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_location_id_mismatch",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_missing_shot",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_no_root_anchor",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_unknown_parent",
  "tests/pipeline/test_background_chain_planning.py::test_validate_plan_uppercase_NULL_parent_id_rejected",
  "tests/pipeline/test_background_chain_render.py::test_compute_levels_all_roots_single_level",
  "tests/pipeline/test_background_chain_render.py::test_compute_levels_cycle_flushed_as_final_batch",
  "tests/pipeline/test_background_chain_render.py::test_compute_levels_empty_input",
  "tests/pipeline/test_background_chain_render.py::test_compute_levels_fanout_then_merge",
  "tests/pipeline/test_background_chain_render.py::test_compute_levels_linear_chain",
  "tests/pipeline/test_background_chain_render.py::test_compute_levels_parent_outside_renderable_treated_as_root",
  "tests/pipeline/test_background_chain_render.py::test_compute_levels_real_world_shape",
  "tests/pipeline/test_background_chain_render.py::test_looks_like_moderation_block_detects_safety",
  "tests/pipeline/test_background_chain_render.py::test_looks_like_moderation_block_skips_transient",
  "tests/pipeline/test_background_chain_render.py::test_planner_render_empty_loc_id_records_skipped_no_loc",
  "tests/pipeline/test_background_chain_render.py::test_planner_render_groups_dict_preserves_planner_chain_order",
  "tests/pipeline/test_background_chain_render.py::test_planner_render_parallel_preserves_variant_order",
  "tests/pipeline/test_background_chain_render.py::test_planner_render_parallel_respects_dependency_order",
  "tests/pipeline/test_background_chain_render.py::test_planner_render_worker_exception_captured",
  "tests/pipeline/test_background_chain_render.py::test_render_node_image_happy_path_with_parent_ref",
  "tests/pipeline/test_background_chain_render.py::test_render_node_image_moderation_exhausts_attempts",
  "tests/pipeline/test_background_chain_render.py::test_render_node_image_moderation_retry_with_sanitize",
  "tests/pipeline/test_background_chain_render.py::test_render_node_image_no_sanitizer_returns_failed_on_block",
  "tests/pipeline/test_background_chain_render.py::test_render_node_image_ref_path_missing_falls_back_to_text_only",
  "tests/pipeline/test_background_chain_render.py::test_render_node_image_sanitize_prepends_background_only_reinforcer",
  "tests/pipeline/test_background_chain_render.py::test_render_node_image_text_only_when_no_ref",
  "tests/pipeline/test_background_chain_render.py::test_render_one_location_parent_png_vanished_falls_back_to_location",
  "tests/pipeline/test_background_chain_render.py::test_render_one_location_prompt_failure_marked_and_skips_image_call",
  "tests/pipeline/test_background_chain_render.py::test_render_one_location_rejects_path_traversal_node_id",
  "tests/pipeline/test_background_chain_render.py::test_render_one_location_rejects_uppercase_or_special_node_id",
  "tests/pipeline/test_background_chain_render.py::test_render_one_location_root_failure_blocks_child_using_location_fallback",
  "tests/pipeline/test_background_chain_render.py::test_render_one_location_root_fallback_to_text_only_when_no_loc_ref",
  "tests/pipeline/test_background_chain_render.py::test_render_one_location_uses_location_ref_for_root_then_parent_for_child",
  "tests/pipeline/test_background_chain_render.py::test_resolve_workers_clamps_to_cap",
  "tests/pipeline/test_background_chain_render.py::test_resolve_workers_clamps_to_min",
  "tests/pipeline/test_background_chain_render.py::test_resolve_workers_default_when_unset",
  "tests/pipeline/test_background_chain_render.py::test_resolve_workers_invalid_falls_back_to_default",
  "tests/pipeline/test_background_chain_render.py::test_run_background_chain_render_empty_returns_empty",
  "tests/pipeline/test_background_chain_render.py::test_run_background_chain_render_propagates_failed_count",
  "tests/pipeline/test_background_chain_render_cap.py::test_cap_exhausts_on_transient_retry_loop_without_swallowing",
  "tests/pipeline/test_background_chain_render_cap.py::test_cap_one_allows_one_call",
  "tests/pipeline/test_background_chain_render_cap.py::test_cap_zero_blocks_generate",
  "tests/pipeline/test_background_chain_render_cap.py::test_cap_zero_blocks_multi_edit",
  "tests/pipeline/test_background_chain_render_cap.py::test_cap_zero_blocks_single_edit",
  "tests/pipeline/test_background_chain_render_cap.py::test_no_budget_keeps_legacy_behaviour",
  "tests/pipeline/test_background_classify.py::test_build_user_prompt_handles_brace_safely",
  "tests/pipeline/test_background_classify.py::test_build_user_prompt_includes_groups",
  "tests/pipeline/test_background_classify.py::test_build_user_prompt_includes_locations",
  "tests/pipeline/test_background_classify.py::test_run_raises_on_exhaustion",
  "tests/pipeline/test_background_classify.py::test_run_retries_on_invariant_failure",
  "tests/pipeline/test_background_classify.py::test_validate_clusters_indoor_pair_chain_bg",
  "tests/pipeline/test_background_classify.py::test_validate_passes_partition_cover",
  "tests/pipeline/test_background_classify.py::test_validate_passes_valid_output",
  "tests/pipeline/test_background_classify.py::test_validate_rejects_anchor_not_in_members",
  "tests/pipeline/test_background_classify.py::test_validate_rejects_chain_bg_without_enough_shots",
  "tests/pipeline/test_background_classify.py::test_validate_rejects_chain_bg_without_indoor",
  "tests/pipeline/test_background_classify.py::test_validate_rejects_duplicate_cover",
  "tests/pipeline/test_background_classify.py::test_validate_rejects_korean_group_id",
  "tests/pipeline/test_background_classify.py::test_validate_rejects_korean_id",
  "tests/pipeline/test_background_classify.py::test_validate_rejects_missing_loc_in_cover",
  "tests/pipeline/test_background_classify.py::test_validate_rejects_unexpected_group_id",
  "tests/pipeline/test_background_classify.py::test_validate_rejects_unknown_anchor",
  "tests/pipeline/test_background_classify.py::test_validate_rejects_unknown_member_loc",
  "tests/pipeline/test_background_classify.py::test_validate_solo_outdoor_prev_shot_ref",
  "tests/pipeline/test_background_image_planner.py::test_fp_seeded_anchor_uses_base_fp_only_when_catalog_is_empty",
  "tests/pipeline/test_background_image_planner.py::test_reference_derived_uses_prior_bgs_only_no_fp",
  "tests/pipeline/test_background_image_planner.py::test_reference_guidance_prefix_contains_anti_luxury_style_contract",
  "tests/pipeline/test_background_image_planner.py::test_select_next_bg_prefers_clean_follow_on_before_dirty_sibling",
  "tests/pipeline/test_background_image_planner.py::test_style_reference_new_space_capped_at_one_ref",
  "tests/pipeline/test_background_image_planner.py::test_style_reference_new_space_triggers_with_zero_shared_markers",
  "tests/pipeline/test_background_master_plan.py::test_build_user_prompt_includes_full_scene_text",
  "tests/pipeline/test_background_master_plan.py::test_build_user_prompt_injects_space_profile_marker",
  "tests/pipeline/test_background_master_plan.py::test_invariant_1_korean_id_rejected",
  "tests/pipeline/test_background_master_plan.py::test_invariant_1_uppercase_id_rejected",
  "tests/pipeline/test_background_master_plan.py::test_invariant_2_bg_without_fp_ref_rejected",
  "tests/pipeline/test_background_master_plan.py::test_invariant_2_unknown_fp_ref_rejected",
  "tests/pipeline/test_background_master_plan.py::test_invariant_3_cross_group_shot_rejected",
  "tests/pipeline/test_background_master_plan.py::test_invariant_4_same_sublocation_must_share_fp",
  "tests/pipeline/test_background_master_plan.py::test_invariant_4b_bg_sub_location_must_match_fp_sub_location",
  "tests/pipeline/test_background_master_plan.py::test_invariant_5_chain_within_sublocation",
  "tests/pipeline/test_background_master_plan.py::test_invariant_6_topological_violation_rejected",
  "tests/pipeline/test_background_master_plan.py::test_invariant_7_fp_id_duplicate_rejected",
  "tests/pipeline/test_background_master_plan.py::test_invariant_7_gen_order_set_mismatch_rejected",
  "tests/pipeline/test_background_master_plan.py::test_invariant_8_loc_id_not_in_group_rejected",
  "tests/pipeline/test_background_master_plan.py::test_run_raises_after_exhaustion",
  "tests/pipeline/test_background_master_plan.py::test_run_retries_on_invariant_failure",
  "tests/pipeline/test_background_master_plan.py::test_validate_passes_minimal",
  "tests/pipeline/test_background_master_plan.py::test_validate_raises_semantic_key_error_when_profile_missing",
  "tests/pipeline/test_background_master_plan_surface_role.py::test_raw_validator_surface_role_allows_exterior_without_fp",
  "tests/pipeline/test_background_master_plan_surface_role.py::test_raw_validator_surface_role_rejects_interior_without_fp",
  "tests/pipeline/test_background_master_plan_surface_role.py::test_step_uses_background_master_plan_v6_and_schema_5",
  "tests/pipeline/test_background_master_plan_surface_role.py::test_v6_schema_requires_background_surface_role_only",
  "tests/pipeline/test_background_prompt.py::TestD6Schema::test_v6_schema_accepts_d6_bg_id",
  "tests/pipeline/test_background_prompt.py::TestD6Schema::test_v6_schema_accepts_three_digit_loc_or_b",
  "tests/pipeline/test_background_prompt.py::TestD6Schema::test_v6_schema_rejects_lowercase_l_b",
  "tests/pipeline/test_background_prompt.py::TestD6Schema::test_v6_schema_rejects_pre_d6_lowercase",
  "tests/pipeline/test_background_prompt.py::TestRuntimeEnumInjection::test_run_does_not_mutate_loaded_schema_across_calls",
  "tests/pipeline/test_background_prompt.py::TestRuntimeEnumInjection::test_run_injects_bg_id_enum",
  "tests/pipeline/test_background_prompt.py::TestUserPromptD6Fields::test_user_prompt_legacy_state_label_fallback",
  "tests/pipeline/test_background_prompt.py::TestUserPromptD6Fields::test_user_prompt_uses_state_label_raw",
  "tests/pipeline/test_background_prompt.py::TestUserPromptD6Fields::test_user_prompt_uses_sub_location_label",
  "tests/pipeline/test_background_prompt.py::test_background_prompt_v2_allows_korean_t2i_prompt",
  "tests/pipeline/test_background_prompt.py::test_background_prompt_v2_blocks_blank_when_no_camera",
  "tests/pipeline/test_background_prompt.py::test_background_prompt_v2_format_camera_recommendation_helper",
  "tests/pipeline/test_background_prompt.py::test_background_prompt_v2_format_numbered_elements_helper",
  "tests/pipeline/test_background_prompt.py::test_background_prompt_v2_inject_numbered_block",
  "tests/pipeline/test_background_prompt.py::test_background_prompt_v2_validates_bg_id_ascii_identifier",
  "tests/pipeline/test_background_prompt.py::test_build_user_prompt_includes_full_scene_text",
  "tests/pipeline/test_background_prompt.py::test_run_retries_then_returns",
  "tests/pipeline/test_background_prompt.py::test_validate_passes_minimal",
  "tests/pipeline/test_background_prompt.py::test_validate_rejects_korean_t2i",
  "tests/pipeline/test_background_prompt.py::test_validate_rejects_missing_shot_guide",
  "tests/pipeline/test_background_prompt_camera_sanitize.py::test_build_v12_prompt_strips_transient_camera_cue",
  "tests/pipeline/test_background_prompt_camera_sanitize.py::test_camera_block_clean_rec_is_byte_identical_without_transient_set",
  "tests/pipeline/test_background_prompt_camera_sanitize.py::test_camera_block_drops_field_citing_transient_number",
  "tests/pipeline/test_background_prompt_camera_sanitize.py::test_camera_block_no_transient_set_unchanged",
  "tests/pipeline/test_background_prompt_camera_sanitize.py::test_extract_transient_marker_numbers_from_overlay",
  "tests/pipeline/test_background_prompt_camera_sanitize.py::test_extract_transient_safe_on_missing",
  "tests/pipeline/test_background_prompt_marker_legibility.py::test_marker_line_byte_identical_when_meta_na",
  "tests/pipeline/test_background_prompt_marker_legibility.py::test_marker_line_byte_identical_when_no_meta_keys",
  "tests/pipeline/test_background_prompt_marker_legibility.py::test_marker_line_render_role_only_when_legibility_na",
  "tests/pipeline/test_background_prompt_marker_legibility.py::test_marker_line_surfaces_clear_legibility",
  "tests/pipeline/test_background_prompt_marker_legibility.py::test_marker_line_surfaces_render_role_and_low_legibility",
  "tests/pipeline/test_background_prompt_overlay_fallback.py::test_all_overlay_required_versions_degrade_when_missing",
  "tests/pipeline/test_background_prompt_overlay_fallback.py::test_v6_is_byte_identical_passthrough",
  "tests/pipeline/test_background_prompt_overlay_fallback.py::test_v7_with_overlay_keeps_v7_no_fallback",
  "tests/pipeline/test_background_prompt_overlay_fallback.py::test_v7_without_overlay_degrades_to_v6_with_diagnostic",
  "tests/pipeline/test_background_prompt_projection.py::test_blocked_state_does_not_inject",
  "tests/pipeline/test_background_prompt_projection.py::test_needs_review_state_does_not_inject",
  "tests/pipeline/test_background_prompt_projection.py::test_not_applicable_state_does_not_inject",
  "tests/pipeline/test_background_prompt_projection.py::test_pass_but_card_id_mismatch_is_stale",
  "tests/pipeline/test_background_prompt_projection.py::test_pass_but_card_missing_from_checkpoint_falls_back",
  "tests/pipeline/test_background_prompt_projection.py::test_pass_but_checkpoint_state_not_pass_is_state_changed",
  "tests/pipeline/test_background_prompt_projection.py::test_pass_but_empty_hash_field_is_stale",
  "tests/pipeline/test_background_prompt_projection.py::test_pass_but_empty_plate_prose_falls_back",
  "tests/pipeline/test_background_prompt_projection.py::test_pass_but_enum_literal_leak_in_prose_falls_back",
  "tests/pipeline/test_background_prompt_projection.py::test_pass_but_marker_number_leak_in_prose_falls_back",
  "tests/pipeline/test_background_prompt_projection.py::test_pass_but_node_id_hash_self_mismatch_is_stale",
  "tests/pipeline/test_background_prompt_projection.py::test_pass_with_matching_card_injects_plate_prose",
  "tests/pipeline/test_background_prompt_projection.py::test_reuse_inherited_pass_injects_target_anchor_plate",
  "tests/pipeline/test_background_prompt_scale_anchor.py::test_rule_loads_and_is_generic",
  "tests/pipeline/test_background_prompt_scale_anchor.py::test_scale_anchor_appends_to_active_system_v7_and_v14",
  "tests/pipeline/test_background_prompt_scale_anchor.py::test_scale_anchor_off_is_byte_identical",
  "tests/pipeline/test_background_prompt_scale_anchor.py::test_settings_literal_unchanged",
  "tests/pipeline/test_background_prompt_v10.py::test_v10_build_withholds_transient_screen_label_and_includes_policy",
  "tests/pipeline/test_background_prompt_v10.py::test_v10_fp_less_exterior_allows_missing_overlay",
  "tests/pipeline/test_background_prompt_v10.py::test_v10_pack_loads_stronger_screen_content_guard",
  "tests/pipeline/test_background_prompt_v10.py::test_v10_selector_resolves_pack_name",
  "tests/pipeline/test_background_prompt_v11.py::test_v11_build_surfaces_legibility_and_keeps_purity",
  "tests/pipeline/test_background_prompt_v11.py::test_v11_fp_less_exterior_allows_missing_overlay",
  "tests/pipeline/test_background_prompt_v11.py::test_v11_pack_adds_legibility_guidance_keeps_v10_shape",
  "tests/pipeline/test_background_prompt_v11.py::test_v11_selector_resolves_pack_name",
  "tests/pipeline/test_background_prompt_v12.py::test_v12_base_markers_byte_match_v10_when_no_plate",
  "tests/pipeline/test_background_prompt_v12.py::test_v12_clean_sentinel_when_no_plate",
  "tests/pipeline/test_background_prompt_v12.py::test_v12_fp_less_exterior_allows_missing_overlay",
  "tests/pipeline/test_background_prompt_v12.py::test_v12_injects_plate_prose_when_provided",
  "tests/pipeline/test_background_prompt_v12.py::test_v12_pack_adds_projection_block_keeps_v10_shape",
  "tests/pipeline/test_background_prompt_v12.py::test_v12_selector_resolves_pack_name",
  "tests/pipeline/test_background_prompt_v7.py::test_v6_default_selector_renders_without_overlay",
  "tests/pipeline/test_background_prompt_v7.py::test_v7_clean_emits_sentinel_ignored_absent",
  "tests/pipeline/test_background_prompt_v7.py::test_v7_dirty_separates_base_and_transient_ignored_absent",
  "tests/pipeline/test_background_prompt_v7.py::test_v7_missing_overlay_raises",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_clean_emits_sentinel_ignored_absent",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_clean_overlay_does_not_emit_sentinel",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_config_literal_accepts_eight",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_dirty_renders_base_but_withholds_transient_label",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_dirty_separates_base_and_transient_ignored_absent",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_does_not_inject_scene_segments_block",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_missing_overlay_raises",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_pack_files_load_and_have_required_placeholders",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_schema_keeps_v7_output_shape",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_selector_resolves_pack_name",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_source_language_fallback_excludes_scene_segments_mention",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_unknown_selector_still_fails_fast",
  "tests/pipeline/test_background_prompt_v8.py::test_v8_v6_source_language_fallback_unchanged",
  "tests/pipeline/test_background_prompt_v9.py::test_v10_config_literal_accepts_ten",
  "tests/pipeline/test_background_prompt_v9.py::test_v9_build_includes_surface_role_but_withholds_transient_screen_label",
  "tests/pipeline/test_background_prompt_v9.py::test_v9_config_literal_accepts_nine",
  "tests/pipeline/test_background_prompt_v9.py::test_v9_fp_backed_non_interior_missing_overlay_still_raises",
  "tests/pipeline/test_background_prompt_v9.py::test_v9_fp_less_exterior_allows_missing_overlay",
  "tests/pipeline/test_background_prompt_v9.py::test_v9_interior_missing_overlay_still_raises",
  "tests/pipeline/test_background_prompt_v9.py::test_v9_missing_overlay_raises",
  "tests/pipeline/test_background_prompt_v9.py::test_v9_pack_loads_and_adds_screen_guard",
  "tests/pipeline/test_background_prompt_v9.py::test_v9_selector_resolves_pack_name",
  "tests/pipeline/test_background_render.py::test_building_anchor_alone_promotes_text_only_to_single_edit",
  "tests/pipeline/test_background_render.py::test_building_anchor_default_none_is_byte_identical",
  "tests/pipeline/test_background_render.py::test_building_anchor_missing_file_ignored",
  "tests/pipeline/test_background_render.py::test_building_anchor_order_prior_then_anchor_then_building_fp",
  "tests/pipeline/test_background_render.py::test_building_fp_alone_promotes_text_only_to_single_edit",
  "tests/pipeline/test_background_render.py::test_building_fp_appended_last_after_fp_and_prior",
  "tests/pipeline/test_background_render.py::test_building_fp_default_none_is_byte_identical",
  "tests/pipeline/test_background_render.py::test_building_fp_missing_file_ignored",
  "tests/pipeline/test_background_render.py::test_render_one_background_default_size_16_9",
  "tests/pipeline/test_background_render.py::test_render_text_only_when_no_refs",
  "tests/pipeline/test_background_render.py::test_render_with_fp_and_prior_bg",
  "tests/pipeline/test_background_render_active_audit.py::test_active_but_missing_asset_or_file_is_active_missing_not_stale",
  "tests/pipeline/test_background_render_active_audit.py::test_active_includes_ok_normal_and_ok_reuse_with_counts_split",
  "tests/pipeline/test_background_render_active_audit.py::test_expected_but_failed_bg_drops_to_stale",
  "tests/pipeline/test_background_render_active_audit.py::test_expected_outside_asset_and_file_are_stale",
  "tests/pipeline/test_background_render_active_audit.py::test_helper_does_not_mutate_inputs",
  "tests/pipeline/test_background_render_audit.py::test_lineage_building_anchor_label_between_bg_and_building_fp",
  "tests/pipeline/test_background_render_audit.py::test_lineage_building_anchor_missing_file_no_label",
  "tests/pipeline/test_background_render_audit.py::test_lineage_building_fp_label_appended_last",
  "tests/pipeline/test_background_render_audit.py::test_lineage_building_fp_missing_file_no_label",
  "tests/pipeline/test_background_render_audit.py::test_lineage_db_write_policy_is_constant",
  "tests/pipeline/test_background_render_audit.py::test_lineage_fp_only_attaches_fp_label",
  "tests/pipeline/test_background_render_audit.py::test_lineage_fp_plus_prior_bg",
  "tests/pipeline/test_background_render_audit.py::test_lineage_payload_keys_are_stable_shape",
  "tests/pipeline/test_background_render_audit.py::test_lineage_prior_bg_only_uses_stem_as_id",
  "tests/pipeline/test_background_render_audit.py::test_lineage_skips_missing_path_silently",
  "tests/pipeline/test_background_render_audit.py::test_lineage_text_only_no_fp_no_prior",
  "tests/pipeline/test_background_render_audit.py::test_opt_in_failed_entry_carries_lineage",
  "tests/pipeline/test_background_render_audit.py::test_shot_aware_queue_renders_fp_less_exterior_direct_plate",
  "tests/pipeline/test_background_render_audit.py::test_shot_aware_queue_still_fails_interior_without_fp",
  "tests/pipeline/test_background_render_cap.py::test_cap_one_allows_exactly_one_successful_generate",
  "tests/pipeline/test_background_render_cap.py::test_cap_two_exhausts_on_third_non_moderation_retry",
  "tests/pipeline/test_background_render_cap.py::test_cap_zero_blocks_provider_call_for_multi_edit",
  "tests/pipeline/test_background_render_cap.py::test_cap_zero_blocks_provider_call_for_single_edit",
  "tests/pipeline/test_background_render_cap.py::test_cap_zero_blocks_provider_call_for_text_only",
  "tests/pipeline/test_background_render_cap.py::test_no_budget_installed_keeps_legacy_behaviour",
  "tests/pipeline/test_background_render_cap.py::test_reserve_source_label_distinguishes_modes",
  "tests/pipeline/test_background_render_cap.py::test_thread_pool_child_with_propagated_cap_n_is_authoritative",
  "tests/pipeline/test_background_render_cap.py::test_thread_pool_child_with_propagated_cap_zero_blocks_provider",
  "tests/pipeline/test_background_render_cap.py::test_thread_pool_child_without_binding_misses_parent_cap",
  "tests/pipeline/test_background_share_plan.py::test_pack_v1_resolves_and_neutral",
  "tests/pipeline/test_background_share_plan.py::test_run_retries_until_group_key_unique",
  "tests/pipeline/test_background_share_plan.py::test_schema_locks_enums",
  "tests/pipeline/test_background_share_plan.py::test_validate_evidence_quote_must_exist",
  "tests/pipeline/test_background_share_plan.py::test_validate_first_shot_must_be_background",
  "tests/pipeline/test_background_share_plan.py::test_validate_passes_clean",
  "tests/pipeline/test_background_share_plan.py::test_validate_prev_anchor_must_be_earlier_same_group",
  "tests/pipeline/test_background_share_plan.py::test_validate_rejects_duplicate_group_key",
  "tests/pipeline/test_background_share_plan.py::test_validate_rejects_uncovered_or_duplicate_shot",
  "tests/pipeline/test_background_share_plan.py::test_validation_version_stamped_in_step_hash",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_anchor_selection_is_surface_only_never_picks",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_base_marker_inventory_excludes_overlay_markers",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_emits_five_identity_axes_for_valid_fp",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_emits_per_bg_render_facts_for_each_bg_id",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_fails_on_bad_grid_size",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_fails_on_invalid_base_layer_decision_enum",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_fails_when_no_base_structural_unit",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_fails_when_no_floor_plans_with_status_ok",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_geometry_candidates_shape_declared_with_vlm_slots_empty",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_overlay_inventory_carries_bg_id_and_number",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_per_bg_facts_carry_applies_to_shots_and_depends_on_bg",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_per_bg_facts_diagnostic_when_master_plan_spec_missing",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_per_bg_facts_diagnostic_when_overlay_missing",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_records_diagnostic_when_fp_render_missing",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_records_diagnostic_when_overlay_payload_missing",
  "tests/pipeline/test_base_location_dossier.py::test_dossier_vlm_readback_is_synthetic_placeholder_only",
  "tests/pipeline/test_base_location_dossier.py::test_partition_enums_match_w19b1_locked_set",
  "tests/pipeline/test_bg_render_substrate.py::test_card_withheld_fresh_is_fresh_class",
  "tests/pipeline/test_bg_render_substrate.py::test_decision_always_carries_all_fields",
  "tests/pipeline/test_bg_render_substrate.py::test_fp_less_no_fp_path_is_direct",
  "tests/pipeline/test_bg_render_substrate.py::test_fresh_all_parents_missing_is_fallback_fp_only",
  "tests/pipeline/test_bg_render_substrate.py::test_fresh_fp_plus_space_continuity_parent",
  "tests/pipeline/test_bg_render_substrate.py::test_fresh_missing_one_parent_drops_only_missing",
  "tests/pipeline/test_bg_render_substrate.py::test_fresh_no_parents_is_fp_only",
  "tests/pipeline/test_bg_render_substrate.py::test_fresh_orders_space_continuity_before_style",
  "tests/pipeline/test_bg_render_substrate.py::test_path_inputs_normalize_to_str_output",
  "tests/pipeline/test_bg_render_substrate.py::test_resolver_defensive_max_refs_cap",
  "tests/pipeline/test_bg_render_substrate.py::test_reuse_alias_has_no_render_input",
  "tests/pipeline/test_bg_render_substrate.py::test_unspecified_role_is_not_invented_as_style",
  "tests/pipeline/test_bg_space_partition.py::test_adjacent_only_never_groups",
  "tests/pipeline/test_bg_space_partition.py::test_build_edge_judge_prompt_carries_visible_items_and_hint",
  "tests/pipeline/test_bg_space_partition.py::test_candidate_edges_drop_hard_negative_no_shared_unit",
  "tests/pipeline/test_bg_space_partition.py::test_candidate_edges_feed_partition_with_recall",
  "tests/pipeline/test_bg_space_partition.py::test_candidate_edges_hub_node_never_obvious_positive",
  "tests/pipeline/test_bg_space_partition.py::test_candidate_edges_obvious_positive_is_same_space",
  "tests/pipeline/test_bg_space_partition.py::test_candidate_edges_only_use_structural_units_and_ignore_labels",
  "tests/pipeline/test_bg_space_partition.py::test_candidate_edges_shared_only_ubiquitous_is_uncertain",
  "tests/pipeline/test_bg_space_partition.py::test_card_is_judgeable_requires_pass_and_visible_items",
  "tests/pipeline/test_bg_space_partition.py::test_classify_edge_strong_requires_all_three",
  "tests/pipeline/test_bg_space_partition.py::test_edge_judge_provider_failclose_without_api_key",
  "tests/pipeline/test_bg_space_partition.py::test_l05_bathroom_is_independent_no_parent",
  "tests/pipeline/test_bg_space_partition.py::test_l05_hub_does_not_anchor_over_nonhub",
  "tests/pipeline/test_bg_space_partition.py::test_l05_partition_matches_visual_review",
  "tests/pipeline/test_bg_space_partition.py::test_l20_all_one_group",
  "tests/pipeline/test_bg_space_partition.py::test_max_refs_cap_respected",
  "tests/pipeline/test_bg_space_partition.py::test_threshold_constant_is_conservative",
  "tests/pipeline/test_bg_space_partition.py::test_transitive_trap_a_c_different_prevents_single_group",
  "tests/pipeline/test_bg_space_partition.py::test_validate_edge_judge_output_feeds_classify_edge",
  "tests/pipeline/test_bg_space_partition.py::test_validate_edge_judge_output_rejects_garbage",
  "tests/pipeline/test_bg_space_partition.py::test_validate_edge_judge_output_strong_parent_gate",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_anchor_loc_wins_over_shot_count",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_anchor_without_fp_falls_back_to_shot_count",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_duplicate_outdoor_loc_first_group_wins",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_empty_inputs",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_indoor_without_any_fp_no_link",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_is_indoor_none_not_treated_as_outdoor",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_malformed_groups_ignored",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_mixed_group_links_all_outdoor_members",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_multi_fp_indoor_picks_sorted_first",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_pure_indoor_group_no_link",
  "tests/pipeline/test_building_fp_link.py::TestBuildOutdoorBuildingFpLink::test_pure_outdoor_group_no_link",
  "tests/pipeline/test_building_fp_link.py::TestGroupMembershipByLoc::test_all_members_indoor_and_outdoor",
  "tests/pipeline/test_building_fp_link.py::TestGroupMembershipByLoc::test_duplicate_loc_first_group_wins",
  "tests/pipeline/test_building_fp_link.py::TestGroupMembershipByLoc::test_missing_group_id_or_empty_members_skipped",
  "tests/pipeline/test_building_fp_link.py::TestGroupMembershipByLoc::test_non_bool_is_indoor_member_excluded",
  "tests/pipeline/test_building_fp_link.py::TestGroupMembershipByLoc::test_pure_indoor_group_not_mixed",
  "tests/pipeline/test_building_fp_link.py::TestIndoorFpIdsByLoc::test_empty_catalog",
  "tests/pipeline/test_building_fp_link.py::TestIndoorFpIdsByLoc::test_joins_loc_id_to_depends_on_fp",
  "tests/pipeline/test_building_fp_link.py::TestIndoorFpIdsByLoc::test_malformed_entries_ignored",
  "tests/pipeline/test_building_fp_link.py::TestIndoorFpIdsByLoc::test_sorted_and_deduped",
  "tests/pipeline/test_building_fp_link.py::TestRealShapeMirror::test_three_member_mixed_group_shape",
  "tests/pipeline/test_building_fp_ref_wiring.py::TestAerialBasePromotion::test_building_fp_png_promotes_to_i2i_edit_with_guidance",
  "tests/pipeline/test_building_fp_ref_wiring.py::TestAerialBasePromotion::test_default_none_stays_t2i_generate",
  "tests/pipeline/test_building_fp_ref_wiring.py::TestAerialBasePromotion::test_empty_bytes_treated_as_no_fp",
  "tests/pipeline/test_building_fp_ref_wiring.py::TestConfigHashStamping::test_background_render_hash_stamps_only_when_flag_on",
  "tests/pipeline/test_building_fp_ref_wiring.py::TestConfigHashStamping::test_flag_default_is_off",
  "tests/pipeline/test_building_fp_ref_wiring.py::TestConfigHashStamping::test_outdoor_site_layout_hash_stamps_only_when_flag_on",
  "tests/pipeline/test_building_fp_ref_wiring.py::TestGuidanceContracts::test_aerial_guidance_forbids_plan_copy",
  "tests/pipeline/test_building_fp_ref_wiring.py::TestGuidanceContracts::test_plate_guidance_is_structural_reference_only",
  "tests/pipeline/test_c2_single_frame_readback.py::test_clean_verdict_no_retry",
  "tests/pipeline/test_c2_single_frame_readback.py::test_flag_off_noop",
  "tests/pipeline/test_c2_single_frame_readback.py::test_retry_generation_error_keeps_original",
  "tests/pipeline/test_c2_single_frame_readback.py::test_still_violating_after_retry_keeps_retry_and_diags",
  "tests/pipeline/test_c2_single_frame_readback.py::test_violates_matrix",
  "tests/pipeline/test_c2_single_frame_readback.py::test_violation_retries_once_with_correction",
  "tests/pipeline/test_c2_single_frame_readback.py::test_vlm_error_nonblocking",
  "tests/pipeline/test_dag_levels.py::test_all_roots_single_level",
  "tests/pipeline/test_dag_levels.py::test_cycle_flushed_as_final_batch",
  "tests/pipeline/test_dag_levels.py::test_empty_input",
  "tests/pipeline/test_dag_levels.py::test_fanout_then_merge",
  "tests/pipeline/test_dag_levels.py::test_linear_chain_4_levels",
  "tests/pipeline/test_dag_levels.py::test_parent_outside_renderable_treated_as_root",
  "tests/pipeline/test_dag_levels.py::test_preserves_order_within_level",
  "tests/pipeline/test_dead_prompt_markers.py::test_layout_plan_provider_carries_dead_marker",
  "tests/pipeline/test_dead_prompt_markers.py::test_layout_plan_provider_still_has_no_callers",
  "tests/pipeline/test_dwelling_zone_map.py::test_assemble_annotated_ref_is_render_forbidden_and_separate",
  "tests/pipeline/test_dwelling_zone_map.py::test_assemble_bg_assignment_carries_grid_and_shots",
  "tests/pipeline/test_dwelling_zone_map.py::test_assemble_groups_two_zones_living_and_bedroom",
  "tests/pipeline/test_dwelling_zone_map.py::test_assemble_low_confidence_flagged_and_ambiguous",
  "tests/pipeline/test_dwelling_zone_map.py::test_assemble_shot_assignments_invert_bg_binding",
  "tests/pipeline/test_dwelling_zone_map.py::test_assemble_single_zone_marks_not_applicable",
  "tests/pipeline/test_dwelling_zone_map.py::test_assemble_structure_cues_exact_match_only",
  "tests/pipeline/test_dwelling_zone_map.py::test_assemble_zone_bbox_covers_member_points",
  "tests/pipeline/test_dwelling_zone_map.py::test_assemble_zone_id_is_first_seen_deterministic",
  "tests/pipeline/test_dwelling_zone_map.py::test_compare_counts_agreement",
  "tests/pipeline/test_dwelling_zone_map.py::test_compare_no_plan_marks_unavailable",
  "tests/pipeline/test_dwelling_zone_map.py::test_compare_surfaces_pairs_zone_map_merged",
  "tests/pipeline/test_dwelling_zone_map.py::test_confidence_floor_is_conservative",
  "tests/pipeline/test_dwelling_zone_map.py::test_interior_roles_constant_is_conservative",
  "tests/pipeline/test_dwelling_zone_map.py::test_numbered_elements_adapter_distinct_rooms_on_duplicate_labels",
  "tests/pipeline/test_dwelling_zone_map.py::test_numbered_elements_adapter_empty_or_no_structural_areas",
  "tests/pipeline/test_dwelling_zone_map.py::test_numbered_elements_adapter_excludes_state_overlays_and_global_fixtures",
  "tests/pipeline/test_dwelling_zone_map.py::test_numbered_elements_adapter_keeps_all_structural_areas",
  "tests/pipeline/test_dwelling_zone_map.py::test_select_excludes_exterior_and_site_bgs",
  "tests/pipeline/test_dwelling_zone_map.py::test_select_fp_less_bg_ignored",
  "tests/pipeline/test_dwelling_zone_map.py::test_select_groups_interior_bgs_by_fp",
  "tests/pipeline/test_dwelling_zone_map.py::test_select_single_bg_dwelling_not_applicable",
  "tests/pipeline/test_dwelling_zone_map.py::test_space_model_adapter_carries_fixtures",
  "tests/pipeline/test_dwelling_zone_map.py::test_space_model_adapter_empty_or_bad_returns_no_rooms",
  "tests/pipeline/test_dwelling_zone_map.py::test_space_model_adapter_preserves_every_zone",
  "tests/pipeline/test_dwelling_zone_map.py::test_synthetic_fixture_is_non_authoritative_and_shaped",
  "tests/pipeline/test_dwelling_zone_map.py::test_validate_vlm_output_accepts_well_formed",
  "tests/pipeline/test_dwelling_zone_map.py::test_validate_vlm_output_confidence_out_of_range_fails",
  "tests/pipeline/test_dwelling_zone_map.py::test_validate_vlm_output_empty_zone_group_fails",
  "tests/pipeline/test_dwelling_zone_map.py::test_validate_vlm_output_grid_out_of_bounds_fails",
  "tests/pipeline/test_dwelling_zone_map.py::test_validate_vlm_output_missing_bg_fails",
  "tests/pipeline/test_dwelling_zone_map.py::test_validate_vlm_output_non_list_fails_closed",
  "tests/pipeline/test_dwelling_zone_map.py::test_validate_vlm_output_unexpected_bg_fails",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_3d_directional_returns_empty[TV]",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_3d_directional_returns_empty[mirror]",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_3d_directional_returns_empty[monitor]",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_3d_directional_returns_empty[old door]",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_empty_orientation_returns_empty[  ]",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_empty_orientation_returns_empty[]",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_empty_orientation_returns_empty[n/a]",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_empty_orientation_returns_empty[none]",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_empty_orientation_returns_empty[not applicable]",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_nondirectional_returns_empty",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_printed_page_branch",
  "tests/pipeline/test_flat_directional_classifier.py::test_directive_for_visual_display_branch",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_frame_false_positive_deny[camera frame]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_frame_false_positive_deny[frame edge]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_frame_false_positive_deny[frame line]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_frame_false_positive_deny[image frame edge]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_frame_via_composite[\\uc561\\uc790]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_frame_via_composite[framed photograph]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_frame_via_composite[photo frame]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_frame_via_composite[picture frame]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_3d_fixture[TV]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_3d_fixture[monitor]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_3d_fixture[old mirror]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_3d_fixture[open window]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_3d_fixture[television]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_3d_fixture[tv]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_3d_fixture[wooden door]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_nondirectional[]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_nondirectional[ceiling]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_nondirectional[concrete floor]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_nondirectional[fishing boat deck]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_nondirectional[rain-slick wall]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_negative_nondirectional[wooden deck]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[a folded document]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[a torn page]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[an old photograph]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[drawing]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[letter]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[map]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[old picture]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[painting]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[photo]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[playing card]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[poster on the wall]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[screen]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[small sign]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_english[thin paper]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\uadf8\\ub9bc]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\ub0a1\\uc740 \\ubb38\\uc11c]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\ub0a1\\uc740 \\uc561\\uc790]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\uc0ac\\uc9c4]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\uc9c0\\ub3c4]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\uce74\\ub4dc]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\ud070 \\ud654\\uba74]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\ud3b8\\uc9c0]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\ud3ec\\uc2a4\\ud130]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\ud45c\\uc9c0\\ud310]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_flat_directional_positive_korean[\\ud770 \\uc885\\uc774]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_false[back panel visible]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_false[front face facing camera]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_false[front printed side visible]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_false[reflecting character face]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_false[screen toward camera]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_true[  ]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_true[ ]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_true[N/A]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_true[Not Applicable]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_true[UNKNOWN]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_true[]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_true[n/a]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_true[none]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_true[not applicable]",
  "tests/pipeline/test_flat_directional_classifier.py::test_is_orientation_empty_true[unknown]",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_compute_readback_default_returns_synthetic_fixture",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_compute_readback_provider_fail_closed_on_fp_id_mismatch",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_compute_readback_provider_fail_closed_on_non_ok_status",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_compute_readback_with_provider_returns_ok_and_validates_fp_id",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_accepts_cell_collision_and_surfaces_diagnostic",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_candidates_diagnostic_when_readback_synthetic",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_candidates_direction_vectors_pair_all_units_excluding_self",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_candidates_emit_per_unit_camera_anchor_cells",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_candidates_look_at_includes_openings_fixtures_furniture",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_candidates_view_cone_records_per_unit_and_lens",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_candidates_visible_openings_lists_every_opening",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_candidates_visible_units_supersets_excluding_self",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_candidates_wall_door_diagnostics_present",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_dedupes_look_at_cell_candidates_after_collision",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_fails_on_bad_readback_status",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_fails_on_duplicate_cell_in_readback",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_fails_on_fp_id_mismatch_with_dossier",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_fails_on_out_of_grid_cell",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_fails_on_unknown_kind_in_readback",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_still_fails_on_duplicate_marker_number_in_readback",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_view_cone_records_carry_concrete_direction_for_vertical_pair",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_view_cones_bound_to_direction_records",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_view_cones_carry_look_at_and_dxy_fields",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_geometry_view_cones_empty_when_only_one_unit",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_module_does_not_decide_camera_or_reference_policy",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_synthetic_readback_emits_status_grid_and_fp_id",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_synthetic_readback_fails_on_empty_base_inventory",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_synthetic_readback_fails_when_too_many_markers_for_grid",
  "tests/pipeline/test_floor_plan_geometry_readback.py::test_synthetic_readback_unique_cells_and_known_kinds",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_area_containment_not_overlap_error",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_enum_exports",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_good_validates_against_jsonschema",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_metadata_only_elements_not_rendered_ok",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_rejects_duplicate_number",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_rejects_fp_id_mismatch",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_rejects_impossible_overlap_between_nonarea",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_rejects_out_of_bounds",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_rejects_reclassified_layer",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_rejects_render_cap_exceeded",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_rejects_transient_in_layout",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_rejects_unknown_marker",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_schema_no_openai_unsupported_keys",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_synthetic_fixture_raises_on_empty_inventory",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_synthetic_fixture_shape",
  "tests/pipeline/test_floor_plan_layout_plan.py::test_validator_passes_well_formed",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_bundle_carries_elements_and_schema",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_compute_camera_use_counts_aggregates_frequency",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_decorative_furniture_and_overlay_excluded_by_default",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_freq_bundle_carries_camera_counts_and_schema",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_freq_validator_accepts_good_output",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_freq_validator_fails_when_overlay_essential",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_freq_validator_fails_when_overlay_in_skeleton",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_freq_validator_fails_when_room_not_drawn",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_freq_validator_flags_unjustified_high_freq_drop_but_stays_ok",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_freq_validator_high_freq_justified_is_not_flagged",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_freq_validator_non_dict_fails_closed",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_freq_validator_too_sparse_is_advisory_only",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_freq_validator_wrong_layer_skeleton_is_ignored_not_room_coverage",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_generic_no_scenario_tokens_in_static_text",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_groups_by_layer_includes_structure_opening_fixture",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_include_furniture_flag_adds_room_defining_items",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_malformed_elements_are_skipped",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_numbers_carried_and_sorted",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_over_count_is_advisory_not_a_failure",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_validator_accepts_good_output",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_validator_fails_when_over_hard_cap",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_validator_fails_when_overlay_selected",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_validator_fails_when_skeleton_dropped",
  "tests/pipeline/test_floor_plan_light_prompt.py::test_validator_non_dict_fails_closed",
  "tests/pipeline/test_floor_plan_light_prompt_provider.py::test_bad_finish_reason",
  "tests/pipeline/test_floor_plan_light_prompt_provider.py::test_empty_choices",
  "tests/pipeline/test_floor_plan_light_prompt_provider.py::test_empty_content",
  "tests/pipeline/test_floor_plan_light_prompt_provider.py::test_missing_api_key",
  "tests/pipeline/test_floor_plan_light_prompt_provider.py::test_missing_schema",
  "tests/pipeline/test_floor_plan_light_prompt_provider.py::test_missing_system",
  "tests/pipeline/test_floor_plan_light_prompt_provider.py::test_non_dict_bundle",
  "tests/pipeline/test_floor_plan_light_prompt_provider.py::test_non_json_content",
  "tests/pipeline/test_floor_plan_light_prompt_provider.py::test_refusal",
  "tests/pipeline/test_floor_plan_light_prompt_provider.py::test_valid_response_parses",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_base_marker_in_ignore_records_diagnostic",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_dominant_target_unit_marker_none_when_multiple_structural_units_in_use",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_dominant_target_unit_marker_none_when_no_structural_unit_in_use",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_dominant_target_unit_marker_set_when_single_structural_unit_in_use",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_empty_depends_on_fp_fails_closed",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_failed_fp_entry_treated_as_missing",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_fp_less_non_interior_surface_role_skips_overlay[exterior_plate]",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_fp_less_non_interior_surface_role_skips_overlay[site_surface]",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_fp_less_non_interior_surface_role_skips_overlay[transition_zone]",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_happy_path_clean_and_dirty_bg_partition_use",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_invalid_base_layer_decision_fails_closed[123]",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_invalid_base_layer_decision_fails_closed[None]",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_invalid_base_layer_decision_fails_closed[base_fake]",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_invalid_base_layer_decision_fails_closed[state_overlay_fake]",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_marker_meta_absent_defaults_not_applicable",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_marker_meta_carried_when_present",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_marker_meta_invalid_enum_fails_closed[bad0]",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_marker_meta_invalid_enum_fails_closed[bad1]",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_marker_meta_partial_unlisted_marker_na",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_marker_meta_string_number_key_carried",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_missing_camera_for_bg_fails_closed",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_missing_fp_entry_fails_closed",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_non_integer_use_element_fails_closed",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_prev_shot_only_group_excluded",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_unknown_use_marker_number_fails_closed",
  "tests/pipeline/test_floor_plan_overlay_payload.py::test_use_ignore_overlap_fails_closed",
  "tests/pipeline/test_floor_plan_prompt.py::TestD6Schema::test_v4_schema_accepts_d6_bg_id",
  "tests/pipeline/test_floor_plan_prompt.py::TestD6Schema::test_v4_schema_accepts_three_digit_loc_or_b",
  "tests/pipeline/test_floor_plan_prompt.py::TestD6Schema::test_v4_schema_rejects_hash_garbage",
  "tests/pipeline/test_floor_plan_prompt.py::TestD6Schema::test_v4_schema_rejects_lowercase_l_b",
  "tests/pipeline/test_floor_plan_prompt.py::TestD6Schema::test_v4_schema_rejects_pre_d6_lowercase",
  "tests/pipeline/test_floor_plan_prompt.py::TestExactSetValidator::test_passes_on_exact_match",
  "tests/pipeline/test_floor_plan_prompt.py::TestExactSetValidator::test_raises_on_duplicate_cam_bg_id",
  "tests/pipeline/test_floor_plan_prompt.py::TestExactSetValidator::test_raises_on_missing_expected_bg",
  "tests/pipeline/test_floor_plan_prompt.py::TestRuntimeEnumInjection::test_run_does_not_mutate_loaded_schema_across_calls",
  "tests/pipeline/test_floor_plan_prompt.py::TestRuntimeEnumInjection::test_run_injects_bg_id_enum_when_expected_non_empty",
  "tests/pipeline/test_floor_plan_prompt.py::TestRuntimeEnumInjection::test_run_skips_enum_injection_when_expected_empty",
  "tests/pipeline/test_floor_plan_prompt.py::TestUserPromptD6::test_user_prompt_legacy_state_label_fallback",
  "tests/pipeline/test_floor_plan_prompt.py::TestUserPromptD6::test_user_prompt_lists_valid_bg_ids_explicitly",
  "tests/pipeline/test_floor_plan_prompt.py::TestUserPromptD6::test_user_prompt_uses_state_label_raw",
  "tests/pipeline/test_floor_plan_prompt.py::test_build_user_prompt_includes_full_scene_text",
  "tests/pipeline/test_floor_plan_prompt.py::test_floor_plan_prompt_v2_passes_with_valid_extras",
  "tests/pipeline/test_floor_plan_prompt.py::test_floor_plan_prompt_v2_validates_camera_bg_ids_subset",
  "tests/pipeline/test_floor_plan_prompt.py::test_floor_plan_prompt_v2_validates_numbered_elements_unique",
  "tests/pipeline/test_floor_plan_prompt.py::test_run_passes_extras_through_when_expected_bg_ids_provided",
  "tests/pipeline/test_floor_plan_prompt.py::test_run_raises_on_exhaustion",
  "tests/pipeline/test_floor_plan_prompt.py::test_run_rejects_unknown_bg_in_camera_recommendations",
  "tests/pipeline/test_floor_plan_prompt.py::test_run_returns_on_success",
  "tests/pipeline/test_floor_plan_prompt.py::test_validate_rejects_fp_id_mismatch",
  "tests/pipeline/test_floor_plan_prompt.py::test_validate_rejects_korean_in_t2i",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_run_appends_corrections_block_to_system",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_run_without_corrections_block_is_byte_identical_system",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_v10_in_compat_sets",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_v10_pack_has_all_three_stems",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_v10_pack_has_no_scenario_specific_tokens",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_v10_schema_is_additive_superset_of_v6",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_v10_schema_requires_scale_guideline_with_min_length",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_v10_selector_resolves_to_pinned_pack",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_v10_user_template_identical_to_v6",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_validator_v10_accepts_valid_scale_guideline",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_validator_v10_rejects_missing_scale_guideline",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_validator_v10_rejects_non_string_scale_guideline",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_validator_v10_rejects_short_scale_guideline",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_validator_v6_selector_unaffected_by_missing_scale_guideline",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_versioned_load_prompt_pins_v10_pack",
  "tests/pipeline/test_floor_plan_prompt_v10.py::test_versioned_load_schema_pins_v10_pack",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_resolve_prompt_version_7_resolves",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_resolve_prompt_version_unknown_selector_raises",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_v6_module_enum_constant_matches_schema",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_v6_pack_has_all_three_stems",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_v6_pack_has_no_scenario_specific_tokens",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_v6_schema_base_layer_decision_enum_exact",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_v6_schema_camera_recommendations_require_use_ignore",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_v6_schema_category_excludes_plot_device",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_v6_schema_requires_base_layer_decision",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_v7_pack_load_differs_from_v6_only_by_system_wording",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v5_path_skips_v6_only_check_even_if_use_ignore_present",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v5_path_unchanged_when_use_ignore_absent",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v5_selector_accepts_legacy_v5_shape",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_raises_on_missing_ignore_numbered_elements",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_raises_on_missing_use_numbered_elements",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_raises_on_non_integer_use_element",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_raises_on_uncovered_state_overlay",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_raises_on_unknown_ignore_number",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_raises_on_unknown_use_number",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_raises_on_use_ignore_overlap",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_selector_accepts_all_enum_values",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_selector_rejects_invalid_enum_value",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_selector_rejects_missing_base_layer_decision",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v6_state_overlay_covered_in_one_bg_with_clean_sister_passes",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_validator_v7_applies_v6_partition_checks",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_versioned_load_does_not_silently_shift_to_latest",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_versioned_load_prompt_pins_v5_pack",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_versioned_load_prompt_pins_v6_pack",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_versioned_load_schema_pins_v5_pack",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_versioned_load_schema_pins_v6_pack",
  "tests/pipeline/test_floor_plan_prompt_v6.py::test_versioned_load_unknown_version_raises_file_not_found",
  "tests/pipeline/test_floor_plan_render.py::test_render_one_floor_plan_text_only",
  "tests/pipeline/test_floor_plan_render.py::test_render_one_floor_plan_with_ref",
  "tests/pipeline/test_floor_plan_render_cap.py::test_cap_one_allows_exactly_one_successful_call",
  "tests/pipeline/test_floor_plan_render_cap.py::test_cap_two_exhausts_during_transient_retries",
  "tests/pipeline/test_floor_plan_render_cap.py::test_cap_zero_blocks_multi_edit",
  "tests/pipeline/test_floor_plan_render_cap.py::test_cap_zero_blocks_single_edit",
  "tests/pipeline/test_floor_plan_render_cap.py::test_cap_zero_blocks_text_only_generate",
  "tests/pipeline/test_floor_plan_render_cap.py::test_no_budget_installed_keeps_legacy_behaviour",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_contains_camera_point_rings_per_unit",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_contains_diagnostics_blocks_and_anchor_warning",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_contains_fp_id_and_grid_label",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_contains_marker_dots_for_each_inventory_entry",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_contains_per_bg_facts_row",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_contains_view_cone_polygons_and_arrows",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_escapes_runtime_label_html_syntax_safely",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_is_deterministic_byte_identical_for_same_input",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_renders_cones_rotated_for_vertical_direction_fixture",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_starts_with_doctype_and_is_string",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_static_text_carries_no_scenario_specific_tokens",
  "tests/pipeline/test_floor_plan_review_html.py::test_html_svg_defs_sits_inside_svg_in_order",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_compute_readback_defaults_to_synthetic_without_provider",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_compute_readback_rejects_provider_status_not_ok",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_compute_readback_uses_provider_when_supplied",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_compute_readback_validates_provider_missing_field",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_compute_readback_validates_provider_unknown_marker",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_compute_readback_validates_provider_wrong_expected_label",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_enum_exports",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_gate_mismatch_dominates_uncertain",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_gate_needs_fix_on_base_furniture_mismatch",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_gate_needs_review_on_uncertain_base_marker",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_gate_needs_review_when_base_marker_unattested",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_gate_passes_when_all_base_markers_match",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_gate_synthetic_fixture_never_authoritative",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_good_output_validates_against_json_schema",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_schema_has_no_openai_unsupported_keys",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_synthetic_fixture_raises_on_empty_inventory",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_synthetic_fixture_shape",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_accepts_null_confidence",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_does_not_lexically_inspect_evidence_text",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_passes_on_well_formed_output",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_rejects_bad_semantic_match_enum",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_rejects_duplicate_number",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_rejects_expected_label_disagreeing_with_dossier",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_rejects_expected_layer_disagreeing_with_dossier",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_rejects_fp_id_mismatch",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_rejects_missing_required_field",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_rejects_number_not_in_dossier",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_rejects_status_not_ok",
  "tests/pipeline/test_floor_plan_semantic_readback.py::test_validator_rejects_unhashable_semantic_match",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_constants_locked",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_fails_on_empty_content",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_fails_on_non_stop_finish_reason",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_fails_when_output_has_unknown_marker",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_invokes_completion_exactly_once",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_message_carries_image_url_detail_original",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_rejects_dossier_without_fp_id",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_rejects_empty_base_inventory_without_calling",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_rejects_missing_api_key_without_calling",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_rejects_missing_fp_image_path",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_rejects_nonexistent_image_without_calling",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_rejects_when_schema_unsupported",
  "tests/pipeline/test_floor_plan_semantic_vlm_provider.py::test_provider_uses_strict_json_schema_response_format",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_kind_sets_locked",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_fails_closed_on_malformed_grid_size[bool_element]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_fails_closed_on_malformed_grid_size[non_int_element]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_fails_closed_on_malformed_grid_size[none]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_fails_closed_on_malformed_grid_size[too_short]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_fails_closed_on_malformed_grid_size[zero_element]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_fails_closed_when_fp_image_path_missing_on_disk",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_fails_closed_when_openai_api_key_missing",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_invokes_completion_exactly_once",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_is_explicit_not_implemented_in_this_wave",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_messages_carry_grid_coordinate_contract",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_messages_contain_image_url_with_detail_original",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_raises_on_bad_response[empty_choices]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_raises_on_bad_response[empty_content]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_raises_on_bad_response[finish_reason_content_filter]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_raises_on_bad_response[finish_reason_length]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_raises_on_bad_response[malformed_json]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_raises_on_bad_response[refusal]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_raises_on_bad_response[validator_fail]",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_rejects_dossier_without_fp_id",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_rejects_missing_fp_image_path",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_request_uses_strict_json_schema_response_format",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_litellm_provider_returns_normalized_readback_on_valid_fake_response",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_readback_schema_has_no_openai_strict_unsupported_keys",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_readback_schema_validates_payload_with_confidence_float",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_readback_schema_validates_payload_with_confidence_null",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_bad_grid_size_in_output",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_cell_collision",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_duplicate_marker_number",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_extra_markers_duplicate",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_fp_id_mismatch",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_kind_mismatch_with_dossier",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_malformed_dict",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_missing_markers_duplicate",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_non_int_confidence",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_out_of_grid_cell",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_state_overlay_kind_contamination",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_unknown_kind",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_on_unknown_marker_number",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_when_extra_markers_fabricated",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_when_missing_markers_fabricated",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_when_missing_markers_partial",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_when_missing_markers_underreported",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_fails_when_status_not_ok",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_normalizes_missing_and_extra_lists",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_passes_on_well_formed_output",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_passes_when_observed_subset_with_correct_missing",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_passes_with_cell_collision_as_diagnostic_not_blocker",
  "tests/pipeline/test_floor_plan_vlm_provider.py::test_validator_still_fails_on_duplicate_marker_number_even_with_same_cell",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_build_pose_brief_caps_two_figures_contact_unlocked",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_build_pose_brief_character_angles_if_available",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_build_pose_brief_facing_enum_mapping",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_build_pose_brief_gesture_target_spatial_restored",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_build_pose_brief_gesture_target_unresolved_keeps_generic",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_build_pose_brief_missing_body_pose_is_diagnostic_not_deny",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_build_pose_brief_no_gesture_invention",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_build_pose_brief_no_name_leak_and_generic_clause",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_build_pose_brief_target_id_name_matching",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_candidate_groups_cross_scene_not_merged",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_candidate_groups_empty_bg_id_excluded",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_candidate_groups_same_scene_same_bg_two_shots",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_candidate_groups_zoom_member_flagged_not_excluded",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_classify_loc_sets_indoor_outdoor_disjoint",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_complexity_signals_multi_character_multi_depth_gesture",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_complexity_signals_null_fsc_is_empty",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_filter_indoor_excludes_outdoor_owned",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_filter_indoor_excludes_unclassified_loc",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_filter_indoor_excludes_unresolved_loc_default_deny",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_filter_indoor_keeps_pure_indoor_group",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_single_shot_lane_off_no_single_member_candidate",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_single_shot_lane_on_emits_single_member_candidate",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_single_shot_lane_on_excludes_cross_shot_covered",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_single_shot_lane_on_excludes_empty_bg",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_single_shot_lane_on_excludes_zero_figure",
  "tests/pipeline/test_indoor_shared_pose_plan.py::test_single_shot_lane_on_mixed_cross_and_single",
  "tests/pipeline/test_llm_deadline.py::test_passes_args_and_kwargs",
  "tests/pipeline/test_llm_deadline.py::test_propagates_callee_exception",
  "tests/pipeline/test_llm_deadline.py::test_raises_hard_deadline_when_slow",
  "tests/pipeline/test_llm_deadline.py::test_returns_value_when_fast",
  "tests/pipeline/test_location_aerial_plate_order.py::test_aerial_prompt_version_bumped_to_4x",
  "tests/pipeline/test_location_aerial_plate_order.py::test_aerial_prompt_wm_contract",
  "tests/pipeline/test_location_aerial_plate_order.py::test_decide_dependency_violation_rejected",
  "tests/pipeline/test_location_aerial_plate_order.py::test_decide_exception_falls_back",
  "tests/pipeline/test_location_aerial_plate_order.py::test_decide_exhausted_falls_back_structural",
  "tests/pipeline/test_location_aerial_plate_order.py::test_decide_invalid_then_valid_retry",
  "tests/pipeline/test_location_aerial_plate_order.py::test_decide_llm_order_ok",
  "tests/pipeline/test_location_aerial_plate_order.py::test_decide_single_candidate_trivial_no_call",
  "tests/pipeline/test_location_aerial_plate_order.py::test_fp_coherence_guidance_opening_alignment",
  "tests/pipeline/test_location_aerial_plate_order.py::test_site_guidance_symbol_leakage_guard",
  "tests/pipeline/test_location_aerial_plate_order.py::test_validate_plate_order_dependency",
  "tests/pipeline/test_location_aerial_plate_order.py::test_validate_plate_order_ok",
  "tests/pipeline/test_location_aerial_plate_order.py::test_validate_plate_order_rejects_non_permutation",
  "tests/pipeline/test_location_floor_plan_cap.py::test_cap_exhausts_mid_retry_loop_without_swallowing",
  "tests/pipeline/test_location_floor_plan_cap.py::test_cap_one_allows_one_call",
  "tests/pipeline/test_location_floor_plan_cap.py::test_cap_zero_blocks_edit",
  "tests/pipeline/test_location_floor_plan_cap.py::test_cap_zero_blocks_generate",
  "tests/pipeline/test_location_floor_plan_cap.py::test_no_budget_installed_keeps_legacy_behaviour",
  "tests/pipeline/test_outdoor_direct_compose.py::test_assembly_seals_id_free",
  "tests/pipeline/test_outdoor_direct_compose.py::test_assert_prompt_id_free_word_boundary",
  "tests/pipeline/test_outdoor_direct_compose.py::test_empty_world_facts_omits_section",
  "tests/pipeline/test_outdoor_direct_compose.py::test_nine_part_assembly_order_and_content",
  "tests/pipeline/test_outdoor_direct_compose.py::test_no_characters_uses_none_block",
  "tests/pipeline/test_outdoor_direct_compose.py::test_place_desc_is_id_free",
  "tests/pipeline/test_outdoor_direct_compose.py::test_place_desc_unknown_codes_fallback",
  "tests/pipeline/test_outdoor_direct_compose.py::test_ref_labels_contract",
  "tests/pipeline/test_outdoor_direct_compose.py::test_resolve_and_load_blocks",
  "tests/pipeline/test_outdoor_direct_compose.py::test_v1_assembly_unchanged_without_real_scale",
  "tests/pipeline/test_outdoor_direct_compose.py::test_v2_assembly_contains_real_scale_section",
  "tests/pipeline/test_outdoor_direct_compose.py::test_v2_is_default_and_includes_real_scale",
  "tests/pipeline/test_outdoor_direct_compose.py::test_v2_missing_optional_block_fail_closed",
  "tests/pipeline/test_outdoor_frame_mode.py::test_decide_direct_seed_location_ref_mode_contract",
  "tests/pipeline/test_outdoor_frame_mode.py::test_pack_scenario_neutral",
  "tests/pipeline/test_outdoor_frame_mode.py::test_run_retry_then_success_and_fail_closed",
  "tests/pipeline/test_outdoor_frame_mode.py::test_schema_enum_locked",
  "tests/pipeline/test_outdoor_frame_mode.py::test_step_config_hash_sensitive_to_physical_model",
  "tests/pipeline/test_outdoor_frame_mode.py::test_step_registered_and_gated",
  "tests/pipeline/test_outdoor_frame_mode.py::test_unknown_version_raises",
  "tests/pipeline/test_outdoor_frame_mode.py::test_validate_cross_scene_evidence_rejected",
  "tests/pipeline/test_outdoor_frame_mode.py::test_validate_frame_cp_entries_status_and_contract",
  "tests/pipeline/test_outdoor_frame_mode.py::test_validate_parity_and_evidence",
  "tests/pipeline/test_outdoor_lane_plan.py::test_conservative_routing_high_confidence_untouched",
  "tests/pipeline/test_outdoor_lane_plan.py::test_conservative_routing_leaves_none_untouched",
  "tests/pipeline/test_outdoor_lane_plan.py::test_conservative_routing_low_confidence_and_mixed",
  "tests/pipeline/test_outdoor_lane_plan.py::test_default_keeps_structure_map_marker_valid",
  "tests/pipeline/test_outdoor_lane_plan.py::test_group_parity_spec_failure_with_current_shots_violates",
  "tests/pipeline/test_outdoor_lane_plan.py::test_lane_none_in_enum_and_schema",
  "tests/pipeline/test_outdoor_lane_plan.py::test_pack_v2_resolves_with_none_contract_and_neutrality",
  "tests/pipeline/test_outdoor_lane_plan.py::test_revalidate_persisted_plan_self_coverage_and_explicit",
  "tests/pipeline/test_outdoor_lane_plan.py::test_run_exhausts_raises_app_error",
  "tests/pipeline/test_outdoor_lane_plan.py::test_run_ok_applies_conservative_routing",
  "tests/pipeline/test_outdoor_lane_plan.py::test_run_retries_on_fabricated_evidence_then_ok",
  "tests/pipeline/test_outdoor_lane_plan.py::test_run_retries_on_missing_binding_then_ok",
  "tests/pipeline/test_outdoor_lane_plan.py::test_schema_locks_lane_and_mode_enums",
  "tests/pipeline/test_outdoor_lane_plan.py::test_step_prompt_version_is_settings_selector",
  "tests/pipeline/test_outdoor_lane_plan.py::test_v3_allows_map_marker_on_movement_segment",
  "tests/pipeline/test_outdoor_lane_plan.py::test_v3_forbids_map_marker_on_structure_segment",
  "tests/pipeline/test_outdoor_lane_plan.py::test_validate_accepts_none_lane",
  "tests/pipeline/test_outdoor_lane_plan.py::test_validate_accepts_quote_across_line_breaks",
  "tests/pipeline/test_outdoor_lane_plan.py::test_validate_passes_clean",
  "tests/pipeline/test_outdoor_lane_plan.py::test_validate_rejects_binding_to_unknown_segment",
  "tests/pipeline/test_outdoor_lane_plan.py::test_validate_rejects_duplicate_segment_id",
  "tests/pipeline/test_outdoor_lane_plan.py::test_validate_rejects_fabricated_quote",
  "tests/pipeline/test_outdoor_lane_plan.py::test_validate_rejects_out_of_range_evidence_scene",
  "tests/pipeline/test_outdoor_lane_plan.py::test_validate_rejects_unbound_or_duplicate_shot",
  "tests/pipeline/test_outdoor_lane_plan.py::test_validate_requires_evidence",
  "tests/pipeline/test_outdoor_marker_map.py::test_declared_relation_renders_into_geometry_text_lines",
  "tests/pipeline/test_outdoor_marker_map.py::test_facing_camera_depth_sign",
  "tests/pipeline/test_outdoor_marker_map.py::test_facing_relation_authoring_path_needs_shot_text",
  "tests/pipeline/test_outdoor_marker_map.py::test_facing_relation_checked_even_when_flag_off",
  "tests/pipeline/test_outdoor_marker_map.py::test_facing_relation_evidence_provenance_both_ways",
  "tests/pipeline/test_outdoor_marker_map.py::test_facing_relation_intervals_are_mutually_exclusive",
  "tests/pipeline/test_outdoor_marker_map.py::test_facing_relation_schema_is_pack_gated",
  "tests/pipeline/test_outdoor_marker_map.py::test_facing_relation_skipped_when_camera_invalid",
  "tests/pipeline/test_outdoor_marker_map.py::test_facing_text_prefers_declared_relation",
  "tests/pipeline/test_outdoor_marker_map.py::test_facing_text_states_front_or_back_explicitly",
  "tests/pipeline/test_outdoor_marker_map.py::test_geometry_pack_v4_gates_facing_relation",
  "tests/pipeline/test_outdoor_marker_map.py::test_geometry_pack_v4_system_declares_relation_contract",
  "tests/pipeline/test_outdoor_marker_map.py::test_geometry_text_lines_are_id_free",
  "tests/pipeline/test_outdoor_marker_map.py::test_geometry_text_lines_have_no_numeric_fov",
  "tests/pipeline/test_outdoor_marker_map.py::test_geometry_text_lines_reject_invalid",
  "tests/pipeline/test_outdoor_marker_map.py::test_lane_fingerprint_payload_sensitivity",
  "tests/pipeline/test_outdoor_marker_map.py::test_lane_step_selector_raised_to_v4",
  "tests/pipeline/test_outdoor_marker_map.py::test_lane_step_sketch_selector_raised_to_v14",
  "tests/pipeline/test_outdoor_marker_map.py::test_lane_step_sketch_selector_raised_to_v16",
  "tests/pipeline/test_outdoor_marker_map.py::test_leakage_schema_shape",
  "tests/pipeline/test_outdoor_marker_map.py::test_render_cone_covers_target_and_beyond",
  "tests/pipeline/test_outdoor_marker_map.py::test_render_is_deterministic_and_leaves_base_untouched",
  "tests/pipeline/test_outdoor_marker_map.py::test_render_marker_map_is_deprecated_not_wired",
  "tests/pipeline/test_outdoor_marker_map.py::test_render_rejects_invalid_geometry",
  "tests/pipeline/test_outdoor_marker_map.py::test_run_exhausts_raises_app_error",
  "tests/pipeline/test_outdoor_marker_map.py::test_run_ok_returns_validated_geometry",
  "tests/pipeline/test_outdoor_marker_map.py::test_run_retries_on_invalid_geometry_then_ok",
  "tests/pipeline/test_outdoor_marker_map.py::test_run_v3_unchanged_by_v4_gate",
  "tests/pipeline/test_outdoor_marker_map.py::test_run_v4_rejects_relation_contradicted_by_coordinates",
  "tests/pipeline/test_outdoor_marker_map.py::test_run_v4_uses_shot_block_as_evidence_source",
  "tests/pipeline/test_outdoor_marker_map.py::test_schema_locks_slot_enum_and_bounds",
  "tests/pipeline/test_outdoor_marker_map.py::test_sketch_pack_v14_is_mannequin_and_has_no_plate_look",
  "tests/pipeline/test_outdoor_marker_map.py::test_sketch_prompt_assembles_slots_and_contracts",
  "tests/pipeline/test_outdoor_marker_map.py::test_sketch_prompt_seed_look_v3_only",
  "tests/pipeline/test_outdoor_marker_map.py::test_sketch_prompt_v4_rejects_seed_look",
  "tests/pipeline/test_outdoor_marker_map.py::test_sketch_prompt_v4_uses_text_geometry_not_markers",
  "tests/pipeline/test_outdoor_marker_map.py::test_sketch_v13_unchanged_by_v14_style_switch",
  "tests/pipeline/test_outdoor_marker_map.py::test_sketch_v14_annotate_and_check_contracts_are_inherited",
  "tests/pipeline/test_outdoor_marker_map.py::test_sketch_v14_naturalism_drops_eye_vocabulary",
  "tests/pipeline/test_outdoor_marker_map.py::test_sketch_v14_prompt_uses_mannequin_style_and_rejects_plate",
  "tests/pipeline/test_outdoor_marker_map.py::test_sketch_v14_staging_head_announces_profile_shape",
  "tests/pipeline/test_outdoor_marker_map.py::test_v2_geometry_schema_versioning_contract",
  "tests/pipeline/test_outdoor_marker_map.py::test_v2_schema_gates_anchor_fields",
  "tests/pipeline/test_outdoor_marker_map.py::test_v2_validator_requires_split_anchors",
  "tests/pipeline/test_outdoor_marker_map.py::test_v3_schema_and_validator_require_view_and_facing",
  "tests/pipeline/test_outdoor_marker_map.py::test_v3_wedge_geometry_guards",
  "tests/pipeline/test_outdoor_marker_map.py::test_v4_stems_unchanged_by_v5",
  "tests/pipeline/test_outdoor_marker_map.py::test_v5_annotate_prompt_draws_markers_i2i",
  "tests/pipeline/test_outdoor_marker_map.py::test_v5_marker_check_contract",
  "tests/pipeline/test_outdoor_marker_map.py::test_v5_sketch_head_references_marker_map",
  "tests/pipeline/test_outdoor_marker_map.py::test_v5_text_lines_add_screen_terms_only_for_view_geometry",
  "tests/pipeline/test_outdoor_marker_map.py::test_v6_annotate_anchor_is_placement_authority",
  "tests/pipeline/test_outdoor_marker_map.py::test_v6_check_and_text_lines_carry_anchors",
  "tests/pipeline/test_outdoor_marker_map.py::test_v7_builders_fail_closed_without_anchors",
  "tests/pipeline/test_outdoor_marker_map.py::test_v7_pack_membership_and_v6_immutable",
  "tests/pipeline/test_outdoor_marker_map.py::test_v7_sketch_prompt_uses_anchor_geometry_branch",
  "tests/pipeline/test_outdoor_marker_map.py::test_v8_membership",
  "tests/pipeline/test_outdoor_marker_map.py::test_v8_sketch_carries_naturalism_default_only",
  "tests/pipeline/test_outdoor_marker_map.py::test_v9_annotate_and_check_carry_wedge_and_facing",
  "tests/pipeline/test_outdoor_marker_map.py::test_validate_passes_clean",
  "tests/pipeline/test_outdoor_marker_map.py::test_validate_rejects_bool_coordinates",
  "tests/pipeline/test_outdoor_marker_map.py::test_validate_rejects_duplicate_or_nonsequential_slots",
  "tests/pipeline/test_outdoor_marker_map.py::test_validate_rejects_empty_subject_and_degenerate_camera",
  "tests/pipeline/test_outdoor_marker_map.py::test_validate_rejects_malformed_root_and_placement",
  "tests/pipeline/test_outdoor_marker_map.py::test_validate_rejects_out_of_bounds_and_bad_slot",
  "tests/pipeline/test_outdoor_marker_map.py::test_validate_rejects_slot_beyond_max",
  "tests/pipeline/test_outdoor_marker_map.py::test_validator_non_string_subject_is_violation_not_exception",
  "tests/pipeline/test_outdoor_marker_map.py::test_validator_rejects_struct_tokens_in_subject",
  "tests/pipeline/test_outdoor_place_canon.py::test_aggregate_sum_winner",
  "tests/pipeline/test_outdoor_place_canon.py::test_aggregate_tie_prefers_gemini_ranking",
  "tests/pipeline/test_outdoor_place_canon.py::test_build_judge_user_pairs_labels_and_images",
  "tests/pipeline/test_outdoor_place_canon.py::test_chain_captures_candidates",
  "tests/pipeline/test_outdoor_place_canon.py::test_chain_happy_path_no_issues_skips_fix",
  "tests/pipeline/test_outdoor_place_canon.py::test_chain_roll_failure_raises_canon_error",
  "tests/pipeline/test_outdoor_place_canon.py::test_chain_with_issues_applies_fix_and_style_ref",
  "tests/pipeline/test_outdoor_place_canon.py::test_collect_issues_concat",
  "tests/pipeline/test_outdoor_place_canon.py::test_elements_block_is_id_free",
  "tests/pipeline/test_outdoor_place_canon.py::test_fix_prompt_bullets_skip_empty",
  "tests/pipeline/test_outdoor_place_canon.py::test_map_prompt_has_markers_zones_and_style_toggle",
  "tests/pipeline/test_outdoor_place_canon.py::test_markers_block_contains_codes",
  "tests/pipeline/test_outdoor_place_canon.py::test_photo_prompt_assembles_and_seals_id_free",
  "tests/pipeline/test_outdoor_place_canon.py::test_photo_prompt_code_check_uses_word_boundary",
  "tests/pipeline/test_outdoor_place_canon.py::test_photo_prompt_empty_blocks_get_neutral_fallback",
  "tests/pipeline/test_outdoor_place_canon.py::test_photo_prompt_raises_on_code_leak",
  "tests/pipeline/test_outdoor_place_canon.py::test_resolve_prompt_version",
  "tests/pipeline/test_outdoor_place_spec.py::test_build_scenes_block_preserves_full_text",
  "tests/pipeline/test_outdoor_place_spec.py::test_build_user_prompt_keeps_body_braces_safe",
  "tests/pipeline/test_outdoor_place_spec.py::test_build_user_prompt_replaces_all_placeholders",
  "tests/pipeline/test_outdoor_place_spec.py::test_clean_v2_spec_passes",
  "tests/pipeline/test_outdoor_place_spec.py::test_excluded_transient_must_not_have_code",
  "tests/pipeline/test_outdoor_place_spec.py::test_marker_code_re_accepts_canonical",
  "tests/pipeline/test_outdoor_place_spec.py::test_resolve_prompt_version_known",
  "tests/pipeline/test_outdoor_place_spec.py::test_resolve_prompt_version_unknown_raises",
  "tests/pipeline/test_outdoor_place_spec.py::test_run_exhausts_attempts_raises_app_error",
  "tests/pipeline/test_outdoor_place_spec.py::test_run_injects_corrections_into_system",
  "tests/pipeline/test_outdoor_place_spec.py::test_run_rejects_out_of_range_evidence_then_succeeds",
  "tests/pipeline/test_outdoor_place_spec.py::test_run_retries_with_violation_hint_then_succeeds",
  "tests/pipeline/test_outdoor_place_spec.py::test_run_returns_spec_on_first_valid",
  "tests/pipeline/test_outdoor_place_spec.py::test_temporal_scope_required_on_items",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_bad_code_format[1P]",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_bad_code_format[P12]",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_bad_code_format[PP1]",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_bad_code_format[P]",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_bad_code_format[]",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_bad_code_format[p1]",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_confirmed_item_requires_evidence",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_duplicate_code",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_duplicate_name_en",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_duplicate_zone_labels",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_empty_items",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_evidence_scene_index_outside_allowed_rejected",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_evidence_scene_index_unchecked_when_allowed_none",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_inferred_item_allows_null_evidence",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_name_en_marker_code_leak_rejected",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_placement_en_marker_code_leak_rejected",
  "tests/pipeline/test_outdoor_place_spec.py::test_validate_valid_spec_passes",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_build_selected_keys_none_when_missing",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_filter_group_shots_respects_selection_and_loc",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_ground_schema_has_dynamic_enums",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_ground_schema_rejects_empty_spec",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_legend_block_contains_codes",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_resolve_prompt_version",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_run_exhausts_raises",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_run_ok_first_attempt_and_injects_corrections",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_run_retries_on_prose_code_leak",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_shot_block_includes_staging_hints",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_user_parts_order_and_full_scene_text",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_validate_ground_passes_clean",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_validate_ground_rejects_code_in_moment_context",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_validate_ground_rejects_code_in_prose",
  "tests/pipeline/test_outdoor_shot_grounding.py::test_validate_ground_word_boundary_no_false_positive",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_attach_composition_guide_framing_gate",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_build_blocking_sketch_prompt_pose_vs_featureless",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_build_clean_birdseye_spec_no_labels_and_shot_filter",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_continuity_anchor_appends_when_no_prev_ref",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_continuity_anchor_missing_prev_ref_noop",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_continuity_anchor_noop_when_source_bytes_absent",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_continuity_anchor_preserves_background_contract",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_continuity_anchor_prompt_instructions",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_continuity_anchor_role_continuity_also_upgraded",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_continuity_anchor_skips_zoomed_role",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_continuity_chain_first_sketch_rest_anchor",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_admit_records_continuity_marker",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_brief_failure_is_non_blocking",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_failure_is_non_blocking",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_first_admitted_shot_is_sketch",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_generate_load_attach",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_judge_default_deny",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_judge_failure_is_non_blocking",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_marker_load_attach",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_ref_not_in_required_refs_contract",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_second_shot_is_continuity_anchor",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_composition_guide_shot_selection",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_compute_camera_brief_coord_contract",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_compute_camera_brief_enclosure_relation",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_compute_camera_brief_faces_toward_four_directions",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_detect_site_seeds_broad_lane_no_figure_included",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_detect_site_seeds_broad_lane_no_figure_skipped",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_detect_site_seeds_broad_single_shot_lane",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_detect_site_seeds_join_and_exclusions",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_detect_site_seeds_legacy_lane_no_figure_still_excluded",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_evaluate_admits_camera_or_framing_risk_single_shot",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_evaluate_shared_model_judge_opens_single_shot",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_flag_off_applicability_false",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_layout_failure_is_non_blocking",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_layout_side_conflicts_join",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_loader_flag_off_and_on",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_merge_prompt_overrides_priority_zoom_over_site",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_outdoor_and_zoom_member_joins_are_structured_only",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_path_classification_uses_aspect_not_just_extent",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_render_clean_birdseye_png_valid",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_render_pose_brief_text_fail_closed_returns_none",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_render_pose_brief_text_filters_and_formats",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_revised_prompt_token_violations_both_directions",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_all_members_optical_no_guide",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_candidate_cross_shot_only",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_continuity_anchor_path_unchanged",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_failure_no_guide_no_old_fallback",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_judge_default_deny",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_judge_disabled_candidate_only",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_judge_schema_has_camera_or_framing_risk",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_off_uses_old_sketch_producer",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_on_uses_shared_guide_not_old_sketch",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_on_uses_v2_producer_not_old",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_optical_first_shot_rechains_anchor",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_optical_risk_shot_excluded",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_pose_fail_closed_skips_guide",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_staging_zero_figures_bypasses_pose",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shared_model_v2_failure_no_guide_no_old_fallback",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shot_spatial_summary_degenerate_zero_distance_no_crash",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_shot_spatial_summary_zero_nearest_positive_second_no_false_ratio",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_side_conflict_shot_excluded_from_overrides",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_single_shot_candidates_broad_includes_no_figure",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_single_shot_complexity_candidate_multiple_figures",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_single_shot_complexity_candidate_simple_shot_excluded",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_single_shot_evidence_target_guard",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_sketch_systems_orientation_scale_invention_guards",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_spatial_summary_distance_and_receding_are_deterministic",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_spatial_summary_geography_is_deterministic",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_validate_site_layout_faces_toward_shape",
  "tests/pipeline/test_outdoor_site_layout_plan.py::test_validate_site_layout_shape_and_range_only",
  "tests/pipeline/test_outdoor_structure_seed.py::test_aerial_prompt_topdown_conversion_contract",
  "tests/pipeline/test_outdoor_structure_seed.py::test_build_seed_plate_refs_maps_outdoor_locs",
  "tests/pipeline/test_outdoor_structure_seed.py::test_collect_seed_groups_all_groups_mode",
  "tests/pipeline/test_outdoor_structure_seed.py::test_derive_seed_inputs_exterior_note_edge_cases",
  "tests/pipeline/test_outdoor_structure_seed.py::test_derive_seed_inputs_persistent_site_sot",
  "tests/pipeline/test_outdoor_structure_seed.py::test_packs_are_scenario_neutral",
  "tests/pipeline/test_outdoor_structure_seed.py::test_seed_all_groups_flag_default_off_and_wired",
  "tests/pipeline/test_outdoor_structure_seed.py::test_seed_prompt_assembles_scale_and_look_contract",
  "tests/pipeline/test_outdoor_structure_seed.py::test_seed_prompt_excluded_transient_negative_contract",
  "tests/pipeline/test_outdoor_structure_seed.py::test_seed_prompt_exterior_appearance_clause_v4",
  "tests/pipeline/test_outdoor_structure_seed.py::test_seed_prompt_scale_optional_no_dangling",
  "tests/pipeline/test_outdoor_structure_seed.py::test_seed_prompt_target_relative_contracts",
  "tests/pipeline/test_outdoor_structure_seed.py::test_seed_prompt_transient_exclusions_without_interior",
  "tests/pipeline/test_outdoor_structure_seed.py::test_seed_prompt_v3_with_exterior_note_fails_closed",
  "tests/pipeline/test_outdoor_structure_seed.py::test_seed_site_guidance_neutral_and_no_copy_clause",
  "tests/pipeline/test_outdoor_structure_seed.py::test_step_seed_plate_flag_default_off_and_wired",
  "tests/pipeline/test_outdoor_structure_seed.py::test_unknown_version_raises",
  "tests/pipeline/test_outdoor_structure_seed.py::test_v4_assembly_unchanged",
  "tests/pipeline/test_outdoor_structure_seed.py::test_v5_appends_human_scale_clause_always",
  "tests/pipeline/test_outdoor_view_cluster.py::test_bg_packs_are_scenario_neutral",
  "tests/pipeline/test_outdoor_view_cluster.py::test_bg_prompt_assembles_contracts_and_rejects_root",
  "tests/pipeline/test_outdoor_view_cluster.py::test_bg_prompt_selector_backward_compat",
  "tests/pipeline/test_outdoor_view_cluster.py::test_bg_refs_order_and_optional_parent",
  "tests/pipeline/test_outdoor_view_cluster.py::test_bg_refs_reject_missing_root_or_labels",
  "tests/pipeline/test_outdoor_view_cluster.py::test_generation_order_topo_and_deterministic",
  "tests/pipeline/test_outdoor_view_cluster.py::test_root_plate_prompt_no_dangling_scale_without_note",
  "tests/pipeline/test_outdoor_view_cluster.py::test_root_plate_prompt_rephotograph_contract",
  "tests/pipeline/test_outdoor_view_cluster.py::test_run_exhausts_raises_app_error",
  "tests/pipeline/test_outdoor_view_cluster.py::test_run_fails_fast_on_missing_upstream_inputs",
  "tests/pipeline/test_outdoor_view_cluster.py::test_run_missing_input_includes_nonstring_scene_text",
  "tests/pipeline/test_outdoor_view_cluster.py::test_run_ok_returns_plan_with_order",
  "tests/pipeline/test_outdoor_view_cluster.py::test_run_passes_interior_block_to_prompt",
  "tests/pipeline/test_outdoor_view_cluster.py::test_run_retries_on_violation_then_ok",
  "tests/pipeline/test_outdoor_view_cluster.py::test_schema_locks_ids_and_member_enum",
  "tests/pipeline/test_outdoor_view_cluster.py::test_validate_bg_prompt_rules",
  "tests/pipeline/test_outdoor_view_cluster.py::test_validate_combo_malformed_cid_and_parent_no_exception",
  "tests/pipeline/test_outdoor_view_cluster.py::test_validate_malformed_field_types_return_violations_not_exceptions",
  "tests/pipeline/test_outdoor_view_cluster.py::test_validate_passes_clean",
  "tests/pipeline/test_outdoor_view_cluster.py::test_validate_rejects_bad_root_count_and_cycle",
  "tests/pipeline/test_outdoor_view_cluster.py::test_validate_rejects_malformed_root_and_types",
  "tests/pipeline/test_outdoor_view_cluster.py::test_validate_rejects_missing_or_duplicate_member",
  "tests/pipeline/test_outdoor_view_cluster.py::test_validate_rejects_root_bg_none_missing_and_parent_key_missing",
  "tests/pipeline/test_outdoor_view_cluster.py::test_validate_rejects_unknown_parent_and_dup_id",
  "tests/pipeline/test_outlook_dedup.py::test_apply_outlook_merge_commits_on_success",
  "tests/pipeline/test_outlook_dedup.py::test_apply_outlook_merge_counts_successful_merges",
  "tests/pipeline/test_outlook_dedup.py::test_apply_outlook_merge_rollbacks_on_exception",
  "tests/pipeline/test_outlook_dedup.py::test_merge_single_outlook_deletes_canon_last",
  "tests/pipeline/test_outlook_dedup.py::test_merge_single_outlook_skips_self_merge",
  "tests/pipeline/test_outlook_dedup.py::test_merge_single_outlook_skips_when_resolve_fails",
  "tests/pipeline/test_outlook_dedup.py::test_migrate_entity_aliases_deletes_duplicates_on_keep",
  "tests/pipeline/test_outlook_dedup.py::test_migrate_entity_aliases_handles_empty_remove_set",
  "tests/pipeline/test_outlook_dedup.py::test_migrate_entity_aliases_moves_unique_aliases_to_keep",
  "tests/pipeline/test_outlook_dedup.py::test_migrate_entity_episode_links_merges_counts_on_collision",
  "tests/pipeline/test_outlook_dedup.py::test_migrate_entity_episode_links_updates_when_no_collision",
  "tests/pipeline/test_outlook_dedup.py::test_migrate_relation_participants_single_update",
  "tests/pipeline/test_outlook_dedup.py::test_migrate_relation_participants_update_and_role_aware_dedup",
  "tests/pipeline/test_outlook_dedup.py::test_resolve_outlook_id_returns_id_for_matching_name",
  "tests/pipeline/test_outlook_dedup.py::test_resolve_outlook_id_returns_none_when_not_found",
  "tests/pipeline/test_outlook_dedup.py::test_rewrite_scene_still_no_change_when_name_absent",
  "tests/pipeline/test_outlook_dedup.py::test_rewrite_scene_still_replaces_marker_in_all_prompt_fields",
  "tests/pipeline/test_outlook_dedup.py::test_rewrite_scene_still_replaces_marker_in_variations",
  "tests/pipeline/test_ref_asset_id_record.py::test_ambiguous_source_is_not_linked",
  "tests/pipeline/test_ref_asset_id_record.py::test_authority_registration_precedes_branch_refs_build",
  "tests/pipeline/test_ref_asset_id_record.py::test_bgfirst_authority_refs_are_registered_before_branch",
  "tests/pipeline/test_ref_asset_id_record.py::test_bytes_ref_keeps_placeholder_and_gains_asset_id",
  "tests/pipeline/test_ref_asset_id_record.py::test_every_attach_role_has_a_registration",
  "tests/pipeline/test_ref_asset_id_record.py::test_every_branch_gets_ref_metadata",
  "tests/pipeline/test_ref_asset_id_record.py::test_extra_metadata_is_ignored_not_crashing",
  "tests/pipeline/test_ref_asset_id_record.py::test_index_alignment_is_positional_not_label_based",
  "tests/pipeline/test_ref_asset_id_record.py::test_join_survives_label_reformatting",
  "tests/pipeline/test_ref_asset_id_record.py::test_lane_seed_has_no_asset_lineage_and_we_admit_it",
  "tests/pipeline/test_ref_asset_id_record.py::test_missing_metadata_is_tolerated",
  "tests/pipeline/test_ref_asset_id_record.py::test_path_ref_keeps_path",
  "tests/pipeline/test_ref_asset_id_record.py::test_plate_aid_resolution_is_shared",
  "tests/pipeline/test_ref_asset_id_record.py::test_prev_still_is_registered_in_both_places",
  "tests/pipeline/test_ref_asset_id_record.py::test_source_key_handles_paths",
  "tests/pipeline/test_ref_asset_id_record.py::test_source_key_is_stable_for_same_bytes",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_background_mode_floor_plan_anchored_alias_accepted",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_background_mode_incompatible_fails[chain_only]",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_background_mode_incompatible_fails[off]",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_background_prompt_version_check_only_fires_under_shot_aware_plan",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_background_prompt_version_not_seven_under_shot_aware_plan_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_base_location_dossier_disabled_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_e2e_happy_path_with_image_approval_returns_ok",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_e2e_scope_without_image_approval_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_failure_entries_carry_selector_path_and_message",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_floor_plan_geometry_readback_disabled_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_floor_plan_prompt_version_not_six_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_full_fresh_project_e2e_override_does_not_bypass_image_approval",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_full_fresh_project_e2e_override_does_not_bypass_shot_aware_plan_render_mode",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_full_fresh_project_e2e_override_still_requires_positive_image_cap",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_full_fresh_project_e2e_with_override_ok_when_other_gates_pass",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_full_fresh_project_e2e_without_override_fails_as_out_of_scope",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_image_generation_approved_without_cap_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_module_does_not_import_from_app_namespace",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_module_imports_no_forbidden_provider_libs",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_module_only_imports_stdlib_at_top_level",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_module_source_has_no_forbidden_provider_imports",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_multiple_failures_collected_without_raising",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_plan_only_happy_path_returns_ok",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_plan_only_scope_with_image_approval_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_real_planner_llm_enabled_with_approval_ok",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_real_planner_llm_enabled_without_approval_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_real_vlm_enabled_with_approval_ok",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_real_vlm_enabled_without_approval_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_render_mode_legacy_under_e2e_scope_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_render_mode_legacy_under_plan_only_scope_does_not_force_shot_aware_plan",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_render_mode_w18j_overlap_fails_with_w19b3_w20b_conflict_code",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_result_and_failure_are_frozen_dataclasses",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_shot_aware_bg_render_plan_disabled_fails",
  "tests/pipeline/test_shot_aware_bg_preflight.py::test_unknown_scope_value_fails",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_budget_summary_preserved_exactly_from_w20e1",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_e2e_with_default_approvals_fails_through_preflight",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_full_with_default_approvals_fails_through_preflight",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_module_imports_no_forbidden_provider_libs",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_module_only_app_import_is_w20e1_preflight",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_multiple_readiness_blockers_aggregate_without_raising",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_no_target_means_no_blockers_and_target_dict_has_none_fields",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_plan_only_happy_path_report_is_json_serializable",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_preflight_failures_serialized_as_plain_dicts",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_readiness_blockers_serialized_as_plain_dicts",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_real_api_call_and_write_counts_always_zero",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_target_facts_do_not_create_blockers_for_plan_only_scope",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_target_planning_doc_checkpoint_missing_creates_blocker_for_e2e",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_target_planning_doc_missing_creates_blocker_for_e2e",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_target_planning_doc_missing_creates_blocker_for_full",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_target_planning_doc_present_true_creates_no_blocker",
  "tests/pipeline/test_shot_aware_bg_readiness.py::test_w20e1_preflight_called_exactly_once",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_anchor_mode_fails_with_non_empty_selected_refs",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_anchor_mode_fails_without_base_fp_path",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_anchor_mode_uses_base_fp_only_no_catalog_refs",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_anchor_prefix_contains_camera_exact_fields_and_render_guidance",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_derived_mode_fails_when_no_selected_refs",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_derived_mode_fails_when_ref_bg_id_not_in_catalog",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_derived_mode_uses_catalog_only_excludes_fp",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_derived_prefix_lists_selected_refs_with_psi",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_fp_anchor_guidance_bans_marker_rendering",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_gate_fails_on_missing_keys_or_non_dict",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_gate_fails_on_non_ok_status",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_gate_fails_on_production_clear_false",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_gate_fails_on_truthy_non_bool_production_clear",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_gate_passes_only_when_status_ok_and_production_clear",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_camera_decision_missing_required_field",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_empty[camera_framing_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_empty[negative_continuity_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_empty[state_cue_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_empty[subject_position_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_empty[visible_space_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_missing[camera_framing_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_missing[negative_continuity_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_missing[state_cue_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_missing[subject_position_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_missing[visible_space_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_wrong_type[camera_framing_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_wrong_type[negative_continuity_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_wrong_type[state_cue_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_wrong_type[subject_position_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_field_wrong_type[visible_space_directive]",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_has_unknown_key",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_missing",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_materialize_fails_when_render_guidance_not_dict",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_missing_bg_id_fails",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_missing_ref_bg_id_in_selected_ref_fails",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_module_constants_are_locked",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_module_import_does_not_pull_external_clients",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_more_than_two_selected_refs_fails",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_ordered_nodes_empty_plan_returns_empty_list",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_ordered_nodes_sorts_by_node_index_ascending",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_ordered_nodes_zone_map_renders_anchor_before_alias",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_render_guidance_strings_pass_through_verbatim",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_same_physical_space_view_mode_inherits_exact_room",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_select_structure_facts_base_and_use_join",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_select_structure_facts_exact_int_join_denies_fractional",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_structure_facts_empty_list_keeps_view_authority_only",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_structure_facts_invalid_entries_filtered",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_structure_facts_none_is_byte_identical",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_structure_facts_section_and_view_authority",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_style_contract_states_current_occupancy",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_style_mode_uses_catalog_only_excludes_fp",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_to_dict_round_trips_audit_fields",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_two_refs_mode_fails_with_one_ref",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_two_refs_mode_uses_two_catalog_refs",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_two_refs_prefix_lists_both_refs",
  "tests/pipeline/test_shot_aware_bg_render_adapter.py::test_unknown_mode_fails_closed",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_assemble_inputs_does_not_block_bg_with_at_least_one_staged_shot",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_assemble_inputs_emits_fp_bundle_with_shot_readiness_ok",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_assemble_inputs_emits_renderable_bg_ids_subset",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_assemble_inputs_marks_bg_not_ready_when_shot_missing",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_assemble_inputs_marks_bg_with_zero_staged_shots_not_renderable",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_assemble_inputs_skips_fp_when_geometry_missing",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_attaches_canonical_render_action_fields",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_card_off_router_is_byte_identical_to_baseline",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_consumes_projection_card_index_when_provided",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_default_stamps_not_available_projection_fields",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_fails_closed_on_no_shot_readiness",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_failure_preserves_provider_completion_count",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_marks_not_applicable_when_no_shot_readiness",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_records_llm_failure_without_raising",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_renderable_subset_passes_validators",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_routes_through_zone_map_when_usable",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_skips_provider_when_no_renderable_bg",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_stamps_partition_and_dag_fields_when_card_off",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_surfaces_camera_snap_repairs_in_diagnostics",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_surfaces_w20f10_graph_anchor_retry_and_llm_count",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_synthetic_readback_never_production_clear",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_threads_card_content_index_into_router",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_with_mock_llm_passes_validators_for_valid_output",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_with_no_llm_provider_returns_empty_plan_zero_llm",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_build_plan_zone_map_surfaces_no_clean_diagnostic_in_validators",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_module_constants_are_locked",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_anchor_always_render_new_plate",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_camera_unit_is_hard_floor_even_with_look_and_overlap",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_downgrade_forbidden_mode_candidate_true",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_downgrade_when_camera_matches_but_no_look_or_overlap",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_downgrades_when_the_target_is_itself_a_reuse_node",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_hard_fail_candidate_false_but_target_nonempty",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_hard_fail_candidate_true_empty_target",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_hard_fail_eligible_mode_empty_selected_refs",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_hard_fail_target_future_or_self",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_hard_fail_target_is_reuse_node",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_hard_fail_target_unknown_node",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_no_code_only_reuse_when_candidate_false",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_reuse_on_same_look_alone_without_marker_overlap",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_reuse_when_candidate_and_corroborated",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_router_same_physical_space_view_reuse_path",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_snap_camera_cell_repaired_independently_of_look_at",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_snap_ignores_malformed_candidate_entries",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_snap_no_op_when_cell_already_valid",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_snap_repairs_out_of_candidate_look_at_cell_to_nearest",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_snap_skips_invalid_camera_unit",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_snap_skips_malformed_cell_fail_fast",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_snap_skips_when_candidate_set_empty",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_snap_tie_break_prefers_lower_row_then_col",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_all_pass_on_valid_output",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_camera_cell_outside_candidates",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_camera_cell_wrong_type",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_cross_fp_reference",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_dangling_parent_reference",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_duplicate_node_index",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_empty_rationale",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_fov_deg_mismatch_with_lens",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_geometry_conflicting_fov",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_graph_with_extra_bg",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_graph_with_missing_bg",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_invalid_node_index_type",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_lens_enum_outside_allowed",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_low_delta_candidate_wrong_type",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_max_refs_per_bg_exceeded",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_missing_camera_decision_field",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_missing_low_delta_candidate_fields",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_missing_reference_decision",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_missing_render_guidance",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_node_index_swap",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_psi_length_mismatch_under_single_ref",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_reference_derived_mode_with_two_refs",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_empty_string[camera_framing_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_empty_string[negative_continuity_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_empty_string[state_cue_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_empty_string[subject_position_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_empty_string[visible_space_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_missing[camera_framing_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_missing[negative_continuity_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_missing[state_cue_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_missing[subject_position_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_missing[visible_space_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_wrong_type[camera_framing_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_wrong_type[negative_continuity_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_wrong_type[state_cue_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_wrong_type[subject_position_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_field_wrong_type[visible_space_directive]",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_not_dict",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_render_guidance_unknown_key",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_selected_refs_psi_exact_id_mismatch",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_self_loop_ref",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_two_refs_mode_with_one_ref",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_two_refs_share_ref_bg_id",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_unknown_mode_enum",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_when_anchor_missing_or_not_first",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_when_two_refs_missing_dedup_token",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_blocks_when_two_refs_share_physical_space_id",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_completeness_blocks_node_for_non_renderable_bg",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_completeness_uses_renderable_bg_ids_subset",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_marks_synthetic_readback_not_production_clear",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_passes_empty_sentinel_low_delta_fields",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_passes_when_render_guidance_present_on_every_node",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_renderable_bg_ids_omitted_falls_back_to_same_fp",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_validator_uses_geometry_view_cone_records_when_present",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_viability_all_camera_empty_not_applicable_zero_calls",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_viability_all_look_at_empty_not_applicable_zero_calls",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_viability_disjoint_units_not_applicable",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_viability_geometry_root_not_dict_fail_closed",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_viability_malformed_geometry_fail_closed_not_na",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_viability_one_viable_unit_keeps_llm_path_unchanged",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_w20e7c_anchor_in_clean_candidate_set_passes",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_w20e7c_anchor_not_in_clean_candidate_set_fails",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_w20e7c_build_plan_fails_when_dossier_clean_candidate_empty",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_w20e7c_build_plan_passes_clean_candidates_from_dossier",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_w20e7c_empty_clean_candidate_surface_fails",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_w20e7c_prompt_pack_system_md_declares_clean_anchor_constraint",
  "tests/pipeline/test_shot_aware_bg_render_plan.py::test_w20e7c_validator_no_op_when_none_supplied",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_local_validation_rejects_node_missing_render_guidance",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_local_validation_rejects_render_guidance_field_empty",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_module_constants_locked",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_original_pack_schema_keeps_framing_notes_optional",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_original_pack_schema_keeps_space_description_optional",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_original_pack_schema_keeps_unsupported_keys_for_local_validation",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_original_pack_schema_requires_render_guidance_on_each_node",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_prompt_pack_dir_points_to_new_version",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_prompt_pack_loads_three_artifacts",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_does_not_snap_when_synthetic_readback_also_fails",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_fails_closed_when_openai_api_key_blank",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_fails_closed_when_openai_api_key_missing",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_fails_closed_when_prompt_pack_dir_missing",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_fails_closed_when_prompt_pack_file_missing",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_fails_closed_when_response_format_not_supported",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_fails_closed_when_supports_response_schema_false",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_invokes_completion_exactly_once",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_messages_include_system_and_user_sections",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_module_does_not_import_call_structured_or_router",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_raises_on_bad_response[empty_choices]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_raises_on_bad_response[empty_content]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_raises_on_bad_response[finish_reason_content_filter]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_raises_on_bad_response[finish_reason_length]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_raises_on_bad_response[local_jsonschema_fail]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_raises_on_bad_response[malformed_json]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_raises_on_bad_response[missing_message]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_raises_on_bad_response[non_dict_json]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_raises_on_bad_response[refusal]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_raises_on_bad_response[validator_fail]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[candidate_catalog-bad10]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[candidate_catalog-string]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[dossier-None]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[dossier-string]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[fp_id-123]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[fp_id-None]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[fp_id-]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[geometry-None]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[geometry-string]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[shot_readiness-None]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_rejects_malformed_args_before_network[shot_readiness-string]",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_request_uses_locked_model_and_kwargs",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_returns_parsed_graph_dict_for_build_render_plan",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_provider_snaps_camera_cell_after_w20f9_retry_still_invalid",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_sanitize_does_not_mutate_input",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_sanitized_schema_camera_decision_requires_framing_notes",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_sanitized_schema_has_no_openai_strict_unsupported_keys",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_sanitized_schema_keeps_render_guidance_required_for_strict_mode",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_sanitized_schema_requires_every_property_for_strict_mode",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_sanitized_schema_selected_refs_item_requires_space_description",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_unsupported_schema_key_set_contains_router_problem_keys",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_w20f10_anchor_candidates_disjoint_from_renderable_no_retry",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_w20f10_anchorless_nonempty_graph_retry_succeeds",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_w20f10_empty_graph_retry_succeeds_total_two_calls",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_w20f10_first_pass_success_single_call_no_sentinel",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_w20f10_mixed_camera_and_anchor_failure_no_retry",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_w20f10_no_clean_anchor_candidates_fails_immediately",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_w20f10_nonempty_missing_bg_retry_recovers_full_graph",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_w20f10_repair_template_single_pass_byte_preserved",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_w20f10_retry_flipping_to_camera_failure_no_third_call",
  "tests/pipeline/test_shot_aware_bg_render_plan_llm_provider.py::test_w20f10_retry_still_failing_fail_closed_two_calls",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_cross_group_shot_aware_reuse_vetoed_to_new",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_full_canonical_surface_overridden_and_diagnostics_kept",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_geometry_new_partition_groups_to_reuse",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_geometry_reuse_partition_breaks_to_new",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_none_plan_is_noop_legacy_unchanged",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_plan_missing_group_anchor_is_noop",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_plan_missing_node_assignments_is_noop",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_plan_without_render_actions_is_noop",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_ref_tree_capped_at_max_refs",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_same_space_different_angle_member_derives_not_reuse",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_same_space_same_framing_shot_aware_reuse_preserved",
  "tests/pipeline/test_shot_aware_bg_render_plan_partition.py::test_uncovered_bg_is_fp_level_noop",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_anchor_selection_prefers_best_card_state",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_anchor_selection_tie_break_is_applies_order",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_bg_with_no_card_target_is_not_applicable",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_card_index_none_is_not_available_additive_only",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_needs_review_card_with_empty_id_fails_closed_to_blocked",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_pass_card_with_empty_id_fails_closed_to_blocked",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_render_new_plate_with_passing_card_stamps_self_provenance",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_reuse_does_not_forge_pass_when_target_blocked",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_reuse_inherits_needs_review_target",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_reuse_inherits_passing_target_provenance",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_reuse_target_absent_from_nodes_is_not_available",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_reuse_with_missing_target_projection_is_not_available_not_pass",
  "tests/pipeline/test_shot_aware_bg_render_plan_projection_cards.py::test_unknown_card_state_fails_closed_with_invalid_fallback",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_agreeing_bands_produce_no_contradiction",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_center_adjacent_is_not_opposite",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_dag_anchor_has_no_parents",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_dag_parent_canonicalizes_reuse_alias_to_fresh_anchor",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_dag_parents_cap_applies_to_distinct_canonical_parents",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_dag_parents_dedupe_when_canonicalizing_to_same_anchor",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_dag_related_style_role_style",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_dag_render_order_is_topological_by_node_index",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_dag_reuse_member_not_a_dag_node",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_dag_same_space_view_parent_role_continuity",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_depth_fg_bg_is_diagnostic_only_not_hard",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_extract_base_bands_keeps_only_base_markers",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_horizontal_left_right_is_hard_withhold",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_low_confidence_marker_is_guarded",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_mirror_card_corroborated_reuse_and_anchor",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_mirror_exclusive_solo_new_plate",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_mirror_plate_anchor_shot_id_inherited_from_group_anchor",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_mirror_reuse_member_mirrors_target_group",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_mirror_withheld_node_is_not_shareable_card_withheld",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_occluded_marker_is_guarded_not_withheld",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_only_shared_markers_compared",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_agreeing_cards_keep_reuse",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_all_guarded_shared_marker_is_not_corroborated",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_card_id_mismatch_does_not_withhold",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_depth_conflict_keeps_reuse_with_diagnostic",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_disjoint_base_markers_is_not_corroborated",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_horizontal_conflict_withholds_reuse",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_needs_review_card_does_not_withhold",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_no_card_is_noop",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_no_card_reuse_has_no_corroboration_stamp",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_non_pass_card_does_not_withhold",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_reuse_chain_edge_is_fail_closed",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_reuse_chain_edge_stays_closed_without_killing_the_fp",
  "tests/pipeline/test_shot_aware_bg_render_plan_route_v2.py::test_route_v2_target_blocked_card_does_not_withhold",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_none_zone_plan_not_usable",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_null_zone_id_not_usable",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_select_anchor_confidence_breaks_ties",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_select_anchor_no_clean_candidate_falls_back_with_diagnostic",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_select_anchor_prefers_clean_candidate",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_select_anchor_prefers_new_over_reuse",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_select_anchor_tiebreak_lower_node_index_within_clean",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_single_zone_not_usable",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_synthetic_zone_plan_not_usable",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_uncovered_bg_not_usable",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_usable_ignores_non_node_bgs",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_valid_multizone_usable",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_zone_apply_noop_when_no_plan",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_zone_apply_one_plate_per_zone_rest_alias",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_zone_apply_single_member_zone_is_own_anchor",
  "tests/pipeline/test_shot_aware_bg_render_plan_zone_map.py::test_zone_apply_surfaces_no_clean_candidate_diagnostic",
  "tests/pipeline/test_shot_projection_card.py::TestBuildCardEnvelope::test_has_all_required_keys",
  "tests/pipeline/test_shot_projection_card.py::TestBuildShotContext::test_assembles_shot_intent_and_scene_for_shot",
  "tests/pipeline/test_shot_projection_card.py::TestBuildShotContext::test_different_shot_index_different_intent",
  "tests/pipeline/test_shot_projection_card.py::TestBuildShotContext::test_scene_content_change_changes_context",
  "tests/pipeline/test_shot_projection_card.py::TestBuildShotContext::test_unknown_shot_id_returns_empty_but_stable",
  "tests/pipeline/test_shot_projection_card.py::TestBuildUnionRegistry::test_ignore_numbered_elements_subtracted_from_camera_ref",
  "tests/pipeline/test_shot_projection_card.py::TestBuildUnionRegistry::test_out_of_union_when_camera_refs_unknown_marker",
  "tests/pipeline/test_shot_projection_card.py::TestBuildUnionRegistry::test_union_of_base_transient_ignored_with_camera_ref",
  "tests/pipeline/test_shot_projection_card.py::TestCardCacheKey::test_changed_source_hash_changes_cache_key",
  "tests/pipeline/test_shot_projection_card.py::TestCardCacheKey::test_combines_source_hashes_with_bg_and_shot",
  "tests/pipeline/test_shot_projection_card.py::TestCardCacheKey::test_different_shot_changes_cache_key",
  "tests/pipeline/test_shot_projection_card.py::TestComputeProjectionCard::test_bad_provider_output_raises",
  "tests/pipeline/test_shot_projection_card.py::TestComputeProjectionCard::test_default_synthetic_path_no_provider",
  "tests/pipeline/test_shot_projection_card.py::TestComputeProjectionCard::test_non_dict_provider_output_raises",
  "tests/pipeline/test_shot_projection_card.py::TestComputeProjectionCard::test_provider_output_is_validated",
  "tests/pipeline/test_shot_projection_card.py::TestDossierInSourceHash::test_dossier_change_changes_card_id",
  "tests/pipeline/test_shot_projection_card.py::TestDossierInSourceHash::test_source_hashes_records_dossier_hash",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_camera_ref_out_of_union_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_card_id_leak_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_clean_pass",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_english_enum_literal_leak_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_english_word_containing_enum_substring_not_flagged",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_korean_spatial_words_are_not_leaks",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_low_confidence_needs_review",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_marker_number_annotation_leak_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_missing_envelope_key_malformed_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_missing_inputs_is_needs_review_not_block",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_plate_transient_self_report_no_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_plate_transient_self_report_uncertain_needs_review",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_self_consistency_contradictory_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_semantic_needs_fix_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_stale_source_hash_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_substrate_missing_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestGate::test_transient_marker_in_union_passes",
  "tests/pipeline/test_shot_projection_card.py::TestIterCardTargets::test_bg_without_applies_to_shots_is_skipped",
  "tests/pipeline/test_shot_projection_card.py::TestIterCardTargets::test_empty_inputs_no_targets",
  "tests/pipeline/test_shot_projection_card.py::TestIterCardTargets::test_one_target_per_bg_shot_with_fp_and_overlay",
  "tests/pipeline/test_shot_projection_card.py::TestPackResolution::test_pack_version_change_changes_card_id",
  "tests/pipeline/test_shot_projection_card.py::TestPackResolution::test_provider_constants_match_real_call",
  "tests/pipeline/test_shot_projection_card.py::TestPackResolution::test_resolve_known_selector",
  "tests/pipeline/test_shot_projection_card.py::TestPackResolution::test_resolve_unknown_selector_falls_back_to_raw",
  "tests/pipeline/test_shot_projection_card.py::TestPackResolution::test_source_hashes_records_pack_version",
  "tests/pipeline/test_shot_projection_card.py::TestProviderPromptContext::test_prompt_context_threaded_to_provider",
  "tests/pipeline/test_shot_projection_card.py::TestSourceHashes::test_deterministic_same_inputs_same_hashes",
  "tests/pipeline/test_shot_projection_card.py::TestSourceHashes::test_semantic_none_records_not_available_sentinel",
  "tests/pipeline/test_shot_projection_card.py::TestSourceHashes::test_semantic_present_is_hashed",
  "tests/pipeline/test_shot_projection_card.py::TestSourceHashes::test_shot_context_content_change_invalidates",
  "tests/pipeline/test_shot_projection_card.py::TestSourceHashes::test_shot_context_hash_is_key_order_normalized",
  "tests/pipeline/test_shot_projection_card.py::TestSourceHashes::test_version_and_model_provider_carried",
  "tests/pipeline/test_shot_projection_card.py::TestSyntheticFixture::test_synthetic_envelope_does_not_pass_gate",
  "tests/pipeline/test_shot_projection_card.py::TestSyntheticFixture::test_synthetic_never_auto_passes",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutput::test_bad_enum_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutput::test_good_output_ok",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutput::test_id_mismatch_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutput::test_non_dict_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutput::test_relabelled_marker_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutput::test_unknown_marker_number_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutputRequiredPresence::test_explicit_null_confidence_ok",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutputRequiredPresence::test_missing_top_level_confidence_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutputRequiredPresence::test_missing_top_level_required_key_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutputStrict::test_bad_diagnostics_type_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutputStrict::test_bad_missing_inputs_type_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutputStrict::test_bad_self_consistency_notes_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutputStrict::test_bad_top_level_confidence_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutputStrict::test_bad_visible_text_field_type_blocked",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutputStrict::test_correct_layer_echo_ok",
  "tests/pipeline/test_shot_projection_card.py::TestValidateVlmOutputStrict::test_relabelled_marker_layer_blocked",
  "tests/pipeline/test_shot_projection_card_provider.py::test_provider_fails_closed_on_empty_inventory",
  "tests/pipeline/test_shot_projection_card_provider.py::test_provider_fails_closed_on_missing_image",
  "tests/pipeline/test_shot_projection_card_provider.py::test_provider_uses_pack_version_from_prompt_context",
  "tests/pipeline/test_shot_projection_card_provider.py::test_real_pack_loads_then_fails_at_env_or_fs",
  "tests/pipeline/test_shot_staging_frame_spatial_contract.py::test_first_fsc_violation_then_valid_retry_succeeds",
  "tests/pipeline/test_shot_staging_frame_spatial_contract.py::test_orientation_only_exhausted_keeps_legacy_typed_error",
  "tests/pipeline/test_shot_staging_frame_spatial_contract.py::test_provider_exception_breaks_no_retry",
  "tests/pipeline/test_shot_staging_frame_spatial_contract.py::test_three_fsc_violations_exhausted_raises_app_error",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestInvalidGazePairings::test_invalid_kind_raises",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestInvalidGazePairings::test_looks_at_character_wrong_shape_raises",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestInvalidGazePairings::test_looks_at_object_wrong_shape_raises",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestInvalidGazePairings::test_non_target_kind_with_target_raises",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestInvalidGazePairings::test_target_kind_missing_target_raises",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestInvalidGazePairings::test_violation_in_later_shot_is_caught",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_empty_and_missing_character_angles_pass",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_looks_at_character_with_c_id_passes",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_looks_at_object_with_p_or_b_id_passes[B02]",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_looks_at_object_with_p_or_b_id_passes[P01]",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_multiple_shots_and_angles_all_valid",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_non_target_kind_with_null_passes[camera]",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_non_target_kind_with_null_passes[closed_eyes]",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_non_target_kind_with_null_passes[distant]",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_non_target_kind_with_null_passes[down]",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_non_target_kind_with_null_passes[off_screen]",
  "tests/pipeline/test_shot_staging_gaze_validation.py::TestValidGazePairings::test_non_target_kind_with_null_passes[up]",
  "tests/pipeline/test_shot_staging_orientation_validator.py::test_g10_call_structured_failure_increments_failed_batches",
  "tests/pipeline/test_shot_staging_orientation_validator.py::test_g1_content_surface_empty_orientation_raises",
  "tests/pipeline/test_shot_staging_orientation_validator.py::test_g2_reflective_surface_empty_orientation_raises",
  "tests/pipeline/test_shot_staging_orientation_validator.py::test_g3_retry_succeeds_on_second_attempt",
  "tests/pipeline/test_shot_staging_orientation_validator.py::test_g4_content_surface_valid_passes_first_attempt",
  "tests/pipeline/test_shot_staging_orientation_validator.py::test_g5_reflective_surface_valid_passes_first_attempt",
  "tests/pipeline/test_shot_staging_orientation_validator.py::test_g6_transparent_surface_empty_passes",
  "tests/pipeline/test_shot_staging_orientation_validator.py::test_g7_directional_3d_empty_passes",
  "tests/pipeline/test_shot_staging_orientation_validator.py::test_g8_non_directional_empty_passes",
  "tests/pipeline/test_shot_staging_orientation_validator.py::test_g9_mixed_batch_only_violations_collected",
  "tests/pipeline/test_space_set_bg.py::test_analyze_user_keeps_inputs_unabridged",
  "tests/pipeline/test_space_set_bg.py::test_build_derive_plate_prompt_contract",
  "tests/pipeline/test_space_set_bg.py::test_build_fp_user_frame_only_excludes_addon",
  "tests/pipeline/test_space_set_bg.py::test_build_marked_view_prompt_life_injection",
  "tests/pipeline/test_space_set_bg.py::test_build_place_group_user_adjacent_masses",
  "tests/pipeline/test_space_set_bg.py::test_build_shot_assign_user_keeps_inputs_unabridged",
  "tests/pipeline/test_space_set_bg.py::test_build_shot_plate_map_default_reuse_base",
  "tests/pipeline/test_space_set_bg.py::test_build_shot_plate_map_derive_join",
  "tests/pipeline/test_space_set_bg.py::test_build_shot_plate_map_derive_without_instruction_demotes",
  "tests/pipeline/test_space_set_bg.py::test_build_shot_plate_map_diagnostics_nonfatal",
  "tests/pipeline/test_space_set_bg.py::test_build_shot_plate_map_join_ok",
  "tests/pipeline/test_space_set_bg.py::test_build_shot_plate_map_no_plate_action",
  "tests/pipeline/test_space_set_bg.py::test_build_shot_plate_map_unknown_plate_action_demotes",
  "tests/pipeline/test_space_set_bg.py::test_enclosure_groups_split_and_default",
  "tests/pipeline/test_space_set_bg.py::test_indoor_bg_user_life_and_construction",
  "tests/pipeline/test_space_set_bg.py::test_mark_fp_single_red_marker",
  "tests/pipeline/test_space_set_bg.py::test_marked_view_prompt_blocks_plan_notation_literalism",
  "tests/pipeline/test_space_set_bg.py::test_plan_space_views_kinds_order_and_connectors",
  "tests/pipeline/test_space_set_bg.py::test_plan_space_views_single_group_no_suffix",
  "tests/pipeline/test_space_set_bg.py::test_plan_space_views_single_marked_indoor_becomes_t2i",
  "tests/pipeline/test_space_set_bg.py::test_shot_assign_sys_declares_plate_action",
  "tests/pipeline/test_space_set_bg.py::test_step_derive_failure_falls_back_to_canonical",
  "tests/pipeline/test_space_set_bg.py::test_step_derive_path_generates_derived_plate",
  "tests/pipeline/test_space_set_bg.py::test_step_flag_off_not_applicable",
  "tests/pipeline/test_space_set_bg.py::test_step_full_path_with_overrides",
  "tests/pipeline/test_space_set_bg.py::test_step_group_error_isolated",
  "tests/pipeline/test_space_set_bg.py::test_step_low_frequency_group_skipped",
  "tests/pipeline/test_space_set_bg.py::test_step_shot_assign_failure_nonfatal",
  "tests/pipeline/test_space_set_bg.py::test_step_single_indoor_space_skips_fp",
  "tests/pipeline/test_space_set_bg.py::test_validate_fa_clean_pass",
  "tests/pipeline/test_space_set_bg.py::test_validate_fa_cross_enclosure_same_space_fail",
  "tests/pipeline/test_space_set_bg.py::test_validate_fa_no_access_fail",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_config_hash_off_is_unchanged_and_never_reads_the_pack",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_config_hash_on_changes_when_a_stem_byte_changes",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_config_hash_on_changes_when_a_stem_version_changes",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[ADDON_I2I]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[ANALYZE_FA_SYS]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[DERIVE_PLATE_VIEW]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[FRAME_CHECK_SYS]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[FRAME_FP_SYS]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[INDOOR_BG_T2I_SYS]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[MARKED_FP_VIEW]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[OUTDOOR_BG_T2I_SYS]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[PLACE_GROUP_SYS]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[SAMESPACE_VIEW]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[SHOT_ASSIGN_SYS]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[SPACE_POS_SYS]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_constant_loads_from_pack_unchanged[VIEW_BRIEF_SYS]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_every_stem_exists_in_the_pack",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_fragment_reassembles_to_original[analyze_user_head]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_fragment_reassembles_to_original[view_briefs_user_tail]",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_import_does_not_touch_the_pack",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_no_module_local_reference_to_moved_constants",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_pack_identity_is_fail_closed_when_a_stem_is_missing",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_pack_stem_names_cover_constants_and_fragments",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_repeated_access_returns_the_same_object",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_transferred_total_is_the_measured_weight",
  "tests/pipeline/test_space_set_bg_prompt_pack.py::test_unknown_attribute_still_raises",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_build_immobilized_group_shape_and_focus_filter",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_build_prop_group_carries_field_flows_to_loader",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_camera_relation_gates_crop_and_zoom_override",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_detect_c_seeds_zoom_pair_join",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_detect_d_seeds_priority_and_cap",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_flag_off_applicability_false",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_identity_family_empty_inputs",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_identity_family_pairs_chain_and_type_filter",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_immobilized_cap_is_independent_and_diagnoses_overflow",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_immobilized_loader_drops_empty_contract_group",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_immobilized_loader_same_char_two_scenes_no_contract_bleed",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_immobilized_manifest_to_loader",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_immobilized_seed_basic_two_shots_same_scene",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_immobilized_seed_family_absent_keeps_skip",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_immobilized_seed_gates_ve_name_state_mixed",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_immobilized_seed_matches_ve_via_identity_variant",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_loader_excludes_non_printed_prop",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_manifest_join_integrity_validator",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_prop_anchor_carries_printed_content_gate_overlay",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_s29_zoom_subject_char_token_join",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_wb_loader_flag_off_returns_empty",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_wb_prop_ref_overlay_and_label_helper",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_wc1_revised_prompt_token_audit",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_wc1_zoom_anchor_flag_off_applicability",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_wc2_crop_expand_and_viability",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_wc2_zoom_context_loader_and_flag_off",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_wc2b_zoom_dep_edge_orders_source_before_zoom",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_zoom_fill_prompt_object_ref_clause",
  "tests/pipeline/test_visual_continuity_anchor_plan.py::test_zoom_fill_prop_refs_anchor_contract",
  "tests/prompts/test_c4_background_classifier.py::test_w2_g4_background_chain_planning_closed_enumeration_removed",
  "tests/prompts/test_c4_background_classifier.py::test_w2_g5_background_chain_planning_intent_and_schema_structure_preserved",
  "tests/prompts/test_c4_background_classifier.py::test_w2_g6_background_chain_planning_prompt_version_sync",
  "tests/prompts/test_c4_background_classifier.py::test_w3_g7_background_classify_korean_keyword_list_removed",
  "tests/prompts/test_c4_background_classifier.py::test_w3_g8_background_classify_concept_preserved_and_schema_sibling",
  "tests/prompts/test_c4_background_classifier.py::test_w3_g9_background_classify_prompt_version_sync",
  "tests/prompts/test_c4_background_classifier.py::test_w4_g10_location_floor_plan_korean_token_examples_removed",
  "tests/prompts/test_c4_background_classifier.py::test_w4_g11_location_floor_plan_principle_preserved_and_sibling",
  "tests/prompts/test_c4_background_classifier.py::test_w4_g12_location_floor_plan_prompt_version_sync",
  "tests/prompts/test_c5_action_segment_sot.py::test_w1_g1_shot_extract_user_time_connective_list_removed",
  "tests/prompts/test_c5_action_segment_sot.py::test_w1_g2_shot_extract_system_time_connective_list_removed",
  "tests/prompts/test_c5_action_segment_sot.py::test_w1_g3_shot_extract_v13_schema_byte_identical_and_stems_present",
  "tests/prompts/test_c5_action_segment_sot.py::test_w1_g3_shot_extract_v13_stems_system_user_only",
  "tests/prompts/test_c5_action_segment_sot.py::test_w1_g_loader_shot_extract_v13_resolves",
  "tests/prompts/test_c5_action_segment_sot.py::test_w1_g_reg_shot_extractor_version_synced",
  "tests/prompts/test_c5_action_segment_sot.py::test_w2_g4_shot_validator_time_connective_list_removed",
  "tests/prompts/test_c5_action_segment_sot.py::test_w2_g5_shot_validator_locomotion_lexicon_removed",
  "tests/prompts/test_c5_action_segment_sot.py::test_w2_g6_shot_validator_active_contact_lexicon_removed",
  "tests/prompts/test_c5_action_segment_sot.py::test_w2_g7_shot_validator_visible_human_action_lexicon_removed",
  "tests/prompts/test_c5_action_segment_sot.py::test_w2_g8_shot_validator_schema_and_version_synced",
  "tests/prompts/test_c5_action_segment_sot.py::test_w2_g8_shot_validator_v6_schema_and_version_synced",
  "tests/prompts/test_c5_action_segment_sot.py::test_w3_g10_scene_detail_v32_schema_and_version_synced",
  "tests/prompts/test_c5_action_segment_sot.py::test_w3_g9_scene_detail_dynamic_verb_list_removed",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a1_g_activation",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a1_g_intent_preserved",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a1_g_residue_entity_all_prop",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a1_g_residue_entity_filter_system",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a1_g_sibling_entity_all",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a1_g_sibling_entity_filter",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a2_g_activation",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a2_g_intent_preserved",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a2_g_registry",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a2_g_residue_turn2",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a2_g_sibling",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a3_g_activation",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a3_g_intent_preserved",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a3_g_residue_prop",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1a3_g_sibling",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1b_g_activation",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1b_g_intent_preserved",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1b_g_registry",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1b_g_residue_location_consistency",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1b_g_residue_outlook_phase2",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1b_g_residue_outlook_phase3",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w1b_g_sibling",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2a_g_activation",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2a_g_boundary_c5_time_connective_preserved",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2a_g_intent_preserved",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2a_g_registry",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2a_g_residue_system_humanoid_a069",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2a_g_residue_user_race_example",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2a_g_residue_user_transformation_block",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2b_g_activation",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2b_g_intent_preserved",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2b_g_registry",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2b_g_residue_scene_extractor_montage",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2b_g_residue_shot_essence",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2b_g_residue_shot_selection",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w2b_g_sibling",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w3a_g_boundary_floor_plan_a031",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w3a_g_constant_background_floor",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w3a_g_constant_t2i",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w3a_g_intent_preserved",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w3a_g_residue_background_master_plan",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w3a_g_residue_floor_plan",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w3a_g_residue_t2i",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w3a_g_sibling",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w4a_g_carrier_shape",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w4a_g_residue_entity_steps",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w4a_g_residue_outlook_dedup",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w4a_g_residue_reference_image_generator",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w4a_g_residue_scene_validator",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w4b_g_intent_camera_frame_rule",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w4b_g_keep_canary_tuples",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w4b_g_residue_camera_applies_when",
  "tests/prompts/test_c8_area7_residual_hygiene.py::test_w5_g_boundary_keep_defer_sites",
  "tests/prompts/test_c9_scene_detail_body_light_verb.py::test_g1_no_closed_verb_list_literal",
  "tests/prompts/test_c9_scene_detail_body_light_verb.py::test_g2_no_example_phrase_markers",
  "tests/prompts/test_c9_scene_detail_body_light_verb.py::test_g3_generic_principle_present",
  "tests/prompts/test_c9_scene_detail_body_light_verb.py::test_g4_header_and_why_preserved",
  "tests/prompts/test_c9_scene_detail_body_light_verb.py::test_g5_schema_byte_identical_to_v30",
  "tests/prompts/test_c9_scene_detail_body_light_verb.py::test_g6_four_point_version_sync",
  "tests/prompts/test_c9_scene_detail_body_light_verb.py::test_g7_section_boundary_preserved",
  "tests/prompts/test_entity_extractor_active_stem.py::test_g_activation_v12_latest",
  "tests/prompts/test_entity_extractor_active_stem.py::test_g_active_loader_system_turn0_style",
  "tests/prompts/test_entity_extractor_active_stem.py::test_g_boundary_vwr_clause_and_metadata_preserved",
  "tests/prompts/test_entity_extractor_active_stem.py::test_g_dead_turn2_turn3_turn4_not_loaded",
  "tests/prompts/test_entity_extractor_active_stem.py::test_g_intent_preserved",
  "tests/prompts/test_entity_extractor_active_stem.py::test_g_registry_v12_provenance",
  "tests/prompts/test_entity_extractor_active_stem.py::test_g_residue_system_transformation_examples",
  "tests/prompts/test_entity_extractor_active_stem.py::test_g_residue_turn0_style_hardcoded_examples",
  "tests/prompts/test_entity_extractor_active_stem.py::test_g_sibling_v12_modifies_exactly_two_stems",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_card_metadata_lift_status_g4_4_keys",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_module_info_scene_detail_composer_prompt_dependency_strict",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_module_versions_scene_detail_composer_strict",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_scene_detail_prompt_loader_resolves_to_latest_pinned_version",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_scene_detail_prompt_loader_resolves_to_v19_latest",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_scene_detail_prompt_loader_resolves_to_v20_latest",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_scene_detail_prompt_loader_resolves_to_v21_latest",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_scene_detail_prompt_version_matches_directory",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_scene_detail_schema_version_at_area_5_baseline",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_scene_detail_schema_version_at_area_frame_spatial_contract_baseline",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_scene_detail_schema_version_at_d6_t5d_baseline",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_scene_detail_schema_version_unchanged",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_v19_continuity_pointer_uses_new_section_name",
  "tests/prompts/test_scene_detail_continuity_alignment.py::test_v19_no_stale_v18_continuity_section_pointer",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::TestSceneDetailV34IdPolicyAlignment::test_scene_detail_prompt_version_constant_is_v34",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::TestSceneDetailV34IdPolicyAlignment::test_scene_detail_prompt_version_constant_matches_latest_pack",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::TestSceneDetailV34IdPolicyAlignment::test_v34_directory_exists_and_system_md_nonempty",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::TestSceneDetailV34IdPolicyAlignment::test_v34_generic_descriptor_allowed_must_not_use_id_explicit",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::TestSceneDetailV34IdPolicyAlignment::test_v34_generic_descriptor_example_present",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::TestSceneDetailV34IdPolicyAlignment::test_v34_rule_x2_mentions_all_three_policies",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::TestSceneDetailV34IdPolicyAlignment::test_v34_rule_x2_overrides_clause",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::TestSceneDetailV34IdPolicyAlignment::test_v34_subject_reference_policy_sot_clause",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_card_payload_has_subject_reference_policy_field",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_check_prompts_rejects_invalid_outlook",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_latest_scene_detail_schema_no_stale_id_policy",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_latest_scene_detail_schema_uses_composite_id_hint",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_latest_scene_detail_system_uses_composite_id",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_prompt_chars_extraction_includes_composite_base",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_scene_detail_prompt_version_constant_matches_latest",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_scene_detail_schema_version_synced_with_manifest",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_scene_detail_step_check_prompts_accepts_composite_id",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_scene_detail_system_and_schema_resolve_same_version",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_scene_detail_version_registry_aligned",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_scene_detail_versions_monotonic",
  "tests/prompts/test_scene_detail_id_policy_alignment.py::test_variant_replace_handles_composite_id",
  "tests/prompts/test_scene_detail_spatial_alignment.py::test_module_info_scene_detail_composer_prompt_dependency_strict",
  "tests/prompts/test_scene_detail_spatial_alignment.py::test_module_versions_scene_detail_composer_strict",
  "tests/prompts/test_scene_detail_spatial_alignment.py::test_scene_detail_prompt_loader_resolves_to_latest_pinned_version",
  "tests/prompts/test_scene_detail_spatial_alignment.py::test_scene_detail_prompt_loader_resolves_to_v20_latest",
  "tests/prompts/test_scene_detail_spatial_alignment.py::test_scene_detail_prompt_loader_resolves_to_v21_latest",
  "tests/prompts/test_scene_detail_spatial_alignment.py::test_scene_detail_prompt_version_matches_directory",
  "tests/prompts/test_scene_detail_spatial_alignment.py::test_scene_detail_schema_version_at_area_5_baseline",
  "tests/prompts/test_scene_detail_spatial_alignment.py::test_scene_detail_schema_version_at_area_frame_spatial_contract_baseline",
  "tests/prompts/test_scene_detail_spatial_alignment.py::test_scene_detail_schema_version_at_d6_t5d_baseline",
  "tests/prompts/test_scene_detail_spatial_alignment.py::test_scene_detail_schema_version_unchanged",
  "tests/prompts/test_scene_detail_v21_grep_gate.py::test_v21_system_md_no_forbidden_tokens",
  "tests/prompts/test_scene_detail_v21_grep_gate.py::test_v21_system_md_present_and_not_empty",
  "tests/prompts/test_scene_detail_v21_rule_x2_semantic.py::test_rule_x2_descriptor_only_forbidden",
  "tests/prompts/test_scene_detail_v21_rule_x2_semantic.py::test_rule_x2_every_variation_clause",
  "tests/prompts/test_scene_detail_v21_rule_x2_semantic.py::test_rule_x2_examples_use_placeholders_only",
  "tests/prompts/test_scene_detail_v21_rule_x2_semantic.py::test_rule_x2_exemption_body_part_focus_rule",
  "tests/prompts/test_scene_detail_v21_rule_x2_semantic.py::test_rule_x2_exemption_forward_only",
  "tests/prompts/test_scene_detail_v21_rule_x2_semantic.py::test_rule_x2_exemption_partial_focus",
  "tests/prompts/test_scene_detail_v21_rule_x2_semantic.py::test_rule_x2_exemption_reproduction_surface_rule",
  "tests/prompts/test_scene_detail_v21_rule_x2_semantic.py::test_rule_x2_generic_noun_substitution_forbidden",
  "tests/prompts/test_scene_detail_v21_rule_x2_semantic.py::test_rule_x2_mechanical_block_present",
  "tests/prompts/test_scene_detail_v21_rule_x2_semantic.py::test_rule_x2_multi_character_distinct_id",
  "tests/prompts/test_shot_extract_format_brace.py::test_g1_shot_extract_user_format_no_keyerror",
  "tests/prompts/test_shot_extract_format_brace.py::test_g2_rule_type_enum_literal_preserved",
  "tests/prompts/test_shot_extract_format_brace.py::test_g3_v15_source_escaped_braces",
  "tests/scripts/test_experiment_actual_floor_plan_generation_slice.py::test_w14b_dry_run_mode_produces_no_api_calls",
  "tests/scripts/test_experiment_actual_floor_plan_generation_slice.py::test_w14b_generate_mode_with_fake_openai_call",
  "tests/scripts/test_experiment_actual_floor_plan_generation_slice.py::test_w14b_html_img_embed_success_only_and_methodology_grep",
  "tests/scripts/test_experiment_actual_floor_plan_generation_slice.py::test_w14b_reuse_existing_png_mode_copies_without_api_call",
  "tests/scripts/test_experiment_actual_floor_plan_generation_slice.py::test_w14b_target_subset_validation",
  "tests/scripts/test_experiment_actual_floor_plan_generation_slice.py::test_w14b_to_jsonable_handles_nested_pydantic_like_objects",
  "tests/scripts/test_experiment_actual_floor_plan_generation_slice.py::test_w14b_uses_assembled_prompt_when_present",
  "tests/scripts/test_experiment_background_image_overlap_reference_slice.py::test_w18j_overlap_planner_dispatches_mode_by_exact_id",
  "tests/scripts/test_experiment_background_image_overlap_reference_slice.py::test_w18j_target_excludes_anchor_and_methodology_grep",
  "tests/scripts/test_experiment_background_image_smoke_from_region_ref_slice.py::test_w18g_dry_run_skips_api_and_fake_generate_writes_png",
  "tests/scripts/test_experiment_background_image_smoke_from_region_ref_slice.py::test_w18g_target_bg_restriction_and_methodology_grep",
  "tests/scripts/test_experiment_background_image_smoke_remaining_l05_slice.py::test_w18h_dry_run_skips_and_fake_generate_writes_four_pngs",
  "tests/scripts/test_experiment_background_image_smoke_remaining_l05_slice.py::test_w18h_l05b04_rejected_and_methodology_grep",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_adapter_assign_bg_ids_deterministic_rerun",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_adapter_assigns_bg_ids_with_production_helper",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_adapter_dedup_parent_conflict_fail_fast",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_adapter_dedup_parent_self_cycle_fail_fast",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_adapter_gen_order_topo_resolves_parent_intent_ref",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_adapter_shot_background_map_n_to_1_invariant",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_compatibility_report_aggregates_nine_invariants",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_compatibility_report_fails_when_unmatched_shot",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_dry_run_default_no_model_in_meta",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_dry_run_does_not_import_litellm",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_fixture_swap_alternate_episode",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_generation_payload_has_minimum_required_fields",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_index_html_renders_without_breaking_on_empty_bundle",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_index_html_shows_key_metrics",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_llm_raw_plan_placeholder_when_dry_run",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_llm_raw_plan_schema_state_class_enum_matches_production",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_llm_raw_plan_schema_validates_against_jsonschema",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_no_banned_image_modules_imported_at_runtime",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_open_risks_max_five_and_have_fallback",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_pipeline_map_paths_and_symbols_exist",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_pipeline_map_report_path_existence_into_run_meta",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_production_diff_empty_invariant_recorded",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_production_pipeline_map_has_required_touchpoints",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_ref_contract_dry_run_pass_for_all_shots",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_reference_input_plan_covers_all_selected_shots",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_run_id_format_kst_and_unique",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_runner_exits_1_on_any_invariant_fail",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_skeleton_emits_run_meta_with_required_fields",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_source_bundle_fails_when_no_selected_shots",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_source_bundle_loads_selected_shots_verbatim",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_source_verbatim_hash_matches_db",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_static_guard_no_db_write_method_calls",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w10_anchor_objects_extracted_from_owned_object_usage_by_usage_kind",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w11_compatibility_report_flags_subset_violation",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w11_html_renders_required_sections_in_order",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w11_placeholder_dry_run_emits_full_shells_and_passes_invariants",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w11_production_floor_plan_context_loads_real_manifest",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w2_dependent_invariants_skipped_on_adapter_failure",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w2_locations_for_llm_has_no_db_uuid",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w2_validate_loc_id_membership_detects_db_uuid",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w3_validate_semantic_key_parents_detects_self_cycle",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w3_validate_space_key_hint_membership",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w4_build_render_payload_dry_run_has_chain_bg_placeholder",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w4_build_render_plan_covers_all_bg_and_orders_by_gen_order",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w4_classify_render_roles_master_and_variants",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w4_cli_derive_from_w3_run",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w4_reference_chain_plan_is_topo_and_acyclic",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w4_render_plan_compatibility_report_all_pass",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w4b_coverage_carried_fails_when_rip_mismatches_adapter",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w5_build_generation_map_groups_structure",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w5_cli_derive_from_w4_run_exits_0",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w5_image_backend_is_gpt_image_2_everywhere",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w5_no_human_decision_fields_in_gen_map",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w5_references_in_earlier_batch_invariant",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w5_render_batches_topological_independent_first",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w5_render_mode_policy",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w5_shot_to_background_image_coverage_exact",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w6_base_prompt_anchor_report_structural_score_no_human_decision",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w6_cli_derive_from_w5_run_exits_0",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w6_derive_and_weak_modes_use_images_edit_with_single_ref",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w6_independent_mode_uses_images_generate_with_no_refs",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w6_payload_model_is_gpt_image_2_everywhere",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w6_payload_plan_covers_all_bg_with_required_fields",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w6_references_point_to_earlier_batch_invariant",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w6_shot_coverage_carried_exact_and_prompt_text_invariants",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w6_variant_without_primary_ref_falls_back_to_independent",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w7_cli_dry_run_derive_from_w6_exits_0",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w7_dry_run_placeholder_covers_all_w6_payloads",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w7_gpt_image_2_and_api_call_shape_carried_exact",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w7_llm_generate_smoke_with_fake_response",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w7_over_6000_fails_under_2000_advisory_only",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w7b_high_risk_group_variants_override_to_weak_reference",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w7c_derived_from_chain_resolves_to_source_bundle_and_builds_group_context",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w7c_llm_input_carries_source_context_and_group_guide_fields_round_trip",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w7d_llm_input_payload_includes_reference_strength_and_group_risk",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w8_compatibility_enforces_gpt_image_2_and_no_human_decision",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w8_dry_run_default_no_openai_import_no_png",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w8_missing_reference_blocks_variant_when_generating",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w8_subset_selection_follows_render_batch_order",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w8b_weak_reference_prompt_only_mode_drops_refs_for_weak_payloads",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w8c_per_bg_prompt_carries_group_guide_scale_and_anchors",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w8d_per_bg_prompt_carries_scale_only_not_spatial_anchors",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w8e_assembly_appends_generic_default_avoidance_only_not_group_value",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w8f_assembly_prepends_film_set_framing_and_appends_generic_avoidance",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w8h_continuity_partition_checker_pass_and_fail",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w9_cross_subgroup_weak_stays_prompt_only",
  "tests/scripts/test_experiment_background_pipeline_slice.py::test_w9_same_subgroup_direct_parent_overrides_weak_to_edit",
  "tests/scripts/test_experiment_background_place_grouping.py::TestChainBgVariantDecompositionRename::test_generic_name_class_exists",
  "tests/scripts/test_experiment_background_place_grouping.py::TestChainBgVariantDecompositionRename::test_legacy_alias_kept",
  "tests/scripts/test_experiment_background_place_grouping.py::TestContinuityGroupGuard::test_geometry_preserving_state_keeps_same_group",
  "tests/scripts/test_experiment_background_place_grouping.py::TestContinuityGroupGuard::test_non_geometry_preserving_state_raises_or_warns",
  "tests/scripts/test_experiment_background_place_grouping.py::TestContinuityGrouping::test_different_room_same_set_group_different_space_node",
  "tests/scripts/test_experiment_background_place_grouping.py::TestContinuityGrouping::test_same_loc_same_space_different_state_groups_same_continuity",
  "tests/scripts/test_experiment_background_place_grouping.py::TestDerivedUnitIdUniqueness::test_all_unit_ids_unique",
  "tests/scripts/test_experiment_background_place_grouping.py::TestExtendedNegation::test_etc_negation_phrases",
  "tests/scripts/test_experiment_background_place_grouping.py::TestExtendedNegation::test_l05b04_negation_jeoldae_pohamhaji",
  "tests/scripts/test_experiment_background_place_grouping.py::TestExtendedNegation::test_l05b06_negation_jeoldae_nehji",
  "tests/scripts/test_experiment_background_place_grouping.py::TestGenerationUnitPlan::test_unit_plan_avoids_cross_product_explosion",
  "tests/scripts/test_experiment_background_place_grouping.py::TestGenerationUnitPlan::test_unit_plan_has_three_buckets",
  "tests/scripts/test_experiment_background_place_grouping.py::TestGenericMethodologyGuard::test_generic_alias_decompose_chain_bg_variant_exists",
  "tests/scripts/test_experiment_background_place_grouping.py::TestGenericMethodologyGuard::test_html_declares_generic_scope",
  "tests/scripts/test_experiment_background_place_grouping.py::TestGenericMethodologyGuard::test_plan_md_declares_generic_scope_and_sample_fixture",
  "tests/scripts/test_experiment_background_place_grouping.py::TestGenericMethodologyGuard::test_sample_fixture_constants_namespaced",
  "tests/scripts/test_experiment_background_place_grouping.py::TestGenericMethodologyGuard::test_script_has_no_scope_leakage_phrases",
  "tests/scripts/test_experiment_background_place_grouping.py::TestGoldenOracleMetric::test_metric_uses_golden_oracle_not_placeholder",
  "tests/scripts/test_experiment_background_place_grouping.py::TestGoldenOracleRuntime::test_compute_acceptance_metrics_runs_oracle",
  "tests/scripts/test_experiment_background_place_grouping.py::TestGoldenOracleRuntime::test_oracle_cases_constant_exists",
  "tests/scripts/test_experiment_background_place_grouping.py::TestHasSecondarySpacesPrimary::test_html_decomposition_table_uses_secondary_label",
  "tests/scripts/test_experiment_background_place_grouping.py::TestHasSecondarySpacesPrimary::test_tsv_uses_has_secondary_spaces_column",
  "tests/scripts/test_experiment_background_place_grouping.py::TestHtmlReport::test_html_first_screen_shows_old_vs_new_unit_count",
  "tests/scripts/test_experiment_background_place_grouping.py::TestHtmlReport::test_html_has_l05b_decomposition_section",
  "tests/scripts/test_experiment_background_place_grouping.py::TestHtmlReport::test_html_unresolved_section_no_per_shot_question",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_decomposer_returns_three_axes[L05B01]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_decomposer_returns_three_axes[L05B02]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_decomposer_returns_three_axes[L05B03]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_decomposer_returns_three_axes[L05B04]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_decomposer_returns_three_axes[L05B05]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_decomposer_returns_three_axes[L05B06]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_decomposer_returns_three_axes[L05B07]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_decomposer_returns_three_axes[L05B08]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_l05b01_resolves_living_room_normal_wide",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_l05b02_resolves_bedroom_floor_close_with_clue_state",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_l05b05_multi_space_marked_reject",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_l05b05_multi_space_marked_secondary_not_reject",
  "tests/scripts/test_experiment_background_place_grouping.py::TestL05VariantDecomposer::test_l05b08_resolves_bedroom_cleaned",
  "tests/scripts/test_experiment_background_place_grouping.py::TestMetricLabel::test_run_meta_uses_illustrative_label",
  "tests/scripts/test_experiment_background_place_grouping.py::TestMultiSpaceRename::test_has_secondary_spaces_field_present",
  "tests/scripts/test_experiment_background_place_grouping.py::TestOracleCasesNeutral::test_generic_oracle_cases_no_specific_scenario",
  "tests/scripts/test_experiment_background_place_grouping.py::TestOracleCasesNeutral::test_sample_fixture_oracle_cases_exist",
  "tests/scripts/test_experiment_background_place_grouping.py::TestOutputArtifactRename::test_script_writes_chain_bg_decomposition",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPlaceGroupSetGroupContainment::test_set_group_parent_place_group_id_exists",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPlaceGroupSetGroupContainment::test_space_node_set_group_id_exists",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPlanUnitSpecDriven::test_default_camera_from_spec",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPlanUnitSpecDriven::test_plan_accepts_spec",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPlanUnitSpecDriven::test_plan_uses_spec_default_camera",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPlanVersion::test_plan_version_is_w2d_or_later",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPlanVersion::test_plan_version_is_w2e_or_later",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPrimaryResolverDynamic::test_alt_spec_does_not_accept_l05_vocabulary",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPrimaryResolverDynamic::test_alt_spec_synthetic_vocabulary_resolves",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPrimaryResolverDynamic::test_no_global_primary_space_patterns",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPrimarySecondarySpaceExtraction::test_bedroom_primary_with_visible_living_not_reject",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPrimarySecondarySpaceExtraction::test_decomposition_has_primary_and_secondary_fields",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPrimarySecondarySpaceExtraction::test_living_room_wide_primary_living_not_reject",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPrimarySecondarySpaceExtraction::test_living_room_wide_visible_bathroom_edge_not_reject",
  "tests/scripts/test_experiment_background_place_grouping.py::TestPrimarySecondarySpaceExtraction::test_zone_boundary_absorption_not_secondary",
  "tests/scripts/test_experiment_background_place_grouping.py::TestProhibitionBeforeObject::test_jeoldae_before_object",
  "tests/scripts/test_experiment_background_place_grouping.py::TestProhibitionBeforeObject::test_pi_myosa_geumji",
  "tests/scripts/test_experiment_background_place_grouping.py::TestProhibitionBeforeObject::test_si_object_boyimyeon_andoenda",
  "tests/scripts/test_experiment_background_place_grouping.py::TestSampleFixtureSpecSeparation::test_generic_builders_take_spec",
  "tests/scripts/test_experiment_background_place_grouping.py::TestSampleFixtureSpecSeparation::test_sample_fixture_loader_exists",
  "tests/scripts/test_experiment_background_place_grouping.py::TestSampleFixtureSpecSeparation::test_sample_fixture_spec_dataclass_exists",
  "tests/scripts/test_experiment_background_place_grouping.py::TestShotBindingRollup::test_unresolved_shot_uses_rollup_id_not_free_text",
  "tests/scripts/test_experiment_background_place_grouping.py::TestShotBindingSpecDriven::test_build_shot_bindings_accepts_spec",
  "tests/scripts/test_experiment_background_place_grouping.py::TestShotBindingSpecDriven::test_loc_id_from_spec_not_global",
  "tests/scripts/test_experiment_background_place_grouping.py::TestShotBindingSpecDriven::test_weak_room_hints_from_spec",
  "tests/scripts/test_experiment_background_place_grouping.py::TestShotStateClassifierUnified::test_s14_s4_cleaned_not_corpse",
  "tests/scripts/test_experiment_background_place_grouping.py::TestShotStateClassifierUnified::test_s18_s5_no_corpse_if_negated",
  "tests/scripts/test_experiment_background_place_grouping.py::TestSourceBibleFilenameInSpec::test_spec_has_source_bible_filename",
  "tests/scripts/test_experiment_background_place_grouping.py::TestSpacePrimarySecondarySpecDriven::test_decompose_chain_bg_variant_accepts_spec",
  "tests/scripts/test_experiment_background_place_grouping.py::TestSpacePrimarySecondarySpecDriven::test_extract_accepts_spec_parameter",
  "tests/scripts/test_experiment_background_place_grouping.py::TestSpacePrimarySecondarySpecDriven::test_extract_uses_spec_keyword_whitelist",
  "tests/scripts/test_experiment_background_place_grouping.py::TestSpacePrimarySecondarySpecDriven::test_extract_with_alt_spec_yields_different_result",
  "tests/scripts/test_experiment_background_place_grouping.py::TestSpacePrimarySecondarySpecDriven::test_legacy_decompose_l05_variant_still_works",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateClassifierNegation::test_cleaned_overrides_corpse_keyword",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateClassifierNegation::test_decompose_l05_variant_uses_unified_classifier",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateClassifierNegation::test_l05b01_negation_resolves_normal_not_corpse",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateClassifierNegation::test_l05b07_blood_marks_without_body_resolves_vandalized_not_corpse",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateClassifierNegation::test_l05b08_cleaned_resolves_cleaned",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateClassifierNegation::test_real_corpse_still_resolves",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateLayerAppliedShotsUnified::test_applied_shots_uses_classify_state_layer",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateLayerInvariants::test_state_layer_affects_enum_strict",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateLayerInvariants::test_state_layer_corpse_does_not_trigger_structural_change",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateLayerInvariants::test_state_layer_geometry_preserving_true[sl_cleaned-cleaned]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateLayerInvariants::test_state_layer_geometry_preserving_true[sl_corpse_marks-corpse_marks]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateLayerInvariants::test_state_layer_geometry_preserving_true[sl_dusk_night-dusk_night]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateLayerInvariants::test_state_layer_geometry_preserving_true[sl_normal-normal]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStateLayerInvariants::test_state_layer_geometry_preserving_true[sl_vandalized-vandalized]",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStaticImportGuards::test_script_does_not_import_build_shot_plans",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStaticImportGuards::test_script_does_not_import_image_or_network",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStaticImportGuards::test_script_does_not_import_production_app",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStructuralVersion::test_only_geometry_keywords_trigger_new_version",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStructuralVersion::test_remodel_keyword_triggers_new_version",
  "tests/scripts/test_experiment_background_place_grouping.py::TestStructuralVersion::test_state_keywords_do_not_trigger_new_version",
  "tests/scripts/test_experiment_background_place_grouping.py::TestUnitIdSlugSanitizer::test_slug_handles_special_chars",
  "tests/scripts/test_experiment_background_place_grouping.py::TestUnitIdSlugSanitizer::test_slug_helper_exists",
  "tests/scripts/test_experiment_background_place_grouping.py::TestUnitIdSlugSanitizer::test_slug_preserves_korean",
  "tests/scripts/test_experiment_background_place_grouping.py::TestWristBodyMarkGuard::test_arm_mark_not_vandalized",
  "tests/scripts/test_experiment_background_place_grouping.py::TestWristBodyMarkGuard::test_floor_blood_still_vandalized",
  "tests/scripts/test_experiment_background_place_grouping.py::TestWristBodyMarkGuard::test_wall_mark_still_vandalized",
  "tests/scripts/test_experiment_background_place_grouping.py::TestWristBodyMarkGuard::test_wrist_mark_not_vandalized",
  "tests/scripts/test_experiment_background_prompt_region_ref_assembly_slice.py::test_w18f_clean_bg_source_residue_diagnostic_and_appendix_leak_fails",
  "tests/scripts/test_experiment_background_prompt_region_ref_assembly_slice.py::test_w18f_happy_path_assembly_concat_and_invariants",
  "tests/scripts/test_experiment_background_prompt_region_ref_assembly_slice.py::test_w18f_production_api_zero_guard_and_methodology_grep",
  "tests/scripts/test_experiment_background_prompt_region_ref_preview_slice.py::test_w18e_broken_coverage_or_marker_ref_fails_invariants",
  "tests/scripts/test_experiment_background_prompt_region_ref_preview_slice.py::test_w18e_happy_path_preview_shape_and_invariants",
  "tests/scripts/test_experiment_background_prompt_region_ref_preview_slice.py::test_w18e_production_api_zero_guard_and_methodology_grep",
  "tests/scripts/test_experiment_background_render_payload_slice.py::test_w13_api_method_preview_and_floor_plan_ref_resolution",
  "tests/scripts/test_experiment_background_render_payload_slice.py::test_w13_html_first_screen_table_columns_and_order",
  "tests/scripts/test_experiment_background_render_payload_slice.py::test_w13_model_and_no_image_api_guards",
  "tests/scripts/test_experiment_background_render_payload_slice.py::test_w13_payload_coverage_and_unlisted_set_difference",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionPromptBuilders::test_correction_prompt_builders_exist_and_return_strings",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionPromptBuilders::test_correction_user_prompt_does_not_truncate_source",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionPromptBuilders::test_correction_user_prompt_includes_full_source_text",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionPromptBuilders::test_correction_user_prompt_signature_takes_full_bundle_and_invalid_pack",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRoutingDecision::test_correction_handles_llm_call_exception",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRoutingDecision::test_correction_invoked_only_for_quote_not_in_source",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRoutingDecision::test_correction_invoked_when_quote_not_in_source_and_promotes_corrected_pack",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRoutingDecision::test_correction_not_attempted_when_initial_generate_failed",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRoutingDecision::test_correction_quarantines_corrected_pack_when_validation_still_fails",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRoutingDecision::test_correction_runs_at_most_once",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRunMetaAndHtml::test_build_run_meta_carries_correction_keys",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRunMetaAndHtml::test_build_run_meta_defaults_correction_fields",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRunMetaAndHtml::test_build_run_meta_filter_failed_checks_means_final_only",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRunMetaAndHtml::test_html_announces_initial_failures_corrected",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRunMetaAndHtml::test_html_badge_announces_correction_when_succeeded_after_correction",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRunMetaAndHtml::test_main_run_meta_after_correction_does_not_carry_initial_fails_in_filter_failed_checks",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestCorrectionRunMetaAndHtml::test_main_run_meta_after_correction_failed_marks_filter_failed_checks_to_latest",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestDeterministicChecker::test_checker_augments_quote_occurrence_positions",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestDeterministicChecker::test_checker_enforces_minimality_caps",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestDeterministicChecker::test_checker_enforces_stage_b_input_contract",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestDeterministicChecker::test_checker_rejects_topology_or_count_or_embedded_world",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestDeterministicChecker::test_checker_validates_quote_exact_containment_in_source_text",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestDeterministicChecker::test_checker_validates_two_schemas_independently",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestDownstreamSystemPromptUsesPackNotBundle::test_spatial_system_prompt_says_pack_not_sourcebundle",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestDownstreamSystemPromptUsesPackNotBundle::test_world_system_prompt_says_pack_not_sourcebundle",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_enforces_caps_and_preserves_over_cap_verbatim",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_over_cap_evidence_items_count_fails",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_over_cap_list_items_fails",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_quote_not_in_source_fails",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rejects_allowed_creative_freedom_basis_outside_enum",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rejects_applies_to_outside_enum",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rejects_evidence_id_with_non_slug_chars",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rejects_evidence_ref_with_confidence_band",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rejects_inventory_or_count_keys",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rejects_inventory_or_count_keys_in_pack",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rejects_role_outside_enum",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rejects_rule_confidence_band_outside_enum",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rejects_shot_ref_not_in_selected_shots",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rejects_use_for_outside_enum",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_rule_id_must_be_slug",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_source_ref_resolvable",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_source_ref_resolvable_against_bundle",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_validates_basic_pack_passes",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterChecker::test_checker_validates_quote_exact_containment",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterPromptContract::test_evidence_filter_prompt_builder_signature_accepts_bundle",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterPromptContract::test_evidence_filter_system_and_user_builders_present",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterPromptContract::test_spatial_prompt_builder_does_not_accept_bundle_or_raw_sources",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterPromptContract::test_world_prompt_builder_does_not_accept_bundle_or_raw_sources",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterPromptEnumDiscipline::test_evidence_filter_system_prompt_enumerates_confidence_band",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterPromptEnumDiscipline::test_evidence_filter_user_prompt_lists_confidence_enum",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterRunIntegration::test_dry_run_emits_placeholder_evidence_pack_and_filter_plan",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterRunIntegration::test_evidence_filter_run_generate_failed_status_when_api_unavailable",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterRunIntegration::test_html_explains_evidence_filter_role",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterRunIntegration::test_outputs_now_include_filter_artifacts_18_total",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterRunIntegration::test_outputs_now_include_filter_artifacts_19_total",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterRunIntegration::test_run_meta_lists_background_continuity_brief_stage_first",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterRunIntegration::test_run_meta_lists_evidence_filter_stage_first",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_brief_allowed_creative_freedom_basis_enum_and_optional_evidence",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_brief_common_place_identity_required_fields",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_brief_evidence_ref_shape_has_no_confidence_band",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_brief_rule_sections_carry_rule_level_confidence_band",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_brief_schema_caps_present",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_brief_schema_forbids_legacy_and_inventory_and_topology_keys",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_brief_schema_has_required_top_level_keys",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_evidence_pack_evidence_item_required_fields_and_role_enums",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_evidence_pack_evidence_item_required_fields_and_use_for_enum",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_evidence_pack_schema_caps_present",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_evidence_pack_schema_forbids_count_and_inventory_keys",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_evidence_pack_schema_forbids_count_inventory_and_legacy_keys",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_evidence_pack_schema_has_required_top_level_keys",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterSchemaShape::test_evidence_pack_schema_no_categorical_count_required",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterStaticGuards::test_evidence_filter_checker_function_has_no_brief_content_scan",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestEvidenceFilterStaticGuards::test_evidence_filter_module_has_no_lexicon_constants",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestGenerateFailClosed::test_main_returns_nonzero_when_filter_validation_fails",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestGenerateFailClosed::test_route_generate_failed_uses_placeholder_and_nonzero_exit",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestGenerateFailClosed::test_route_succeeded_with_failed_validation_quarantines_pack",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestGenerateFailClosed::test_route_succeeded_with_valid_validation_promotes_pack",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestNoTruncateGuards::test_checker_preserves_over_cap_brief_content_verbatim",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestNoTruncateGuards::test_script_has_no_truncation_logic_for_brief_or_source",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestNoTruncateGuards::test_source_bundle_preserves_leading_trailing_whitespace_verbatim",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestNoTruncateGuards::test_source_bundle_preserves_long_input_text_verbatim",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestNoTruncateGuards::test_source_loaders_do_not_strip_or_normalize_text",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPatternRecognitionBanGuards::test_checker_function_ast_has_no_brief_content_scan",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPatternRecognitionBanGuards::test_checker_unit_passes_reasoning_text_with_pattern_words",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPatternRecognitionBanGuards::test_script_has_no_classifier_function_definition",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPatternRecognitionBanGuards::test_script_has_no_re_import",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPatternRecognitionBanGuards::test_script_has_no_term_lexicon_or_boundary_constants",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPlanVersionAndCliDescriptionMatchW2a::test_cli_description_mentions_evidence_filter_or_3_stage",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPlanVersionAndCliDescriptionMatchW2a::test_plan_version_bumped_past_w1",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPlanVersionAndCliDescriptionMatchW2a::test_plan_version_reflects_correction_wave",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPromptCliOutput::test_cli_generate_default_off_and_no_network_no_db_write_and_outputs_13",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPromptCliOutput::test_cli_generate_default_off_and_no_network_no_db_write_and_outputs_18",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestPromptCliOutput::test_prompts_separate_world_and_spatial_and_spatial_builder_excludes_full_stage_a",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestRunMetaAndHtmlStatusHonesty::test_build_run_meta_carries_run_status_and_exit_code",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestRunMetaAndHtmlStatusHonesty::test_build_run_meta_defaults_to_dry_run_when_status_omitted",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestRunMetaAndHtmlStatusHonesty::test_html_dry_run_badge_appears_when_actually_dry_run",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestRunMetaAndHtmlStatusHonesty::test_html_first_paint_shows_validation_failed_warning",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestRunMetaAndHtmlStatusHonesty::test_run_meta_lists_quarantine_when_validation_failed",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestSchemaShape::test_minimal_brief_does_not_embed_full_world_context",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestSchemaShape::test_minimal_brief_evidence_ref_required_fields",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestSchemaShape::test_minimal_brief_schema_has_required_top_level_keys",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestSchemaShape::test_minimal_brief_visual_anchor_uses_base_plate_role_not_must_appear",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestSchemaShape::test_schemas_have_no_count_json_key",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestSchemaShape::test_world_brief_required_subfields",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestSchemaShape::test_world_brief_schema_has_required_top_level_keys",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestSourceBundleIntegrity::test_source_bundle_char_budget_estimate_present",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestSourceBundleIntegrity::test_source_bundle_each_source_has_ref_text_sha256_count",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestSourceBundleIntegrity::test_source_bundle_selected_shots_scoped_via_json_exact_equality",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2SimpleBriefContract::test_brief_html_first_paint_shows_brief_summary_before_raw_source",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2SimpleBriefContract::test_checker_does_not_judge_rule_semantics",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2SimpleBriefContract::test_evidence_filter_system_prompt_uses_constraint_language",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2SimpleBriefContract::test_evidence_filter_user_prompt_lists_allowed_basis_enum",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2SimpleBriefContract::test_plan_version_marks_w2_simple",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2SimpleBriefContract::test_run_meta_stages_advertise_background_continuity_brief",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2SimpleBriefContract::test_shot_conflict_check_requires_matching_shot_evidence",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2aFHtmlDownstreamFirst::test_cli_description_mentions_evidence_filter_or_3_stage",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2aFHtmlDownstreamFirst::test_html_first_paint_shows_refined_pack_before_raw_sourcebundle",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2aFHtmlDownstreamFirst::test_html_role_distribution_uses_generic_labels",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2aFRefinedPackContract::test_checker_does_not_judge_role_semantics",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2aFRefinedPackContract::test_checker_rejects_pack_with_legacy_pass_down_hint",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2aFRefinedPackContract::test_evidence_filter_system_prompt_forbids_image_commands_and_separates_master_state",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2aFRefinedPackContract::test_evidence_filter_user_prompt_lists_role_and_applies_to_enums",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2aFRefinedPackContract::test_legacy_keys_are_listed_in_module_constant",
  "tests/scripts/test_experiment_background_semantic_extractor.py::TestW2aFRefinedPackContract::test_role_and_applies_to_enums_are_generic",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestDerivedCameraAmbiguous::test_duplicate_derived_camera_family_no_arbitrary_selection",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestDerivedComboIdUnique::test_combo_ids_unique",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestEveryDecisionHasRuleTrace::test_every_shot_has_at_least_one_trace",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestHtmlOptionOutcomes::test_html_contains_option_outcomes_section",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestHtmlOptionOutcomes::test_html_shows_activate_outcome",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestHtmlOptionOutcomes::test_html_shows_choose_camera_variant_outcome",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestHtmlOptionOutcomes::test_html_shows_combo_outcome",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestHtmlOptionOutcomes::test_html_shows_impossible_topology_update_outcome",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestImpossibleWithoutTopologyUpdate::test_missing_master_unit_impossible",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestMultiCandidateWithNeedsDecisionFirst::test_multi_with_needs_decision_emits_choose_space_node",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestMultiSpaceWidePolicyBranch::test_unresolved_reason_multi_space_wide_policy_uses_distinct_decision_type",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestNeedsDecisionRoom::test_needs_decision_room_candidate_emits_activate_rollup",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestNoSampleSpecificLiteral::test_script_body_has_no_sample_literal",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestOptionOutcomes::test_active_room_option_resolves_to_master_in_outcome",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestOptionOutcomes::test_every_option_has_outcome_per_affected_shot",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestOptionOutcomes::test_needs_decision_option_signals_activate",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestOptionOutcomes::test_rollup_has_option_outcomes_field",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestOptionOutcomes::test_w2e_fixture_no_empty_option_outcome",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestRealW2eFixtureSmoke::test_load_w2e_artifacts",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestRealW2eFixtureSmoke::test_real_w2e_run_produces_decisions_for_all_shots",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestRequiresDerivedCombo::test_non_normal_non_default_camera_requires_combo",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestResolveToDerivedState::test_single_active_non_normal_resolves_derived_state",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestResolveToMaster::test_single_active_normal_default_camera_resolves_master",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestRollupAggregationByOptions::test_different_option_sets_do_not_merge",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestRollupCountBounded::test_rollup_distinct_le_5",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestStaticImportGuard::test_no_network_or_image_import",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestStaticImportGuard::test_no_production_app_import",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestStructuredCameraOptions::test_choose_camera_variant_options_have_structured_metadata",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestTwoIndependentActiveRooms::test_two_independent_rooms_needs_user_decision",
  "tests/scripts/test_experiment_background_spatial_decision.py::TestZoneBoundaryCollapse::test_zone_boundary_collapses_to_parent_room",
  "tests/scripts/test_experiment_background_topology_planner.py::TestAcceptanceMetric::test_acceptance_strict_only_for_sample_fixture_run",
  "tests/scripts/test_experiment_background_topology_planner.py::TestAcceptanceMetric::test_location_catalog_source_kind_present_for_sample_fixture",
  "tests/scripts/test_experiment_background_topology_planner.py::TestDiagnosticAndCliGuards::test_diagnostic_input_only_adds_existing_artifact_rows",
  "tests/scripts/test_experiment_background_topology_planner.py::TestDiagnosticAndCliGuards::test_dry_run_smoke_no_network",
  "tests/scripts/test_experiment_background_topology_planner.py::TestDiagnosticAndCliGuards::test_no_serve_flag_short_circuits_http_server",
  "tests/scripts/test_experiment_background_topology_planner.py::TestDiagnosticAndCliGuards::test_run_meta_contains_required_keys",
  "tests/scripts/test_experiment_background_topology_planner.py::TestEvidenceRowSchema::test_evidence_confidence_band_enum",
  "tests/scripts/test_experiment_background_topology_planner.py::TestEvidenceRowSchema::test_evidence_id_is_deterministic_sha256_prefix",
  "tests/scripts/test_experiment_background_topology_planner.py::TestEvidenceRowSchema::test_evidence_id_stable_under_extraction_order_shuffle",
  "tests/scripts/test_experiment_background_topology_planner.py::TestEvidenceRowSchema::test_evidence_id_unique_within_run",
  "tests/scripts/test_experiment_background_topology_planner.py::TestEvidenceRowSchema::test_evidence_row_required_fields",
  "tests/scripts/test_experiment_background_topology_planner.py::TestEvidenceRowSchema::test_evidence_source_kind_enum",
  "tests/scripts/test_experiment_background_topology_planner.py::TestEvidenceRowSchema::test_evidence_type_enum",
  "tests/scripts/test_experiment_background_topology_planner.py::TestEvidenceRowSchema::test_inference_basis_required_when_not_observed",
  "tests/scripts/test_experiment_background_topology_planner.py::TestEvidenceRowSchema::test_input_manifest_includes_per_source_hash_and_length",
  "tests/scripts/test_experiment_background_topology_planner.py::TestEvidenceRowSchema::test_source_span_kind_branch_fields_required",
  "tests/scripts/test_experiment_background_topology_planner.py::TestHtmlAndPlanText::test_index_html_declares_generic_scope_and_w1_only",
  "tests/scripts/test_experiment_background_topology_planner.py::TestHtmlAndPlanText::test_plan_md_declares_generic_scope_and_sample_fixture",
  "tests/scripts/test_experiment_background_topology_planner.py::TestSampleFixtureIsolation::test_collector_body_takes_ruleset_argument",
  "tests/scripts/test_experiment_background_topology_planner.py::TestSampleFixtureIsolation::test_fixture_swap_does_not_require_collector_edit",
  "tests/scripts/test_experiment_background_topology_planner.py::TestSampleFixtureIsolation::test_sample_fixture_constants_namespaced",
  "tests/scripts/test_experiment_background_topology_planner.py::TestSampleFixtureIsolation::test_scope_leakage_phrases_not_in_generic_rule_body",
  "tests/scripts/test_experiment_background_topology_planner.py::TestStaticImportGuards::test_script_does_not_call_db_write",
  "tests/scripts/test_experiment_background_topology_planner.py::TestStaticImportGuards::test_script_does_not_import_image_or_network",
  "tests/scripts/test_experiment_background_topology_planner.py::TestStaticImportGuards::test_script_does_not_import_production_pipeline",
  "tests/scripts/test_experiment_background_topology_planner.py::TestStaticImportGuards::test_script_does_not_import_sibling_experiments",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1ScopeGuard::test_w1_does_not_emit_topology_or_units",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1ScopeGuard::test_w1_emits_evidence_extraction_ruleset",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1bPatchInvariants::test_artifact_collector_inference_basis_excludes_pointer_and_term",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1bPatchInvariants::test_db_loaders_apply_deterministic_order_by",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1bPatchInvariants::test_dedup_merge_preserves_inference_basis_union",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1bPatchInvariants::test_inference_basis_excludes_match_term_substrings",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1bPatchInvariants::test_write_outputs_sorts_evidence_rows_by_evidence_id",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_html_contains_all_w1c_sections",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_html_first_data_section_is_w2_readiness_summary",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_html_warns_ambiguous_zero_means_no_classification",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_noisy_candidate_heuristic_flags_negation_with_match_term",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_noisy_excludes_structural_rows",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_noisy_heuristic_does_not_flag_bare_anbang",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_noisy_heuristic_flags_english_negation_with_word_boundary",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_w1c_copies_raw_artifacts_byte_identical_from_source_run",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_w1c_does_not_modify_source_run_raw_files",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_w1c_emits_readiness_report_json",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_w1c_run_meta_marks_review_mode",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_w2_readiness_dimensions_report_camera_weak_when_sparse",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1cReviewCockpit::test_w2_readiness_thresholds_loaded_from_spec",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1dPatchInvariants::test_state_model_conditional_when_noisy_rows_positive",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1dPatchInvariants::test_state_model_yes_only_when_noisy_zero_and_coverage_met",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1dPatchInvariants::test_topology_candidate_metric_keys_use_rows_for_boundary_and_door_window",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1eCollectorPatch::test_ascii_term_uses_word_boundary",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1eCollectorPatch::test_html_display_dedups_repeated_quotes_in_grouped_evidence",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1eCollectorPatch::test_html_display_dedups_repeated_quotes_in_top_source_quotes",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1eCollectorPatch::test_html_noisy_section_warns_broad_candidates",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1eCollectorPatch::test_korean_1char_term_blocks_substring_in_other_words",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1eCollectorPatch::test_korean_1char_term_matches_when_word_boundary_clean",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1eCollectorPatch::test_lexicon_keeps_핏자국_as_state_hint",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1eCollectorPatch::test_lexicon_reclassifies_시신_to_entity_layout_hint",
  "tests/scripts/test_experiment_background_topology_planner.py::TestW1eCollectorPatch::test_main_passes_location_short_id_to_load_selected_shots",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14_bg_to_fp_references_resolvable_layout_only_only",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14_candidate_fp_coverage_and_payload_shape",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14_contract_header_carries_no_hardcoded_marker_examples",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14_html_first_screen_and_methodology_grep",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14_inputs_present_and_layout_only_bg_coverage",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14_model_and_no_image_api_guards",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14_numbered_marker_contract_appendix_structural",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14_production_and_image_api_guards",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14_topology_contract_invariant_strict_when_brief_provided",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14_topology_rendering_contract_appendix_structural",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14f_fixture_compression_and_do_not_divider_summary",
  "tests/scripts/test_experiment_candidate_floor_plan_render_slice.py::test_w14g_must_show_marker_summary_and_assembled_order",
  "tests/scripts/test_experiment_floor_plan_base_layout_image_smoke_slice.py::test_w18b_dry_run_makes_no_api_call_and_writes_no_png",
  "tests/scripts/test_experiment_floor_plan_base_layout_image_smoke_slice.py::test_w18b_generate_uses_monkeypatched_caller_exactly_once",
  "tests/scripts/test_experiment_floor_plan_base_layout_image_smoke_slice.py::test_w18b_methodology_grep_no_scenario_specific_static_tokens",
  "tests/scripts/test_experiment_floor_plan_base_layout_prompt_slice.py::test_w18a_base_prompt_no_overlay_markers_and_overlay_covers_excluded",
  "tests/scripts/test_experiment_floor_plan_base_layout_prompt_slice.py::test_w18a_partition_coverage_included_plus_excluded_equals_candidate",
  "tests/scripts/test_experiment_floor_plan_base_layout_prompt_slice.py::test_w18a_production_image_vlm_guard_and_methodology_grep",
  "tests/scripts/test_experiment_floor_plan_base_layout_vlm_readback_slice.py::test_w18c_dry_run_makes_no_vlm_call_and_writes_placeholder",
  "tests/scripts/test_experiment_floor_plan_base_layout_vlm_readback_slice.py::test_w18c_methodology_grep_no_scenario_specific_static_tokens",
  "tests/scripts/test_experiment_floor_plan_base_layout_vlm_readback_slice.py::test_w18c_partition_invariant_passes_on_good_output_and_fails_on_missing",
  "tests/scripts/test_experiment_floor_plan_bg_to_fp_region_ref_slice.py::test_w18d_happy_path_join_shape_and_coverage",
  "tests/scripts/test_experiment_floor_plan_bg_to_fp_region_ref_slice.py::test_w18d_missing_bg_or_unresolved_base_marker_fails_invariants",
  "tests/scripts/test_experiment_floor_plan_bg_to_fp_region_ref_slice.py::test_w18d_production_api_zero_guard_and_methodology_grep",
  "tests/scripts/test_experiment_floor_plan_downstream_payload_preview_slice.py::test_w17e_full_coverage_and_guard_level_shape",
  "tests/scripts/test_experiment_floor_plan_downstream_payload_preview_slice.py::test_w17e_methodology_grep_and_production_guard",
  "tests/scripts/test_experiment_floor_plan_downstream_payload_preview_slice.py::test_w17e_synthetic_missing_or_conflict_escalates_to_blocking",
  "tests/scripts/test_experiment_floor_plan_generation_slice.py::test_w12_camera_axis_resolves_split_by_source",
  "tests/scripts/test_experiment_floor_plan_generation_slice.py::test_w12_candidate_camera_recs_cover_all_current_bgs",
  "tests/scripts/test_experiment_floor_plan_generation_slice.py::test_w12_html_section_order_and_first_screen_priority",
  "tests/scripts/test_experiment_floor_plan_generation_slice.py::test_w12_use_and_ignore_disjoint_invariant",
  "tests/scripts/test_experiment_floor_plan_generation_slice.py::test_w12_use_numbered_elements_subset_invariant",
  "tests/scripts/test_experiment_floor_plan_grid_layout_model_compare_slice.py::test_w16c_compat_report_uses_gemini_model_invariant",
  "tests/scripts/test_experiment_floor_plan_grid_layout_model_compare_slice.py::test_w16c_exact_model_guard_blocks_other_gemini_ids",
  "tests/scripts/test_experiment_floor_plan_grid_layout_model_compare_slice.py::test_w16c_gemini_routing_fail_closed_and_no_retry",
  "tests/scripts/test_experiment_floor_plan_grid_layout_model_compare_slice.py::test_w16c_svg_well_formed_invariant_blocks_invalid_xml",
  "tests/scripts/test_experiment_floor_plan_grid_layout_model_compare_slice.py::test_w16c_target_fp_only_fp_l05_01_and_production_guard",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_adjacency_checker_positive_and_negative",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_door_adjacency_requires_axis_overlap",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_dry_run_no_image_api_and_production_guard",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_fixture_number_and_unit_validation",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_gpt_5_5_routing_fail_closed",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_grid_bounds_and_unit_id_validation",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_llm_call_no_auto_retry_by_default",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_methodology_grep_no_scenario_specific_literals",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_model_invariant_records_gpt_5_5_when_generated",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_svg_invariant_blocks_invalid_xml",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16_svg_render_emits_labels",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16d_fixture_cells_inside_declared_unit_rects",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16d_private_room_primary_zone_disallowed",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16d_scale_hint_cell_budget_enforced",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16d_total_occupied_cells_in_bound",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16d_unit_rects_do_not_overlap",
  "tests/scripts/test_experiment_floor_plan_grid_layout_slice.py::test_w16e_unit_kind_scale_hint_compatibility",
  "tests/scripts/test_experiment_floor_plan_image_composition_prompt_slice.py::test_w17f_composition_covers_units_relationships_markers",
  "tests/scripts/test_experiment_floor_plan_image_composition_prompt_slice.py::test_w17f_methodology_grep_and_production_guard",
  "tests/scripts/test_experiment_floor_plan_image_composition_prompt_slice.py::test_w17f_required_generic_rule_tokens_and_no_grid_coordinates",
  "tests/scripts/test_experiment_floor_plan_image_prompt_slice.py::test_w17a_legend_enum_validation_kind_and_encoding",
  "tests/scripts/test_experiment_floor_plan_image_prompt_slice.py::test_w17a_marker_legend_unique_and_covers_candidate_numbers",
  "tests/scripts/test_experiment_floor_plan_image_prompt_slice.py::test_w17a_methodology_grep_no_scenario_specific_static_tokens",
  "tests/scripts/test_experiment_floor_plan_image_prompt_slice.py::test_w17a_production_image_guard_and_target_restriction",
  "tests/scripts/test_experiment_floor_plan_image_prompt_slice.py::test_w17a_prompt_contains_every_marker_number_and_contract",
  "tests/scripts/test_experiment_floor_plan_image_smoke_slice.py::test_w17b2_dry_run_artifact_carries_marker_mapping_block",
  "tests/scripts/test_experiment_floor_plan_image_smoke_slice.py::test_w17b_dry_run_makes_no_api_call_and_writes_no_png",
  "tests/scripts/test_experiment_floor_plan_image_smoke_slice.py::test_w17b_generate_uses_monkeypatched_caller_once",
  "tests/scripts/test_experiment_floor_plan_image_smoke_slice.py::test_w17b_methodology_grep_no_scenario_specific_static_tokens",
  "tests/scripts/test_experiment_floor_plan_readback_synthesis_slice.py::test_w17d_methodology_grep_no_scenario_specific_static_tokens",
  "tests/scripts/test_experiment_floor_plan_readback_synthesis_slice.py::test_w17d_mismatch_report_surfaces_unit_disagreement",
  "tests/scripts/test_experiment_floor_plan_readback_synthesis_slice.py::test_w17d_synthesis_shape_and_marker_partition",
  "tests/scripts/test_experiment_floor_plan_topology_slice.py::test_w15_consistency_audit_4_sub_checks",
  "tests/scripts/test_experiment_floor_plan_topology_slice.py::test_w15_evidence_refs_resolver_accepts_valid_and_rejects_invalid",
  "tests/scripts/test_experiment_floor_plan_topology_slice.py::test_w15_html_section_order_and_methodology_grep",
  "tests/scripts/test_experiment_floor_plan_topology_slice.py::test_w15_no_image_api_call_and_production_guard",
  "tests/scripts/test_experiment_floor_plan_topology_slice.py::test_w15_non_target_fp_copy_through_unchanged",
  "tests/scripts/test_experiment_floor_plan_topology_slice.py::test_w15_source_evidence_bundle_collects_target_only",
  "tests/scripts/test_experiment_floor_plan_topology_slice.py::test_w15_target_bg_coverage_in_bindings",
  "tests/scripts/test_experiment_floor_plan_topology_slice.py::test_w15e_element_placement_and_unit_scale_audit_invariant",
  "tests/scripts/test_experiment_floor_plan_vlm_readback_slice.py::test_w17c_dry_run_makes_no_api_call_and_writes_no_readback",
  "tests/scripts/test_experiment_floor_plan_vlm_readback_slice.py::test_w17c_methodology_grep_no_scenario_specific_static_tokens",
  "tests/scripts/test_experiment_floor_plan_vlm_readback_slice.py::test_w17c_schema_shape_validation",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_build_gemini_prompt_empty_inputs",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_build_gemini_prompt_no_format_keyerror",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_call_gemini_returns_failed_without_api_key",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_comparison_returns_empty_when_base_run_missing",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_copy_base_plate_assets_copies_png_and_json",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_copy_base_plate_assets_none_for_missing_base",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_evidence_field_hint_resolved",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_evidence_hits_sub_space_keywords",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_evidence_multiple_sources_separate_rows",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_evidence_quote_window_contains_keyword",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_gemini_call_uses_jsonschema_validate",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_gemini_instruction_evidence_only_directive",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_gemini_instruction_no_truncation_directive",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_html_img_src_uses_local_assets_path",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_jsonl_append_does_not_carry_api_key",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_luxury_cue_list_has_candidates",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_render_html_contains_expected_sections",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_render_html_quote_limit_applied",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_rooftop_bible_schema_required_fields",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_severity_enum_three_levels",
  "tests/scripts/test_experiment_rooftop_source_grounding.py::test_source_bundle_dataclass_defaults",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_assign_camera_slot_manual_review_yields_fallback",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_assign_camera_slot_unknown_sub_space",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_base_prompt_has_no_metric_units",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_camera_slot_pool_has_no_metric_units",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_estimate_cost_basic_math",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_find_free_port_returns_int_or_none",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_lvm_instruction_template_no_metric_units",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_parse_stages_default_string",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_parse_stages_empty_falls_back_to_plan",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_parse_stages_rejects_unknown",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_realized_spatial_card_schema_has_required_fields",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_s12_s14_wall_red_circle_yields_vandalized",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_s12_s6_bedroom_corpse_marks_night",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_s14_s4_cleaned_overrides_corpse_marks",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_s14_s9_ambiguous_should_be_manual_review",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_s18_s5_corpse_negation_yields_non_corpse_state",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_s18_s9_bathroom_morning",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_s25_s7_bedroom_dusk_vandalized",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_s27_s1_living_room_text_overrides_summary_room_mention",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_s27_s4_living_room_text_overrides_summary",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_s5_s2_main_room_normal_morning",
  "tests/scripts/test_experiment_rooftop_spatial_bg.py::test_valid_stages_set_includes_all_documented",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_base_plate_plan_excludes_rejected_slots",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_base_plate_plan_recommends_count_with_reason",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_bedroom_slot_splits_suriyeong_vs_minsook",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_camera_slot_role_enum",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_camera_slots_cluster_known_cases",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_confidence_majority_mixed_picks_mode_not_weakest",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_confidence_majority_tie_picks_weakest",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_constants_enum_lengths",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_design_inference_applies_to_nodes_filled",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_design_inference_card_includes_required_cues_as_direct",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_design_inference_source_evidence_ids_filled",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_forbidden_drift_card_includes_bible_and_deterministic",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_identity_card_majority_confidence",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_load_source_evidence_assigns_ev_id",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_load_source_evidence_handles_missing_file",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_must_show_plate_scoped_not_globally_copied",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_payload_camera_slot_id_matches_slot_plan",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_payload_eligible_main_room_gets_base_plate",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_payload_i2i_dict_keys",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_payload_rejected_slot_has_empty_base_plate",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_payload_resolved_bedroom_gets_base_plate",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_render_html_contains_7_sections",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_render_html_inline_assets_when_copied",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_shot_payload_contains_visible_entities_and_placeholder_enum",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_shot_payload_zone_enum",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_slot_id_helper_single_source",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_state_overlay_card_4_states",
  "tests/scripts/test_experiment_rooftop_spatial_pipeline_plan.py::test_topology_card_includes_bible_sub_spaces_and_external_nodes",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestBasePlateClusterInvariants::test_derived_must_reference_master",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestBasePlateClusterInvariants::test_minsook_bedroom_cluster_inactive_when_needs_decision",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestBasePlateClusterInvariants::test_no_cluster_without_master",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestBlockingGapCountSemantics::test_run_meta_has_breakdown_fields",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestCameraFraming::test_mirror_face_resolves_bathroom_mirror_close",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestCameraFraming::test_no_match_returns_none",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestCameraFraming::test_table_seated_resolves_main_room_table_close",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestCameraFraming::test_wide_doorway_resolves_doorway_wide",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestClusterBindingMutation::test_resolved_shot_receives_binding_after_clustering",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestDesignItemCategoryNarrow::test_actual_window_cue_still_window",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestDesignItemCategoryNarrow::test_keoteun_furniture_category",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestDesignItemCategoryNarrow::test_seokchangpo_not_categorized_as_window",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestEvidencePointerSnippet::test_pointer_quote_is_shot_snippet_not_bare_keyword",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestEvidencePointerSnippet::test_pointer_quote_source_distinguishes_shot_vs_summary",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_invalid_combinations_rejected[active-needs_decision]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_invalid_combinations_rejected[active-out_of_scope]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_invalid_combinations_rejected[inactive-contained_region]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_invalid_combinations_rejected[inactive-master_candidate]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_invalid_combinations_rejected[needs_decision-master_candidate]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_invalid_combinations_rejected[needs_decision-out_of_scope]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_unknown_active_status_rejected",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_unknown_plate_policy_rejected",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_valid_combinations_accepted[active-boundary_opening]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_valid_combinations_accepted[active-contained_region]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_valid_combinations_accepted[active-master_candidate]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_valid_combinations_accepted[inactive-out_of_scope]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG1ValidateNode::test_valid_combinations_accepted[needs_decision-needs_decision]",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG2EvidenceLookup::test_keyword_match_returns_resolved",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG2EvidenceLookup::test_no_match_emits_missing_entry",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG2EvidenceLookup::test_resolved_entries_have_ev_source_offset_format",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG3SnapshotHash::test_hash_changes_with_content",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG3SnapshotHash::test_hash_independent_of_input_order",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG3SnapshotHash::test_hash_independent_of_visible_short_ids_order",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG3SnapshotHash::test_hash_whitespace_collapse",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG4KeywordWhitelist::test_anbang_resolves_minsook_room",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG4KeywordWhitelist::test_bang_alone_does_not_resolve_anything",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG4KeywordWhitelist::test_geosil_resolves_living_room",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG4KeywordWhitelist::test_jubang_does_not_resolve_room_node",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG4KeywordWhitelist::test_multi_direct_conflict_returns_needs_manual",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG4KeywordWhitelist::test_no_fuzzy_no_stemming",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG4KeywordWhitelist::test_suryeong_room_variants_all_resolve",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG4KeywordWhitelist::test_yoksil_resolves_bathroom",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG5GapLedgerNaming::test_gap_camera_naming_pattern",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG5GapLedgerNaming::test_gap_room_naming_pattern",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestG5GapLedgerNaming::test_shot_scope_has_single_shot_id_string",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestHtmlDecisionSections::test_html_design_section_has_cluster_mapping",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestHtmlDecisionSections::test_html_has_derived_bucket_section",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestHtmlDecisionSections::test_html_has_open_questions_section",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestHtmlDecisionSections::test_html_has_reference_thumbnails_section_marker",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestHtmlDecisionSections::test_html_has_shot_candidate_section",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestHtmlDecisionSections::test_html_has_shot_evidence_section",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestRoomConflictPolicy::test_eomma_and_bed_only_weak_evidence",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestRoomConflictPolicy::test_single_direct_resolves",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestRoomConflictPolicy::test_suryeong_and_minsook_simultaneous_with_no_direct_keyword",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestSetTopologyLockInvariants::test_all_nodes_pass_validate",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestSetTopologyLockInvariants::test_entry_is_boundary_opening",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestSetTopologyLockInvariants::test_kitchen_region_contained_in_living_room",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestSetTopologyLockInvariants::test_minsook_bedroom_default_needs_decision",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestSetTopologyLockInvariants::test_rooftop_outer_is_out_of_scope",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestSetTopologyLockInvariants::test_source_hashes_attached",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestShotSpatialResolutionInvariants::test_candidate_interpretations_strength_enum",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestShotSpatialResolutionInvariants::test_evidence_pointer_relations_strict_enum",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestShotSpatialResolutionInvariants::test_needs_camera_anchor_has_two_plus_candidates",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestShotSpatialResolutionInvariants::test_needs_manual_room_has_two_plus_candidates",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestShotSpatialResolutionInvariants::test_resolved_shot_has_binding",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestShotSpatialResolutionInvariants::test_unresolved_shot_has_null_binding",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestSourceHashes::test_source_hashes_include_three_fields",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestStateOverlayNegation::test_cleaned_overrides_corpse_keyword",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestStateOverlayNegation::test_real_corpse_still_resolves",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestStateOverlayNegation::test_red_circle_vision_not_empty_due_to_summary",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestStateOverlayNegation::test_shichin_eobsi_does_not_trigger_corpse",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestStateOverlayNegation::test_shichini_eobsneun_does_not_trigger_corpse",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestStaticImportGuards::test_script_does_not_import_build_shot_plans",
  "tests/scripts/test_experiment_rooftop_spatial_resolution_plan.py::TestStaticImportGuards::test_script_does_not_import_image_apis",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_both_gates_real_api_resolver_fail_closed",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_both_gates_real_api_resolver_failure_writes_blocked_artifact",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_both_gates_with_fake_resolvers_executes_full_chain",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_dry_run_real_smoke_readiness_blockers_chain_bg_mismatch",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_dry_run_smoke_default_target_api_counters_zero",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_dry_run_surfaces_real_api_gate_disabled_default_and_caps",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_dry_run_surfaces_w19g_preflight_audit_and_readiness",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_env_only_keeps_real_api_off_disabled_flag_only",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_flag_only_keeps_real_api_off_disabled_env_only",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_generate_clean_fake_seam_chain_exact_counts",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_generate_default_seam_raises_first_seam_only",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_generate_dirty_production_diff_fails_before_seam_calls",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_generate_stub_raises",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_generate_unmatched_chain_bg_fails_before_seam_calls",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_generate_via_production_wrappers_with_injected_fakes",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_hard_cap_breach_aborts_before_seam_overrun",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_production_diff_false_does_not_fail_dry_run",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_retry_helper_semantics_one_attempt_only",
  "tests/scripts/test_experiment_w19e_production_opt_in_single_fp_smoke.py::test_script_has_no_db_or_image_asset_write_surface",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestCompletedEmptyAuthoritative::test_entity_completed_empty_runs_cleanup",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestCompletedEmptyAuthoritative::test_relation_completed_no_data_no_keyerror",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestCompletedEmptyAuthoritative::test_scene_still_loader_completed_no_data_no_keyerror",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestEntitySyncPartialCleanupGuard::test_completed_runs_stale_link_cleanup",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestEntitySyncPartialCleanupGuard::test_partial_skips_stale_link_cleanup",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestEntitySyncPartialPolicy::test_partial_empty_data_skips",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestEntitySyncPartialPolicy::test_partial_with_data_proceeds",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_completed_with_data",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_completed_with_data_not_dict_still_authoritative",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_completed_with_empty_data",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_completed_with_empty_data_authoritative",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_completed_with_no_data_field_authoritative",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_completed_with_no_data_keys_authoritative",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_data_not_dict",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_empty_cp",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_error",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_failed_status",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_keys_not_in_data",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_multiple_keys_all_empty",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_multiple_keys_any_match",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_no_cp",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_no_data_field",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_no_status_field",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_non_list_data_value",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_outlooks_key",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_partial_data_not_dict",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_partial_keys_not_in_data",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_partial_no_data_field",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_partial_non_list_data_value",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_partial_with_data",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_partial_with_empty_data",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_relations_key",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_running",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_stale_status",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestIsCpSyncable::test_status_none",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestOutlookSyncPartialCleanupGuard::test_partial_skips_orphan_cleanup",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestOutlookSyncPartialPolicy::test_partial_empty_outlooks_falls_back_to_legacy",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestOutlookSyncPartialPolicy::test_partial_with_outlooks_proceeds",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestRelationSyncPartialCleanupGuard::test_completed_empty_relations_proceeds_to_cleanup",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestRelationSyncPartialCleanupGuard::test_completed_runs_stale_relation_delete",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestRelationSyncPartialCleanupGuard::test_partial_skips_stale_relation_delete",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestRelationSyncPartialPolicy::test_partial_empty_relations_skips",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestRelationSyncPartialPolicy::test_partial_with_relations_proceeds",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestSceneStillLoaderPartialFlag::test_completed_sets_sd_partial_false",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestSceneStillLoaderPartialFlag::test_partial_sets_sd_partial_true",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestSceneStillLoaderPartialPolicy::test_partial_empty_scenes_sd_completed_false",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestSceneStillLoaderPartialPolicy::test_partial_with_scenes_sd_completed_true",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestSceneStillSyncPartialCleanupGuard::test_completed_scene_detail_runs_stale_marking",
  "tests/services/checkpoint_sync/test_partial_sync_policy.py::TestSceneStillSyncPartialCleanupGuard::test_partial_scene_detail_skips_stale_marking",
  "tests/services/image_capture/test_acceptance_sql.py::test_clean_project_all_pass",
  "tests/services/image_capture/test_acceptance_sql.py::test_violations_caught",
  "tests/services/image_capture/test_annotate.py::test_does_not_touch_is_intermediate_or_asset_type",
  "tests/services/image_capture/test_annotate.py::test_explicit_stage_overrides",
  "tests/services/image_capture/test_annotate.py::test_generation_call_id_set",
  "tests/services/image_capture/test_annotate.py::test_input_image_ids_uuid_only_json_and_cleans_empty",
  "tests/services/image_capture/test_annotate.py::test_metadata_merges_with_existing",
  "tests/services/image_capture/test_annotate.py::test_none_input_leaves_unset_but_empty_list_records_known_no_input",
  "tests/services/image_capture/test_annotate.py::test_sets_role_and_stage_defaults_to_role",
  "tests/services/image_capture/test_b1_regeneration_loser.py::test_loser_captured_as_rejected_intermediate",
  "tests/services/image_capture/test_b1_regeneration_loser.py::test_no_capture_without_loser_bytes",
  "tests/services/image_capture/test_b1_regeneration_loser.py::test_no_capture_without_project_id",
  "tests/services/image_capture/test_capture_disabled_scope.py::test_capture_off_context_still_carries_identity",
  "tests/services/image_capture/test_capture_disabled_scope.py::test_capture_off_queue_stays_empty",
  "tests/services/image_capture/test_capture_disabled_scope.py::test_capture_on_is_unchanged",
  "tests/services/image_capture/test_context.py::test_bind_context_propagates_to_thread",
  "tests/services/image_capture/test_context.py::test_default_context_is_none",
  "tests/services/image_capture/test_context.py::test_generation_context_is_frozen",
  "tests/services/image_capture/test_context.py::test_scope_carries_optional_kwargs",
  "tests/services/image_capture/test_context.py::test_scope_resets_on_exception",
  "tests/services/image_capture/test_context.py::test_scope_sets_and_resets_context",
  "tests/services/image_capture/test_context_propagation.py::test_bind_captures_parent_context_into_worker_thread",
  "tests/services/image_capture/test_context_propagation.py::test_bind_no_op_without_context",
  "tests/services/image_capture/test_context_propagation.py::test_bind_propagates_through_thread_pool",
  "tests/services/image_capture/test_context_propagation.py::test_capture_queue_concurrent_append_no_loss",
  "tests/services/image_capture/test_fal_capture.py::test_fal_captures_result_inside_scope",
  "tests/services/image_capture/test_fal_capture.py::test_fal_no_capture_outside_scope",
  "tests/services/image_capture/test_gemini_capture.py::test_gemini_captures_inside_scope_with_call_id",
  "tests/services/image_capture/test_gemini_capture.py::test_gemini_labels_not_in_input_image_ids",
  "tests/services/image_capture/test_gemini_capture.py::test_gemini_no_capture_outside_scope_duplicate_zero",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_background_edit_multi_callargs_fp_then_prior",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_background_edit_single_callargs",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_background_generate_callargs",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_chain_edit_multi_callargs_in_order",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_chain_edit_single_callargs",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_chain_generate_callargs",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_floor_plan_edit_multi_callargs_in_order",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_floor_plan_edit_single_callargs",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_floor_plan_generate_callargs",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_location_fp_generate_callargs",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_location_fp_multi_ref_in_order",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_location_fp_single_ref_uses_list",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_space_set_edit_callargs_single_handle",
  "tests/services/image_capture/test_gpt_callsite_callargs.py::test_space_set_generate_callargs_no_quality",
  "tests/services/image_capture/test_gpt_callsite_guard.py::test_no_direct_image_calls_outside_wrapper",
  "tests/services/image_capture/test_gpt_callsite_guard.py::test_png_metadata_inplace_resave_has_no_capture",
  "tests/services/image_capture/test_gpt_callsite_guard.py::test_wrapper_module_is_the_single_call_site",
  "tests/services/image_capture/test_gpt_image_primitive.py::test_captures_inside_scope_once_with_metadata",
  "tests/services/image_capture/test_gpt_image_primitive.py::test_edit_mode_without_refs_raises_value_error",
  "tests/services/image_capture/test_gpt_image_primitive.py::test_edit_multi_passes_list_in_order",
  "tests/services/image_capture/test_gpt_image_primitive.py::test_edit_single_as_list_when_flag_set",
  "tests/services/image_capture/test_gpt_image_primitive.py::test_edit_single_passes_single_handle_not_list",
  "tests/services/image_capture/test_gpt_image_primitive.py::test_empty_response_returns_empty_bytes_no_raise",
  "tests/services/image_capture/test_gpt_image_primitive.py::test_generate_mode_calls_generate_with_passthrough_kwargs",
  "tests/services/image_capture/test_gpt_image_primitive.py::test_min_size_guard_skips_capture_but_returns_small_bytes",
  "tests/services/image_capture/test_gpt_image_primitive.py::test_no_capture_outside_scope_but_returns_bytes",
  "tests/services/image_capture/test_i2i_capture.py::test_camera_diagram_capture_artifact_inside_scope",
  "tests/services/image_capture/test_i2i_capture.py::test_camera_diagram_no_capture_outside_scope",
  "tests/services/image_capture/test_i2i_capture.py::test_i2i_generate_content_captures_inside_scope",
  "tests/services/image_capture/test_i2i_capture.py::test_i2i_no_capture_outside_scope",
  "tests/services/image_capture/test_integration.py::test_no_scope_capture_creates_zero_rows",
  "tests/services/image_capture/test_integration.py::test_scope_capture_persists_intermediate_with_lineage",
  "tests/services/image_capture/test_open_scope_e2e.py::test_open_scope_producer_creates_one_intermediate_row",
  "tests/services/image_capture/test_phase_c_c0.py::test_floor_plan_image_default_input_image_ids_none",
  "tests/services/image_capture/test_phase_c_c0.py::test_floor_plan_image_fixed_budget_meta_wins_over_caller_extra",
  "tests/services/image_capture/test_phase_c_c0.py::test_floor_plan_image_threads_input_image_ids",
  "tests/services/image_capture/test_phase_c_c0.py::test_flush_folds_scene_index_merging_with_existing_metadata",
  "tests/services/image_capture/test_phase_c_c0.py::test_flush_folds_scene_index_when_no_site_metadata",
  "tests/services/image_capture/test_phase_c_c0.py::test_flush_scene_index_fold_is_non_overwrite",
  "tests/services/image_capture/test_phase_c_c0.py::test_flush_scene_index_none_preserves_existing_behavior",
  "tests/services/image_capture/test_phase_c_c0.py::test_primitive_capture_input_image_ids_default_none_byte_identical",
  "tests/services/image_capture/test_phase_c_c0.py::test_primitive_capture_input_image_ids_threads_to_capture",
  "tests/services/image_capture/test_phase_c_c1.py::test_crop_capture_without_source_asset_id_is_non_blocking",
  "tests/services/image_capture/test_phase_c_c1.py::test_crop_captured_inside_scope_with_source_lineage",
  "tests/services/image_capture/test_phase_c_c1.py::test_load_source_primary_bytes_returns_bytes_and_asset_id",
  "tests/services/image_capture/test_phase_c_c2.py::test_cache_hit_does_not_recapture_guide",
  "tests/services/image_capture/test_phase_c_c2.py::test_guide_and_underlay_captured_with_correct_roles",
  "tests/services/image_capture/test_phase_c_c2.py::test_no_capture_outside_scope_byte_identical",
  "tests/services/image_capture/test_phase_c_c3.py::test_aerial_base_role_and_metadata",
  "tests/services/image_capture/test_phase_c_c3.py::test_camera_guide_with_blocking_captures_both_stages",
  "tests/services/image_capture/test_phase_c_c3.py::test_camera_guide_without_blocking_sketch_parent_is_base",
  "tests/services/image_capture/test_phase_c_c3.py::test_provider_no_capture_outside_scope_byte_identical",
  "tests/services/image_capture/test_pil_artifacts_capture.py::test_b4_i2i_edit_output_not_captured_in_diagram_only_scope",
  "tests/services/image_capture/test_pil_artifacts_capture.py::test_camera_diagram_capture_inside_scope",
  "tests/services/image_capture/test_pil_artifacts_capture.py::test_camera_diagram_no_capture_outside_scope",
  "tests/services/image_capture/test_pil_artifacts_capture.py::test_dwelling_zone_annotate_capture_inside_scope",
  "tests/services/image_capture/test_pil_artifacts_capture.py::test_registered_underlay_capture_inside_scope",
  "tests/services/image_capture/test_pil_artifacts_capture.py::test_registered_underlay_no_capture_outside_scope",
  "tests/services/image_capture/test_pil_artifacts_capture.py::test_space_set_marked_fp_capture_inside_scope",
  "tests/services/image_capture/test_pil_artifacts_capture.py::test_space_set_marked_fp_no_capture_outside_scope",
  "tests/services/image_capture/test_queue.py::test_flush_calls_register_models",
  "tests/services/image_capture/test_queue.py::test_flush_db_error_is_non_fatal",
  "tests/services/image_capture/test_queue.py::test_flush_disposition_defaults_none",
  "tests/services/image_capture/test_queue.py::test_flush_inserts_intermediate_row_and_renames",
  "tests/services/image_capture/test_queue.py::test_flush_persists_disposition_and_attempt_index",
  "tests/services/image_capture/test_queue.py::test_flush_twice_is_idempotent_empty",
  "tests/services/image_capture/test_queue.py::test_safe_segment_blocks_path_traversal",
  "tests/services/image_capture/test_shot_trace_scope.py::test_disabled_opens_nothing",
  "tests/services/image_capture/test_shot_trace_scope.py::test_nested_shot_scope_wins",
  "tests/services/image_capture/test_shot_trace_scope.py::test_scope_without_still_id_uses_stage",
  "tests/services/image_capture/test_shot_trace_scope.py::test_shot_scope_opens_named_trace",
  "tests/services/image_capture/test_sink.py::test_capture_artifact_same_path",
  "tests/services/image_capture/test_sink.py::test_capture_failure_is_non_fatal",
  "tests/services/image_capture/test_sink.py::test_capture_inside_scope_spools_and_appends",
  "tests/services/image_capture/test_sink.py::test_capture_outside_scope_skips_and_counts",
  "tests/services/image_capture/test_spool.py::test_write_spool_creates_file_with_bytes",
  "tests/services/image_capture/test_spool.py::test_write_spool_unique_paths",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_attach_appends_with_structural_metadata",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_attach_flag_off_noop",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_attach_non_member_noop",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_attach_replaces_existing_prev_shot_ref",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_attach_unresolved_anchor_diag",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_attach_zoom_conflict_noop",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_collect_preserves_prev_frame_structural_keys",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_plan_multi_group_first_gid_wins_and_unsorted_input",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_plan_nearest_preceding_env_and_env_chain",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_plan_no_env_member_empty",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_plan_star_to_environment_basic",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_render_continuity_role_variant",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_render_immobilized_prev_frame_no_guide",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_render_immobilized_prev_frame_with_guide_alignment",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_resolve_prev_frame_no_still_id_reason",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_resolve_prev_frame_non_target_passthrough",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_resolve_prev_frame_primary_found",
  "tests/services/test_a5_immobilized_prev_frame_chain.py::test_resolve_prev_frame_primary_missing_kept_unresolved",
  "tests/services/test_ab_branch_judge_matches_roll_count.py::test_each_ab_branch_gets_a_judge_built_for_its_own_roll_count",
  "tests/services/test_analysis_dispatch_image_cap.py::test_dispatch_image_under_legacy_no_cap_passes_through_with_no_budget",
  "tests/services/test_analysis_dispatch_image_cap.py::test_dispatch_image_under_shot_aware_with_approval_submits_budget",
  "tests/services/test_analysis_dispatch_image_cap.py::test_dispatch_image_under_shot_aware_without_approval_raises_before_submit",
  "tests/services/test_analysis_dispatch_image_cap.py::test_gate_applies_to_category_all_under_shot_aware_plan",
  "tests/services/test_analysis_dispatch_image_cap.py::test_gate_fails_closed_when_shot_aware_image_with_zero_cap",
  "tests/services/test_analysis_dispatch_image_cap.py::test_gate_fails_closed_when_shot_aware_image_without_approval",
  "tests/services/test_analysis_dispatch_image_cap.py::test_gate_fails_closed_when_shot_aware_image_without_cap",
  "tests/services/test_analysis_dispatch_image_cap.py::test_gate_returns_budget_when_caller_opts_in_on_legacy",
  "tests/services/test_analysis_dispatch_image_cap.py::test_gate_returns_budget_when_shot_aware_image_fully_approved",
  "tests/services/test_analysis_dispatch_image_cap.py::test_gate_returns_none_for_analysis_category",
  "tests/services/test_analysis_dispatch_image_cap.py::test_gate_returns_none_for_legacy_image_without_cap",
  "tests/services/test_analysis_dispatch_image_cap.py::test_run_steps_batch_installs_and_uninstalls_budget",
  "tests/services/test_analysis_dispatch_image_cap.py::test_run_steps_batch_uninstalls_budget_even_on_failure",
  "tests/services/test_analysis_dispatch_image_cap.py::test_run_steps_batch_without_budget_leaves_global_state_clean",
  "tests/services/test_analysis_dispatch_service.py::test_dispatch_category_run_and_reanalysis_block_each_other",
  "tests/services/test_analysis_dispatch_service.py::test_dispatch_category_run_image_force_fails_with_cascade_guidance",
  "tests/services/test_analysis_dispatch_service.py::test_dispatch_category_run_job_key_conflict_raises",
  "tests/services/test_analysis_dispatch_service.py::test_dispatch_category_run_raises_when_already_running",
  "tests/services/test_analysis_dispatch_service.py::test_dispatch_category_run_submits_job_and_returns_job_key",
  "tests/services/test_analysis_dispatch_service.py::test_dispatch_scene_reanalysis_uses_force_mode",
  "tests/services/test_analysis_dispatch_service.py::test_get_step_runner_raises_for_unknown_step_id",
  "tests/services/test_analysis_dispatch_service.py::test_get_step_runner_returns_instance_for_valid_step_id",
  "tests/services/test_analysis_dispatch_service.py::test_load_project_llm_config_parses_valid_json",
  "tests/services/test_analysis_dispatch_service.py::test_load_project_llm_config_returns_empty_on_corrupt_json",
  "tests/services/test_analysis_dispatch_service.py::test_load_project_llm_config_returns_empty_when_no_settings",
  "tests/services/test_analysis_dispatch_service.py::test_preflight_analysis_start_active_job_blocks",
  "tests/services/test_analysis_dispatch_service.py::test_preflight_analysis_start_normal_pending_status_unchanged_prior",
  "tests/services/test_analysis_dispatch_service.py::test_preflight_analysis_start_stale_lock_auto_recovers",
  "tests/services/test_analysis_dispatch_service.py::test_recover_episode_status_handles_missing_episode",
  "tests/services/test_analysis_dispatch_service.py::test_recover_episode_status_noop_if_not_analyzing",
  "tests/services/test_analysis_dispatch_service.py::test_recover_episode_status_resets_analyzing_to_error",
  "tests/services/test_analysis_dispatch_service.py::test_recover_episode_status_truncates_long_message",
  "tests/services/test_analysis_dispatch_service.py::test_run_steps_batch_blocked_cascade_chain",
  "tests/services/test_analysis_dispatch_service.py::test_run_steps_batch_blocked_cascades_to_dependents",
  "tests/services/test_analysis_dispatch_service.py::test_run_steps_batch_final_sync_failure_triggers_recovery",
  "tests/services/test_analysis_dispatch_service.py::test_run_steps_batch_gate_blocked_continues",
  "tests/services/test_analysis_dispatch_service.py::test_run_steps_batch_mid_sync_before_scene_director",
  "tests/services/test_analysis_dispatch_service.py::test_run_steps_batch_partial_default_continues_backward_compat",
  "tests/services/test_analysis_dispatch_service.py::test_run_steps_batch_partial_strict_step_breaks_batch",
  "tests/services/test_analysis_dispatch_service.py::test_run_steps_batch_step_crashed_triggers_recovery",
  "tests/services/test_analysis_dispatch_service.py::test_run_steps_batch_step_failed_triggers_recovery",
  "tests/services/test_analysis_dispatch_service.py::test_select_scene_reanalysis_returns_ordered_by_step_order",
  "tests/services/test_analysis_dispatch_service.py::test_select_scene_reanalysis_starts_at_scene_segmentation",
  "tests/services/test_analysis_dispatch_service.py::test_select_scene_reanalysis_steps_contains_scene_save_and_downstream",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_all_includes_image",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_analysis_cross_category_deps_fail_fast",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_analysis_cross_deps_satisfied_passes",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_analysis_episode_none_skips_cross_validation",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_analysis_force_cross_category_downstream_blocks",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_analysis_returns_active_analysis_only",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_image_auto_includes_cross_category_deps",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_image_force_cross_category_downstream_blocks",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_image_force_episode_none_skips_force_cascade",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_image_no_cross_category_transitive_when_episode_none",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_image_resume_skips_force_cascade_check",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_invalid_mode_raises",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_invalid_raises",
  "tests/services/test_analysis_dispatch_service.py::test_select_steps_for_category_planning_doc_inclusion",
  "tests/services/test_analysis_dispatch_service.py::test_되돌리기가_실패해도_원래_예외가_올라온다",
  "tests/services/test_analysis_dispatch_service.py::test_세션이_죽었으면_새_세션으로_되돌린다",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b1_v6_schema_kind_enum_matches_single_sot",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b1_v7_schema_kind_enum_matches_single_sot",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b1_v8_schema_kind_enum_matches_single_sot",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_accepts_valid",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry1-missing required keys]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry10-label must be str]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry11-label must be str]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry2-missing required keys]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry3-missing required keys]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry3-must be one of]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry4-must be one of]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry5-label must be str]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry5-must be one of]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry6-label must be str]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry6-must be one of]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry7-label must be str]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry7-subject_kind must be one of]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry8-label must be str]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry8-semantic_contract_router]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[bad_entry9-label must be str]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_entry_rejects_malformed[plain string-must be dict]",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b2_validate_list_legacy_str_uses_legacy_code",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b3_process_llm_result_raises_apperror_on_shape_violation",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b3_step_execute_fallback_on_provider_exception",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b3_step_execute_reraises_apperror",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b3b_process_llm_result_raises_on_missing_keep_elements_key",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b4_step_manifest_schema_version_four",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b4_step_manifest_schema_version_three",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b4_step_manifest_schema_version_two",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b5_version_registry",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b6_v6_system_md_lists_enum_three",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b6_v7_system_md_lists_enum_two",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b6_v8_system_md_lists_enum_two",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b7_legacy_v6_immobilized_character_rejected_at_entry",
  "tests/services/test_area_d_next_shot_dependency_t2i.py::test_b7_legacy_v6_immobilized_character_rejected_at_list",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_diag_excluded_cases_none",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_diag_missing_case_full_fields",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_diag_not_outdoor_none",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_diag_resolved_records_source",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_history_fallback_requires_history_entry",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_loader_flag_off_empty",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_loader_no_outdoor_locs_empty",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_loader_reads_structural_fields",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_resolve_scene_prev_frame_role",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_uuid_map_ambiguous_short_id_excluded",
  "tests/services/test_b_outdoor_prev_frame_required.py::test_uuid_map_outdoor_only_and_reverse_join",
  "tests/services/test_back_to_camera_constraint.py::test_back_to_camera_ambiguous_name_skips",
  "tests/services/test_back_to_camera_constraint.py::test_back_to_camera_stamps_attached_character_ref",
  "tests/services/test_back_to_camera_constraint.py::test_background_chain_ref_openings_contract",
  "tests/services/test_back_to_camera_constraint.py::test_prompt_instruction_emitted_only_with_constraint",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_a_plain_reference_is_the_base_identity[CRITICAL \\u2014 This is a CORRECTION of the attached reference image]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_a_plain_reference_is_the_base_identity[Full body reference of the character]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_a_plain_reference_is_the_base_identity[None]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_a_plain_reference_is_the_base_identity[Set in a 2069 post-apocalyptic era. Photorealistic product photo]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_a_plain_reference_is_the_base_identity[]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_every_derived_marker_is_not_the_base_identity[[composite:c1c1c1c1-0000-4000-8000-000000000001:0e0e0e0e-0000-4000-8000-000000000002:base-uuid] \\ucc30\\ub9ac+\\uc6b0\\ube44]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_every_derived_marker_is_not_the_base_identity[[composite:c1c1c1c1-0000-4000-8000-000000000001:0e0e0e0e-0000-4000-8000-000000000002] \\ucc30\\ub9ac+\\ubcc0\\uc7a5\\uc6a9\\uc678\\ud22c\\uc640\\ubaa8\\uc790]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_every_derived_marker_is_not_the_base_identity[[composite_old2:c1c1c1c1-0000-4000-8000-000000000001:0e0e0e0e-0000-4000-8000-000000000002] \\ubb3c\\ub7ec\\ub09c \\ud310]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_every_derived_marker_is_not_the_base_identity[[composite_old:c1c1c1c1-0000-4000-8000-000000000001:0e0e0e0e-0000-4000-8000-000000000002] \\ubb3c\\ub7ec\\ub09c \\ud310]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_every_derived_marker_is_not_the_base_identity[[outfit:0e0e0e0e-0000-4000-8000-000000000002] \\uc758\\uc0c1 \\ub2e8\\ub3c5]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_every_derived_marker_is_not_the_base_identity[[outlook_id:0e0e0e0e-0000-4000-8000-000000000002] \\uc61b \\ud45c\\uae30]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_every_derived_marker_is_not_the_base_identity[[state_variant:c1c1c1c1-0000-4000-8000-000000000001:dead] \\ucc30\\ub9ac]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_every_derived_marker_is_not_the_base_identity[[state_variant_old:c1c1c1c1-0000-4000-8000-000000000001:unconscious] \\ucc30\\ub9ac]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_every_derived_marker_is_not_the_base_identity[[state_variant_oldsrc:c1c1c1c1-0000-4000-8000-000000000001:dead] \\ucc30\\ub9ac]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_every_derived_marker_is_not_the_base_identity[[state_variant_retry:c1c1c1c1-0000-4000-8000-000000000001:dead] \\ucc30\\ub9ac]",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_leading_space_is_not_trimmed_on_either_side",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_loading_base_reference_bytes_asks_for_base_only",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_scene_ref_map_records_the_base_asset_id_not_a_composite",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_the_sql_condition_names_every_marker",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_the_underscore_in_a_marker_is_a_literal_not_a_wildcard",
  "tests/services/test_base_identity_ref_excludes_composites.py::test_visible_entity_reference_map_asks_for_base_only",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_blank_values_yield_empty_set[   ]",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_blank_values_yield_empty_set[ , , ]",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_blank_values_yield_empty_set[,,,]",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_blank_values_yield_empty_set[,]",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_blank_values_yield_empty_set[None]",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_blank_values_yield_empty_set[]",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_declared_tags_are_parsed_and_trimmed",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_duplicates_collapse",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_empty_set_exempts_no_shot",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_only_declared_tags_are_exempt",
  "tests/services/test_bgfirst_no_conti_exempt_default_noop.py::test_settings_default_is_blank",
  "tests/services/test_build_scene_attached_refs.py::test_batch_emits_dep_scene_bytes_source_kind_when_dep_path_read_success",
  "tests/services/test_build_scene_attached_refs.py::test_batch_path_reraises_ref_contract_error_from_prev_shot",
  "tests/services/test_build_scene_attached_refs.py::test_build_scene_attached_refs_missing_reference_phrase_kinds_raises",
  "tests/services/test_build_scene_attached_refs.py::test_build_scene_attached_refs_non_list_reference_phrase_kinds_raises",
  "tests/services/test_build_scene_attached_refs.py::test_build_scene_attached_refs_none_reference_phrase_kinds_raises",
  "tests/services/test_build_scene_attached_refs.py::test_coordinator_emits_bytes_source_kind_location_history",
  "tests/services/test_build_scene_attached_refs.py::test_helper_5a_chain_bg_inserts_when_not_close_framing",
  "tests/services/test_build_scene_attached_refs.py::test_helper_5b_chain_bg_skipped_close_framing_falls_back_to_prev_shot",
  "tests/services/test_build_scene_attached_refs.py::test_helper_5c_no_chain_bg_falls_back_to_prev_shot",
  "tests/services/test_build_scene_attached_refs.py::test_helper_5d_entity_only_when_no_bg_no_prev_shot",
  "tests/services/test_build_scene_attached_refs.py::test_helper_5e_atmosphere_dep_does_not_beat_bg_map",
  "tests/services/test_build_scene_attached_refs.py::test_helper_5e_close_framing_log_still_prevails_over_dep",
  "tests/services/test_build_scene_attached_refs.py::test_helper_5e_dep_scene_continuity_beats_bg_map",
  "tests/services/test_build_scene_attached_refs.py::test_helper_best_prev_bytes_resolved_internally",
  "tests/services/test_build_scene_attached_refs.py::test_helper_cached_style_context_used_no_rebuild",
  "tests/services/test_build_scene_attached_refs.py::test_helper_emits_dep_scene_bytes_source_kind_when_dep_path_read_success",
  "tests/services/test_build_scene_attached_refs.py::test_helper_optionc_no_staging_thread_without_force",
  "tests/services/test_build_scene_attached_refs.py::test_helper_optionc_threads_staging_with_force_character_names",
  "tests/services/test_build_scene_attached_refs.py::test_helper_recovers_bc_key_from_still_when_still_data_omits_indices",
  "tests/services/test_build_scene_attached_refs.py::test_helper_reraises_ref_contract_error_from_prev_shot",
  "tests/services/test_build_scene_attached_refs.py::test_helper_state_variant_detected_internally",
  "tests/services/test_build_scene_attached_refs.py::test_helper_swallows_non_contract_prev_shot_exception",
  "tests/services/test_build_scene_attached_refs.py::test_helper_w3_dep_bytes_falls_back_when_target_png_missing",
  "tests/services/test_build_scene_attached_refs.py::test_helper_w3_dep_bytes_realigned_to_dep_detail_target",
  "tests/services/test_build_scene_attached_refs.py::test_single_path_keeps_character_when_lookup_rpc_has_character",
  "tests/services/test_build_scene_attached_refs.py::test_single_path_strips_character_when_lookup_rpc_background_only",
  "tests/services/test_build_scene_attached_refs.py::test_variation_path_missing_reference_phrase_kinds_typed_failure",
  "tests/services/test_build_scene_attached_refs.py::test_variation_path_non_list_reference_phrase_kinds_typed_failure",
  "tests/services/test_build_scene_attached_refs.py::test_waive_required_background_clears_readiness_when_empty",
  "tests/services/test_build_scene_attached_refs.py::test_waive_required_background_dep_continuity_flag",
  "tests/services/test_build_scene_attached_refs.py::test_waive_required_background_no_plate_sentinel",
  "tests/services/test_build_scene_attached_refs.py::test_waive_required_background_noop_without_sentinel",
  "tests/services/test_c01_zero_gate_regression.py::test_fixture_has_5_stills",
  "tests/services/test_c01_zero_gate_regression.py::test_fixture_has_required_fields",
  "tests/services/test_c01_zero_gate_regression.py::test_s13_shot6_face_close_up_exemption_denied",
  "tests/services/test_c01_zero_gate_regression.py::test_s15_shot5_helper_invokes_prev_shot_when_no_chain",
  "tests/services/test_c01_zero_gate_regression.py::test_s19_shot1_phantom_storefront_raises",
  "tests/services/test_c01_zero_gate_regression.py::test_s21_shot6_close_framing_skips_chain_bg",
  "tests/services/test_c01_zero_gate_regression.py::test_s8_shot4_phantom_from_reference_raises",
  "tests/services/test_canon_stable_fields_not_overwritten_pg.py::test_1화_링크는_2화_sync_뒤에도_그대로",
  "tests/services/test_canon_stable_fields_not_overwritten_pg.py::test_비어_있는_칸은_이번_화가_채운다",
  "tests/services/test_canon_stable_fields_not_overwritten_pg.py::test_새_이름은_별명으로_쌓인다",
  "tests/services/test_canon_stable_fields_not_overwritten_pg.py::test_이번_화_묘사는_링크에_남는다",
  "tests/services/test_canon_stable_fields_not_overwritten_pg.py::test_참조_이미지가_없어도_안정_칸을_안_덮는다",
  "tests/services/test_canon_stable_fields_not_overwritten_pg.py::test_참조_이미지가_없으면_종전대로_갱신한다",
  "tests/services/test_canon_stable_fields_not_overwritten_pg.py::test_참조_이미지가_있으면_t2i_프롬프트를_안_덮는다",
  "tests/services/test_character_shot_is_not_background_only.py::test_character_in_shot_is_not_background_only",
  "tests/services/test_character_shot_is_not_background_only.py::test_no_character_stays_background_only",
  "tests/services/test_checkpoint_sync_orchestrator.py::test_failure_error_message_truncated_to_1000",
  "tests/services/test_checkpoint_sync_orchestrator.py::test_failure_preserves_previous_synced_at",
  "tests/services/test_checkpoint_sync_orchestrator.py::test_failure_recorder_swallows_own_errors",
  "tests/services/test_checkpoint_sync_orchestrator.py::test_failure_records_failed_in_separate_session",
  "tests/services/test_checkpoint_sync_orchestrator.py::test_failure_without_step_id_no_record",
  "tests/services/test_checkpoint_sync_orchestrator.py::test_repair_handles_null_sync_error",
  "tests/services/test_checkpoint_sync_orchestrator.py::test_repair_preserves_concurrent_new_failure",
  "tests/services/test_checkpoint_sync_orchestrator.py::test_repair_transitions_failed_to_synced",
  "tests/services/test_checkpoint_sync_orchestrator.py::test_success_records_synced_when_step_id_provided",
  "tests/services/test_checkpoint_sync_orchestrator.py::test_success_without_step_id_no_update",
  "tests/services/test_checkpoint_sync_services.py::test_base_sync_propagates_corrupt_manifest",
  "tests/services/test_checkpoint_sync_services.py::test_entity_sync_no_checkpoint_returns_skipped",
  "tests/services/test_checkpoint_sync_services.py::test_entity_sync_not_completed_returns_skipped",
  "tests/services/test_checkpoint_sync_services.py::test_episode_projection_returns_appearance_updated",
  "tests/services/test_checkpoint_sync_services.py::test_episode_projection_uses_shared_now",
  "tests/services/test_checkpoint_sync_services.py::test_outlook_sync_no_checkpoint_returns_zero",
  "tests/services/test_checkpoint_sync_services.py::test_relation_sync_completed_empty_relations_proceeds_authoritatively",
  "tests/services/test_checkpoint_sync_services.py::test_relation_sync_empty_relations_returns_skipped",
  "tests/services/test_checkpoint_sync_services.py::test_relation_sync_no_checkpoint_returns_skipped",
  "tests/services/test_checkpoint_sync_services.py::test_relation_sync_partial_empty_relations_returns_skipped",
  "tests/services/test_checkpoint_sync_services.py::test_scene_still_sync_no_checkpoint_returns_zero",
  "tests/services/test_checkpoint_sync_services.py::test_scene_still_sync_projects_vah_from_scene_director",
  "tests/services/test_checkpoint_sync_services.py::test_scene_still_sync_skips_when_scene_detail_incomplete[failed]",
  "tests/services/test_checkpoint_sync_services.py::test_scene_still_sync_skips_when_scene_detail_incomplete[missing_status]",
  "tests/services/test_checkpoint_sync_services.py::test_scene_still_sync_skips_when_scene_detail_incomplete[partial]",
  "tests/services/test_checkpoint_sync_services.py::test_scene_still_sync_skips_when_scene_detail_incomplete[stale]",
  "tests/services/test_checkpoint_sync_services.py::test_scene_still_sync_skips_when_scene_detail_incomplete[status_none]",
  "tests/services/test_checkpoint_sync_services.py::test_scene_still_sync_skips_when_scene_detail_missing_status",
  "tests/services/test_checkpoint_sync_services.py::test_scene_still_sync_skips_when_scene_detail_not_completed",
  "tests/services/test_chunk_to_db_vertical.py::TestAMissingMarkerFailsClosedInChunkMode::test_a_wrong_version_also_stops",
  "tests/services/test_chunk_to_db_vertical.py::TestAMissingMarkerFailsClosedInChunkMode::test_it_stops",
  "tests/services/test_chunk_to_db_vertical.py::TestAMissingMarkerFailsClosedInChunkMode::test_legacy_stays_unchanged",
  "tests/services/test_chunk_to_db_vertical.py::TestNothingOldIsCalledOnThisPath::test_the_old_filter_provider_is_never_called",
  "tests/services/test_chunk_to_db_vertical.py::TestNothingOldIsCalledOnThisPath::test_the_old_relation_provider_is_never_called",
  "tests/services/test_chunk_to_db_vertical.py::TestResumeDoesNotRebuy::test_a_full_resume_buys_nothing",
  "tests/services/test_chunk_to_db_vertical.py::TestResumeDoesNotRebuy::test_a_legacy_name_key_reuses_the_part_and_buys_only_the_place",
  "tests/services/test_chunk_to_db_vertical.py::TestResumeDoesNotRebuy::test_a_legacy_name_key_reuses_the_place_and_buys_only_the_part",
  "tests/services/test_chunk_to_db_vertical.py::TestResumeDoesNotRebuy::test_a_partial_resume_buys_only_the_rest",
  "tests/services/test_chunk_to_db_vertical.py::TestResumeDoesNotRebuy::test_a_same_named_partial_reuses_only_the_finished_lane",
  "tests/services/test_chunk_to_db_vertical.py::TestResumeDoesNotRebuy::test_a_stale_record_is_still_dropped",
  "tests/services/test_chunk_to_db_vertical.py::TestResumeDoesNotRebuy::test_an_old_name_keyed_checkpoint_still_resumes",
  "tests/services/test_chunk_to_db_vertical.py::TestTheChunkOutputReachesTheDatabase::test_a_same_named_place_and_part_both_survive",
  "tests/services/test_chunk_to_db_vertical.py::TestTheChunkOutputReachesTheDatabase::test_all_four_lanes_land_in_the_db",
  "tests/services/test_chunk_to_db_vertical.py::TestTheChunkOutputReachesTheDatabase::test_no_model_is_called_anywhere_on_this_path",
  "tests/services/test_chunk_to_db_vertical.py::TestTheChunkOutputReachesTheDatabase::test_the_filter_keeps_all_four_lanes",
  "tests/services/test_chunk_to_db_vertical.py::TestTheChunkOutputReachesTheDatabase::test_the_marker_travelled_the_whole_way",
  "tests/services/test_chunk_to_db_vertical.py::TestTheChunkOutputReachesTheDatabase::test_the_part_of_relation_is_projected_from_the_same_output",
  "tests/services/test_chunk_to_db_vertical.py::TestTheChunkOutputReachesTheDatabase::test_the_real_t2i_step_carried_the_marker",
  "tests/services/test_chunk_to_db_vertical.py::TestTheChunkOutputReachesTheDatabase::test_without_the_marker_the_fourth_lane_never_arrives",
  "tests/services/test_chunk_to_db_vertical.py::TestThePartOfReachesTheDatabaseToo::test_a_same_named_pair_still_joins_correctly",
  "tests/services/test_chunk_to_db_vertical.py::TestThePartOfReachesTheDatabaseToo::test_it_joins_the_right_two_rows",
  "tests/services/test_chunk_to_db_vertical.py::TestThePartOfReachesTheDatabaseToo::test_the_relation_lands_in_the_db",
  "tests/services/test_cine_look_in_prompt.py::test_an_empty_look_clause_leaves_the_assembly_byte_identical",
  "tests/services/test_cine_look_in_prompt.py::test_the_look_clause_loads_from_its_pack",
  "tests/services/test_cine_look_in_prompt.py::test_the_look_sits_after_the_lighting",
  "tests/services/test_cine_look_in_prompt.py::test_with_cine_off_but_the_switch_off_the_look_does_not_go",
  "tests/services/test_cine_look_in_prompt.py::test_with_cine_off_the_look_and_the_camera_both_reach_the_assembly",
  "tests/services/test_cine_look_in_prompt.py::test_with_cine_on_the_look_clause_stays_out",
  "tests/services/test_composite_storage_episode_pg.py::test_다른_프로젝트_링크를_집지_않는다",
  "tests/services/test_composite_storage_episode_pg.py::test_링크가_하나면_그_화_종전_동작",
  "tests/services/test_composite_storage_episode_pg.py::test_부른_쪽이_준_화로_간다",
  "tests/services/test_composite_storage_episode_pg.py::test_엔티티_재생성이_각_배정의_제_화를_넘긴다",
  "tests/services/test_composite_storage_episode_pg.py::test_여러_화에_걸렸는데_안_주면_안_고른다",
  "tests/services/test_coordinator_sanitize_constraints_propagation.py::test_coordinator_fallback_sanitize_propagates_constraints",
  "tests/services/test_coordinator_zoom_fallback_policy.py::test_build_scene_attached_refs_has_zoom_policy",
  "tests/services/test_coordinator_zoom_fallback_policy.py::test_generate_scene_in_loop_has_zoom_policy",
  "tests/services/test_d6_validator_stale_upstream.py::test_await_variation_results_captures_generic_exception_as_typed_failure",
  "tests/services/test_d6_validator_stale_upstream.py::test_await_variation_results_propagates_stale_upstream",
  "tests/services/test_d6_validator_stale_upstream.py::test_await_variation_results_swallows_generic_exception",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_close_framing_skips_background_check_d6_bg_id",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_emits_stale_upstream_when_d6_bg_id_missing_no_lookup",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_emits_stale_upstream_when_lookup_returns_loc_but_lineage_not_attached",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_emits_stale_upstream_with_chain_lookup_returning_none",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_keeps_ref_contract_error_for_legacy_bg_id[]",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_keeps_ref_contract_error_for_legacy_bg_id[bg_kitchen]",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_keeps_ref_contract_error_for_legacy_bg_id[bg_office_normal]",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_keeps_ref_contract_error_for_legacy_bg_id[bg_supermarket_dusk]",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_satisfied_d6_bg_id_attached_no_raise",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_satisfied_d6_bg_id_via_prev_shot_lineage_no_raise",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_space_set_bg_background_satisfies_required",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_space_set_bg_does_not_mask_missing_background",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_space_set_bg_does_not_satisfy_required_prop_or_outlook",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_space_set_bg_satisfies_multiple_required_backgrounds",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_stale_upstream_details_include_remediation_and_missing",
  "tests/services/test_d6_validator_stale_upstream.py::test_validator_stale_upstream_propagates_through_threadpool_future",
  "tests/services/test_dispatcher_modes.py::test_analysis_does_not_include_image_steps_in_direct_return",
  "tests/services/test_dispatcher_modes.py::test_diff_project_config_added_removed_keys",
  "tests/services/test_dispatcher_modes.py::test_diff_project_config_masks_sensitive",
  "tests/services/test_dispatcher_modes.py::test_diff_project_config_no_changes",
  "tests/services/test_dispatcher_modes.py::test_diff_project_config_no_old_snapshot",
  "tests/services/test_dispatcher_modes.py::test_diff_project_config_shows_changes",
  "tests/services/test_dispatcher_modes.py::test_diff_project_config_type_mismatch",
  "tests/services/test_dispatcher_modes.py::test_evaluate_applicability_disabled_step_returns_not_applicable",
  "tests/services/test_dispatcher_modes.py::test_evaluate_applicability_returns_applicable_when_background_on",
  "tests/services/test_dispatcher_modes.py::test_evaluate_applicability_returns_not_applicable_when_background_off",
  "tests/services/test_dispatcher_modes.py::test_evaluate_applicability_unknown_step_returns_applicable",
  "tests/services/test_dispatcher_modes.py::test_force_all_includes_everything",
  "tests/services/test_dispatcher_modes.py::test_force_analysis_does_not_validate_image_deps",
  "tests/services/test_dispatcher_modes.py::test_force_image_blocks_when_analysis_incomplete",
  "tests/services/test_dispatcher_modes.py::test_force_image_blocks_when_required_dep_incomplete",
  "tests/services/test_dispatcher_modes.py::test_force_image_handles_mixed_applicable_and_not",
  "tests/services/test_dispatcher_modes.py::test_force_image_no_silent_transitive",
  "tests/services/test_dispatcher_modes.py::test_force_image_skips_not_applicable_deps",
  "tests/services/test_dispatcher_modes.py::test_force_image_succeeds_when_analysis_complete",
  "tests/services/test_dispatcher_modes.py::test_is_step_completed_helper_returns_false_when_not_found",
  "tests/services/test_dispatcher_modes.py::test_is_step_completed_helper_returns_false_when_partial",
  "tests/services/test_dispatcher_modes.py::test_is_step_completed_helper_returns_true_when_completed",
  "tests/services/test_dispatcher_modes.py::test_is_step_satisfied_when_completed",
  "tests/services/test_dispatcher_modes.py::test_is_step_satisfied_when_neither_completed_nor_not_applicable",
  "tests/services/test_dispatcher_modes.py::test_is_step_satisfied_when_not_completed_but_not_applicable",
  "tests/services/test_dispatcher_modes.py::test_resume_auto_recovers_stale_default",
  "tests/services/test_dispatcher_modes.py::test_resume_config_hash_mismatch_blocks_after_b5",
  "tests/services/test_dispatcher_modes.py::test_resume_logs_config_diff",
  "tests/services/test_dispatcher_modes.py::test_resume_schema_mismatch_auto_recovers",
  "tests/services/test_dispatcher_modes.py::test_resume_schema_mismatch_entity_t2i_auto_recovers_via_allowlist",
  "tests/services/test_dispatcher_modes.py::test_resume_schema_mismatch_non_allowlisted_blocks_after_b5",
  "tests/services/test_dispatcher_modes.py::test_resume_skips_completed",
  "tests/services/test_dispatcher_modes.py::test_resume_with_no_cp_skips_quietly",
  "tests/services/test_dispatcher_modes.py::test_resume_with_no_cp_triggers_force",
  "tests/services/test_dispatcher_modes.py::test_resume_with_no_cp_triggers_rerun_self",
  "tests/services/test_dispatcher_modes.py::test_resume_with_strict_flag_raises_legacy",
  "tests/services/test_dispatcher_preflight.py::test_app_error_handler_backward_compat_for_plain_app_error",
  "tests/services/test_dispatcher_preflight.py::test_app_error_handler_base_fields_win_over_details",
  "tests/services/test_dispatcher_preflight.py::test_app_error_handler_serializes_stale_upstream_details",
  "tests/services/test_dispatcher_preflight.py::test_app_error_rejects_reserved_details_keys",
  "tests/services/test_dispatcher_preflight.py::test_preflight_passes_for_empty_d6_episode_with_zero_chain_bg",
  "tests/services/test_dispatcher_preflight.py::test_preflight_passes_when_all_4_consumers_match",
  "tests/services/test_dispatcher_preflight.py::test_preflight_passes_with_enforce_binding_false",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_on_binding_hash_mismatch_when_enforced[background_prompt]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_on_binding_hash_mismatch_when_enforced[background_render]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_on_binding_hash_mismatch_when_enforced[floor_plan_prompt]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_on_binding_hash_mismatch_when_enforced[scene_detail]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_on_catalog_hash_mismatch_for_any_consumer[background_prompt]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_on_catalog_hash_mismatch_for_any_consumer[background_render]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_on_catalog_hash_mismatch_for_any_consumer[floor_plan_prompt]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_on_catalog_hash_mismatch_for_any_consumer[scene_detail]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_on_corrupt_consumer_manifest",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_on_corrupt_master_plan_manifest",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_when_any_consumer_manifest_absent[background_prompt]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_when_any_consumer_manifest_absent[background_render]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_when_any_consumer_manifest_absent[floor_plan_prompt]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_raises_when_any_consumer_manifest_absent[scene_detail]",
  "tests/services/test_dispatcher_preflight.py::test_preflight_returns_silently_when_master_plan_lacks_d6_hash",
  "tests/services/test_dispatcher_preflight.py::test_preflight_returns_silently_when_master_plan_missing",
  "tests/services/test_dispatcher_preflight.py::test_preflight_skips_binding_check_when_custom_prompt",
  "tests/services/test_dispatcher_preflight.py::test_preflight_still_raises_on_catalog_mismatch_with_enforce_false",
  "tests/services/test_dispatcher_preflight.py::test_stale_upstream_binding_mismatch_includes_binding_details",
  "tests/services/test_dispatcher_preflight.py::test_stale_upstream_error_details_include_remediation",
  "tests/services/test_entity_canon_short_id_swap.py::test_entity_canon_new_short_id_steals_from_orphan",
  "tests/services/test_entity_canon_short_id_swap.py::test_entity_canon_short_id_swap_no_unique_violation",
  "tests/services/test_entity_canon_short_id_swap.py::test_outlook_canon_short_id_pre_pass_no_unique_violation",
  "tests/services/test_entity_canon_short_id_swap.py::test_outlook_canon_short_id_swap_no_unique_violation",
  "tests/services/test_entity_canon_short_id_swap.py::test_outlook_stale_delete_with_character_outlook_reference",
  "tests/services/test_entity_instance_identity_chain.py::TestTheChainKeepsBothInstancesToTheDatabase::test_two_same_named_parts_under_different_wholes_reach_canon_and_part_of",
  "tests/services/test_entity_sync_identity_is_short_id.py::TestTheFiveEndpoints::test_a_legacy_row_without_an_id_is_reused_once_and_two_of_them_fail_closed",
  "tests/services/test_entity_sync_identity_is_short_id.py::TestTheFiveEndpoints::test_a_rename_under_the_same_short_id_updates_the_existing_canon",
  "tests/services/test_entity_sync_identity_is_short_id.py::TestTheFiveEndpoints::test_a_second_sync_of_the_same_cp_is_stable",
  "tests/services/test_entity_sync_identity_is_short_id.py::TestTheFiveEndpoints::test_first_sync_on_an_empty_db_creates_both_and_both_relations",
  "tests/services/test_entity_sync_identity_is_short_id.py::TestTheFiveEndpoints::test_recovery_shape_keeps_the_existing_row_and_adds_only_the_missing_one",
  "tests/services/test_entity_sync_identity_is_short_id.py::TestTheResolverRules::test_a_differing_name_match_is_not_a_conflict_and_a_foreign_id_row_is_not_reused",
  "tests/services/test_episode_projection_service.py::test_t2i_count_counts_all_selected_ok_stills",
  "tests/services/test_episode_projection_service.py::test_t2i_count_excludes_stale_and_nonselected_stills",
  "tests/services/test_episode_projection_strict.py::test_appearance_updated_field_preserved",
  "tests/services/test_episode_projection_strict.py::test_applicability_not_applicable_steps_skipped",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing[0-False]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing[1-True]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing[True-True]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing[false-False]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing[garbage-False]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing[on-True]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing[true-True]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing[yes-True]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing_recognized[-False]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing_recognized[0-False]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing_recognized[1-True]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing_recognized[True-True]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing_recognized[false-False]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing_recognized[no-False]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing_recognized[off-False]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing_recognized[on-True]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing_recognized[true-True]",
  "tests/services/test_episode_projection_strict.py::test_env_truthy_parsing_recognized[yes-True]",
  "tests/services/test_episode_projection_strict.py::test_env_unrecognized_falls_back_to_settings_default",
  "tests/services/test_episode_projection_strict.py::test_evaluate_applicability_exception_treated_as_applicable",
  "tests/services/test_episode_projection_strict.py::test_lenient_unconditionally_sets_analyzed",
  "tests/services/test_episode_projection_strict.py::test_returns_safely_when_episode_missing",
  "tests/services/test_episode_projection_strict.py::test_strict_advances_when_all_active_steps_completed",
  "tests/services/test_episode_projection_strict.py::test_strict_advances_when_step_is_not_applicable",
  "tests/services/test_episode_projection_strict.py::test_strict_classifies_missing_step_run_as_incomplete",
  "tests/services/test_episode_projection_strict.py::test_strict_does_not_advance_on_failed",
  "tests/services/test_episode_projection_strict.py::test_strict_does_not_advance_on_partial",
  "tests/services/test_episode_projection_strict.py::test_strict_overwrites_own_strict_projection_message",
  "tests/services/test_episode_projection_strict.py::test_strict_preserves_existing_analysis_error_from_other_caller",
  "tests/services/test_episode_projection_strict.py::test_strict_skips_deprecated_lifecycle_steps",
  "tests/services/test_episode_projection_strict.py::test_strict_skips_image_category_steps",
  "tests/services/test_episode_projection_strict.py::test_strict_truncates_incomplete_sample_in_error",
  "tests/services/test_episode_projection_strict.py::test_unset_env_defaults_to_settings_default",
  "tests/services/test_episode_scope_wiring_pg.py::test_상태_조회의_합성_진행률이_이_화_것만_센다",
  "tests/services/test_episode_scope_wiring_pg.py::test_파이프라인_상태_조회가_이름_오류로_안_죽는다",
  "tests/services/test_episode_scope_wiring_pg.py::test_합성_키_빌더에_화가_실제로_넘어간다",
  "tests/services/test_episode_scope_wiring_pg.py::test_화_없이_부르면_선다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_exact_가_있으면_legacy_는_안_섞인다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_exact_가_하나도_없을_때만_legacy_로_되돌아간다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_legacy_혼합_프로젝트에서_화별로_따진다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_그래도_미래_화_착용자는_안_들어온다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_미래_화_착용자가_앞_화_앵커에_안_섞인다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_보류된_요소는_참조_대상이_아니다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_앞_화_착용자는_다음_화_앵커에_남는다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_앵커가_이_화의_착용자만_싣는다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_양_끝이_같은_화에서_active_여야_한다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_정본이_이_화의_배정만_돌려준다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_참조_준비도가_이_화_합성만_기대한다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_한_화의_O00_이_다른_화_판단을_오염시키지_않는다",
  "tests/services/test_episode_scoped_outlook_pg.py::test_화_칸_없는_legacy_배정은_읽을_때_들어온다",
  "tests/services/test_export_html_zip_current_format.py::test_b1_copy_as_jpeg_warns_on_pil_failure",
  "tests/services/test_export_html_zip_current_format.py::test_b2_short_id_re_rejects_standalone_o_prefix",
  "tests/services/test_export_html_zip_current_format.py::test_b2_visible_short_ids_drops_standalone_o_prefix",
  "tests/services/test_export_html_zip_current_format.py::test_copy_as_jpeg_fallback_writes_requested_html_path",
  "tests/services/test_export_html_zip_current_format.py::test_safe_json_load_handles_bytes_and_decoded_shapes",
  "tests/services/test_export_html_zip_current_format.py::test_t2i_text_accepts_rich_variations_and_legacy_prompts",
  "tests/services/test_export_html_zip_current_format.py::test_t2i_text_uses_fallback_for_malformed_variations",
  "tests/services/test_export_html_zip_current_format.py::test_visible_short_ids_accepts_current_and_legacy_shapes",
  "tests/services/test_export_html_zip_current_format.py::test_visible_short_ids_accepts_wrapped_dict_shape",
  "tests/services/test_face_close_up_exemption.py::test_body_close_up_with_trigger_exemption_kept",
  "tests/services/test_face_close_up_exemption.py::test_body_part_phrase_no_false_positive",
  "tests/services/test_face_close_up_exemption.py::test_descriptive_eyes_no_false_positive",
  "tests/services/test_face_close_up_exemption.py::test_eyes_close_up_phrase_exemption_denied",
  "tests/services/test_face_close_up_exemption.py::test_face_close_up_phrase_match",
  "tests/services/test_face_close_up_exemption.py::test_face_close_up_with_body_focus_trigger_exemption_denied",
  "tests/services/test_face_close_up_exemption.py::test_face_focus_phrase_match_basic",
  "tests/services/test_face_close_up_exemption.py::test_face_gaze_stare_match",
  "tests/services/test_face_close_up_exemption.py::test_partial_focus_mode_still_exempt_face_match_no_effect",
  "tests/services/test_face_close_up_exemption.py::test_phone_close_up_exemption_kept",
  "tests/services/test_face_close_up_exemption.py::test_reproduction_surface_still_exempt",
  "tests/services/test_face_close_up_exemption.py::test_s13_shot6_face_close_up_exemption_denied",
  "tests/services/test_fal_angle_helpers_cap.py::test_cap_exceeded_not_swallowed_by_broad_except",
  "tests/services/test_fal_angle_helpers_cap.py::test_cap_one_counts_only_fal_run_not_download",
  "tests/services/test_fal_angle_helpers_cap.py::test_cap_zero_blocks_fal_run_before_network",
  "tests/services/test_fal_angle_helpers_cap.py::test_no_budget_keeps_legacy_call_path",
  "tests/services/test_finding_c_w2_background_overdeclare.py::test_g1_strip_when_no_background_attached",
  "tests/services/test_finding_c_w2_background_overdeclare.py::test_g2_keep_when_background_attached",
  "tests/services/test_finding_c_w2_background_overdeclare.py::test_g3_keep_when_background_prev_shot_attached",
  "tests/services/test_finding_c_w2_background_overdeclare.py::test_g4_keep_when_required_background_present",
  "tests/services/test_finding_c_w2_background_overdeclare.py::test_g4b_required_background_not_masked_validator_raises",
  "tests/services/test_finding_c_w2_background_overdeclare.py::test_g5_unchanged_when_no_background_declared",
  "tests/services/test_finding_c_w2_background_overdeclare.py::test_g6_strip_background_keep_others",
  "tests/services/test_finding_c_w2_background_overdeclare.py::test_g7_finding_c_case1_repro_no_violation",
  "tests/services/test_gate_branch_extension.py::test_a_reroll_born_from_the_chain_candidate_keeps_the_chain_lineage",
  "tests/services/test_gate_branch_extension.py::test_a_reroll_born_from_the_other_candidate_is_not_the_chain",
  "tests/services/test_gate_branch_extension.py::test_a_resume_that_only_gains_the_audit_field_does_not_trip_the_latch",
  "tests/services/test_gate_branch_extension.py::test_the_audit_origin_field_is_not_a_spend_trace",
  "tests/services/test_gate_branch_extension.py::test_the_bgfirst_branch_is_now_a_target",
  "tests/services/test_gate_branch_extension.py::test_the_bgfirst_rejudge_asks_with_its_own_header",
  "tests/services/test_gate_branch_extension.py::test_the_origin_is_read_from_the_record_so_a_resume_agrees",
  "tests/services/test_gate_branch_extension.py::test_the_rejudge_follows_this_branch_roll_count",
  "tests/services/test_gate_branch_extension.py::test_the_standard_branch_still_gets_the_gate",
  "tests/services/test_gate_branch_extension.py::test_the_standard_rejudge_carries_no_header",
  "tests/services/test_gate_branch_extension.py::test_two_branches_do_not_share_one_rejudge_identity",
  "tests/services/test_gate_dependency_release.py::test_a_failed_save_does_not_leave_a_released_hold_in_memory",
  "tests/services/test_gate_dependency_release.py::test_a_held_shot_keeps_its_own_verdict_through_the_hold",
  "tests/services/test_gate_dependency_release.py::test_a_prev_without_a_verdict_is_not_an_anchor",
  "tests/services/test_gate_dependency_release.py::test_a_record_less_finished_prev_does_not_become_an_anchor",
  "tests/services/test_gate_dependency_release.py::test_a_repeated_hold_does_not_nest_the_prior",
  "tests/services/test_gate_dependency_release.py::test_a_shot_that_never_had_a_verdict_goes_back_to_having_none",
  "tests/services/test_gate_dependency_release.py::test_the_chain_holds_and_then_releases",
  "tests/services/test_gate_dependency_release.py::test_the_door_stops_the_cine_purchase_at_the_provider",
  "tests/services/test_gate_dependency_release.py::test_the_gate_off_run_does_not_require_jit_verify",
  "tests/services/test_gate_dependency_release.py::test_the_gate_off_run_still_uses_an_unjudged_prev",
  "tests/services/test_gate_dependency_release.py::test_the_gate_on_run_requires_jit_verify",
  "tests/services/test_gate_dependency_release.py::test_the_hold_is_not_a_spend_trace",
  "tests/services/test_gate_dependency_release.py::test_the_release_does_not_touch_a_quality_verdict",
  "tests/services/test_gate_dependency_release.py::test_the_release_restores_the_prior_verdict_not_clean",
  "tests/services/test_gate_dependency_release.py::test_the_reroll_lever_does_not_touch_the_generation_fingerprint",
  "tests/services/test_gate_reroll_asset_boundary.py::test_a_losing_reroll_does_not_hand_the_asset_this_visits_uid",
  "tests/services/test_gate_reroll_asset_boundary.py::test_a_rejudge_only_resume_does_not_claim_the_lineage",
  "tests/services/test_gate_reroll_asset_boundary.py::test_a_visit_that_only_made_part_of_the_rolls_is_not_the_author",
  "tests/services/test_gate_reroll_asset_boundary.py::test_the_reroll_prompt_reaches_the_asset",
  "tests/services/test_gate_reroll_asset_boundary.py::test_the_visit_that_actually_bought_the_reroll_keeps_the_lineage",
  "tests/services/test_gate_spend_accounting.py::test_a_free_reselect_does_not_trip_the_latch",
  "tests/services/test_gate_spend_accounting.py::test_a_free_reselect_is_not_counted_as_a_regen",
  "tests/services/test_gate_spend_accounting.py::test_a_materialize_only_recovery_sends_nothing",
  "tests/services/test_gate_spend_accounting.py::test_a_paid_cine_is_not_erased_by_a_free_reselect",
  "tests/services/test_gate_spend_accounting.py::test_a_paid_reroll_that_loses_still_counts_as_spend",
  "tests/services/test_gate_spend_accounting.py::test_a_paid_visit_through_the_jit_gate_is_never_reported_free",
  "tests/services/test_gate_spend_accounting.py::test_a_settled_failure_visit_spends_nothing_more",
  "tests/services/test_gate_spend_accounting.py::test_a_third_unchanged_visit_reports_no_free_action",
  "tests/services/test_gate_spend_accounting.py::test_the_free_action_is_not_a_spend_trace",
  "tests/services/test_gate_spend_accounting.py::test_the_paid_reselect_is_not_reported_as_free",
  "tests/services/test_gate_unresolved_door.py::test_a_blocked_shot_records_its_dependency",
  "tests/services/test_gate_unresolved_door.py::test_a_clean_shot_still_goes_all_the_way",
  "tests/services/test_gate_unresolved_door.py::test_a_record_without_a_gate_does_not_block",
  "tests/services/test_gate_unresolved_door.py::test_all_four_consumers_read_one_judgement",
  "tests/services/test_gate_unresolved_door.py::test_an_unresolved_shot_is_not_saved_or_marked_complete",
  "tests/services/test_gate_unresolved_door.py::test_every_branch_passes_the_door",
  "tests/services/test_gate_unresolved_door.py::test_incomplete_also_stops_the_purchase",
  "tests/services/test_gate_unresolved_door.py::test_incomplete_and_not_applicable_do_not_block[incomplete]",
  "tests/services/test_gate_unresolved_door.py::test_incomplete_and_not_applicable_do_not_block[not_applicable]",
  "tests/services/test_gate_unresolved_door.py::test_not_applicable_still_goes_through",
  "tests/services/test_gate_unresolved_door.py::test_only_shots_that_actually_use_prev_are_held",
  "tests/services/test_gate_unresolved_door.py::test_only_unresolved_blocks[clean-False]",
  "tests/services/test_gate_unresolved_door.py::test_only_unresolved_blocks[incomplete-False]",
  "tests/services/test_gate_unresolved_door.py::test_only_unresolved_blocks[not_applicable-False]",
  "tests/services/test_gate_unresolved_door.py::test_only_unresolved_blocks[unresolved-True]",
  "tests/services/test_gate_unresolved_door.py::test_the_dependency_state_is_held_by_the_same_judge",
  "tests/services/test_gate_unresolved_door.py::test_the_holding_outcomes[blocked_dependency-True]",
  "tests/services/test_gate_unresolved_door.py::test_the_holding_outcomes[clean-False]",
  "tests/services/test_gate_unresolved_door.py::test_the_holding_outcomes[incomplete-True]",
  "tests/services/test_gate_unresolved_door.py::test_the_holding_outcomes[not_applicable-False]",
  "tests/services/test_gate_unresolved_door.py::test_the_holding_outcomes[unresolved-True]",
  "tests/services/test_gate_unresolved_door.py::test_the_run_summary_reports_unresolved_shots",
  "tests/services/test_image_asset_check_pg.py::test_check_allows_empty_file_path_pg",
  "tests/services/test_image_asset_check_pg.py::test_check_allows_relative_path_pg",
  "tests/services/test_image_asset_check_pg.py::test_check_rejects_absolute_path_pg",
  "tests/services/test_image_asset_check_pg.py::test_check_rejects_update_to_absolute_pg",
  "tests/services/test_image_composer_service.py::test_compose_prompts_handles_bad_camera_lighting_json",
  "tests/services/test_image_composer_service.py::test_compose_prompts_happy_path",
  "tests/services/test_image_composer_service.py::test_compose_prompts_no_openai_key_raises",
  "tests/services/test_image_composer_service.py::test_compose_prompts_still_not_found_raises",
  "tests/services/test_image_composer_service.py::test_get_composer_prompt_no_settings_returns_nones",
  "tests/services/test_image_composer_service.py::test_get_composer_prompt_with_settings",
  "tests/services/test_image_composer_service.py::test_get_visible_entities_dict_form",
  "tests/services/test_image_composer_service.py::test_get_visible_entities_empty_returns_empty",
  "tests/services/test_image_composer_service.py::test_get_visible_entities_invalid_json_returns_empty",
  "tests/services/test_image_composer_service.py::test_get_visible_entities_skips_missing_and_non_string_dict",
  "tests/services/test_image_composer_service.py::test_get_visible_entities_string_form",
  "tests/services/test_image_composer_service.py::test_image_service_facade_injects_composer_svc",
  "tests/services/test_image_composer_service.py::test_update_composer_prompt_creates_settings_if_absent",
  "tests/services/test_image_composer_service.py::test_update_composer_prompt_partial_overwrites",
  "tests/services/test_image_response_actual_attached_refs.py::test_image_response_default_actual_attached_refs_is_none",
  "tests/services/test_image_response_actual_attached_refs.py::test_image_response_has_actual_attached_refs_field",
  "tests/services/test_image_response_actual_attached_refs.py::test_image_response_reference_image_ids_description_mentions_lineage",
  "tests/services/test_image_response_actual_attached_refs.py::test_image_to_dict_cache_miss_returns_none",
  "tests/services/test_image_response_actual_attached_refs.py::test_image_to_dict_no_cache_no_db_returns_none",
  "tests/services/test_image_response_actual_attached_refs.py::test_image_to_dict_with_cache_returns_actual_refs",
  "tests/services/test_image_response_actual_attached_refs.py::test_lookup_actual_refs_batch_empty_still_ids_returns_empty",
  "tests/services/test_image_response_actual_attached_refs.py::test_lookup_actual_refs_batch_invalid_json_isolates",
  "tests/services/test_image_response_actual_attached_refs.py::test_lookup_actual_refs_batch_single_query",
  "tests/services/test_image_review_service.py::test_create_validator_no_openai_key_returns_none",
  "tests/services/test_image_review_service.py::test_create_validator_with_key_returns_instance",
  "tests/services/test_image_review_service.py::test_get_image_not_found_raises",
  "tests/services/test_image_review_service.py::test_get_image_returns_asset",
  "tests/services/test_image_review_service.py::test_get_validation_malformed_json_keeps_defaults",
  "tests/services/test_image_review_service.py::test_get_validation_no_result_returns_defaults",
  "tests/services/test_image_review_service.py::test_get_validation_parses_result",
  "tests/services/test_image_review_service.py::test_image_service_facade_injects_review_svc",
  "tests/services/test_image_review_service.py::test_regenerate_image_marks_regenerating",
  "tests/services/test_image_review_service.py::test_regenerate_needs_fix_empty_raises",
  "tests/services/test_image_review_service.py::test_regenerate_needs_fix_marks_all",
  "tests/services/test_image_review_service.py::test_set_primary_composite_same_key_unsets_sibling",
  "tests/services/test_image_review_service.py::test_set_primary_non_composite_entity",
  "tests/services/test_image_review_service.py::test_set_primary_still_unsets_all_siblings",
  "tests/services/test_image_review_service.py::test_update_review_approved_updates_fields",
  "tests/services/test_image_review_service.py::test_update_review_invalid_status_raises",
  "tests/services/test_image_review_service.py::test_validate_image_file_missing_raises",
  "tests/services/test_image_review_service.py::test_validate_image_no_openai_key_raises",
  "tests/services/test_image_service_helpers.py::test_auto_set_primary_composite_entity",
  "tests/services/test_image_service_helpers.py::test_auto_set_primary_non_composite_entity",
  "tests/services/test_image_service_helpers.py::test_auto_set_primary_still_id_always_competes",
  "tests/services/test_image_service_helpers.py::test_build_lineage_fields_fallback_to_non_primary",
  "tests/services/test_image_service_helpers.py::test_build_lineage_fields_no_refs",
  "tests/services/test_image_service_helpers.py::test_build_lineage_fields_with_refs",
  "tests/services/test_image_service_helpers.py::test_fill_missing_t2i_prompts_falls_back_to_still_frame_prompt",
  "tests/services/test_image_service_helpers.py::test_fill_missing_t2i_prompts_populates_from_variations",
  "tests/services/test_image_service_helpers.py::test_fill_missing_t2i_prompts_preserves_existing_cinematic",
  "tests/services/test_image_service_helpers.py::test_fill_missing_t2i_prompts_single_variation_no_closeup_from_vars",
  "tests/services/test_image_service_helpers.py::test_get_latest_world_guide_handles_invalid_json",
  "tests/services/test_image_service_helpers.py::test_get_latest_world_guide_parses_json",
  "tests/services/test_image_service_helpers.py::test_get_latest_world_guide_returns_empty_when_none",
  "tests/services/test_image_service_helpers.py::test_image_to_dict_includes_all_fields",
  "tests/services/test_image_service_helpers.py::test_image_to_dict_null_reference_image_ids_becomes_empty_list",
  "tests/services/test_image_service_helpers.py::test_image_to_dict_null_review_notes_becomes_empty_string",
  "tests/services/test_image_service_helpers.py::test_populate_t2i_prompts_all_from_orm",
  "tests/services/test_image_service_helpers.py::test_populate_t2i_prompts_invalid_json_becomes_empty_list",
  "tests/services/test_image_service_helpers.py::test_populate_t2i_prompts_missing_but_has_variations_no_converter",
  "tests/services/test_image_service_helpers.py::test_populate_t2i_prompts_runtime_fallback_dict_result",
  "tests/services/test_image_service_helpers.py::test_populate_t2i_prompts_runtime_fallback_str_result",
  "tests/services/test_image_service_helpers.py::test_populate_t2i_prompts_runtime_skip_missing_scene",
  "tests/services/test_image_service_phase_api.py::test_generate_base_references_default_mode_resume",
  "tests/services/test_image_service_phase_api.py::test_generate_base_references_delegates_with_skip_composite_true",
  "tests/services/test_image_service_phase_api.py::test_generate_composites_delegates_with_skip_composite_false",
  "tests/services/test_image_service_phase_api.py::test_generate_composites_full_mode_passthrough",
  "tests/services/test_image_service_phase_api.py::test_generate_reference_images_only_preserved_signature",
  "tests/services/test_image_upload_service.py::test_image_service_facade_injects_upload_svc",
  "tests/services/test_image_upload_service.py::test_upload_entity_not_found_raises",
  "tests/services/test_image_upload_service.py::test_upload_entity_without_link_defaults_to_shared",
  "tests/services/test_image_upload_service.py::test_upload_extension_preserves_known_suffix",
  "tests/services/test_image_upload_service.py::test_upload_fallback_episode_shared",
  "tests/services/test_image_upload_service.py::test_upload_no_extension_defaults_to_png",
  "tests/services/test_image_upload_service.py::test_upload_still_not_found_raises",
  "tests/services/test_image_upload_service.py::test_upload_with_entity_saves_reference",
  "tests/services/test_image_upload_service.py::test_upload_with_still_saves_scene",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_atomic_write_failure_skips_accepted_capture",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_cache_key_changes_with_inputs",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_gate_no_figures_returns_none",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_gate_no_plate_returns_none",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_no_bg_asset_id_marks_unresolved_inputs",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_qc_fail_captures_rejected",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_qc_fail_returns_none",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_qc_mannequin_count_tolerance",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_qc_pass_and_representative_fails",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_qc_pass_captures_accepted",
  "tests/services/test_indoor_shared_pose_guide_service.py::test_qc_pass_writes_and_returns",
  "tests/services/test_location_part_sync_endpoint.py::TestALegacyCheckpointNeverDeletesAPartLink::test_a_legacy_completed_sync_keeps_the_part_link",
  "tests/services/test_location_part_sync_endpoint.py::TestALegacyCheckpointNeverDeletesAPartLink::test_a_legacy_sync_still_cleans_its_own_stale_links",
  "tests/services/test_location_part_sync_endpoint.py::TestALocationPartReachesTheDatabase::test_a_location_and_a_part_may_share_a_name",
  "tests/services/test_location_part_sync_endpoint.py::TestALocationPartReachesTheDatabase::test_a_part_only_checkpoint_inserts_a_canon_and_a_link",
  "tests/services/test_location_part_sync_endpoint.py::TestALocationPartReachesTheDatabase::test_the_neutral_shape_is_accepted",
  "tests/services/test_location_part_sync_endpoint.py::TestAMalformedRelationNeverReachesTheDatabase::test_it_is_refused_before_any_row_is_written[-L01]",
  "tests/services/test_location_part_sync_endpoint.py::TestAMalformedRelationNeverReachesTheDatabase::test_it_is_refused_before_any_row_is_written[C01-P01]",
  "tests/services/test_location_part_sync_endpoint.py::TestAMalformedRelationNeverReachesTheDatabase::test_it_is_refused_before_any_row_is_written[L01-L01]",
  "tests/services/test_location_part_sync_endpoint.py::TestAMalformedRelationNeverReachesTheDatabase::test_it_is_refused_before_any_row_is_written[LP01-P01]",
  "tests/services/test_location_part_sync_endpoint.py::TestAMalformedRelationNeverReachesTheDatabase::test_it_is_refused_before_any_row_is_written[LPfoo-L01]",
  "tests/services/test_location_part_sync_endpoint.py::TestAMalformedRelationNeverReachesTheDatabase::test_it_is_refused_before_any_row_is_written[P01-L01]",
  "tests/services/test_location_part_sync_endpoint.py::TestAMissingCanonStopsBeforeDeleting::test_it_raises_and_keeps_the_existing_relation",
  "tests/services/test_location_part_sync_endpoint.py::TestAnUnknownMarkerStops::test_it_refuses_instead_of_falling_back_to_legacy",
  "tests/services/test_location_part_sync_endpoint.py::TestTheGuardIsActuallyCalled::test_it_fires_when_the_validator_falls_behind",
  "tests/services/test_location_part_sync_endpoint.py::TestTheGuardIsActuallyCalled::test_production_calls_it_before_the_loop",
  "tests/services/test_location_part_sync_endpoint.py::TestTheMigrationChangeDoesNotRenumberExistingOwners::test_a_non_numeric_tail_is_skipped_instead_of_crashing",
  "tests/services/test_location_part_sync_endpoint.py::TestTheMigrationChangeDoesNotRenumberExistingOwners::test_both_expressions_agree_on_every_standard_id",
  "tests/services/test_location_part_sync_endpoint.py::TestTheMigrationChangeDoesNotRenumberExistingOwners::test_the_old_expression_would_have_crashed",
  "tests/services/test_location_part_sync_endpoint.py::TestThePartOfRelationReachesTheDatabase::test_a_partial_checkpoint_never_deletes",
  "tests/services/test_location_part_sync_endpoint.py::TestThePartOfRelationReachesTheDatabase::test_a_stale_part_of_is_removed_on_a_completed_checkpoint",
  "tests/services/test_location_part_sync_endpoint.py::TestThePartOfRelationReachesTheDatabase::test_a_stale_part_of_is_removed_when_the_cp_speaks_of_it",
  "tests/services/test_location_part_sync_endpoint.py::TestThePartOfRelationReachesTheDatabase::test_a_visual_variant_only_cp_does_not_delete_part_of",
  "tests/services/test_location_part_sync_endpoint.py::TestThePartOfRelationReachesTheDatabase::test_it_writes_a_fact_with_part_and_whole_roles",
  "tests/services/test_location_part_sync_endpoint.py::TestThePartOfRelationReachesTheDatabase::test_part_of_sync_does_not_delete_visual_variants",
  "tests/services/test_location_part_sync_endpoint.py::TestThePartOfRelationReachesTheDatabase::test_running_it_twice_does_not_duplicate",
  "tests/services/test_location_part_sync_endpoint.py::TestTheStartupMigrationSurvivesATwoLetterPrefix::test_init_db_runs_again_with_a_two_letter_prefix_present",
  "tests/services/test_location_part_sync_endpoint.py::TestTheStartupMigrationSurvivesATwoLetterPrefix::test_the_migration_knows_the_two_letter_prefix",
  "tests/services/test_low_freq_shelving_pg.py::test_short_id_없는_판단은_살린다",
  "tests/services/test_low_freq_shelving_pg.py::test_걸러진_행이_통째로_남는다",
  "tests/services/test_low_freq_shelving_pg.py::test_다음_화에_다시_나오면_같은_번호로_되살아난다",
  "tests/services/test_low_freq_shelving_pg.py::test_보내지_않은_대상은_안_지운다",
  "tests/services/test_low_freq_shelving_pg.py::test_보류_행은_다음_화_명부에_실린다",
  "tests/services/test_low_freq_shelving_pg.py::test_보류_행이_canon_과_shelved_링크로_남는다",
  "tests/services/test_low_freq_shelving_pg.py::test_옛_체크포인트는_보류_0_이_아니라_모른다로_지나간다",
  "tests/services/test_low_freq_shelving_pg.py::test_제거는_short_id_로_정한다",
  "tests/services/test_low_freq_shelving_pg.py::test_하류_게이트가_보류_행을_대상에서_뺀다",
  "tests/services/test_manual_primary_two_visits.py::test_a_new_output_is_stored_once_and_then_reused",
  "tests/services/test_manual_primary_two_visits.py::test_an_upload_after_the_fact_corrects_the_checkpoint_once",
  "tests/services/test_manual_primary_two_visits.py::test_second_visit_stores_nothing_and_keeps_the_human_primary",
  "tests/services/test_manual_primary_two_visits.py::test_the_stub_rejects_an_inverted_condition",
  "tests/services/test_multi_episode_outlook_preservation_pg.py::test_1화_링크는_그대로_있고_2화_링크만_이번_CP_를_따른다",
  "tests/services/test_multi_episode_outlook_preservation_pg.py::test_1화_옷_배정이_2화_sync_로_안_지워진다",
  "tests/services/test_multi_episode_outlook_preservation_pg.py::test_2화_sync_가_1화_아웃룩_canon_을_안_지운다",
  "tests/services/test_multi_episode_outlook_preservation_pg.py::test_O00_은_고아로_표시되지_않는다",
  "tests/services/test_multi_episode_outlook_preservation_pg.py::test_아무_데도_안_붙은_아웃룩은_지우지_않고_표시만_한다",
  "tests/services/test_multi_episode_outlook_preservation_pg.py::test_화_칸_없는_legacy_배정은_지우지_않고_이어받는다",
  "tests/services/test_outdoor_direct_context.py::test_camera_fields_missing_skips_direct",
  "tests/services/test_outdoor_direct_context.py::test_canon_failed_group_skipped",
  "tests/services/test_outdoor_direct_context.py::test_direct_entry_assembled",
  "tests/services/test_outdoor_direct_context.py::test_direct_entry_carries_prompt_version",
  "tests/services/test_outdoor_direct_context.py::test_flag_off_returns_empty",
  "tests/services/test_outdoor_direct_context.py::test_missing_cps_returns_empty",
  "tests/services/test_outdoor_direct_context.py::test_shot_without_description_skipped",
  "tests/services/test_outdoor_direct_place_continuity.py::test_canon_insert_after_prev_keeps_photo_first",
  "tests/services/test_outdoor_direct_place_continuity.py::test_canon_solo_keeps_sole_wording",
  "tests/services/test_outdoor_direct_place_continuity.py::test_combined_payload_canon_primary_prev_details_no_contradiction",
  "tests/services/test_outdoor_direct_place_continuity.py::test_default_branch_unchanged_without_marker",
  "tests/services/test_outdoor_direct_place_continuity.py::test_direct_place_continuity_branch_instructions",
  "tests/services/test_outdoor_direct_place_continuity.py::test_stamp_sites_parity_single_and_batch",
  "tests/services/test_outdoor_direct_wiring.py::test_insert_canon_refs_missing_asset_id_omitted",
  "tests/services/test_outdoor_direct_wiring.py::test_insert_canon_refs_order_parity_and_lineage",
  "tests/services/test_outdoor_direct_wiring.py::test_resolver_prompts_fallback_without_od",
  "tests/services/test_outdoor_direct_wiring.py::test_resolver_prompts_use_direct_prompt_when_od",
  "tests/services/test_outfit_is_told_in_words_not_only_the_sheet.py::test_a_composite_sheet_also_says_the_outfit_in_words",
  "tests/services/test_outfit_is_told_in_words_not_only_the_sheet.py::test_a_state_variant_wins_and_brings_no_outfit_text",
  "tests/services/test_outfit_is_told_in_words_not_only_the_sheet.py::test_an_explicit_null_outlook_does_not_get_a_wearing_line",
  "tests/services/test_outfit_is_told_in_words_not_only_the_sheet.py::test_the_base_sheet_does_not_invent_an_outfit",
  "tests/services/test_outfit_is_told_in_words_not_only_the_sheet.py::test_the_lock_being_off_keeps_the_old_text",
  "tests/services/test_outlook_delta_sync.py::test_character_outlook_delta_dedups_duplicate_rows",
  "tests/services/test_outlook_delta_sync.py::test_character_outlook_delta_deletes_gone_pairs",
  "tests/services/test_outlook_delta_sync.py::test_character_outlook_delta_inserts_new_pairs",
  "tests/services/test_outlook_delta_sync.py::test_character_outlook_delta_noop_when_identical",
  "tests/services/test_outlook_episode_link_upsert_pg.py::test_still_recipe_가_읽는_자리에_그_outlook_이_실린다",
  "tests/services/test_outlook_episode_link_upsert_pg.py::test_두_번_sync_해도_link_가_안_늘어난다",
  "tests/services/test_outlook_episode_link_upsert_pg.py::test_옛_에피소드_link_는_그대로_남는다",
  "tests/services/test_outlook_episode_link_upsert_pg.py::test_이미_있던_outlook_이_새_에피소드_link_를_받는다",
  "tests/services/test_p0_attached_asset_id_lineage.py::test_base_ref_stamps_asset_id_when_map_provided",
  "tests/services/test_p0_attached_asset_id_lineage.py::test_collect_actual_attached_refs_dedup_and_unresolved",
  "tests/services/test_p0_attached_asset_id_lineage.py::test_collect_bg_id_only_is_unresolved_not_uuid",
  "tests/services/test_p0_attached_asset_id_lineage.py::test_collect_preserves_structural_fields_in_unresolved",
  "tests/services/test_p0_attached_asset_id_lineage.py::test_composite_stamps_from_composite_key",
  "tests/services/test_p0_attached_asset_id_lineage.py::test_no_map_is_byte_identical_metadata",
  "tests/services/test_p8_i1_registered_pose_guide.py::test_attach_flag_off_is_noop",
  "tests/services/test_p8_i1_registered_pose_guide.py::test_immobilized_pose_guide_in_enum",
  "tests/services/test_p8_i1_registered_pose_guide.py::test_pose_guide_does_not_satisfy_required_character",
  "tests/services/test_p8_i1_registered_pose_guide.py::test_render_branch_emits_pose_support_and_real_human",
  "tests/services/test_p8_i1_registered_pose_guide.py::test_render_branch_lifeless_only_when_dead",
  "tests/services/test_p8_i1_registered_pose_guide.py::test_zoomed_lock_aligns_with_pose_guide_when_present",
  "tests/services/test_p8_i1_registered_pose_guide.py::test_zoomed_lock_without_pose_guide_uses_image_wins",
  "tests/services/test_phase4_iter7_stabilization.py::test_b1_legacy_validator_disabled_when_mode_is_off",
  "tests/services/test_phase4_iter7_stabilization.py::test_b1_legacy_validator_disabled_when_mode_is_ref_only",
  "tests/services/test_phase4_iter7_stabilization.py::test_b1_legacy_validator_disabled_when_mode_is_sample",
  "tests/services/test_phase4_iter7_stabilization.py::test_b1_legacy_validator_disabled_when_mode_is_targeted",
  "tests/services/test_phase4_iter7_stabilization.py::test_b1_legacy_validator_enabled_only_when_mode_is_full",
  "tests/services/test_phase4_iter7_stabilization.py::test_b1_legacy_validator_returns_none_when_no_api_key_even_in_full",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_extractor_v3_extract_entities_marked_deprecated",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_behavioral_empty_source_does_not_fallback_to_llm",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_behavioral_ignores_llm_semantic_fields",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_default_model_is_gemini_pro",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_forwards_description_from_entity_detail",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_legacy_forwards_description_from_gpt_detail",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_legacy_step_source_forward_pattern",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_project_config_override_takes_precedence",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_resolves_to_gemini_pro_in_router",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_resolves_to_gemini_pro_when_no_override",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_schema_version_bumped_to_two",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_short_description_removed_from_schema",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_short_description_removed_from_step_output",
  "tests/services/test_phase4_iter7_stabilization.py::test_entity_t2i_v4_step_source_forward_pattern",
  "tests/services/test_phase4_iter7_stabilization.py::test_i1_single_scene_callsite_forwards_still_attributes",
  "tests/services/test_phase4_iter7_stabilization.py::test_i1_single_scene_path_signature_accepts_scene_shot_index",
  "tests/services/test_phase4_iter7_stabilization.py::test_i2_config_sample_rate_boundary_accepts_zero_and_one",
  "tests/services/test_phase4_iter7_stabilization.py::test_i2_config_sample_rate_field_validator_rejects_out_of_range",
  "tests/services/test_phase4_iter7_stabilization.py::test_iter2_m1_config_targeted_shot_ids_accepts_one_based",
  "tests/services/test_phase4_iter7_stabilization.py::test_iter2_m1_config_targeted_shot_ids_rejects_zero_and_negative",
  "tests/services/test_phase4_iter7_stabilization.py::test_m2_config_targeted_shot_ids_empty_passes",
  "tests/services/test_phase4_iter7_stabilization.py::test_m2_config_targeted_shot_ids_normalizes_zero_padding",
  "tests/services/test_phase4_iter7_stabilization.py::test_m2_config_targeted_shot_ids_rejects_invalid_token",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_full_always_runs",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_off_always_skips",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_ref_only_skips_scene",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_sample_deterministic_distinct_still_ids",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_sample_deterministic_with_still_id",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_sample_rate_one_always_runs",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_sample_rate_out_of_range_raises",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_sample_rate_zero_always_skips",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_sample_runs_when_rng_below_rate",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_sample_seed_fallback_to_pid_scene_shot",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_sample_skips_when_rng_above_rate",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_targeted_in_list_runs",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_targeted_int_normalize_invalid_meta_skips",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_targeted_int_normalize_str_meta",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_targeted_no_meta_skips",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_targeted_not_in_list_skips",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_decide_unknown_mode_raises",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_default_mode_is_off",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_settings_targeted_shot_ids_str_default_empty",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_severe_regen_does_not_trigger_on_skip_marker",
  "tests/services/test_phase4_iter7_stabilization.py::test_scene_lvm_skip_marker_signals_no_validation",
  "tests/services/test_phase4_iter7_stabilization.py::test_skip_marker_docstring_clarifies_matches_prompt_meaning",
  "tests/services/test_phase4_iter7_stabilization.py::test_w1_call_gpt_lvm_does_not_pass_temperature",
  "tests/services/test_phase4_iter7_stabilization.py::test_w1_ref_pipeline_no_silent_ok_severity_fallback",
  "tests/services/test_phase4_iter7_stabilization.py::test_w1_scene_pipeline_no_silent_ok_severity_fallback",
  "tests/services/test_phase4_iter7_stabilization.py::test_w3_ref_pipeline_accepts_trace_meta",
  "tests/services/test_phase4_iter7_stabilization.py::test_w3_scene_pipeline_accepts_trace_meta",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_fails_on_non_string_entry",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_helper_is_universal_no_scenario_tokens",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_keep_environment_only_passes_for_walls_and_furniture",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_keep_fails_on_body_part_token",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_keep_fails_on_male_token",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_keep_fails_on_role_token",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_keep_fails_on_woman_token",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_keep_passes_on_body_part_metaphors",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_keep_passes_on_figure_in_environment",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_keep_passes_on_guard_rail",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_passes_on_empty_list_and_empty_string",
  "tests/services/test_phase4_iter7_stabilization.py::test_w7_silent_pass_for_empty_list",
  "tests/services/test_pipeline_graph_service.py::test_background_and_fp_edges",
  "tests/services/test_pipeline_graph_service.py::test_background_consumer_enabled_flag",
  "tests/services/test_pipeline_graph_service.py::test_background_no_matching_shot_yields_no_bg_edge",
  "tests/services/test_pipeline_graph_service.py::test_background_virtual_node_when_no_db_chain_bg",
  "tests/services/test_pipeline_graph_service.py::test_dangling_input_ref_skipped_and_counted",
  "tests/services/test_pipeline_graph_service.py::test_edge_ids_stable_unique_deterministic",
  "tests/services/test_pipeline_graph_service.py::test_empty_project_returns_empty_graph",
  "tests/services/test_pipeline_graph_service.py::test_episode_filter_excludes_other_episode_scenes",
  "tests/services/test_pipeline_graph_service.py::test_i2i_chain_edges",
  "tests/services/test_pipeline_graph_service.py::test_i2i_source_and_parent_dedup",
  "tests/services/test_pipeline_graph_service.py::test_image_asset_nodes_mapping",
  "tests/services/test_pipeline_graph_service.py::test_input_edge_coexists_with_structural_edge",
  "tests/services/test_pipeline_graph_service.py::test_input_image_ids_generated_input_edges",
  "tests/services/test_pipeline_graph_service.py::test_invalid_pipeline_metadata_is_non_fatal",
  "tests/services/test_pipeline_graph_service.py::test_list_episodes_ordered_by_number",
  "tests/services/test_pipeline_graph_service.py::test_load_background_groups_missing_checkpoint_returns_empty",
  "tests/services/test_pipeline_graph_service.py::test_load_background_groups_reads_phase7_manifest",
  "tests/services/test_pipeline_graph_service.py::test_malformed_reference_ids_no_crash",
  "tests/services/test_pipeline_graph_service.py::test_node_pipeline_role_disposition_intermediate",
  "tests/services/test_pipeline_graph_service.py::test_overlay_label_content_invariant",
  "tests/services/test_pipeline_graph_service.py::test_overlay_no_call_log_keeps_unverified",
  "tests/services/test_pipeline_graph_service.py::test_overlay_prompt_authoritative_on_node_not_edge",
  "tests/services/test_pipeline_graph_service.py::test_overlay_ref_zero_marks_call_log_no_refs",
  "tests/services/test_pipeline_graph_service.py::test_overlay_refs_present_unresolved",
  "tests/services/test_pipeline_graph_service.py::test_prev_scene_edges",
  "tests/services/test_pipeline_graph_service.py::test_reference_lineage_edges_and_dangling_filter",
  "tests/services/test_planning_doc_analysis_service.py::test_atomic_write_no_tmp_leftover",
  "tests/services/test_planning_doc_analysis_service.py::test_clear_project_checkpoint_removes_staging_files",
  "tests/services/test_planning_doc_analysis_service.py::test_get_planning_context_uses_validated_reader",
  "tests/services/test_planning_doc_analysis_service.py::test_load_project_checkpoint_accepts_legacy_no_source_hash",
  "tests/services/test_planning_doc_analysis_service.py::test_load_project_checkpoint_accepts_when_source_hash_matches",
  "tests/services/test_planning_doc_analysis_service.py::test_load_project_checkpoint_rejects_stale_source_hash",
  "tests/services/test_planning_doc_analysis_service.py::test_load_project_checkpoint_rejects_stale_source_hash_without_unlink",
  "tests/services/test_planning_doc_analysis_service.py::test_load_status_corrupt_json_surfaces_as_error",
  "tests/services/test_planning_doc_analysis_service.py::test_load_status_missing_returns_idle",
  "tests/services/test_planning_doc_analysis_service.py::test_outer_except_respects_stale_job_guard",
  "tests/services/test_planning_doc_analysis_service.py::test_project_has_planning_doc_false_when_only_empty_manifest",
  "tests/services/test_planning_doc_analysis_service.py::test_project_has_planning_doc_true_when_manifest_has_content",
  "tests/services/test_planning_doc_analysis_service.py::test_project_has_planning_doc_true_when_only_pdf",
  "tests/services/test_planning_doc_analysis_service.py::test_project_lock_serializes_concurrent_writes",
  "tests/services/test_planning_doc_analysis_service.py::test_reader_does_not_unlink_during_concurrent_promote",
  "tests/services/test_planning_doc_analysis_service.py::test_run_sync_outer_except_respects_stale_job_guard",
  "tests/services/test_planning_doc_analysis_service.py::test_run_sync_phase1_exception_marks_status_error",
  "tests/services/test_planning_doc_analysis_service.py::test_run_sync_phase2_text_fallback_exception_marks_status_error",
  "tests/services/test_planning_doc_analysis_service.py::test_run_sync_success_path_reaches_the_reader",
  "tests/services/test_planning_doc_analysis_service.py::test_run_sync_success_path_writes_locations_and_done",
  "tests/services/test_planning_doc_analysis_service.py::test_source_hash_changes_when_pdf_changes",
  "tests/services/test_planning_doc_analysis_service.py::test_source_hash_changes_when_text_changes",
  "tests/services/test_planning_doc_analysis_service.py::test_source_hash_deterministic_same_input",
  "tests/services/test_planning_doc_analysis_service.py::test_status_write_race_dispatch_and_running_status",
  "tests/services/test_planning_doc_analysis_service.py::test_thread_race_late_finisher_does_not_resurrect_stale_sot",
  "tests/services/test_planning_doc_analysis_service.py::test_write_manifest_drops_when_status_job_id_mismatches_at_l1",
  "tests/services/test_planning_doc_analysis_service.py::test_write_manifest_l3_does_not_clobber_other_jobs_manifest",
  "tests/services/test_planning_doc_analysis_service.py::test_write_manifest_promote_drop_only_removes_own_staging",
  "tests/services/test_planning_doc_analysis_service.py::test_write_manifest_promotes_via_staging_when_status_matches",
  "tests/services/test_pose_lock_keeps_body_identity_reference.py::test_body_identity_character_keeps_reference_under_pose_lock",
  "tests/services/test_pose_lock_keeps_body_identity_reference.py::test_human_character_is_still_excluded_under_pose_lock",
  "tests/services/test_project_queue_pg.py::test_queued_가_DB_에_남는다",
  "tests/services/test_project_queue_pg.py::test_대기열이_배경작업_주입을_가리지_않는다",
  "tests/services/test_project_queue_pg.py::test_대기열이_프로젝트_자리를_끝까지_들고_있다",
  "tests/services/test_project_queue_pg.py::test_대기열이_화수_순서로_돈다",
  "tests/services/test_project_queue_pg.py::test_도는_중이면_대기열_등록을_거절한다",
  "tests/services/test_project_queue_pg.py::test_등록_실패하면_queued_를_되돌린다",
  "tests/services/test_project_queue_pg.py::test_락이_프로젝트_하나다",
  "tests/services/test_project_queue_pg.py::test_앞_화가_실패하면_뒤_화가_선다",
  "tests/services/test_project_queue_pg.py::test_이_프로젝트에_없는_에피소드는_거절한다",
  "tests/services/test_project_queue_pg.py::test_화수가_겹치면_시작_전에_선다",
  "tests/services/test_prompt_effective_view.py::test_effective_both_candidates_diverge_by_mode",
  "tests/services/test_prompt_effective_view.py::test_effective_db_exception_falls_back_to_file",
  "tests/services/test_prompt_effective_view.py::test_effective_db_only_winner_diverges_by_mode",
  "tests/services/test_prompt_effective_view.py::test_effective_db_picks_numeric_latest_when_multiple_active",
  "tests/services/test_prompt_effective_view.py::test_effective_db_winner",
  "tests/services/test_prompt_effective_view.py::test_effective_file_fallback_when_no_db_row",
  "tests/services/test_prompt_effective_view.py::test_effective_file_fallback_when_no_db_session",
  "tests/services/test_prompt_effective_view.py::test_effective_file_only_when_no_db_row",
  "tests/services/test_prompt_effective_view.py::test_effective_file_skips_versions_without_target",
  "tests/services/test_prompt_effective_view.py::test_effective_no_candidates",
  "tests/services/test_prompt_effective_view.py::test_effective_no_db_session_argument",
  "tests/services/test_prompt_effective_view.py::test_effective_special_chars_in_name_no_crash",
  "tests/services/test_prompt_format_kwargs.py::test_system_loads_without_kwargs_keeps_single_brace",
  "tests/services/test_prompt_format_kwargs.py::test_turn_entity_detail_loads_for_all_entity_types[character]",
  "tests/services/test_prompt_format_kwargs.py::test_turn_entity_detail_loads_for_all_entity_types[location]",
  "tests/services/test_prompt_format_kwargs.py::test_turn_entity_detail_loads_for_all_entity_types[outlook]",
  "tests/services/test_prompt_format_kwargs.py::test_turn_entity_detail_loads_for_all_entity_types[prop]",
  "tests/services/test_prompt_format_kwargs.py::test_turn_entity_detail_loads_with_kwargs_without_keyerror",
  "tests/services/test_prompt_format_kwargs.py::test_turn_entity_detail_no_double_brace_residue_after_format",
  "tests/services/test_prompt_format_kwargs.py::test_turn_entity_detail_preserves_single_brace_json_after_format",
  "tests/services/test_prompt_loader_absorption.py::test_effective_source_covers_absorbed_modules[image_validation-reference_validation]",
  "tests/services/test_prompt_loader_absorption.py::test_effective_source_covers_absorbed_modules[pdf_validation-validate]",
  "tests/services/test_prompt_loader_absorption.py::test_effective_source_covers_absorbed_modules[prompt_sanitizer-sanitize_system]",
  "tests/services/test_prompt_loader_absorption.py::test_effective_source_covers_absorbed_modules[scene_image-translate_prompt]",
  "tests/services/test_prompt_loader_absorption.py::test_load_prompt_dispatches_to_prompt_loader[app.modules.image_validator-image_validation-pdf_validation-pdf_validation.md]",
  "tests/services/test_prompt_loader_absorption.py::test_load_prompt_dispatches_to_prompt_loader[app.modules.image_validator-image_validation-reference_validation-reference_validation.md]",
  "tests/services/test_prompt_loader_absorption.py::test_load_prompt_dispatches_to_prompt_loader[app.modules.image_validator-image_validation-scene_validation-scene_validation.md]",
  "tests/services/test_prompt_loader_absorption.py::test_load_prompt_dispatches_to_prompt_loader[app.modules.pdf_validator-pdf_validation-validate-validate.md]",
  "tests/services/test_prompt_loader_absorption.py::test_load_prompt_dispatches_to_prompt_loader[app.modules.prompt_sanitizer-prompt_sanitizer-sanitize_system-sanitize_system.md]",
  "tests/services/test_prompt_loader_absorption.py::test_load_prompt_dispatches_to_prompt_loader[app.modules.prompt_sanitizer-prompt_sanitizer-sanitize_user-sanitize_user.md]",
  "tests/services/test_prompt_loader_absorption.py::test_load_prompt_preserves_no_extension_argument",
  "tests/services/test_prompt_loader_absorption.py::test_no_hardcoded_v1_path_in_prompt_callers[app/modules/image_validator.py-banned_patterns1]",
  "tests/services/test_prompt_loader_absorption.py::test_no_hardcoded_v1_path_in_prompt_callers[app/modules/pdf_validator.py-banned_patterns2]",
  "tests/services/test_prompt_loader_absorption.py::test_no_hardcoded_v1_path_in_prompt_callers[app/modules/prompt_sanitizer.py-banned_patterns0]",
  "tests/services/test_prompt_loader_absorption.py::test_prompt_service_translate_uses_load_prompt",
  "tests/services/test_prompt_loader_absorption.py::test_translate_short_circuits_for_english_only",
  "tests/services/test_prompt_loader_absorption.py::test_translate_skips_when_template_missing",
  "tests/services/test_prompt_loader_absorption.py::test_translate_uses_load_prompt_with_format_kwargs",
  "tests/services/test_prompt_service.py::test_build_final_scene_prompt_deterministic_snapshot_no_korean",
  "tests/services/test_prompt_service.py::test_build_final_scene_prompt_image_service_wrapper_matches_module",
  "tests/services/test_prompt_service.py::test_build_final_scene_prompt_pipeline_smoke",
  "tests/services/test_prompt_service.py::test_build_scene_text_composes_in_expected_order",
  "tests/services/test_prompt_service.py::test_build_scene_text_strips_duplicate_photorealistic_prefix",
  "tests/services/test_prompt_service.py::test_prompt_service_translate_no_phantom_closed_list",
  "tests/services/test_prompt_service.py::test_replace_entity_ids_composite_fallback_to_char_entity_text",
  "tests/services/test_prompt_service.py::test_replace_entity_ids_falls_back_to_entity_text_map_when_no_ref",
  "tests/services/test_prompt_service.py::test_replace_entity_ids_handles_standalone_prop_with_ref",
  "tests/services/test_prompt_service.py::test_replace_entity_ids_mixed_composite_and_standalone",
  "tests/services/test_prompt_service.py::test_replace_entity_ids_multiple_refs_numbered_correctly",
  "tests/services/test_prompt_service.py::test_replace_entity_ids_removes_in_oxx_tail",
  "tests/services/test_prompt_service.py::test_replace_entity_ids_standalone_location_outside_bracket",
  "tests/services/test_prompt_service.py::test_replace_entity_ids_strips_bracketed_location_descriptor",
  "tests/services/test_prompt_service.py::test_replace_entity_ids_strips_camera_angle_prefix",
  "tests/services/test_prompt_service.py::test_replace_entity_ids_substitutes_composite_id_with_ref_num",
  "tests/services/test_prompt_service.py::test_resolve_ref_roles_background_chain_ref_uses_strong_directive",
  "tests/services/test_prompt_service.py::test_resolve_ref_roles_background_label_uses_architecture",
  "tests/services/test_prompt_service.py::test_resolve_ref_roles_character_label_generates_appearance_instruction",
  "tests/services/test_prompt_service.py::test_resolve_ref_roles_empty_returns_no_reference_marker",
  "tests/services/test_prompt_service.py::test_resolve_ref_roles_outfit_label_generates_standalone_instruction",
  "tests/services/test_prompt_service.py::test_resolve_ref_roles_previous_scene_limits_to_atmosphere",
  "tests/services/test_prompt_service.py::test_resolve_ref_roles_previous_shot_same_room_keeps_background",
  "tests/services/test_prompt_service.py::test_translate_if_korean_handles_empty_version_dir",
  "tests/services/test_prompt_service.py::test_translate_if_korean_handles_missing_prompt_dir",
  "tests/services/test_prompt_service.py::test_translate_if_korean_invokes_llm_when_korean_detected",
  "tests/services/test_prompt_service.py::test_translate_if_korean_passes_english_unchanged",
  "tests/services/test_prompt_service.py::test_translate_if_korean_returns_original_on_llm_failure",
  "tests/services/test_prompt_service_label_routing.py::test_all_11_enum_values_have_dispatch_branch",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label[Image 1 (face reference): some name-character_ref]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label[Image 2 (character reference): generic name brief \\u2014 Set in modern context-character_ref]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label[Image 3 (object reference): generic prop-prop_ref]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label[outfit appearance-outfit_ref_explicit]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label[pre-rendered BACKGROUND chain reference \\u2014 use as-is-background_chain_ref]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label[previous shot at same location (SAME FRAME ZOOMED) \\u2014 reuse this exact frame as the base. Do NOT change the pose-previous_shot_same_frame_zoomed]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label[previous shot at same location (SAME ROOM) \\u2014 use this background as-is. Ignore the close-up face framing and the tight shoulder-level crop. Keep: the dense forest clearing, the cold dusk lighting-previous_shot_same_room]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label[some generic ref text-fallback]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label[standalone outfit/costume reference-outfit_ref_explicit]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_character_identity_no_false_positive_in_brief[Image 3 (object reference): prop with character identity text-prop_ref]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_character_identity_no_false_positive_in_brief[character identity at the door-fallback]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_character_identity_no_false_positive_in_brief[previous shot at same location (SAME ROOM) \\u2014 use this background as-is. Keep the established character identity references.-previous_shot_same_room]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_character_reference_no_false_positive_in_brief[Image 3 (object reference): prop with character reference: from catalog-prop_ref]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_character_reference_no_false_positive_in_brief[Image 4 (object reference): prop with face reference: printed label-prop_ref]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_character_reference_no_false_positive_in_brief[background/environment reference. character reference: irrelevant-background_general]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_extended_branches[Image 1 (character outfit): wearing a dark jacket-outfit_ref_inline]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_extended_branches[background/environment reference.-background_general]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_extended_branches[continuity reference for next scene-previous_shot_continuity]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_extended_branches[previous scene background continuity-previous_shot_continuity]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_extended_branches[the character is wearing dark clothes-outfit_ref_inline]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_legacy_character_identity_routes_to_character[Image 1: character identity]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_legacy_character_identity_routes_to_character[character identity]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_previous_shot_takes_precedence_over_outfit_substring[previous shot at same location (SAME FRAME ZOOMED) \\u2014 reuse this exact frame. Keep the same character wearing the same jacket-previous_shot_same_frame_zoomed]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_previous_shot_takes_precedence_over_outfit_substring[previous shot at same location (SAME ROOM) \\u2014 use this background as-is. Ignore the character wearing the red shirt. Keep: forest clearing-previous_shot_same_room]",
  "tests/services/test_prompt_service_label_routing.py::test_classify_label_previous_shot_takes_precedence_over_outfit_substring[previous shot at same location (SAME ROOM) \\u2014 use this background as-is. Ignore the old outfit-previous_shot_same_room]",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_background_chain_ref",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_background_general",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_character_ref",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_character_state_ref_with_state_metadata",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_character_state_ref_without_state_metadata_falls_back_to_generic",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_fallback",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_outfit_ref_explicit",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_outfit_ref_inline",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_previous_shot_continuity",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_previous_shot_same_frame_zoomed",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_previous_shot_same_room",
  "tests/services/test_prompt_service_label_routing.py::test_dispatch_prop_ref",
  "tests/services/test_prompt_service_label_routing.py::test_empty_payload_returns_no_reference_marker_with_trailing_directives",
  "tests/services/test_prompt_service_label_routing.py::test_is_explicit_character_ref_label_negative_face_framing",
  "tests/services/test_prompt_service_label_routing.py::test_is_explicit_character_ref_label_negative_face_substring_words",
  "tests/services/test_prompt_service_label_routing.py::test_is_explicit_character_ref_label_positive[character reference: name]",
  "tests/services/test_prompt_service_label_routing.py::test_is_explicit_character_ref_label_positive[face reference: name]",
  "tests/services/test_prompt_service_label_routing.py::test_is_explicit_character_ref_label_positive[image 1 (face reference): name]",
  "tests/services/test_prompt_service_label_routing.py::test_is_explicit_character_ref_label_positive[image 2 (character reference): some brief]",
  "tests/services/test_prompt_service_label_routing.py::test_multi_ref_dispatches_each_role_independently",
  "tests/services/test_prompt_service_label_routing.py::test_outfit_ref_explicit_refuses_to_guess[C01O02]",
  "tests/services/test_prompt_service_label_routing.py::test_outfit_ref_explicit_refuses_to_guess[None]",
  "tests/services/test_prompt_service_label_routing.py::test_outfit_ref_explicit_refuses_to_guess[subjects1]",
  "tests/services/test_prompt_service_label_routing.py::test_outfit_ref_explicit_refuses_to_guess[subjects2]",
  "tests/services/test_prompt_service_label_routing.py::test_outfit_ref_explicit_refuses_to_guess[subjects3]",
  "tests/services/test_prompt_service_label_routing.py::test_previous_shot_same_frame_zoomed_emits_keep_and_ignore_from_metadata",
  "tests/services/test_prompt_service_label_routing.py::test_previous_shot_same_frame_zoomed_immobilized_subjects_emits_pose_lock",
  "tests/services/test_prompt_service_label_routing.py::test_previous_shot_same_frame_zoomed_without_immobilized_no_pose_lock",
  "tests/services/test_prompt_service_label_routing.py::test_previous_shot_same_room_emits_keep_and_ignore_from_metadata",
  "tests/services/test_prompt_service_label_routing.py::test_resolve_ref_roles_d2_fixture_routes_to_bg",
  "tests/services/test_prompt_service_label_routing.py::test_resolve_ref_roles_explicit_character_ref_routes_to_character",
  "tests/services/test_prompt_service_label_routing.py::test_resolve_ref_roles_fallback_label_does_not_match_character",
  "tests/services/test_prompt_service_label_routing.py::test_trailing_universal_directives_always_appended",
  "tests/services/test_prompt_service_payload.py::test_factory_attached_meta_length_mismatch_raises",
  "tests/services/test_prompt_service_payload.py::test_factory_happy_path_returns_payload",
  "tests/services/test_prompt_service_payload.py::test_factory_invalid_enum_value_raises",
  "tests/services/test_prompt_service_payload.py::test_factory_non_dict_metadata_entry_raises",
  "tests/services/test_prompt_service_payload.py::test_factory_non_list_attached_meta_raises",
  "tests/services/test_prompt_service_payload.py::test_factory_non_list_labeled_refs_raises",
  "tests/services/test_prompt_service_payload.py::test_factory_non_list_ref_role_metadata_raises",
  "tests/services/test_prompt_service_payload.py::test_factory_non_list_ref_roles_raises",
  "tests/services/test_prompt_service_payload.py::test_factory_ref_role_metadata_length_mismatch_raises",
  "tests/services/test_prompt_service_payload.py::test_factory_ref_roles_length_mismatch_raises",
  "tests/services/test_prompt_service_payload.py::test_ref_role_values_has_11_entries",
  "tests/services/test_prompt_version_pack.py::test_get_active_version_uses_pack_helper",
  "tests/services/test_prompt_version_pack.py::test_lenient_drift_falls_back_to_older_version",
  "tests/services/test_prompt_version_pack.py::test_lenient_drift_warning_dedup_across_calls",
  "tests/services/test_prompt_version_pack.py::test_lenient_missing_stem_returns_none_silently",
  "tests/services/test_prompt_version_pack.py::test_lenient_no_drift_when_stem_in_latest",
  "tests/services/test_prompt_version_pack.py::test_load_prompt_existing_signature_unchanged",
  "tests/services/test_prompt_version_pack.py::test_load_schema_existing_signature_unchanged",
  "tests/services/test_prompt_version_pack.py::test_module_pack_drift_visible_in_effective_source",
  "tests/services/test_prompt_version_pack.py::test_module_pack_no_drift_when_stem_in_latest",
  "tests/services/test_prompt_version_pack.py::test_module_pack_no_file_candidate_no_drift",
  "tests/services/test_prompt_version_pack.py::test_module_pack_no_module_dir_returns_empty",
  "tests/services/test_prompt_version_pack.py::test_module_pack_strict_enabled_reflects_env",
  "tests/services/test_prompt_version_pack.py::test_strict_env_truthy_parsing[-False]",
  "tests/services/test_prompt_version_pack.py::test_strict_env_truthy_parsing[0-False]",
  "tests/services/test_prompt_version_pack.py::test_strict_env_truthy_parsing[1-True]",
  "tests/services/test_prompt_version_pack.py::test_strict_env_truthy_parsing[True-True]",
  "tests/services/test_prompt_version_pack.py::test_strict_env_truthy_parsing[false-False]",
  "tests/services/test_prompt_version_pack.py::test_strict_env_truthy_parsing[garbage-False]",
  "tests/services/test_prompt_version_pack.py::test_strict_env_truthy_parsing[on-True]",
  "tests/services/test_prompt_version_pack.py::test_strict_env_truthy_parsing[true-True]",
  "tests/services/test_prompt_version_pack.py::test_strict_env_truthy_parsing[yes-True]",
  "tests/services/test_prompt_version_pack.py::test_strict_passes_when_stem_in_latest",
  "tests/services/test_prompt_version_pack.py::test_strict_raises_when_stem_missing_everywhere",
  "tests/services/test_prompt_version_pack.py::test_strict_raises_when_stem_missing_in_latest",
  "tests/services/test_prompt_version_pack.py::test_strict_unset_means_lenient",
  "tests/services/test_prompts_admin_sort.py::test_list_modules_empty_db_returns_empty_list",
  "tests/services/test_prompts_admin_sort.py::test_list_modules_latest_version_numeric",
  "tests/services/test_prompts_admin_sort.py::test_list_modules_latest_version_numeric_with_secondary_lexical_witness",
  "tests/services/test_prompts_admin_sort.py::test_list_modules_total_and_active_count",
  "tests/services/test_prompts_admin_sort.py::test_list_prompts_empty_db_returns_empty_list",
  "tests/services/test_prompts_admin_sort.py::test_list_prompts_groups_independent",
  "tests/services/test_prompts_admin_sort.py::test_list_prompts_numeric_sort_within_group",
  "tests/services/test_ref_contract_validator.py::TestTier3RequiredPropContract::test_extra_prop_attached_without_required_does_not_fail",
  "tests/services/test_ref_contract_validator.py::TestTier3RequiredPropContract::test_normalize_accepts_prop_kind_unchanged",
  "tests/services/test_ref_contract_validator.py::TestTier3RequiredPropContract::test_prop_mixed_with_other_kinds_all_pass",
  "tests/services/test_ref_contract_validator.py::TestTier3RequiredPropContract::test_required_prop_attached_passes",
  "tests/services/test_ref_contract_validator.py::TestTier3RequiredPropContract::test_required_prop_missing_raises_ref_contract_error",
  "tests/services/test_ref_contract_validator.py::test_AC1_S8_canary_character_t2i_inline_white_background_does_not_satisfy_bg_required",
  "tests/services/test_ref_contract_validator.py::test_AC2_composite_satisfies_outlook_required",
  "tests/services/test_ref_contract_validator.py::test_AC3_prev_shot_lineage_match_satisfies_background",
  "tests/services/test_ref_contract_validator.py::test_AC4_prev_shot_lineage_mismatch_blocks_background",
  "tests/services/test_ref_contract_validator.py::test_AC5_meta_length_mismatch_fails_fast",
  "tests/services/test_ref_contract_validator.py::test_AC6_readiness_block_if_missing_with_empty_required_drift",
  "tests/services/test_ref_contract_validator.py::test_AC7_close_framing_background_exempt",
  "tests/services/test_ref_contract_validator.py::test_AC7b_close_framing_does_NOT_exempt_character_outlook",
  "tests/services/test_ref_contract_validator.py::test_AC8_same_char_state_variant_satisfies_outlook",
  "tests/services/test_ref_contract_validator.py::test_AC8_state_variant_does_NOT_satisfy_outlook",
  "tests/services/test_ref_contract_validator.py::test_AC8b_other_char_state_variant_does_NOT_satisfy_outlook",
  "tests/services/test_ref_contract_validator.py::test_G3_chain_bg_lookup_None_blocks_prev_shot_substitute",
  "tests/services/test_ref_contract_validator.py::test_G3_chain_bg_lookup_returns_none_blocks_prev_shot_substitute",
  "tests/services/test_ref_contract_validator.py::test_S12_pattern_character_far_object_near_passes_with_prop_meta",
  "tests/services/test_ref_contract_validator.py::test_S24_pattern_generic_instruction_only_does_not_phantom_fail",
  "tests/services/test_ref_contract_validator.py::test_build_chain_bg_lookup_empty_map_returns_lambda_that_always_none",
  "tests/services/test_ref_contract_validator.py::test_build_chain_bg_lookup_returns_loc_for_known_bg_id",
  "tests/services/test_ref_contract_validator.py::test_build_chain_bg_lookup_skips_entries_without_bg_id_or_loc_id",
  "tests/services/test_ref_contract_validator.py::test_classifier_ambiguous_no_raise_warning_only",
  "tests/services/test_ref_contract_validator.py::test_classifier_ambiguous_no_token_match_returns_ambiguous",
  "tests/services/test_ref_contract_validator.py::test_classifier_background_phrase",
  "tests/services/test_ref_contract_validator.py::test_classifier_background_phrase_missing_ref_close_exempt",
  "tests/services/test_ref_contract_validator.py::test_classifier_background_phrase_missing_ref_not_close_raises",
  "tests/services/test_ref_contract_validator.py::test_classifier_character_phrase",
  "tests/services/test_ref_contract_validator.py::test_classifier_character_phrase_missing_ref_raises",
  "tests/services/test_ref_contract_validator.py::test_classifier_generic_skip_is_line_local_only",
  "tests/services/test_ref_contract_validator.py::test_classifier_generic_skip_legacy_canonical_line_still_skipped",
  "tests/services/test_ref_contract_validator.py::test_classifier_generic_skip_requires_verb_AND_noun_both",
  "tests/services/test_ref_contract_validator.py::test_classifier_multiple_phrases_each_classified",
  "tests/services/test_ref_contract_validator.py::test_classifier_no_phrase_returns_empty",
  "tests/services/test_ref_contract_validator.py::test_classifier_object_phrase",
  "tests/services/test_ref_contract_validator.py::test_classifier_object_phrase_missing_ref_raises",
  "tests/services/test_ref_contract_validator.py::test_classifier_phrase_local_nearest_token_background_beats_distant_character",
  "tests/services/test_ref_contract_validator.py::test_classifier_phrase_local_nearest_token_object_beats_distant_character",
  "tests/services/test_ref_contract_validator.py::test_classifier_phrase_local_window_prioritized_over_distant_token",
  "tests/services/test_ref_contract_validator.py::test_classifier_phrase_local_zero_falls_back_to_60_window",
  "tests/services/test_ref_contract_validator.py::test_classifier_plural_reference_images_in_long_instruction_skipped",
  "tests/services/test_ref_contract_validator.py::test_classifier_plural_reference_images_is_skipped",
  "tests/services/test_ref_contract_validator.py::test_classifier_plural_specific_multi_ref_NOT_skipped_without_generic_signal",
  "tests/services/test_ref_contract_validator.py::test_classifier_plural_specific_multi_ref_phantom_fail_with_no_prop_meta",
  "tests/services/test_ref_contract_validator.py::test_classifier_singular_reference_image_still_checked",
  "tests/services/test_ref_contract_validator.py::test_classifier_specific_multi_ref_after_do_not_include_NOT_skipped",
  "tests/services/test_ref_contract_validator.py::test_classifier_specific_multi_ref_after_ignore_NOT_skipped",
  "tests/services/test_ref_contract_validator.py::test_iter2_asset_requirements_explicit_none_raises",
  "tests/services/test_ref_contract_validator.py::test_iter2_asset_requirements_non_dict_raises",
  "tests/services/test_ref_contract_validator.py::test_iter2_explicit_empty_dict_still_no_raise",
  "tests/services/test_ref_contract_validator.py::test_iter2_explicit_empty_list_still_no_raise",
  "tests/services/test_ref_contract_validator.py::test_iter2_list_policy_missing_raises",
  "tests/services/test_ref_contract_validator.py::test_iter2_list_policy_non_string_raises",
  "tests/services/test_ref_contract_validator.py::test_iter2_list_policy_optional_raises",
  "tests/services/test_ref_contract_validator.py::test_iter2_list_policy_required_passes",
  "tests/services/test_ref_contract_validator.py::test_iter2_list_policy_unknown_value_raises",
  "tests/services/test_ref_contract_validator.py::test_iter2_required_refs_explicit_none_raises",
  "tests/services/test_ref_contract_validator.py::test_iter2_required_refs_missing_in_asset_requirements_raises",
  "tests/services/test_ref_contract_validator.py::test_iter2_rpc_missing_asset_requirements_raises",
  "tests/services/test_ref_contract_validator.py::test_iter2_rpc_non_dict_raises",
  "tests/services/test_ref_contract_validator.py::test_iter2_rpc_none_legacy_classifier_only_mode_no_raise",
  "tests/services/test_ref_contract_validator.py::test_no_required_no_phrase_no_raise",
  "tests/services/test_ref_contract_validator.py::test_normalize_dict_value_list_with_non_string_raises",
  "tests/services/test_ref_contract_validator.py::test_normalize_dict_value_non_list_raises",
  "tests/services/test_ref_contract_validator.py::test_normalize_explicit_empty_dict_no_raise",
  "tests/services/test_ref_contract_validator.py::test_normalize_explicit_empty_list_no_raise",
  "tests/services/test_ref_contract_validator.py::test_normalize_list_item_kind_or_id_non_string_raises",
  "tests/services/test_ref_contract_validator.py::test_normalize_list_item_missing_id_raises",
  "tests/services/test_ref_contract_validator.py::test_normalize_list_item_missing_kind_raises",
  "tests/services/test_ref_contract_validator.py::test_normalize_list_item_non_dict_raises",
  "tests/services/test_ref_contract_validator.py::test_normalize_required_refs_none_no_raise",
  "tests/services/test_ref_contract_validator.py::test_normalize_wrong_type_int_raises",
  "tests/services/test_ref_contract_validator.py::test_normalize_wrong_type_string_raises",
  "tests/services/test_ref_contract_validator.py::test_prompt_prose_reference_phrase_ignored_when_sidecar_empty",
  "tests/services/test_ref_contract_validator.py::test_required_background_close_framing_exempt",
  "tests/services/test_ref_contract_validator.py::test_required_background_not_close_missing_raises",
  "tests/services/test_ref_contract_validator.py::test_required_character_outlook_missing_raises",
  "tests/services/test_ref_contract_validator.py::test_required_character_outlook_satisfied_no_raise",
  "tests/services/test_ref_contract_validator.py::test_required_refs_list_shape_background_close_exempt",
  "tests/services/test_ref_contract_validator.py::test_required_refs_list_shape_background_not_close_missing_raises",
  "tests/services/test_ref_contract_validator.py::test_required_refs_list_shape_character_outlook_missing_raises",
  "tests/services/test_ref_contract_validator.py::test_required_refs_list_shape_character_outlook_satisfied_no_raise",
  "tests/services/test_ref_contract_validator.py::test_required_refs_list_shape_empty_list_no_raise",
  "tests/services/test_ref_contract_validator.py::test_sidecar_background_declared_missing_meta_raises",
  "tests/services/test_ref_contract_validator.py::test_sidecar_background_empty_close_framing_passes",
  "tests/services/test_ref_contract_validator.py::test_sidecar_character_declared_missing_meta_raises",
  "tests/services/test_ref_contract_validator.py::test_sidecar_prop_declared_missing_meta_raises",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_background_declared_close_framing_with_meta_passes",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_background_declared_close_framing_without_meta_fails",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_character_declared_with_meta_passes",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_character_declared_without_meta_fails",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_empty_array_passes",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_invalid_enum_value_raises",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_missing_kwarg_raises_typeerror",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_multiple_kinds_all_validated",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_non_list_type_raises",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_none_raises_refcontracterror",
  "tests/services/test_ref_contract_validator_sidecar.py::test_sidecar_prop_declared_with_meta_passes",
  "tests/services/test_reference_composite_service.py::test_generate_composite_image_raises_when_entity_missing",
  "tests/services/test_reference_composite_service.py::test_generate_composite_image_raises_when_face_missing",
  "tests/services/test_reference_composite_service.py::test_generate_composite_image_raises_when_outlook_is_o00",
  "tests/services/test_reference_composite_service.py::test_reference_image_service_constructor_wires_composite_svc",
  "tests/services/test_reference_composite_service.py::test_reference_image_service_facade_injects_composite_svc",
  "tests/services/test_reference_composite_service.py::test_regenerate_composites_character_iterates_outlooks",
  "tests/services/test_reference_composite_service.py::test_regenerate_composites_character_skips_o00_outlook",
  "tests/services/test_reference_composite_service.py::test_regenerate_composites_o00_outlook_entity_returns_empty",
  "tests/services/test_reference_composite_service.py::test_regenerate_composites_outlook_entity_iterates_characters",
  "tests/services/test_reference_composite_service.py::test_regenerate_composites_unknown_entity_returns_empty",
  "tests/services/test_reference_entity_service.py::test_generate_single_entity_raises_when_entity_missing",
  "tests/services/test_reference_entity_service.py::test_generate_single_entity_raises_when_gemini_key_missing",
  "tests/services/test_reference_entity_service.py::test_reference_image_service_constructor_wires_entity_svc",
  "tests/services/test_reference_entity_service.py::test_reference_image_service_facade_injects_entity_svc",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_DB행은_있는데_파일이_없으면_막는다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_primary_가_아니면_막는다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_verify_가_non_primary_를_안_친다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_verify_가_남의_프로젝트_자산을_안_친다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_verify_가_참조_없음을_그대로_잡는다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_verify_가_파일_없음을_잡는다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_verify_대상_0이면_clean",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_verify_앞_에피소드_참조를_정본으로_인정한다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_verify_저빈도_스킵은_대상에서_빠진다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_게이트_본체가_끝까지_돈다_합성까지",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_게이트가_참조_누락을_그대로_잡는다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_게이트가_합성_누락을_그대로_잡는다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_게이트와_verify_가_같은_수를_말한다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_게이트와_진행률이_같은_말을_한다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_다른_프로젝트의_자산은_안_친다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_대상이_0이면_게이트와_화면이_둘_다_통과다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_앞_에피소드에만_있는_참조로도_이번_에피소드가_통과한다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_장소는_참조_대상이_아니다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_전부_저빈도_스킵이어도_게이트와_화면이_일치한다",
  "tests/services/test_reference_gate_canon_scope_pg.py::test_참조가_아예_없으면_막는다",
  "tests/services/test_reference_image_service.py::test_generate_base_references_default_mode_resume",
  "tests/services/test_reference_image_service.py::test_generate_base_references_delegates_with_skip_composite_true",
  "tests/services/test_reference_image_service.py::test_generate_base_references_signature",
  "tests/services/test_reference_image_service.py::test_generate_composite_image_raises_when_entity_missing",
  "tests/services/test_reference_image_service.py::test_generate_composite_image_raises_when_face_missing",
  "tests/services/test_reference_image_service.py::test_generate_composite_image_raises_when_outlook_is_o00",
  "tests/services/test_reference_image_service.py::test_generate_composite_image_signature",
  "tests/services/test_reference_image_service.py::test_generate_composites_delegates_with_skip_composite_false",
  "tests/services/test_reference_image_service.py::test_generate_composites_full_mode_passthrough",
  "tests/services/test_reference_image_service.py::test_generate_composites_signature",
  "tests/services/test_reference_image_service.py::test_generate_reference_images_only_preserved_signature",
  "tests/services/test_reference_image_service.py::test_generate_single_entity_image_signature",
  "tests/services/test_reference_image_service.py::test_image_service_auto_set_primary_shim_passthrough",
  "tests/services/test_reference_image_service.py::test_image_service_build_lineage_fields_shim_passthrough",
  "tests/services/test_reference_image_service.py::test_image_service_generate_base_references_delegates",
  "tests/services/test_reference_image_service.py::test_image_service_generate_composite_image_delegates",
  "tests/services/test_reference_image_service.py::test_image_service_generate_composites_delegates",
  "tests/services/test_reference_image_service.py::test_image_service_generate_reference_images_only_delegates",
  "tests/services/test_reference_image_service.py::test_image_service_generate_single_entity_image_delegates",
  "tests/services/test_reference_image_service.py::test_image_service_get_latest_world_guide_shim_passthrough",
  "tests/services/test_reference_image_service.py::test_image_service_image_to_dict_shim_passthrough",
  "tests/services/test_reference_image_service.py::test_image_service_preserves_same_signature",
  "tests/services/test_reference_image_service.py::test_image_service_regenerate_composites_delegates",
  "tests/services/test_reference_image_service.py::test_image_service_validate_reference_delegates",
  "tests/services/test_reference_image_service.py::test_regenerate_composites_character_iterates_outlooks",
  "tests/services/test_reference_image_service.py::test_regenerate_composites_character_skips_o00_outlook",
  "tests/services/test_reference_image_service.py::test_regenerate_composites_for_entity_signature",
  "tests/services/test_reference_image_service.py::test_regenerate_composites_o00_outlook_entity_returns_empty",
  "tests/services/test_reference_image_service.py::test_regenerate_composites_outlook_entity_iterates_characters",
  "tests/services/test_reference_image_service.py::test_regenerate_composites_unknown_entity_returns_empty",
  "tests/services/test_reference_image_service.py::test_validate_reference_exception_returns_none",
  "tests/services/test_reference_image_service.py::test_validate_reference_high_score_keeps_status",
  "tests/services/test_reference_image_service.py::test_validate_reference_low_score_flags_needs_fix",
  "tests/services/test_reference_image_service.py::test_validate_reference_missing_file_returns_unchanged",
  "tests/services/test_reference_necessity_audit.py::test_audit_set_is_broad_union_minus_required_refs",
  "tests/services/test_reference_necessity_audit.py::test_gate_fails_on_missing_required_input",
  "tests/services/test_reference_necessity_audit.py::test_gate_fails_on_missing_status",
  "tests/services/test_reference_necessity_audit.py::test_gate_fails_on_not_completed_status",
  "tests/services/test_reference_necessity_audit.py::test_gate_fails_on_recurring_character_missing_required_ref",
  "tests/services/test_reference_necessity_audit.py::test_gate_fails_on_selected_map_scene_missing",
  "tests/services/test_reference_necessity_audit.py::test_gate_fails_on_selected_shot_missing",
  "tests/services/test_reference_necessity_audit.py::test_gate_fails_when_audit_entity_used_in_t2i",
  "tests/services/test_reference_necessity_audit.py::test_location_prompt_id_is_warning_not_blocking",
  "tests/services/test_reference_necessity_audit.py::test_one_shot_character_prompt_id_is_warning_not_blocking",
  "tests/services/test_reference_necessity_audit.py::test_prop_prompt_id_is_warning_not_blocking",
  "tests/services/test_reference_phase1_service.py::test_context_defaults",
  "tests/services/test_reference_phase1_service.py::test_context_total_to_gen_property",
  "tests/services/test_reference_phase1_service.py::test_orchestrator_wires_phase1_service",
  "tests/services/test_reference_phase1_service.py::test_phase1_run_signature",
  "tests/services/test_reference_phase2_service.py::test_orchestrator_wires_phase2_service",
  "tests/services/test_reference_phase2_service.py::test_phase2_get_style_context_signature",
  "tests/services/test_reference_phase2_service.py::test_phase2_run_signature",
  "tests/services/test_reference_phase3_service.py::test_orchestrator_wires_phase3_service",
  "tests/services/test_reference_phase3_service.py::test_phase3_run_signature",
  "tests/services/test_reference_pipeline_orchestrator.py::test_facade_wires_pipeline_orchestrator",
  "tests/services/test_reference_pipeline_orchestrator.py::test_generate_base_references_delegates_with_skip_true",
  "tests/services/test_reference_pipeline_orchestrator.py::test_generate_composites_delegates_with_skip_false",
  "tests/services/test_reference_pipeline_orchestrator.py::test_generate_reference_images_only_delegates",
  "tests/services/test_reference_pipeline_orchestrator.py::test_run_rejects_full_mode_early_validation",
  "tests/services/test_reference_pipeline_orchestrator.py::test_run_rejects_unknown_mode_early_validation",
  "tests/services/test_reference_pipeline_orchestrator.py::test_run_signature_preserved",
  "tests/services/test_registered_pose_guide_service.py::test_cache_hit_skips_regeneration",
  "tests/services/test_registered_pose_guide_service.py::test_concurrent_same_group_generates_once",
  "tests/services/test_registered_pose_guide_service.py::test_gate_no_bg_returns_none_no_white_fallback",
  "tests/services/test_registered_pose_guide_service.py::test_gate_no_contract_returns_none",
  "tests/services/test_registered_pose_guide_service.py::test_generation_writes_cache_and_status",
  "tests/services/test_registered_pose_guide_service.py::test_hash_sensitive_to_anchor_change",
  "tests/services/test_registered_pose_guide_service.py::test_make_underlay_variants_produce_valid_png",
  "tests/services/test_registered_pose_guide_service.py::test_prompt_carries_contract_no_scenario_tokens",
  "tests/services/test_relation_delta_sync.py::test_delta_deletes_gone_relations",
  "tests/services/test_relation_delta_sync.py::test_delta_inserts_new_when_empty_existing",
  "tests/services/test_relation_delta_sync.py::test_delta_mixed_scenario",
  "tests/services/test_relation_delta_sync.py::test_delta_noop_when_reason_matches",
  "tests/services/test_relation_delta_sync.py::test_delta_skips_existing_with_missing_participant",
  "tests/services/test_relation_delta_sync.py::test_delta_skips_unknown_short_id",
  "tests/services/test_relation_delta_sync.py::test_delta_updates_reason_only_when_identity_preserved",
  "tests/services/test_scene_checkpoint_loaders.py::test_base_shot_dependency_without_t2i_annotation_reads_empty_keep_elements",
  "tests/services/test_scene_checkpoint_loaders.py::test_c1_loader_rejects_legacy_string_entry",
  "tests/services/test_scene_checkpoint_loaders.py::test_c2_loader_rejects_malformed_dict",
  "tests/services/test_scene_checkpoint_loaders.py::test_c3_loader_rejects_unknown_kind",
  "tests/services/test_scene_checkpoint_loaders.py::test_c3b_loader_rejects_non_string_label",
  "tests/services/test_scene_checkpoint_loaders.py::test_c3c_loader_rejects_missing_keep_elements_key",
  "tests/services/test_scene_checkpoint_loaders.py::test_c4_loader_accepts_valid_dict_entries",
  "tests/services/test_scene_checkpoint_loaders.py::test_c4b_loader_rejects_legacy_v6_immobilized_character",
  "tests/services/test_scene_checkpoint_loaders.py::test_c5_loader_broad_except_does_not_absorb_apperror",
  "tests/services/test_scene_checkpoint_loaders.py::test_c6_loader_warning_on_json_parse_failure",
  "tests/services/test_scene_checkpoint_loaders.py::test_chain_bg_suppressed_for_no_plate_diagnosed_shots",
  "tests/services/test_scene_checkpoint_loaders.py::test_chain_bg_suppressed_for_plate_action_no_plate",
  "tests/services/test_scene_checkpoint_loaders.py::test_chain_bg_unassigned_without_legacy_gets_sentinel",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_d5_invariant_all_entries_have_bg_id_and_location_id",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_d5_phase4_legacy_entry_includes_bg_id_and_location_id",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_d5_phase7_entry_includes_bg_id_and_location_id",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_first_match_wins",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_happy_path",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_malformed_returns_empty",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_missing_checkpoint_returns_empty",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_phase7_groups_shape",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_phase7_invalid_shot_id_skipped",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_phase7_priority_over_phase5",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_read_failure_isolates_to_one_entry",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_skips_missing_files",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_space_overlay_respects_chain_gate",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_space_overlay_wins",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_background_chain_bg_map_toggle_off_ignores_checkpoint",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_set_design_bg_map_disabled_returns_empty",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_set_design_bg_map_malformed_returns_empty",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_set_design_bg_map_shot_backgrounds_v2",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_set_design_bg_map_v1_base_images_fallback",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_shot_dependency_map_legacy_removal_instruction",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_shot_dependency_map_only_first_location_ref",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_shot_dependency_map_prefers_t2i_variant",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_shot_staging_map_indexes_by_scene_shot",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_shot_staging_map_malformed_returns_empty",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_shot_staging_map_missing_returns_empty",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_space_set_bg_map_flag_off_returns_empty",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_space_set_bg_map_happy_path",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_space_set_bg_map_reads_derived_plate_png",
  "tests/services/test_scene_checkpoint_loaders.py::test_load_space_set_bg_map_skips_not_ok_group_and_missing_png",
  "tests/services/test_scene_checkpoint_loaders.py::test_no_plate_keys_collects_plate_action_no_plate",
  "tests/services/test_scene_checkpoint_loaders.py::test_no_plate_keys_collects_unassigned_and_connector_only",
  "tests/services/test_scene_checkpoint_loaders.py::test_no_plate_keys_flag_off_or_missing_returns_empty",
  "tests/services/test_scene_checkpoint_loaders.py::test_t2i_shot_dependency_without_keep_elements_still_fails_fast",
  "tests/services/test_scene_checkpoint_loaders.py::test_t2i_variations_broken_checkpoint_returns_empty",
  "tests/services/test_scene_checkpoint_loaders.py::test_t2i_variations_checkpoint_scene_only_fallback",
  "tests/services/test_scene_checkpoint_loaders.py::test_t2i_variations_checkpoint_shot_match",
  "tests/services/test_scene_checkpoint_loaders.py::test_t2i_variations_empty_camera_no_checkpoint",
  "tests/services/test_scene_checkpoint_loaders.py::test_t2i_variations_from_camera_json_shortcut",
  "tests/services/test_scene_checkpoint_loaders.py::test_t2i_variations_invalid_camera_json_defaults",
  "tests/services/test_scene_checkpoint_loaders.py::test_t2i_variations_invalid_camera_json_propagates",
  "tests/services/test_scene_checkpoint_loaders.py::test_t2i_variations_mixed_ordering_picks_right_scene_and_shot",
  "tests/services/test_scene_checkpoint_loaders.py::test_t2i_variations_scene_index_falsy_falls_back_to_still_index",
  "tests/services/test_scene_detail_redo_service.py::test_clean_redo_clears_prior_error_message",
  "tests/services/test_scene_detail_redo_service.py::test_clean_redo_promotes_step_run_to_completed",
  "tests/services/test_scene_detail_redo_service.py::test_dirty_redo_preserves_step_run_status",
  "tests/services/test_scene_detail_redo_service.py::test_missing_step_run_row_yields_promoted_false_with_reason",
  "tests/services/test_scene_detail_redo_service.py::test_sync_failure_blocks_promote",
  "tests/services/test_scene_detail_redo_service.py::test_verify_blocks_promote_when_other_shot_has_empty_t2i_variations",
  "tests/services/test_scene_detail_redo_service.py::test_verify_blocks_promote_when_sentinel_shape_invalid",
  "tests/services/test_scene_detail_redo_service.py::test_verify_blocks_promote_when_variation_lacks_owned_validation",
  "tests/services/test_scene_detail_redo_service.py::test_도는_중이면_touch_를_했다고_보고하지_않는다",
  "tests/services/test_scene_detail_redo_service.py::test_한_줄을_바꿨으면_그대로_보고한다",
  "tests/services/test_scene_generation_coordinator.py::test_T4_variation_loop_blocks_gemini_on_ref_contract_violation",
  "tests/services/test_scene_generation_coordinator.py::test_T4_variation_loop_calls_validator_after_full_prompt_build",
  "tests/services/test_scene_generation_coordinator.py::test_batch_path_passes_required_refs_to_resolver",
  "tests/services/test_scene_generation_coordinator.py::test_build_single_scene_prompt_and_refs_build_exception_fallback",
  "tests/services/test_scene_generation_coordinator.py::test_build_single_scene_prompt_and_refs_full_path",
  "tests/services/test_scene_generation_coordinator.py::test_build_single_scene_prompt_and_refs_no_variations_uses_fallback",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_and_track_primary_best_idx_out_of_bounds",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_and_track_primary_file_missing_skips_path_maps",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_and_track_primary_happy_path",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_and_track_primary_missing_still_data_keys",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_and_track_primary_missing_still_id_uses_empty_string",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_and_track_primary_shot_label_format",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_single_scene_empty_visible_entities",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_single_scene_full_pipeline",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_variations_log_detail_and_return_structure",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_variations_recommended_A_sets_variant_primary",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_variations_recommended_A_without_a_result_skips",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_variations_recommended_B_sets_b_primary",
  "tests/services/test_scene_generation_coordinator.py::test_finalize_variations_recommended_original_skips_primary",
  "tests/services/test_scene_generation_coordinator.py::test_maybe_generate_variation_slot_b_dispatches_to_b_fields",
  "tests/services/test_scene_generation_coordinator.py::test_maybe_generate_variation_slot_calls_i2i_with_dynamic_fields",
  "tests/services/test_scene_generation_coordinator.py::test_maybe_generate_variation_slot_none_string_returns_none",
  "tests/services/test_scene_generation_coordinator.py::test_maybe_generate_variation_slot_none_type_returns_none",
  "tests/services/test_scene_generation_coordinator_apperror_import.py::test_scene_generation_coordinator_imports_apperror",
  "tests/services/test_scene_generation_coordinator_apperror_import.py::test_scene_generation_coordinator_module_imports_clean",
  "tests/services/test_scene_image_service.py::test_build_single_scene_prompt_and_refs_build_exception_fallback",
  "tests/services/test_scene_image_service.py::test_build_single_scene_prompt_and_refs_full_path",
  "tests/services/test_scene_image_service.py::test_build_single_scene_prompt_and_refs_no_variations_uses_fallback",
  "tests/services/test_scene_image_service.py::test_create_validator_delegates_to_validation_svc",
  "tests/services/test_scene_image_service.py::test_finalize_and_track_primary_best_idx_out_of_bounds",
  "tests/services/test_scene_image_service.py::test_finalize_and_track_primary_file_missing_skips_path_maps",
  "tests/services/test_scene_image_service.py::test_finalize_and_track_primary_happy_path",
  "tests/services/test_scene_image_service.py::test_finalize_and_track_primary_missing_still_data_keys",
  "tests/services/test_scene_image_service.py::test_finalize_and_track_primary_missing_still_id_uses_empty_string",
  "tests/services/test_scene_image_service.py::test_finalize_and_track_primary_shot_label_format",
  "tests/services/test_scene_image_service.py::test_finalize_single_scene_empty_visible_entities",
  "tests/services/test_scene_image_service.py::test_finalize_single_scene_full_pipeline",
  "tests/services/test_scene_image_service.py::test_finalize_variations_log_detail_and_return_structure",
  "tests/services/test_scene_image_service.py::test_finalize_variations_recommended_A_sets_variant_primary",
  "tests/services/test_scene_image_service.py::test_finalize_variations_recommended_A_without_a_result_skips",
  "tests/services/test_scene_image_service.py::test_finalize_variations_recommended_B_sets_b_primary",
  "tests/services/test_scene_image_service.py::test_finalize_variations_recommended_original_skips_primary",
  "tests/services/test_scene_image_service.py::test_generate_images_signature",
  "tests/services/test_scene_image_service.py::test_generate_scene_with_variations_signature",
  "tests/services/test_scene_image_service.py::test_generate_single_scene_image_signature",
  "tests/services/test_scene_image_service.py::test_generate_variations_only_delegates_to_variation_svc",
  "tests/services/test_scene_image_service.py::test_generate_variations_only_signature",
  "tests/services/test_scene_image_service.py::test_get_image_signature",
  "tests/services/test_scene_image_service.py::test_get_reference_image_map_delegates_to_reference_svc",
  "tests/services/test_scene_image_service.py::test_get_reference_image_map_empty_list",
  "tests/services/test_scene_image_service.py::test_get_reference_image_map_missing_primary_fallback",
  "tests/services/test_scene_image_service.py::test_get_visible_entities_delegates_to_reference_svc",
  "tests/services/test_scene_image_service.py::test_get_visible_entities_invalid_json_returns_empty",
  "tests/services/test_scene_image_service.py::test_get_visible_entities_none_returns_empty",
  "tests/services/test_scene_image_service.py::test_get_visible_entities_parses_list_of_dicts",
  "tests/services/test_scene_image_service.py::test_get_visible_entities_parses_list_of_ids",
  "tests/services/test_scene_image_service.py::test_image_service_build_scene_ref_image_map_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_generate_images_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_generate_scene_with_variations_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_generate_single_scene_image_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_generate_variation_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_generate_variations_only_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_recommend_variations_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_regenerate_variation_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_resolve_refs_for_prompt_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_select_original_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_select_variant_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_set_variant_primary_delegates",
  "tests/services/test_scene_image_service.py::test_image_service_validate_scene_delegates",
  "tests/services/test_scene_image_service.py::test_maybe_generate_variation_slot_b_dispatches_to_b_fields",
  "tests/services/test_scene_image_service.py::test_maybe_generate_variation_slot_calls_i2i_with_dynamic_fields",
  "tests/services/test_scene_image_service.py::test_maybe_generate_variation_slot_none_string_returns_none",
  "tests/services/test_scene_image_service.py::test_maybe_generate_variation_slot_none_type_returns_none",
  "tests/services/test_scene_image_service.py::test_recommend_variations_delegates_to_variation_svc",
  "tests/services/test_scene_image_service.py::test_recommend_variations_no_openai_key_raises",
  "tests/services/test_scene_image_service.py::test_recommend_variations_signature",
  "tests/services/test_scene_image_service.py::test_recommend_variations_still_not_found_raises",
  "tests/services/test_scene_image_service.py::test_regenerate_variation_delegates_to_variation_svc",
  "tests/services/test_scene_image_service.py::test_regenerate_variation_signature",
  "tests/services/test_scene_image_service.py::test_select_original_delegates_to_variation_svc",
  "tests/services/test_scene_image_service.py::test_select_original_image_not_found_raises",
  "tests/services/test_scene_image_service.py::test_select_original_signature",
  "tests/services/test_scene_image_service.py::test_select_original_still_not_found_raises",
  "tests/services/test_scene_image_service.py::test_select_variant_delegates_to_variation_svc",
  "tests/services/test_scene_image_service.py::test_select_variant_signature",
  "tests/services/test_scene_image_service.py::test_select_variant_still_not_found_raises",
  "tests/services/test_scene_image_service.py::test_service_init_attaches_coordinator",
  "tests/services/test_scene_image_service.py::test_set_variant_primary_signature",
  "tests/services/test_scene_image_service.py::test_summarize_failed_variations_caps_msg_length",
  "tests/services/test_scene_image_service.py::test_summarize_failed_variations_empty_list_falls_back_to_unknown",
  "tests/services/test_scene_image_service.py::test_summarize_failed_variations_returns_none_when_any_success",
  "tests/services/test_scene_image_service.py::test_summarize_failed_variations_serializes_ref_contract_reason",
  "tests/services/test_scene_image_service.py::test_validate_scene_delegates_to_validation_svc",
  "tests/services/test_scene_image_service.py::test_validate_scene_exception_returns_none",
  "tests/services/test_scene_image_service.py::test_validate_scene_high_score_keeps_status",
  "tests/services/test_scene_image_service.py::test_validate_scene_low_score_flags_needs_fix",
  "tests/services/test_scene_image_service.py::test_validate_scene_missing_file_returns_unchanged",
  "tests/services/test_scene_persistence_service.py::test_build_resume_state_empty_done_returns_empty_maps",
  "tests/services/test_scene_persistence_service.py::test_build_resume_state_falls_back_to_latest_when_no_primary",
  "tests/services/test_scene_persistence_service.py::test_build_resume_state_populates_maps_for_done_still",
  "tests/services/test_scene_persistence_service.py::test_build_resume_state_skips_missing_file",
  "tests/services/test_scene_persistence_service.py::test_delete_existing_scene_assets_is_hard_fenced",
  "tests/services/test_scene_persistence_service.py::test_delete_existing_scene_assets_issues_two_deletes_and_commits",
  "tests/services/test_scene_persistence_service.py::test_delete_orphan_entity_assets_filters_by_missing_canon",
  "tests/services/test_scene_persistence_service.py::test_delete_orphan_scene_assets_filters_by_missing_still",
  "tests/services/test_scene_persistence_service.py::test_delete_orphan_scene_assets_returns_zero_when_no_orphans",
  "tests/services/test_scene_persistence_service.py::test_fetch_still_gemini_key_missing_raises",
  "tests/services/test_scene_persistence_service.py::test_fetch_still_happy_path_returns_still",
  "tests/services/test_scene_persistence_service.py::test_fetch_still_not_found_raises",
  "tests/services/test_scene_persistence_service.py::test_fetch_still_pipeline_gate_failure_propagates",
  "tests/services/test_scene_persistence_service.py::test_fetch_still_query_count_preserves_literal_duplicate",
  "tests/services/test_scene_persistence_service.py::test_load_episode_entity_dicts_maps_fields_with_fallbacks",
  "tests/services/test_scene_persistence_service.py::test_load_episode_entity_dicts_no_links_returns_empty",
  "tests/services/test_scene_persistence_service.py::test_load_episode_still_dicts_empty_returns_empty_tuple",
  "tests/services/test_scene_persistence_service.py::test_load_episode_still_dicts_maps_fields_with_fallbacks",
  "tests/services/test_scene_persistence_service.py::test_load_episode_still_dicts_preserves_ordering",
  "tests/services/test_scene_persistence_service.py::test_mark_asset_as_original_missing_is_noop",
  "tests/services/test_scene_persistence_service.py::test_mark_asset_as_original_updates_and_flushes",
  "tests/services/test_scene_persistence_service.py::test_resolve_registered_guide_ambiguous_pair_kept_unresolved",
  "tests/services/test_scene_persistence_service.py::test_resolve_registered_guide_exact_triple",
  "tests/services/test_scene_persistence_service.py::test_resolve_registered_guide_non_guide_passthrough",
  "tests/services/test_scene_persistence_service.py::test_resolve_registered_guide_pair_fallback",
  "tests/services/test_scene_persistence_service.py::test_resolve_world_guide_empty_project_style_skipped",
  "tests/services/test_scene_persistence_service.py::test_resolve_world_guide_force_full_skips_existing_query",
  "tests/services/test_scene_persistence_service.py::test_resolve_world_guide_injects_project_style_when_no_must_maintain",
  "tests/services/test_scene_persistence_service.py::test_resolve_world_guide_no_project_style_when_absent",
  "tests/services/test_scene_persistence_service.py::test_resolve_world_guide_preserves_must_maintain_adds_project_style",
  "tests/services/test_scene_persistence_service.py::test_resolve_world_guide_regenerates_when_hash_mismatches",
  "tests/services/test_scene_persistence_service.py::test_resolve_world_guide_reuses_existing_when_hash_matches",
  "tests/services/test_scene_persistence_service.py::test_save_fal_angle_asset_applies_fixed_contract",
  "tests/services/test_scene_persistence_service.py::test_save_scene_variations_adds_each_asset",
  "tests/services/test_scene_persistence_service.py::test_save_scene_variations_applies_lineage_uniformly",
  "tests/services/test_scene_persistence_service.py::test_save_scene_variations_defaults_variant_type_to_base",
  "tests/services/test_scene_persistence_service.py::test_save_scene_variations_empty_list",
  "tests/services/test_scene_persistence_service.py::test_save_scene_variations_falls_back_to_pose_guide_ids",
  "tests/services/test_scene_persistence_service.py::test_save_scene_variations_persists_actual_attached_lineage",
  "tests/services/test_scene_persistence_service.py::test_save_single_scene_asset_maps_all_fields",
  "tests/services/test_scene_persistence_service.py::test_save_single_scene_asset_missing_optional_fields",
  "tests/services/test_scene_persistence_service.py::test_scan_completed_scene_stills_empty_inputs",
  "tests/services/test_scene_persistence_service.py::test_scan_completed_scene_stills_union_db_primary_and_checkpoint",
  "tests/services/test_scene_persistence_service.py::test_set_primary_asset_updates_and_commits",
  "tests/services/test_scene_persistence_service.py::test_validate_episode_ready_pipeline_gate_failure_propagates",
  "tests/services/test_scene_persistence_service.py::test_validate_episode_ready_positive_count_returns_none",
  "tests/services/test_scene_persistence_service.py::test_validate_episode_ready_zero_scenes_raises_no_scenes",
  "tests/services/test_scene_provenance_service.py::test_compute_and_embed_dep_id_not_found_in_stills",
  "tests/services/test_scene_provenance_service.py::test_compute_and_embed_dep_scene_idx_from_stills",
  "tests/services/test_scene_provenance_service.py::test_compute_and_embed_no_dep_no_prev",
  "tests/services/test_scene_provenance_service.py::test_compute_and_embed_prev_file_from_by_id_fallback",
  "tests/services/test_scene_provenance_service.py::test_compute_and_embed_prev_file_from_scene_paths_by_index",
  "tests/services/test_scene_provenance_service.py::test_compute_and_embed_without_dep_id_falls_back_to_empty",
  "tests/services/test_scene_provenance_service.py::test_compute_and_embed_without_dep_id_skips_by_id_lookup",
  "tests/services/test_scene_provenance_service.py::test_embed_fal_angle_metadata_maps_angle_fields",
  "tests/services/test_scene_provenance_service.py::test_embed_fal_angle_metadata_suppresses_and_logs",
  "tests/services/test_scene_provenance_service.py::test_embed_fal_angle_metadata_suppresses_exception",
  "tests/services/test_scene_provenance_service.py::test_embed_scene_variations_metadata_calls_embed_per_variation",
  "tests/services/test_scene_provenance_service.py::test_embed_scene_variations_metadata_suppresses_and_logs",
  "tests/services/test_scene_provenance_service.py::test_embed_scene_variations_metadata_suppresses_exception",
  "tests/services/test_scene_provenance_service.py::test_embed_scene_variations_metadata_truncates_prompt_at_2000",
  "tests/services/test_scene_provenance_service.py::test_embed_scene_variations_metadata_uses_fallback_index",
  "tests/services/test_scene_ref_map_loads_composites_with_text_created_at.py::test_composites_and_state_variants_load_with_text_created_at",
  "tests/services/test_scene_ref_map_loads_composites_with_text_created_at.py::test_same_tier_composites_are_ordered_by_parsed_time_not_text",
  "tests/services/test_scene_reference_service.py::TestTier2ForcedPropAttach::test_no_required_refs_falls_back_to_text_matching_only",
  "tests/services/test_scene_reference_service.py::TestTier2ForcedPropAttach::test_no_required_refs_results_in_attach_0",
  "tests/services/test_scene_reference_service.py::TestTier2ForcedPropAttach::test_required_prop_attached_even_when_prompt_missing_p_id",
  "tests/services/test_scene_reference_service.py::TestTier2ForcedPropAttach::test_required_prop_attached_once_when_id_also_in_prompt",
  "tests/services/test_scene_reference_service.py::TestTier2ForcedPropAttach::test_required_prop_not_double_attached_when_already_text_matched",
  "tests/services/test_scene_reference_service.py::TestTier2ForcedPropAttach::test_required_prop_visible_but_ref_image_missing_skips",
  "tests/services/test_scene_reference_service.py::test_AC10_image_index_meta_passthrough_independent_of_label_change",
  "tests/services/test_scene_reference_service.py::test_AC10_image_index_object_label_format_unchanged",
  "tests/services/test_scene_reference_service.py::test_AC10_image_index_passthrough_label_format_unchanged",
  "tests/services/test_scene_reference_service.py::test_AC10_image_index_rewrite_format_unchanged",
  "tests/services/test_scene_reference_service.py::test_AC15_build_custom_labeled_refs_returns_2_tuple_unchanged",
  "tests/services/test_scene_reference_service.py::test_build_custom_labeled_refs_attaches_chain_bg_first",
  "tests/services/test_scene_reference_service.py::test_build_custom_labeled_refs_character_label",
  "tests/services/test_scene_reference_service.py::test_build_custom_labeled_refs_empty_type_defaults_to_object",
  "tests/services/test_scene_reference_service.py::test_build_custom_labeled_refs_exception_returns_empty",
  "tests/services/test_scene_reference_service.py::test_build_custom_labeled_refs_excludes_location",
  "tests/services/test_scene_reference_service.py::test_build_custom_labeled_refs_none_bg_entry_keeps_legacy_behavior",
  "tests/services/test_scene_reference_service.py::test_build_custom_labeled_refs_preserves_order",
  "tests/services/test_scene_reference_service.py::test_build_custom_labeled_refs_prop_label",
  "tests/services/test_scene_reference_service.py::test_build_custom_labeled_refs_skip_when_no_bytes",
  "tests/services/test_scene_reference_service.py::test_build_custom_labeled_refs_skips_sentinel_bg_entry",
  "tests/services/test_scene_reference_service.py::test_build_entity_text_map_basic_short_ids",
  "tests/services/test_scene_reference_service.py::test_build_entity_text_map_composite_keys_from_outlook",
  "tests/services/test_scene_reference_service.py::test_build_entity_text_map_exception_suppressed",
  "tests/services/test_scene_reference_service.py::test_build_entity_text_map_never_uses_t2i_prompt",
  "tests/services/test_scene_reference_service.py::test_d1_legacy_regex_and_helper_removed_from_production",
  "tests/services/test_scene_reference_service.py::test_d2_exact_background_dict_shape_label_concat",
  "tests/services/test_scene_reference_service.py::test_d3_zoom_in_detail_dict_shape_label_concat",
  "tests/services/test_scene_reference_service.py::test_d4_unknown_kind_raises_apperror",
  "tests/services/test_scene_reference_service.py::test_d5_malformed_dict_raises_apperror",
  "tests/services/test_scene_reference_service.py::test_d5b_non_string_label_raises_apperror",
  "tests/services/test_scene_reference_service.py::test_d6_immobilized_character_label_passes",
  "tests/services/test_scene_reference_service.py::test_d6_legacy_v6_immobilized_character_rejected",
  "tests/services/test_scene_reference_service.py::test_d_min_canary_no_required_refs_but_p_id_in_t2i_attaches_0",
  "tests/services/test_scene_reference_service.py::test_d_min_canary_required_refs_present_attaches",
  "tests/services/test_scene_reference_service.py::test_detect_state_variant_sids_dead_character_with_ref_matched",
  "tests/services/test_scene_reference_service.py::test_detect_state_variant_sids_entity_lookup_sid_to_uuid_fallback",
  "tests/services/test_scene_reference_service.py::test_detect_state_variant_sids_family_ambiguous_name_not_applied",
  "tests/services/test_scene_reference_service.py::test_detect_state_variant_sids_identity_variant_family_bridge",
  "tests/services/test_scene_reference_service.py::test_detect_state_variant_sids_no_matching_gaze_returns_empty",
  "tests/services/test_scene_reference_service.py::test_detect_state_variant_sids_no_ref_in_map_skipped",
  "tests/services/test_scene_reference_service.py::test_detect_state_variant_sids_none_staging_returns_empty",
  "tests/services/test_scene_reference_service.py::test_detect_state_variant_sids_unconscious_severely_injured_both_recognized",
  "tests/services/test_scene_reference_service.py::test_get_ref_image_map_excluding_locations_empty_input",
  "tests/services/test_scene_reference_service.py::test_get_ref_image_map_excluding_locations_filters_location_eids",
  "tests/services/test_scene_reference_service.py::test_get_ref_image_map_excluding_locations_missing_entity_type_treated_non_location",
  "tests/services/test_scene_reference_service.py::test_get_ref_image_map_excluding_locations_no_locations",
  "tests/services/test_scene_reference_service.py::test_get_reference_image_map_empty_list",
  "tests/services/test_scene_reference_service.py::test_get_reference_image_map_missing_primary_fallback",
  "tests/services/test_scene_reference_service.py::test_get_visible_entities_invalid_json_returns_empty",
  "tests/services/test_scene_reference_service.py::test_get_visible_entities_none_returns_empty",
  "tests/services/test_scene_reference_service.py::test_get_visible_entities_parses_list_of_dicts",
  "tests/services/test_scene_reference_service.py::test_get_visible_entities_parses_list_of_ids",
  "tests/services/test_scene_reference_service.py::test_inc2a_composite_outfit_maps_base_and_full_sid",
  "tests/services/test_scene_reference_service.py::test_inc2a_descriptor_falls_back_to_visual_traits_then_generic",
  "tests/services/test_scene_reference_service.py::test_inc2a_sidecar_primary_char_descriptor",
  "tests/services/test_scene_reference_service.py::test_inc2a_state_variant_label_not_overwritten_by_passport",
  "tests/services/test_scene_reference_service.py::test_load_entity_reference_images_maps_primary_bytes",
  "tests/services/test_scene_reference_service.py::test_load_entity_reference_images_skips_missing_file",
  "tests/services/test_scene_reference_service.py::test_load_entity_reference_images_skips_missing_primary",
  "tests/services/test_scene_reference_service.py::test_load_episode_entity_lookup_basic",
  "tests/services/test_scene_reference_service.py::test_load_episode_entity_lookup_empty_episode_returns_empty_dict",
  "tests/services/test_scene_reference_service.py::test_load_episode_entity_lookup_null_fields_become_empty_str",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_area11_return_is_5tuple",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_atmosphere_reference_no_ignore",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_close_atmosphere_reference_raises",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_close_empty_fallback_ref_usage_raises",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_close_exact_background_raises",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_close_no_best_prev_bytes_returns_none_before_matrix",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_close_zoom_in_detail_allows",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_d5_loc_id_empty_when_not_determinable",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_d5_loc_id_from_dep_scene_priority",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_d5_loc_id_from_location_history_match",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_d5_none_when_no_bytes_3tuple_signature_unaffected",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_d5_return_is_3tuple",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_d5_return_is_5tuple",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_exact_background_with_keep",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_fallback_no_dead_chars",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_fallback_with_dead_chars",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_invalid_prev_visible_json_safe",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_location_history_fallback_when_no_dep_scene",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_medium_any_ref_usage_allows[None]",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_medium_any_ref_usage_allows[atmosphere_reference]",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_medium_any_ref_usage_allows[exact_background]",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_medium_any_ref_usage_allows[zoom_in_detail]",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_none_when_no_bytes",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_remove_hints_computation",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_state_variant_excluded_from_remove_hints",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_zoom_alive_subjects_no_immobilized_metadata",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_zoom_downgraded_when_new_subjects",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_zoom_immobilized_subjects_metadata",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_zoom_in_detail_label",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_zoom_not_downgraded_when_subjects_match",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_zoom_prop_in_dep_no_diagnostic",
  "tests/services/test_scene_reference_service.py::test_prev_shot_ref_zoom_prop_missing_in_dep_diagnostic",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_d5_composite_meta_outlook_kind",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_d5_composite_missing_falls_back_to_base_meta_p2",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_d5_legacy_pattern_meta_uses_entity_lookup_short_id_sot",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_d5_legacy_pattern_unknown_short_id_skipped_p1",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_d5_length_match_invariant_across_all_paths",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_d5_o00_base_meta_character_kind",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_d5_prop_meta_prop_kind",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_d5_returns_labeled_and_meta_tuple",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_d5_state_variant_meta_separate_kind",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_for_prompt_rejects_shot_description_kwarg",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_for_prompt_set_dedup_same_outlook",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_for_prompt_set_empty_list_returns_empty",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_for_prompt_set_forwards_required_refs",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_for_prompt_set_rejects_shot_description_kwarg",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_for_prompt_set_single_prompt_matches_legacy",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_for_prompt_set_unions_outlook_ids_across_variations",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_force_character_names_overrides_generic_policy",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_length_invariant_across_branches",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_attach_0_for_cjk_substring_path_deleted",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_attach_0_for_substring_path_deleted",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_attach_0_when_p_id_in_t2i_no_required_refs",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_attach_when_required_refs_even_without_p_id_in_t2i",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_dedup_when_required_refs_repeated",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_inject_uses_haystack_combined",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_inject_when_english_word_isolated",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_inject_when_name_in_shot_description",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_inject_when_name_in_t2i_prompt",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_inject_when_short_id_in_t2i_prompt",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_min_name_threshold_skips_two_chars",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_min_name_threshold_three_chars",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_no_short_id_inject_when_name_matches",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_skip_english_substring_false_positive",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_skip_short_name_under_threshold",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_skip_when_no_match",
  "tests/services/test_scene_reference_service.py::test_resolve_refs_prop_skip_when_shot_description_none",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_empty_returns_defaults",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_cinematography_legacy",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_dependency_dict_form",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_dependency_map",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_detail_partial_not_completed",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_detail_partial_with_data_is_syncable",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_detail_partial_with_empty_scenes_not_syncable",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_detail_running_not_syncable",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_detail_sets_scenes_and_completed",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_director_ve_audio_hall",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_summaries",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_scene_summaries_incomplete_ignored",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_shot_cinematography",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_shot_dependency_collects_deps",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_shot_dependency_partial_not_completed",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_shot_director_ve_map",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_shot_selection_filters_selected_flags",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_shot_selection_missing_defaults_to_all_shots",
  "tests/services/test_scene_still_checkpoint_loader.py::test_load_shot_validator_builds_shot_info_by_scene",
  "tests/services/test_scene_still_normalizer.py::test_empty_scenes_empty_output",
  "tests/services/test_scene_still_normalizer.py::test_legacy_no_t2i_variations_writes_null",
  "tests/services/test_scene_still_normalizer.py::test_legacy_one_still_per_scene",
  "tests/services/test_scene_still_normalizer.py::test_legacy_ve_id_only_set_when_matched",
  "tests/services/test_scene_still_normalizer.py::test_sd_not_completed_returns_empty",
  "tests/services/test_scene_still_normalizer.py::test_still_index_monotonic",
  "tests/services/test_scene_still_normalizer.py::test_unselected_creates_row_for_unselected_shots",
  "tests/services/test_scene_still_normalizer.py::test_unselected_skipped_when_sd_not_completed",
  "tests/services/test_scene_still_normalizer.py::test_v4_fallback_ve_from_outfit_assignments",
  "tests/services/test_scene_still_normalizer.py::test_v4_fallback_ve_from_t2i_text",
  "tests/services/test_scene_still_normalizer.py::test_v4_per_shot_stills",
  "tests/services/test_scene_still_normalizer.py::test_v4_result_shot_idx_filters_to_single_shot",
  "tests/services/test_scene_still_normalizer.py::test_v4_result_shot_idx_not_in_selected_skipped",
  "tests/services/test_scene_still_normalizer.py::test_v4_user_edited_uses_representative_moment",
  "tests/services/test_scene_still_writer.py::test_write_applies_scene_summary",
  "tests/services/test_scene_still_writer.py::test_write_clears_dependent_scene_id_when_shot_dep_completed",
  "tests/services/test_scene_still_writer.py::test_write_dependent_scene_id_from_shot_deps",
  "tests/services/test_scene_still_writer.py::test_write_empty_plan_still_applies_summary",
  "tests/services/test_scene_still_writer.py::test_write_insert_creates_new_rows",
  "tests/services/test_scene_still_writer.py::test_write_legacy_dep_map_fallback",
  "tests/services/test_scene_still_writer.py::test_write_legacy_dep_prev_ref_form",
  "tests/services/test_scene_still_writer.py::test_write_marks_stale_for_rows_not_in_plan",
  "tests/services/test_scene_still_writer.py::test_write_shot_cine_wins_when_both_present",
  "tests/services/test_scene_still_writer.py::test_write_shot_type_from_legacy_scene_cine",
  "tests/services/test_scene_still_writer.py::test_write_shot_type_from_shot_cine",
  "tests/services/test_scene_still_writer.py::test_write_update_preserves_existing_id",
  "tests/services/test_scene_still_writer.py::test_write_update_preserves_t2i_composer_version",
  "tests/services/test_scene_validation_service.py::test_create_validator_no_openai_key_returns_none",
  "tests/services/test_scene_validation_service.py::test_create_validator_with_key_returns_instance",
  "tests/services/test_scene_validation_service.py::test_validate_scene_exception_returns_none",
  "tests/services/test_scene_validation_service.py::test_validate_scene_high_score_keeps_status",
  "tests/services/test_scene_validation_service.py::test_validate_scene_low_score_flags_needs_fix",
  "tests/services/test_scene_validation_service.py::test_validate_scene_missing_file_returns_unchanged",
  "tests/services/test_scene_variation_service.py::test_apply_validation_override_best_idx_out_of_bounds_falls_back_to_zero",
  "tests/services/test_scene_variation_service.py::test_apply_validation_override_diff_exactly_20_no_override",
  "tests/services/test_scene_variation_service.py::test_apply_validation_override_high_score_no_override",
  "tests/services/test_scene_variation_service.py::test_apply_validation_override_low_but_no_better_alternative",
  "tests/services/test_scene_variation_service.py::test_apply_validation_override_none_score_treated_as_50",
  "tests/services/test_scene_variation_service.py::test_apply_validation_override_score_exactly_40_no_override",
  "tests/services/test_scene_variation_service.py::test_apply_validation_override_single_variation_no_override",
  "tests/services/test_scene_variation_service.py::test_apply_validation_override_skip_fal_result",
  "tests/services/test_scene_variation_service.py::test_apply_validation_override_switches_to_higher",
  "tests/services/test_scene_variation_service.py::test_apply_validation_override_without_fal_considers_all",
  "tests/services/test_scene_variation_service.py::test_recommend_variations_no_openai_key_raises",
  "tests/services/test_scene_variation_service.py::test_recommend_variations_still_not_found_raises",
  "tests/services/test_scene_variation_service.py::test_select_best_variation_idx_calls_gemini_when_multiple",
  "tests/services/test_scene_variation_service.py::test_select_best_variation_idx_empty_list_returns_zero",
  "tests/services/test_scene_variation_service.py::test_select_best_variation_idx_empty_list_returns_zero_false",
  "tests/services/test_scene_variation_service.py::test_select_best_variation_idx_exception_returns_zero",
  "tests/services/test_scene_variation_service.py::test_select_best_variation_idx_exception_returns_zero_false",
  "tests/services/test_scene_variation_service.py::test_select_best_variation_idx_missing_file_skipped",
  "tests/services/test_scene_variation_service.py::test_select_best_variation_idx_raw_out_of_bounds_clamped",
  "tests/services/test_scene_variation_service.py::test_select_best_variation_idx_single_existing_file",
  "tests/services/test_scene_variation_service.py::test_select_best_variation_idx_zero_raw_still_flagged",
  "tests/services/test_scene_variation_service.py::test_select_original_image_not_found_raises",
  "tests/services/test_scene_variation_service.py::test_select_original_still_not_found_raises",
  "tests/services/test_scene_variation_service.py::test_select_variant_invalid_variant_raises",
  "tests/services/test_scene_variation_service.py::test_select_variant_still_not_found_raises",
  "tests/services/test_scene_variation_service.py::test_set_variant_primary_no_target_is_noop",
  "tests/services/test_scene_variation_service.py::test_set_variant_primary_updates_siblings_and_target",
  "tests/services/test_send_ledger_attribution.py::test_a_child_branch_is_recorded_under_its_own_key",
  "tests/services/test_send_ledger_attribution.py::test_the_body_context_comes_back_after_the_transform",
  "tests/services/test_send_ledger_attribution.py::test_the_cine_key_rule_lives_in_one_place",
  "tests/services/test_send_ledger_attribution.py::test_the_cine_transform_is_not_recorded_as_the_body",
  "tests/services/test_send_ledger_attribution.py::test_the_moderation_fallback_gets_its_own_slot",
  "tests/services/test_send_ledger_attribution.py::test_the_visit_is_read_inside_the_shot_scope",
  "tests/services/test_send_ledger_attribution.py::test_two_shots_do_not_share_one_visit",
  "tests/services/test_shot_selection_service.py::test_toggle_acquires_advisory_lock",
  "tests/services/test_shot_selection_service.py::test_toggle_add_rejected_when_episode_max_exceeded",
  "tests/services/test_shot_selection_service.py::test_toggle_backfills_selected_shots_from_v3_checkpoint",
  "tests/services/test_shot_selection_service.py::test_toggle_corrupt_manifest_propagates_decode_error",
  "tests/services/test_shot_selection_service.py::test_toggle_deselect_always_allowed_even_over_cap",
  "tests/services/test_shot_selection_service.py::test_toggle_missing_checkpoint_raises",
  "tests/services/test_shot_selection_service.py::test_toggle_missing_scene_raises",
  "tests/services/test_single_scene_rpc_lookup.py::test_build_single_inject_rpc_into_still_data",
  "tests/services/test_single_scene_rpc_lookup.py::test_build_single_propagates_lookup_failure",
  "tests/services/test_single_scene_rpc_lookup.py::test_build_single_required_refs_missing_fail_fast",
  "tests/services/test_single_scene_rpc_lookup.py::test_build_single_required_refs_present_passes",
  "tests/services/test_single_scene_rpc_lookup.py::test_lookup_rpc_data_not_dict_fail_fast",
  "tests/services/test_single_scene_rpc_lookup.py::test_lookup_rpc_missing_manifest_file_fail_fast",
  "tests/services/test_single_scene_rpc_lookup.py::test_lookup_rpc_missing_render_prompt_card_field_fail_fast",
  "tests/services/test_single_scene_rpc_lookup.py::test_lookup_rpc_returns_card_dict",
  "tests/services/test_single_scene_rpc_lookup.py::test_lookup_rpc_root_not_dict_fail_fast",
  "tests/services/test_single_scene_rpc_lookup.py::test_lookup_rpc_scene_item_not_dict_fail_fast",
  "tests/services/test_single_scene_rpc_lookup.py::test_lookup_rpc_scenes_not_list_fail_fast",
  "tests/services/test_single_scene_rpc_lookup.py::test_lookup_rpc_shot_not_in_manifest_fail_fast",
  "tests/services/test_single_scene_uses_helper.py::test_single_path_calls_build_scene_attached_refs",
  "tests/services/test_single_scene_uses_helper.py::test_single_path_helper_call_includes_cached_style_and_text_map",
  "tests/services/test_single_scene_uses_helper.py::test_single_path_helper_call_includes_chain_bg_map",
  "tests/services/test_single_scene_uses_helper.py::test_single_path_helper_call_includes_project_id",
  "tests/services/test_snapshot_service.py::test_list_versions_ignores_prerestore",
  "tests/services/test_snapshot_service.py::test_list_versions_no_dir_empty",
  "tests/services/test_snapshot_service.py::test_restore_missing_version_raises",
  "tests/services/test_snapshot_service.py::test_restore_no_checkpoint_dir_raises",
  "tests/services/test_snapshot_service.py::test_save_snapshot_no_checkpoint_dir_raises",
  "tests/services/test_staged_character_gets_reference.py::test_background_only_shot_is_left_alone",
  "tests/services/test_staged_character_gets_reference.py::test_duplicate_names_are_dropped",
  "tests/services/test_staged_character_gets_reference.py::test_pov_and_unknown_names_are_skipped",
  "tests/services/test_staged_character_gets_reference.py::test_prev_roster_counts_the_person_the_prev_shot_staged",
  "tests/services/test_staged_character_gets_reference.py::test_staged_character_gets_reference_name_and_state",
  "tests/services/test_staged_character_gets_reference.py::test_staged_immobilized_character_gets_state_variant",
  "tests/services/test_step_execution_service_start_step.py::test_completed_block_raises_resume_invalid_409",
  "tests/services/test_step_execution_service_start_step.py::test_completed_rerun_self_falls_through_to_background_submit",
  "tests/services/test_step_execution_service_start_step.py::test_completed_skip_returns_skipped",
  "tests/services/test_step_execution_service_start_step.py::test_no_existing_step_run_falls_through",
  "tests/services/test_step_execution_service_start_step.py::test_non_completed_status_falls_through",
  "tests/services/test_step_execution_service_start_step.py::test_step_local_hash_differs_from_project_config_hash_still_skips",
  "tests/services/test_step_manifest_model_routing.py::test_build_pipeline_steps_warns_on_overlap",
  "tests/services/test_step_manifest_model_routing.py::test_extension_does_not_override_manifest",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[angle_recommend-gpt-image_sub]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[entity_detail_batch-gpt-analysis]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[entity_extract-gpt-analysis]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[entity_style-gpt-analysis]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[fal_angle_apply-fal-ai-image_sub]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[final_select-gpt-image_sub]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[location_consistency-gemini-pro-analysis]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[outlook_merge-gpt-analysis]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[prompt_sanitize-gpt-image_sub]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[prompt_translation-gpt-image_sub]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[prompt_translation-gpt-mini-image_sub]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[scene_dependency-gpt-analysis]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[scene_t2i_gen-gemini-image-image_sub]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[scene_t2i_validation-gpt-image_sub]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[style_rules-gpt-analysis]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[t2i_translation-gpt-image_sub]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[t2i_translation-gpt-mini-image_sub]",
  "tests/services/test_step_manifest_model_routing.py::test_extension_steps_present[webbook_gen-gpt-auxiliary]",
  "tests/services/test_step_manifest_model_routing.py::test_gpt_mini_rows_have_gemini_provider",
  "tests/services/test_step_manifest_model_routing.py::test_llm_router_module_removed",
  "tests/services/test_step_manifest_model_routing.py::test_no_residual_imports_to_llm_router",
  "tests/services/test_step_manifest_model_routing.py::test_pdf_data_url_steps_require_gemini_alias",
  "tests/services/test_step_manifest_model_routing.py::test_pipeline_steps_category_matches_manifest_category",
  "tests/services/test_step_manifest_model_routing.py::test_pipeline_steps_default_matches_manifest_default_model",
  "tests/services/test_step_manifest_model_routing.py::test_pipeline_steps_includes_every_manifest_entry",
  "tests/services/test_step_manifest_model_routing.py::test_pipeline_steps_label_matches_manifest_label",
  "tests/services/test_step_manifest_model_routing.py::test_planning_doc_analysis_alias_is_unified",
  "tests/services/test_step_manifest_model_routing.py::test_resolve_model_falls_back_to_gemini_pro_for_unknown_step",
  "tests/services/test_step_manifest_model_routing.py::test_resolve_model_project_config_overrides_default",
  "tests/services/test_step_manifest_model_routing.py::test_resolve_model_project_config_without_model_falls_back_to_default",
  "tests/services/test_step_manifest_model_routing.py::test_resolve_model_unknown_step_with_project_config_uses_provided_model",
  "tests/services/test_step_manifest_model_routing.py::test_resolve_model_uses_extension_for_sub_step",
  "tests/services/test_step_manifest_model_routing.py::test_resolve_model_uses_manifest_default_for_known_step",
  "tests/services/test_step_manifest_model_routing.py::test_resolve_model_warns_once_for_unknown_step",
  "tests/services/test_step_manifest_model_routing.py::test_ui_and_runtime_share_same_pipeline_steps",
  "tests/services/test_still_cine_stage.py::test_cine_applied_asset_lineage_is_cine_stage",
  "tests/services/test_still_cine_stage.py::test_cine_declined_closes_the_step_and_stamps_the_asset",
  "tests/services/test_still_cine_stage.py::test_cine_exact_miss_leaves_generation_call_none",
  "tests/services/test_still_cine_stage.py::test_cine_failure_persists_fallback_but_does_not_seal_then_resume_retries",
  "tests/services/test_still_cine_stage.py::test_cine_moderation_below_give_up_still_blocks_the_step",
  "tests/services/test_still_cine_stage.py::test_fix_ref_gate_reaches_the_branch_and_the_fingerprint[off]",
  "tests/services/test_still_cine_stage.py::test_fix_ref_gate_reaches_the_branch_and_the_fingerprint[on]",
  "tests/services/test_still_cine_stage.py::test_fresh_decline_persists_even_when_output_bytes_identical",
  "tests/services/test_still_cine_stage.py::test_fresh_paid_cine_success_persists_even_when_bytes_identical",
  "tests/services/test_still_cine_stage.py::test_human_rejected_cine_keeps_original_and_buys_nothing",
  "tests/services/test_still_cine_stage.py::test_human_rejection_of_a_finished_cine_switches_to_original_once",
  "tests/services/test_still_cine_stage.py::test_lineage_annotation_respects_explicit_none_call_id",
  "tests/services/test_still_cine_stage.py::test_settings_put_requires_admin_dependency",
  "tests/services/test_still_cine_stage.py::test_settled_decline_pays_nothing_and_skips_persist",
  "tests/services/test_still_jit_verify.py::test_a_gate_held_shot_still_counts_toward_the_limit",
  "tests/services/test_still_jit_verify.py::test_a_metadata_only_visit_spends_nothing",
  "tests/services/test_still_jit_verify.py::test_boundary_exact_limit_raises_and_latches",
  "tests/services/test_still_jit_verify.py::test_done_with_record_reaches_verification",
  "tests/services/test_still_jit_verify.py::test_done_without_record_skips",
  "tests/services/test_still_jit_verify.py::test_fresh_output_writes_nothing",
  "tests/services/test_still_jit_verify.py::test_latch_blocks_without_spend",
  "tests/services/test_still_jit_verify.py::test_latch_ignored_when_switch_off",
  "tests/services/test_still_jit_verify.py::test_regen_limit_brakes_before_next_verify",
  "tests/services/test_still_jit_verify.py::test_shared_groupbg_spend_counts_toward_limit",
  "tests/services/test_still_jit_verify.py::test_spent_but_same_bytes_counts_toward_limit",
  "tests/services/test_still_jit_verify.py::test_stale_output_persists_via_existing_path",
  "tests/services/test_still_jit_verify.py::test_switch_off_keeps_full_skip",
  "tests/services/test_still_jit_verify.py::test_the_brake_stops_the_next_shot_after_a_held_paid_one",
  "tests/services/test_still_jit_verify.py::test_the_gate_off_run_counts_exactly_as_before",
  "tests/services/test_still_jit_verify.py::test_verify_failure_does_not_seal_step",
  "tests/services/test_still_recipe_confined_fp.py::test_active_skips_plate_paths_and_reaches_confined_branch",
  "tests/services/test_still_recipe_confined_fp.py::test_apt_false_falls_back_to_legacy",
  "tests/services/test_still_recipe_confined_fp.py::test_flag_off_never_judges",
  "tests/services/test_still_recipe_target_scope.py::test_no_target_runs_all_byte_identical",
  "tests/services/test_still_recipe_target_scope.py::test_target_scope_only_effective_reaches_execution",
  "tests/services/test_still_recipe_target_scope.py::test_target_scope_prev_chain_joins_execution",
  "tests/services/test_visual_context_helper.py::test_build_block_combines_both_sources",
  "tests/services/test_visual_context_helper.py::test_build_block_returns_empty_when_both_missing",
  "tests/services/test_visual_context_helper.py::test_build_block_with_visual_world_rules_only",
  "tests/services/test_visual_context_helper.py::test_build_block_with_world_guide_only",
  "tests/services/test_visual_context_helper.py::test_extract_source_language_empty_returns_none",
  "tests/services/test_visual_context_helper.py::test_extract_source_language_explicit_wins",
  "tests/services/test_visual_context_helper.py::test_extract_source_language_fallback_english",
  "tests/services/test_visual_context_helper.py::test_extract_source_language_fallback_japanese",
  "tests/services/test_visual_context_helper.py::test_extract_source_language_fallback_korean",
  "tests/services/test_zoom_continuity_logging.py::test_zoom_crop_sets_scene_image_gen_log_context",
  "tests/services/test_zoom_continuity_logging.py::test_zoom_crop_trace_meta_overrides",
  "tests/services/test_zz_dbg2.py::test_dbg",
  "tests/services/test_zz_dbg_free.py::test_dbg",
  "tests/services/test_zz_url_probe.py::test_url",
  "tests/smoke/test_autodrive_smoke.py::test_1_counter_dir_failure_is_fail_closed",
  "tests/smoke/test_autodrive_smoke.py::test_1b_existing_cnt_unreadable_or_empty_is_fail_closed",
  "tests/smoke/test_autodrive_smoke.py::test_2_http_401_is_not_counted",
  "tests/smoke/test_autodrive_smoke.py::test_3_started_counts_and_cap_stops_at_three",
  "tests/smoke/test_autodrive_smoke.py::test_4_multiple_fp_resumes_first_in_pipeline_order_only",
  "tests/test_active_prompt_residue_shot_director_v6.py::test_active_prompt_contains_bp_guard",
  "tests/test_active_prompt_residue_shot_director_v6.py::test_active_prompt_is_v6_or_later",
  "tests/test_active_prompt_residue_shot_director_v6.py::test_active_prompt_no_banned_literal[(\\ucc28\\ub2e8|\\ub9c9\\ub2e4|\\uac00\\ub9ac\\ub2e4|block|obstruct)]",
  "tests/test_active_prompt_residue_shot_director_v6.py::test_active_prompt_no_banned_literal[Gaze-target close-up \\ud328\\ud134]",
  "tests/test_active_prompt_residue_shot_director_v6.py::test_active_prompt_no_banned_literal[Reaction-only \\ud328\\ud134]",
  "tests/test_active_prompt_residue_shot_director_v6.py::test_active_prompt_no_banned_literal[X[\\ub97c\\uc744]]",
  "tests/test_active_prompt_residue_shot_director_v6.py::test_active_prompt_no_banned_literal[Y[\\uc758]]",
  "tests/test_active_prompt_residue_shot_director_v6.py::test_active_prompt_no_banned_literal[\\uba85\\uc2dc\\uc801 off-camera/off-screen phrase]",
  "tests/test_active_prompt_residue_shot_director_v6.py::test_active_prompt_no_banned_literal[\\ucc28\\ub2e8(blocking) \\ud328\\ud134]",
  "tests/test_activity_logger.py::test_log_creates_entry",
  "tests/test_activity_logger.py::test_log_does_not_raise_on_failure",
  "tests/test_api_endpoint_decorator.py::test_app_error_reraised",
  "tests/test_api_endpoint_decorator.py::test_dict_response_gets_warnings_key",
  "tests/test_api_endpoint_decorator.py::test_existing_warnings_preserved",
  "tests/test_api_endpoint_decorator.py::test_function_metadata_preserved",
  "tests/test_api_endpoint_decorator.py::test_non_dict_response_unchanged",
  "tests/test_api_endpoint_decorator.py::test_unhandled_exception_wrapped_to_app_error",
  "tests/test_applicability.py::test_always_returns_true",
  "tests/test_applicability.py::test_disabled_returns_false",
  "tests/test_applicability.py::test_known_if_rules_present_in_registry",
  "tests/test_applicability.py::test_on_demand_returns_true",
  "tests/test_applicability.py::test_registry_does_not_have_always_or_disabled",
  "tests/test_applicability.py::test_unknown_rule_raises_value_error",
  "tests/test_auth_api.py::test_login_fail",
  "tests/test_auth_api.py::test_login_success",
  "tests/test_auth_api.py::test_logout",
  "tests/test_auth_api.py::test_me_with_session",
  "tests/test_auth_api.py::test_me_without_session",
  "tests/test_background_share_plan_survives_a_stray_field.py::test_곁가지_칸은_떼어내고_기록한다",
  "tests/test_background_share_plan_survives_a_stray_field.py::test_뗄_것이_없으면_아무것도_안_한다",
  "tests/test_background_share_plan_survives_a_stray_field.py::test_상한을_다_쓰면_그대로_선다",
  "tests/test_background_share_plan_survives_a_stray_field.py::test_스키마_위반이_재시도를_건너뛰지_않는다",
  "tests/test_background_share_plan_survives_a_stray_field.py::test_스키마가_곁가지_칸을_더는_통째로_막지_않는다",
  "tests/test_canary_area_3_focused_integration.py::test_canary_S12_Shot4_post_W2_W3_raw_replay_available",
  "tests/test_canary_area_3_focused_integration.py::test_path_1_structured_blocking_still_raises",
  "tests/test_canary_area_3_focused_integration.py::test_path_2_proximity_diagnostic_does_not_raise",
  "tests/test_checkpoint_io.py::test_atomic_write_creates_parent",
  "tests/test_checkpoint_io.py::test_atomic_write_no_tmp_leftover",
  "tests/test_checkpoint_io.py::test_atomic_write_preserves_utf8",
  "tests/test_checkpoint_io.py::test_atomic_write_replaces_existing",
  "tests/test_checkpoint_io.py::test_atomic_write_unique_tmp_across_calls",
  "tests/test_checkpoint_io.py::test_read_json_safe_returns_none_for_invalid",
  "tests/test_checkpoint_io.py::test_read_json_safe_returns_none_for_missing",
  "tests/test_checkpoint_io.py::test_read_json_safe_roundtrip",
  "tests/test_cine_provider_mai.py::test_mai_가_아는_제공자다",
  "tests/test_cine_provider_mai.py::test_mai_는_grok_운반층을_모델만_바꿔_쓴다",
  "tests/test_cine_provider_mai.py::test_mai_신원에_물리_모델이_실린다",
  "tests/test_cine_provider_mai.py::test_mai_신원은_grok_과_다르다",
  "tests/test_cine_provider_mai.py::test_모르는_제공자는_조용히_안_되돌린다",
  "tests/test_cine_provider_mai.py::test_설정_검증이_mai_를_받는다",
  "tests/test_creator_corrections.py::test_block_contains_entries_and_header_once",
  "tests/test_creator_corrections.py::test_block_pure_function_empty_list",
  "tests/test_creator_corrections.py::test_malformed_fails_fast_on_save[bad0]",
  "tests/test_creator_corrections.py::test_malformed_fails_fast_on_save[bad1]",
  "tests/test_creator_corrections.py::test_malformed_fails_fast_on_save[bad2]",
  "tests/test_creator_corrections.py::test_malformed_fails_fast_on_save[bad3]",
  "tests/test_creator_corrections.py::test_malformed_fails_fast_on_save[bad4]",
  "tests/test_creator_corrections.py::test_malformed_fails_fast_on_save[bad5]",
  "tests/test_creator_corrections.py::test_malformed_file_fails_fast_on_load",
  "tests/test_creator_corrections.py::test_missing_file_is_empty_and_block_is_byte_identical",
  "tests/test_creator_corrections.py::test_roundtrip_save_load_active_filter",
  "tests/test_entities_api.py::test_analyze_episode_not_found",
  "tests/test_entities_api.py::test_analyze_no_api_key",
  "tests/test_entities_api.py::test_analyze_no_text",
  "tests/test_entities_api.py::test_get_entity_detail",
  "tests/test_entities_api.py::test_get_entity_not_found",
  "tests/test_entities_api.py::test_list_entities",
  "tests/test_entities_api.py::test_list_entities_filter_by_type",
  "tests/test_entities_api.py::test_list_stills",
  "tests/test_entities_api.py::test_list_stills_empty",
  "tests/test_entities_api.py::test_update_entity",
  "tests/test_entities_api.py::test_update_entity_not_found",
  "tests/test_entity_dependency.py::test_character_character_identity_dependency",
  "tests/test_entity_dependency.py::test_character_character_transformation",
  "tests/test_entity_dependency.py::test_character_location_ignored",
  "tests/test_entity_dependency.py::test_character_prop_possession_dependency",
  "tests/test_entity_dependency.py::test_circular_dependency_handled",
  "tests/test_entity_dependency.py::test_empty_entities_empty_batches",
  "tests/test_entity_dependency.py::test_location_location_identity",
  "tests/test_entity_dependency.py::test_location_location_transformation",
  "tests/test_entity_dependency.py::test_multiple_independent_entities_same_batch",
  "tests/test_entity_dependency.py::test_no_relations_single_batch",
  "tests/test_entity_dependency.py::test_non_visual_relation_family_ignored",
  "tests/test_entity_dependency.py::test_single_participant_relation_skipped",
  "tests/test_entity_dependency.py::test_topological_sort_valid_ordering",
  "tests/test_entity_dependency.py::test_unknown_entity_in_participant_skipped",
  "tests/test_entity_dependency.py::test_visual_reference_rules_structure",
  "tests/test_entity_extract_v4.py::test_extract_all_entities_calls_three_types",
  "tests/test_entity_extract_v4.py::test_extract_all_entities_passes_params",
  "tests/test_entity_extract_v4.py::test_extract_by_type_calls_call_structured_with_correct_step",
  "tests/test_entity_extract_v4.py::test_extract_by_type_location_uses_correct_root_key",
  "tests/test_entity_extract_v4.py::test_extract_by_type_prop_uses_correct_root_key",
  "tests/test_entity_extract_v4.py::test_filter_keeps_entity_with_exactly_two_scenes",
  "tests/test_entity_extract_v4.py::test_filter_removes_entity_with_duplicate_single_scene",
  "tests/test_entity_extract_v4.py::test_filter_removes_entity_with_single_scene",
  "tests/test_entity_filter.py::TestAppearanceCountAuthoritative::test_missing_both_uses_deduped_appearances",
  "tests/test_entity_filter.py::TestAppearanceCountAuthoritative::test_missing_everything_is_zero",
  "tests/test_entity_filter.py::TestAppearanceCountAuthoritative::test_none_shot_count_falls_through_to_scene_count",
  "tests/test_entity_filter.py::TestAppearanceCountAuthoritative::test_protected_short_id_still_bypasses",
  "tests/test_entity_filter.py::TestAppearanceCountAuthoritative::test_zero_scene_count_wins_over_appearances",
  "tests/test_entity_filter.py::TestAppearanceCountAuthoritative::test_zero_shot_count_entity_reaches_the_filter_prompt",
  "tests/test_entity_filter.py::TestAppearanceCountAuthoritative::test_zero_shot_count_wins_over_fallbacks",
  "tests/test_entity_filter.py::TestFilterLowFrequencyEntities::test_collects_only_low_freq_entities",
  "tests/test_entity_filter.py::TestFilterLowFrequencyEntities::test_empty_low_freq_returns_unchanged",
  "tests/test_entity_filter.py::TestFilterLowFrequencyEntities::test_high_freq_entities_not_sent_to_llm",
  "tests/test_entity_filter.py::TestFilterLowFrequencyEntities::test_keep_decisions_preserved",
  "tests/test_entity_filter.py::TestFilterLowFrequencyEntities::test_remove_decisions_applied",
  "tests/test_entity_review_v4.py::test_entity_review_step_filters_unnecessary",
  "tests/test_entity_review_v4.py::test_review_entities_calls_call_structured_with_step",
  "tests/test_entity_review_v4.py::test_review_entities_formats_entities",
  "tests/test_entity_review_v4.py::test_review_entities_loads_external_prompt",
  "tests/test_episode_summary.py::test_summarize_episode_calls_call_structured_with_step",
  "tests/test_episode_summary.py::test_summarize_episode_loads_external_prompt",
  "tests/test_episode_summary.py::test_summarize_episode_respects_max_length",
  "tests/test_episode_summary.py::test_summarize_episode_returns_string",
  "tests/test_episodes_api.py::test_delete_episode",
  "tests/test_episodes_api.py::test_duplicate_episode_number",
  "tests/test_episodes_api.py::test_episode_not_found",
  "tests/test_episodes_api.py::test_get_episode",
  "tests/test_episodes_api.py::test_list_episodes",
  "tests/test_episodes_api.py::test_update_episode",
  "tests/test_episodes_api.py::test_upload_episode",
  "tests/test_errors_shot_staging_orientation.py::test_shot_staging_orientation_error_attributes",
  "tests/test_errors_shot_staging_orientation.py::test_shot_staging_orientation_error_code_and_status",
  "tests/test_errors_shot_staging_orientation.py::test_shot_staging_orientation_error_details",
  "tests/test_errors_shot_staging_orientation.py::test_shot_staging_orientation_error_is_app_error",
  "tests/test_errors_shot_staging_orientation.py::test_shot_staging_orientation_error_message_format",
  "tests/test_exports_api.py::test_download_export_not_found",
  "tests/test_exports_api.py::test_generate_webbook_no_key",
  "tests/test_exports_api.py::test_list_exports_empty",
  "tests/test_exports_api.py::test_render_pdf_no_webbook",
  "tests/test_framing_scale_helper.py::test_get_framing_scale_or_raise_invalid_value",
  "tests/test_framing_scale_helper.py::test_get_framing_scale_or_raise_missing_key",
  "tests/test_framing_scale_helper.py::test_get_framing_scale_or_raise_missing_staging_not_dict",
  "tests/test_framing_scale_helper.py::test_get_framing_scale_or_raise_returns_valid_enum",
  "tests/test_framing_scale_helper.py::test_valid_framing_scales_frozenset_4_values",
  "tests/test_i18n.py::test_t_returns_key_for_missing",
  "tests/test_i18n.py::test_t_returns_korean_string",
  "tests/test_image_validator.py::test_get_validation_no_result",
  "tests/test_image_validator.py::test_get_validation_with_result",
  "tests/test_image_validator.py::test_image_response_includes_validation_fields",
  "tests/test_image_validator.py::test_validate_endpoint_image_not_found",
  "tests/test_image_validator.py::test_validate_endpoint_no_openai_key",
  "tests/test_image_validator.py::test_validation_schema_has_required_fields",
  "tests/test_images_api.py::test_compose_prompts_no_openai_key",
  "tests/test_images_api.py::test_compose_prompts_still_not_found",
  "tests/test_images_api.py::test_generate_images_no_gemini_key",
  "tests/test_images_api.py::test_generate_images_unanalyzed_episode_blocked",
  "tests/test_images_api.py::test_get_composer_prompt_empty",
  "tests/test_images_api.py::test_get_image_detail",
  "tests/test_images_api.py::test_get_image_not_found",
  "tests/test_images_api.py::test_image_file_not_found",
  "tests/test_images_api.py::test_image_file_serve",
  "tests/test_images_api.py::test_image_response_includes_lineage_fields",
  "tests/test_images_api.py::test_image_response_includes_sanitization_fields",
  "tests/test_images_api.py::test_image_response_lineage_defaults",
  "tests/test_images_api.py::test_image_review_invalid_status",
  "tests/test_images_api.py::test_image_review_update",
  "tests/test_images_api.py::test_list_images_empty",
  "tests/test_images_api.py::test_list_images_includes_sanitization_fields",
  "tests/test_images_api.py::test_list_images_with_filter",
  "tests/test_images_api.py::test_regenerate_needs_fix_none_marked",
  "tests/test_images_api.py::test_regenerate_single_image",
  "tests/test_images_api.py::test_scene_still_response_includes_t2i_fields",
  "tests/test_images_api.py::test_update_and_get_composer_prompt",
  "tests/test_images_api.py::test_update_composer_prompt_partial",
  "tests/test_images_api.py::test_update_still_t2i_prompts",
  "tests/test_manifest_fields.py::test_active_steps_count_matches_baseline",
  "tests/test_manifest_fields.py::test_all_steps_have_lifecycle",
  "tests/test_manifest_fields.py::test_all_steps_have_step_type",
  "tests/test_manifest_fields.py::test_asset_steps_exact_list",
  "tests/test_manifest_fields.py::test_deprecated_steps_declare_replaced_by_or_disabled",
  "tests/test_manifest_fields.py::test_editorial_cascade_disabled_by_default",
  "tests/test_manifest_fields.py::test_editorial_modifies_references_are_valid",
  "tests/test_manifest_fields.py::test_editorial_steps_declare_modifies_checkpoints",
  "tests/test_manifest_fields.py::test_image_steps_are_asset",
  "tests/test_manifest_fields.py::test_lifecycle_values_are_known",
  "tests/test_manifest_fields.py::test_removed_steps_are_disabled",
  "tests/test_manifest_fields.py::test_replaced_by_targets_are_valid",
  "tests/test_manifest_fields.py::test_resume_sensitive_is_bool",
  "tests/test_manifest_fields.py::test_resume_sensitive_steps_are_shot_more_cohort",
  "tests/test_manifest_fields.py::test_set_design_applicability_is_gated",
  "tests/test_manifest_fields.py::test_step_catalog_exposes_invalidate_downstream_on_edit",
  "tests/test_manifest_fields.py::test_step_type_distribution",
  "tests/test_manifest_fields.py::test_step_type_values_are_known",
  "tests/test_manifest_fields.py::test_t2i_review_modifies_entity_t2i_and_scene_detail",
  "tests/test_models.py::test_create_all_tables",
  "tests/test_models.py::test_insert_user_account",
  "tests/test_moderation.py::TestGenerationTraceModel::test_trace_model_fields",
  "tests/test_moderation.py::TestGenerationTracker::test_get_prompt_evolution",
  "tests/test_moderation.py::TestGenerationTracker::test_get_rejection_stats",
  "tests/test_moderation.py::TestGenerationTracker::test_get_traces",
  "tests/test_moderation.py::TestGenerationTracker::test_record_blocked_trace",
  "tests/test_moderation.py::TestGenerationTracker::test_record_creates_trace",
  "tests/test_moderation.py::TestModerationError::test_check_moderation_block_no_block",
  "tests/test_moderation.py::TestModerationError::test_check_moderation_block_prompt_feedback",
  "tests/test_moderation.py::TestModerationError::test_check_moderation_block_safety_finish",
  "tests/test_moderation.py::TestModerationError::test_moderation_error_attributes",
  "tests/test_moderation.py::TestModerationError::test_moderation_error_is_exception",
  "tests/test_moderation.py::TestPromptSanitizerSchema::test_attempt_to_strategy_mapping",
  "tests/test_moderation.py::TestPromptSanitizerSchema::test_sanitize_prompts_exist",
  "tests/test_moderation.py::TestPromptSanitizerSchema::test_sanitize_schema_structure",
  "tests/test_moderation.py::TestPromptSanitizerSchema::test_sanitize_system_prompt_content",
  "tests/test_moderation.py::TestPromptSanitizerSchema::test_sanitize_user_prompt_has_placeholders",
  "tests/test_moderation.py::TestPromptSanitizerSchema::test_strategies_defined",
  "tests/test_moderation.py::TestTraceAPI::test_image_traces",
  "tests/test_moderation.py::TestTraceAPI::test_list_traces_empty",
  "tests/test_moderation.py::TestTraceAPI::test_list_traces_pagination",
  "tests/test_moderation.py::TestTraceAPI::test_list_traces_with_data",
  "tests/test_moderation.py::TestTraceAPI::test_rejection_stats_empty",
  "tests/test_moderation.py::TestTraceAPI::test_rejection_stats_with_data",
  "tests/test_outlook_v2.py::test_build_scene_block_limits_text_to_400_chars",
  "tests/test_outlook_v2.py::test_build_scene_block_multiple_scenes",
  "tests/test_outlook_v2.py::test_build_scene_block_uses_defaults_for_missing_fields",
  "tests/test_outlook_v2.py::test_phase1_calls_call_structured_with_correct_step",
  "tests/test_outlook_v2.py::test_phase1_includes_character_block_in_user_prompt",
  "tests/test_outlook_v2.py::test_phase1_includes_scene_block",
  "tests/test_outlook_v2.py::test_phase1_passes_project_config_and_opik",
  "tests/test_outlook_v2.py::test_phase1_returns_empty_outlooks",
  "tests/test_outlook_v2.py::test_phase2_builds_char_outlook_lines",
  "tests/test_outlook_v2.py::test_phase2_calls_call_structured_with_correct_step",
  "tests/test_outlook_v2.py::test_phase2_matches_by_character_name",
  "tests/test_outlook_v2.py::test_phase2_passes_project_config_and_opik",
  "tests/test_outlook_v2.py::test_phase2_sets_temp_short_id_on_outlooks",
  "tests/test_pipeline_e2e.py::TestPipelineE2E::test_create_project",
  "tests/test_pipeline_e2e.py::TestPipelineE2E::test_full_pipeline",
  "tests/test_pipeline_e2e.py::TestPipelineE2E::test_health_check",
  "tests/test_pipeline_v3_e2e.py::TestCheckpointFlow::test_checkpoint_creation_after_step",
  "tests/test_pipeline_v3_e2e.py::TestCheckpointFlow::test_scene_save_loads_segmentation_checkpoint",
  "tests/test_pipeline_v3_e2e.py::TestCheckpointFlow::test_three_step_checkpoint_chain",
  "tests/test_pipeline_v3_e2e.py::TestDependencyGraph::test_scene_detail_blocked_without_all_deps",
  "tests/test_pipeline_v3_e2e.py::TestDependencyGraph::test_scene_segmentation_blocked_without_text_cleanup",
  "tests/test_pipeline_v3_e2e.py::TestDependencyGraph::test_scene_segmentation_passes_with_text_cleanup_completed",
  "tests/test_pipeline_v3_e2e.py::TestDependencyGraph::test_text_cleanup_has_no_gate",
  "tests/test_pipeline_v3_e2e.py::TestForceMode::test_force_invalidates_downstream",
  "tests/test_pipeline_v3_e2e.py::TestForceMode::test_force_reruns_completed_step",
  "tests/test_pipeline_v3_e2e.py::TestResumeMode::test_completed_step_is_skipped",
  "tests/test_pipeline_v3_e2e.py::TestResumeMode::test_pending_step_runs_in_resume",
  "tests/test_pipeline_v3_e2e.py::TestStepClassesCompleteness::test_all_classes_inherit_step_runner",
  "tests/test_pipeline_v3_e2e.py::TestStepClassesCompleteness::test_all_manifest_ids_have_class_or_legacy",
  "tests/test_pipeline_v3_e2e.py::TestStepClassesCompleteness::test_step_classes_count_at_least_18",
  "tests/test_pipeline_v3_e2e.py::TestStepClassesCompleteness::test_step_classes_count_at_least_19",
  "tests/test_pipeline_v3_e2e.py::TestStepOrdering::test_analysis_order_matches",
  "tests/test_pipeline_v3_e2e.py::TestStepOrdering::test_analysis_orders_are_monotonic",
  "tests/test_pipeline_v3_e2e.py::TestStepOrdering::test_image_steps_after_analysis",
  "tests/test_pipeline_v3_e2e.py::TestStepOrdering::test_order_values_are_sequential",
  "tests/test_pipeline_v3_e2e.py::TestSyncIntegration::test_sync_updates_episode_status",
  "tests/test_pipeline_v3_e2e.py::TestSyncIntegration::test_sync_writes_vah_to_scene_still",
  "tests/test_pipeline_v3_e2e.py::TestVAHManifest::test_scene_director_checkpoint_has_vah_fields",
  "tests/test_pipeline_v3_e2e.py::TestVAHManifest::test_scene_director_manifest_label",
  "tests/test_pipeline_v3_e2e.py::TestVAHManifest::test_scene_still_model_has_vah_columns",
  "tests/test_progress.py::test_multiple_operations_per_episode",
  "tests/test_progress.py::test_pipeline_progress_model",
  "tests/test_progress.py::test_progress_endpoint_empty",
  "tests/test_progress.py::test_progress_endpoint_with_data",
  "tests/test_progress.py::test_progress_persists_across_queries",
  "tests/test_progress.py::test_progress_tracker_complete",
  "tests/test_progress.py::test_progress_tracker_create",
  "tests/test_progress.py::test_progress_tracker_fail",
  "tests/test_progress.py::test_progress_tracker_update",
  "tests/test_project_export_import.py::test_export_import_round_trip_data_integrity",
  "tests/test_project_export_import.py::test_export_import_round_trip_entity_canon_metadata_json",
  "tests/test_project_export_import.py::test_export_includes_member",
  "tests/test_project_export_import.py::test_export_lists_are_serialisable",
  "tests/test_project_export_import.py::test_export_nonexistent_project",
  "tests/test_project_export_import.py::test_export_project_fields",
  "tests/test_project_export_import.py::test_export_requires_auth",
  "tests/test_project_export_import.py::test_export_returns_valid_json",
  "tests/test_project_export_import.py::test_import_creates_new_project",
  "tests/test_project_export_import.py::test_import_invalid_format",
  "tests/test_project_export_import.py::test_import_remaps_ids",
  "tests/test_project_export_import.py::test_import_requires_auth",
  "tests/test_project_export_import.py::test_import_with_new_name",
  "tests/test_projects_api.py::test_access_denied",
  "tests/test_projects_api.py::test_add_member",
  "tests/test_projects_api.py::test_cannot_remove_owner",
  "tests/test_projects_api.py::test_create_project",
  "tests/test_projects_api.py::test_delete_project",
  "tests/test_projects_api.py::test_get_project",
  "tests/test_projects_api.py::test_list_projects_as_admin",
  "tests/test_projects_api.py::test_list_projects_as_creator",
  "tests/test_projects_api.py::test_member_role_change",
  "tests/test_projects_api.py::test_project_activities",
  "tests/test_projects_api.py::test_remove_member",
  "tests/test_projects_api.py::test_update_project",
  "tests/test_prompt_versions.py::TestEvidenceFieldsInPrompts::test_scene_consistency_v6_system_blocks_legacy_output",
  "tests/test_prompt_versions.py::TestEvidenceFieldsInPrompts::test_scene_consistency_v6_system_has_4_fields",
  "tests/test_prompt_versions.py::TestEvidenceFieldsInPrompts::test_scene_detail_v14_distinguishes_source_from_inference",
  "tests/test_prompt_versions.py::TestEvidenceFieldsInPrompts::test_scene_detail_v14_system_blocks_legacy_output",
  "tests/test_prompt_versions.py::TestEvidenceFieldsInPrompts::test_scene_detail_v14_system_has_4_fields",
  "tests/test_prompt_versions.py::TestSceneConsistencyV7Prompt::test_prompt_v7_active_loader_matches_file",
  "tests/test_prompt_versions.py::TestSceneConsistencyV7Prompt::test_prompt_v7_historical_loader_anchor",
  "tests/test_prompt_versions.py::TestSceneConsistencyV7Prompt::test_prompt_v7_historical_no_closed_framing_list",
  "tests/test_prompt_versions.py::TestSceneConsistencyV7Prompt::test_prompt_v7_historical_no_element_id_suffix_guide",
  "tests/test_prompt_versions.py::TestSceneConsistencyV7Prompt::test_prompt_v7_no_closed_framing_list",
  "tests/test_prompt_versions.py::TestSceneConsistencyV7Prompt::test_prompt_v7_no_element_id_suffix_guide",
  "tests/test_prompt_versions.py::test_detail_steps_constants_match",
  "tests/test_prompt_versions.py::test_scene_detail_v23_schema_has_applied_fsc_ids",
  "tests/test_prompt_versions.py::test_scene_extractor_v2_v19_directory_exists",
  "tests/test_prompt_versions.py::test_scene_extractor_v2_v19_latest_loaded",
  "tests/test_prompt_versions.py::test_shot_staging_v10_schema_has_frame_spatial_contract",
  "tests/test_prompt_versions.py::test_shot_staging_v11_schema_has_framing_scale_required_enum",
  "tests/test_prompt_versions.py::test_shot_staging_v12_schema_has_subject_reference_policy_array",
  "tests/test_prompt_versions.py::test_step_manifest_scene_detail_schema_version_10",
  "tests/test_prompt_versions.py::test_step_manifest_scene_detail_schema_version_11",
  "tests/test_prompt_versions.py::test_step_manifest_scene_detail_schema_version_12",
  "tests/test_prompt_versions.py::test_step_manifest_scene_detail_schema_version_13",
  "tests/test_prompt_versions.py::test_step_manifest_scene_detail_schema_version_9",
  "tests/test_prompt_versions.py::test_step_manifest_shot_staging_schema_version_2",
  "tests/test_prompt_versions.py::test_step_manifest_shot_staging_schema_version_3",
  "tests/test_prompt_versions.py::test_step_manifest_shot_staging_schema_version_4",
  "tests/test_prompt_versions.py::test_step_manifest_shot_staging_schema_version_5",
  "tests/test_prompt_versions.py::test_step_manifest_shot_staging_schema_version_6",
  "tests/test_prompt_versions.py::test_version_registry_scene_detail_composer_1_23_0",
  "tests/test_prompt_versions.py::test_version_registry_scene_detail_composer_1_24_0",
  "tests/test_prompt_versions.py::test_version_registry_scene_detail_composer_1_25_0",
  "tests/test_prompt_versions.py::test_version_registry_scene_detail_composer_1_26_0",
  "tests/test_prompt_versions.py::test_version_registry_scene_detail_composer_1_27_0",
  "tests/test_prompt_versions.py::test_version_registry_scene_detail_composer_1_28_0",
  "tests/test_provenance.py::TestOperationLogModel::test_operation_log_fields",
  "tests/test_provenance.py::TestOperationLogModel::test_operation_log_insert",
  "tests/test_provenance.py::TestOperationLogModel::test_operation_log_table_created",
  "tests/test_provenance.py::TestOperationsAPI::test_get_operation_detail",
  "tests/test_provenance.py::TestOperationsAPI::test_get_operation_not_found",
  "tests/test_provenance.py::TestOperationsAPI::test_list_operations_empty",
  "tests/test_provenance.py::TestOperationsAPI::test_list_operations_filter_by_type",
  "tests/test_provenance.py::TestOperationsAPI::test_list_operations_pagination",
  "tests/test_provenance.py::TestOperationsAPI::test_list_operations_with_data",
  "tests/test_provenance.py::TestOperationsAPI::test_operations_response_schema",
  "tests/test_provenance.py::TestOperationsAPI::test_operations_summary_empty",
  "tests/test_provenance.py::TestOperationsAPI::test_operations_summary_with_data",
  "tests/test_provenance.py::TestProvenanceRecorder::test_context_manager_records_error",
  "tests/test_provenance.py::TestProvenanceRecorder::test_explicit_fail",
  "tests/test_provenance.py::TestProvenanceRecorder::test_get_operation_by_id",
  "tests/test_provenance.py::TestProvenanceRecorder::test_get_operation_not_found",
  "tests/test_provenance.py::TestProvenanceRecorder::test_get_operations_filter",
  "tests/test_provenance.py::TestProvenanceRecorder::test_get_summary",
  "tests/test_provenance.py::TestProvenanceRecorder::test_module_version_from_registry",
  "tests/test_provenance.py::TestProvenanceRecorder::test_prompt_hash_computation",
  "tests/test_provenance.py::TestProvenanceRecorder::test_start_operation_creates_log",
  "tests/test_provenance.py::TestProvenanceRecorder::test_token_usage_recorded",
  "tests/test_provenance.py::TestVersionRegistry::test_get_module_info_known",
  "tests/test_provenance.py::TestVersionRegistry::test_get_module_info_unknown",
  "tests/test_provenance.py::TestVersionRegistry::test_provenance_in_registry",
  "tests/test_render_prompt_card_framing_scale.py::test_resolve_missing_framing_scale_key_raises",
  "tests/test_render_prompt_card_framing_scale.py::test_resolve_missing_staging_without_sentinel_raises",
  "tests/test_render_prompt_card_framing_scale.py::test_resolve_normal_staging_returns_enum",
  "tests/test_render_prompt_card_framing_scale.py::test_resolve_staging_not_applicable_returns_medium_sentinel",
  "tests/test_repair_projection_api.py::test_repair_projection_episode_not_found",
  "tests/test_repair_projection_api.py::test_repair_projection_no_failed_steps",
  "tests/test_repair_projection_api.py::test_repair_projection_requires_auth",
  "tests/test_repair_projection_api.py::test_repair_projection_sync_failure_returns_500",
  "tests/test_repair_projection_api.py::test_repair_projection_transitions_failed_to_synced",
  "tests/test_residue_detect_offscreen_drift_legacy.py::test_no_legacy_call_or_import_in_production",
  "tests/test_residue_shot_director_mutation_pattern.py::test_no_visible_entity_ids_mutation_in_shot_director",
  "tests/test_scene_dependency_v2.py::TestDirectorStepClasses::test_registry_contains_all_steps",
  "tests/test_scene_dependency_v2.py::TestDirectorStepClasses::test_registry_maps_to_correct_classes",
  "tests/test_scene_dependency_v2.py::TestExtractDependencies::test_calls_structured_with_correct_step",
  "tests/test_scene_dependency_v2.py::TestExtractDependencies::test_handles_empty_director_result",
  "tests/test_scene_dependency_v2.py::TestExtractDependencies::test_handles_empty_entities",
  "tests/test_scene_dependency_v2.py::TestExtractDependencies::test_loads_correct_prompts",
  "tests/test_scene_dependency_v2.py::TestExtractDependencies::test_returns_dependencies",
  "tests/test_scene_dependency_v2.py::TestExtractDependencies::test_user_prompt_includes_entity_and_scene_info",
  "tests/test_scene_dependency_v2.py::TestFormatEntities::test_format_all_types",
  "tests/test_scene_dependency_v2.py::TestFormatEntities::test_format_empty",
  "tests/test_scene_dependency_v2.py::TestFormatEntities::test_format_uses_name_fallback_when_no_short_id",
  "tests/test_scene_dependency_v2.py::TestSceneCinematographyStep::test_execute_calls_llm_and_updates_db",
  "tests/test_scene_dependency_v2.py::TestSceneCinematographyStep::test_falls_back_to_segmentation",
  "tests/test_scene_dependency_v2.py::TestSceneCinematographyStep::test_raises_when_no_segments",
  "tests/test_scene_dependency_v2.py::TestSceneCinematographyStep::test_shot_types_from_db_in_prompt",
  "tests/test_scene_dependency_v2.py::TestSceneDependencyStep::test_execute_calls_extract_dependencies",
  "tests/test_scene_dependency_v2.py::TestSceneDependencyStep::test_falls_back_entity_to_detail_batch",
  "tests/test_scene_dependency_v2.py::TestSceneDependencyStep::test_falls_back_to_segmentation",
  "tests/test_scene_dependency_v2.py::TestSceneDependencyStep::test_handles_missing_director_and_entity",
  "tests/test_scene_dependency_v2.py::TestSceneDependencyStep::test_raises_when_no_segments",
  "tests/test_scene_detail_v3.py::TestSceneDetailStep::test_all_segments_processed",
  "tests/test_scene_detail_v3.py::TestSceneDetailStep::test_dependency_info_in_user_prompt",
  "tests/test_scene_detail_v3.py::TestSceneDetailStep::test_failed_scenes_counted",
  "tests/test_scene_detail_v3.py::TestSceneDetailStep::test_no_segments_returns_empty",
  "tests/test_scene_detail_v3.py::TestSceneDetailStep::test_results_sorted_by_scene_index",
  "tests/test_scene_detail_v3.py::TestSceneDetailStep::test_summary_included_in_user_prompt",
  "tests/test_scene_detail_v3.py::TestSceneDetailStep::test_visible_entities_from_director_not_llm",
  "tests/test_scene_director_v2.py::TestDirectScenes::test_calls_call_structured_with_correct_step",
  "tests/test_scene_director_v2.py::TestDirectScenes::test_enum_injection_with_entities",
  "tests/test_scene_director_v2.py::TestDirectScenes::test_loads_prompt_and_schema_for_scene_director",
  "tests/test_scene_director_v2.py::TestDirectScenes::test_no_enum_injection_when_entities_empty",
  "tests/test_scene_director_v2.py::TestDirectScenes::test_returns_proper_structure",
  "tests/test_scene_director_v2.py::TestDirectScenes::test_schema_has_vah_fields",
  "tests/test_scene_director_v2.py::TestDirectScenes::test_schema_not_mutated_across_calls",
  "tests/test_scene_director_v2.py::TestDirectScenes::test_user_prompt_contains_entity_lines",
  "tests/test_scene_director_v2.py::TestDirectScenes::test_user_prompt_contains_scene_headings",
  "tests/test_scene_director_v2.py::TestSceneDirectorStep::test_execute_calls_direct_scenes",
  "tests/test_scene_director_v2.py::TestSceneDirectorStep::test_execute_empty_entities",
  "tests/test_scene_director_v2.py::TestSceneDirectorStep::test_execute_falls_back_to_scene_save",
  "tests/test_scene_reference_service_close_ref_usage_matrix.py::test_close_atmosphere_reference_raises",
  "tests/test_scene_reference_service_close_ref_usage_matrix.py::test_close_empty_ref_usage_raises",
  "tests/test_scene_reference_service_close_ref_usage_matrix.py::test_close_exact_background_raises",
  "tests/test_scene_reference_service_close_ref_usage_matrix.py::test_close_no_dep_entry_returns_none",
  "tests/test_scene_reference_service_close_ref_usage_matrix.py::test_close_no_prev_bytes_early_return_no_matrix_check",
  "tests/test_scene_reference_service_close_ref_usage_matrix.py::test_close_zoom_in_detail_allow",
  "tests/test_scene_reference_service_close_ref_usage_matrix.py::test_medium_any_ref_usage_allow",
  "tests/test_scene_reference_service_zoom_in_detail_source_provenance.py::test_layer25_dep_scene_without_dep_scene_id_raises",
  "tests/test_scene_reference_service_zoom_in_detail_source_provenance.py::test_layer26_location_history_without_match_raises",
  "tests/test_scene_reference_service_zoom_in_detail_source_provenance.py::test_layer2_bytes_source_kind_invalid_raises",
  "tests/test_scene_reference_service_zoom_in_detail_source_provenance.py::test_medium_non_zoom_in_detail_with_location_history_passes",
  "tests/test_scene_reference_service_zoom_in_detail_source_provenance.py::test_medium_zoom_in_detail_with_dep_scene_passes",
  "tests/test_scene_reference_service_zoom_in_detail_source_provenance.py::test_medium_zoom_in_detail_with_location_history_raises",
  "tests/test_scene_reference_service_zoom_in_detail_source_provenance.py::test_metadata_selection_split_provenance_blocked",
  "tests/test_scene_reference_service_zoom_in_detail_source_provenance.py::test_zoom_in_detail_with_dep_scene_passes",
  "tests/test_scene_reference_service_zoom_in_detail_source_provenance.py::test_zoom_in_detail_with_location_history_raises",
  "tests/test_scene_reference_service_zoom_in_detail_source_provenance.py::test_zoom_in_detail_with_no_bytes_returns_none",
  "tests/test_scene_steps_v3.py::TestSceneSaveStep::test_counts_match_segment_count",
  "tests/test_scene_steps_v3.py::TestSceneSaveStep::test_falls_back_to_segmentation",
  "tests/test_scene_steps_v3.py::TestSceneSaveStep::test_falls_back_when_split_has_empty_segments",
  "tests/test_scene_steps_v3.py::TestSceneSaveStep::test_picks_scene_split_over_segmentation",
  "tests/test_scene_steps_v3.py::TestSceneSaveStep::test_raises_when_no_input",
  "tests/test_scene_steps_v3.py::TestSceneSaveStep::test_scene_segmentation_wins_over_scene_split",
  "tests/test_scene_steps_v3.py::TestSceneSegmentationStep::test_calls_segment_scenes",
  "tests/test_scene_steps_v3.py::TestSceneSegmentationStep::test_lone_candidate_is_not_confirmed_silently",
  "tests/test_scene_steps_v3.py::TestSceneSegmentationStep::test_retries_on_regex_compile_error",
  "tests/test_scene_steps_v3.py::TestSceneSegmentationStep::test_retries_when_no_candidate_passes",
  "tests/test_scene_steps_v3.py::TestSceneSegmentationStep::test_segments_built_from_authored_rule",
  "tests/test_scene_steps_v3.py::TestSceneSegmentationStep::test_segments_built_from_llm_pattern",
  "tests/test_scene_steps_v3.py::TestSceneSegmentationStep::test_unresolved_difference_is_not_success",
  "tests/test_scene_steps_v3.py::TestSceneSegmentationStep::test_uses_cleaned_text_when_available",
  "tests/test_scene_steps_v3.py::TestSceneSplitStep::test_check_applicability_false_when_no_checkpoint",
  "tests/test_scene_steps_v3.py::TestSceneSplitStep::test_check_applicability_false_when_no_large_scenes",
  "tests/test_scene_steps_v3.py::TestSceneSplitStep::test_check_applicability_true_when_large_scenes",
  "tests/test_scene_steps_v3.py::TestSceneSplitStep::test_execute_fallback_on_split_error",
  "tests/test_scene_steps_v3.py::TestSceneSplitStep::test_execute_splits_large_scenes",
  "tests/test_scene_summary.py::test_summarize_scene_calls_call_structured_with_correct_step",
  "tests/test_scene_summary.py::test_summarize_scene_includes_all_context_in_user_prompt",
  "tests/test_scene_summary.py::test_summarize_scene_loads_external_prompt",
  "tests/test_scene_summary.py::test_summarize_scene_returns_empty_on_missing_key",
  "tests/test_scene_summary.py::test_summarize_scene_returns_string",
  "tests/test_scene_summary.py::test_summarize_scenes_handles_failure_gracefully",
  "tests/test_scene_summary.py::test_summarize_scenes_prev_3_context",
  "tests/test_scene_summary.py::test_summarize_scenes_returns_list_sorted_by_index",
  "tests/test_scene_summary.py::test_summarize_scenes_uses_threadpool",
  "tests/test_scene_verify_v2.py::TestSceneVerifyApplicability::test_false_when_no_detail_checkpoint",
  "tests/test_scene_verify_v2.py::TestSceneVerifyApplicability::test_false_when_only_single_char_scenes",
  "tests/test_scene_verify_v2.py::TestSceneVerifyApplicability::test_false_when_scenes_empty",
  "tests/test_scene_verify_v2.py::TestSceneVerifyApplicability::test_true_when_applicability_always",
  "tests/test_scene_verify_v2.py::TestSceneVerifyApplicability::test_true_when_multi_char_scenes_exist",
  "tests/test_scene_verify_v2.py::TestSceneVerifyExecution::test_empty_scenes_returns_empty",
  "tests/test_scene_verify_v2.py::TestSceneVerifyExecution::test_prev_2_scenes_context_in_prompt",
  "tests/test_scene_verify_v2.py::TestSceneVerifyExecution::test_results_sorted_by_scene_index",
  "tests/test_scene_verify_v2.py::TestSceneVerifyExecution::test_scene_1_has_no_prev_context",
  "tests/test_scene_verify_v2.py::TestSceneVerifyExecution::test_single_entity_scenes_skipped",
  "tests/test_scene_verify_v2.py::TestSceneVerifyExecution::test_verification_added_to_scene",
  "tests/test_scene_verify_v2.py::TestSceneVerifyExecution::test_verify_failure_does_not_crash",
  "tests/test_security.py::test_create_session_token_is_unique",
  "tests/test_security.py::test_hash_and_verify_password",
  "tests/test_security.py::test_is_session_expired_false",
  "tests/test_security.py::test_is_session_expired_true",
  "tests/test_security.py::test_session_expires_at_is_future",
  "tests/test_security.py::test_verify_wrong_password",
  "tests/test_settings_registry.py::test_get_model_for_step_fallback",
  "tests/test_settings_registry.py::test_get_model_for_step_manifest_default",
  "tests/test_settings_registry.py::test_get_model_for_step_project_override",
  "tests/test_settings_registry.py::test_is_feature_enabled_fal_ai_from_env",
  "tests/test_settings_registry.py::test_is_feature_enabled_set_design_from_env",
  "tests/test_settings_registry.py::test_is_feature_enabled_unknown_feature_false",
  "tests/test_shared_db_schema_lifetime.py::test_it_actually_empties_the_rows",
  "tests/test_shared_db_schema_lifetime.py::test_it_still_refuses_a_non_test_database",
  "tests/test_shared_db_schema_lifetime.py::test_it_works_on_sqlite_too",
  "tests/test_shared_db_schema_lifetime.py::test_truncating_keeps_the_schema",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV13DirectoryExists::test_v13_directory_present",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV13DirectoryExists::test_v13_schema_loaded",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV13DirectoryExists::test_v13_system_md_loaded",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV13Schema::test_gaze_direction_kind_enum_8_entries",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV13Schema::test_gaze_target_removed",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV13Schema::test_oneof_has_three_branches",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV13Schema::test_required_includes_kind_and_state",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV13Schema::test_subject_state_enum_4_entries",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV13Schema::test_three_new_fields_present",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15DirectoryExists::test_v15_directory_present",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15DirectoryExists::test_v15_schema_loaded",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15DirectoryExists::test_v15_system_md_loaded",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15Schema::test_every_object_strict_compatible",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15Schema::test_frame_spatial_contract_type_array_nullable",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15Schema::test_gaze_direction_kind_enum_8_entries",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15Schema::test_gaze_target_id_nullable",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15Schema::test_gaze_target_removed",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15Schema::test_no_openai_strict_forbidden_combinators",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15Schema::test_required_includes_kind_state_and_target",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15Schema::test_subject_state_enum_4_entries",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingV15Schema::test_three_new_fields_present",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingVersionSync::test_prompt_dependency_v13",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingVersionSync::test_prompt_dependency_v14",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingVersionSync::test_prompt_dependency_v15",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingVersionSync::test_step_manifest_schema_version_5",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingVersionSync::test_step_manifest_schema_version_6",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingVersionSync::test_version_registry_2_6_0",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingVersionSync::test_version_registry_2_7_0",
  "tests/test_shot_staging_v13_schema.py::TestShotStagingVersionSync::test_version_registry_2_8_0",
  "tests/test_step_catalog.py::test_background_prompt_depends_on_overlay_producer",
  "tests/test_step_catalog.py::test_background_render_depends_on_overlay_producer",
  "tests/test_step_catalog.py::test_catalog_entries_are_frozen",
  "tests/test_step_catalog.py::test_catalog_has_all_manifest_steps",
  "tests/test_step_catalog.py::test_floor_plan_overlay_payload_depends_on_producers",
  "tests/test_step_catalog.py::test_floor_plan_overlay_payload_order_between_render_and_bg_prompt",
  "tests/test_step_catalog.py::test_floor_plan_overlay_payload_registered_in_catalog",
  "tests/test_step_catalog.py::test_get_active_entries_count",
  "tests/test_step_catalog.py::test_get_active_entries_filtered_by_category",
  "tests/test_step_catalog.py::test_get_all_downstream_recursive_matches_manifest",
  "tests/test_step_catalog.py::test_get_depends_on_matches_manifest",
  "tests/test_step_catalog.py::test_get_downstream_steps_matches_manifest",
  "tests/test_step_catalog.py::test_get_entry_returns_frozen_entry",
  "tests/test_step_catalog.py::test_get_modifiers_of_independent_step_empty",
  "tests/test_step_catalog.py::test_get_modifiers_of_t2i_review_targets",
  "tests/test_step_catalog.py::test_ordered_entries_monotonic",
  "tests/test_step_catalog.py::test_resume_sensitive_step_ids_exact",
  "tests/test_step_catalog.py::test_runner_cls_bound_for_active_autorun_steps",
  "tests/test_step_catalog.py::test_runner_cls_bound_for_active_steps",
  "tests/test_step_manifest_v3.py::test_analysis_steps_count",
  "tests/test_step_manifest_v3.py::test_applicability_values_are_known",
  "tests/test_step_manifest_v3.py::test_auxiliary_order_range",
  "tests/test_step_manifest_v3.py::test_auxiliary_steps_count",
  "tests/test_step_manifest_v3.py::test_dependency_graph_no_cycles",
  "tests/test_step_manifest_v3.py::test_depends_on_points_to_earlier_order",
  "tests/test_step_manifest_v3.py::test_downstream_of_text_cleanup",
  "tests/test_step_manifest_v3.py::test_entity_extract_character_depends_on_entity_all_character",
  "tests/test_step_manifest_v3.py::test_entity_extract_character_depends_on_scene_save_and_visual_world_rules",
  "tests/test_step_manifest_v3.py::test_entity_extract_depends_on_scene_save_and_visual_world_rules",
  "tests/test_step_manifest_v3.py::test_entity_extract_location_depends_on_character",
  "tests/test_step_manifest_v3.py::test_entity_extract_location_depends_on_entity_all_location",
  "tests/test_step_manifest_v3.py::test_entity_extract_prop_depends_on_entity_all_prop",
  "tests/test_step_manifest_v3.py::test_entity_extract_prop_depends_on_location",
  "tests/test_step_manifest_v3.py::test_entity_filter_depends_on_entity_extract_prop",
  "tests/test_step_manifest_v3.py::test_entity_filter_depends_on_entity_relation",
  "tests/test_step_manifest_v3.py::test_entity_review_depends_on_entity_extract_prop",
  "tests/test_step_manifest_v3.py::test_entity_review_depends_on_entity_filter",
  "tests/test_step_manifest_v3.py::test_image_order_range",
  "tests/test_step_manifest_v3.py::test_image_steps_count",
  "tests/test_step_manifest_v3.py::test_new_steps_exist",
  "tests/test_step_manifest_v3.py::test_order_is_unique",
  "tests/test_step_manifest_v3.py::test_order_monotonic",
  "tests/test_step_manifest_v3.py::test_scene_detail_depends_on_all_prior",
  "tests/test_step_manifest_v3.py::test_scene_detail_depends_on_shot_pipeline",
  "tests/test_step_manifest_v3.py::test_scene_director_depends_on_entity_and_scene",
  "tests/test_step_manifest_v3.py::test_scene_director_depends_on_scene_save_and_entity_t2i",
  "tests/test_step_manifest_v3.py::test_scene_director_label_is_physical_presence",
  "tests/test_step_manifest_v3.py::test_scene_segmentation_depends_on_text_cleanup",
  "tests/test_step_manifest_v3.py::test_scene_summary_depends_on_scene_save_and_episode_summary",
  "tests/test_step_manifest_v3.py::test_text_cleanup_has_no_dependencies",
  "tests/test_step_manifest_v3.py::test_total_step_count",
  "tests/test_step_manifest_v3.py::test_v4_core_steps_exist",
  "tests/test_step_manifest_v3.py::test_vah_step_is_scene_director",
  "tests/test_sync_v3.py::TestGetStepRunner::test_returns_v3_class_for_scene_director",
  "tests/test_sync_v3.py::TestGetStepRunner::test_returns_v3_class_for_text_cleanup",
  "tests/test_sync_v3.py::TestGetStepRunner::test_unknown_step_raises_error",
  "tests/test_sync_v3.py::TestSceneSummarySync::test_scene_summary_updates_scene_still",
  "tests/test_sync_v3.py::TestSceneSummarySync::test_shot_based_scene_summary_projection",
  "tests/test_sync_v3.py::TestStepClassesRegistry::test_all_classes_are_step_runner_subclasses",
  "tests/test_sync_v3.py::TestStepClassesRegistry::test_at_least_18_analysis_entries",
  "tests/test_sync_v3.py::TestStepClassesRegistry::test_core_analysis_keys_present",
  "tests/test_sync_v3.py::TestStepClassesRegistry::test_image_steps_present",
  "tests/test_sync_v3.py::TestStepClassesRegistry::test_scene_director_maps_to_correct_class",
  "tests/test_sync_v3.py::TestStepClassesRegistry::test_text_cleanup_maps_to_correct_class",
  "tests/test_sync_v3.py::TestVAHSync::test_scene_director_updates_audio_and_hallucination",
  "tests/test_text_cleanup.py::test_clean_text_loads_external_prompt",
  "tests/test_text_cleanup.py::test_clean_text_passes_fulltext_to_prompt",
  "tests/test_text_cleanup.py::test_clean_text_removes_page_numbers",
  "tests/test_users_api.py::test_cannot_deactivate_last_admin",
  "tests/test_users_api.py::test_create_user",
  "tests/test_users_api.py::test_creator_cannot_access",
  "tests/test_users_api.py::test_deactivate_user",
  "tests/test_users_api.py::test_duplicate_username",
  "tests/test_users_api.py::test_get_user",
  "tests/test_users_api.py::test_list_users",
  "tests/test_users_api.py::test_update_user",
  "tests/test_variation_pipeline.py::TestGeminiI2IEditorMocked::test_camera_diagram_creation",
  "tests/test_variation_pipeline.py::TestGeminiI2IEditorMocked::test_camera_diagram_various_angles",
  "tests/test_variation_pipeline.py::TestGeminiI2IEditorMocked::test_edit_angle_and_color_chains",
  "tests/test_variation_pipeline.py::TestGeminiI2IEditorMocked::test_edit_angle_calls_api",
  "tests/test_variation_pipeline.py::TestGeminiI2IEditorMocked::test_edit_color_calls_api",
  "tests/test_variation_pipeline.py::TestImageResponseSchema::test_image_response_includes_variant_fields",
  "tests/test_variation_pipeline.py::TestImageResponseSchema::test_image_response_variant_defaults",
  "tests/test_variation_pipeline.py::TestImageResponseSchema::test_list_images_includes_variant_fields",
  "tests/test_variation_pipeline.py::TestSceneStillResponseSchema::test_still_response_includes_variation_fields",
  "tests/test_variation_pipeline.py::TestSceneStillResponseSchema::test_still_response_variation_defaults",
  "tests/test_variation_pipeline.py::TestSelectVariantEndpoints::test_select_original_image_not_found",
  "tests/test_variation_pipeline.py::TestSelectVariantEndpoints::test_select_original_still_not_found",
  "tests/test_variation_pipeline.py::TestSelectVariantEndpoints::test_select_original_success",
  "tests/test_variation_pipeline.py::TestSelectVariantEndpoints::test_select_variant_a",
  "tests/test_variation_pipeline.py::TestSelectVariantEndpoints::test_select_variant_b",
  "tests/test_variation_pipeline.py::TestSelectVariantEndpoints::test_select_variant_invalid",
  "tests/test_variation_pipeline.py::TestSelectVariantEndpoints::test_select_variant_original",
  "tests/test_variation_pipeline.py::TestSelectVariantEndpoints::test_select_variant_still_not_found",
  "tests/test_variation_pipeline.py::TestStillImagesGrouped::test_get_still_images_empty",
  "tests/test_variation_pipeline.py::TestStillImagesGrouped::test_get_still_images_with_variants",
  "tests/test_variation_pipeline.py::TestVariationAPIEndpoints::test_edit_angle_image_not_found",
  "tests/test_variation_pipeline.py::TestVariationAPIEndpoints::test_edit_color_image_not_found",
  "tests/test_variation_pipeline.py::TestVariationAPIEndpoints::test_generate_with_variations_no_gemini_key",
  "tests/test_variation_pipeline.py::TestVariationAPIEndpoints::test_generate_with_variations_still_not_found",
  "tests/test_variation_pipeline.py::TestVariationAPIEndpoints::test_get_still_images_not_found",
  "tests/test_variation_pipeline.py::TestVariationAPIEndpoints::test_recommend_variations_no_openai_key",
  "tests/test_variation_pipeline.py::TestVariationAPIEndpoints::test_recommend_variations_still_not_found",
  "tests/test_variation_pipeline.py::TestVariationRecommenderSchema::test_recommender_angle_plus_color",
  "tests/test_variation_pipeline.py::TestVariationRecommenderSchema::test_recommender_calls_llm_with_correct_params",
  "tests/test_variation_pipeline.py::TestVariationRecommenderSchema::test_recommender_none_variations",
  "tests/test_variation_pipeline.py::TestVariationRecommenderSchema::test_recommender_returns_expected_schema",
  "tests/test_variation_pipeline.py::TestVersionRegistry::test_gemini_i2i_editor_in_registry",
  "tests/test_variation_pipeline.py::TestVersionRegistry::test_image_service_version_bumped",
  "tests/test_variation_pipeline.py::TestVersionRegistry::test_variation_recommender_in_registry",
  "tests/test_visual_world_rules.py::test_extract_visual_rules_loads_external_prompt",
  "tests/test_visual_world_rules.py::test_extract_visual_rules_passes_episode_summary",
  "tests/test_visual_world_rules.py::test_extract_visual_rules_returns_dict_with_rules",
  "tests/test_w20f_narrow_wave.py::test_f1_index_shot_staging_synthesizes_id_from_scene_shot_index",
  "tests/test_w20f_narrow_wave.py::test_f2_entity_name_no_specific_id_emits_audit_warning_not_raise",
  "tests/test_w20f_narrow_wave.py::test_f3_malformed_owned_entry_still_hard_fails",
  "tests/test_w20f_narrow_wave.py::test_f3_unknown_owned_token_dropped_into_diagnostics",
  "tests/test_w20f_narrow_wave.py::test_f5_anchor_candidate_surface_ramps_when_no_clean",
  "tests/test_w20f_narrow_wave.py::test_f6_floor_plan_scope_filter_drops_orphan_bg_and_cascades",
  "tests/test_w20f_narrow_wave.py::test_f9_camera_only_failure_classifier",
  "tests/test_zz_probe.py::test_probe",
  "tests/test_zz_shared_db_lifetime_repro.py::test_z_schema_survives_a_dropping_file",
  "tests/tools/test_ab_arm_b_excludes_rows_not_reviews.py::test_ablating_removes_only_those_rows_and_records_it",
  "tests/tools/test_ab_arm_b_excludes_rows_not_reviews.py::test_an_unknown_subject_stops",
  "tests/tools/test_ab_arm_b_excludes_rows_not_reviews.py::test_reproject_reads_the_raw_checkpoint_not_the_reviews",
  "tests/tools/test_ab_arm_b_excludes_rows_not_reviews.py::test_the_clone_command_no_longer_deletes_reviews",
  "tests/tools/test_ab_output_claim.py::test_png_하나만_있어도_선다",
  "tests/tools/test_ab_output_claim.py::test_runs_json_만_있어도_선다",
  "tests/tools/test_ab_output_claim.py::test_기존_산출이_있으면_gen_무호출로_선다[carried_name_ab-out_names0]",
  "tests/tools/test_ab_output_claim.py::test_기존_산출이_있으면_gen_무호출로_선다[carried_name_regen_ab-out_names1]",
  "tests/tools/test_ab_output_claim.py::test_빈_자리는_잡는다",
  "tests/tools/test_ab_output_claim.py::test_새_run_id_는_통과한다",
  "tests/tools/test_ab_output_claim.py::test_이미_쓴_run_id_는_다시_안_준다",
  "tests/tools/test_ab_output_claim.py::test_지우라고_하지_않는다",
  "tests/tools/test_canary_reentry_forces_after_drift.py::TestPlanReentryTable::test_clean_completed_step_is_reused_with_cap_zero",
  "tests/tools/test_canary_reentry_forces_after_drift.py::TestPlanReentryTable::test_drift_with_an_approved_transition_forces",
  "tests/tools/test_canary_reentry_forces_after_drift.py::TestPlanReentryTable::test_drift_without_a_transition_stops",
  "tests/tools/test_canary_reentry_forces_after_drift.py::TestPlanReentryTable::test_unfinished_runs_normally_and_a_reopened_completed_step_is_forced",
  "tests/tools/test_canary_reentry_forces_after_drift.py::TestTheChunkStepPersistsItsOwnFingerprint::test_execute_returns_config_hash_next_to_the_quarantine_ledger",
  "tests/tools/test_canary_reentry_forces_after_drift.py::TestTheHelpersAskTheRealThings::test_drift_comes_from_the_runners_own_check",
  "tests/tools/test_canary_reentry_forces_after_drift.py::TestTheHelpersAskTheRealThings::test_not_applicable_steps_are_not_asked_for_drift",
  "tests/tools/test_canary_reentry_forces_after_drift.py::TestTheHelpersAskTheRealThings::test_transition_must_point_at_head",
  "tests/tools/test_canary_reentry_forces_after_drift.py::TestThereIsNoSelfOnlyRerunLane::test_an_adopted_step_has_no_drift_and_is_reused_at_cap_zero",
  "tests/tools/test_canary_reentry_forces_after_drift.py::TestThereIsNoSelfOnlyRerunLane::test_plan_reentry_has_no_acked_axis",
  "tests/tools/test_preflight_outfit_resolution_pg.py::test_굽는_샷이_깨져_있으면_막는다",
  "tests/tools/test_preflight_outfit_resolution_pg.py::test_굽는_샷이_다_풀리면_통과",
  "tests/tools/test_preflight_outfit_resolution_pg.py::test_굽을_샷이_없으면_미확정",
  "tests/tools/test_preflight_outfit_resolution_pg.py::test_배정이_하나도_없으면_통과가_아니라_미확정",
  "tests/tools/test_preflight_outfit_resolution_pg.py::test_안_굽는_행이_깨져_있어도_통과한다",
  "tests/unit/test_all_provider_calls_are_traced.py::test_direct_provider_calls_carry_opik_tracing",
  "tests/unit/test_all_provider_calls_are_traced.py::test_scanner_actually_finds_the_known_sites",
  "tests/unit/test_all_provider_calls_are_traced.py::test_scanner_catches_each_call_syntax",
  "tests/unit/test_all_provider_calls_are_traced.py::test_scanner_does_not_cry_wolf",
  "tests/unit/test_all_provider_calls_are_traced.py::test_scanner_still_sees_a_real_call_site",
  "tests/unit/test_all_provider_calls_are_traced.py::test_scanner_urlopen_needs_provider_host",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_all_korean_owned_fails",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_cjk_ideograph_owned_fails",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_empty_list_fails",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_japanese_kana_owned_fails",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_korean_mixed_owned_raises_not_silent_drop",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_missing_field_fails",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_non_list_fails",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_normalize_all_whitespace_fails_after_normalize",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_normalize_drops_all_blank_then_fails",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_normalizes_in_place_strip_dedupe_sort",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_pure_ascii_passes",
  "tests/unit/test_background_prompt_owned_schema.py::TestValidateBgPromptOwnedField::test_valid_passes",
  "tests/unit/test_background_unmanned.py::test_audit_fields_subset_and_off_empty",
  "tests/unit/test_background_unmanned.py::test_clauses_are_generic_english",
  "tests/unit/test_background_unmanned.py::test_gate_judge_error_fails_open",
  "tests/unit/test_background_unmanned.py::test_gate_noop_on_failed_render",
  "tests/unit/test_background_unmanned.py::test_gate_pass_records_verdict",
  "tests/unit/test_background_unmanned.py::test_gate_retry_budget_exception_restores_then_reraises",
  "tests/unit/test_background_unmanned.py::test_gate_retry_exception_restores_and_audits",
  "tests/unit/test_background_unmanned.py::test_gate_retry_failure_restores_original",
  "tests/unit/test_background_unmanned.py::test_gate_schema_shape",
  "tests/unit/test_background_unmanned.py::test_gate_still_violating_marks_audit",
  "tests/unit/test_background_unmanned.py::test_gate_violation_retries_once_and_rejudges",
  "tests/unit/test_background_unmanned.py::test_render_prompt_off_is_byte_identical",
  "tests/unit/test_background_unmanned.py::test_render_prompt_on_attaches_clause",
  "tests/unit/test_background_unmanned.py::test_resolve_prompt_version",
  "tests/unit/test_background_unmanned.py::test_step_entry_sites_all_spread_audit_fields",
  "tests/unit/test_bgfirst_candidate_authority.py::test_chain_reassembly_keeps_handled_by",
  "tests/unit/test_bgfirst_candidate_authority.py::test_every_candidate_prompt_agrees_with_its_own_refs",
  "tests/unit/test_bgfirst_candidate_authority.py::test_ordinary_bgfirst_uses_chain_prompt_without_lane_prev",
  "tests/unit/test_body_identity_gets_no_outfit_photo.py::test_phase3_drops_the_outfit_image_only_for_body_identity",
  "tests/unit/test_body_identity_gets_no_outfit_photo.py::test_the_derive_prompt_carries_the_garment_as_text",
  "tests/unit/test_body_identity_gets_no_outfit_photo.py::test_the_human_composite_still_shows_the_outfit_photo",
  "tests/unit/test_body_is_identity_reference.py::test_batch_and_manual_read_the_same_judgment",
  "tests/unit/test_body_is_identity_reference.py::test_composite_reuse_is_bound_to_the_base_reference",
  "tests/unit/test_body_is_identity_reference.py::test_composite_step_picks_the_derive_path",
  "tests/unit/test_body_is_identity_reference.py::test_derive_prompt_exists_and_protects_the_body",
  "tests/unit/test_body_is_identity_reference.py::test_ethnicity_is_only_written_when_the_text_says_so",
  "tests/unit/test_body_is_identity_reference.py::test_human_composite_prompt_is_unchanged",
  "tests/unit/test_body_is_identity_reference.py::test_names_do_not_carry_invented_ethnicity",
  "tests/unit/test_body_is_identity_reference.py::test_null_outlook_is_not_a_borrowed_garment",
  "tests/unit/test_body_is_identity_reference.py::test_phase1_asks_for_body_identity_characters",
  "tests/unit/test_body_is_identity_reference.py::test_phase1_prompt_separates_the_two_questions",
  "tests/unit/test_body_is_identity_reference.py::test_reference_entity_type_helper_splits_the_two_questions",
  "tests/unit/test_body_is_identity_reference.py::test_reference_type_uses_both_questions",
  "tests/unit/test_body_is_identity_reference.py::test_t2i_pack_has_the_nonhuman_exception",
  "tests/unit/test_body_is_identity_reference.py::test_the_context_carries_it",
  "tests/unit/test_body_is_identity_reference.py::test_the_derive_template_is_actually_selected",
  "tests/unit/test_body_is_identity_reference.py::test_the_step_keeps_the_list",
  "tests/unit/test_broll_variation_camera_lock.py::test_assembly_and_fingerprint_read_the_same_stem",
  "tests/unit/test_broll_variation_camera_lock.py::test_first_roll_is_untouched",
  "tests/unit/test_broll_variation_camera_lock.py::test_single_label_gets_no_variation",
  "tests/unit/test_broll_variation_camera_lock.py::test_stem_split_follows_the_backend[False-broll_composition_variation]",
  "tests/unit/test_broll_variation_camera_lock.py::test_stem_split_follows_the_backend[True-broll_composition_variation_compact]",
  "tests/unit/test_broll_variation_camera_lock.py::test_variation_candidate_names_what_stays_locked[17]",
  "tests/unit/test_broll_variation_camera_lock.py::test_variation_candidate_names_what_stays_locked[]",
  "tests/unit/test_broll_variation_camera_lock.py::test_variation_candidate_never_negates_the_camera_contract[17]",
  "tests/unit/test_broll_variation_camera_lock.py::test_variation_candidate_never_negates_the_camera_contract[]",
  "tests/unit/test_broll_variation_camera_lock.py::test_variation_candidate_still_opens_angle_and_height[17]",
  "tests/unit/test_broll_variation_camera_lock.py::test_variation_candidate_still_opens_angle_and_height[]",
  "tests/unit/test_broll_variation_camera_lock.py::test_variation_clause_points_at_nothing_that_may_be_absent[17]",
  "tests/unit/test_broll_variation_camera_lock.py::test_variation_clause_points_at_nothing_that_may_be_absent[]",
  "tests/unit/test_build_scale.py::test_a_row_without_a_relation_is_excluded",
  "tests/unit/test_build_scale.py::test_empty_input_renders_nothing",
  "tests/unit/test_build_scale.py::test_it_is_wired_into_the_t2i_context",
  "tests/unit/test_build_scale.py::test_no_evidence_means_empty",
  "tests/unit/test_build_scale.py::test_one_gate_serves_both_consumers",
  "tests/unit/test_build_scale.py::test_only_quoted_comparisons_reach_the_image",
  "tests/unit/test_build_scale.py::test_the_block_says_what_to_do_with_it",
  "tests/unit/test_build_scale.py::test_the_detail_record_keeps_the_raw_field",
  "tests/unit/test_build_scale.py::test_the_pack_asks_for_size_as_a_comparison",
  "tests/unit/test_build_scale.py::test_the_pack_says_it_is_not_the_banned_body_description",
  "tests/unit/test_build_scale.py::test_the_scale_reaches_stable_traits_through_visual_traits",
  "tests/unit/test_build_scale.py::test_the_schema_carries_the_field",
  "tests/unit/test_build_scale.py::test_the_t2i_save_carries_both_the_sentence_and_the_raw",
  "tests/unit/test_built_space_generic.py::test_both_sides_still_ask_for_the_count",
  "tests/unit/test_built_space_generic.py::test_no_live_stem_in_either_pack_names_a_vehicle",
  "tests/unit/test_built_space_generic.py::test_the_generator_does_not_enumerate_fittings",
  "tests/unit/test_built_space_generic.py::test_the_generator_names_no_vehicle",
  "tests/unit/test_built_space_generic.py::test_the_generator_still_forbids_adding_or_moving",
  "tests/unit/test_built_space_generic.py::test_the_judge_names_no_vehicle",
  "tests/unit/test_built_space_generic.py::test_the_judge_still_calls_a_duplicate_a_hard_violation",
  "tests/unit/test_built_space_generic.py::test_the_old_packs_are_untouched",
  "tests/unit/test_built_space_generic.py::test_the_two_sides_move_together",
  "tests/unit/test_canary_3defects_fix.py::TestConfigHashGateFailClosed::test_step_local_hash_exception_propagates",
  "tests/unit/test_canary_3defects_fix.py::TestConfigHashGateFailClosed::test_without_step_local_hash_fallback_unchanged",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_era_on_outer_hash_folds_search_contract",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_era_preserve_truth_table",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_fail_record_is_monotonic_per_attempt",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_negative_assess_cached_once",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_outcome_failed_vs_non_target",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_policy_version_bumped_for_coverage",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_preserve_incomplete_is_step_unseal_exception",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_ref_identity_folds_search_contract",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_research_cached_and_file_verified",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_research_failure_memo_bounds_same_walk",
  "tests/unit/test_canary_3defects_fix.py::TestEraCachedWrapper::test_research_failure_not_cached",
  "tests/unit/test_canary_3defects_fix.py::TestEraGroupbgCachedWiring::test_no_direct_era_calls_in_still_recipe_service",
  "tests/unit/test_canary_3defects_fix.py::TestPrevPeopleRule::test_cast_unknown_returns_empty",
  "tests/unit/test_canary_3defects_fix.py::TestPrevPeopleRule::test_continues_clause_scoped_vs_legacy",
  "tests/unit/test_canary_3defects_fix.py::TestPrevPeopleRule::test_default_is_legacy_unconditional_lock",
  "tests/unit/test_canary_3defects_fix.py::TestPrevPeopleRule::test_no_overlap_forbids_carrying_people",
  "tests/unit/test_canary_3defects_fix.py::TestPrevPeopleRule::test_overlap_locks_only_shared_names",
  "tests/unit/test_canary_3defects_fix.py::TestSignageSection::test_author_schema_shape",
  "tests/unit/test_canary_3defects_fix.py::TestSignageSection::test_empty_inscriptions_render_nothing",
  "tests/unit/test_canary_3defects_fix.py::TestSignageSection::test_renders_supplied_lines_and_prompt_carries_them",
  "tests/unit/test_card_spatial_scope.py::test_close_면_wide_medium_규칙이_걷힌다",
  "tests/unit/test_card_spatial_scope.py::test_framing_이_확정이_아니면_안_걷는다[None]",
  "tests/unit/test_card_spatial_scope.py::test_framing_이_확정이_아니면_안_걷는다[\\uc54c\\uc218\\uc5c6\\ub294\\uac12]",
  "tests/unit/test_card_spatial_scope.py::test_framing_이_확정이_아니면_안_걷는다[]",
  "tests/unit/test_card_spatial_scope.py::test_framing_이_확정이_아니면_안_걷는다[insert]",
  "tests/unit/test_card_spatial_scope.py::test_medium_wide_면_close_규칙이_걷히고_위험한_문장이_사라진다[medium]",
  "tests/unit/test_card_spatial_scope.py::test_medium_wide_면_close_규칙이_걷히고_위험한_문장이_사라진다[wide]",
  "tests/unit/test_card_spatial_scope.py::test_걷어도_왜_해당없는지가_남는다",
  "tests/unit/test_card_spatial_scope.py::test_걷힌_자리가_망가지면_validator_가_잡는다[나쁜값0-\\uc0ac\\uc720\\uac00 \\ube44\\uc5c8\\ub2e4]",
  "tests/unit/test_card_spatial_scope.py::test_걷힌_자리가_망가지면_validator_가_잡는다[나쁜값1-\\uc0ac\\uc720 \\uce78\\uc774 \\uc5c6\\ub2e4]",
  "tests/unit/test_card_spatial_scope.py::test_걷힌_자리가_망가지면_validator_가_잡는다[나쁜값2-\\uc608\\uc0c1 \\ubc16 \\ud0a4]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[0-None]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[0-close]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[0-insert]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[0-medium]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[0-wide]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[1-None]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[1-close]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[1-insert]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[1-medium]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[1-wide]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[2-None]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[2-close]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[2-insert]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[2-medium]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[2-wide]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[3-None]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[3-close]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[3-insert]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[3-medium]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[3-wide]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[None-None]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[None-close]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[None-insert]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[None-medium]",
  "tests/unit/test_card_spatial_scope.py::test_꺼져_있으면_입력_그대로[None-wide]",
  "tests/unit/test_card_spatial_scope.py::test_끝점_꺼져_있으면_카드가_한_글자도_안_다르다",
  "tests/unit/test_card_spatial_scope.py::test_끝점_네_framing_갈래가_모두_카드까지_간다[close-걷혀야0]",
  "tests/unit/test_card_spatial_scope.py::test_끝점_네_framing_갈래가_모두_카드까지_간다[insert-걷혀야3]",
  "tests/unit/test_card_spatial_scope.py::test_끝점_네_framing_갈래가_모두_카드까지_간다[medium-걷혀야2]",
  "tests/unit/test_card_spatial_scope.py::test_끝점_네_framing_갈래가_모두_카드까지_간다[wide-걷혀야1]",
  "tests/unit/test_card_spatial_scope.py::test_끝점_카드가_validator_를_통과한다[False]",
  "tests/unit/test_card_spatial_scope.py::test_끝점_카드가_validator_를_통과한다[True]",
  "tests/unit/test_card_spatial_scope.py::test_끝점_켜면_실제로_걷히고_카드는_산다",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[1-None]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[1-close]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[1-insert]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[1-medium]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[1-wide]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[2-None]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[2-close]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[2-insert]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[2-medium]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[2-wide]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[None-None]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[None-close]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[None-insert]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[None-medium]",
  "tests/unit/test_card_spatial_scope.py::test_세_이름은_언제나_남는다[None-wide]",
  "tests/unit/test_card_spatial_scope.py::test_인물_수는_C축으로_센다[None-None]",
  "tests/unit/test_card_spatial_scope.py::test_인물_수는_C축으로_센다[ve1-0]",
  "tests/unit/test_card_spatial_scope.py::test_인물_수는_C축으로_센다[ve2-1]",
  "tests/unit/test_card_spatial_scope.py::test_인물_수는_C축으로_센다[ve3-2]",
  "tests/unit/test_card_spatial_scope.py::test_인물_수는_C축으로_센다[ve4-0]",
  "tests/unit/test_card_spatial_scope.py::test_인물_수는_C축으로_센다[ve5-2]",
  "tests/unit/test_card_spatial_scope.py::test_인물이_둘_이상이거나_모르면_안_걷는다[2]",
  "tests/unit/test_card_spatial_scope.py::test_인물이_둘_이상이거나_모르면_안_걷는다[3]",
  "tests/unit/test_card_spatial_scope.py::test_인물이_둘_이상이거나_모르면_안_걷는다[None]",
  "tests/unit/test_card_spatial_scope.py::test_인물이_한_명_이하면_두_인물_규칙이_걷힌다[0]",
  "tests/unit/test_card_spatial_scope.py::test_인물이_한_명_이하면_두_인물_규칙이_걷힌다[1]",
  "tests/unit/test_card_spatial_scope.py::test_전략_medium_샷의_close_지시가_사라진다",
  "tests/unit/test_card_spatial_scope.py::test_전략_꺼져_있으면_그대로다",
  "tests/unit/test_card_spatial_scope.py::test_전략_실제로_얼마나_줄었나",
  "tests/unit/test_card_spatial_scope.py::test_지문_꺼져_있으면_옛_지문이_보존된다",
  "tests/unit/test_card_spatial_scope.py::test_지문_플래그가_켜지면_config_hash_가_갈린다",
  "tests/unit/test_card_spatial_scope.py::test_지시_꺼져_있으면_그대로다[0]",
  "tests/unit/test_card_spatial_scope.py::test_지시_꺼져_있으면_그대로다[1]",
  "tests/unit/test_card_spatial_scope.py::test_지시_꺼져_있으면_그대로다[2]",
  "tests/unit/test_card_spatial_scope.py::test_지시_꺼져_있으면_그대로다[3]",
  "tests/unit/test_card_spatial_scope.py::test_지시_꺼져_있으면_그대로다[None]",
  "tests/unit/test_card_spatial_scope.py::test_지시_끝점_인물이_둘이면_규칙도_지시도_남는다",
  "tests/unit/test_card_spatial_scope.py::test_지시_끝점_카드에서도_같이_빠진다",
  "tests/unit/test_card_spatial_scope.py::test_지시_둘_이상이거나_모르면_그대로다[2]",
  "tests/unit/test_card_spatial_scope.py::test_지시_둘_이상이거나_모르면_그대로다[3]",
  "tests/unit/test_card_spatial_scope.py::test_지시_둘_이상이거나_모르면_그대로다[None]",
  "tests/unit/test_card_spatial_scope.py::test_지시_인물_한_명_이하면_두_인물_지시가_빠진다[0]",
  "tests/unit/test_card_spatial_scope.py::test_지시_인물_한_명_이하면_두_인물_지시가_빠진다[1]",
  "tests/unit/test_carried_people_scope.py::test_a_legacy_row_can_still_be_read_for_audit",
  "tests/unit/test_carried_people_scope.py::test_a_legacy_row_stops_before_a_new_image_is_bought",
  "tests/unit/test_carried_people_scope.py::test_a_malformed_person_entry_is_skipped_not_crashed",
  "tests/unit/test_carried_people_scope.py::test_a_name_outside_the_roster_never_reaches_the_prompt",
  "tests/unit/test_carried_people_scope.py::test_a_person_without_a_resolved_id_is_not_injected",
  "tests/unit/test_carried_people_scope.py::test_a_plate_shot_gets_no_person_at_all",
  "tests/unit/test_carried_people_scope.py::test_a_plate_shot_with_only_people_yields_nothing",
  "tests/unit/test_carried_people_scope.py::test_an_empty_legacy_row_does_not_stop_anything",
  "tests/unit/test_carried_people_scope.py::test_an_empty_pose_fix_does_not_erase_the_authored_state",
  "tests/unit/test_carried_people_scope.py::test_an_empty_row_yields_nothing",
  "tests/unit/test_carried_people_scope.py::test_author_output_reaches_the_outgoing_prompt",
  "tests/unit/test_carried_people_scope.py::test_char_sids_reads_the_type_off_the_row",
  "tests/unit/test_carried_people_scope.py::test_every_step_class_owns_the_methods_it_must_implement",
  "tests/unit/test_carried_people_scope.py::test_every_visible_person_reaches_the_prompt",
  "tests/unit/test_carried_people_scope.py::test_matching_is_by_id_not_by_name",
  "tests/unit/test_carried_people_scope.py::test_no_assembly_site_reads_the_raw_value_itself",
  "tests/unit/test_carried_people_scope.py::test_no_consumer_looks_up_continuity_with_the_wrong_tag_shape",
  "tests/unit/test_carried_people_scope.py::test_no_lookup_key_is_built_in_the_wrong_tag_shape",
  "tests/unit/test_carried_people_scope.py::test_objects_always_reach_the_prompt",
  "tests/unit/test_carried_people_scope.py::test_offscreen_effects_reach_the_prompt",
  "tests/unit/test_carried_people_scope.py::test_only_the_people_visible_in_this_shot_reach_the_prompt",
  "tests/unit/test_carried_people_scope.py::test_people_that_cannot_be_attached_are_reported",
  "tests/unit/test_carried_people_scope.py::test_the_conti_step_declares_what_it_now_consumes",
  "tests/unit/test_carried_people_scope.py::test_the_contract_change_is_folded_into_the_step_identity",
  "tests/unit/test_carried_people_scope.py::test_the_data_decides_how_a_stored_row_is_read",
  "tests/unit/test_carried_people_scope.py::test_the_filter_never_returns_a_bare_heading[False]",
  "tests/unit/test_carried_people_scope.py::test_the_filter_never_returns_a_bare_heading[True]",
  "tests/unit/test_carried_people_scope.py::test_the_lane_path_imports_what_it_calls",
  "tests/unit/test_carried_people_scope.py::test_the_old_pack_gets_no_roster_in_carried",
  "tests/unit/test_carried_people_scope.py::test_the_old_pack_still_produces_the_old_shape",
  "tests/unit/test_carried_people_scope.py::test_the_order_is_fixed",
  "tests/unit/test_carried_people_scope.py::test_the_pack_content_is_folded_into_the_step_identity",
  "tests/unit/test_carried_people_scope.py::test_the_pack_version_decides_what_the_author_produces",
  "tests/unit/test_carried_people_scope.py::test_the_roster_actually_reaches_the_carried_call",
  "tests/unit/test_carried_people_scope.py::test_the_still_pipeline_still_depends_on_continuity",
  "tests/unit/test_carried_people_scope.py::test_the_v2_pack_gets_no_roster_in_carried",
  "tests/unit/test_carried_person_name_binding.py::test_leaf_를_직접_불러_우회하는_곳이_없다",
  "tests/unit/test_carried_person_name_binding.py::test_objects_offscreen_순서_계약은_그대로[conti_light]",
  "tests/unit/test_carried_person_name_binding.py::test_objects_offscreen_순서_계약은_그대로[still]",
  "tests/unit/test_carried_person_name_binding.py::test_계약_version_이_비어_있지_않다",
  "tests/unit/test_carried_person_name_binding.py::test_그_샷에_없는_인물은_이름째로_안_들어간다[conti_light]",
  "tests/unit/test_carried_person_name_binding.py::test_그_샷에_없는_인물은_이름째로_안_들어간다[still]",
  "tests/unit/test_carried_person_name_binding.py::test_동성_대명사_두_사람이_각자_이름에_묶인다[conti_light]",
  "tests/unit/test_carried_person_name_binding.py::test_동성_대명사_두_사람이_각자_이름에_묶인다[still]",
  "tests/unit/test_carried_person_name_binding.py::test_두_소비_끝점의_outer_config_hash_가_이_계약을_접는다",
  "tests/unit/test_carried_person_name_binding.py::test_무인_샷은_사람_칸을_통째로_안_붙인다[conti_light]",
  "tests/unit/test_carried_person_name_binding.py::test_무인_샷은_사람_칸을_통째로_안_붙인다[still]",
  "tests/unit/test_carried_person_name_binding.py::test_이름이_비면_종전_그대로_문장만_낸다",
  "tests/unit/test_carried_person_name_binding.py::test_저작_문안을_한_글자도_안_고친다[conti_light]",
  "tests/unit/test_carried_person_name_binding.py::test_저작_문안을_한_글자도_안_고친다[still]",
  "tests/unit/test_character_shots_are_person_shots.py::test_already_person_shot_gets_no_extra_fields",
  "tests/unit/test_character_shots_are_person_shots.py::test_character_in_shot_forces_person_visible",
  "tests/unit/test_character_shots_are_person_shots.py::test_character_sids_come_from_ve_ids_joined_to_the_canon",
  "tests/unit/test_character_shots_are_person_shots.py::test_conti_step_hands_the_forced_classification_to_generation",
  "tests/unit/test_character_shots_are_person_shots.py::test_no_character_keeps_the_judgement",
  "tests/unit/test_character_state_variant_step.py::TestHelperImport::test_uses_subject_state_helper",
  "tests/unit/test_character_state_variant_step.py::TestStateDescriptionsRemoved::test_state_descriptions_constant_removed",
  "tests/unit/test_cine_fallback_slot.py::test_1_주_경로는_종전과_같다",
  "tests/unit/test_cine_fallback_slot.py::test_2_대체는_저장_키_파일_태그가_전부_갈린다",
  "tests/unit/test_cine_fallback_slot.py::test_3_승자_태그를_record_에서_읽는다",
  "tests/unit/test_cine_fallback_slot.py::test_4_옛_record_는_주_태그로_되돌아간다",
  "tests/unit/test_cine_fallback_slot.py::test_5_record_가_제_호출_태그를_담는다",
  "tests/unit/test_cine_fallback_slot.py::test_6_영속부가_주_태그를_손으로_안_적는다",
  "tests/unit/test_cine_moderation_fallback.py::test_모르는_제공자는_조용히_안_넘긴다",
  "tests/unit/test_cine_moderation_fallback.py::test_설정이_비면_안_넘긴다_종전_동작",
  "tests/unit/test_cine_moderation_fallback.py::test_신원이_지문에_실릴_모양이다",
  "tests/unit/test_cine_moderation_fallback.py::test_주와_같으면_안_넘긴다",
  "tests/unit/test_cine_moderation_fallback.py::test_주와_같은_것은_목록에서_걸러진다",
  "tests/unit/test_cine_moderation_fallback.py::test_주와_다른_제공자들을_순서대로_준다",
  "tests/unit/test_cine_moderation_fallback.py::test_주와_다른_제공자를_준다",
  "tests/unit/test_cine_moderation_give_up.py::test_declined_transform_costs_nothing_next_visit",
  "tests/unit/test_cine_moderation_give_up.py::test_first_refusal_records_but_does_not_decline",
  "tests/unit/test_cine_moderation_give_up.py::test_http_400_shape_counts_the_same",
  "tests/unit/test_cine_moderation_give_up.py::test_limit_zero_never_declines",
  "tests/unit/test_cine_moderation_give_up.py::test_new_source_image_retries_even_after_decline",
  "tests/unit/test_cine_moderation_give_up.py::test_second_refusal_declines",
  "tests/unit/test_cine_moderation_give_up.py::test_server_error_does_not_count_toward_giving_up",
  "tests/unit/test_cine_moderation_give_up.py::test_server_error_keeps_prior_moderation_count",
  "tests/unit/test_cine_provider_swap.py::test_405_with_an_empty_body_says_what_to_look_at",
  "tests/unit/test_cine_provider_swap.py::test_URLError_안에_감싸인_원인도_가른다",
  "tests/unit/test_cine_provider_swap.py::test_build_cine_client_matches_provider",
  "tests/unit/test_cine_provider_swap.py::test_default_provider_is_legacy_grok",
  "tests/unit/test_cine_provider_swap.py::test_edit_endpoint_takes_exactly_one_reference",
  "tests/unit/test_cine_provider_swap.py::test_failure_after_submit_preserves_request_id",
  "tests/unit/test_cine_provider_swap.py::test_failure_also_leaves_exactly_one_record",
  "tests/unit/test_cine_provider_swap.py::test_fetch_submitted_requires_request_id",
  "tests/unit/test_cine_provider_swap.py::test_fingerprint_v2_sees_the_prompt_that_actually_goes_out",
  "tests/unit/test_cine_provider_swap.py::test_fingerprint_v2_sensitive_to_provider_and_endpoint",
  "tests/unit/test_cine_provider_swap.py::test_generate_image_는_번호없는_200을_감싸지_않고_그대로_올린다",
  "tests/unit/test_cine_provider_swap.py::test_legacy_record_not_reused_under_reve",
  "tests/unit/test_cine_provider_swap.py::test_legacy_record_reused_under_grok",
  "tests/unit/test_cine_provider_swap.py::test_needs_retry_header_wins_over_type_table",
  "tests/unit/test_cine_provider_swap.py::test_new_record_carries_identity_and_is_reused",
  "tests/unit/test_cine_provider_swap.py::test_no_media_is_terminal_but_not_moderation",
  "tests/unit/test_cine_provider_swap.py::test_one_paid_job_leaves_exactly_one_record",
  "tests/unit/test_cine_provider_swap.py::test_pending_is_recovered_not_repurchased",
  "tests/unit/test_cine_provider_swap.py::test_pending_terminal_failure_clears_marker",
  "tests/unit/test_cine_provider_swap.py::test_pending_transient_failure_keeps_marker",
  "tests/unit/test_cine_provider_swap.py::test_policy_violation_is_terminal_and_reads_as_moderation",
  "tests/unit/test_cine_provider_swap.py::test_recovery_urls_drop_the_action_segment",
  "tests/unit/test_cine_provider_swap.py::test_retryable_infra_error_is_not_terminal",
  "tests/unit/test_cine_provider_swap.py::test_reve_endpoint_id_carries_the_fal_provider_prefix",
  "tests/unit/test_cine_provider_swap.py::test_reve_identity_uses_logical_endpoint",
  "tests/unit/test_cine_provider_swap.py::test_status_and_result_urls_drop_the_action_segment",
  "tests/unit/test_cine_provider_swap.py::test_submit_body_is_flat",
  "tests/unit/test_cine_provider_swap.py::test_submit_is_recorded_before_output",
  "tests/unit/test_cine_provider_swap.py::test_submit_without_request_id_is_fail_closed",
  "tests/unit/test_cine_provider_swap.py::test_terminal_failure_after_submit_does_not_keep_marker",
  "tests/unit/test_cine_provider_swap.py::test_unknown_provider_fails_loudly",
  "tests/unit/test_cine_provider_swap.py::test_unknown_type_is_terminal_but_not_guessed_as_moderation",
  "tests/unit/test_cine_provider_swap.py::test_urls_that_fal_returned_win_over_the_ones_we_build",
  "tests/unit/test_cine_provider_swap.py::test_v1_and_v2_fingerprints_differ",
  "tests/unit/test_cine_provider_swap.py::test_가져오기_실패도_남의_자리에_적지_않는다",
  "tests/unit/test_cine_provider_swap.py::test_결말을_못_본_기록은_최근것만_남는다",
  "tests/unit/test_cine_provider_swap.py::test_기록에_남긴_조회주소를_넘기면_그것을_쓴다",
  "tests/unit/test_cine_provider_swap.py::test_남겨둔_기록에_접수_시각도_실린다",
  "tests/unit/test_cine_provider_swap.py::test_남겨둔_파일이_다른_그림이면_되찾지_않는다",
  "tests/unit/test_cine_provider_swap.py::test_남겨둔_파일이_어긋나면_요금없이_다시_가져온다",
  "tests/unit/test_cine_provider_swap.py::test_다시_판정하는_갈래도_확정_전에_주인을_본다[\\ub2e4\\uc2dc \\ud310\\uc815]",
  "tests/unit/test_cine_provider_swap.py::test_다시_판정하는_갈래도_확정_전에_주인을_본다[\\ub418\\uc0b4\\ub9ac\\uae30]",
  "tests/unit/test_cine_provider_swap.py::test_답이_끊기면_다시_안_보낸다",
  "tests/unit/test_cine_provider_swap.py::test_새_변환은_주소_세_칸을_모두_비운다",
  "tests/unit/test_cine_provider_swap.py::test_실패로_끝나도_조회주소_둘을_다_남긴다",
  "tests/unit/test_cine_provider_swap.py::test_앞_샷의_접수_신원이_다음_샷으로_새지_않는다",
  "tests/unit/test_cine_provider_swap.py::test_연결이_아예_안_됐으면_다시_보낸다",
  "tests/unit/test_cine_provider_swap.py::test_접수_기록을_못_남기면_요금이_두_번_나가지_않는다",
  "tests/unit/test_cine_provider_swap.py::test_접수_기록을_못_남기면_폴링_전에_멈추고_다시_안_보낸다",
  "tests/unit/test_cine_provider_swap.py::test_접수_기록을_못_남기면_호출자에게_알린다",
  "tests/unit/test_cine_provider_swap.py::test_접수_기록이_한_번_실패해도_다음_걷기는_무료로_가져온다",
  "tests/unit/test_cine_provider_swap.py::test_접수_여부_모르면_다음_걷기도_다시_안_보낸다",
  "tests/unit/test_cine_provider_swap.py::test_조회_주소가_요청_신원에_묶인다",
  "tests/unit/test_cine_provider_swap.py::test_지문이_바뀌면_다시_보내되_옛_번호를_잃지_않는다",
  "tests/unit/test_cine_provider_swap.py::test_판정이_도는_사이에_주인이_바뀌면_확정하지_않는다",
  "tests/unit/test_cine_provider_swap.py::test_확정_직전에_멈춰도_다음_걷기가_다시_안_보낸다",
  "tests/unit/test_cine_source_asset_link.py::test_empty_source_is_tolerated",
  "tests/unit/test_cine_source_asset_link.py::test_fix_won",
  "tests/unit/test_cine_source_asset_link.py::test_missing_selected_is_not_guessed",
  "tests/unit/test_cine_source_asset_link.py::test_non_sel_source_is_out_of_scope",
  "tests/unit/test_cine_source_asset_link.py::test_original_roll_won",
  "tests/unit/test_cine_stage_direction.py::test_default_call_is_byte_identical",
  "tests/unit/test_cine_stage_direction.py::test_lighting_clause_is_not_removed_from_upstream",
  "tests/unit/test_cine_stage_direction.py::test_material_appends_stage_direction_clause",
  "tests/unit/test_cine_stage_direction.py::test_omit_drops_only_the_camera_line",
  "tests/unit/test_cine_stage_direction.py::test_omit_is_inert_when_there_is_no_camera_direction",
  "tests/unit/test_cine_stage_direction.py::test_only_the_material_that_exists_is_written",
  "tests/unit/test_cine_stage_direction.py::test_prompt_without_material_is_unchanged",
  "tests/unit/test_cine_stage_direction.py::test_selector_moves_to_v24_when_on",
  "tests/unit/test_cine_stage_direction.py::test_selector_stays_on_legacy_pack_when_off",
  "tests/unit/test_cine_stage_direction.py::test_stage_direction_gives_camera_the_viewpoint_not_the_content",
  "tests/unit/test_cine_stage_direction.py::test_v24_transform_stem_is_byte_identical_to_v23",
  "tests/unit/test_cine_stem_hash_coverage.py::test_both_stems_move_the_hash",
  "tests/unit/test_cine_stem_hash_coverage.py::test_the_material_pack_actually_has_the_stem",
  "tests/unit/test_cine_stem_hash_coverage.py::test_the_material_stem_is_not_folded_when_it_does_not_go_out",
  "tests/unit/test_cine_stem_hash_coverage.py::test_the_stem_names_match_what_the_assembly_loads",
  "tests/unit/test_cine_stem_hash_coverage.py::test_turning_the_material_on_moves_the_hash",
  "tests/unit/test_cine_transform_stage.py::test_budget_exceeded_propagates",
  "tests/unit/test_cine_transform_stage.py::test_cine_fingerprint_sensitive_to_each_input",
  "tests/unit/test_cine_transform_stage.py::test_cine_pack_stem_loads_default_prompt",
  "tests/unit/test_cine_transform_stage.py::test_failure_falls_back_records_error",
  "tests/unit/test_cine_transform_stage.py::test_fresh_run_calls_client_writes_file_and_record",
  "tests/unit/test_cine_transform_stage.py::test_missing_file_with_prior_success_reruns",
  "tests/unit/test_cine_transform_stage.py::test_persist_env_flag_appends_when_missing",
  "tests/unit/test_cine_transform_stage.py::test_persist_env_flag_missing_file_raises",
  "tests/unit/test_cine_transform_stage.py::test_persist_env_flag_replaces_only_target_line",
  "tests/unit/test_cine_transform_stage.py::test_prior_failure_retries_on_next_visit",
  "tests/unit/test_cine_transform_stage.py::test_reuse_skips_client_and_keeps_records_stable",
  "tests/unit/test_cine_transform_stage.py::test_scene_image_step_hash_folds_cine_contract",
  "tests/unit/test_cine_transform_stage.py::test_scene_image_step_hash_stamps_cine_on_only",
  "tests/unit/test_cine_transform_stage.py::test_sel_bytes_change_reruns",
  "tests/unit/test_cine_transform_stage.py::test_settings_put_keeps_runtime_off_when_persist_fails",
  "tests/unit/test_cine_transform_stage.py::test_stem_hash_change_reruns",
  "tests/unit/test_cine_transform_stage.py::test_공용_전송불명_예외도_다시_안_보내게_표식을_남긴다",
  "tests/unit/test_cine_transform_stage.py::test_일반_실패는_표식_없이_다음_방문에_다시_시도한다",
  "tests/unit/test_cine_verify.py::test_aggregation_version_is_in_the_contract",
  "tests/unit/test_cine_verify.py::test_axis_question_text_is_in_the_contract",
  "tests/unit/test_cine_verify.py::test_defect_question_text_is_in_the_contract",
  "tests/unit/test_cine_verify.py::test_framing_change_is_not_a_reject",
  "tests/unit/test_cine_verify.py::test_gate_does_not_reject_when_orders_disagree",
  "tests/unit/test_cine_verify.py::test_gate_does_not_reject_when_rounds_disagree",
  "tests/unit/test_cine_verify.py::test_gate_rejects_only_when_both_orders_agree",
  "tests/unit/test_cine_verify.py::test_gate_rejects_only_when_both_rounds_agree",
  "tests/unit/test_cine_verify.py::test_judge_error_does_not_reject",
  "tests/unit/test_cine_verify.py::test_partial_rounds_never_reject",
  "tests/unit/test_cine_verify.py::test_rejected_is_a_settled_outcome_not_a_failure",
  "tests/unit/test_cine_verify.py::test_rejected_is_revoked_when_new_judgment_passes",
  "tests/unit/test_cine_verify.py::test_rejected_revisit_costs_nothing",
  "tests/unit/test_cine_verify.py::test_result_is_shrunk_to_source_size_before_judging",
  "tests/unit/test_cine_verify.py::test_rounds_above_max_do_not_silently_disable_the_gate",
  "tests/unit/test_cine_verify.py::test_rounds_change_forces_rejudge",
  "tests/unit/test_cine_verify.py::test_rounds_change_no_longer_rejudges",
  "tests/unit/test_cine_verify.py::test_shrink_falls_back_when_source_is_unreadable",
  "tests/unit/test_cine_verify.py::test_small_result_is_not_upscaled",
  "tests/unit/test_cine_verify.py::test_sound_image_is_always_applied",
  "tests/unit/test_cine_verify.py::test_sound_result_is_applied_end_to_end",
  "tests/unit/test_cine_verify.py::test_source_is_never_shown_to_the_judge",
  "tests/unit/test_cine_verify.py::test_turning_gate_off_restores_the_rejected_image",
  "tests/unit/test_cine_verify.py::test_turning_gate_on_later_judges_without_rebuying",
  "tests/unit/test_cine_verify.py::test_verdict_survives_revisit_when_contract_unchanged",
  "tests/unit/test_cine_verify.py::test_verify_contract_change_rejudges_without_rebuying",
  "tests/unit/test_cine_verify.py::test_verify_off_is_byte_identical_path",
  "tests/unit/test_cine_verify.py::test_비율이_다르면_찌그러뜨리지_않는다",
  "tests/unit/test_cine_verify_dual_model.py::test_a_dead_model_still_appears_in_the_record",
  "tests/unit/test_cine_verify_dual_model.py::test_a_stale_rounds_setting_does_not_rejudge",
  "tests/unit/test_cine_verify_dual_model.py::test_both_broken_rejects",
  "tests/unit/test_cine_verify_dual_model.py::test_disagreement_is_split_not_reject",
  "tests/unit/test_cine_verify_dual_model.py::test_each_model_gets_its_own_physical_name",
  "tests/unit/test_cine_verify_dual_model.py::test_each_model_gets_its_own_step_tag",
  "tests/unit/test_cine_verify_dual_model.py::test_lowering_rounds_drops_the_second_model_visibly",
  "tests/unit/test_cine_verify_dual_model.py::test_one_model_alone_cannot_reject",
  "tests/unit/test_cine_verify_dual_model.py::test_one_model_dead_means_no_reject_authority",
  "tests/unit/test_cine_verify_dual_model.py::test_rounds_cannot_drop_a_model",
  "tests/unit/test_cine_verify_dual_model.py::test_router_retries_are_sealed_at_the_endpoint",
  "tests/unit/test_cine_verify_dual_model.py::test_the_contract_lives_in_one_place_only",
  "tests/unit/test_cine_verify_dual_model.py::test_the_contract_sha_folds_the_whole_pair",
  "tests/unit/test_cine_verify_dual_model.py::test_the_dead_model_does_not_stop_the_other",
  "tests/unit/test_cine_verify_dual_model.py::test_the_judge_call_asks_for_its_usage",
  "tests/unit/test_cine_verify_dual_model.py::test_the_judge_call_seals_the_fallback",
  "tests/unit/test_cine_verify_dual_model.py::test_the_pair_is_what_the_user_asked_for",
  "tests/unit/test_cine_verify_dual_model.py::test_the_physical_names_are_folded_too",
  "tests/unit/test_cine_verify_dual_model.py::test_the_result_says_who_judged",
  "tests/unit/test_cine_verify_dual_model.py::test_two_rounds_means_two_models_not_two_calls_to_one",
  "tests/unit/test_cine_verify_dual_model.py::test_usage_reaches_the_result",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_actually_appends_the_clause[False-False-True]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_actually_appends_the_clause[False-False]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_actually_appends_the_clause[False-True-False]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_actually_appends_the_clause[False-True]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_actually_appends_the_clause[True-False-True]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_actually_appends_the_clause[True-False]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_actually_appends_the_clause[True-True-True]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_actually_appends_the_clause[True-True]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_condition[False-False-True]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_condition[False-True-False]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_condition[True-False-True]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_condition[True-True-True]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_is_unconditional[False-False]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_is_unconditional[False-True]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_is_unconditional[True-False]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_is_unconditional[True-True]",
  "tests/unit/test_cinematic_finish_clause.py::test_attach_uses_its_own_selector_not_the_compact_pack",
  "tests/unit/test_cinematic_finish_clause.py::test_both_mirrors_compute_the_grok_axis_the_same_way",
  "tests/unit/test_cinematic_finish_clause.py::test_clause_comes_from_the_pack_not_the_code",
  "tests/unit/test_cinematic_finish_clause.py::test_clause_does_not_point_at_a_block_that_may_be_absent",
  "tests/unit/test_cinematic_finish_clause.py::test_clause_still_carries_the_materials_to_draw_with",
  "tests/unit/test_cinematic_finish_clause.py::test_clause_survives_the_confined_strip_on_its_own",
  "tests/unit/test_cinematic_finish_clause.py::test_empty_selector_resolves_instead_of_raising",
  "tests/unit/test_cinematic_finish_clause.py::test_every_camera_pack_carries_the_stripper_end_marker",
  "tests/unit/test_cinematic_finish_clause.py::test_finish_is_never_absent",
  "tests/unit/test_cinematic_finish_clause.py::test_finish_never_absent_when_transform_is_off",
  "tests/unit/test_cinematic_finish_clause.py::test_finish_pack_is_folded_into_the_hash_when_it_reaches_t2i",
  "tests/unit/test_cinematic_finish_clause.py::test_finish_selector_is_not_the_compact_pack_selector",
  "tests/unit/test_cinematic_finish_clause.py::test_finish_stem_edit_moves_the_hash_on_nb2_with_transform_off",
  "tests/unit/test_cinematic_finish_clause.py::test_grok_folds_it_only_when_the_selectors_diverge",
  "tests/unit/test_cinematic_finish_clause.py::test_grok_hash_is_unchanged_while_the_selectors_agree",
  "tests/unit/test_cinematic_finish_clause.py::test_grok_hash_moves_when_the_two_selectors_diverge",
  "tests/unit/test_cinematic_finish_clause.py::test_nb2_folds_it_only_when_the_roll_owns_it",
  "tests/unit/test_cinematic_finish_clause.py::test_nb2_folds_it_regardless_of_the_transform",
  "tests/unit/test_cinematic_finish_clause.py::test_nb2_with_transform_off_always_folds_the_finish_stem",
  "tests/unit/test_cinematic_finish_clause.py::test_nb2_with_transform_on_does_not_fold_it",
  "tests/unit/test_cinematic_finish_clause.py::test_production_call_site_does_not_pass_the_compact_selector",
  "tests/unit/test_cinematic_finish_clause.py::test_selector_and_pack_stay_in_step",
  "tests/unit/test_cinematic_finish_clause.py::test_the_clause_actually_appears_and_disappears[False]",
  "tests/unit/test_cinematic_finish_clause.py::test_the_clause_actually_appears_and_disappears[True]",
  "tests/unit/test_cinematic_finish_clause.py::test_the_finish_has_exactly_one_owner_in_every_combination",
  "tests/unit/test_cinematic_finish_clause.py::test_the_roll_owns_the_finish_only_when_there_is_no_terminal_stage[False]",
  "tests/unit/test_cinematic_finish_clause.py::test_the_roll_owns_the_finish_only_when_there_is_no_terminal_stage[True]",
  "tests/unit/test_cinematic_stage_ownership.py::test_an_unregistered_pack_dies_loudly",
  "tests/unit/test_cinematic_stage_ownership.py::test_both_backends_get_their_own_stem",
  "tests/unit/test_cinematic_stage_ownership.py::test_camera_direction_moves_but_its_authority_sentence_stays",
  "tests/unit/test_cinematic_stage_ownership.py::test_each_backend_folds_only_the_stem_it_actually_sends",
  "tests/unit/test_cinematic_stage_ownership.py::test_each_no_dir_stem_keeps_its_own_headline",
  "tests/unit/test_cinematic_stage_ownership.py::test_editing_the_other_backends_stem_leaves_this_hash_alone",
  "tests/unit/test_cinematic_stage_ownership.py::test_lighting_clause_mixes_facts_with_treatment",
  "tests/unit/test_cinematic_stage_ownership.py::test_lighting_still_mixes_facts_with_treatment",
  "tests/unit/test_cinematic_stage_ownership.py::test_material_realism_is_not_yet_its_own_stem",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_angle_authority_leaves_with_its_value",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_assembly_and_the_hash_ask_the_same_function",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_backend_does_not_change_who_owns_it",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_camera_gate_is_the_only_one_today",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_clause_actually_leaves_the_prompt",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_composition_authority_survives",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_finish_belongs_to_exactly_one_stage",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_finish_is_owned_twice_today",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_hash_folds_both_stems_not_just_the_base_one",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_open_angle_is_said_out_loud",
  "tests/unit/test_cinematic_stage_ownership.py::test_the_terminal_stage_still_carries_it",
  "tests/unit/test_completion_report_origin.py::TestCompletionReportBackwardCompat::test_keyword_args_without_origin_work",
  "tests/unit/test_completion_report_origin.py::TestCompletionReportBackwardCompat::test_positional_args_still_work",
  "tests/unit/test_completion_report_origin.py::TestCompletionReportFrozen::test_origin_frozen_dataclass",
  "tests/unit/test_completion_report_origin.py::TestCompletionReportOriginDefault::test_origin_default_is_artifact_missing",
  "tests/unit/test_completion_report_origin.py::TestCompletionReportOriginDefault::test_origin_default_when_complete",
  "tests/unit/test_completion_report_origin.py::TestCompletionReportOriginExplicit::test_origin_can_be_overridden_to_clean",
  "tests/unit/test_completion_report_origin.py::TestCompletionReportOriginExplicit::test_origin_can_be_overridden_to_contract_drift",
  "tests/unit/test_completion_report_origin.py::TestCompletionReportOriginExplicit::test_origin_can_be_overridden_to_invariant_drift",
  "tests/unit/test_completion_report_origin.py::TestCompletionReportOriginExplicit::test_origin_can_be_overridden_to_verify_crashed",
  "tests/unit/test_compose_observation_scope.py::test_a_field_the_compose_schema_cannot_take_is_dropped",
  "tests/unit/test_compose_observation_scope.py::test_a_field_the_schema_does_take_survives",
  "tests/unit/test_compose_observation_scope.py::test_an_unreadable_schema_does_not_empty_the_observations",
  "tests/unit/test_compose_observation_scope.py::test_non_dict_entries_are_skipped",
  "tests/unit/test_compose_observation_scope.py::test_the_call_sites_use_the_helper_not_a_raw_dump",
  "tests/unit/test_compose_observation_scope.py::test_the_default_header_is_unchanged",
  "tests/unit/test_compose_observation_scope.py::test_the_header_is_preserved_for_the_two_inspector_path",
  "tests/unit/test_compose_observation_scope.py::test_the_qk_path_loses_nothing_so_the_rebind_survives",
  "tests/unit/test_compose_observation_scope.py::test_the_real_pair_of_schemas_actually_disagreed",
  "tests/unit/test_composite_base_binding.py::test_consumer_prefers_the_composite_of_the_current_base",
  "tests/unit/test_composite_base_binding.py::test_manual_composite_key_matches_the_batch",
  "tests/unit/test_composite_base_binding.py::test_manual_composite_reads_the_same_judgment",
  "tests/unit/test_composite_base_binding.py::test_the_key_regex_accepts_both_shapes",
  "tests/unit/test_composite_does_not_wear_the_mannequin.py::test_both_composite_prompts_say_the_mannequin_is_a_fixture",
  "tests/unit/test_composite_does_not_wear_the_mannequin.py::test_the_derive_prompt_pins_the_limb_count",
  "tests/unit/test_composite_does_not_wear_the_mannequin.py::test_the_derive_prompt_resolves_the_contradiction",
  "tests/unit/test_composite_does_not_wear_the_mannequin.py::test_the_derive_prompt_takes_the_outfit_as_text_not_a_photo",
  "tests/unit/test_composite_does_not_wear_the_mannequin.py::test_the_human_composite_says_the_mannequin_is_a_fixture",
  "tests/unit/test_composite_does_not_wear_the_mannequin.py::test_the_old_turnaround_guard_is_still_there",
  "tests/unit/test_composite_does_not_wear_the_mannequin.py::test_the_outlook_reference_still_uses_a_mannequin",
  "tests/unit/test_composite_does_not_wear_the_mannequin.py::test_the_pack_version_moved_forward",
  "tests/unit/test_config_running_timeout.py::test_can_override_via_env",
  "tests/unit/test_config_running_timeout.py::test_default_is_3600_seconds",
  "tests/unit/test_config_running_timeout.py::test_negative_timeout_raises_validation_error",
  "tests/unit/test_config_running_timeout.py::test_zero_timeout_raises_validation_error",
  "tests/unit/test_confined_camera_strip_end.py::test_compact_pack_keeps_everything_after_the_camera_block",
  "tests/unit/test_confined_camera_strip_end.py::test_compact_pack_survives_the_whole_confined_assembly",
  "tests/unit/test_confined_camera_strip_end.py::test_prompt_without_a_camera_block_is_untouched",
  "tests/unit/test_confined_camera_strip_end.py::test_the_heading_that_ends_the_block_is_kept",
  "tests/unit/test_confined_camera_strip_end.py::test_v6_pack_is_byte_identical_to_the_old_behaviour",
  "tests/unit/test_confined_fp.py::test_applicability_schema_shape",
  "tests/unit/test_confined_fp.py::test_extract_sections_and_context",
  "tests/unit/test_confined_fp.py::test_extract_sections_carried_people_blocks",
  "tests/unit/test_confined_fp.py::test_fingerprints_move_on_input_change",
  "tests/unit/test_confined_fp.py::test_flag_default_off",
  "tests/unit/test_confined_fp.py::test_gen_prompt_composition",
  "tests/unit/test_confined_fp.py::test_pack_stems_load_and_hash",
  "tests/unit/test_confined_fp.py::test_produce_base_fp_fails_closed_without_location",
  "tests/unit/test_confined_fp.py::test_produce_fails_closed_on_empty_description",
  "tests/unit/test_confined_fp.py::test_produce_fails_closed_without_sections",
  "tests/unit/test_confined_fp.py::test_produce_flow_mismatch_fixes_once_with_i2i",
  "tests/unit/test_confined_fp.py::test_produce_flow_no_mismatch_single_gen",
  "tests/unit/test_confined_fp.py::test_produce_shot_fp_fails_closed_without_mark_ctx",
  "tests/unit/test_confined_fp.py::test_produce_shot_fp_marks_then_fixes",
  "tests/unit/test_confined_fp.py::test_readback_schema_shape",
  "tests/unit/test_confined_fp.py::test_strip_camera_block_removes_only_camera",
  "tests/unit/test_confined_fp.py::test_strip_confined_brief_removes_prev_ref_blocks",
  "tests/unit/test_confined_fp.py::test_strip_removes_all_non_attached_authorities_real_assembly",
  "tests/unit/test_confined_fp.py::test_unknown_pack_selector_fails",
  "tests/unit/test_confined_fp_readback_second_observer.py::test_both_empty_still_fails",
  "tests/unit/test_confined_fp_readback_second_observer.py::test_empty_goes_to_second_observer_once_with_same_inputs",
  "tests/unit/test_confined_fp_readback_second_observer.py::test_first_success_is_one_call_and_same_return",
  "tests/unit/test_confined_fp_readback_second_observer.py::test_initial_fallback_survives_the_fix_readback",
  "tests/unit/test_confined_fp_readback_second_observer.py::test_other_failures_are_not_handed_over[exc0]",
  "tests/unit/test_confined_fp_readback_second_observer.py::test_other_failures_are_not_handed_over[exc1]",
  "tests/unit/test_confined_fp_readback_second_observer.py::test_other_failures_are_not_handed_over[exc2]",
  "tests/unit/test_confined_fp_readback_second_observer.py::test_the_fake_answer_passes_the_production_schema",
  "tests/unit/test_conti_ab.py::test_decide_winner_agreement_and_tie",
  "tests/unit/test_conti_ab.py::test_decision_fingerprint_drift_axes",
  "tests/unit/test_conti_ab.py::test_outer_judge_blind_and_order_flip",
  "tests/unit/test_conti_ab.py::test_outer_judge_consistent_winner",
  "tests/unit/test_conti_ab.py::test_pack_scenario_neutral_and_framing_priority",
  "tests/unit/test_conti_ab.py::test_resolve_or_run_outer_judge_failure_raises",
  "tests/unit/test_conti_ab.py::test_resolve_or_run_outer_reuses_decision_zero_calls",
  "tests/unit/test_conti_ab.py::test_scene_image_hash_sensitive_to_physical_ab_judge_model",
  "tests/unit/test_conti_ab.py::test_unknown_version_raises",
  "tests/unit/test_cp_primary_reconcile.py::test_a_missing_row_is_created_with_the_real_primary",
  "tests/unit/test_cp_primary_reconcile.py::test_a_second_unchanged_visit_writes_nothing",
  "tests/unit/test_cp_primary_reconcile.py::test_a_stale_checkpoint_primary_is_corrected_once",
  "tests/unit/test_cp_primary_reconcile.py::test_a_stale_path_is_corrected_even_when_the_id_matches",
  "tests/unit/test_cp_primary_reconcile.py::test_an_unreadable_checkpoint_writes_nothing",
  "tests/unit/test_cp_primary_reconcile.py::test_both_reuse_branches_reconcile_and_carry_the_pipeline_asset",
  "tests/unit/test_cp_primary_reconcile.py::test_the_log_does_not_claim_the_whole_visit_was_free",
  "tests/unit/test_cross_model_order_judge.py::test_both_slots_failing_raises",
  "tests/unit/test_cross_model_order_judge.py::test_disagreement_uses_normalized_scores_and_violation_union",
  "tests/unit/test_cross_model_order_judge.py::test_exactly_two_calls_one_per_model",
  "tests/unit/test_cross_model_order_judge.py::test_grok_really_sees_the_reversed_order",
  "tests/unit/test_cross_model_order_judge.py::test_one_slot_failure_survives_with_named_route",
  "tests/unit/test_cross_model_order_judge.py::test_owns_order_is_false_when_dispatch_would_not_take_the_cross_path",
  "tests/unit/test_cross_model_order_judge.py::test_owns_order_rejudge_carries_all_fail_to_needs_reshoot",
  "tests/unit/test_cross_model_order_judge.py::test_owns_order_rejudge_without_all_fail_does_not_flag",
  "tests/unit/test_cross_model_order_judge.py::test_reverse_answer_is_mapped_back_to_canonical",
  "tests/unit/test_cross_model_order_judge.py::test_slot_record_names_model_and_order",
  "tests/unit/test_cross_model_order_judge.py::test_the_old_agreement_name_is_not_reused",
  "tests/unit/test_cross_model_order_judge.py::test_the_two_calls_overlap",
  "tests/unit/test_db_token_columns.py::test_missing_usage_writes_none_not_zero",
  "tests/unit/test_db_token_columns.py::test_opik_still_receives_the_whole_usage",
  "tests/unit/test_db_token_columns.py::test_the_logger_actually_has_those_columns",
  "tests/unit/test_db_token_columns.py::test_the_token_columns_carry_the_real_numbers",
  "tests/unit/test_dual_vlm_executor.py::test_a_caller_can_override_the_pair",
  "tests/unit/test_dual_vlm_executor.py::test_a_failed_call_still_records_its_shape",
  "tests/unit/test_dual_vlm_executor.py::test_a_failure_is_not_retried",
  "tests/unit/test_dual_vlm_executor.py::test_complete_is_data_not_a_verdict",
  "tests/unit/test_dual_vlm_executor.py::test_each_alias_is_asked_exactly_once",
  "tests/unit/test_dual_vlm_executor.py::test_empty_alias_list_is_not_complete",
  "tests/unit/test_dual_vlm_executor.py::test_fallback_is_sealed_on_every_call",
  "tests/unit/test_dual_vlm_executor.py::test_one_failure_does_not_stop_the_other",
  "tests/unit/test_dual_vlm_executor.py::test_provenance_keeps_every_model_raw",
  "tests/unit/test_dual_vlm_executor.py::test_router_retries_are_sealed_too",
  "tests/unit/test_dual_vlm_executor.py::test_the_executor_does_not_decide",
  "tests/unit/test_dual_vlm_executor.py::test_the_pair_is_what_the_user_asked_for",
  "tests/unit/test_dual_vlm_executor.py::test_the_source_says_it_too",
  "tests/unit/test_dual_vlm_executor.py::test_the_step_tag_splits_by_alias",
  "tests/unit/test_dual_vlm_executor.py::test_unreported_usage_is_absent_not_zero",
  "tests/unit/test_empty_llm_response_says_why.py::test_empty_content_raises_typed_error_with_the_reason",
  "tests/unit/test_empty_llm_response_says_why.py::test_old_catchers_still_catch_it",
  "tests/unit/test_entity_detail_chunked.py::test_10_entity_id_accepts_only_the_ids_sent_in_that_call",
  "tests/unit/test_entity_detail_chunked.py::test_11_a_row_without_id_keeps_empty_allowed",
  "tests/unit/test_entity_detail_chunked.py::test_1_every_entity_rides_exactly_one_chunk_of_at_most_50",
  "tests/unit/test_entity_detail_chunked.py::test_2_full_scenario_text_rides_every_chunk_untruncated",
  "tests/unit/test_entity_detail_chunked.py::test_3_retry_keeps_world_planning_and_distinctive",
  "tests/unit/test_entity_detail_chunked.py::test_4_one_chunk_blowing_up_keeps_the_others",
  "tests/unit/test_entity_detail_chunked.py::test_5_leftover_empties_are_logged_not_silent",
  "tests/unit/test_entity_detail_chunked.py::test_6_workers_carry_stop_check_budget_and_trace",
  "tests/unit/test_entity_detail_chunked.py::test_7_cancel_before_start_sends_nothing_and_propagates",
  "tests/unit/test_entity_detail_chunked.py::test_8_cancel_mid_run_is_not_retried",
  "tests/unit/test_entity_detail_chunked.py::test_9_research_budget_cap_is_honoured_inside_workers",
  "tests/unit/test_era_research.py::test_a_valid_scope_is_recorded_as_canonical",
  "tests/unit/test_era_research.py::test_assess_caps_subjects",
  "tests/unit/test_era_research.py::test_audit_marks_stage_that_stopped",
  "tests/unit/test_era_research.py::test_audit_records_no_usable_verdict",
  "tests/unit/test_era_research.py::test_canon_content_change_moves_the_key",
  "tests/unit/test_era_research.py::test_different_locations_never_merge",
  "tests/unit/test_era_research.py::test_flag_default_off",
  "tests/unit/test_era_research.py::test_indoor_and_outdoor_of_one_location_stay_apart",
  "tests/unit/test_era_research.py::test_missing_or_unknown_scope_does_not_merge",
  "tests/unit/test_era_research.py::test_one_location_many_wordings_costs_once",
  "tests/unit/test_era_research.py::test_pack_and_policy_contract",
  "tests/unit/test_era_research.py::test_physical_model_appears_in_step_config_hash",
  "tests/unit/test_era_research.py::test_physical_model_change_moves_both_keys",
  "tests/unit/test_era_research.py::test_pick_model_change_invalidates_reference",
  "tests/unit/test_era_research.py::test_research_reference_download_dead_returns_none",
  "tests/unit/test_era_research.py::test_research_reference_happy_path",
  "tests/unit/test_era_research.py::test_research_reference_no_usable_returns_none",
  "tests/unit/test_era_research.py::test_research_reference_search_error_nonblocking",
  "tests/unit/test_era_research.py::test_same_subject_from_different_text_researches_once",
  "tests/unit/test_era_research.py::test_the_schema_asks_for_one_subject_not_four",
  "tests/unit/test_era_research.py::test_verdicts_and_urls_survive_on_success",
  "tests/unit/test_era_scope_role_from_classify.py::test_a_conflict_decides_nothing",
  "tests/unit/test_era_scope_role_from_classify.py::test_a_missing_flag_decides_nothing",
  "tests/unit/test_era_scope_role_from_classify.py::test_all_three_era_call_sites_pass_the_full_identity",
  "tests/unit/test_era_scope_role_from_classify.py::test_groupbg_identity_follows_the_origin_shot_not_the_follower",
  "tests/unit/test_era_scope_role_from_classify.py::test_one_row_decides_the_role",
  "tests/unit/test_era_scope_role_from_classify.py::test_production_reads_is_indoor_and_never_guesses",
  "tests/unit/test_era_scope_role_from_classify.py::test_the_same_value_twice_is_not_a_conflict",
  "tests/unit/test_evidence_normalize.py::TestAssertFreshLLMEvidence::test_all_lists_empty_high_confidence_rejected",
  "tests/unit/test_evidence_normalize.py::TestAssertFreshLLMEvidence::test_all_lists_empty_low_passes",
  "tests/unit/test_evidence_normalize.py::TestAssertFreshLLMEvidence::test_empty_source_facts_high_confidence_rejected",
  "tests/unit/test_evidence_normalize.py::TestAssertFreshLLMEvidence::test_empty_source_facts_medium_confidence_rejected",
  "tests/unit/test_evidence_normalize.py::TestAssertFreshLLMEvidence::test_high_confidence_with_facts_passes",
  "tests/unit/test_evidence_normalize.py::TestAssertFreshLLMEvidence::test_legacy_confidence_rejected",
  "tests/unit/test_evidence_normalize.py::TestAssertFreshLLMEvidence::test_low_confidence_empty_facts_passes",
  "tests/unit/test_evidence_normalize.py::TestAssertFreshLLMEvidence::test_step_name_in_error_message",
  "tests/unit/test_evidence_normalize.py::TestConstants::test_evidence_fields_3",
  "tests/unit/test_evidence_normalize.py::TestConstants::test_legacy_confidence_value",
  "tests/unit/test_evidence_normalize.py::TestConstants::test_valid_llm_confidence_excludes_legacy",
  "tests/unit/test_evidence_normalize.py::TestConstants::test_valid_stored_includes_legacy",
  "tests/unit/test_evidence_normalize.py::TestNormalizeEvidenceFields::test_all_fields_missing_becomes_legacy",
  "tests/unit/test_evidence_normalize.py::TestNormalizeEvidenceFields::test_all_fields_present_high_confidence_noop",
  "tests/unit/test_evidence_normalize.py::TestNormalizeEvidenceFields::test_invalid_confidence_string_becomes_legacy",
  "tests/unit/test_evidence_normalize.py::TestNormalizeEvidenceFields::test_legacy_confidence_already_set_preserved",
  "tests/unit/test_evidence_normalize.py::TestNormalizeEvidenceFields::test_non_dict_input_returned_unchanged",
  "tests/unit/test_evidence_normalize.py::TestNormalizeEvidenceFields::test_non_list_source_facts_replaced",
  "tests/unit/test_evidence_normalize.py::TestNormalizeEvidenceFields::test_none_source_facts_replaced",
  "tests/unit/test_evidence_normalize.py::TestNormalizeEvidenceFields::test_partial_only_source_facts_becomes_legacy",
  "tests/unit/test_evidence_normalize.py::TestNormalizeEvidenceFields::test_partial_with_real_confidence_still_legacy",
  "tests/unit/test_evidence_normalize.py::TestNormalizeEvidenceFields::test_where_param_logs_marker",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneConsistency::test_empty_fixed_elements_noop",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneConsistency::test_malformed_fixed_elements_dict_coerced_empty_list",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneConsistency::test_malformed_fixed_elements_dict_noop",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneConsistency::test_missing_fixed_elements_key_coerced_empty_list",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneConsistency::test_missing_fixed_elements_key_noop",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneConsistency::test_non_dict_input_returned_unchanged",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneConsistency::test_normalize_each_fixed_element",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneDetail::test_empty_t2i_variations_noop",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneDetail::test_malformed_t2i_variations_string_coerced_empty_list",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneDetail::test_malformed_t2i_variations_string_noop",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneDetail::test_missing_t2i_variations_key_coerced_empty_list",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneDetail::test_missing_t2i_variations_key_noop",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneDetail::test_non_dict_input_returned_unchanged",
  "tests/unit/test_evidence_normalize.py::TestNormalizeSceneDetail::test_normalize_each_t2i_variation",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeFailureHandling::test_execute_exception_marks_failed_and_raises",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeFailureHandling::test_exit_verify_crashed_marks_failed_and_raises",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeFailureHandling::test_exit_verify_failed_downgrades_to_partial",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeFailureHandling::test_failed_status_when_completed_count_zero",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeFailureHandling::test_partial_status_when_failed_count_present",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeSteps::test_completed_status_calls_exit_verify",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeSteps::test_execute_called_with_given_mode",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeSteps::test_reset_recovery_counter_on_completed",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeSteps::test_returns_status_completed_when_all_clean",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeSteps::test_running_status_marked_before_execute",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteAndFinalizeSteps::test_save_checkpoint_called_with_final_status",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteForce::test_force_calls_cleanup_artifacts",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteForce::test_force_calls_clear_checkpoint",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteForce::test_force_calls_execute_with_force_mode",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteForce::test_force_calls_invalidate_downstream",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteForce::test_force_cleanup_exception_marks_failed",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteRerunSelf::test_rerun_self_calls_execute_with_resume_mode",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteRerunSelf::test_rerun_self_does_not_call_cleanup_artifacts",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteRerunSelf::test_rerun_self_does_not_call_clear_checkpoint",
  "tests/unit/test_execute_rerun_force_split.py::TestExecuteRerunSelf::test_rerun_self_does_not_call_invalidate_downstream",
  "tests/unit/test_final_asset_provenance.py::test_gg46_에서_수리가_최종이면_grok_i2i_산출이다",
  "tests/unit/test_final_asset_provenance.py::test_grok2_백엔드는_grok_으로_남는다",
  "tests/unit/test_final_asset_provenance.py::test_기본_nb2_롤은_gemini",
  "tests/unit/test_final_asset_provenance.py::test_모델을_모르면_설정값으로_추측하지_않고_비운다",
  "tests/unit/test_final_asset_provenance.py::test_변환_모델이_grok_이면_grok_으로_남는다",
  "tests/unit/test_final_asset_provenance.py::test_변환이_없으면_사다리가_실제로_성공한_모델을_따른다",
  "tests/unit/test_final_asset_provenance.py::test_변환이_적용되면_변환한_모델이_기록된다",
  "tests/unit/test_final_asset_provenance.py::test_사다리보다_변환이_우선이다",
  "tests/unit/test_final_asset_provenance.py::test_실제_호출의_모델이_record_보다_우선이다",
  "tests/unit/test_final_asset_provenance.py::test_옛_record_에_모델이_없으면_거짓말_대신_설정값으로_내려간다",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_contract_violation_shot_is_not_reused_on_resume",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g1_repair_category_is_analysis_sub",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g1_repair_default_model_is_gpt_mini",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g1_repair_default_model_is_gpt_sol",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g1_repair_in_pipeline_steps_view",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g1_repair_label_is_korean_str",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g1_repair_resolves_to_gpt_mini",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g1_repair_resolves_to_gpt_sol",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g1_repair_step_in_extensions",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g2_prompt_pack_loads",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g2_schema_strict_shape",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g2_user_template_has_placeholders",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g3_format_block_empty",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g3_format_block_includes_owned_and_phrase",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g3_format_block_multi_line",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g4_run_repair_empty_t2i_raises",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g4_run_repair_empty_violations_raises",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g4_run_repair_missing_t2i_raises",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g4_run_repair_passes_step_name",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g4_run_repair_returns_prompt_and_usage",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g4_run_repair_usage_not_list_raises",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_g4_run_repair_user_prompt_has_evidence",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_repair_retries_when_validation_rejects_not_only_on_exception",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_repair_retries_with_upper_model_on_llm_failure",
  "tests/unit/test_finding7_owned_redraw_repair_helpers.py::test_retry_call_does_not_recurse_forever",
  "tests/unit/test_fix_ref_gate.py::test_compose_call_actually_carries_the_reference_numbering",
  "tests/unit/test_fix_ref_gate.py::test_compose_call_actually_carries_the_reference_numbering[make_gemini_critique_fn]",
  "tests/unit/test_fix_ref_gate.py::test_compose_call_actually_carries_the_reference_numbering[make_gg46_critique_fn]",
  "tests/unit/test_fix_ref_gate.py::test_compose_call_actually_carries_the_reference_numbering[make_gpt_composition_critique_fn]",
  "tests/unit/test_fix_ref_gate.py::test_compose_call_actually_carries_the_reference_numbering[make_gq_critique_fn]",
  "tests/unit/test_fix_ref_gate.py::test_compose_call_actually_carries_the_reference_numbering[make_qk_critique_fn]",
  "tests/unit/test_fix_ref_gate.py::test_fix_call_gets_only_the_requested_references",
  "tests/unit/test_fix_ref_gate.py::test_fix_prompt_without_missing_is_byte_identical",
  "tests/unit/test_fix_ref_gate.py::test_issue_without_the_field_disables_the_gate",
  "tests/unit/test_fix_ref_gate.py::test_missing_clause_is_added_only_when_something_is_missing",
  "tests/unit/test_fix_ref_gate.py::test_missing_clause_needs_its_reference_attached",
  "tests/unit/test_fix_ref_gate.py::test_missing_entities_are_collected_in_order_without_duplicates",
  "tests/unit/test_fix_ref_gate.py::test_missing_head_absent_means_no_clause",
  "tests/unit/test_fix_ref_gate.py::test_no_issues_at_all_keeps_nothing",
  "tests/unit/test_fix_ref_gate.py::test_nobody_asks_means_no_reference_at_all",
  "tests/unit/test_fix_ref_gate.py::test_only_requested_refs_are_kept",
  "tests/unit/test_fix_ref_gate.py::test_out_of_range_and_non_integer_are_dropped_and_recorded",
  "tests/unit/test_fix_ref_gate.py::test_outer_step_config_hash_follows_the_pack_content",
  "tests/unit/test_fix_ref_gate.py::test_outer_step_config_hash_splits_on_the_flag",
  "tests/unit/test_fix_ref_gate.py::test_requested_refs_keep_attachment_order",
  "tests/unit/test_fix_ref_gate.py::test_same_ref_requested_twice_attaches_once",
  "tests/unit/test_fix_ref_gate.py::test_schema_off_is_unchanged",
  "tests/unit/test_fix_ref_gate.py::test_schema_on_adds_three_required_fields",
  "tests/unit/test_floor_plan_prompt.py::test_v10_pack_unchanged_by_v11",
  "tests/unit/test_floor_plan_prompt.py::test_v11_pack_registered_and_has_contiguous_contract",
  "tests/unit/test_floor_plan_prompt.py::test_v11_registered_in_compat_sot",
  "tests/unit/test_floor_plan_prompt.py::test_v11_schema_byte_identical_to_v10",
  "tests/unit/test_floor_plan_render_worker_identity.py::test_binding_carries_project_and_episode_into_the_worker",
  "tests/unit/test_floor_plan_render_worker_identity.py::test_no_context_is_a_no_op",
  "tests/unit/test_floor_plan_render_worker_identity.py::test_the_caller_thread_is_not_touched",
  "tests/unit/test_floor_plan_render_worker_identity.py::test_the_step_actually_wraps_its_worker",
  "tests/unit/test_floor_plan_render_worker_identity.py::test_without_binding_the_worker_sees_no_identity",
  "tests/unit/test_floor_plan_render_worker_identity.py::test_worker_restores_the_previous_context",
  "tests/unit/test_floor_plan_render_worker_identity.py::test_worker_thread_is_left_clean_for_the_next_task",
  "tests/unit/test_floor_plan_shared_across_groups.py::test_jobs_merge_backgrounds_per_floor_plan",
  "tests/unit/test_floor_plan_shared_across_groups.py::test_merge_logic_dedupes_and_keeps_all",
  "tests/unit/test_floor_plan_shared_groups_producer.py::test_identity_mismatch_is_left_for_a_human",
  "tests/unit/test_floor_plan_shared_groups_producer.py::test_producer_merges_specs_not_first_wins",
  "tests/unit/test_floor_plan_shared_groups_producer.py::test_producer_uses_every_group_scene_text",
  "tests/unit/test_floor_readback_dual.py::test_a_broken_readback_does_not_raise[None]",
  "tests/unit/test_floor_readback_dual.py::test_a_broken_readback_does_not_raise[bad1]",
  "tests/unit/test_floor_readback_dual.py::test_a_broken_readback_does_not_raise[bad2]",
  "tests/unit/test_floor_readback_dual.py::test_a_different_kind_is_its_own_grade",
  "tests/unit/test_floor_readback_dual.py::test_a_failed_paid_roundtrip_still_counts",
  "tests/unit/test_floor_readback_dual.py::test_a_second_model_failure_does_not_lose_the_first",
  "tests/unit/test_floor_readback_dual.py::test_a_second_model_failure_still_counts_as_two",
  "tests/unit/test_floor_readback_dual.py::test_a_single_provider_still_counts_as_one",
  "tests/unit/test_floor_readback_dual.py::test_both_models_count_as_two",
  "tests/unit/test_floor_readback_dual.py::test_each_call_gets_a_physical_model_not_an_alias",
  "tests/unit/test_floor_readback_dual.py::test_every_attempt_is_recorded_with_its_physical_model",
  "tests/unit/test_floor_readback_dual.py::test_grok_resolves_through_openrouter_or_stays_an_alias",
  "tests/unit/test_floor_readback_dual.py::test_it_reuses_the_production_assembly_not_a_new_one",
  "tests/unit/test_floor_readback_dual.py::test_markers_only_one_side_saw_are_listed_not_dropped",
  "tests/unit/test_floor_readback_dual.py::test_one_alias_means_no_second_call",
  "tests/unit/test_floor_readback_dual.py::test_one_cell_away_is_adjacent",
  "tests/unit/test_floor_readback_dual.py::test_same_cell_is_exact",
  "tests/unit/test_floor_readback_dual.py::test_the_adjacent_radius_is_recorded_as_measured",
  "tests/unit/test_floor_readback_dual.py::test_the_counts_add_up",
  "tests/unit/test_floor_readback_dual.py::test_the_first_model_failure_is_not_swallowed",
  "tests/unit/test_floor_readback_dual.py::test_the_flag_moves_the_step_fingerprint",
  "tests/unit/test_floor_readback_dual.py::test_the_physical_models_are_in_the_stamp_too",
  "tests/unit/test_floor_readback_dual.py::test_the_read_goes_through_the_router_not_the_openai_only_helper",
  "tests/unit/test_floor_readback_dual.py::test_the_stamp_is_empty_when_the_flag_is_off",
  "tests/unit/test_floor_readback_dual.py::test_the_step_counter_adds_up_both_calls",
  "tests/unit/test_floor_readback_dual.py::test_the_step_picks_the_dual_provider_only_when_the_flag_is_on",
  "tests/unit/test_floor_readback_dual.py::test_the_value_downstream_uses_is_the_first_models",
  "tests/unit/test_floor_readback_dual.py::test_two_cells_away_is_conflict",
  "tests/unit/test_frame_spatial_contract.py::test_constants_9_zones_3_depths_max_3",
  "tests/unit/test_frame_spatial_contract.py::test_find_violations_gesture_action_none_requires_empty_label",
  "tests/unit/test_frame_spatial_contract.py::test_find_violations_gesture_action_not_none_requires_label",
  "tests/unit/test_frame_spatial_contract.py::test_find_violations_invalid_enum_or_empty_label_or_wrong_target_id",
  "tests/unit/test_frame_spatial_contract.py::test_find_violations_more_than_3_constraints",
  "tests/unit/test_frame_spatial_contract.py::test_find_violations_null_contract_returns_empty",
  "tests/unit/test_frame_spatial_contract.py::test_find_violations_valid_1_to_3_constraints_returns_empty",
  "tests/unit/test_frame_spatial_contract.py::test_format_retry_hint_includes_invalid_value",
  "tests/unit/test_frame_spatial_contract.py::test_phrase_diagnostic_all_phrases_present_no_warning",
  "tests/unit/test_frame_spatial_contract.py::test_phrase_diagnostic_warns_only_no_raise",
  "tests/unit/test_frame_spatial_contract.py::test_validate_and_prepare_assigns_deterministic_ids",
  "tests/unit/test_frame_spatial_contract.py::test_validate_and_prepare_background_label_only_check",
  "tests/unit/test_frame_spatial_contract.py::test_validate_and_prepare_character_missing_in_visible_raises",
  "tests/unit/test_frame_spatial_contract.py::test_validate_and_prepare_duplicate_sort_key_raises",
  "tests/unit/test_frame_spatial_contract.py::test_validate_and_prepare_gesture_target_label_mismatch_raises",
  "tests/unit/test_frame_spatial_contract.py::test_validate_and_prepare_invalid_screen_zone_raises",
  "tests/unit/test_frame_spatial_contract.py::test_validate_and_prepare_null_returns_none",
  "tests/unit/test_frame_spatial_contract.py::test_validate_and_prepare_prop_missing_in_visible_raises",
  "tests/unit/test_frame_spatial_contract.py::test_validate_and_prepare_visible_entities_none_raises",
  "tests/unit/test_frame_spatial_contract.py::test_validate_echoes_match_pass",
  "tests/unit/test_frame_spatial_contract.py::test_validate_echoes_missing_id_violation",
  "tests/unit/test_frame_spatial_contract.py::test_validate_echoes_null_contract_empty_echoes_pass",
  "tests/unit/test_frame_spatial_contract.py::test_validate_echoes_null_contract_nonempty_echo_violation",
  "tests/unit/test_framing_scale_authority.py::test_active_conti_pack_is_the_fixed_one",
  "tests/unit/test_framing_scale_authority.py::test_bgfirst_sketch_label_needs_no_fix",
  "tests/unit/test_framing_scale_authority.py::test_conti_keeps_its_original_positive_material",
  "tests/unit/test_framing_scale_authority.py::test_conti_label_pack_holds_only_that_stem[conti_label]",
  "tests/unit/test_framing_scale_authority.py::test_conti_no_longer_rewidens_the_declared_scale",
  "tests/unit/test_framing_scale_authority.py::test_conti_still_carries_the_declared_scale",
  "tests/unit/test_framing_scale_authority.py::test_fingerprint_folds_the_conti_label_bytes",
  "tests/unit/test_framing_scale_authority.py::test_lane_sketch_label_is_deliberately_left_alone",
  "tests/unit/test_framing_scale_authority.py::test_old_conti_pack_is_untouched",
  "tests/unit/test_framing_scale_authority.py::test_old_still_pack_label_is_untouched",
  "tests/unit/test_framing_scale_authority.py::test_sketch_label_no_longer_claims_framing",
  "tests/unit/test_framing_scale_authority.py::test_v6_keeps_every_clause_v5_had",
  "tests/unit/test_framing_scale_authority.py::test_v6_still_carries_the_conduct_clauses[naturalism_clause]",
  "tests/unit/test_framing_scale_authority.py::test_v6_still_carries_the_conduct_clauses[prop_orientation]",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestUserEditedOwnedDrift::test_match_passes_reuse",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestUserEditedOwnedDrift::test_missing_owned_validation_rejects_reuse",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestUserEditedOwnedDrift::test_owned_hash_mismatch_rejects_reuse",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestUserEditedOwnedDrift::test_t2i_prompt_hash_drift_rejects_reuse",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestUserEditedOwnedDrift::test_validator_type_drift_rejects_reuse",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestVerifyCompletionOwnedDrift::test_clean_when_sentinel_matches_ground_truth",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestVerifyCompletionOwnedDrift::test_close_skip_sentinel_matches_close_framing",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestVerifyCompletionOwnedDrift::test_contract_violation_status_marked_partial",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestVerifyCompletionOwnedDrift::test_missing_sentinel_marks_drift",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestVerifyCompletionOwnedDrift::test_verify_completion_camera_direction_hash_drift",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestVerifyCompletionOwnedDrift::test_verify_completion_owned_hash_drift",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestVerifyCompletionOwnedDrift::test_verify_completion_t2i_prompt_hash_drift",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestVerifyCompletionOwnedDrift::test_verify_completion_validator_type_drift",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestVerifyCompletionOwnedDrift::test_verify_uses_framing_scale_enum_helper",
  "tests/unit/test_g3_2_close_skip_sentinel_drift.py::TestVerifyCompletionOwnedDrift::test_verify_uses_module_level_close_framing_regex",
  "tests/unit/test_g3_2_judge_step_extension.py::test_judge_category_is_analysis_sub",
  "tests/unit/test_g3_2_judge_step_extension.py::test_judge_default_model_is_gpt_mini",
  "tests/unit/test_g3_2_judge_step_extension.py::test_judge_default_model_is_gpt_sol",
  "tests/unit/test_g3_2_judge_step_extension.py::test_judge_label_is_korean",
  "tests/unit/test_g3_2_judge_step_extension.py::test_judge_step_in_extensions",
  "tests/unit/test_g3_2_judge_step_extension.py::test_judge_step_in_pipeline_steps_view",
  "tests/unit/test_g3_2_judge_step_extension.py::test_judge_step_resolves_to_gpt_mini",
  "tests/unit/test_g3_2_judge_step_extension.py::test_judge_step_resolves_to_gpt_sol",
  "tests/unit/test_g3_2_manifest_dag.py::test_background_prompt_manifest_schema_version_matches_step",
  "tests/unit/test_g3_2_manifest_dag.py::test_background_prompt_schema_version_2",
  "tests/unit/test_g3_2_manifest_dag.py::test_dag_background_prompt_strictly_before_scene_detail",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_allow_partial_downstream_false",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_depends_on_background_prompt",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_order_relocated_to_21_70",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_preserves_existing_depends",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_schema_version_10",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_schema_version_11",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_schema_version_12",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_schema_version_13",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_schema_version_6",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_schema_version_7",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_schema_version_8",
  "tests/unit/test_g3_2_manifest_dag.py::test_scene_detail_schema_version_9",
  "tests/unit/test_g3_2_manifest_dag.py::test_shot_dependency_t2i_order_relocated_to_21_71",
  "tests/unit/test_g3_2_manifest_dag.py::test_t2i_review_order_relocated_to_21_72",
  "tests/unit/test_g3_2_owned_consumer_propagation.py::test_normalize_scene_detail_result_deep_copy_round_trip_preserves",
  "tests/unit/test_g3_2_owned_consumer_propagation.py::test_normalize_scene_detail_result_preserves_owned_validation",
  "tests/unit/test_g3_2_owned_consumer_propagation.py::test_scene_checkpoint_loaders_preserves_owned_validation_source",
  "tests/unit/test_g3_2_owned_consumer_propagation.py::test_scene_still_normalizer_preserves_owned_validation_source",
  "tests/unit/test_g3_2_owned_consumer_propagation.py::test_t2i_review_preserves_owned_validation_source",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_background_mode_off_no_constraints_reference",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_background_ref_attached_camera_only_no_owned_constraints",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_background_ref_attached_neither_owned_nor_camera_fallback",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_background_ref_attached_owned_only_no_camera_constraints",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_bg_ref_attached_constraints_cover_rule_a",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_bg_ref_attached_constraints_cover_rule_c",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_close_framing_card_mode_forbids_reference_wording",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_close_framing_card_mode_no_forbidden_wording_enumeration",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_non_close_owned_list_in_card_only",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_owned_objects_english_canonical_only",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_skipped_close_framing_constraints_cover_rule_a_four_forms",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_skipped_close_framing_constraints_cover_rule_e_six_patterns",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_skipped_close_framing_constraints_no_rule_a_closed_list",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_skipped_close_framing_constraints_no_rule_e_closed_list",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_skipped_close_framing_no_camera_reference",
  "tests/unit/test_g4_2_background_binding_lift.py::TestBackgroundBindingConstraints::test_skipped_close_framing_no_owned_objects",
  "tests/unit/test_g4_2_background_binding_lift.py::TestCardHash::test_card_hash_drifts_on_camera_change",
  "tests/unit/test_g4_2_background_binding_lift.py::TestCardHash::test_card_hash_drifts_on_constraints_change",
  "tests/unit/test_g4_2_background_binding_lift.py::TestCardHash::test_card_hash_drifts_on_owned_change",
  "tests/unit/test_g4_2_background_binding_lift.py::TestCardHash::test_card_hash_stable_on_constraints_reorder",
  "tests/unit/test_g4_2_background_binding_lift.py::TestCardHash::test_card_hash_stable_on_owned_objects_reorder",
  "tests/unit/test_g4_2_background_binding_lift.py::TestCardHash::test_card_hash_stable_when_card_metadata_added_or_removed",
  "tests/unit/test_g4_2_background_binding_lift.py::TestCardMetadata::test_card_hash_stable_across_lift_status_change",
  "tests/unit/test_g4_2_background_binding_lift.py::TestCardMetadata::test_card_metadata_excluded_from_hash",
  "tests/unit/test_g4_2_background_binding_lift.py::TestCardMetadata::test_lift_status_in_card_metadata",
  "tests/unit/test_g4_2_background_binding_lift.py::TestCardMetadata::test_rule_source_in_card_metadata",
  "tests/unit/test_g4_2_background_binding_lift.py::TestNotApplicable::test_not_applicable_card_metadata_lift_status",
  "tests/unit/test_g4_2_background_binding_lift.py::TestNotApplicable::test_not_applicable_constraints_no_reference_language",
  "tests/unit/test_g4_2_background_binding_lift.py::TestNotApplicable::test_not_applicable_no_bg_id",
  "tests/unit/test_g4_3_id_policy_lift.py::TestAssertIdPolicyShape::test_assert_id_policy_shape_validates_body_part_focus_rule",
  "tests/unit/test_g4_3_id_policy_lift.py::TestAssertIdPolicyShape::test_assert_id_policy_shape_validates_close_framing_face_phrasing",
  "tests/unit/test_g4_3_id_policy_lift.py::TestAssertIdPolicyShape::test_assert_id_policy_shape_validates_demographic_components_keys",
  "tests/unit/test_g4_3_id_policy_lift.py::TestAssertIdPolicyShape::test_assert_id_policy_shape_validates_demographic_descriptor_policy",
  "tests/unit/test_g4_3_id_policy_lift.py::TestAssertIdPolicyShape::test_assert_id_policy_shape_validates_face_identifiability_rule",
  "tests/unit/test_g4_3_id_policy_lift.py::TestAssertIdPolicyShape::test_assert_id_policy_shape_validates_reproduction_surface_rule",
  "tests/unit/test_g4_3_id_policy_lift.py::TestBodyPartFocusRule::test_id_policy_body_part_focus_applies_to_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestBodyPartFocusRule::test_id_policy_body_part_focus_common_noun_examples_len",
  "tests/unit/test_g4_3_id_policy_lift.py::TestBodyPartFocusRule::test_id_policy_body_part_focus_trigger_phrases_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestBodyPartFocusRule::test_id_policy_has_body_part_focus_rule",
  "tests/unit/test_g4_3_id_policy_lift.py::TestCardMetadataG4_3::test_card_hash_drifts_on_id_policy_constraint_change",
  "tests/unit/test_g4_3_id_policy_lift.py::TestCardMetadataG4_3::test_card_hash_invariant_to_card_metadata_lift_status_dynamic_keys",
  "tests/unit/test_g4_3_id_policy_lift.py::TestCardMetadataG4_3::test_card_metadata_excluded_from_hash_after_g4_3_keys_added",
  "tests/unit/test_g4_3_id_policy_lift.py::TestCardMetadataG4_3::test_card_metadata_lift_status_includes_g4_3_keys",
  "tests/unit/test_g4_3_id_policy_lift.py::TestCardMetadataG4_3::test_card_metadata_rule_source_includes_g4_3_keys",
  "tests/unit/test_g4_3_id_policy_lift.py::TestCloseFramingFacePhrasing::test_id_policy_close_framing_face_forbidden_phrases_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestCloseFramingFacePhrasing::test_id_policy_close_framing_face_rationale_summary_substring",
  "tests/unit/test_g4_3_id_policy_lift.py::TestCloseFramingFacePhrasing::test_id_policy_close_framing_face_recommended_phrasings_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestCloseFramingFacePhrasing::test_id_policy_has_close_framing_face_phrasing",
  "tests/unit/test_g4_3_id_policy_lift.py::TestComputeIdPolicySnapshotHash::test_compute_id_policy_snapshot_hash_card_missing_id_policy_raises",
  "tests/unit/test_g4_3_id_policy_lift.py::TestComputeIdPolicySnapshotHash::test_compute_id_policy_snapshot_hash_deterministic",
  "tests/unit/test_g4_3_id_policy_lift.py::TestComputeIdPolicySnapshotHash::test_compute_id_policy_snapshot_hash_drifts_on_id_policy_change",
  "tests/unit/test_g4_3_id_policy_lift.py::TestConstraintsList::test_id_policy_constraints_content_selectors",
  "tests/unit/test_g4_3_id_policy_lift.py::TestConstraintsList::test_id_policy_constraints_grew_to_five_base",
  "tests/unit/test_g4_3_id_policy_lift.py::TestConstraintsList::test_id_policy_constraints_grew_to_six_base",
  "tests/unit/test_g4_3_id_policy_lift.py::TestConstraintsList::test_id_policy_constraints_string_3_body_part_focus_trigger",
  "tests/unit/test_g4_3_id_policy_lift.py::TestDemographicDescriptorPolicy::test_id_policy_demographic_components_age_band_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestDemographicDescriptorPolicy::test_id_policy_demographic_components_ethnicity_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestDemographicDescriptorPolicy::test_id_policy_demographic_components_gender_and_role_hint_len",
  "tests/unit/test_g4_3_id_policy_lift.py::TestDemographicDescriptorPolicy::test_id_policy_demographic_format_templates_substrings",
  "tests/unit/test_g4_3_id_policy_lift.py::TestDemographicDescriptorPolicy::test_id_policy_has_demographic_descriptor_policy",
  "tests/unit/test_g4_3_id_policy_lift.py::TestFaceIdentifiabilityRule::test_id_policy_face_identifiability_common_noun_required_when_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestFaceIdentifiabilityRule::test_id_policy_face_identifiability_id_use_summary_substring",
  "tests/unit/test_g4_3_id_policy_lift.py::TestFaceIdentifiabilityRule::test_id_policy_face_identifiability_present_with_default_perception",
  "tests/unit/test_g4_3_id_policy_lift.py::TestFaceIdentifiabilityRule::test_id_policy_face_identifiability_use_entity_id_when_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestFaceIdentifiabilityRule::test_id_policy_has_face_identifiability_rule",
  "tests/unit/test_g4_3_id_policy_lift.py::TestInputValidation::test_id_policy_outlook_pairs_none_raises",
  "tests/unit/test_g4_3_id_policy_lift.py::TestInputValidation::test_id_policy_visible_entities_empty_list_valid_with_5_subfields",
  "tests/unit/test_g4_3_id_policy_lift.py::TestInputValidation::test_id_policy_visible_entities_empty_list_valid_with_subfields",
  "tests/unit/test_g4_3_id_policy_lift.py::TestInputValidation::test_id_policy_visible_entities_none_raises",
  "tests/unit/test_g4_3_id_policy_lift.py::TestModuleConstants::test_id_age_bands_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestModuleConstants::test_id_body_part_focus_applies_to_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestModuleConstants::test_id_body_part_triggers_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestModuleConstants::test_id_close_face_forbidden_phrases_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestModuleConstants::test_id_close_face_recommended_phrasings_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestModuleConstants::test_id_ethnicity_components_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestModuleConstants::test_id_reproduction_surfaces_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestModuleConstants::test_reproduction_surface_classes_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestPerceptionModeBranch::test_id_policy_perception_mode_reflection_adds_constraint",
  "tests/unit/test_g4_3_id_policy_lift.py::TestPerceptionModeBranch::test_id_policy_perception_mode_reflection_does_not_contradict",
  "tests/unit/test_g4_3_id_policy_lift.py::TestReproductionSurfaceRule::test_id_policy_has_reproduction_surface_rule",
  "tests/unit/test_g4_3_id_policy_lift.py::TestReproductionSurfaceRule::test_id_policy_reproduction_surface_applies_false_on_empty_key_bg",
  "tests/unit/test_g4_3_id_policy_lift.py::TestReproductionSurfaceRule::test_id_policy_reproduction_surface_applies_false_on_non_reproduction",
  "tests/unit/test_g4_3_id_policy_lift.py::TestReproductionSurfaceRule::test_id_policy_reproduction_surface_applies_true_on_content_surface",
  "tests/unit/test_g4_3_id_policy_lift.py::TestReproductionSurfaceRule::test_id_policy_reproduction_surface_applies_true_on_reflective_surface",
  "tests/unit/test_g4_3_id_policy_lift.py::TestReproductionSurfaceRule::test_id_policy_reproduction_surface_list_exact",
  "tests/unit/test_g4_3_id_policy_lift.py::TestReproductionSurfaceRule::test_id_policy_reproduction_surface_rationale_summary_substring",
  "tests/unit/test_g4_4_continuity_lift.py::test_assert_continuity_shape_validates_cross_shot_id_substitution_rule_shape",
  "tests/unit/test_g4_4_continuity_lift.py::test_assert_continuity_shape_validates_ref_usage_constraints_shape",
  "tests/unit/test_g4_4_continuity_lift.py::test_assert_continuity_shape_validates_view_consistency_required_keys",
  "tests/unit/test_g4_4_continuity_lift.py::test_assert_continuity_shape_validates_view_consistency_shape",
  "tests/unit/test_g4_4_continuity_lift.py::test_assert_ref_usage_constraints_shape_atmosphere_reference_required_keys",
  "tests/unit/test_g4_4_continuity_lift.py::test_assert_ref_usage_constraints_shape_exact_background_required_keys",
  "tests/unit/test_g4_4_continuity_lift.py::test_assert_ref_usage_constraints_shape_invalid_sub_key_raises",
  "tests/unit/test_g4_4_continuity_lift.py::test_assert_ref_usage_constraints_shape_zoom_in_detail_required_keys",
  "tests/unit/test_g4_4_continuity_lift.py::test_card_metadata_excluded_from_hash_after_g4_4_keys_added",
  "tests/unit/test_g4_4_continuity_lift.py::test_card_metadata_lift_status_includes_continuity_keys",
  "tests/unit/test_g4_4_continuity_lift.py::test_card_metadata_rule_source_includes_continuity_keys",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_4_subfields_independent_of_input_lists",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_constraints_grew_to_seven_strings",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_constraints_string_1_fixed_binding_carry",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_constraints_string_2_cross_shot_substitution_inline",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_constraints_string_3_zoom_in_detail_inline",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_constraints_string_4_exact_background_inline",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_constraints_string_5_atmosphere_reference_inline",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_constraints_string_6_single_camera_inline",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_constraints_string_7_prop_orientation_inline",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_cross_card_pair_substrings_match",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_cross_shot_id_substitution_rule_no_repeat_after_pose_substring",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_cross_shot_id_substitution_rule_required_keys_superset",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_cross_shot_id_substitution_rule_substitution_substring",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_fixed_elements_empty_list_valid_with_static_subfields",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_fixed_elements_none_raises",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_forward_zoom_targets_none_raises",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_has_cross_shot_id_substitution_rule",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_has_ref_usage_constraints",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_has_view_consistency",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_previous_shot_refs_none_raises",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_ref_usage_atmosphere_reference_forbidden_imports_count",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_ref_usage_atmosphere_reference_required_keys_superset",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_ref_usage_exact_background_permitted_additions_count",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_ref_usage_exact_background_required_keys_superset",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_ref_usage_zoom_in_detail_body_part_cross_ref_string_present",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_ref_usage_zoom_in_detail_forbidden_additions_count",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_ref_usage_zoom_in_detail_required_keys_superset",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_ref_usage_zoom_in_detail_required_phrasings_count",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_view_consistency_focus_on_is_focus_area_not_view_switch_string_present",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_view_consistency_framing_scope_options_exact",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_view_consistency_id_policy_cross_ref_string_present",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_view_consistency_mixing_forbidden_is_bool_true",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_view_consistency_prop_orientation_rule_string_present",
  "tests/unit/test_g4_4_continuity_lift.py::test_continuity_view_consistency_required_keys_superset",
  "tests/unit/test_g4_4_continuity_lift.py::test_g4_4_view_mixing_canary_multi_ref_shot_filter",
  "tests/unit/test_g4_5a_spatial_lift.py::test_NOT_compute_spatial_consistency_snapshot_hash",
  "tests/unit/test_g4_5a_spatial_lift.py::test_assert_card_shape_fails_when_spatial_consistency_missing",
  "tests/unit/test_g4_5a_spatial_lift.py::test_assert_card_shape_passes_with_g4_5a_card",
  "tests/unit/test_g4_5a_spatial_lift.py::test_assert_primary_framing_rule_shape_validates_close_framing_rules",
  "tests/unit/test_g4_5a_spatial_lift.py::test_assert_primary_framing_rule_shape_validates_cross_ref_strings",
  "tests/unit/test_g4_5a_spatial_lift.py::test_assert_primary_framing_rule_shape_validates_framing_scale_keywords",
  "tests/unit/test_g4_5a_spatial_lift.py::test_assert_primary_framing_rule_shape_validates_wide_medium_rules",
  "tests/unit/test_g4_5a_spatial_lift.py::test_assert_spatial_consistency_shape_fails_missing_camera_frame_rule",
  "tests/unit/test_g4_5a_spatial_lift.py::test_assert_spatial_consistency_shape_fails_missing_fg_bg_anchor_rule",
  "tests/unit/test_g4_5a_spatial_lift.py::test_assert_spatial_consistency_shape_fails_missing_primary_framing_rule",
  "tests/unit/test_g4_5a_spatial_lift.py::test_assert_spatial_consistency_shape_passes_full",
  "tests/unit/test_g4_5a_spatial_lift.py::test_camera_frame_rule_core_principles_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_camera_frame_rule_core_principles_full_body_substring",
  "tests/unit/test_g4_5a_spatial_lift.py::test_camera_frame_rule_core_principles_hip_height_substring",
  "tests/unit/test_g4_5a_spatial_lift.py::test_camera_frame_rule_core_principles_low_camera_substring",
  "tests/unit/test_g4_5a_spatial_lift.py::test_camera_frame_rule_core_principles_overhead_substring",
  "tests/unit/test_g4_5a_spatial_lift.py::test_camera_frame_rule_forbidden_combinations_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_camera_frame_rule_no_cross_card_ref",
  "tests/unit/test_g4_5a_spatial_lift.py::test_camera_frame_rule_recommended_phrasings_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_camera_frame_rule_required_keys_superset",
  "tests/unit/test_g4_5a_spatial_lift.py::test_camera_frame_rule_self_check_steps_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_canary_close_framing_filter_uses_production_close_framing_re",
  "tests/unit/test_g4_5a_spatial_lift.py::test_card_hash_drifts_on_spatial_consistency_change",
  "tests/unit/test_g4_5a_spatial_lift.py::test_card_hash_stable_on_spatial_lift_status_only_change",
  "tests/unit/test_g4_5a_spatial_lift.py::test_card_metadata_excluded_from_hash_after_g4_5a_keys_added",
  "tests/unit/test_g4_5a_spatial_lift.py::test_card_metadata_lift_status_includes_spatial_keys",
  "tests/unit/test_g4_5a_spatial_lift.py::test_card_metadata_rule_source_includes_spatial_keys",
  "tests/unit/test_g4_5a_spatial_lift.py::test_compute_render_strategy_snapshot_hash_changes_on_spatial_change",
  "tests/unit/test_g4_5a_spatial_lift.py::test_compute_render_strategy_snapshot_hash_deterministic",
  "tests/unit/test_g4_5a_spatial_lift.py::test_compute_render_strategy_snapshot_hash_returns_16_hex",
  "tests/unit/test_g4_5a_spatial_lift.py::test_constraints_grew_to_five_strings",
  "tests/unit/test_g4_5a_spatial_lift.py::test_constraints_string_1_still_moment_carry",
  "tests/unit/test_g4_5a_spatial_lift.py::test_constraints_string_2_view_mix_carry",
  "tests/unit/test_g4_5a_spatial_lift.py::test_constraints_string_3_camera_frame_inline",
  "tests/unit/test_g4_5a_spatial_lift.py::test_constraints_string_4_fg_bg_anchor_inline",
  "tests/unit/test_g4_5a_spatial_lift.py::test_constraints_string_5_framing_scale_inline",
  "tests/unit/test_g4_5a_spatial_lift.py::test_cross_card_pair_substrings_match",
  "tests/unit/test_g4_5a_spatial_lift.py::test_envelope_top_level_5_fields_unchanged",
  "tests/unit/test_g4_5a_spatial_lift.py::test_fg_bg_shared_anchor_rule_forbidden_phrasings_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_fg_bg_shared_anchor_rule_recommended_keywords_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_fg_bg_shared_anchor_rule_required_keys_superset",
  "tests/unit/test_g4_5a_spatial_lift.py::test_fg_bg_shared_anchor_rule_self_check_steps_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_close_framing_forbidden_combinations_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_close_framing_other_entities_options_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_close_framing_rules_body_part_focus_cross_ref_paired",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_close_framing_rules_required_subkeys",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_framing_scale_keywords_close_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_framing_scale_keywords_required_subkeys",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_framing_scale_keywords_wide_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_required_keys_superset",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_self_check_steps_count",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_wide_medium_rules_body_part_focus_cross_ref_paired",
  "tests/unit/test_g4_5a_spatial_lift.py::test_primary_framing_rule_wide_medium_rules_required_subkeys",
  "tests/unit/test_g4_5a_spatial_lift.py::test_render_strategy_8_base_keys_preserved",
  "tests/unit/test_g4_5a_spatial_lift.py::test_render_strategy_camera_direction_empty_string_valid_with_static_subfields",
  "tests/unit/test_g4_5a_spatial_lift.py::test_render_strategy_camera_direction_none_raises",
  "tests/unit/test_g4_5a_spatial_lift.py::test_render_strategy_has_spatial_consistency",
  "tests/unit/test_g4_5a_spatial_lift.py::test_render_strategy_spatial_consistency_is_sibling",
  "tests/unit/test_g4_5a_spatial_lift.py::test_render_strategy_view_consistency_mixing_forbidden_is_bool_true",
  "tests/unit/test_g4_5a_spatial_lift.py::test_spatial_consistency_4_subfields_deep_equality_input_independent",
  "tests/unit/test_g4_5a_spatial_lift.py::test_spatial_consistency_4_subfields_independent_of_input",
  "tests/unit/test_g4_5a_spatial_lift.py::test_spatial_consistency_required_keys_superset",
  "tests/unit/test_gate_reroll.py::test_a_bought_reroll_that_wins_becomes_the_final",
  "tests/unit/test_gate_reroll.py::test_a_broken_rejudge_wiring_stops_before_paying",
  "tests/unit/test_gate_reroll.py::test_a_cap_refusal_is_not_a_dead_end",
  "tests/unit/test_gate_reroll.py::test_a_clean_shot_never_buys_a_reroll",
  "tests/unit/test_gate_reroll.py::test_a_failed_sel_swap_does_not_confirm_the_record",
  "tests/unit/test_gate_reroll.py::test_a_missing_candidate_file_keeps_the_decision",
  "tests/unit/test_gate_reroll.py::test_a_rejudge_failure_resume_does_not_rebuy_the_initial_judge",
  "tests/unit/test_gate_reroll.py::test_a_rejudge_only_resume_buys_no_new_image",
  "tests/unit/test_gate_reroll.py::test_a_reroll_that_loses_still_records_the_purchase",
  "tests/unit/test_gate_reroll.py::test_a_reroll_without_still_texts_is_not_bought",
  "tests/unit/test_gate_reroll.py::test_a_run_level_cap_stops_the_purchase",
  "tests/unit/test_gate_reroll.py::test_a_settled_failure_is_not_re_judged_every_visit",
  "tests/unit/test_gate_reroll.py::test_admissible_comes_before_score",
  "tests/unit/test_gate_reroll.py::test_an_old_initial_candidate_does_not_make_this_visit_the_author",
  "tests/unit/test_gate_reroll.py::test_an_unchecked_candidate_is_not_a_disqualification",
  "tests/unit/test_gate_reroll.py::test_an_unknown_send_does_not_get_a_second_purchase",
  "tests/unit/test_gate_reroll.py::test_no_admissible_after_the_reroll_stays_unresolved",
  "tests/unit/test_gate_reroll.py::test_nothing_admissible_returns_none",
  "tests/unit/test_gate_reroll.py::test_one_attempt_per_input_and_policy",
  "tests/unit/test_gate_reroll.py::test_the_attempt_is_recorded_before_the_image_is_sent",
  "tests/unit/test_gate_reroll.py::test_the_author_is_whoever_made_the_final_bytes",
  "tests/unit/test_gate_reroll.py::test_the_finished_reroll_is_not_re_judged_by_the_cached_path",
  "tests/unit/test_gate_reroll.py::test_the_lever_off_keeps_stage_one",
  "tests/unit/test_gate_reroll.py::test_the_master_on_combination_is_refused_before_paying",
  "tests/unit/test_gate_reroll.py::test_the_prescription_is_the_judges_own_words",
  "tests/unit/test_gate_reroll.py::test_the_rejudge_wiring_is_checked_before_paying",
  "tests/unit/test_gate_reroll.py::test_the_reroll_prompt_is_a_still_prompt_not_a_building_one",
  "tests/unit/test_gate_reroll.py::test_the_second_cached_branch_also_decides_the_author",
  "tests/unit/test_gate_retroactive_apply.py::test_a_cached_clean_record_gets_its_verdict_for_free",
  "tests/unit/test_gate_retroactive_apply.py::test_a_changed_judgement_is_re_evaluated",
  "tests/unit/test_gate_retroactive_apply.py::test_a_dependency_hold_is_left_alone",
  "tests/unit/test_gate_retroactive_apply.py::test_a_fixed_record_is_left_unverified",
  "tests/unit/test_gate_retroactive_apply.py::test_a_missing_candidate_file_leaves_everything_alone",
  "tests/unit/test_gate_retroactive_apply.py::test_a_record_without_readings_is_left_unverified",
  "tests/unit/test_gate_retroactive_apply.py::test_a_reselect_proposes_but_does_not_confirm",
  "tests/unit/test_gate_retroactive_apply.py::test_a_reselect_returns_the_new_label",
  "tests/unit/test_gate_retroactive_apply.py::test_a_second_visit_rewrites_nothing",
  "tests/unit/test_gate_retroactive_apply.py::test_a_third_visit_writes_nothing_more",
  "tests/unit/test_gate_retroactive_apply.py::test_the_candidate_coming_back_lets_the_free_reselect_happen",
  "tests/unit/test_gate_retroactive_apply.py::test_the_fingerprint_survives_turning_the_gate_on",
  "tests/unit/test_gate_retroactive_apply.py::test_the_non_target_branch_is_marked_explicitly",
  "tests/unit/test_gate_retroactive_apply.py::test_turning_the_gate_on_costs_no_generation",
  "tests/unit/test_gate_verify_alignment.py::test_a_broken_records_file_does_not_invent_failures",
  "tests/unit/test_gate_verify_alignment.py::test_a_broken_records_file_is_unverifiable_when_the_gate_is_on",
  "tests/unit/test_gate_verify_alignment.py::test_a_held_shot_without_a_primary_is_not_subtracted_twice",
  "tests/unit/test_gate_verify_alignment.py::test_a_missing_records_file_does_not_invent_failures",
  "tests/unit/test_gate_verify_alignment.py::test_a_missing_records_file_is_unverifiable_when_the_gate_is_on",
  "tests/unit/test_gate_verify_alignment.py::test_a_partial_hold_is_not_reported_as_fully_complete",
  "tests/unit/test_gate_verify_alignment.py::test_a_primary_row_without_a_file_is_not_complete",
  "tests/unit/test_gate_verify_alignment.py::test_a_shot_missing_from_the_records_is_not_complete",
  "tests/unit/test_gate_verify_alignment.py::test_a_shot_with_no_verdict_is_not_complete",
  "tests/unit/test_gate_verify_alignment.py::test_an_unjudged_shot_with_an_old_primary_is_not_counted",
  "tests/unit/test_gate_verify_alignment.py::test_an_unreadable_state_counts_nothing_as_complete",
  "tests/unit/test_gate_verify_alignment.py::test_an_unresolved_shot_is_not_counted_complete",
  "tests/unit/test_gate_verify_alignment.py::test_child_records_are_ignored",
  "tests/unit/test_gate_verify_alignment.py::test_clean_and_not_applicable_still_count[clean]",
  "tests/unit/test_gate_verify_alignment.py::test_clean_and_not_applicable_still_count[not_applicable]",
  "tests/unit/test_gate_verify_alignment.py::test_incomplete_is_also_not_complete",
  "tests/unit/test_gate_verify_alignment.py::test_not_applicable_is_not_unjudged",
  "tests/unit/test_gate_verify_alignment.py::test_nothing_to_count_is_not_unverifiable",
  "tests/unit/test_gate_verify_alignment.py::test_the_counter_actually_subtracts_them",
  "tests/unit/test_gate_verify_alignment.py::test_the_counter_and_verify_share_one_computation",
  "tests/unit/test_gate_verify_alignment.py::test_the_gate_off_counts_are_untouched",
  "tests/unit/test_gate_verify_alignment.py::test_the_gate_off_run_ignores_missing_verdicts",
  "tests/unit/test_gate_verify_alignment.py::test_the_gate_off_run_is_untouched",
  "tests/unit/test_gate_verify_alignment.py::test_the_gate_off_run_never_becomes_unverifiable[corrupt]",
  "tests/unit/test_gate_verify_alignment.py::test_the_gate_off_run_never_becomes_unverifiable[unlink]",
  "tests/unit/test_gaze_direction_helper.py::TestGazeDirectionConstants::test_kinds_tuple",
  "tests/unit/test_gaze_direction_helper.py::TestGazeDirectionConstants::test_target_required_kinds",
  "tests/unit/test_gaze_direction_helper.py::TestIsTargetRequired::test_is_target_required[camera-False]",
  "tests/unit/test_gaze_direction_helper.py::TestIsTargetRequired::test_is_target_required[closed_eyes-False]",
  "tests/unit/test_gaze_direction_helper.py::TestIsTargetRequired::test_is_target_required[down-False]",
  "tests/unit/test_gaze_direction_helper.py::TestIsTargetRequired::test_is_target_required[looks_at_character-True]",
  "tests/unit/test_gaze_direction_helper.py::TestIsTargetRequired::test_is_target_required[looks_at_object-True]",
  "tests/unit/test_gaze_direction_helper.py::TestIsTargetRequired::test_is_target_required[off_screen-False]",
  "tests/unit/test_gaze_direction_helper.py::TestResolveVisibleCharacterTarget::test_invalid_shape_returns_none",
  "tests/unit/test_gaze_direction_helper.py::TestResolveVisibleCharacterTarget::test_missing_name_returns_none",
  "tests/unit/test_gaze_direction_helper.py::TestResolveVisibleCharacterTarget::test_not_in_visible_returns_none",
  "tests/unit/test_gaze_direction_helper.py::TestResolveVisibleCharacterTarget::test_valid_target_returns_tuple",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_invalid_kind_fails",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_invalid_shape_for_character_fails[C1]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_invalid_shape_for_character_fails[O01]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_invalid_shape_for_character_fails[\\uac15\\ubbfc\\uc900]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_invalid_shape_for_character_fails[c01]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_invalid_shape_for_character_fails[phone]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_invalid_shape_for_object_fails[C01]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_invalid_shape_for_object_fails[O01]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_invalid_shape_for_object_fails[p01]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_invalid_shape_for_object_fails[phone]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_non_target_with_id_fails",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_non_target_with_id_fails[C01]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_non_target_with_id_fails[]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_target_required_missing_fails",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_valid_pairing_pass[camera-None]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_valid_pairing_pass[distant-None]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_valid_pairing_pass[looks_at_character-C01]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_valid_pairing_pass[looks_at_character-C123]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_valid_pairing_pass[looks_at_object-B12]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_valid_pairing_pass[looks_at_object-P01]",
  "tests/unit/test_gaze_direction_helper.py::TestValidatePairing::test_valid_pairing_pass[off_screen-None]",
  "tests/unit/test_gemini_client_trace_step.py::test_ctx_step_wins",
  "tests/unit/test_gemini_client_trace_step.py::test_empty_ctx_resolves_from_capture_scope",
  "tests/unit/test_gemini_client_trace_step.py::test_log_ctx_fills_step_name_from_scope",
  "tests/unit/test_gemini_client_trace_step.py::test_log_ctx_leaves_step_name_empty_without_scope",
  "tests/unit/test_gemini_client_trace_step.py::test_no_scope_falls_back_to_image_gen",
  "tests/unit/test_gemini_enum_schema_boundary.py::test_gemini_keeps_the_string_enum",
  "tests/unit/test_gemini_enum_schema_boundary.py::test_gemini_loses_the_integer_enum",
  "tests/unit/test_gemini_enum_schema_boundary.py::test_the_callers_schema_is_not_mutated",
  "tests/unit/test_gemini_enum_schema_boundary.py::test_the_known_injection_sites_are_exactly_these_three",
  "tests/unit/test_gemini_enum_schema_boundary.py::test_the_openai_path_is_untouched",
  "tests/unit/test_gemini_enum_schema_boundary.py::test_the_step_still_injects_the_integer_enum",
  "tests/unit/test_gemini_finish_refusal_is_moderation.py::test_finish_reason_only_refusal_raises_moderation_error",
  "tests/unit/test_gemini_finish_refusal_is_moderation.py::test_ladder_moderation_check_accepts_the_new_error",
  "tests/unit/test_gemini_finish_refusal_is_moderation.py::test_non_refusal_empty_response_stays_a_plain_error",
  "tests/unit/test_gemini_finish_refusal_is_moderation.py::test_other_refusal_reasons_are_moderation_too[BLOCKLIST]",
  "tests/unit/test_gemini_finish_refusal_is_moderation.py::test_other_refusal_reasons_are_moderation_too[IMAGE_PROHIBITED_CONTENT]",
  "tests/unit/test_gemini_finish_refusal_is_moderation.py::test_other_refusal_reasons_are_moderation_too[IMAGE_SAFETY]",
  "tests/unit/test_gemini_finish_refusal_is_moderation.py::test_other_refusal_reasons_are_moderation_too[RECITATION]",
  "tests/unit/test_gemini_finish_refusal_is_moderation.py::test_other_refusal_reasons_are_moderation_too[SAFETY]",
  "tests/unit/test_gemini_finish_refusal_is_moderation.py::test_other_refusal_reasons_are_moderation_too[SPII]",
  "tests/unit/test_geometry_sol_replaced.py::test_a_bbox_without_a_model_field_is_stale",
  "tests/unit/test_geometry_sol_replaced.py::test_a_mid_flight_bbox_file_does_not_make_it_look_fresh",
  "tests/unit/test_geometry_sol_replaced.py::test_a_non_gemini_model_gets_no_key_injected",
  "tests/unit/test_geometry_sol_replaced.py::test_a_non_zoom_fallback_primary_is_not_stale",
  "tests/unit/test_geometry_sol_replaced.py::test_a_target_made_by_another_model_is_stale",
  "tests/unit/test_geometry_sol_replaced.py::test_a_target_that_was_never_made_is_not_stale",
  "tests/unit/test_geometry_sol_replaced.py::test_a_zoom_primary_without_a_bbox_model_is_stale",
  "tests/unit/test_geometry_sol_replaced.py::test_an_empty_key_pool_does_not_send_a_blank_key",
  "tests/unit/test_geometry_sol_replaced.py::test_another_projects_primary_is_not_read",
  "tests/unit/test_geometry_sol_replaced.py::test_no_sol_is_left_in_the_two_places_we_fixed",
  "tests/unit/test_geometry_sol_replaced.py::test_no_sol_model_string_is_left_in_the_two_places_we_fixed",
  "tests/unit/test_geometry_sol_replaced.py::test_the_assembly_and_the_fingerprint_read_the_same_place",
  "tests/unit/test_geometry_sol_replaced.py::test_the_bbox_call_carries_a_key_for_gemini",
  "tests/unit/test_geometry_sol_replaced.py::test_the_bbox_diagnostics_record_which_model_answered",
  "tests/unit/test_geometry_sol_replaced.py::test_the_bbox_model_is_no_longer_sol",
  "tests/unit/test_geometry_sol_replaced.py::test_the_identity_is_effective_not_the_default",
  "tests/unit/test_geometry_sol_replaced.py::test_the_lane_geometry_judge_has_its_own_fingerprint_slot",
  "tests/unit/test_geometry_sol_replaced.py::test_the_lane_geometry_judge_is_no_longer_sol",
  "tests/unit/test_geometry_sol_replaced.py::test_the_prefix_matches_what_the_router_registers",
  "tests/unit/test_geometry_sol_replaced.py::test_the_resume_loop_actually_drops_the_stale_ones",
  "tests/unit/test_geometry_sol_replaced.py::test_the_substring_trap_is_still_there_to_prove_the_ast_matters",
  "tests/unit/test_geometry_sol_replaced.py::test_the_zoom_bbox_model_is_in_the_outer_fingerprint",
  "tests/unit/test_geometry_sol_replaced.py::test_the_zoom_slot_is_absent_when_the_flag_is_off",
  "tests/unit/test_geometry_sol_replaced.py::test_the_zoom_stamp_is_absent_when_zoom_is_off",
  "tests/unit/test_geometry_sol_replaced.py::test_the_zoom_stamp_survives_the_recipe_off_early_return",
  "tests/unit/test_get_step_run_shape.py::TestGetStepRunDictShape::test_dict_values_match_row_columns",
  "tests/unit/test_get_step_run_shape.py::TestGetStepRunDictShape::test_no_tuple_indexing_supported_on_result",
  "tests/unit/test_get_step_run_shape.py::TestGetStepRunDictShape::test_recovery_count_null_coalesced_to_zero",
  "tests/unit/test_get_step_run_shape.py::TestGetStepRunDictShape::test_returns_dict_with_all_required_keys",
  "tests/unit/test_get_step_run_shape.py::TestGetStepRunDictShape::test_returns_none_when_no_row",
  "tests/unit/test_gg46_judge.py::test_effective_prompt_used_fix_won_returns_repair_prompt",
  "tests/unit/test_gg46_judge.py::test_fix_stage_won_matrix",
  "tests/unit/test_gg46_judge.py::test_gg46_critique_both_observers_down_raises",
  "tests/unit/test_gg46_judge.py::test_gg46_critique_merges_both_observers_slot_order",
  "tests/unit/test_gg46_judge.py::test_gg46_critique_no_observations_skips_compose",
  "tests/unit/test_gg46_judge.py::test_gg46_critique_one_observer_down_survivor_and_record",
  "tests/unit/test_gg46_judge.py::test_gg46_critique_severity_rebinds_across_merged_index",
  "tests/unit/test_gg46_judge.py::test_gg46_equal_combined_selected_follows_sum_not_gemini_top",
  "tests/unit/test_gg46_judge.py::test_gg46_fix_rejudge_equal_sum_fix_wins",
  "tests/unit/test_gg46_judge.py::test_gg46_fix_rejudge_fix_loses_keeps_roll_provenance",
  "tests/unit/test_gg46_judge.py::test_gg46_pack_stems_copy_contract",
  "tests/unit/test_gg46_judge.py::test_gg46_pack_v11_and_existing_packs_untouched",
  "tests/unit/test_gg46_judge.py::test_gg46_pack_v12_and_existing_packs_untouched",
  "tests/unit/test_gg46_judge.py::test_gg46_select_policy_string_reflects_contract",
  "tests/unit/test_gg46_judge.py::test_judge_fn_gg46_dispatch_equal_route_and_sealed_gemini",
  "tests/unit/test_gg46_judge.py::test_judge_gq_default_priority_math_unchanged",
  "tests/unit/test_gg46_judge.py::test_judge_gq_equal_agree_adopts_first_slot_shape",
  "tests/unit/test_gg46_judge.py::test_judge_gq_equal_large_gap_combined_unchanged",
  "tests/unit/test_gg46_judge.py::test_judge_gq_equal_one_side_down_single_route",
  "tests/unit/test_gg46_judge.py::test_judge_gq_equal_small_gap_still_combined",
  "tests/unit/test_gg46_judge.py::test_resolve_blank_select_model_slots_fail_closed",
  "tests/unit/test_gg46_judge.py::test_resolve_gg46_blank_model_slots_fail_closed",
  "tests/unit/test_gg46_judge.py::test_resolve_gg46_conflicts_fail_closed[multiroll_gq_judge_enabled]",
  "tests/unit/test_gg46_judge.py::test_resolve_gg46_conflicts_fail_closed[multiroll_qk_judge_enabled]",
  "tests/unit/test_gg46_judge.py::test_resolve_gg46_off_is_byte_identical_legacy",
  "tests/unit/test_gg46_judge.py::test_resolve_gg46_on_without_openrouter_key_fails_closed",
  "tests/unit/test_gg46_judge.py::test_resolve_models_gg46_on_returns_gemini_plus_grok",
  "tests/unit/test_gg46_judge.py::test_resolve_models_select_pair_is_gemini_plus_sol",
  "tests/unit/test_gg46_judge.py::test_resolve_select_no_longer_requires_openrouter",
  "tests/unit/test_gg46_judge.py::test_resolve_select_without_openai_key_fails_closed",
  "tests/unit/test_gg46_judge.py::test_run_branch_select_fix_gen_default_reuses_roll_gen",
  "tests/unit/test_gg46_judge.py::test_run_branch_select_fix_gen_split_when_provided",
  "tests/unit/test_gg46_judge.py::test_winner_exact_tag_respects_rejudge_and_regen",
  "tests/unit/test_gpt25_still_backend.py::test_a_grok_only_setting_leaves_the_gpt_hash_alone",
  "tests/unit/test_gpt25_still_backend.py::test_a_missing_reference_file_is_not_silently_dropped",
  "tests/unit/test_gpt25_still_backend.py::test_an_empty_reference_is_not_silently_dropped",
  "tests/unit/test_gpt25_still_backend.py::test_an_empty_response_is_not_a_success",
  "tests/unit/test_gpt25_still_backend.py::test_an_unknown_aspect_falls_back_to_16_9_instead_of_dying",
  "tests/unit/test_gpt25_still_backend.py::test_an_unused_gemini_model_does_not_move_the_gpt_shot_fingerprint",
  "tests/unit/test_gpt25_still_backend.py::test_changing_the_16_9_size_moves_the_step_hash",
  "tests/unit/test_gpt25_still_backend.py::test_changing_the_gpt_model_moves_the_step_hash",
  "tests/unit/test_gpt25_still_backend.py::test_no_reference_means_generate_not_edit",
  "tests/unit/test_gpt25_still_backend.py::test_sixteen_by_nine_is_1536x864",
  "tests/unit/test_gpt25_still_backend.py::test_the_backend_switch_builds_that_client[gpt25-app.modules.llm.gpt_image_client-GptImageClient]",
  "tests/unit/test_gpt25_still_backend.py::test_the_backend_switch_builds_that_client[grok2-app.modules.llm.grok_image_client-GrokImageClient]",
  "tests/unit/test_gpt25_still_backend.py::test_the_backend_switch_builds_that_client[nb2-app.modules.llm.gemini_image_client-GeminiImageClient]",
  "tests/unit/test_gpt25_still_backend.py::test_the_backend_switch_picks_the_engine[gpt25-GptImageClient]",
  "tests/unit/test_gpt25_still_backend.py::test_the_backend_switch_picks_the_engine[grok2-GrokImageClient]",
  "tests/unit/test_gpt25_still_backend.py::test_the_backend_switch_picks_the_engine[nb2-GeminiImageClient]",
  "tests/unit/test_gpt25_still_backend.py::test_the_config_rejects_a_typo",
  "tests/unit/test_gpt25_still_backend.py::test_the_generation_model_fallback_does_not_say_gemini_for_gpt25",
  "tests/unit/test_gpt25_still_backend.py::test_the_moderation_ladder_goes_gpt_then_grok_then_seedream",
  "tests/unit/test_gpt25_still_backend.py::test_the_nb2_baseline_is_not_moved_by_the_gpt_model",
  "tests/unit/test_gpt25_still_backend.py::test_the_nb2_shot_fingerprint_is_unchanged",
  "tests/unit/test_gpt25_still_backend.py::test_the_old_gen_fn_table_uses_the_same_one_place",
  "tests/unit/test_gpt25_still_backend.py::test_the_reference_order_is_kept_and_labels_are_dropped",
  "tests/unit/test_gpt25_still_backend.py::test_the_shot_fingerprint_carries_the_gpt_model",
  "tests/unit/test_gpt25_still_backend.py::test_the_temp_reference_files_do_not_survive_the_call",
  "tests/unit/test_gpt25_still_backend.py::test_the_three_backends_do_not_share_a_hash",
  "tests/unit/test_gpt_image_only_2_5.py::test_no_older_gpt_image_name_is_left_in_app_code",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_lets_2_5_through[gpt-image-2.5-flare-2026-09-08]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_lets_2_5_through[gpt-image-2.5-flare]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_lets_2_5_through[gpt-image-2.5-sunburst-2026-09-08]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_lets_2_5_through[gpt-image-2.5-sunburst]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_refuses_every_older_model_before_calling[]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_refuses_every_older_model_before_calling[chatgpt-image-latest]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_refuses_every_older_model_before_calling[gpt-image-1-mini]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_refuses_every_older_model_before_calling[gpt-image-1.5]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_refuses_every_older_model_before_calling[gpt-image-1]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_refuses_every_older_model_before_calling[gpt-image-2-2026-04-21]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_refuses_every_older_model_before_calling[gpt-image-2.5]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_door_refuses_every_older_model_before_calling[gpt-image-2]",
  "tests/unit/test_gpt_image_only_2_5.py::test_the_setting_itself_is_2_5",
  "tests/unit/test_gq_dual_judge.py::test_gq_critique_composes_and_carries_observations",
  "tests/unit/test_gq_dual_judge.py::test_gq_critique_no_observation_skips_compose",
  "tests/unit/test_gq_dual_judge.py::test_gq_pack_stems_load_from_disk",
  "tests/unit/test_gq_dual_judge.py::test_judge_fn_dispatches_to_gq_when_qwen_present",
  "tests/unit/test_gq_dual_judge.py::test_judge_gq_agree_adopts_gemini",
  "tests/unit/test_gq_dual_judge.py::test_judge_gq_all_down_raises_with_cause",
  "tests/unit/test_gq_dual_judge.py::test_judge_gq_large_gap_goes_combined",
  "tests/unit/test_gq_dual_judge.py::test_judge_gq_one_side_down_uses_survivor",
  "tests/unit/test_gq_dual_judge.py::test_judge_gq_small_gap_gemini_priority",
  "tests/unit/test_gq_dual_judge.py::test_observe_schema_shape",
  "tests/unit/test_gq_dual_judge.py::test_q_gap_all_zero_scores_means_no_opposition",
  "tests/unit/test_gq_dual_judge.py::test_q_gap_normalized_by_top",
  "tests/unit/test_gq_dual_judge.py::test_resolve_models_on_returns_gq",
  "tests/unit/test_gq_dual_judge.py::test_resolve_models_on_without_key_fails_closed",
  "tests/unit/test_gq_dual_judge.py::test_resolve_off_keeps_legacy_paths",
  "tests/unit/test_gq_dual_judge.py::test_resolve_physical_on_is_gemini_plus_qwen",
  "tests/unit/test_gq_dual_judge.py::test_run_multiroll_select_preserves_gq_in_durable_record",
  "tests/unit/test_grok_body_error_retry.py::test_body_429_is_retried_then_succeeds",
  "tests/unit/test_grok_body_error_retry.py::test_body_502_exhausts_retries_and_raises",
  "tests/unit/test_grok_body_error_retry.py::test_body_502_is_retried_then_succeeds",
  "tests/unit/test_grok_body_error_retry.py::test_body_502_no_longer_retried",
  "tests/unit/test_grok_body_error_retry.py::test_body_error_code_reader",
  "tests/unit/test_grok_body_error_retry.py::test_body_error_without_code_is_not_retried",
  "tests/unit/test_grok_body_error_retry.py::test_body_moderation_is_not_retried",
  "tests/unit/test_grok_body_error_retry.py::test_body_moderation_with_retryable_code_is_not_retried",
  "tests/unit/test_grok_body_error_retry.py::test_non_retryable_body_code_is_not_retried",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_bgfirst_bg_camera_clause_is_never_aliased_from_the_still_clause",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_camera_frame_clause_default_is_original",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_every_still_camera_call_passes_the_selector",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_fit_counts_label_bytes_toward_the_budget",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_fit_leaves_prompt_untouched_when_within_budget",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_fit_never_sheds_shot_specific_material",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_fit_returns_original_when_nothing_matches",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_fit_sheds_in_declared_order_until_it_fits",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_grok_assembly_is_smaller",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_grok_assembly_uses_compact_stems",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_grok_client_sheds_and_sends_instead_of_killing_the_shot",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_grok_stem_pack_is_smaller_than_originals",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_grok_stem_pack_keeps_camera_body_placeholder",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_hard_limit_is_separate_from_the_shed_target",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_nb2_assembly_is_byte_identical_across_calls",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_nb2_assembly_uses_original_stems",
  "tests/unit/test_grok_compact_stems_backend_split.py::test_shed_stems_are_static_and_present_in_the_pack",
  "tests/unit/test_grok_request_carries_aspect_ratio.py::test_given_aspect_ratio_is_sent",
  "tests/unit/test_grok_request_carries_aspect_ratio.py::test_no_aspect_ratio_means_nothing_is_sent",
  "tests/unit/test_grok_request_carries_aspect_ratio.py::test_roll_ladder_cross_backend_passes_the_still_ratio",
  "tests/unit/test_grok_router_alias.py::test_a_smaller_request_is_not_raised_to_the_cap",
  "tests/unit/test_grok_router_alias.py::test_an_empty_model_slot_means_no_alias",
  "tests/unit/test_grok_router_alias.py::test_no_key_means_no_alias",
  "tests/unit/test_grok_router_alias.py::test_other_aliases_keep_the_global_ceiling",
  "tests/unit/test_grok_router_alias.py::test_the_alias_does_not_disturb_the_existing_ones",
  "tests/unit/test_grok_router_alias.py::test_the_alias_exists_when_the_key_and_the_model_are_both_set",
  "tests/unit/test_grok_router_alias.py::test_the_alias_only_adds_itself",
  "tests/unit/test_grok_router_alias.py::test_the_cap_lands_on_the_outgoing_kwargs",
  "tests/unit/test_grok_router_alias.py::test_the_cap_lands_on_what_actually_leaves",
  "tests/unit/test_grok_router_alias.py::test_the_catalog_maps_the_alias_to_its_provider",
  "tests/unit/test_grok_router_alias.py::test_the_deployment_no_longer_claims_a_ceiling_it_cannot_enforce",
  "tests/unit/test_grok_router_alias.py::test_the_other_two_entry_points_are_capped_too",
  "tests/unit/test_grok_router_alias.py::test_the_physical_model_is_pinned_not_rolling",
  "tests/unit/test_grok_router_alias.py::test_the_router_alias_and_the_multiroll_prefix_stay_distinct",
  "tests/unit/test_grok_router_alias.py::test_the_ui_list_carries_it",
  "tests/unit/test_grok_shed_finds_the_pack_that_assembled.py::test_a_prompt_from_the_nb2_pack_gets_shed",
  "tests/unit/test_grok_shed_finds_the_pack_that_assembled.py::test_a_prompt_without_general_rules_is_untouched",
  "tests/unit/test_grok_shed_finds_the_pack_that_assembled.py::test_it_still_refuses_when_shedding_is_not_enough",
  "tests/unit/test_grok_shed_finds_the_pack_that_assembled.py::test_the_grok_assembly_path_still_sheds_the_compact_texts",
  "tests/unit/test_grok_shed_finds_the_pack_that_assembled.py::test_the_grok_path_is_byte_identical_to_the_no_fallback_run",
  "tests/unit/test_grok_shed_finds_the_pack_that_assembled.py::test_the_over_limit_prompt_actually_gets_sent",
  "tests/unit/test_grok_shed_finds_the_pack_that_assembled.py::test_the_shed_clause_really_leaves_the_prompt",
  "tests/unit/test_handled_object_framing.py::test_a_camera_clause_takes_the_framing_back",
  "tests/unit/test_handled_object_framing.py::test_a_person_assignment_takes_the_framing_back",
  "tests/unit/test_handled_object_framing.py::test_a_person_shot_carries_no_framing_pin",
  "tests/unit/test_handled_object_framing.py::test_a_plate_shot_still_pins_the_framing",
  "tests/unit/test_handled_object_framing.py::test_no_handler_means_no_clause",
  "tests/unit/test_handled_object_framing.py::test_the_active_clause_does_not_pin_the_framing",
  "tests/unit/test_handled_object_framing.py::test_the_active_clause_still_says_whose_hand_it_is",
  "tests/unit/test_handled_object_framing.py::test_the_camera_clause_remains_the_framing_authority",
  "tests/unit/test_handled_object_framing.py::test_the_change_is_folded_into_the_step_identity",
  "tests/unit/test_handled_object_framing.py::test_the_framing_sentence_lives_in_its_own_stem",
  "tests/unit/test_handled_object_framing.py::test_the_grok_branch_gets_the_fix_too",
  "tests/unit/test_handled_object_framing.py::test_the_grok_branch_keeps_the_plate_shot_guard",
  "tests/unit/test_handled_object_framing.py::test_the_handled_selector_is_split_from_the_geometry_pack",
  "tests/unit/test_handled_object_framing.py::test_the_old_packs_are_untouched",
  "tests/unit/test_handled_object_framing.py::test_the_outgoing_prompt_carries_no_framing_pin",
  "tests/unit/test_handled_object_framing.py::test_the_shared_clause_does_not_pin_the_framing",
  "tests/unit/test_handled_object_framing.py::test_the_wrist_reach_stays_subordinate_to_the_framing",
  "tests/unit/test_human_form_scope.py::test_a_person_assignment_brings_the_clause_back",
  "tests/unit/test_human_form_scope.py::test_a_person_shot_gets_the_human_clause",
  "tests/unit/test_human_form_scope.py::test_a_plate_shot_does_not",
  "tests/unit/test_human_form_scope.py::test_a_plate_shot_keeps_the_figurative_clause",
  "tests/unit/test_human_form_scope.py::test_the_clause_still_forbids_the_blob",
  "tests/unit/test_human_form_scope.py::test_the_compact_branch_gets_the_split_too",
  "tests/unit/test_human_form_scope.py::test_the_compact_split_does_not_grow_the_plate_shot",
  "tests/unit/test_human_form_scope.py::test_the_human_clause_is_never_shed",
  "tests/unit/test_human_form_scope.py::test_the_imagine_sentence_is_no_longer_ambiguous",
  "tests/unit/test_human_form_scope.py::test_the_new_pack_holds_only_the_two_stems",
  "tests/unit/test_human_form_scope.py::test_the_new_packs_hold_only_the_two_stems",
  "tests/unit/test_human_form_scope.py::test_the_old_pack_is_untouched",
  "tests/unit/test_human_form_scope.py::test_the_policy_signature_carries_the_split",
  "tests/unit/test_human_form_scope.py::test_the_shedder_looks_in_the_pack_the_assembly_used",
  "tests/unit/test_i2i_db_logging.py::test_db_failure_does_not_lose_opik_record",
  "tests/unit/test_i2i_db_logging.py::test_db_failure_is_not_silent",
  "tests/unit/test_i2i_db_logging.py::test_log_llm_call_really_inserts_the_row",
  "tests/unit/test_i2i_db_logging.py::test_log_llm_call_returns_none_when_the_row_is_not_saved",
  "tests/unit/test_i2i_db_logging.py::test_record_provider_call_passes_step_and_operation",
  "tests/unit/test_i2i_db_logging.py::test_the_i2i_gap_was_test_records_not_a_production_defect",
  "tests/unit/test_image_send_state.py::test_429_503_은_받지_않았다는_뜻이라_재시도한다",
  "tests/unit/test_image_send_state.py::test_500_502_504_는_다시_보내지_않는다",
  "tests/unit/test_image_send_state.py::test_500_502_504_는_어느_경로에서도_다시_보내지_않는다",
  "tests/unit/test_image_send_state.py::test_gemini_연결_거부는_다시_보낸다",
  "tests/unit/test_image_send_state.py::test_gemini_읽기_시간_초과면_키를_바꿔_다시_보내지_않는다",
  "tests/unit/test_image_send_state.py::test_grok_429_응답은_다시_보낸다",
  "tests/unit/test_image_send_state.py::test_grok_502_응답은_다시_보내지_않는다",
  "tests/unit/test_image_send_state.py::test_grok_대기_시간_마감이면_한_번만_보낸다",
  "tests/unit/test_image_send_state.py::test_grok_벽시계_마감이면_한_번만_보낸다",
  "tests/unit/test_image_send_state.py::test_grok_본문_429_는_그대로_다시_보낸다",
  "tests/unit/test_image_send_state.py::test_grok_본문_502_는_다시_보내지_않고_요금_표시를_남긴다",
  "tests/unit/test_image_send_state.py::test_grok_연결_거부는_다시_보낸다",
  "tests/unit/test_image_send_state.py::test_reve_405_진단이_모델명을_바꾸라고_권하지_않는다",
  "tests/unit/test_image_send_state.py::test_reve_예외가_공용_예외의_하위다",
  "tests/unit/test_image_send_state.py::test_나머지는_전부_unknown[exc0]",
  "tests/unit/test_image_send_state.py::test_나머지는_전부_unknown[exc1]",
  "tests/unit/test_image_send_state.py::test_나머지는_전부_unknown[exc2]",
  "tests/unit/test_image_send_state.py::test_나머지는_전부_unknown[exc3]",
  "tests/unit/test_image_send_state.py::test_나머지는_전부_unknown[exc4]",
  "tests/unit/test_image_send_state.py::test_닿지_못한_것이_확정된_것만_never_sent[exc0]",
  "tests/unit/test_image_send_state.py::test_닿지_못한_것이_확정된_것만_never_sent[exc1]",
  "tests/unit/test_image_send_state.py::test_닿지_못한_것이_확정된_것만_never_sent[exc2]",
  "tests/unit/test_image_send_state.py::test_닿지_못한_것이_확정된_것만_never_sent[exc3]",
  "tests/unit/test_image_send_state.py::test_모르는_경로는_재시도하지_않는다",
  "tests/unit/test_image_send_state.py::test_모른다_사유에_원래_예외_타입이_남는다",
  "tests/unit/test_image_send_state.py::test_보낸_뒤일_수_있는_errno_는_그대로_모른다",
  "tests/unit/test_image_send_state.py::test_보낼_길이_없다는_커널_응답은_다시_보낸다",
  "tests/unit/test_image_send_state.py::test_본문_검열은_상태와_무관하게_다시_안_보낸다",
  "tests/unit/test_image_send_state.py::test_본문_오류_코드를_못_읽으면_모른다로_둔다",
  "tests/unit/test_image_send_state.py::test_상속해도_cause_가_안_지워진다",
  "tests/unit/test_image_send_state.py::test_상태를_아는_거부와_모르는_실패를_가른다",
  "tests/unit/test_image_send_state.py::test_재시도_가부는_제공자마다_다르다",
  "tests/unit/test_image_send_state.py::test_코드가_없어도_검열이면_terminal",
  "tests/unit/test_image_steps_fold_their_packs.py::test_a_different_pack_version_moves_the_hash",
  "tests/unit/test_image_steps_fold_their_packs.py::test_an_unresolvable_stem_does_not_silently_match",
  "tests/unit/test_image_steps_fold_their_packs.py::test_neither_step_still_uses_the_empty_hash",
  "tests/unit/test_image_steps_fold_their_packs.py::test_the_composite_step_folds_all_three_stems",
  "tests/unit/test_image_steps_fold_their_packs.py::test_the_two_steps_do_not_share_a_hash",
  "tests/unit/test_image_tracer_span_attach.py::test_v1_fallback_span_payload_unchanged",
  "tests/unit/test_image_tracer_span_attach.py::test_v1_makes_its_own_trace",
  "tests/unit/test_image_tracer_span_attach.py::test_v1_still_reads_session_id",
  "tests/unit/test_image_tracer_span_attach.py::test_v2_attaches_span_to_open_parent",
  "tests/unit/test_image_tracer_span_attach.py::test_v2_fallback_span_carries_axis_tags",
  "tests/unit/test_image_tracer_span_attach.py::test_v2_fallback_trace_keeps_thread_id",
  "tests/unit/test_image_tracer_span_attach.py::test_v2_tags_are_all_prefixed",
  "tests/unit/test_image_tracer_span_attach.py::test_v2_without_parent_still_records",
  "tests/unit/test_inscription_source_contract.py::test_cap_applies_after_filtering_so_grounded_entries_survive",
  "tests/unit/test_inscription_source_contract.py::test_cap_still_holds_when_everything_is_grounded",
  "tests/unit/test_inscription_source_contract.py::test_default_selector_is_v1_so_production_is_unchanged",
  "tests/unit/test_inscription_source_contract.py::test_default_selector_is_v2_so_authoring_needs_a_source",
  "tests/unit/test_inscription_source_contract.py::test_default_selector_is_v3",
  "tests/unit/test_inscription_source_contract.py::test_dropped_entries_carry_what_is_needed_to_count_them",
  "tests/unit/test_inscription_source_contract.py::test_haystack_for_source_is_a_pure_lookup",
  "tests/unit/test_inscription_source_contract.py::test_implied_still_has_to_show_its_grounding[-empty_quote]",
  "tests/unit/test_inscription_source_contract.py::test_implied_still_has_to_show_its_grounding[\\uc785\\ub825\\uc5d0 \\uc5c6\\ub294 \\ub9d0-ungrounded_quote]",
  "tests/unit/test_inscription_source_contract.py::test_old_packs_stay_reachable",
  "tests/unit/test_inscription_source_contract.py::test_pack_content_hash_differs_between_versions",
  "tests/unit/test_inscription_source_contract.py::test_quote_match_does_not_stretch_further_than_that[\\ubb38\\uc5d0 \\ubd99\\uc740 \\uacf5\\uace0]",
  "tests/unit/test_inscription_source_contract.py::test_quote_match_does_not_stretch_further_than_that[\\ubb38\\uc5d0\\ubd99\\uc740\\uc885\\uc774]",
  "tests/unit/test_inscription_source_contract.py::test_quote_match_does_not_stretch_further_than_that[\\uc885\\uc774 \\ubd99\\uc740 \\ubb38\\uc5d0]",
  "tests/unit/test_inscription_source_contract.py::test_quote_match_forgives_only_spacing_and_quote_marks[  \\ubb38\\uc5d0 \\ubd99\\uc740 \\uc885\\uc774  ]",
  "tests/unit/test_inscription_source_contract.py::test_quote_match_forgives_only_spacing_and_quote_marks[\"\\ubb38\\uc5d0 \\ubd99\\uc740 \\uc885\\uc774\"]",
  "tests/unit/test_inscription_source_contract.py::test_quote_match_forgives_only_spacing_and_quote_marks[\\u300c\\ubb38\\uc5d0 \\ubd99\\uc740 \\uc885\\uc774\\u300d]",
  "tests/unit/test_inscription_source_contract.py::test_quote_match_forgives_only_spacing_and_quote_marks[\\ubb38\\uc5d0  \\ubd99\\uc740   \\uc885\\uc774]",
  "tests/unit/test_inscription_source_contract.py::test_unknown_selector_still_raises",
  "tests/unit/test_inscription_source_contract.py::test_v1_does_not_filter_anything",
  "tests/unit/test_inscription_source_contract.py::test_v1_pack_stays_reachable_for_old_runs",
  "tests/unit/test_inscription_source_contract.py::test_v1_schema_keeps_the_old_contract",
  "tests/unit/test_inscription_source_contract.py::test_v2_call_sends_the_v2_schema",
  "tests/unit/test_inscription_source_contract.py::test_v2_drops_entries_that_are_not_grounded[bad0]",
  "tests/unit/test_inscription_source_contract.py::test_v2_drops_entries_that_are_not_grounded[bad1]",
  "tests/unit/test_inscription_source_contract.py::test_v2_drops_entries_that_are_not_grounded[bad2]",
  "tests/unit/test_inscription_source_contract.py::test_v2_drops_entries_that_are_not_grounded[bad3]",
  "tests/unit/test_inscription_source_contract.py::test_v2_keeps_grounded_entries[scene_text]",
  "tests/unit/test_inscription_source_contract.py::test_v2_keeps_grounded_entries[world_facts]",
  "tests/unit/test_inscription_source_contract.py::test_v2_pack_body_names_no_surface_types",
  "tests/unit/test_inscription_source_contract.py::test_v2_pack_is_published_and_resolvable",
  "tests/unit/test_inscription_source_contract.py::test_v2_path_reports_no_quote_reasons",
  "tests/unit/test_inscription_source_contract.py::test_v2_schema_has_no_quote_field",
  "tests/unit/test_inscription_source_contract.py::test_v2_schema_keeps_the_three_old_values",
  "tests/unit/test_inscription_source_contract.py::test_v2_schema_requires_source_and_drops_the_surface",
  "tests/unit/test_inscription_source_contract.py::test_v3_drops_a_word_that_the_quote_does_not_contain",
  "tests/unit/test_inscription_source_contract.py::test_v3_drops_an_entry_whose_quote_is_not_in_the_given_text[   -empty_quote]",
  "tests/unit/test_inscription_source_contract.py::test_v3_drops_an_entry_whose_quote_is_not_in_the_given_text[-empty_quote]",
  "tests/unit/test_inscription_source_contract.py::test_v3_drops_an_entry_whose_quote_is_not_in_the_given_text[\\uae08\\uc77c \\ud734\\uc5c5-ungrounded_quote]",
  "tests/unit/test_inscription_source_contract.py::test_v3_keeps_an_entry_whose_quote_is_in_the_given_text",
  "tests/unit/test_inscription_source_contract.py::test_v3_keeps_an_entry_whose_words_are_inside_the_quote",
  "tests/unit/test_inscription_source_contract.py::test_v3_keeps_implied_as_a_cue_not_as_readable_text",
  "tests/unit/test_inscription_source_contract.py::test_v3_looks_in_all_three_given_texts",
  "tests/unit/test_inscription_source_contract.py::test_v3_looks_only_where_the_declared_source_points",
  "tests/unit/test_inscription_source_contract.py::test_v3_schema_offers_the_four_source_values",
  "tests/unit/test_inscription_source_contract.py::test_v3_schema_requires_the_quote",
  "tests/unit/test_inscription_source_contract.py::test_v3_still_drops_inferred_before_looking_at_the_quote",
  "tests/unit/test_inscription_source_contract.py::test_world_facts_also_needs_the_words_inside_the_quote",
  "tests/unit/test_jit_snapshot_transient.py::test_critique_record_still_counts_as_spend",
  "tests/unit/test_jit_snapshot_transient.py::test_produced_flag_alone_does_not_change_snapshot",
  "tests/unit/test_jit_snapshot_transient.py::test_real_spend_still_changes_snapshot",
  "tests/unit/test_jit_snapshot_transient.py::test_retroactive_critique_counts_as_spend_even_when_fix_loses",
  "tests/unit/test_jit_snapshot_transient.py::test_spent_count_is_a_spend_signal",
  "tests/unit/test_jit_snapshot_transient.py::test_spent_count_is_not_transient",
  "tests/unit/test_jit_snapshot_transient.py::test_spent_count_unchanged_on_reuse",
  "tests/unit/test_jit_snapshot_transient.py::test_visit_uid_alone_does_not_change_snapshot",
  "tests/unit/test_judge_agree_keeps_second_slot.py::test_agree_branch_through_the_adapter_keeps_both",
  "tests/unit/test_judge_agree_keeps_second_slot.py::test_agree_keeps_both_slots_hard_violations",
  "tests/unit/test_judge_agree_keeps_second_slot.py::test_combined_route_also_returns_readings",
  "tests/unit/test_judge_agree_keeps_second_slot.py::test_label_row_missing_from_first_slot_still_lands",
  "tests/unit/test_judge_agree_keeps_second_slot.py::test_penalty_is_once_per_candidate_whatever_the_wording",
  "tests/unit/test_judge_agree_keeps_second_slot.py::test_score_winner_ranking_agree_with_adjusted",
  "tests/unit/test_judge_fn_refuses_mismatch_before_sending.py::test_labels_and_candidates_of_different_length_never_send",
  "tests/unit/test_judge_fn_refuses_mismatch_before_sending.py::test_matching_contract_sends",
  "tests/unit/test_judge_fn_refuses_mismatch_before_sending.py::test_one_candidate_against_two_label_schema_never_sends",
  "tests/unit/test_judge_pack_content_fingerprint.py::test_adjacent_pack_versions_have_different_content",
  "tests/unit/test_judge_pack_content_fingerprint.py::test_clear_outputs_keeps_sub_asset_namespace",
  "tests/unit/test_judge_pack_content_fingerprint.py::test_content_change_moves_hash",
  "tests/unit/test_judge_pack_content_fingerprint.py::test_missing_or_empty_pack_dir_fails_closed",
  "tests/unit/test_judge_pack_content_fingerprint.py::test_recipe_pack_content_hash_16hex_and_distinct",
  "tests/unit/test_judge_pack_content_fingerprint.py::test_recipe_pack_unknown_selector_fails_closed",
  "tests/unit/test_judge_pack_content_fingerprint.py::test_still_selector_hash_stable_and_16hex",
  "tests/unit/test_judge_pack_content_fingerprint.py::test_unknown_selector_fails_closed",
  "tests/unit/test_judge_parallel_waves.py::test_ask_both_parallel_actually_overlaps",
  "tests/unit/test_judge_parallel_waves.py::test_ask_both_parallel_one_failure_keeps_the_other",
  "tests/unit/test_judge_parallel_waves.py::test_ask_both_result_order_is_slot_order_not_completion",
  "tests/unit/test_judge_parallel_waves.py::test_ask_both_sequential_by_default",
  "tests/unit/test_judge_parallel_waves.py::test_cine_verify_opts_into_parallel[parallel=True]",
  "tests/unit/test_judge_parallel_waves.py::test_context_vars_are_bound_in_every_parallel_site",
  "tests/unit/test_judge_parallel_waves.py::test_gg46_critique_observers_run_in_parallel",
  "tests/unit/test_judge_parallel_waves.py::test_gg46_judge_calls_two_models_in_parallel",
  "tests/unit/test_lane_framing_scale.py::test_a_chain_bg_only_lane_shot_no_longer_breaks_the_contract",
  "tests/unit/test_lane_framing_scale.py::test_lane_shot_carries_the_scale_line",
  "tests/unit/test_lane_framing_scale.py::test_lane_shot_without_the_clause_is_byte_identical",
  "tests/unit/test_lane_framing_scale.py::test_no_typed_value_means_no_clause[None]",
  "tests/unit/test_lane_framing_scale.py::test_no_typed_value_means_no_clause[staging1]",
  "tests/unit/test_lane_framing_scale.py::test_no_typed_value_means_no_clause[staging2]",
  "tests/unit/test_lane_framing_scale.py::test_no_typed_value_means_no_clause[staging3]",
  "tests/unit/test_lane_framing_scale.py::test_the_clause_carries_the_typed_value_and_nothing_else",
  "tests/unit/test_lane_framing_scale.py::test_the_insert_framing_sentence_steps_aside",
  "tests/unit/test_lane_framing_scale.py::test_the_lane_sketch_decision_truth_table",
  "tests/unit/test_lane_framing_scale.py::test_the_new_label_gives_the_scale_away",
  "tests/unit/test_lane_framing_scale.py::test_the_old_label_claims_camera_framing",
  "tests/unit/test_lane_framing_scale.py::test_the_pack_holds_exactly_the_pair",
  "tests/unit/test_lane_framing_scale.py::test_the_scale_clause_is_exclusive_with_the_camera_frame_clause",
  "tests/unit/test_lane_framing_scale.py::test_the_scale_clause_is_refused_outside_lane",
  "tests/unit/test_lane_framing_scale.py::test_the_service_asks_the_same_question_in_all_three_places",
  "tests/unit/test_lane_framing_scale.py::test_the_service_builds_the_clause_for_lane_shots",
  "tests/unit/test_lane_framing_scale.py::test_the_service_passes_both_halves",
  "tests/unit/test_lane_framing_scale_hash.py::test_both_lane_stems_move_the_hash",
  "tests/unit/test_lane_framing_scale_hash.py::test_camera_frame_off_keeps_the_old_hash",
  "tests/unit/test_lane_framing_scale_hash.py::test_lane_off_keeps_the_old_hash",
  "tests/unit/test_lane_framing_scale_hash.py::test_turning_the_pair_on_changes_the_hash",
  "tests/unit/test_legacy_schema_bump_allowlist.py::TestEvaluateContractDriftAllowlist::test_entity_t2i_schema_version_mismatch_returns_rerun_self",
  "tests/unit/test_legacy_schema_bump_allowlist.py::TestEvaluateContractDriftDefault::test_config_hash_mismatch_blocks_even_for_allowlisted_step",
  "tests/unit/test_legacy_schema_bump_allowlist.py::TestEvaluateContractDriftDefault::test_non_allowlisted_schema_version_mismatch_returns_block",
  "tests/unit/test_legacy_schema_bump_allowlist.py::TestEvaluateContractDriftDefault::test_unknown_mismatch_pattern_blocks",
  "tests/unit/test_legacy_schema_bump_allowlist.py::TestResumeDecisionContractDriftIntegration::test_cp_config_hash_mismatch_blocks_for_any_step",
  "tests/unit/test_legacy_schema_bump_allowlist.py::TestResumeDecisionContractDriftIntegration::test_cp_schema_mismatch_entity_t2i_returns_rerun_self",
  "tests/unit/test_legacy_schema_bump_allowlist.py::TestResumeDecisionContractDriftIntegration::test_cp_schema_mismatch_non_allowlisted_returns_block",
  "tests/unit/test_legacy_schema_bump_allowlist.py::TestStrictResumeLegacyOverridePreserved::test_strict_resume_overrides_contract_allowlist",
  "tests/unit/test_legacy_schema_bump_allowlist.py::test_allowlist_contains_only_entity_t2i",
  "tests/unit/test_legacy_schema_bump_allowlist.py::test_allowlist_is_immutable",
  "tests/unit/test_legacy_schema_bump_allowlist.py::test_scene_detail_not_in_allowlist",
  "tests/unit/test_location_authority_matches_refs.py::test_bgfirst_step2_prompt_does_not_claim_a_location_photo",
  "tests/unit/test_location_authority_matches_refs.py::test_plate_attached_prompt_and_refs_agree",
  "tests/unit/test_location_authority_matches_refs.py::test_text_only_prompt_does_not_claim_a_photo",
  "tests/unit/test_location_authority_matches_refs.py::test_the_check_would_catch_the_old_behaviour",
  "tests/unit/test_manual_composite_flow.py::test_derive_lineage_drops_the_unused_outfit",
  "tests/unit/test_manual_composite_flow.py::test_derive_sends_one_reference_and_the_real_outfit_text",
  "tests/unit/test_manual_composite_flow.py::test_derive_without_any_outfit_image_still_completes",
  "tests/unit/test_manual_composite_flow.py::test_human_still_gets_two_references",
  "tests/unit/test_manual_composite_flow.py::test_human_without_outfit_image_is_still_rejected",
  "tests/unit/test_manual_composite_flow.py::test_validation_and_comparison_share_one_description",
  "tests/unit/test_manual_composite_matches_batch.py::test_both_paths_share_the_same_switch[body_identity_short_ids]",
  "tests/unit/test_manual_composite_matches_batch.py::test_both_paths_share_the_same_switch[composite_derive]",
  "tests/unit/test_manual_composite_matches_batch.py::test_entity_regeneration_goes_through_the_fixed_path",
  "tests/unit/test_manual_composite_matches_batch.py::test_manual_decides_derive_before_requiring_the_outfit_photo",
  "tests/unit/test_manual_composite_matches_batch.py::test_manual_lineage_drops_the_unused_outfit",
  "tests/unit/test_manual_composite_matches_batch.py::test_manual_passes_the_real_outfit_description",
  "tests/unit/test_manual_composite_matches_batch.py::test_manual_skips_the_outfit_photo_for_body_identity",
  "tests/unit/test_manual_composite_matches_batch.py::test_the_validation_call_uses_it",
  "tests/unit/test_manual_composite_matches_batch.py::test_validation_description_carries_the_outfit_detail",
  "tests/unit/test_manual_composite_matches_batch.py::test_validation_description_is_unchanged_without_detail",
  "tests/unit/test_manual_primary_protection.py::test_a_human_primary_survives_a_pipeline_save",
  "tests/unit/test_manual_primary_protection.py::test_a_new_human_upload_still_takes_over",
  "tests/unit/test_manual_primary_protection.py::test_a_non_primary_human_asset_does_not_block",
  "tests/unit/test_manual_primary_protection.py::test_checkpoint_primary_matches_the_db_primary",
  "tests/unit/test_manual_primary_protection.py::test_is_manual_upload_reads_the_marker",
  "tests/unit/test_manual_primary_protection.py::test_jit_compares_against_the_pipeline_output_not_the_human_upload",
  "tests/unit/test_manual_primary_protection.py::test_the_fresh_asset_is_still_kept",
  "tests/unit/test_manual_primary_protection.py::test_the_lever_restores_the_old_behaviour",
  "tests/unit/test_manual_primary_protection.py::test_upload_path_and_guard_share_one_constant",
  "tests/unit/test_manual_primary_protection.py::test_without_a_human_primary_nothing_changes",
  "tests/unit/test_marker_map_direction_and_pick.py::test_conti_sketch_geometry_text_keeps_the_marked_plan_as_authority",
  "tests/unit/test_marker_map_direction_and_pick.py::test_pick_falls_back_to_the_first_candidate_on_a_bad_answer[out0]",
  "tests/unit/test_marker_map_direction_and_pick.py::test_pick_falls_back_to_the_first_candidate_on_a_bad_answer[out1]",
  "tests/unit/test_marker_map_direction_and_pick.py::test_pick_falls_back_to_the_first_candidate_on_a_bad_answer[out2]",
  "tests/unit/test_marker_map_direction_and_pick.py::test_pick_falls_back_when_the_judge_raises",
  "tests/unit/test_marker_map_direction_and_pick.py::test_pick_is_not_called_when_there_is_only_one_candidate",
  "tests/unit/test_marker_map_direction_and_pick.py::test_pick_payload_carries_each_candidate_reject_reason",
  "tests/unit/test_marker_map_direction_and_pick.py::test_pick_returns_the_index_the_vlm_chose",
  "tests/unit/test_marker_map_direction_and_pick.py::test_published_pack_v15_text_is_unchanged",
  "tests/unit/test_marker_map_direction_and_pick.py::test_step_collects_candidates_and_asks_the_vlm_instead_of_failing",
  "tests/unit/test_marker_map_direction_and_pick.py::test_step_only_fails_the_shot_when_nothing_was_drawn_at_all",
  "tests/unit/test_marker_map_direction_and_pick.py::test_v16_annotate_prompt_makes_coordinates_the_authority",
  "tests/unit/test_marker_map_direction_and_pick.py::test_v16_check_lines_and_header_agree_with_the_drawing_side",
  "tests/unit/test_marker_map_direction_and_pick.py::test_v16_pack_stems_carry_the_same_authority_as_the_code",
  "tests/unit/test_marker_map_direction_and_pick.py::test_v16_wedge_and_facing_lead_with_coordinates",
  "tests/unit/test_master_plan_dependency_closure.py::test_closed_plan_passes",
  "tests/unit/test_master_plan_dependency_closure.py::test_dangling_dependency_is_caught",
  "tests/unit/test_master_plan_dependency_closure.py::test_empty_plan_is_fine",
  "tests/unit/test_master_plan_dependency_closure.py::test_the_check_runs_inside_the_retry_loop",
  "tests/unit/test_measure_three_state_marks.py::test_a_cue_is_marked_as_a_cue",
  "tests/unit/test_measure_three_state_marks.py::test_a_dropped_item_is_marked_dropped",
  "tests/unit/test_measure_three_state_marks.py::test_a_dropped_item_is_not_mistaken_for_a_cue_sharing_its_quote",
  "tests/unit/test_measure_three_state_marks.py::test_a_kept_item_is_marked_readable",
  "tests/unit/test_measure_three_state_marks.py::test_a_kept_item_sharing_a_quote_with_a_cue_stays_readable",
  "tests/unit/test_measure_three_state_marks.py::test_both_display_sites_go_through_the_one_function",
  "tests/unit/test_measure_three_state_marks.py::test_the_cue_branch_really_ignores_the_wording",
  "tests/unit/test_measure_three_state_marks.py::test_two_cues_with_the_same_quote_but_different_wording_both_show",
  "tests/unit/test_model_alias_labels.py::test_flash_model_id_is_not_hand_written_outside_config",
  "tests/unit/test_model_alias_labels.py::test_gemini_와_grok_은_그대로_max_tokens_다",
  "tests/unit/test_model_alias_labels.py::test_openai_별칭은_전부_strict_스키마_정리_대상이다",
  "tests/unit/test_model_alias_labels.py::test_openai_별칭은_전부_temperature_제거_대상이다",
  "tests/unit/test_model_alias_labels.py::test_openai_추론_별칭은_max_completion_tokens_로_나간다",
  "tests/unit/test_model_alias_labels.py::test_router_를_직접_부르는_길도_이_정리를_지난다",
  "tests/unit/test_model_alias_labels.py::test_temperature_가_실제로_떨어지는지_끝점에서",
  "tests/unit/test_model_alias_labels.py::test_the_ast_scan_would_catch_a_hand_written_id",
  "tests/unit/test_model_alias_labels.py::test_the_check_actually_catches_a_stale_label",
  "tests/unit/test_model_alias_labels.py::test_timeout_을_안_주면_아무것도_안_실린다",
  "tests/unit/test_model_alias_labels.py::test_timeout_을_주면_그_호출에만_실린다",
  "tests/unit/test_model_alias_labels.py::test_ui_labels_match_the_model_actually_called",
  "tests/unit/test_model_alias_labels.py::test_같은_dict_를_두_번_정리해도_같다",
  "tests/unit/test_model_alias_labels.py::test_두_상한이_역순으로_와도_작은_쪽이_남는다",
  "tests/unit/test_model_alias_labels.py::test_둘_다_실려_오면_작은_쪽만_남는다",
  "tests/unit/test_model_alias_labels.py::test_모델마다_제_최대를_쓴다",
  "tests/unit/test_model_alias_labels.py::test_모르는_별칭은_기존_동작_그대로",
  "tests/unit/test_model_alias_labels.py::test_우리가_일부러_좁힌_것은_모델_표가_못_넓힌다",
  "tests/unit/test_model_alias_labels.py::test_전역_기본값은_안_올렸다",
  "tests/unit/test_model_alias_labels.py::test_전역_저작_둘이_그_상한을_쓴다",
  "tests/unit/test_multiroll_judge_pack.py::test_consumer_hash_stamps_resolve_current_pack",
  "tests/unit/test_multiroll_judge_pack.py::test_critique_v2_visible_within_frame_rule",
  "tests/unit/test_multiroll_judge_pack.py::test_default_selector_is_v2_and_explicit",
  "tests/unit/test_multiroll_judge_pack.py::test_default_selector_is_v5_and_explicit",
  "tests/unit/test_multiroll_judge_pack.py::test_default_selector_is_v6_and_explicit",
  "tests/unit/test_multiroll_judge_pack.py::test_default_selector_is_v7_and_explicit",
  "tests/unit/test_multiroll_judge_pack.py::test_durable_fingerprints_resolve_current_pack",
  "tests/unit/test_multiroll_judge_pack.py::test_judge_v2_framing_priority_contract",
  "tests/unit/test_multiroll_judge_pack.py::test_judge_v5_direction_and_fix_feasibility_contract",
  "tests/unit/test_multiroll_judge_pack.py::test_judge_v7_keeps_v6_three_axes",
  "tests/unit/test_multiroll_judge_pack.py::test_judge_v7_physics_is_a_forced_reading_axis",
  "tests/unit/test_multiroll_judge_pack.py::test_old_packs_have_no_fix_ref_label",
  "tests/unit/test_multiroll_judge_pack.py::test_selectors_split_still_from_the_rest",
  "tests/unit/test_multiroll_judge_pack.py::test_stem_requirement_uses_numeric_version_compare",
  "tests/unit/test_multiroll_judge_pack.py::test_the_global_pack_does_not_carry_the_still_only_axis",
  "tests/unit/test_multiroll_judge_pack.py::test_v1_pack_still_resolvable_for_audit",
  "tests/unit/test_multiroll_judge_pack.py::test_v2_pack_full_file_set_and_neutrality",
  "tests/unit/test_multiroll_judge_pack.py::test_v7_fix_ref_label_exists_and_forbids_editing_it",
  "tests/unit/test_multiroll_judge_pack.py::test_v7_fix_rejudge_header_has_scope_axis",
  "tests/unit/test_multiroll_select.py::test_all_candidates_fail_is_recorded",
  "tests/unit/test_multiroll_select.py::test_all_unfixable_skips_fix_keeps_original",
  "tests/unit/test_multiroll_select.py::test_build_judge_schema_labels",
  "tests/unit/test_multiroll_select.py::test_clause_reaches_generation_judge_and_critique_exactly_once",
  "tests/unit/test_multiroll_select.py::test_clear_outputs_spares_non_multiroll_siblings",
  "tests/unit/test_multiroll_select.py::test_combine_flip_verdicts_agreement",
  "tests/unit/test_multiroll_select.py::test_combine_flip_verdicts_disagreement_sums_scores",
  "tests/unit/test_multiroll_select.py::test_combine_flip_verdicts_tie_uses_priority",
  "tests/unit/test_multiroll_select.py::test_composition_all_unfixable_skips_fix",
  "tests/unit/test_multiroll_select.py::test_composition_changes_fingerprint_only_when_enabled",
  "tests/unit/test_multiroll_select.py::test_composition_issues_merged_into_single_fix_prompt",
  "tests/unit/test_multiroll_select.py::test_composition_none_both_empty_skips_fix",
  "tests/unit/test_multiroll_select.py::test_composition_only_issues_still_trigger_fix",
  "tests/unit/test_multiroll_select.py::test_composition_unfixable_issue_excluded_from_fix_prompt",
  "tests/unit/test_multiroll_select.py::test_crash_window_sel_without_selected_rejudges_from_rolls",
  "tests/unit/test_multiroll_select.py::test_critique_fix_flow",
  "tests/unit/test_multiroll_select.py::test_critique_no_issues_copies_orig",
  "tests/unit/test_multiroll_select.py::test_critique_schema_has_optional_unfixable",
  "tests/unit/test_multiroll_select.py::test_critique_selected_prompt_only_requires_roll_prompts",
  "tests/unit/test_multiroll_select.py::test_critique_selected_prompt_only_uses_variant_prompt_once",
  "tests/unit/test_multiroll_select.py::test_default_run_has_no_new_record_keys_and_legacy_fingerprint",
  "tests/unit/test_multiroll_select.py::test_default_shared_prompt_still_uses_base_prompt",
  "tests/unit/test_multiroll_select.py::test_explicit_empty_shared_prompt_does_not_fall_back_to_prompt",
  "tests/unit/test_multiroll_select.py::test_explicit_shared_prompt_replaces_base_prompt",
  "tests/unit/test_multiroll_select.py::test_fingerprint_legacy_golden_unchanged",
  "tests/unit/test_multiroll_select.py::test_fingerprint_mismatch_clears_and_regenerates",
  "tests/unit/test_multiroll_select.py::test_fix_carries_critique_refs_when_label_given",
  "tests/unit/test_multiroll_select.py::test_fix_prompt_assembly",
  "tests/unit/test_multiroll_select.py::test_fix_ref_count_recorded",
  "tests/unit/test_multiroll_select.py::test_fix_rejudge_absent_keeps_legacy_behavior",
  "tests/unit/test_multiroll_select.py::test_fix_rejudge_changes_fingerprint_only_when_enabled",
  "tests/unit/test_multiroll_select.py::test_fix_rejudge_keeps_original_when_fix_worse",
  "tests/unit/test_multiroll_select.py::test_fix_rejudge_no_issues_skips_rejudge",
  "tests/unit/test_multiroll_select.py::test_fix_rejudge_places_fix_when_fix_better",
  "tests/unit/test_multiroll_select.py::test_fix_rejudge_tie_keeps_original",
  "tests/unit/test_multiroll_select.py::test_fix_without_label_keeps_original_only",
  "tests/unit/test_multiroll_select.py::test_flip_requires_both_directions_to_declare",
  "tests/unit/test_multiroll_select.py::test_force_clears_even_when_complete",
  "tests/unit/test_multiroll_select.py::test_gemini_select_ranking_missing_label_falls_back",
  "tests/unit/test_multiroll_select.py::test_gemini_select_tie_uses_ranking",
  "tests/unit/test_multiroll_select.py::test_judge_flip_corrupted_durable_recovers_with_full_rejudge[bad_jf1]",
  "tests/unit/test_multiroll_select.py::test_judge_flip_corrupted_durable_recovers_with_full_rejudge[bad_jf2]",
  "tests/unit/test_multiroll_select.py::test_judge_flip_corrupted_durable_recovers_with_full_rejudge[bad_jf3]",
  "tests/unit/test_multiroll_select.py::test_judge_flip_corrupted_durable_recovers_with_full_rejudge[corrupted]",
  "tests/unit/test_multiroll_select.py::test_judge_flip_malformed_durable_forward_reauthors",
  "tests/unit/test_multiroll_select.py::test_judge_flip_resume_reuses_forward_judgement",
  "tests/unit/test_multiroll_select.py::test_judge_flip_two_calls_reversed_and_record",
  "tests/unit/test_multiroll_select.py::test_judge_schema_physics_defaults_off_for_non_still",
  "tests/unit/test_multiroll_select.py::test_judge_schema_physics_off_matches_v6",
  "tests/unit/test_multiroll_select.py::test_judge_schema_requires_physics_reading",
  "tests/unit/test_multiroll_select.py::test_no_flag_when_judge_does_not_declare",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_keeps_fail_and_readings",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_malformed_fail_closed[raw0]",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_malformed_fail_closed[raw1]",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_malformed_fail_closed[raw2]",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_malformed_fail_closed[raw3]",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_remaps_all_fields",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_type_malformed_is_value_error[bad]",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_type_malformed_is_value_error[raw1]",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_type_malformed_is_value_error[raw2]",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_type_malformed_is_value_error[raw3]",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_type_malformed_is_value_error[raw4]",
  "tests/unit/test_multiroll_select.py::test_normalize_flip_verdict_type_malformed_is_value_error[raw5]",
  "tests/unit/test_multiroll_select.py::test_parallel_rolls_error_is_canonical_first",
  "tests/unit/test_multiroll_select.py::test_parallel_rolls_overlap_and_all_generated",
  "tests/unit/test_multiroll_select.py::test_parallel_rolls_propagates_budget_and_capture_context",
  "tests/unit/test_multiroll_select.py::test_persist_record_fn_called_per_phase",
  "tests/unit/test_multiroll_select.py::test_reshoot_cleared_when_fix_rescues_a_failed_roll",
  "tests/unit/test_multiroll_select.py::test_reshoot_computed_on_resume_paths",
  "tests/unit/test_multiroll_select.py::test_reshoot_set_when_both_original_and_fix_fail",
  "tests/unit/test_multiroll_select.py::test_resume_backfills_critique_only",
  "tests/unit/test_multiroll_select.py::test_resume_recomputes_critique_prompt_with_the_same_contract",
  "tests/unit/test_multiroll_select.py::test_resume_replays_the_record_without_recomposing_any_prompt",
  "tests/unit/test_multiroll_select.py::test_resume_skips_when_critiqued",
  "tests/unit/test_multiroll_select.py::test_resume_without_record_keeps_sel",
  "tests/unit/test_multiroll_select.py::test_roll_count_two_labels",
  "tests/unit/test_multiroll_select.py::test_roll_files_skip_existing",
  "tests/unit/test_multiroll_select.py::test_roll_files_skip_existing_with_matching_record",
  "tests/unit/test_multiroll_select.py::test_roll_files_without_record_are_cleared",
  "tests/unit/test_multiroll_select.py::test_roll_labels",
  "tests/unit/test_multiroll_select.py::test_roll_prompts_changes_fingerprint",
  "tests/unit/test_multiroll_select.py::test_roll_prompts_critique_gets_selected_variant_plus_brief",
  "tests/unit/test_multiroll_select.py::test_roll_prompts_gen_per_label_judge_gets_brief",
  "tests/unit/test_multiroll_select.py::test_roll_prompts_label_mismatch_raises",
  "tests/unit/test_multiroll_select.py::test_roll_prompts_resume_backfill_critique_composed",
  "tests/unit/test_multiroll_select.py::test_roll_refs_critique_uses_selected_label_refs",
  "tests/unit/test_multiroll_select.py::test_roll_refs_fingerprint_drift_regenerates",
  "tests/unit/test_multiroll_select.py::test_roll_refs_gen_per_label_judge_gets_shared",
  "tests/unit/test_multiroll_select.py::test_roll_refs_label_set_mismatch_raises",
  "tests/unit/test_multiroll_select.py::test_run_generates_rolls_and_selects",
  "tests/unit/test_multiroll_select.py::test_sel_without_record_regenerates",
  "tests/unit/test_multiroll_select.py::test_selection_persisted_before_sel_materialized",
  "tests/unit/test_multiroll_select.py::test_unfixable_issues_excluded_from_fix_prompt",
  "tests/unit/test_multiroll_select.py::test_without_shared_prompt_the_clause_doubles_in_critique",
  "tests/unit/test_name_provenance.py::test_a_made_up_quote_is_caught",
  "tests/unit/test_name_provenance.py::test_a_shrinking_retry_does_not_erase_the_other_characters",
  "tests/unit/test_name_provenance.py::test_correction_block_names_what_went_wrong",
  "tests/unit/test_name_provenance.py::test_line_breaks_do_not_break_the_check",
  "tests/unit/test_name_provenance.py::test_missing_quote_is_caught",
  "tests/unit/test_name_provenance.py::test_no_pack_forces_an_ethnicity_guess",
  "tests/unit/test_name_provenance.py::test_the_character_slot_is_not_evidence",
  "tests/unit/test_name_provenance.py::test_the_grounded_name_passes",
  "tests/unit/test_name_provenance.py::test_the_invented_name_is_caught",
  "tests/unit/test_name_provenance.py::test_the_ledger_reaches_the_step_result",
  "tests/unit/test_name_provenance.py::test_the_ledger_says_verified_when_nothing_is_wrong",
  "tests/unit/test_name_provenance.py::test_the_lister_actually_calls_the_gate",
  "tests/unit/test_name_provenance.py::test_the_pack_asks_for_the_quote",
  "tests/unit/test_name_provenance.py::test_the_retry_path_actually_runs",
  "tests/unit/test_name_provenance.py::test_the_variant_suffix_is_not_treated_as_invention",
  "tests/unit/test_name_provenance.py::test_when_the_second_answer_is_wrong_too_the_bad_name_still_ships",
  "tests/unit/test_nonhuman_cast.py::test_a_human_looking_android_is_not_stripped",
  "tests/unit/test_nonhuman_cast.py::test_all_human_shot_is_unchanged",
  "tests/unit/test_nonhuman_cast.py::test_all_nonhuman_shot_drops_both_human_clauses",
  "tests/unit/test_nonhuman_cast.py::test_both_branches_carry_the_clause[17]",
  "tests/unit/test_nonhuman_cast.py::test_both_branches_carry_the_clause[]",
  "tests/unit/test_nonhuman_cast.py::test_compact_branch_keeps_the_same_conditional",
  "tests/unit/test_nonhuman_cast.py::test_mixed_shot_keeps_the_human_rule_and_names_the_exception",
  "tests/unit/test_nonhuman_cast.py::test_passing_nothing_is_byte_identical",
  "tests/unit/test_nonhuman_cast.py::test_step_fingerprint_folds_the_pack",
  "tests/unit/test_nonhuman_cast.py::test_the_exception_clause_forbids_human_features",
  "tests/unit/test_nonhuman_cast.py::test_the_exception_clause_puts_the_sheet_first",
  "tests/unit/test_openrouter_call_accounting.py::test_a_failure_before_the_roundtrip_records_no_tokens",
  "tests/unit/test_openrouter_call_accounting.py::test_a_missing_number_is_left_out_not_zeroed",
  "tests/unit/test_openrouter_call_accounting.py::test_a_paid_roundtrip_that_fails_late_still_records_tokens",
  "tests/unit/test_openrouter_call_accounting.py::test_booleans_are_not_counted_as_numbers",
  "tests/unit/test_openrouter_call_accounting.py::test_empty_usage_does_not_create_the_field",
  "tests/unit/test_openrouter_call_accounting.py::test_it_also_reads_the_flat_spelling",
  "tests/unit/test_openrouter_call_accounting.py::test_it_keeps_only_numbers",
  "tests/unit/test_openrouter_call_accounting.py::test_it_pulls_the_cache_hit_out_of_the_nested_field",
  "tests/unit/test_openrouter_call_accounting.py::test_no_usage_object_gives_an_empty_dict",
  "tests/unit/test_openrouter_call_accounting.py::test_the_recorded_call_carries_the_token_counts",
  "tests/unit/test_openrouter_call_accounting.py::test_the_recorded_prompt_carries_the_system_text",
  "tests/unit/test_openrouter_call_accounting.py::test_the_span_actually_receives_them",
  "tests/unit/test_openrouter_call_accounting.py::test_the_wire_still_carries_system_as_its_own_role",
  "tests/unit/test_openrouter_call_accounting.py::test_without_them_the_span_keys_are_absent",
  "tests/unit/test_openrouter_vlm_client.py::test_invalid_local_schema_records_then_raises",
  "tests/unit/test_openrouter_vlm_client.py::test_missing_key_fail_closed",
  "tests/unit/test_openrouter_vlm_client.py::test_non_string_content_records_then_raises",
  "tests/unit/test_openrouter_vlm_client.py::test_response_format_400_fallback_records_both",
  "tests/unit/test_openrouter_vlm_client.py::test_schema_violation_feedback_retry_records_each",
  "tests/unit/test_openrouter_vlm_client.py::test_success_one_roundtrip_one_record",
  "tests/unit/test_openrouter_vlm_client.py::test_unexpected_shape_records_then_raises",
  "tests/unit/test_opik_audit_span_source.py::test_axis_tag_wins_over_legacy",
  "tests/unit/test_opik_audit_span_source.py::test_call_step_falls_back_to_span_name_last",
  "tests/unit/test_opik_audit_span_source.py::test_call_step_prefers_own_axis_tag",
  "tests/unit/test_opik_audit_span_source.py::test_call_step_reaches_parent_even_when_span_name_is_set",
  "tests/unit/test_opik_audit_span_source.py::test_caveat_helper_exists",
  "tests/unit/test_opik_audit_span_source.py::test_caveat_is_reported",
  "tests/unit/test_opik_audit_span_source.py::test_counting_uses_spans_only",
  "tests/unit/test_opik_audit_span_source.py::test_main_passes_the_counts_to_render",
  "tests/unit/test_opik_audit_span_source.py::test_orphan_span_is_kept",
  "tests/unit/test_opik_audit_span_source.py::test_real_project_id_is_never_filtered",
  "tests/unit/test_opik_audit_span_source.py::test_report_calls_the_unit_a_span_not_a_trace",
  "tests/unit/test_opik_audit_span_source.py::test_report_renders_the_caveat",
  "tests/unit/test_opik_audit_span_source.py::test_report_shows_excluded_test_rows",
  "tests/unit/test_opik_audit_span_source.py::test_step_falls_back_to_legacy_trace_name",
  "tests/unit/test_opik_audit_span_source.py::test_step_falls_back_to_name",
  "tests/unit/test_opik_audit_span_source.py::test_step_from_axis_tag",
  "tests/unit/test_opik_audit_span_source.py::test_test_origin_fake_identity",
  "tests/unit/test_opik_audit_span_source.py::test_test_origin_no_identity_zero_duration",
  "tests/unit/test_opik_audit_span_source.py::test_test_span_is_filtered_via_its_parent",
  "tests/unit/test_opik_audit_span_source.py::test_trace_index_widens_the_window",
  "tests/unit/test_opik_audit_static_clusters.py::test_mixed_call_shapes_keep_their_static_share",
  "tests/unit/test_opik_audit_static_clusters.py::test_resend_chars_counts_only_repeats",
  "tests/unit/test_opik_audit_static_clusters.py::test_single_call_cluster_is_not_all_static",
  "tests/unit/test_opik_audit_static_clusters.py::test_user_side_stays_variable",
  "tests/unit/test_opik_direct_router_callers.py::test_ref_lvm_attaches_to_open_parent",
  "tests/unit/test_opik_direct_router_callers.py::test_ref_lvm_call_carries_axis_tags",
  "tests/unit/test_opik_direct_router_callers.py::test_text_cleaner_carries_axis_tags",
  "tests/unit/test_opik_metadata_keys.py::test_axis_whitelist_not_just_a_colon",
  "tests/unit/test_opik_metadata_keys.py::test_litellm_honored_keys_are_the_contract",
  "tests/unit/test_opik_metadata_keys.py::test_v1_fallback_tags_are_untouched",
  "tests/unit/test_opik_metadata_keys.py::test_v1_keeps_session_id_untouched",
  "tests/unit/test_opik_metadata_keys.py::test_v1_tags_are_untouched",
  "tests/unit/test_opik_metadata_keys.py::test_v2_attaches_parent_when_trace_open",
  "tests/unit/test_opik_metadata_keys.py::test_v2_call_step_becomes_op_axis",
  "tests/unit/test_opik_metadata_keys.py::test_v2_does_not_hijack_litellm_project_name",
  "tests/unit/test_opik_metadata_keys.py::test_v2_drops_bare_names",
  "tests/unit/test_opik_metadata_keys.py::test_v2_fallback_tags_carry_the_status_axis",
  "tests/unit/test_opik_metadata_keys.py::test_v2_keeps_already_axed_tags_from_step_runner",
  "tests/unit/test_opik_metadata_keys.py::test_v2_moves_session_to_thread_id",
  "tests/unit/test_opik_metadata_keys.py::test_v2_only_fills_the_three_honored_keys",
  "tests/unit/test_opik_metadata_keys.py::test_v2_without_parent_has_no_span_data",
  "tests/unit/test_opik_selfhost_env.py::test_neither_key_nor_url_disables",
  "tests/unit/test_opik_selfhost_env.py::test_url_only_enables_callback",
  "tests/unit/test_opik_step_trace.py::test_step_scope_opens_named_trace",
  "tests/unit/test_opik_step_trace.py::test_step_trace_helper_is_noop_when_disabled",
  "tests/unit/test_opik_test_project_isolation.py::test_env_var_is_set_for_child_readers",
  "tests/unit/test_opik_test_project_isolation.py::test_image_tracer_would_use_the_test_project",
  "tests/unit/test_opik_test_project_isolation.py::test_settings_use_test_opik_project",
  "tests/unit/test_opik_thread_grouping.py::test_thread_id_differs_per_episode",
  "tests/unit/test_opik_thread_grouping.py::test_thread_id_is_stable_across_calls",
  "tests/unit/test_opik_thread_grouping.py::test_thread_id_survives_missing_names",
  "tests/unit/test_opik_thread_grouping.py::test_v1_metadata_unchanged",
  "tests/unit/test_opik_thread_grouping.py::test_v2_thread_id_survives_without_run_tag",
  "tests/unit/test_opik_thread_grouping.py::test_v2_uses_thread_id_and_axis_tags",
  "tests/unit/test_opik_trace_primitives.py::test_axis_tags_carry_prefixes",
  "tests/unit/test_opik_trace_primitives.py::test_axis_tags_never_emit_bare_names",
  "tests/unit/test_opik_trace_primitives.py::test_axis_tags_skip_empty_axes",
  "tests/unit/test_opik_trace_primitives.py::test_axis_tags_treat_blank_as_absent[  ]",
  "tests/unit/test_opik_trace_primitives.py::test_axis_tags_treat_blank_as_absent[None]",
  "tests/unit/test_opik_trace_primitives.py::test_axis_tags_treat_blank_as_absent[\\t]",
  "tests/unit/test_opik_trace_primitives.py::test_axis_tags_treat_blank_as_absent[]",
  "tests/unit/test_opik_trace_primitives.py::test_uid_is_time_ordered",
  "tests/unit/test_opik_trace_primitives.py::test_uid_is_unique",
  "tests/unit/test_opik_trace_primitives.py::test_uid_is_uuid_version_7",
  "tests/unit/test_opik_trace_scope.py::test_bind_and_reset_for_worker_threads",
  "tests/unit/test_opik_trace_scope.py::test_client_failure_is_non_fatal",
  "tests/unit/test_opik_trace_scope.py::test_disabled_yields_none_and_sends_nothing",
  "tests/unit/test_opik_trace_scope.py::test_inner_scope_wins_and_outer_returns",
  "tests/unit/test_opik_trace_scope.py::test_no_trace_outside_scope",
  "tests/unit/test_opik_trace_scope.py::test_scope_restores_on_exception",
  "tests/unit/test_opik_trace_scope.py::test_scope_sets_and_restores",
  "tests/unit/test_opik_trace_worker_propagation.py::test_bind_current_trace_carries_parent_into_worker",
  "tests/unit/test_opik_trace_worker_propagation.py::test_contextvar_does_not_cross_threads_by_itself",
  "tests/unit/test_opik_trace_worker_propagation.py::test_no_parent_is_not_an_error",
  "tests/unit/test_opik_trace_worker_propagation.py::test_worker_restores_after_run",
  "tests/unit/test_opik_trace_worker_propagation.py::test_wrapper_is_transparent_to_args_and_exceptions",
  "tests/unit/test_outdoor_map_conti.py::test_build_map_bg_prompt_assembly",
  "tests/unit/test_outdoor_map_conti.py::test_judge_missing_defaults_false",
  "tests/unit/test_outdoor_map_conti.py::test_run_existing_png_without_sidecar_regenerates",
  "tests/unit/test_outdoor_map_conti.py::test_run_extra_fingerprint_change_regenerates",
  "tests/unit/test_outdoor_map_conti.py::test_run_force_regenerates",
  "tests/unit/test_outdoor_map_conti.py::test_run_generates_and_skips",
  "tests/unit/test_outdoor_map_conti.py::test_run_no_canon_assets_skips",
  "tests/unit/test_outdoor_map_conti.py::test_run_regenerates_on_input_change",
  "tests/unit/test_outdoor_map_conti.py::test_run_resume_skips_existing",
  "tests/unit/test_outdoor_map_conti.py::test_run_resume_skips_with_matching_fingerprint",
  "tests/unit/test_outdoor_map_conti.py::test_spec_canon_gate_direct_or_map",
  "tests/unit/test_outdoor_map_conti.py::test_spec_canon_gate_direct_or_map_or_lane",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_allowed_wider_than_required_lets_optional_key_through",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_assert_parity_passes_with_optional_key_omitted",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_assert_parity_still_raises_for_required_key",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_default_behaviour_unchanged",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_key_outside_allowed_still_unexpected",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_optional_key_may_be_omitted",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_phase2_accepts_empty_row_for_empty_scene",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_phase2_accepts_omitted_empty_scene",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_phase2_requires_all_keys_when_char_map_absent",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_phase2_still_rejects_missing_populated_scene",
  "tests/unit/test_outlook_phase2_empty_scene_parity.py::test_required_key_missing_still_caught",
  "tests/unit/test_outlook_phase2_retry_stops_without_progress.py::test_leftover_pairs_are_logged",
  "tests/unit/test_outlook_phase2_retry_stops_without_progress.py::test_retry_continues_while_it_recovers",
  "tests/unit/test_outlook_phase2_retry_stops_without_progress.py::test_retry_stops_when_it_recovers_nothing",
  "tests/unit/test_outlook_phase3_name_reference.py::TestGate::test_id_outside_catalog_is_rejected",
  "tests/unit/test_outlook_phase3_name_reference.py::TestGate::test_missing_outlook_id_is_rejected",
  "tests/unit/test_outlook_phase3_name_reference.py::TestGate::test_predicate_rejects_so_lower_tiers_retry",
  "tests/unit/test_outlook_phase3_name_reference.py::TestGate::test_valid_assignment_passes",
  "tests/unit/test_outlook_phase3_name_reference.py::TestPhase3PruningContract::test_assignments_with_ids_are_not_pruned",
  "tests/unit/test_outlook_phase3_name_reference.py::TestSchemaPinsTheReference::test_no_enum_no_gate_when_catalog_empty",
  "tests/unit/test_outlook_phase3_name_reference.py::TestSchemaPinsTheReference::test_no_enum_when_catalog_empty",
  "tests/unit/test_outlook_phase3_name_reference.py::TestSchemaPinsTheReference::test_outlook_id_is_required_not_optional",
  "tests/unit/test_owned_helpers.py::TestAssertBgPromptOwnedContract::test_bg_mode_off_allows_none",
  "tests/unit/test_owned_helpers.py::TestAssertBgPromptOwnedContract::test_bg_mode_on_none_cp_blocks",
  "tests/unit/test_owned_helpers.py::TestAssertBgPromptOwnedContract::test_bg_mode_on_old_v4_cp_blocks",
  "tests/unit/test_owned_helpers.py::TestAssertBgPromptOwnedContract::test_bg_mode_on_v5_cp_failed_status_skipped",
  "tests/unit/test_owned_helpers.py::TestAssertBgPromptOwnedContract::test_bg_mode_on_v5_cp_partial_owned_blocks",
  "tests/unit/test_owned_helpers.py::TestAssertBgPromptOwnedContract::test_bg_mode_on_v5_cp_with_owned_passes",
  "tests/unit/test_owned_helpers.py::TestAssertBgPromptOwnedContract::test_empty_owned_list_blocks",
  "tests/unit/test_owned_helpers.py::TestAssertBgPromptOwnedContract::test_korean_only_owned_blocks",
  "tests/unit/test_owned_helpers.py::TestAssertBgPromptOwnedContract::test_mixed_korean_english_owned_blocks",
  "tests/unit/test_owned_helpers.py::TestAssertBgPromptOwnedContract::test_owned_all_whitespace_blocks_via_normalize",
  "tests/unit/test_owned_helpers.py::TestAssertCloseFramingAbsentEcho::test_absent_with_nonempty_source_phrase_raises",
  "tests/unit/test_owned_helpers.py::TestAssertCloseFramingAbsentEcho::test_all_absent_empty_passes",
  "tests/unit/test_owned_helpers.py::TestAssertCloseFramingAbsentEcho::test_empty_list_passes",
  "tests/unit/test_owned_helpers.py::TestAssertCloseFramingAbsentEcho::test_non_absent_usage_kind_raises",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_bool_schema_version_raises",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_invalid_schema_version_raises",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_invalid_validator_raises",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_missing_field_raises",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_non_hex_hash_raises",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_non_int_schema_version_raises",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_short_hash_raises[camera_direction_hash]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_short_hash_raises[owned_hash]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_short_hash_raises[owned_usage_hash]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_short_hash_raises[t2i_prompt_hash]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_uppercase_hash_raises[camera_direction_hash]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_uppercase_hash_raises[owned_hash]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_uppercase_hash_raises[owned_usage_hash]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_uppercase_hash_raises[t2i_prompt_hash]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_valid_close_skip",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_valid_full",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_violation_item_missing_str_field_raises[owned_object]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_violation_item_missing_str_field_raises[reason]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_violation_item_missing_str_field_raises[violating_phrase]",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_violation_item_not_dict_raises",
  "tests/unit/test_owned_helpers.py::TestAssertOwnedSentinelShape::test_violations_must_be_list",
  "tests/unit/test_owned_helpers.py::TestBuildOwnedSentinel::test_close_skip_sentinel_includes_all_hashes",
  "tests/unit/test_owned_helpers.py::TestBuildOwnedSentinel::test_full_sentinel_no_violations",
  "tests/unit/test_owned_helpers.py::TestBuildOwnedSentinel::test_full_sentinel_with_violations",
  "tests/unit/test_owned_helpers.py::TestBuildOwnedSentinel::test_t2i_prompt_change_changes_hash",
  "tests/unit/test_owned_helpers.py::TestComputeCameraDirectionHash::test_different_text_different_hash",
  "tests/unit/test_owned_helpers.py::TestComputeCameraDirectionHash::test_empty_string",
  "tests/unit/test_owned_helpers.py::TestComputeCameraDirectionHash::test_returns_16_char_hex",
  "tests/unit/test_owned_helpers.py::TestComputeOwnedHash::test_deterministic_same_input",
  "tests/unit/test_owned_helpers.py::TestComputeOwnedHash::test_empty_list",
  "tests/unit/test_owned_helpers.py::TestComputeOwnedHash::test_order_independent_via_internal_sort",
  "tests/unit/test_owned_helpers.py::TestComputeOwnedHash::test_order_independent_via_sort",
  "tests/unit/test_owned_helpers.py::TestComputeOwnedHash::test_returns_16_char_hex",
  "tests/unit/test_owned_helpers.py::TestComputeT2iPromptHash::test_deterministic",
  "tests/unit/test_owned_helpers.py::TestComputeT2iPromptHash::test_empty_string",
  "tests/unit/test_owned_helpers.py::TestComputeT2iPromptHash::test_exact_string_match",
  "tests/unit/test_owned_helpers.py::TestComputeT2iPromptHash::test_returns_16_char_hex",
  "tests/unit/test_owned_helpers.py::TestHasRedrawViolation::test_empty_array_returns_false",
  "tests/unit/test_owned_helpers.py::TestHasRedrawViolation::test_mixed_schema_raises_strict",
  "tests/unit/test_owned_helpers.py::TestHasRedrawViolation::test_partial_schema_falls_back_to_legacy",
  "tests/unit/test_owned_helpers.py::TestHasRedrawViolation::test_v1_legacy_any_violation_returns_true",
  "tests/unit/test_owned_helpers.py::TestHasRedrawViolation::test_v2_all_anchor_reference_returns_false",
  "tests/unit/test_owned_helpers.py::TestHasRedrawViolation::test_v2_all_redraw_returns_true",
  "tests/unit/test_owned_helpers.py::TestHasRedrawViolation::test_v2_at_least_one_redraw_returns_true",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_cjk_ideograph_raises",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_dedupes_case_sensitive",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_drops_cjk_ideograph_items",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_drops_empty_and_whitespace_only",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_drops_japanese_kana_items",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_drops_korean_hangul_items",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_drops_mixed_korean_english",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_drops_non_string",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_empty_input",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_japanese_kana_raises",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_korean_hangul_raises",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_mixed_korean_english_raises",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_non_string_int_raises",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_non_string_raises",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_overlength_raises",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_pure_ascii_passes",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_sorted_ascending",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_strips_whitespace",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_truncates_to_max_len",
  "tests/unit/test_owned_helpers.py::TestNormalizeOwnedList::test_whitespace_only_silent_drop_intended",
  "tests/unit/test_owned_helpers.py::TestSentinelShapeVerdictOptional::test_v1_legacy_no_verdict_passes",
  "tests/unit/test_owned_helpers.py::TestSentinelShapeVerdictOptional::test_v2_invalid_verdict_raises",
  "tests/unit/test_owned_helpers.py::TestSentinelShapeVerdictOptional::test_v2_valid_verdict_passes",
  "tests/unit/test_owned_helpers_refresh.py::test_refresh_changes_only_t2i_prompt_hash",
  "tests/unit/test_owned_helpers_refresh.py::test_refresh_noop_when_already_matching",
  "tests/unit/test_owned_helpers_refresh.py::test_refresh_raises_on_invalid_sentinel",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g10a_prop_term_map_none_returns_input_reference",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g10b_prop_term_map_empty_returns_input_reference",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g10c_empty_violations_no_exception",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g10d_anchor_reference_entry_is_idempotent",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g10e_violation_missing_verdict_key_is_untouched",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g11_producer_expanded_term_set_covers_s28_scenario",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g12_violating_phrase_must_contain_pid_when_source_phrase_echoes_pid",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g1_happy_path_reclasses_to_anchor_reference",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g2_visible_entities_missing_prop_returns_input_reference",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g3_prompt_missing_p_literal_no_reclass",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g4_owned_token_not_in_prop_term_map_no_reclass",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g5_no_source_phrase_linkage_no_reclass",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g6a_multi_word_owned_token_matches_full_prop_term",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g6b_single_word_token_does_not_split_multi_word_prop_terms",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g7_single_word_token_requires_word_boundary",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g8_idempotent_does_not_re_append_note",
  "tests/unit/test_owned_prop_namespace_reconciliation.py::test_g9_inputs_are_not_mutated_reclassed_entries_are_new_objects",
  "tests/unit/test_parallel_rolls_on_live_branches.py::test_at_least_one_single_roll_branch_exists",
  "tests/unit/test_parallel_rolls_on_live_branches.py::test_every_multi_roll_branch_generates_rolls_in_parallel",
  "tests/unit/test_parallel_rolls_on_live_branches.py::test_single_roll_branches_are_left_alone",
  "tests/unit/test_parallel_rolls_on_live_branches.py::test_the_service_has_branch_calls_at_all",
  "tests/unit/test_people_clause_scene.py::test_all_names_are_listed_in_scene_variant[names0]",
  "tests/unit/test_people_clause_scene.py::test_all_names_are_listed_in_scene_variant[names1]",
  "tests/unit/test_people_clause_scene.py::test_all_names_are_listed_in_scene_variant[names2]",
  "tests/unit/test_people_clause_scene.py::test_body_part_rule_survives_in_both_variants",
  "tests/unit/test_people_clause_scene.py::test_default_is_exact_so_existing_callers_are_unchanged",
  "tests/unit/test_people_clause_scene.py::test_empty_shot_ve_falls_back_and_is_not_exact",
  "tests/unit/test_people_clause_scene.py::test_exact_assignment_keeps_exclusive_clause",
  "tests/unit/test_people_clause_scene.py::test_legacy_wrapper_keeps_returning_ids_only",
  "tests/unit/test_people_clause_scene.py::test_no_characters_is_unaffected_by_exact_flag",
  "tests/unit/test_people_clause_scene.py::test_no_scene_data_is_not_exact_and_empty",
  "tests/unit/test_people_clause_scene.py::test_scene_guess_defers_to_shot_text",
  "tests/unit/test_people_clause_scene.py::test_scene_guess_drops_exclusive_clause",
  "tests/unit/test_people_clause_scene.py::test_scene_guess_still_forbids_inventing_people",
  "tests/unit/test_people_clause_scene.py::test_shot_ve_present_is_exact",
  "tests/unit/test_pick_judge_fallback_seal.py::test_both_judges_are_recorded_even_when_one_dies",
  "tests/unit/test_pick_judge_fallback_seal.py::test_the_call_asks_for_its_usage",
  "tests/unit/test_pick_judge_fallback_seal.py::test_the_dual_judge_call_seals_the_fallback",
  "tests/unit/test_pick_judge_fallback_seal.py::test_the_early_return_keeps_the_money_it_already_spent",
  "tests/unit/test_pick_judge_fallback_seal.py::test_the_pick_call_seals_router_retries",
  "tests/unit/test_pick_judge_fallback_seal.py::test_the_pick_call_seals_router_retries_too",
  "tests/unit/test_pick_judge_fallback_seal.py::test_the_record_separates_asked_from_answered",
  "tests/unit/test_pick_judge_fallback_seal.py::test_the_tier3_really_goes_to_gpt",
  "tests/unit/test_pick_judge_fallback_seal.py::test_this_place_is_already_dual",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_available_sections_marks_places",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_both_writers_use_the_same_rule",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_empty_planning_doc_changes_nothing",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_outlook_phase1_sends_the_planning_block",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_outlook_phase1_without_planning_is_byte_identical",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_places_are_not_gated_to_the_first_episode",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_places_inject_like_characters",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_the_analysis_schema_has_a_place_slot",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_the_detail_pack_allows_planning_only_permanent_traits",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_the_orphan_retry_also_carries_it",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_the_outlook_pack_tells_it_to_use_the_planning_doc",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_the_outlook_step_folds_the_pack_it_actually_uses",
  "tests/unit/test_planning_doc_reaches_characters_and_places.py::test_the_outlook_step_passes_it",
  "tests/unit/test_plate_multiroll.py::test_failure_isolated_to_node",
  "tests/unit/test_plate_multiroll.py::test_fix_rejudge_flag_off_keeps_fix_final",
  "tests/unit/test_plate_multiroll.py::test_fix_rejudge_flag_wires_2cand_judge",
  "tests/unit/test_plate_multiroll.py::test_fix_rejudge_header_is_neutral_and_wired",
  "tests/unit/test_plate_multiroll.py::test_flag_off_keeps_legacy_renderer",
  "tests/unit/test_plate_multiroll.py::test_flag_on_routes_to_multiroll",
  "tests/unit/test_plate_multiroll.py::test_multiroll_plate_critique_fix_is_final",
  "tests/unit/test_plate_multiroll.py::test_multiroll_plate_selects_and_labels",
  "tests/unit/test_plate_select.py::test_authority_fingerprint_reuse_zero_calls",
  "tests/unit/test_plate_select.py::test_authority_judges_and_persists_sidecar",
  "tests/unit/test_plate_select.py::test_authority_refingerprints_on_plate_bytes_change",
  "tests/unit/test_plate_select.py::test_authority_rejects_non_file_choice_and_stale_sidecar",
  "tests/unit/test_plate_select.py::test_authority_skips_assigned_outside_candidates",
  "tests/unit/test_plate_select.py::test_authority_skips_ineligible_shots",
  "tests/unit/test_plate_select.py::test_candidates_by_location_ok_and_existing_only",
  "tests/unit/test_plate_select.py::test_candidates_reject_directories",
  "tests/unit/test_plate_select.py::test_location_of_bg_id_contract_format_only",
  "tests/unit/test_plate_select.py::test_pack_is_scenario_neutral",
  "tests/unit/test_plate_select.py::test_select_assigned_outside_candidates_noop",
  "tests/unit/test_plate_select.py::test_select_judge_error_keeps_assigned",
  "tests/unit/test_plate_select.py::test_select_low_confidence_switch_blocked",
  "tests/unit/test_plate_select.py::test_select_out_of_contract_choice_keeps_assigned",
  "tests/unit/test_plate_select.py::test_select_single_candidate_skips_judgment",
  "tests/unit/test_plate_select.py::test_select_switches_on_clear_choice",
  "tests/unit/test_plate_select.py::test_unknown_version_raises",
  "tests/unit/test_prev_usage_scope.py::test_an_unrelated_stem_does_not_move_it",
  "tests/unit/test_prev_usage_scope.py::test_editing_the_clause_bytes_moves_the_step_fingerprint",
  "tests/unit/test_prev_usage_scope.py::test_excluding_a_person_is_still_allowed",
  "tests/unit/test_prev_usage_scope.py::test_no_clause_when_there_is_no_usage",
  "tests/unit/test_prev_usage_scope.py::test_only_the_prev_stem_changed",
  "tests/unit/test_prev_usage_scope.py::test_staging_was_deliberately_not_added_as_a_dependency",
  "tests/unit/test_prev_usage_scope.py::test_take_no_longer_asks_for_a_persons_pose",
  "tests/unit/test_prev_usage_scope.py::test_taking_a_place_is_still_allowed",
  "tests/unit/test_prev_usage_scope.py::test_the_camera_axis_is_forbidden_on_both_sides",
  "tests/unit/test_prev_usage_scope.py::test_the_clause_states_its_own_scope",
  "tests/unit/test_prev_usage_scope.py::test_the_clause_still_carries_the_value",
  "tests/unit/test_prev_usage_scope.py::test_the_folded_pack_is_the_one_the_clause_reads",
  "tests/unit/test_prev_usage_scope.py::test_the_heading_lives_in_a_pack_now",
  "tests/unit/test_prev_usage_scope.py::test_the_old_pack_is_untouched",
  "tests/unit/test_prev_usage_scope.py::test_the_step_uses_the_new_pack",
  "tests/unit/test_prompt_sanitizer_constraints.py::test_apply_semantic_override_dedups_existing_marker",
  "tests/unit/test_prompt_sanitizer_constraints.py::test_immobilized_layer1_includes_all_true_forbid_flags",
  "tests/unit/test_prompt_sanitizer_constraints.py::test_pose_locked_layer1_omits_false_forbid_flags",
  "tests/unit/test_prompt_sanitizer_constraints.py::test_sanitize_no_constraints_unchanged",
  "tests/unit/test_prompt_sanitizer_constraints.py::test_sanitize_two_layer_defense",
  "tests/unit/test_prompt_schema_openai_strict.py::test_all_prompt_schemas_openai_strict_compatible",
  "tests/unit/test_prompt_schema_openai_strict.py::test_code_defined_schemas_openai_strict_compatible",
  "tests/unit/test_prompt_schema_openai_strict.py::test_latest_prompt_schemas_openai_strict_compatible",
  "tests/unit/test_prop_merge_rule.py::test_pose_alone_does_not_mint_a_new_prop",
  "tests/unit/test_prop_merge_rule.py::test_props_and_characters_share_one_principle",
  "tests/unit/test_prop_merge_rule.py::test_the_drawing_test_is_the_merge_criterion",
  "tests/unit/test_prop_merge_rule.py::test_the_exclusion_rule_is_untouched",
  "tests/unit/test_prop_merge_rule.py::test_the_live_pack_still_has_every_stem[character]",
  "tests/unit/test_prop_merge_rule.py::test_the_live_pack_still_has_every_stem[location]",
  "tests/unit/test_prop_merge_rule.py::test_the_live_pack_still_has_every_stem[prop]",
  "tests/unit/test_prop_merge_rule.py::test_the_live_pack_still_has_every_stem[system]",
  "tests/unit/test_prop_merge_rule.py::test_the_merge_example_that_caused_it_is_gone",
  "tests/unit/test_prop_merge_rule.py::test_the_merge_line_is_scoped_by_visual_form",
  "tests/unit/test_prop_merge_rule.py::test_the_visual_form_rule_survives",
  "tests/unit/test_provider_call_identity.py::test_StepRunner_가_신원을_컨텍스트에_싣는다",
  "tests/unit/test_provider_call_identity.py::test_scope_가_전혀_없으면_빈_메타",
  "tests/unit/test_provider_call_identity.py::test_스텝_컨텍스트만_있어도_신원이_붙는다",
  "tests/unit/test_provider_call_identity.py::test_스텝_컨텍스트의_기록용_키는_새지_않는다",
  "tests/unit/test_provider_call_identity.py::test_포착_scope_가_스텝_컨텍스트를_이긴다",
  "tests/unit/test_provider_call_identity.py::test_포착_scope_에_신원이_비어도_스텝_컨텍스트가_메운다",
  "tests/unit/test_published_pack_ratchet.py::test_a_new_pack_directory_is_allowed",
  "tests/unit/test_published_pack_ratchet.py::test_a_published_pack_was_not_edited_in_place",
  "tests/unit/test_published_pack_ratchet.py::test_every_pack_has_at_least_one_stem",
  "tests/unit/test_published_pack_ratchet.py::test_no_stem_was_added_to_a_published_pack",
  "tests/unit/test_published_pack_ratchet.py::test_the_baseline_covers_every_module_on_disk",
  "tests/unit/test_published_pack_ratchet.py::test_the_pack_set_matches_the_baseline_exactly",
  "tests/unit/test_qk_judge_transition.py::test_judge_fn_dispatches_openrouter_models",
  "tests/unit/test_qk_judge_transition.py::test_judge_fn_gq_classic_unchanged",
  "tests/unit/test_qk_judge_transition.py::test_judge_fn_qk_dispatch_and_route",
  "tests/unit/test_qk_judge_transition.py::test_judge_gq_priority_route_default_unchanged",
  "tests/unit/test_qk_judge_transition.py::test_judge_gq_qk_priority_route_label",
  "tests/unit/test_qk_judge_transition.py::test_judge_gq_qk_reversed_slots_qwen_priority",
  "tests/unit/test_qk_judge_transition.py::test_qk_critique_composes_with_main_and_records_observer",
  "tests/unit/test_qk_judge_transition.py::test_qk_critique_composes_with_qwen_and_records_observer",
  "tests/unit/test_qk_judge_transition.py::test_qk_critique_no_observations_skips_compose",
  "tests/unit/test_qk_judge_transition.py::test_qk_critique_pack_is_v10_and_gq_pack_untouched",
  "tests/unit/test_qk_judge_transition.py::test_qk_critique_pack_is_v9_and_gq_pack_untouched",
  "tests/unit/test_qk_judge_transition.py::test_qk_critique_severity_rebinds_to_observer",
  "tests/unit/test_qk_judge_transition.py::test_qk_critique_without_severity_keeps_legacy_shape",
  "tests/unit/test_qk_judge_transition.py::test_qk_select_policy_version_bumped_for_reversal",
  "tests/unit/test_qk_judge_transition.py::test_qk_select_policy_version_reflects_sealed_contract",
  "tests/unit/test_qk_judge_transition.py::test_resolve_models_qk_on_returns_openrouter_pair",
  "tests/unit/test_qk_judge_transition.py::test_resolve_models_qk_on_returns_qwen_main_gemini_assist",
  "tests/unit/test_qk_judge_transition.py::test_resolve_qk_and_gq_both_on_fails_closed",
  "tests/unit/test_qk_judge_transition.py::test_resolve_qk_blank_physical_model_slots_fail_closed",
  "tests/unit/test_qk_judge_transition.py::test_resolve_qk_duplicate_model_slots_fail_closed",
  "tests/unit/test_qk_judge_transition.py::test_resolve_qk_empty_model_slot_fails_closed",
  "tests/unit/test_qk_judge_transition.py::test_resolve_qk_off_is_byte_identical_legacy",
  "tests/unit/test_qk_judge_transition.py::test_resolve_qk_on_without_dashscope_key_fails_closed",
  "tests/unit/test_qk_judge_transition.py::test_resolve_qk_on_without_key_fails_closed",
  "tests/unit/test_qk_judge_transition.py::test_resolve_qk_on_without_openrouter_key_fails_closed",
  "tests/unit/test_qwen_vlm_client.py::test_ask_retry_exhausted_raises",
  "tests/unit/test_qwen_vlm_client.py::test_ask_schema_violation_refeeds_error_once",
  "tests/unit/test_qwen_vlm_client.py::test_ask_success_records_and_returns_payload",
  "tests/unit/test_qwen_vlm_client.py::test_client_without_key_fails_closed",
  "tests/unit/test_qwen_vlm_client.py::test_extract_json_fenced",
  "tests/unit/test_qwen_vlm_client.py::test_extract_json_none_raises",
  "tests/unit/test_qwen_vlm_client.py::test_extract_json_plain",
  "tests/unit/test_qwen_vlm_client.py::test_extract_json_with_reasoning_noise",
  "tests/unit/test_qwen_vlm_client.py::test_invalid_local_schema_records_then_raises",
  "tests/unit/test_qwen_vlm_client.py::test_unexpected_shape_records_then_raises",
  "tests/unit/test_record_taxonomy_a1.py::test_capture_scope_stage_still_wins",
  "tests/unit/test_record_taxonomy_a1.py::test_no_step_tag_falls_back",
  "tests/unit/test_record_taxonomy_a1.py::test_pdf_extract_carries_the_callers_lineage",
  "tests/unit/test_record_taxonomy_a1.py::test_pdf_extract_lineage_rides_the_thread_local",
  "tests/unit/test_record_taxonomy_a1.py::test_pdf_extract_names_the_op_even_without_a_step",
  "tests/unit/test_record_taxonomy_a1.py::test_pdf_extract_still_names_the_op_when_no_lineage",
  "tests/unit/test_record_taxonomy_a1.py::test_pdf_extract_takes_no_lineage_argument",
  "tests/unit/test_record_taxonomy_a1.py::test_round_trip_never_doubles_the_prefix",
  "tests/unit/test_record_taxonomy_a1.py::test_step_axis_is_picked_by_name_not_by_position",
  "tests/unit/test_record_taxonomy_a1.py::test_step_name_from_axis_tag_has_no_prefix",
  "tests/unit/test_record_taxonomy_a1.py::test_the_step_actually_passes_its_lineage",
  "tests/unit/test_ref_dual_combine.py::test_a_dead_model_does_not_buy_either",
  "tests/unit/test_ref_dual_combine.py::test_a_dead_model_keeps_the_original",
  "tests/unit/test_ref_dual_combine.py::test_a_single_severe_does_not_buy_another_image",
  "tests/unit/test_ref_dual_combine.py::test_both_callers_use_the_single_dual_contract",
  "tests/unit/test_ref_dual_combine.py::test_issues_are_appended_not_filtered",
  "tests/unit/test_ref_dual_combine.py::test_only_both_severe_opens_the_wallet[minor-minor-minor]",
  "tests/unit/test_ref_dual_combine.py::test_only_both_severe_opens_the_wallet[minor-severe-split]",
  "tests/unit/test_ref_dual_combine.py::test_only_both_severe_opens_the_wallet[ok-minor-split]",
  "tests/unit/test_ref_dual_combine.py::test_only_both_severe_opens_the_wallet[ok-ok-ok]",
  "tests/unit/test_ref_dual_combine.py::test_only_both_severe_opens_the_wallet[severe-minor-split]",
  "tests/unit/test_ref_dual_combine.py::test_only_both_severe_opens_the_wallet[severe-severe-severe]",
  "tests/unit/test_ref_dual_combine.py::test_only_both_switch[image_1-image_1-image_1]",
  "tests/unit/test_ref_dual_combine.py::test_only_both_switch[image_1-image_2-image_1]",
  "tests/unit/test_ref_dual_combine.py::test_only_both_switch[image_2-image_1-image_1]",
  "tests/unit/test_ref_dual_combine.py::test_only_both_switch[image_2-image_2-image_2]",
  "tests/unit/test_ref_dual_combine.py::test_scores_are_not_averaged",
  "tests/unit/test_ref_dual_combine.py::test_the_comparison_does_not_invent_a_score",
  "tests/unit/test_ref_dual_combine.py::test_the_comparison_record_survives_the_image_1_path",
  "tests/unit/test_ref_dual_combine.py::test_the_shape_the_caller_reads_is_unchanged",
  "tests/unit/test_ref_dual_combine.py::test_the_transport_stays_a_transport",
  "tests/unit/test_reference_sanitize_keeps_one_figure.py::test_other_modes_are_untouched",
  "tests/unit/test_reference_sanitize_keeps_one_figure.py::test_the_override_keeps_the_requested_state",
  "tests/unit/test_reference_sanitize_keeps_one_figure.py::test_the_override_says_exactly_one_figure",
  "tests/unit/test_reference_sanitize_keeps_one_figure.py::test_the_reference_path_actually_passes_it",
  "tests/unit/test_render_prompt_card.py::TestAreaBDeletionGate::test_build_asset_requirements_signature_area_b",
  "tests/unit/test_render_prompt_card.py::TestAreaBDeletionGate::test_legacy_story_critical_identifiers_removed",
  "tests/unit/test_render_prompt_card.py::TestAreaBDeletionGate::test_v9_prompt_pack_area_b_context_no_fixed_category_list",
  "tests/unit/test_render_prompt_card.py::TestAreaBVisibleEntityDetailsMetadataJson::test_visible_entity_details_carries_metadata_json_for_prop",
  "tests/unit/test_render_prompt_card.py::TestAreaBVisibleEntityDetailsMetadataJson::test_visible_entity_details_metadata_json_dict_passthrough",
  "tests/unit/test_render_prompt_card.py::TestAreaBVisibleEntityDetailsMetadataJson::test_visible_entity_details_metadata_json_invalid_string_falls_back_empty",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_assert_card_shape_render_contracts_empty_list_passes",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_assert_card_shape_render_contracts_item_not_dict_rejects",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_assert_card_shape_render_contracts_not_list_rejects",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_assert_card_shape_render_contracts_required",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_asset_requirements_invalid_readiness_raises",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_background_binding_invalid_mode_raises",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_envelope_hash_absent_passes",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_envelope_hash_format_strict",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_envelope_hash_uppercase_rejects",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_envelope_hash_valid_passes",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_field_must_be_dict",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_input_not_dict_raises",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_missing_field_raises",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_missing_schema_version_raises",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_missing_shot_key_raises",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_not_applicable_mode_passes",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_render_strategy_invalid_mode_raises",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_schema_version_bool_rejects",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_schema_version_non_int_rejects",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_shot_key_missing_scene_index_raises",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_valid_passes",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_where_in_message",
  "tests/unit/test_render_prompt_card.py::TestAssertCardShape::test_wrong_schema_version_raises",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_bg_mode_off",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_close_framing_forbids_background",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_composite_id_format",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_constraints_present",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_full_assets",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_no_outlook_pair_no_outlook_ref",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_none_outlook_pairs_raises",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_none_visible_entities_raises",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_null_outlook_mixed_with_normal_outlook_only_o00_excluded",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_null_outlook_o00_excluded_from_character_outlook_required",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_state_variant_chars_excludes_character_outlook_required",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_state_variant_only_yields_readiness_na",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_used_outlook_pairs_does_not_affect_background_required",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_used_outlook_pairs_narrows_character_outlook_required",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirements::test_used_outlook_pairs_none_preserves_legacy_union",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirementsAreaB::test_new_signature_no_old_args",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirementsAreaB::test_render_contracts_propagates_to_required_refs",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirementsPropKind::test_existing_character_outlook_emit_unchanged",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirementsPropKind::test_frame_prop_required_when_close_framing",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirementsPropKind::test_photo_prop_required_when_close_framing",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirementsPropKind::test_photo_prop_required_with_character_outlook_preserved",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirementsPropKind::test_readiness_policy_block_when_prop_required_close_framing",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirementsPropKind::test_readiness_policy_block_when_prop_required_no_bg_mode",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirementsPropKind::test_visible_entities_none_still_fails_fast",
  "tests/unit/test_render_prompt_card.py::TestBuildAssetRequirementsPropKind::test_visible_photo_prop_not_required_when_not_in_shot_text",
  "tests/unit/test_render_prompt_card.py::TestBuildBackgroundBinding::test_bg_mode_off_short_circuits",
  "tests/unit/test_render_prompt_card.py::TestBuildBackgroundBinding::test_close_framing_skips_owned_and_camera",
  "tests/unit/test_render_prompt_card.py::TestBuildBackgroundBinding::test_constraints_always_present",
  "tests/unit/test_render_prompt_card.py::TestBuildBackgroundBinding::test_no_bg_id_returns_not_applicable",
  "tests/unit/test_render_prompt_card.py::TestBuildBackgroundBinding::test_non_close_with_bg_includes_owned",
  "tests/unit/test_render_prompt_card.py::TestBuildBackgroundBinding::test_none_bg_owned_raises",
  "tests/unit/test_render_prompt_card.py::TestBuildBackgroundBinding::test_none_bg_owned_raises_even_when_bg_off",
  "tests/unit/test_render_prompt_card.py::TestBuildBackgroundBinding::test_owned_list_not_mutated",
  "tests/unit/test_render_prompt_card.py::TestBuildBackgroundBinding::test_owned_objects_no_mention_constraint_when_owned_present",
  "tests/unit/test_render_prompt_card.py::TestBuildContinuityElementsUsed::test_all_empty_is_valid",
  "tests/unit/test_render_prompt_card.py::TestBuildContinuityElementsUsed::test_constraints_present",
  "tests/unit/test_render_prompt_card.py::TestBuildContinuityElementsUsed::test_forward_zoom_full_list_no_cap",
  "tests/unit/test_render_prompt_card.py::TestBuildContinuityElementsUsed::test_full_continuity",
  "tests/unit/test_render_prompt_card.py::TestBuildContinuityElementsUsed::test_full_text_preserved_no_truncation",
  "tests/unit/test_render_prompt_card.py::TestBuildContinuityElementsUsed::test_input_lists_not_mutated",
  "tests/unit/test_render_prompt_card.py::TestBuildContinuityElementsUsed::test_lossless_producer_fields_preserved",
  "tests/unit/test_render_prompt_card.py::TestBuildContinuityElementsUsed::test_none_fixed_elements_raises",
  "tests/unit/test_render_prompt_card.py::TestBuildContinuityElementsUsed::test_none_forward_zoom_targets_raises",
  "tests/unit/test_render_prompt_card.py::TestBuildContinuityElementsUsed::test_none_previous_shot_refs_raises",
  "tests/unit/test_render_prompt_card.py::TestBuildEmptyCard::test_envelope_has_5_field_placeholders",
  "tests/unit/test_render_prompt_card.py::TestBuildEmptyCard::test_envelope_has_schema_version",
  "tests/unit/test_render_prompt_card.py::TestBuildEmptyCard::test_envelope_has_shot_key",
  "tests/unit/test_render_prompt_card.py::TestBuildEmptyCard::test_no_extra_top_level_fields",
  "tests/unit/test_render_prompt_card.py::TestBuildIdPolicy::test_allowed_entities_propagated",
  "tests/unit/test_render_prompt_card.py::TestBuildIdPolicy::test_allowed_outlook_pairs_propagated",
  "tests/unit/test_render_prompt_card.py::TestBuildIdPolicy::test_common_noun_policy_static",
  "tests/unit/test_render_prompt_card.py::TestBuildIdPolicy::test_composite_id_always_true",
  "tests/unit/test_render_prompt_card.py::TestBuildIdPolicy::test_constraints_present",
  "tests/unit/test_render_prompt_card.py::TestBuildIdPolicy::test_demographic_fallback_true",
  "tests/unit/test_render_prompt_card.py::TestBuildIdPolicy::test_empty_inputs_still_valid",
  "tests/unit/test_render_prompt_card.py::TestBuildIdPolicy::test_none_outlook_pairs_raises",
  "tests/unit/test_render_prompt_card.py::TestBuildIdPolicy::test_none_visible_entities_raises",
  "tests/unit/test_render_prompt_card.py::TestBuildIdPolicy::test_perception_mode_reflection_adds_constraint",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderContracts::test_character_and_location_no_contract",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderContracts::test_multi_prop_sort_and_rc_id",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderContracts::test_non_visible_prop_no_contract",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderContracts::test_visible_prop_with_reference_required_false_no_contract",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderContracts::test_visible_prop_with_reference_required_true_emits_contract",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderPromptCard::test_bg_mode_off_propagates",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderPromptCard::test_close_framing_propagates_to_all_fields",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderPromptCard::test_full_round_trip",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_close_framing_detected",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_constraints_present_non_empty",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_default_mode_direct",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_insert_keyword_detected",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_korean_close_framing_detected",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_moment_lock_present",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_not_applicable_mode_is_valid_enum_member",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_perception_mode_default_direct_when_none",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_perception_mode_propagated",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_primary_subject_from_shot_info",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_staging_explicit_not_applicable_returns_mode_na",
  "tests/unit/test_render_prompt_card.py::TestBuildRenderStrategy::test_staging_required_but_missing_raises",
  "tests/unit/test_render_prompt_card.py::TestIdPolicyPhotoDepictionSplit::test_common_noun_rule_face_only",
  "tests/unit/test_render_prompt_card.py::TestIdPolicyPhotoDepictionSplit::test_constraints_item_one_split_note",
  "tests/unit/test_render_prompt_card.py::TestIdPolicyPhotoDepictionSplit::test_id_use_required_when_for_physical_prop",
  "tests/unit/test_render_prompt_card.py::TestRenderContractsCardHash::test_render_contracts_content_change_hash_differs",
  "tests/unit/test_render_prompt_card.py::TestRenderContractsCardHash::test_render_contracts_order_irrelevant_for_hash",
  "tests/unit/test_render_prompt_card.py::TestRequiredRefsFromRenderContracts::test_contract_to_required_refs",
  "tests/unit/test_render_prompt_card.py::TestRequiredRefsFromRenderContracts::test_empty_contracts_empty_refs",
  "tests/unit/test_render_prompt_card.py::TestRequiredRefsFromRenderContracts::test_unknown_dimension_consumer_raises",
  "tests/unit/test_render_prompt_card.py::TestRequiredRefsFromRenderContracts::test_unknown_strength_consumer_raises",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_character_and_location_entities_skipped",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_different_category_multi_prop_fallback_still_works",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_english_prop_name_fails_but_canonical_noun_matches",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_key_category_match_but_appearance_miss_skipped",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_korean_frame_name_matches_korean_canonical_in_shot_text",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_korean_photo_name_matches_korean_canonical_in_shot_text",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_no_visible_prop_returns_empty",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_non_story_critical_prop_skipped",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_prop_sid_in_t2i_prompt_satisfies_appearance",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_same_category_group_korean_english_mix_fallback_skipped",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_same_category_group_synonym_multi_prop_fallback_skipped",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_same_category_multi_prop_both_sids_explicit_emits_both",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_same_category_multi_prop_canonical_noun_fallback_skipped",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_same_category_multi_prop_only_one_sid_explicit_emits_one",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_same_category_multi_prop_with_explicit_sid_only_target_emitted",
  "tests/unit/test_render_prompt_card.py::TestStoryCriticalPropFilter::test_short_word_boundary_blocks_substring_false_positive",
  "tests/unit/test_render_prompt_card.py::TestValidateRenderContracts::test_invalid_entity_id_pattern_raises",
  "tests/unit/test_render_prompt_card.py::TestValidateRenderContracts::test_scope_scene_mismatch_raises",
  "tests/unit/test_render_prompt_card.py::TestValidateRenderContracts::test_shot_indices_multi_violation_raises",
  "tests/unit/test_render_prompt_card.py::TestValidateRenderContracts::test_targets_max_items_violation_raises",
  "tests/unit/test_render_prompt_card.py::TestValidateRenderContracts::test_unknown_dimension_raises",
  "tests/unit/test_render_prompt_card.py::TestValidateRenderContracts::test_unknown_operation_raises",
  "tests/unit/test_render_prompt_card.py::TestValidateRenderContracts::test_valid_contract_passes",
  "tests/unit/test_render_prompt_card.py::test_area_c_build_id_policy_non_dict_key_bg_element_raises",
  "tests/unit/test_render_prompt_card.py::test_area_c_common_noun_required_when_no_noun_enumeration",
  "tests/unit/test_render_prompt_card.py::test_area_c_constraints_do_not_emit_noun_list",
  "tests/unit/test_render_prompt_card.py::test_area_c_constraints_reference_applies_field",
  "tests/unit/test_render_prompt_card.py::test_area_c_reproduction_applies_false_when_no_content_or_reflective",
  "tests/unit/test_render_prompt_card.py::test_area_c_reproduction_applies_false_with_empty_key_bg_elements",
  "tests/unit/test_render_prompt_card.py::test_area_c_reproduction_applies_true_with_content_surface",
  "tests/unit/test_render_prompt_card.py::test_area_c_reproduction_applies_true_with_mixed",
  "tests/unit/test_render_prompt_card.py::test_area_c_reproduction_applies_true_with_reflective_surface",
  "tests/unit/test_render_prompt_card.py::test_area_c_reproduction_directionality_class_empty_string_raises",
  "tests/unit/test_render_prompt_card.py::test_area_c_reproduction_directionality_class_invalid_enum_raises",
  "tests/unit/test_render_prompt_card.py::test_area_c_reproduction_directionality_class_missing_raises",
  "tests/unit/test_render_prompt_card.py::test_area_c_reproduction_surface_rule_shape",
  "tests/unit/test_render_prompt_card.py::test_build_id_policy_injects_subject_reference_policy_empty_array",
  "tests/unit/test_render_prompt_card.py::test_build_id_policy_injects_subject_reference_policy_populated",
  "tests/unit/test_render_prompt_card.py::test_build_id_policy_no_longer_emits_body_part_focus_rule",
  "tests/unit/test_render_prompt_card.py::test_build_id_policy_requires_subject_reference_policies_kwarg",
  "tests/unit/test_render_prompt_card.py::test_build_render_strategy_carries_frame_spatial_contract",
  "tests/unit/test_render_prompt_card.py::test_build_render_strategy_cross_check_failure_raises",
  "tests/unit/test_render_prompt_card.py::test_build_render_strategy_non_visible_target_w4a_dropped",
  "tests/unit/test_render_prompt_card.py::test_build_render_strategy_null_contract_carries_null",
  "tests/unit/test_render_prompt_card.py::test_build_render_strategy_visible_entities_required_when_contract_present",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_asset_forbidden_ref_missing_reason_raises",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_asset_required_ref_missing_policy_raises",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_background_binding_owned_objects_must_be_str_list",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_continuity_fixed_elements_full_10_field_passes",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_continuity_fixed_elements_full_9_field_passes",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_continuity_fixed_elements_missing_10th_field_raises",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_continuity_fixed_elements_missing_9th_field_raises",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_continuity_fixed_elements_missing_element_scope_raises",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_continuity_forward_zoom_missing_description_raises",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_continuity_previous_shot_refs_missing_ref_usage_raises",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_id_policy_allowed_base_entity_ids_items_must_be_str",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_id_policy_allowed_base_entity_ids_must_be_list",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_id_policy_outlook_pair_missing_character_id_raises",
  "tests/unit/test_render_prompt_card_hash.py::TestAssertCardShapeStrictI1::test_id_policy_outlook_pair_missing_outlook_id_raises",
  "tests/unit/test_render_prompt_card_hash.py::TestCanonicalizeListOrdering::test_allowed_base_entity_ids_order_invariant",
  "tests/unit/test_render_prompt_card_hash.py::TestCanonicalizeListOrdering::test_allowed_outlook_pairs_order_invariant",
  "tests/unit/test_render_prompt_card_hash.py::TestCanonicalizeListOrdering::test_fixed_elements_order_invariant",
  "tests/unit/test_render_prompt_card_hash.py::TestCanonicalizeListOrdering::test_forbidden_refs_order_invariant",
  "tests/unit/test_render_prompt_card_hash.py::TestCanonicalizeListOrdering::test_owned_objects_order_invariant",
  "tests/unit/test_render_prompt_card_hash.py::TestCanonicalizeListOrdering::test_required_refs_order_invariant",
  "tests/unit/test_render_prompt_card_hash.py::TestCardMetadataExcludedFromHash::test_card_metadata_change_does_not_affect_hash",
  "tests/unit/test_render_prompt_card_hash.py::TestCardMetadataExcludedFromHash::test_card_metadata_does_not_affect_hash",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_camera_direction_change_changes_hash",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_deterministic_same_input",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_fixed_element_addition_changes_hash",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_hash_self_excluded_from_payload",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_key_order_independent_via_sort",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_korean_description_preserved_in_hash",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_outlook_pair_change_changes_hash",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_owned_change_changes_hash",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_returns_16_char_hex",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_schema_version_change_changes_hash",
  "tests/unit/test_render_prompt_card_hash.py::TestComputeCardHash::test_shot_key_change_changes_hash",
  "tests/unit/test_render_prompt_card_hash.py::test_canonicalize_null_fsc_does_not_raise",
  "tests/unit/test_render_prompt_card_hash.py::test_canonicalize_sorts_fsc_constraints_by_constraint_id",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_bool_flags_normalized",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_lists_forwarded_as_is_no_silent_absorb",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_output_consumable_by_build_render_prompt_card",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_perception_mode_derived_from_shot_info",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_perception_mode_none_when_absent",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_returns_dict_with_all_required_keys",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_scene_index_extracted_from_seg",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_scene_index_falls_back_to_seg_index_key",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_scene_index_zero_when_seg_none",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_shot_index_extracted_from_shot_info",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputs::test_shot_index_zero_when_shot_info_none",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_b3_bg_id_derives_when_present",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_b4_legacy_path_synthesizes_marker_when_shot_info_none",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_b4_shot_path_missing_staging_builder_raises",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_b4_shot_path_missing_staging_does_not_set_marker",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_bg_id_derived_from_chain_bg_id_by_shot",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_bg_owned_derived_from_chain_bg_owned_by_shot",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_fixed_elements_filtered_by_applies_to_shots",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_outlook_pairs_derived_from_outlook_data",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_previous_shot_refs_includes_loc_and_char_refs",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_staging_derived_from_staging_map",
  "tests/unit/test_render_prompt_card_integration.py::TestCollectCardInputsCtxDerivation::test_visible_entities_derived_from_shot_director_ve",
  "tests/unit/test_render_prompt_card_integration.py::TestPatchACallerWiring::test_build_rpc_propagates_visible_entity_details",
  "tests/unit/test_render_prompt_card_integration.py::TestPatchACallerWiring::test_resolver_wiring_with_required_refs",
  "tests/unit/test_render_prompt_card_integration.py::TestUserEditedCardContractViolated::test_hash_drift_when_inputs_changed",
  "tests/unit/test_render_prompt_card_integration.py::TestUserEditedCardContractViolated::test_recompute_failure_returned_as_string",
  "tests/unit/test_render_prompt_card_integration.py::TestUserEditedCardContractViolated::test_returns_none_when_card_and_hash_match",
  "tests/unit/test_render_prompt_card_integration.py::TestUserEditedCardContractViolated::test_returns_string_when_card_missing",
  "tests/unit/test_render_prompt_card_integration.py::TestUserEditedCardContractViolated::test_returns_string_when_card_shape_invalid",
  "tests/unit/test_render_prompt_card_integration.py::TestUserEditedCardContractViolated::test_returns_string_when_hash_drift",
  "tests/unit/test_render_prompt_card_integration.py::TestUserEditedCardContractViolated::test_returns_string_when_hash_missing",
  "tests/unit/test_repair_master_switch.py::test_fix_ref_keys_only_appear_when_the_gate_value_is_on",
  "tests/unit/test_repair_master_switch.py::test_fix_rejudge_wiring_is_gated_by_the_master",
  "tests/unit/test_repair_master_switch.py::test_repair_master_defaults_to_off",
  "tests/unit/test_repair_master_switch.py::test_repair_only_keys_are_behind_the_master_in_outer_hash[fix_missing_pack]",
  "tests/unit/test_repair_master_switch.py::test_repair_only_keys_are_behind_the_master_in_outer_hash[fix_ref_contract]",
  "tests/unit/test_repair_master_switch.py::test_repair_only_keys_are_behind_the_master_in_outer_hash[fix_rejudge_header_pack]",
  "tests/unit/test_repair_master_switch.py::test_repair_only_keys_are_behind_the_master_in_outer_hash[gg46_critique_pack]",
  "tests/unit/test_repair_master_switch.py::test_repair_only_keys_are_behind_the_master_in_outer_hash[gg46_fix_image_model]",
  "tests/unit/test_repair_master_switch.py::test_repair_only_keys_are_behind_the_master_in_outer_hash[multiroll_fix_rejudge]",
  "tests/unit/test_repair_master_switch.py::test_shot_fingerprint_fix_ref_keys_are_behind_the_master",
  "tests/unit/test_repair_master_switch.py::test_shot_fingerprint_gg46_keys_are_behind_the_master",
  "tests/unit/test_repair_master_switch.py::test_shot_fingerprint_repair_keys_are_behind_the_master",
  "tests/unit/test_repair_method_regenerate.py::test_below_critical_issues_still_do_not_trigger_repair",
  "tests/unit/test_repair_method_regenerate.py::test_changing_the_method_moves_the_shot_fingerprint",
  "tests/unit/test_repair_method_regenerate.py::test_cine_source_names_regenerate_not_fix",
  "tests/unit/test_repair_method_regenerate.py::test_edit_contributes_nothing_to_the_fingerprint",
  "tests/unit/test_repair_method_regenerate.py::test_env_can_change_it_and_a_wrong_value_is_refused",
  "tests/unit/test_repair_method_regenerate.py::test_non_cine_model_follows_the_actual_call_not_the_gg46_rule",
  "tests/unit/test_repair_method_regenerate.py::test_regenerate_calls_the_roll_generator_once_and_never_edits",
  "tests/unit/test_repair_method_regenerate.py::test_regenerate_without_a_generator_is_refused_not_downgraded",
  "tests/unit/test_repair_method_regenerate.py::test_the_code_default_is_regenerate",
  "tests/unit/test_repair_method_regenerate.py::test_the_original_output_is_not_a_reference_but_the_roll_refs_are",
  "tests/unit/test_repair_method_regenerate.py::test_the_regen_prompt_carries_the_selected_brief_and_the_issues",
  "tests/unit/test_repair_method_regenerate.py::test_the_selected_roll_is_not_claimed_as_the_repair_input_on_regenerate",
  "tests/unit/test_repair_method_regenerate.py::test_the_structure_wording_never_reaches_a_still",
  "tests/unit/test_repair_method_regenerate.py::test_unfixable_issues_are_carried_into_regeneration",
  "tests/unit/test_resume_decision.py::TestDecisionExemptTagsOneShotContract::test_completed_skip_regardless_of_exempt_tag_state",
  "tests/unit/test_resume_decision.py::TestDecisionHelperCompletedClean::test_completed_with_clean_cp_and_verify_passes_returns_skip",
  "tests/unit/test_resume_decision.py::TestDecisionHelperCompletedMismatch::test_completed_with_cp_mismatch_returns_block_after_b5",
  "tests/unit/test_resume_decision.py::TestDecisionHelperCompletedMismatch::test_completed_with_cp_mismatch_returns_rerun_self",
  "tests/unit/test_resume_decision.py::TestDecisionHelperCompletedMismatch::test_completed_with_cp_none_returns_rerun_self_artifact_missing",
  "tests/unit/test_resume_decision.py::TestDecisionHelperCompletedMismatch::test_completed_with_verify_failure_returns_rerun_self",
  "tests/unit/test_resume_decision.py::TestDecisionHelperFirstRun::test_first_run_no_step_run_row_returns_rerun_self",
  "tests/unit/test_resume_decision.py::TestDecisionHelperForceMode::test_mode_force_returns_force_explicit",
  "tests/unit/test_resume_decision.py::TestDecisionHelperPriorState::test_non_completed_status_returns_rerun_self_prior_state[failed]",
  "tests/unit/test_resume_decision.py::TestDecisionHelperPriorState::test_non_completed_status_returns_rerun_self_prior_state[partial]",
  "tests/unit/test_resume_decision.py::TestDecisionHelperPriorState::test_non_completed_status_returns_rerun_self_prior_state[pending]",
  "tests/unit/test_resume_decision.py::TestDecisionHelperPriorState::test_non_completed_status_returns_rerun_self_prior_state[running]",
  "tests/unit/test_resume_decision.py::TestDecisionHelperPriorState::test_non_completed_status_returns_rerun_self_prior_state[stale]",
  "tests/unit/test_resume_decision.py::TestDecisionHelperPurity::test_helper_does_not_call_record_recovery",
  "tests/unit/test_resume_decision.py::TestDecisionHelperPurity::test_helper_does_not_raise_app_error_for_strict_resume",
  "tests/unit/test_resume_decision.py::TestDecisionHelperStrictResume::test_completed_mismatch_with_strict_resume_returns_block",
  "tests/unit/test_resume_decision.py::TestDecisionHelperStrictResume::test_strict_resume_with_cp_none_falls_back_to_rerun_self",
  "tests/unit/test_resume_decision.py::TestDecisionHelperUnknownStatus::test_unknown_status_returns_rerun_self_first_run_marker",
  "tests/unit/test_resume_decision.py::TestDecisionHelperVerifyCrashedPropagation::test_verify_crashed_app_error_propagates_through_helper",
  "tests/unit/test_resume_decision.py::TestDecisionHelperVerifyOriginArtifactMissing::test_completed_verify_artifact_missing_returns_rerun_self",
  "tests/unit/test_resume_decision.py::TestDecisionHelperVerifyOriginArtifactMissing::test_completed_verify_default_origin_returns_rerun_self",
  "tests/unit/test_resume_decision.py::TestDecisionHelperVerifyOriginContractDrift::test_completed_verify_contract_drift_returns_block",
  "tests/unit/test_resume_decision.py::TestDecisionHelperVerifyOriginInvariantDrift::test_completed_verify_invariant_drift_returns_block",
  "tests/unit/test_resume_decision.py::TestResumeActionEnum::test_action_enum_has_six_values",
  "tests/unit/test_resume_decision.py::TestResumeActionEnum::test_action_enum_members_uppercase",
  "tests/unit/test_resume_decision.py::TestResumeDecisionDataclass::test_decision_default_optional_fields",
  "tests/unit/test_resume_decision.py::TestResumeDecisionDataclass::test_decision_is_frozen",
  "tests/unit/test_resume_decision.py::TestResumeDecisionDataclass::test_decision_with_expected_fields",
  "tests/unit/test_resume_decision.py::TestTheDecisionCarriesThePreClaimRow::test_no_row_means_no_prior",
  "tests/unit/test_resume_decision.py::TestTheDecisionCarriesThePreClaimRow::test_prior_fields_come_from_the_row_read_before_claim",
  "tests/unit/test_running_state_evaluation.py::TestEvaluateRunningStateConfigOverride::test_custom_timeout_via_settings",
  "tests/unit/test_running_state_evaluation.py::TestEvaluateRunningStateNullStartedAt::test_started_at_null_returns_block",
  "tests/unit/test_running_state_evaluation.py::TestEvaluateRunningStateOverTimeout::test_old_started_at_returns_stale_recovery_with_expected_fields",
  "tests/unit/test_running_state_evaluation.py::TestEvaluateRunningStateParseFailure::test_started_at_parse_failed_returns_block",
  "tests/unit/test_running_state_evaluation.py::TestEvaluateRunningStateWithinTimeout::test_recent_started_at_returns_block_healthy",
  "tests/unit/test_running_state_evaluation.py::TestResumeDecisionRunningIntegration::test_running_null_started_at_returns_block",
  "tests/unit/test_running_state_evaluation.py::TestResumeDecisionRunningIntegration::test_running_over_timeout_returns_stale_recovery",
  "tests/unit/test_running_state_evaluation.py::TestResumeDecisionRunningIntegration::test_running_within_timeout_returns_block",
  "tests/unit/test_running_state_evaluation.py::TestRunRunningAutoForceBlocked::test_running_over_timeout_attempts_atomic_claim_block_c",
  "tests/unit/test_running_state_evaluation.py::TestRunRunningAutoForceBlocked::test_running_over_timeout_blocks_pending_block_c",
  "tests/unit/test_running_state_evaluation.py::TestRunRunningAutoForceBlocked::test_running_within_timeout_raises_appError_no_auto_force",
  "tests/unit/test_safety_fallback_ladder.py::test_a_non_transport_error_at_the_third_backend_still_propagates",
  "tests/unit/test_safety_fallback_ladder.py::test_a_transport_error_outside_the_third_backend_still_propagates",
  "tests/unit/test_safety_fallback_ladder.py::test_off_moderation_sanitize_retry_then_success",
  "tests/unit/test_safety_fallback_ladder.py::test_off_moderation_twice_raises",
  "tests/unit/test_safety_fallback_ladder.py::test_on_budget_exceeded_mid_ladder_propagates",
  "tests/unit/test_safety_fallback_ladder.py::test_on_cross_direction_grok_primary_falls_to_gemini",
  "tests/unit/test_safety_fallback_ladder.py::test_on_cross_stage_incompat_continues_to_sanitized",
  "tests/unit/test_safety_fallback_ladder.py::test_on_empty_sanitized_stops_ladder",
  "tests/unit/test_safety_fallback_ladder.py::test_on_full_ladder_order_then_raise",
  "tests/unit/test_safety_fallback_ladder.py::test_on_no_sanitizer_stops_after_cross",
  "tests/unit/test_safety_fallback_ladder.py::test_on_no_sanitizer_stops_after_the_last_provider",
  "tests/unit/test_safety_fallback_ladder.py::test_on_no_stale_stage_leaks_to_next_shot",
  "tests/unit/test_safety_fallback_ladder.py::test_on_non_moderation_at_primary_raises_immediately",
  "tests/unit/test_safety_fallback_ladder.py::test_on_non_moderation_error_mid_ladder_propagates",
  "tests/unit/test_safety_fallback_ladder.py::test_on_primary_grok_over_budget_propagates_no_cross",
  "tests/unit/test_safety_fallback_ladder.py::test_on_primary_success_single_call",
  "tests/unit/test_safety_fallback_ladder.py::test_on_recovery_at_same_model_retry",
  "tests/unit/test_safety_fallback_ladder.py::test_provenance_none_without_ladder_metadata",
  "tests/unit/test_safety_fallback_ladder.py::test_provenance_returns_actual_model_and_prompt",
  "tests/unit/test_safety_fallback_ladder.py::test_real_client_projects_safety_ladder_to_db_and_opik_meta",
  "tests/unit/test_safety_fallback_ladder.py::test_third_backend_timeout_falls_through_to_the_next_stage",
  "tests/unit/test_safety_ladder_has_seedream.py::test_the_ladder_has_a_third_backend",
  "tests/unit/test_safety_ladder_has_seedream.py::test_the_stage_cap_is_a_gate_not_a_comment",
  "tests/unit/test_safety_ladder_has_seedream.py::test_the_third_backend_comes_before_softening",
  "tests/unit/test_scene_consistency_schema_v6.py::TestV6Schema::test_all_three_enum_values_valid",
  "tests/unit/test_scene_consistency_schema_v6.py::TestV6Schema::test_empty_lists_pass",
  "tests/unit/test_scene_consistency_schema_v6.py::TestV6Schema::test_extra_field_rejected_by_additionalProperties_false",
  "tests/unit/test_scene_consistency_schema_v6.py::TestV6Schema::test_legacy_confidence_rejected",
  "tests/unit/test_scene_consistency_schema_v6.py::TestV6Schema::test_missing_confidence_fails",
  "tests/unit/test_scene_consistency_schema_v6.py::TestV6Schema::test_missing_creative_decisions_fails",
  "tests/unit/test_scene_consistency_schema_v6.py::TestV6Schema::test_missing_source_facts_fails",
  "tests/unit/test_scene_consistency_schema_v6.py::TestV6Schema::test_missing_visual_inferences_fails",
  "tests/unit/test_scene_consistency_schema_v6.py::TestV6Schema::test_unknown_confidence_rejected",
  "tests/unit/test_scene_consistency_schema_v6.py::TestV6Schema::test_valid_scene_passes",
  "tests/unit/test_scene_consistency_schema_v7.py::TestV7Schema::test_additional_properties_rejected",
  "tests/unit/test_scene_consistency_schema_v7.py::TestV7Schema::test_element_scope_close_passes",
  "tests/unit/test_scene_consistency_schema_v7.py::TestV7Schema::test_element_scope_empty_string_fails",
  "tests/unit/test_scene_consistency_schema_v7.py::TestV7Schema::test_element_scope_full_passes",
  "tests/unit/test_scene_consistency_schema_v7.py::TestV7Schema::test_element_scope_null_fails",
  "tests/unit/test_scene_consistency_schema_v7.py::TestV7Schema::test_invalid_element_scope_enum_fails",
  "tests/unit/test_scene_consistency_schema_v7.py::TestV7Schema::test_legacy_confidence_rejected",
  "tests/unit/test_scene_consistency_schema_v7.py::TestV7Schema::test_missing_element_scope_fails",
  "tests/unit/test_scene_consistency_schema_v7.py::TestV7Schema::test_missing_source_facts_fails",
  "tests/unit/test_scene_consistency_schema_v7.py::TestV7Schema::test_valid_scene_passes",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_no_cp_at_all_returns_empty",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_t2i_cp_absent_falls_back_to_shot_dependency",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_t2i_cp_empty_dependencies_falls_back",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v5_cp_missing_schema_version_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v5_cp_schema_version_1_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v6_cp_invalid_kind_enum_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v6_cp_legacy_string_keep_elements_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v6_cp_missing_keep_elements_key_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v6_cp_missing_label_field_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v6_cp_schema_version_2_raises_as_legacy",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v6_valid_cp_returns_dependencies",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v6_valid_empty_keep_elements_passes",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v7_cp_invalid_kind_enum_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v7_cp_legacy_immobilized_character_kind_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v7_cp_legacy_string_keep_elements_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v7_cp_missing_keep_elements_key_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v7_cp_missing_label_field_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v7_cp_schema_version_3_raises_as_legacy",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v7_valid_cp_returns_dependencies",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v7_valid_empty_keep_elements_passes",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v8_cp_invalid_kind_enum_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v8_cp_legacy_immobilized_character_kind_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v8_cp_legacy_string_keep_elements_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v8_cp_missing_keep_elements_key_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v8_cp_missing_label_field_raises",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v8_valid_cp_returns_dependencies",
  "tests/unit/test_scene_context_loader_load_dependencies.py::test_v8_valid_empty_keep_elements_passes",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_expand_prop_term_variants_ascii_multiword_includes_content_tokens",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_expand_prop_term_variants_empty_and_whitespace_only_yield_empty_set",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_expand_prop_term_variants_korean_preserved_no_token_split",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_expand_prop_term_variants_mixed_script_yields_ascii_tokens_only",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_expand_prop_term_variants_stopwords_excluded",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_expand_prop_term_variants_two_letter_tokens_survive",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_expand_prop_term_variants_word_boundary_does_not_yield_substring",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_prop_term_map_empty_when_no_prop_rows",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_prop_term_map_excludes_empty_or_whitespace_only_sources",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_prop_term_map_loader_uses_word_boundary_only_no_substring_match",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_prop_term_map_loads_canonical_name_description_t2i_and_aliases",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_prop_term_map_normalizes_whitespace_and_case",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_prop_term_map_p06_s28_scenario_expanded_token_set",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_prop_term_map_raises_appstop_on_db_query_failure",
  "tests/unit/test_scene_context_loader_prop_term_map.py::test_prop_term_map_skips_non_p_prefix_short_ids",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgIdByShot::test_bg_off_returns_empty",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgIdByShot::test_failed_bg_skipped",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgIdByShot::test_multi_bg_distinct_shots_each_maps_own",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgIdByShot::test_multi_bg_same_shot_alpha_sorted_first_wins",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgIdByShot::test_single_bg_falls_back_to_shot_guides",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgIdByShot::test_single_bg_maps_via_applies_to_shots",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgOwnedByShot::test_bg_off_no_cp_returns_empty",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgOwnedByShot::test_bg_off_returns_empty",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgOwnedByShot::test_bg_on_no_cp_raises",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgOwnedByShot::test_bg_on_old_v4_cp_raises",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgOwnedByShot::test_bg_on_partial_owned_raises",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgOwnedByShot::test_bg_on_v5_cp_falls_back_to_shot_guides",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgOwnedByShot::test_bg_on_v5_cp_maps_via_applies_to_shots",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgOwnedByShot::test_invalid_shot_id_format_skipped",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgOwnedByShot::test_multi_bg_same_shot_union_sorted",
  "tests/unit/test_scene_context_owned_loader.py::TestLoadChainBgOwnedByShot::test_skipped_failed_status",
  "tests/unit/test_scene_detail_owned_judge.py::TestRunOwnedJudge::test_calls_call_structured_with_correct_step",
  "tests/unit/test_scene_detail_owned_judge.py::TestRunOwnedJudge::test_empty_owned_returns_empty_no_call",
  "tests/unit/test_scene_detail_owned_judge.py::TestRunOwnedJudge::test_handles_missing_violations_key_as_empty",
  "tests/unit/test_scene_detail_owned_judge.py::TestRunOwnedJudge::test_missing_violations_key_raises_contract_violation",
  "tests/unit/test_scene_detail_owned_judge.py::TestRunOwnedJudge::test_no_retry_returns_violations_immediately",
  "tests/unit/test_scene_detail_owned_judge.py::TestRunOwnedJudge::test_passes_project_config_and_opik_metadata",
  "tests/unit/test_scene_detail_owned_judge.py::TestRunOwnedJudge::test_passes_schema_and_schema_name",
  "tests/unit/test_scene_detail_owned_judge.py::TestRunOwnedJudge::test_returns_violations_list",
  "tests/unit/test_scene_detail_owned_judge.py::TestRunOwnedJudge::test_user_prompt_inlines_t2i_owned_camera",
  "tests/unit/test_scene_detail_owned_judge.py::TestRunOwnedJudge::test_violations_non_list_raises_contract_violation",
  "tests/unit/test_scene_detail_owned_judge.py::test_prompt_directory_exists",
  "tests/unit/test_scene_detail_owned_judge.py::test_schema_json_shape",
  "tests/unit/test_scene_detail_owned_judge.py::test_system_md_exists_and_non_empty",
  "tests/unit/test_scene_detail_owned_judge.py::test_user_template_md_has_required_placeholders",
  "tests/unit/test_scene_detail_runner_retry.py::test_all_shots_primary_success_no_retry",
  "tests/unit/test_scene_detail_runner_retry.py::test_echo_mismatch_shot_skipped_in_outer_retry",
  "tests/unit/test_scene_detail_runner_retry.py::test_existing_failed_count_propagated",
  "tests/unit/test_scene_detail_runner_retry.py::test_retry_carries_the_contract_violation_it_failed_on",
  "tests/unit/test_scene_detail_runner_retry.py::test_shot_primary_and_retry_both_fail_typed_summary",
  "tests/unit/test_scene_detail_runner_retry.py::test_shot_primary_fail_retry_recovers",
  "tests/unit/test_scene_detail_runner_retry.py::test_shot_primary_unexpected_exception_caught",
  "tests/unit/test_scene_detail_runner_retry.py::test_unresolved_excludes_retry_recovered_shots",
  "tests/unit/test_scene_detail_schema_v14.py::TestV14Schema::test_all_three_enum_values_valid",
  "tests/unit/test_scene_detail_schema_v14.py::TestV14Schema::test_empty_lists_pass",
  "tests/unit/test_scene_detail_schema_v14.py::TestV14Schema::test_extra_variation_field_rejected",
  "tests/unit/test_scene_detail_schema_v14.py::TestV14Schema::test_legacy_confidence_rejected",
  "tests/unit/test_scene_detail_schema_v14.py::TestV14Schema::test_missing_confidence_fails",
  "tests/unit/test_scene_detail_schema_v14.py::TestV14Schema::test_missing_creative_decisions_fails",
  "tests/unit/test_scene_detail_schema_v14.py::TestV14Schema::test_missing_source_facts_fails",
  "tests/unit/test_scene_detail_schema_v14.py::TestV14Schema::test_missing_visual_inferences_fails",
  "tests/unit/test_scene_detail_schema_v14.py::TestV14Schema::test_unknown_confidence_rejected",
  "tests/unit/test_scene_detail_schema_v14.py::TestV14Schema::test_valid_scene_passes",
  "tests/unit/test_scene_detail_verify_origin.py::TestCardPayloadMissingContractDrift::test_render_prompt_card_payload_missing_returns_contract_drift",
  "tests/unit/test_scene_detail_verify_origin.py::TestCardRecomputeFailFast::test_card_recompute_apperror_marks_recompute_failed_contract_drift",
  "tests/unit/test_scene_detail_verify_origin.py::TestCardRecomputeFailFast::test_card_recompute_apperror_returns_contract_drift",
  "tests/unit/test_scene_detail_verify_origin.py::TestCardRecomputeFailFast::test_card_recompute_unexpected_exception_raises_verify_crashed",
  "tests/unit/test_scene_detail_verify_origin.py::TestLoaderViolationContractDrift::test_bg_on_loader_apperror_returns_contract_drift",
  "tests/unit/test_scene_detail_verify_origin.py::TestPriorityLoaderOverSentinel::test_loader_violation_priority_over_sentinel_drift",
  "tests/unit/test_scene_detail_verify_origin.py::TestSentinelHashDriftInvariantDrift::test_t2i_prompt_hash_drift_returns_invariant_drift",
  "tests/unit/test_scene_detail_verify_origin.py::TestSentinelMissingContractDrift::test_owned_validation_missing_returns_contract_drift",
  "tests/unit/test_scene_detail_verify_origin.py::TestSeverityClassification::test_partial_drift_severity_partial",
  "tests/unit/test_scene_director_index_parity.py::TestEmptyInput::test_no_segments_short_circuits_without_calling_llm",
  "tests/unit/test_scene_director_index_parity.py::TestLegacySchemaPack::test_scene_index_field_is_normalized_to_segment_key",
  "tests/unit/test_scene_director_index_parity.py::TestMapBackToSceneIndex::test_non_contiguous_segment_indices_survive",
  "tests/unit/test_scene_director_index_parity.py::TestMapBackToSceneIndex::test_payload_key_field_is_dropped",
  "tests/unit/test_scene_director_index_parity.py::TestMapBackToSceneIndex::test_rows_are_sorted_by_scene_index",
  "tests/unit/test_scene_director_index_parity.py::TestMapBackToSceneIndex::test_rows_carry_input_scene_index",
  "tests/unit/test_scene_director_index_parity.py::TestOutputKeyDomainIsPinned::test_key_never_carries_the_screenplay_number",
  "tests/unit/test_scene_director_index_parity.py::TestOutputKeyDomainIsPinned::test_prompt_block_header_is_opaque_not_a_bare_number",
  "tests/unit/test_scene_director_index_parity.py::TestOutputKeyDomainIsPinned::test_schema_locks_key_to_enum_and_cardinality",
  "tests/unit/test_scene_director_index_parity.py::TestOutputKeyDomainIsPinned::test_segment_text_is_passed_whole",
  "tests/unit/test_scene_director_index_parity.py::TestParityGate::test_duplicate_keys_are_rejected",
  "tests/unit/test_scene_director_index_parity.py::TestParityGate::test_empty_scenes_is_rejected_when_segments_exist",
  "tests/unit/test_scene_director_index_parity.py::TestParityGate::test_error_names_the_offending_keys",
  "tests/unit/test_scene_director_index_parity.py::TestParityGate::test_missing_rows_are_rejected",
  "tests/unit/test_scene_director_index_parity.py::TestParityGate::test_predicate_accepts_exact_parity",
  "tests/unit/test_scene_director_index_parity.py::TestParityGate::test_predicate_rejects_drift_so_lower_tiers_retry",
  "tests/unit/test_scene_director_index_parity.py::TestParityGate::test_resplit_extra_rows_are_rejected",
  "tests/unit/test_scene_image_scope.py::test_build_effective_prev_map_share_plan_authority",
  "tests/unit/test_scene_image_scope.py::test_check_scope_universe_couples_audit_to_current_stills",
  "tests/unit/test_scene_image_scope.py::test_closure_over_index_graph_missing_requested_fail_closed",
  "tests/unit/test_scene_image_scope.py::test_closure_over_index_graph_multi_edge_union",
  "tests/unit/test_scene_image_scope.py::test_closure_over_index_graph_recursive_and_sibling_excluded",
  "tests/unit/test_scene_image_scope.py::test_closure_over_prev_chain_cycle_and_unknown_fail_closed",
  "tests/unit/test_scene_image_scope.py::test_closure_over_prev_chain_recursive",
  "tests/unit/test_scene_image_scope.py::test_load_scope_audit_rejects_stale_or_malformed",
  "tests/unit/test_scene_image_scope.py::test_parse_target_scenes_fail_closed",
  "tests/unit/test_scene_image_scope.py::test_parse_target_scenes_normalizes",
  "tests/unit/test_scene_image_scope.py::test_requested_still_ids_and_fail_fast",
  "tests/unit/test_scene_image_scope.py::test_scope_audit_roundtrip_and_fail_closed",
  "tests/unit/test_screen_presence_reconciliation.py::TestCardReconciliation::test_g10_staging_none_noop",
  "tests/unit/test_screen_presence_reconciliation.py::TestCardReconciliation::test_g11_name_map_threading_ctx_path",
  "tests/unit/test_screen_presence_reconciliation.py::TestCardReconciliation::test_g11b_name_map_threading_legacy_path",
  "tests/unit/test_screen_presence_reconciliation.py::TestCardReconciliation::test_g1_s15_reproduction",
  "tests/unit/test_screen_presence_reconciliation.py::TestCardReconciliation::test_g4_in_frame_back_view_not_downgraded",
  "tests/unit/test_screen_presence_reconciliation.py::TestCardReconciliation::test_g7_hash_stable",
  "tests/unit/test_screen_presence_reconciliation.py::TestDetector::test_d1_structural_offscreen_positive",
  "tests/unit/test_screen_presence_reconciliation.py::TestDetector::test_d2_gaze_offscreen_not_a_signal",
  "tests/unit/test_screen_presence_reconciliation.py::TestDetector::test_d3_pov_guard",
  "tests/unit/test_screen_presence_reconciliation.py::TestDetector::test_d4_empty_character_angles_noop",
  "tests/unit/test_screen_presence_reconciliation.py::TestDetector::test_d5_no_offscreen_phrase_noop",
  "tests/unit/test_screen_presence_reconciliation.py::TestDetector::test_d6_in_frame_member_not_emitted",
  "tests/unit/test_screen_presence_reconciliation.py::TestDetector::test_d7_confidence_named_vs_structural",
  "tests/unit/test_screen_presence_reconciliation.py::TestDowngradeHelper::test_t2_1_inject_when_no_entry",
  "tests/unit/test_screen_presence_reconciliation.py::TestDowngradeHelper::test_t2_2_downgrade_id_and_outlook_required",
  "tests/unit/test_screen_presence_reconciliation.py::TestDowngradeHelper::test_t2_3_keep_explicit_base_id_required",
  "tests/unit/test_screen_presence_reconciliation.py::TestDowngradeHelper::test_t2_4_keep_explicit_generic",
  "tests/unit/test_screen_presence_reconciliation.py::TestDowngradeHelper::test_t2_5_non_list_passthrough",
  "tests/unit/test_screen_presence_reconciliation.py::TestDowngradeHelper::test_t2_6_no_detection_noop",
  "tests/unit/test_seed_prompt_variants.py::test_addendums_conformance_first_contract",
  "tests/unit/test_seed_prompt_variants.py::test_assemble_roll_prompts_empty_excluded_omits_clause",
  "tests/unit/test_seed_prompt_variants.py::test_assemble_roll_prompts_invariant_clauses_and_order",
  "tests/unit/test_seed_prompt_variants.py::test_assemble_roll_prompts_label_count_mismatch_raises",
  "tests/unit/test_seed_prompt_variants.py::test_assemble_v10_scale_inventory_clauses_intact",
  "tests/unit/test_seed_prompt_variants.py::test_assemble_v3_location_scout_contract",
  "tests/unit/test_seed_prompt_variants.py::test_assemble_v5_ignores_interior_note_byte_identical",
  "tests/unit/test_seed_prompt_variants.py::test_assemble_v6_empty_interior_keeps_human_scale_only",
  "tests/unit/test_seed_prompt_variants.py::test_assemble_v6_scale_clauses_with_interior",
  "tests/unit/test_seed_prompt_variants.py::test_author_model_is_sol_alias",
  "tests/unit/test_seed_prompt_variants.py::test_author_schema_locks_variant_count_and_ids",
  "tests/unit/test_seed_prompt_variants.py::test_author_sys_v3_scout_style_contract",
  "tests/unit/test_seed_prompt_variants.py::test_author_user_content_full_scene_texts_uncut",
  "tests/unit/test_seed_prompt_variants.py::test_author_user_content_missing_scene_text_fail_closed",
  "tests/unit/test_seed_prompt_variants.py::test_author_user_content_prior_violations_block",
  "tests/unit/test_seed_prompt_variants.py::test_conformance_prompt_contains_brief_location_excluded",
  "tests/unit/test_seed_prompt_variants.py::test_conformance_prompt_v3_scoped_exclusion",
  "tests/unit/test_seed_prompt_variants.py::test_conformance_v6_scale_clauses",
  "tests/unit/test_seed_prompt_variants.py::test_packs_are_scenario_neutral",
  "tests/unit/test_seed_prompt_variants.py::test_unknown_pack_version_raises",
  "tests/unit/test_seed_prompt_variants.py::test_v10_critique_bare_target_threshold",
  "tests/unit/test_seed_prompt_variants.py::test_v10_judge_active_use_peer_violation_in_axis3",
  "tests/unit/test_seed_prompt_variants.py::test_v10_judge_lexicographic_structure_then_active_use",
  "tests/unit/test_seed_prompt_variants.py::test_v10_judge_target_active_use_axis",
  "tests/unit/test_seed_prompt_variants.py::test_v10_other_stems_byte_identical_to_v9",
  "tests/unit/test_seed_prompt_variants.py::test_v10_plate_rules_active_use_conditional_fact",
  "tests/unit/test_seed_prompt_variants.py::test_v10_plate_rules_active_use_fact",
  "tests/unit/test_seed_prompt_variants.py::test_v14_validator_lettering_text_format_lock",
  "tests/unit/test_seed_prompt_variants.py::test_v4_regional_authenticity_contract",
  "tests/unit/test_seed_prompt_variants.py::test_v5_period_anchored_authenticity_contract",
  "tests/unit/test_seed_prompt_variants.py::test_v6_author_sys_unchanged_by_v7",
  "tests/unit/test_seed_prompt_variants.py::test_v6_pack_copy_integrity_and_scale_stems_locked",
  "tests/unit/test_seed_prompt_variants.py::test_v7_author_sys_has_size_and_frontage_contracts",
  "tests/unit/test_seed_prompt_variants.py::test_v7_scale_variant_pack_membership",
  "tests/unit/test_seed_prompt_variants.py::test_v7_stems_unchanged_by_v8",
  "tests/unit/test_seed_prompt_variants.py::test_v8_assembly_appends_capacity_and_signage_clauses",
  "tests/unit/test_seed_prompt_variants.py::test_v8_author_sys_room_inventory_signage_habitation",
  "tests/unit/test_seed_prompt_variants.py::test_v8_judge_generic_habitation_required",
  "tests/unit/test_seed_prompt_variants.py::test_v8_judge_type_appropriate_use_required",
  "tests/unit/test_seed_prompt_variants.py::test_v8_schema_and_validator_inventory_contract",
  "tests/unit/test_seed_prompt_variants.py::test_v8_stems_unchanged_by_v9",
  "tests/unit/test_seed_prompt_variants.py::test_v9_assembly_appends_capacity_and_lettering_clauses",
  "tests/unit/test_seed_prompt_variants.py::test_v9_assembly_appends_capacity_and_signage_clauses",
  "tests/unit/test_seed_prompt_variants.py::test_v9_author_sys_structured_inventory_signage_contracts",
  "tests/unit/test_seed_prompt_variants.py::test_v9_author_user_content_interior_scenes_block",
  "tests/unit/test_seed_prompt_variants.py::test_v9_inventory_pack_membership",
  "tests/unit/test_seed_prompt_variants.py::test_v9_judge_type_appropriate_use_required",
  "tests/unit/test_seed_prompt_variants.py::test_v9_schema_and_validator_inventory_contract",
  "tests/unit/test_seed_prompt_variants.py::test_v9_stems_unchanged_by_v10",
  "tests/unit/test_seed_prompt_variants.py::test_v9_validator_applicability_lock",
  "tests/unit/test_seed_prompt_variants.py::test_v9_validator_quote_provenance_scene_bound",
  "tests/unit/test_seed_prompt_variants.py::test_v9_validator_signage_judgment_and_escape",
  "tests/unit/test_seed_prompt_variants.py::test_validate_variant_output_pass",
  "tests/unit/test_seed_prompt_variants.py::test_validate_variant_output_violations",
  "tests/unit/test_seed_prompt_variants.py::test_variant_judge_texts_seed_only_contract",
  "tests/unit/test_seed_prompt_variants.py::test_variant_judge_texts_v3_neighborhood_axis",
  "tests/unit/test_seedream_request_carries_aspect_ratio.py::test_cine_default_is_the_still_ratio",
  "tests/unit/test_seedream_request_carries_aspect_ratio.py::test_marker_map_callers_are_byte_identical",
  "tests/unit/test_seedream_request_carries_aspect_ratio.py::test_old_square_records_are_not_reused",
  "tests/unit/test_seedream_request_carries_aspect_ratio.py::test_seedream_cine_client_sends_the_aspect_ratio",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C1_매치가_둘_미만이면_분해가_아니다",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C3_전체를_덮지_않으면_실패",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C4_매치가_없는_자리에서_시작하면_실패",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C4_자기_헤딩에서_시작하지_않으면_실패",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C5_번호가_되돌아가면_실패한다",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C5_번호가_빠지면_점수가_내려간다",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C5_번호가_빠지면_점수만_내려간다",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C5_번호가_이어지면_점수가_만점",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C5_번호가_일부_헤딩에만_있어도_통과한다",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C5_번호를_하나도_못_읽으면_실패한다",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C6_들여쓴_헤딩은_통과한다",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_C6_줄_한가운데를_경계로_찍으면_실패",
  "tests/unit/test_segment_rule.py::Test검증_계약::test_맞는_규칙은_전부_통과한다",
  "tests/unit/test_segment_rule.py::Test규칙_실행::test_경계를_찍어_세그먼트를_만든다",
  "tests/unit/test_segment_rule.py::Test규칙_실행::test_번호_그룹이_없으면_scene_no_는_비운다",
  "tests/unit/test_segment_rule.py::Test규칙_실행::test_세그먼트가_틈_없이_이어진다",
  "tests/unit/test_segment_rule.py::Test규칙_실행::test_안_걸리는_규칙은_빈_결과",
  "tests/unit/test_segment_rule.py::Test규칙_실행::test_여러_줄을_매치하는_패턴은_건드리지_않는다",
  "tests/unit/test_segment_rule.py::Test규칙_실행::test_첫_경계_앞은_머리말로_따로_둔다",
  "tests/unit/test_segment_rule.py::Test규칙_실행::test_패턴_앞의_공백이_경계를_앞으로_끌지_않는다",
  "tests/unit/test_segment_rule.py::Test규칙_실행::test_형식이_튀는_씬도_같은_규칙에_걸린다",
  "tests/unit/test_segment_rule.py::Test씬_안의_항목_번호::test_결번은_통과한다",
  "tests/unit/test_segment_rule.py::Test씬_안의_항목_번호::test_구체적인_규칙이면_통과한다",
  "tests/unit/test_segment_rule.py::Test씬_안의_항목_번호::test_기본은_전부_잡는다",
  "tests/unit/test_segment_rule.py::Test씬_안의_항목_번호::test_되돌아가는_번호가_있으면_실패로_세운다",
  "tests/unit/test_segment_rule.py::Test씬_안의_항목_번호::test_버려진_구간은_앞_세그먼트에_남는다",
  "tests/unit/test_segment_rule.py::Test씬_안의_항목_번호::test_번호가_1씩_안_늘어도_오름차순이면_남긴다",
  "tests/unit/test_segment_rule.py::Test씬_안의_항목_번호::test_아무_매치도_조용히_버리지_않는다",
  "tests/unit/test_segment_rule.py::Test씬_안의_항목_번호::test_오름차순을_켜면_되돌아가는_매치를_버린다",
  "tests/unit/test_segment_rule.py::Test씬_안의_항목_번호::test_진짜_씬이_항목으로_치환되지_않는다",
  "tests/unit/test_segment_rule.py::Test안전::test_C6_너무_긴_패턴은_거부한다",
  "tests/unit/test_segment_rule.py::Test안전::test_C6_문법이_틀린_패턴은_거부한다",
  "tests/unit/test_segment_rule.py::Test안전::test_C6_폭주하는_패턴은_시간_안에_끊는다",
  "tests/unit/test_segment_rule.py::Test페이지_번호_반례::test_기호와_숫자만_있는_줄은_글자가_없다",
  "tests/unit/test_segment_rule.py::Test페이지_번호_반례::test_번호만_있는_줄은_헤딩_내용이_없다",
  "tests/unit/test_segment_rule.py::Test페이지_번호_반례::test_적게_잡아도_내용이_있는_쪽을_고른다",
  "tests/unit/test_segment_rule.py::Test페이지_번호_반례::test_패턴이_줄_전체를_삼켜도_내용을_잰다",
  "tests/unit/test_segment_rule.py::Test페이지_번호_반례::test_헤딩_줄은_내용이_있다",
  "tests/unit/test_segment_rule.py::Test후보_선택::test_계약을_못_넘는_후보는_안_고른다",
  "tests/unit/test_segment_rule.py::Test후보_선택::test_공존하면_헤딩_내용이_있는_쪽을_고른다",
  "tests/unit/test_segment_rule.py::Test후보_선택::test_번호를_못_읽는_매치가_섞여도_버리지_않는다",
  "tests/unit/test_segment_rule.py::Test후보_선택::test_번호를_못_읽는_매치가_섞이면_실패로_잡는다",
  "tests/unit/test_segment_rule.py::Test후보_선택::test_잘_덮는_쪽을_고른다",
  "tests/unit/test_segment_rule.py::Test후보_선택::test_점수가_같으면_더_많이_잡는_쪽을_고른다",
  "tests/unit/test_segment_rule.py::Test후보_선택::test_후보가_비면_None",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_background_outer_hash_moves_when_second_judge_changes",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_both_slots_sealed_and_no_router_retry",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_critique_grok_preflight_fires_on_call_not_on_build",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_critique_observers_are_gemini_plus_gpt6_astra",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_critique_observers_stay_gemini_plus_grok",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_critique_preflight_fires_on_call_not_on_build",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_critique_second_slot_follows_the_setting_at_high",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_critique_second_slot_is_gpt6_astra_at_high",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_gpt_text_default_is_gpt6_astra_with_three_efforts",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_measure_tools_do_not_carry_the_db_password",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_order_policy_string_has_no_model_name",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_pair_kind_is_the_single_source[models0-equal_cross]",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_pair_kind_is_the_single_source[models1-equal_cross]",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_pair_kind_is_the_single_source[models2-qk_reversed]",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_pair_kind_is_the_single_source[models3-gq]",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_pair_kind_is_the_single_source[models4-dual_margin]",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_pair_kind_is_the_single_source[models5-single]",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_policy_string_names_the_new_pair",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_qwen_wins_over_openrouter_so_owns_order_cannot_diverge",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_select_policy_names_the_algorithm_not_the_models",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_selection_fails_closed_without_openai_key",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_selection_pair_is_gemini_plus_sol",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_selection_survives_without_openrouter",
  "tests/unit/test_select_judge_gemini_plus_sol.py::test_still_outer_hash_moves_when_second_judge_changes",
  "tests/unit/test_semantic_contract_router.py::test_character_state_only_produces_pose_locked",
  "tests/unit/test_semantic_contract_router.py::test_gaze_target_dead_produces_immobilized",
  "tests/unit/test_semantic_contract_router.py::test_immobilized_gaze_constant_removed",
  "tests/unit/test_semantic_contract_router.py::test_no_signals_returns_none_mode[None]",
  "tests/unit/test_semantic_contract_router.py::test_no_signals_returns_none_mode[staging1]",
  "tests/unit/test_semantic_contract_router.py::test_no_signals_returns_none_mode[staging2]",
  "tests/unit/test_semantic_contract_router.py::test_no_signals_returns_none_mode[staging3]",
  "tests/unit/test_semantic_contract_router.py::test_none_when_no_signals",
  "tests/unit/test_semantic_contract_router.py::test_rule_1_immobilized_state_dispatch[dead]",
  "tests/unit/test_semantic_contract_router.py::test_rule_1_immobilized_state_dispatch[severely_injured]",
  "tests/unit/test_semantic_contract_router.py::test_rule_1_immobilized_state_dispatch[unconscious]",
  "tests/unit/test_semantic_contract_router.py::test_rule_1_reads_subject_state_dead",
  "tests/unit/test_semantic_contract_router.py::test_rule_1_reads_subject_state_unconscious",
  "tests/unit/test_semantic_contract_router.py::test_rule_1_skip_alive",
  "tests/unit/test_semantic_contract_router.py::test_rule_2_character_state_produces_pose_locked",
  "tests/unit/test_send_ledger.py::test_a_failing_report_does_not_mask_the_original_error",
  "tests/unit/test_send_ledger.py::test_a_fanned_out_send_is_still_caught",
  "tests/unit/test_send_ledger.py::test_a_shared_job_overrides_only_the_work",
  "tests/unit/test_send_ledger.py::test_an_aborted_walk_restores_and_still_reports",
  "tests/unit/test_send_ledger.py::test_an_explicit_argument_wins_over_the_context",
  "tests/unit/test_send_ledger.py::test_an_unbound_thread_does_not_silently_count_elsewhere",
  "tests/unit/test_send_ledger.py::test_an_unknown_visit_stays_unknown",
  "tests/unit/test_send_ledger.py::test_each_send_is_counted_not_each_call",
  "tests/unit/test_send_ledger.py::test_every_judge_pool_carries_the_ledger[_judge_cross_model_order-max_workers=2]",
  "tests/unit/test_send_ledger.py::test_every_judge_pool_carries_the_ledger[_judge_gq-max_workers=len(models)]",
  "tests/unit/test_send_ledger.py::test_every_judge_pool_carries_the_ledger[make_gg46_critique_fn-observer_models]",
  "tests/unit/test_send_ledger.py::test_grains_are_never_summed",
  "tests/unit/test_send_ledger.py::test_no_ledger_means_no_op",
  "tests/unit/test_send_ledger.py::test_the_attempt_carries_what_it_is_for",
  "tests/unit/test_send_ledger.py::test_the_boundary_never_digs_for_context",
  "tests/unit/test_send_ledger.py::test_the_cross_model_judge_fanout_keeps_the_ledger",
  "tests/unit/test_send_ledger.py::test_the_dual_vlm_pool_carries_the_ledger",
  "tests/unit/test_send_ledger.py::test_the_fanout_carries_the_context_too",
  "tests/unit/test_send_ledger.py::test_the_fanout_carries_the_ledger",
  "tests/unit/test_send_ledger.py::test_the_ledger_is_a_report_not_a_brake",
  "tests/unit/test_send_ledger.py::test_the_ledger_is_not_merged_with_the_audit_log",
  "tests/unit/test_send_ledger.py::test_the_openai_slot_boundary_does_not_dig_for_context",
  "tests/unit/test_send_ledger.py::test_the_openai_slot_boundary_records_each_entry",
  "tests/unit/test_send_ledger.py::test_the_openai_slot_boundary_tells_image_from_text",
  "tests/unit/test_send_ledger.py::test_the_owner_sets_the_context_not_the_boundary",
  "tests/unit/test_send_ledger.py::test_the_raw_boundary_is_inside_the_retry_loop",
  "tests/unit/test_send_ledger.py::test_the_vlm_boundary_declares_it_is_not_physical",
  "tests/unit/test_send_ledger.py::test_the_walk_installs_the_context_at_the_shot_scope",
  "tests/unit/test_send_ledger.py::test_the_walk_installs_the_ledger_outside_its_body",
  "tests/unit/test_send_ledger.py::test_unknown_is_not_failure",
  "tests/unit/test_shot_conti_light.py::test_any_status_assignment_loader_keeps_failed_groups",
  "tests/unit/test_shot_conti_light.py::test_bg_resolver_assigned_but_missing_never_falls_to_seed",
  "tests/unit/test_shot_conti_light.py::test_bg_resolver_no_plate_no_seed_failed",
  "tests/unit/test_shot_conti_light.py::test_bg_resolver_priority_plate_over_seed",
  "tests/unit/test_shot_conti_light.py::test_bg_resolver_stale_plate_file_never_falls_to_seed",
  "tests/unit/test_shot_conti_light.py::test_bg_resolver_structural_absence_promotes_seed",
  "tests/unit/test_shot_conti_light.py::test_carried_person_not_in_this_shot_is_not_injected",
  "tests/unit/test_shot_conti_light.py::test_existing_row_edges_cleared_and_restored",
  "tests/unit/test_shot_conti_light.py::test_existing_row_lineage_updated_on_plate_switch",
  "tests/unit/test_shot_conti_light.py::test_finalize_ab_bypass_bgonly_and_prev",
  "tests/unit/test_shot_conti_light.py::test_finalize_ab_conti_gen_error_no_double_count",
  "tests/unit/test_shot_conti_light.py::test_finalize_ab_ignores_map_marker_entries",
  "tests/unit/test_shot_conti_light.py::test_finalize_ab_missing_conti_fail_closed_counts_once",
  "tests/unit/test_shot_conti_light.py::test_finalize_ab_ready_when_seed_plate_conti_all_present",
  "tests/unit/test_shot_conti_light.py::test_finalize_ab_seed_missing_fail_closed",
  "tests/unit/test_shot_conti_light.py::test_finalize_plate_bg_path_synced_to_effective_plate",
  "tests/unit/test_shot_conti_light.py::test_finalize_seed_bg_bypass_semantics",
  "tests/unit/test_shot_conti_light.py::test_finalize_seed_bg_ready_requires_conti_from_seed",
  "tests/unit/test_shot_conti_light.py::test_finalize_unknown_bg_source_rejected",
  "tests/unit/test_shot_conti_light.py::test_fresh_map_flow_has_both_edges",
  "tests/unit/test_shot_conti_light.py::test_lane_flow_edges_and_prompt_isolation",
  "tests/unit/test_shot_conti_light.py::test_lane_flow_sketch_edge_direct_to_clean_map",
  "tests/unit/test_shot_conti_light.py::test_lane_marker_map_asset_registration_provenance",
  "tests/unit/test_shot_conti_light.py::test_legacy_carried_stops_the_conti_before_buying",
  "tests/unit/test_shot_conti_light.py::test_pose_and_carried_injected",
  "tests/unit/test_shot_conti_light.py::test_prompt_assembly_order",
  "tests/unit/test_shot_conti_light.py::test_prompt_without_plate_omits_bgref",
  "tests/unit/test_shot_conti_light.py::test_recipe_fresh_run_ordering",
  "tests/unit/test_shot_conti_light.py::test_resolve_shot_plate_map_canonical_shot_id_shape",
  "tests/unit/test_shot_conti_light.py::test_resolve_shot_plate_map_chain_fallback",
  "tests/unit/test_shot_conti_light.py::test_resolve_shot_plate_map_phase7",
  "tests/unit/test_shot_conti_light.py::test_resolve_shot_plate_map_render_takes_precedence",
  "tests/unit/test_shot_conti_light.py::test_resume_after_rollback_recovers_edges",
  "tests/unit/test_shot_conti_light.py::test_run_existing_png_without_sidecar_regenerates",
  "tests/unit/test_shot_conti_light.py::test_run_extra_fingerprint_change_regenerates",
  "tests/unit/test_shot_conti_light.py::test_run_force_regenerates_even_when_matching",
  "tests/unit/test_shot_conti_light.py::test_run_regenerates_on_input_change_and_archives",
  "tests/unit/test_shot_conti_light.py::test_run_resume_skips_existing_png",
  "tests/unit/test_shot_conti_light.py::test_run_resume_skips_with_matching_fingerprint",
  "tests/unit/test_shot_conti_light.py::test_run_skips_and_generates",
  "tests/unit/test_shot_conti_light.py::test_step_registered",
  "tests/unit/test_shot_conti_light.py::test_step_source_has_no_pil_marker_render",
  "tests/unit/test_shot_conti_light.py::test_structure_policy_entry_not_registered",
  "tests/unit/test_shot_conti_light.py::test_targets_exclude_bgonly_and_prev",
  "tests/unit/test_shot_conti_light.py::test_unresolved_existing_input_recorded",
  "tests/unit/test_shot_conti_light_persp.py::test_no_plate_conti_default_off_keeps_skip",
  "tests/unit/test_shot_conti_light_persp.py::test_no_plate_conti_generates_without_plate_ref",
  "tests/unit/test_shot_conti_light_persp.py::test_no_plate_conti_plated_shot_unchanged",
  "tests/unit/test_shot_conti_light_persp.py::test_no_plate_conti_requires_v3_pack",
  "tests/unit/test_shot_conti_light_persp.py::test_ref_header_variants",
  "tests/unit/test_shot_conti_light_persp.py::test_register_uses_ref_paths_for_inputs",
  "tests/unit/test_shot_conti_light_persp.py::test_register_without_ref_paths_keeps_plate_only",
  "tests/unit/test_shot_conti_light_persp.py::test_v1_assembly_unchanged_without_new_inputs",
  "tests/unit/test_shot_conti_light_persp.py::test_v1_entries_have_no_ref_paths_key",
  "tests/unit/test_shot_conti_light_persp.py::test_v1_rejects_camera_frame",
  "tests/unit/test_shot_conti_light_persp.py::test_v1_run_refs_plate_only_and_scene_place",
  "tests/unit/test_shot_conti_light_persp.py::test_v2_appends_camera_then_guides_at_tail",
  "tests/unit/test_shot_conti_light_persp.py::test_v2_entries_record_ref_paths",
  "tests/unit/test_shot_conti_light_persp.py::test_v2_fingerprint_covers_char_refs",
  "tests/unit/test_shot_conti_light_persp.py::test_v2_place_fallback_to_scene_then_location",
  "tests/unit/test_shot_conti_light_persp.py::test_v2_run_shot_place_staging_and_char_refs",
  "tests/unit/test_shot_conti_light_persp.py::test_v2_without_camera_still_has_guides",
  "tests/unit/test_shot_conti_light_persp.py::test_v3_assembly_unchanged_by_v4_stems",
  "tests/unit/test_shot_conti_light_persp.py::test_v4_appends_prop_orientation_and_naturalism",
  "tests/unit/test_shot_conti_light_persp.py::test_v4_assembly_unchanged_by_v5_stems",
  "tests/unit/test_shot_conti_light_persp.py::test_v4_supports_no_plate_header",
  "tests/unit/test_shot_conti_light_persp.py::test_v5_appends_keyshot_clause",
  "tests/unit/test_shot_conti_light_persp.py::test_v5_supports_no_plate_header",
  "tests/unit/test_shot_continuity.py::test_a_chunk_only_owns_its_own_shots",
  "tests/unit/test_shot_continuity.py::test_a_failing_chunk_stops_the_rest_before_they_are_sent",
  "tests/unit/test_shot_continuity.py::test_a_long_episode_is_split_by_default",
  "tests/unit/test_shot_continuity.py::test_carried_input_has_full_scene_text",
  "tests/unit/test_shot_continuity.py::test_carried_is_sharded_and_every_shot_is_answered_once",
  "tests/unit/test_shot_continuity.py::test_chunked_calls_get_retries_but_a_single_chunk_does_not",
  "tests/unit/test_shot_continuity.py::test_missing_carried_fails",
  "tests/unit/test_shot_continuity.py::test_no_immobile_no_pose_fix_calls",
  "tests/unit/test_shot_continuity.py::test_one_chunk_assembly_equals_the_old_string",
  "tests/unit/test_shot_continuity.py::test_one_chunk_input_is_byte_identical_to_the_old_assembly",
  "tests/unit/test_shot_continuity.py::test_payload_shape",
  "tests/unit/test_shot_continuity.py::test_pose_canon_unknown_short_id_none",
  "tests/unit/test_shot_continuity.py::test_pose_canon_unknown_shot_dropped",
  "tests/unit/test_shot_continuity.py::test_pose_canon_v2_pack_contract_roster_clause",
  "tests/unit/test_shot_continuity.py::test_pose_canon_v2_roster_injected_v1_unchanged",
  "tests/unit/test_shot_continuity.py::test_step_registered",
  "tests/unit/test_shot_continuity.py::test_v3_people_survive_the_fan_out",
  "tests/unit/test_shot_continuity.py::test_workers_carry_stop_check_budget_and_trace",
  "tests/unit/test_shot_director_no_mutation.py::test_logger_warning_on_mismatch",
  "tests/unit/test_shot_director_no_mutation.py::test_no_mutation_when_lexicon_candidates_present",
  "tests/unit/test_shot_influence_summary.py::test_critique_disabled_is_not_applied",
  "tests/unit/test_shot_influence_summary.py::test_fix_losing_rejudge_is_not_applied",
  "tests/unit/test_shot_influence_summary.py::test_fix_winning_rejudge_is_applied",
  "tests/unit/test_shot_influence_summary.py::test_legacy_fix_without_rejudge_is_applied",
  "tests/unit/test_shot_influence_summary.py::test_missing_fields_are_tolerated",
  "tests/unit/test_shot_influence_summary.py::test_summary_keeps_decision_axes",
  "tests/unit/test_shot_influence_summary.py::test_summary_lists_refs_with_asset_ids",
  "tests/unit/test_shot_influence_summary.py::test_summary_matches_canonical_judgement",
  "tests/unit/test_shot_influence_summary.py::test_summary_never_carries_full_prompt",
  "tests/unit/test_shot_influence_summary.py::test_verdicts_are_scores_only",
  "tests/unit/test_shot_influence_tool.py::test_merge_flags_uid_mismatch",
  "tests/unit/test_shot_influence_tool.py::test_merge_keys_off_the_uid",
  "tests/unit/test_shot_influence_tool.py::test_merge_survives_missing_sources",
  "tests/unit/test_shot_influence_tool.py::test_render_distinguishes_fix_loss_from_skip",
  "tests/unit/test_shot_influence_tool.py::test_render_lists_refs_and_calls",
  "tests/unit/test_shot_influence_tool.py::test_render_marks_unresolved_refs",
  "tests/unit/test_shot_influence_tool.py::test_render_says_applied_when_fix_won",
  "tests/unit/test_shot_influence_tool.py::test_render_still_reports_skip_reason",
  "tests/unit/test_shot_influence_tool.py::test_spans_are_paged_too",
  "tests/unit/test_shot_influence_tool.py::test_trace_lookup_stops_at_the_end",
  "tests/unit/test_shot_influence_tool.py::test_trace_lookup_walks_past_the_first_page",
  "tests/unit/test_shot_level_cine_stage_direction.py::test_every_assembly_call_uses_the_shot_level_value",
  "tests/unit/test_shot_level_cine_stage_direction.py::test_global_off_is_unchanged",
  "tests/unit/test_shot_level_cine_stage_direction.py::test_normal_shot_still_hands_camera_to_the_transform",
  "tests/unit/test_shot_level_cine_stage_direction.py::test_other_shots_are_unaffected_by_one_rejection",
  "tests/unit/test_shot_level_cine_stage_direction.py::test_rejected_shot_keeps_the_camera_clause_up_front",
  "tests/unit/test_shot_level_cine_stage_direction.py::test_unreadable_records_keep_the_clause",
  "tests/unit/test_shot_ref_classify.py::test_applicability_gate",
  "tests/unit/test_shot_ref_classify.py::test_bgonly_forces_prev_null",
  "tests/unit/test_shot_ref_classify.py::test_missing_shot_fails",
  "tests/unit/test_shot_ref_classify.py::test_payload_shape_and_values",
  "tests/unit/test_shot_ref_classify.py::test_prev_must_be_earlier_shot",
  "tests/unit/test_shot_ref_classify.py::test_prev_not_in_list_rejected",
  "tests/unit/test_shot_ref_classify.py::test_step_registered",
  "tests/unit/test_shot_ref_classify.py::test_tag_roundtrip",
  "tests/unit/test_shot_ref_classify.py::test_user_prompt_carries_location_and_full_text",
  "tests/unit/test_shot_ref_classify.py::test_v1_pack_no_shot_place_call_and_no_fields",
  "tests/unit/test_shot_ref_classify.py::test_v3_shot_place_authored_and_merged",
  "tests/unit/test_shot_ref_classify.py::test_v3_shot_place_missing_shot_fails",
  "tests/unit/test_shot_run_uid.py::test_disabled_gives_none",
  "tests/unit/test_shot_run_uid.py::test_every_outer_return_is_stamped",
  "tests/unit/test_shot_run_uid.py::test_matches_open_trace_uid",
  "tests/unit/test_shot_run_uid.py::test_nested_helper_returns_are_ignored",
  "tests/unit/test_shot_run_uid.py::test_none_outside_scope",
  "tests/unit/test_shot_run_uid.py::test_reused_visit_does_not_claim_authorship",
  "tests/unit/test_shot_run_uid.py::test_spend_is_marked_before_the_call_not_after",
  "tests/unit/test_shot_run_uid.py::test_spend_marker_is_called_before_generation",
  "tests/unit/test_shot_run_uid.py::test_stale_uid_is_cleared_when_no_trace",
  "tests/unit/test_shot_run_uid_sink.py::test_absent_key_is_byte_identical_to_before",
  "tests/unit/test_shot_run_uid_sink.py::test_produced_visit_stamps_uid_on_the_asset",
  "tests/unit/test_shot_run_uid_sink.py::test_reused_visit_leaves_no_uid_key",
  "tests/unit/test_shot_run_uid_sink.py::test_uid_does_not_clobber_other_meta",
  "tests/unit/test_shot_visibility_drift_structured.py::TestCaseAFrameInternalMutualGaze::test_no_drift_when_camera_direction_lacks_offscreen_phrase",
  "tests/unit/test_shot_visibility_drift_structured.py::TestCaseBHybridGateBlocking::test_drift_detected_when_offscreen_phrase_and_structured_match",
  "tests/unit/test_shot_visibility_drift_structured.py::TestCaseCStructuredPathDoesNotMatchNames::test_drift_detected_via_structured_resolution_only",
  "tests/unit/test_shot_visibility_drift_structured.py::TestCaseDInFrameGuarantee::test_in_frame_sid_excluded_from_drift",
  "tests/unit/test_shot_visibility_drift_structured.py::TestEmptyInputs::test_empty_camera_direction_returns_empty",
  "tests/unit/test_shot_visibility_drift_structured.py::TestEmptyInputs::test_no_offscreen_phrase_returns_empty",
  "tests/unit/test_shot_visibility_path1.py::test_path1_reads_gaze_direction_kind",
  "tests/unit/test_shot_visibility_path1.py::test_path1_uses_helper_dispatch_no_name_matching",
  "tests/unit/test_shot_visibility_path1.py::test_path2_korean_lexicon_unchanged",
  "tests/unit/test_shot_visibility_proximity_diagnostic.py::TestEmptyInputs::test_empty_camera_direction",
  "tests/unit/test_shot_visibility_proximity_diagnostic.py::TestEmptyInputs::test_no_offscreen_phrase",
  "tests/unit/test_shot_visibility_proximity_diagnostic.py::TestInFrameGuaranteeOptional::test_in_frame_excludes_proximity_candidate",
  "tests/unit/test_shot_visibility_proximity_diagnostic.py::TestProximityNLFallback::test_proximity_match_returns_drift_candidate",
  "tests/unit/test_site_scene_scope_limits_group_seed.py::test_garbled_scene_index_is_dropped_not_guessed",
  "tests/unit/test_site_scene_scope_limits_group_seed.py::test_real_group_scope_is_the_site_scene_only",
  "tests/unit/test_site_scene_scope_limits_group_seed.py::test_several_site_items_give_several_scenes",
  "tests/unit/test_site_scene_scope_limits_group_seed.py::test_the_decision_does_not_narrow_when_it_cannot_read",
  "tests/unit/test_site_scene_scope_limits_group_seed.py::test_the_decision_itself_drops_only_the_out_of_scope_shot",
  "tests/unit/test_site_scene_scope_limits_group_seed.py::test_the_shot_that_broke_is_out_of_scope_and_the_one_that_did_not_is_in",
  "tests/unit/test_site_scene_scope_limits_group_seed.py::test_unreadable_scope_does_not_narrow_anything",
  "tests/unit/test_stage_head_place_not_camera.py::test_body_survives_and_comes_after_the_head",
  "tests/unit/test_stage_head_place_not_camera.py::test_fingerprint_folds_the_stage_head[recipe_stage_head_content]",
  "tests/unit/test_stage_head_place_not_camera.py::test_fingerprint_folds_the_stage_head[recipe_stage_head_pack]",
  "tests/unit/test_stage_head_place_not_camera.py::test_geom_head_keeps_its_camera_lock_on_purpose",
  "tests/unit/test_stage_head_place_not_camera.py::test_mannequin_head_keeps_its_camera_lock_on_purpose",
  "tests/unit/test_stage_head_place_not_camera.py::test_no_camera_contract_keeps_the_old_lock",
  "tests/unit/test_stage_head_place_not_camera.py::test_no_camera_contract_keeps_the_sketch_sizes",
  "tests/unit/test_stage_head_place_not_camera.py::test_no_camera_contract_output_is_byte_identical_to_v7",
  "tests/unit/test_stage_head_place_not_camera.py::test_plain_head_hands_the_camera_to_the_contract",
  "tests/unit/test_stage_head_place_not_camera.py::test_plain_head_separates_out_of_frame_from_removed",
  "tests/unit/test_stage_head_place_not_camera.py::test_plain_head_still_names_what_must_be_preserved",
  "tests/unit/test_stage_head_place_not_camera.py::test_published_v7_head_is_untouched",
  "tests/unit/test_stage_head_place_not_camera.py::test_sketch_gives_relative_size_not_absolute",
  "tests/unit/test_stage_head_place_not_camera.py::test_the_new_pack_holds_only_that_stem",
  "tests/unit/test_stage_head_place_not_camera.py::test_the_switch_reads_our_own_clause_head",
  "tests/unit/test_state_variant_source_follows_the_shot_outfit.py::test_bare_or_unassigned_majority_uses_the_base",
  "tests/unit/test_state_variant_source_follows_the_shot_outfit.py::test_existing_variant_is_rebuilt_only_when_its_input_differs",
  "tests/unit/test_state_variant_source_follows_the_shot_outfit.py::test_one_outfit_majority_uses_that_outfit",
  "tests/unit/test_state_variant_source_follows_the_shot_outfit.py::test_source_asset_for_base_is_the_base",
  "tests/unit/test_state_variant_source_follows_the_shot_outfit.py::test_source_asset_prefers_the_composite_drawn_from_the_current_base",
  "tests/unit/test_state_variant_source_follows_the_shot_outfit.py::test_tie_or_nothing_falls_back_to_the_old_rule",
  "tests/unit/test_state_variant_source_follows_the_shot_outfit.py::test_unassigned_shots_do_not_vote",
  "tests/unit/test_static_clause_authority.py::test_both_clauses_return_when_the_shot_names_people[17]",
  "tests/unit/test_static_clause_authority.py::test_both_clauses_return_when_the_shot_names_people[]",
  "tests/unit/test_static_clause_authority.py::test_expression_clause_is_absent_from_people_less_shots[17]",
  "tests/unit/test_static_clause_authority.py::test_expression_clause_is_absent_from_people_less_shots[]",
  "tests/unit/test_static_clause_authority.py::test_fingerprint_folds_the_naturalism_stem_bytes",
  "tests/unit/test_static_clause_authority.py::test_naturalism_pack_follows_the_backend[False-37]",
  "tests/unit/test_static_clause_authority.py::test_naturalism_pack_follows_the_backend[False-39]",
  "tests/unit/test_static_clause_authority.py::test_naturalism_pack_follows_the_backend[True-38]",
  "tests/unit/test_static_clause_authority.py::test_naturalism_pack_follows_the_backend[True-40]",
  "tests/unit/test_static_clause_authority.py::test_new_wording_actually_lands[17]",
  "tests/unit/test_static_clause_authority.py::test_new_wording_actually_lands[]",
  "tests/unit/test_static_clause_authority.py::test_old_authority_grabbing_wording_is_gone[17]",
  "tests/unit/test_static_clause_authority.py::test_old_authority_grabbing_wording_is_gone[]",
  "tests/unit/test_static_clause_authority.py::test_people_shot_keeps_all_three_clauses[17]",
  "tests/unit/test_static_clause_authority.py::test_people_shot_keeps_all_three_clauses[]",
  "tests/unit/test_static_clause_authority.py::test_shed_table_points_at_the_pack_the_assembly_renders",
  "tests/unit/test_step_config_drift_ack.py::test_ack_allows_nondestructive_rerun",
  "tests/unit/test_step_config_drift_ack.py::test_ack_does_not_cover_schema_version_mismatch",
  "tests/unit/test_step_config_drift_ack.py::test_ack_for_other_step_still_blocks",
  "tests/unit/test_step_config_drift_ack.py::test_no_ack_blocks_config_drift",
  "tests/unit/test_step_config_drift_ack.py::test_public_run_force_latch_blocks_before_any_mutation",
  "tests/unit/test_step_config_drift_ack.py::test_step_entry_latch_blocks_all_modes",
  "tests/unit/test_step_config_drift_ack.py::test_step_entry_latch_respects_switch_off",
  "tests/unit/test_step_config_drift_ack.py::test_target_scope_drift_still_wins_over_ack",
  "tests/unit/test_step_config_drift_ack.py::test_the_base_runner_does_not_open_on_ack_for_a_non_image_step",
  "tests/unit/test_step_lock.py::test_PID_가_바뀌면_신원과_등록부를_새로_만든다",
  "tests/unit/test_step_lock.py::test_PermissionError_는_살아있음이다",
  "tests/unit/test_step_lock.py::test_cancelled_는_재개하면_다시_돈다",
  "tests/unit/test_step_lock.py::test_parse_iso_는_문자열과_datetime_을_둘_다_받는다",
  "tests/unit/test_step_lock.py::test_router_completion_도_같은_표를_본다",
  "tests/unit/test_step_lock.py::test_tz_없는_값은_UTC_로_읽는다",
  "tests/unit/test_step_lock.py::test_같은_호스트인데_PID_가_없으면_죽었다",
  "tests/unit/test_step_lock.py::test_글_LLM_도_같은_표를_본다",
  "tests/unit/test_step_lock.py::test_동시에_들어와도_하나만_이긴다",
  "tests/unit/test_step_lock.py::test_등록부는_같은_키에_여러_run_id를_담는다",
  "tests/unit/test_step_lock.py::test_마지막_소유자가_나가면_키가_사라진다",
  "tests/unit/test_step_lock.py::test_신선한_하트비트는_살아있다",
  "tests/unit/test_step_lock.py::test_신원_없는_옛_행은_예전대로_경과_시간으로_풀린다",
  "tests/unit/test_step_lock.py::test_신원_없는_옛_행은_예전대로_경과_시간으로_회수된다",
  "tests/unit/test_step_lock.py::test_신원_없는_옛_행이_아직_안_지났으면_막는다",
  "tests/unit/test_step_lock.py::test_신원_있는_UNKNOWN_은_경과_시간으로_안_뺏는다",
  "tests/unit/test_step_lock.py::test_신원도_하트비트도_없으면_모른다",
  "tests/unit/test_step_lock.py::test_없는_PID_는_사망이다",
  "tests/unit/test_step_lock.py::test_에피소드_자리는_한_번만_잡힌다",
  "tests/unit/test_step_lock.py::test_이_프로세스가_등록부에_있으면_살아있다",
  "tests/unit/test_step_lock.py::test_이_프로세스인데_등록부에_없으면_죽었다",
  "tests/unit/test_step_lock.py::test_일반_예외도_failed_로_적힌다",
  "tests/unit/test_step_lock.py::test_자리를_놓으면_다음_요청이_들어온다",
  "tests/unit/test_step_lock.py::test_정지_표가_pool_worker_로_실려_간다",
  "tests/unit/test_step_lock.py::test_정지_표가_걸리면_유료_호출_길목에서_멈춘다",
  "tests/unit/test_step_lock.py::test_정지_표가_없으면_길목은_그대로_통과한다",
  "tests/unit/test_step_lock.py::test_정지_표는_예산_없는_경로에서도_들린다",
  "tests/unit/test_step_lock.py::test_정지가_아닌_AppError_는_여전히_failed_로_적힌다",
  "tests/unit/test_step_lock.py::test_정지는_실패가_아니라_cancelled_로_적힌다",
  "tests/unit/test_step_lock.py::test_진_contender_의_퇴장이_산_소유자를_안_지운다",
  "tests/unit/test_step_lock.py::test_하트비트_만료는_기본적으로_자동_풀기가_아니다",
  "tests/unit/test_step_lock.py::test_하트비트_만료는_기본적으로_자동_회수가_아니다",
  "tests/unit/test_step_lock.py::test_하트비트_풀기를_켜면_만료가_죽음이_된다",
  "tests/unit/test_step_lock.py::test_하트비트_회수를_켜면_만료가_죽음이_된다",
  "tests/unit/test_step_lock.py::test_확정_사망은_즉시_풀린다",
  "tests/unit/test_step_lock.py::test_확정_사망은_즉시_회수된다",
  "tests/unit/test_step_runner_owner_aware_update.py::test_update_step_run_includes_run_id_when_require_owner",
  "tests/unit/test_step_runner_owner_aware_update.py::test_update_step_run_omits_run_id_when_not_require_owner",
  "tests/unit/test_step_runner_owner_aware_update.py::test_update_step_run_strict_raises_when_owner_lost",
  "tests/unit/test_step_runner_verify_crashed.py::TestSafeVerifyCompletionAppErrorContractDrift::test_apperror_contract_violation_returns_contract_drift",
  "tests/unit/test_step_runner_verify_crashed.py::TestSafeVerifyCompletionAppErrorContractDrift::test_apperror_other_code_returns_contract_drift",
  "tests/unit/test_step_runner_verify_crashed.py::TestSafeVerifyCompletionPassThrough::test_failure_report_passes_through",
  "tests/unit/test_step_runner_verify_crashed.py::TestSafeVerifyCompletionPassThrough::test_no_exception_returns_completion_report_unchanged",
  "tests/unit/test_step_runner_verify_crashed.py::TestSafeVerifyCompletionVerifyCrashed::test_apperror_verify_crashed_propagates_unchanged",
  "tests/unit/test_step_runner_verify_crashed.py::TestSafeVerifyCompletionVerifyCrashed::test_attribute_error_raises_verify_crashed",
  "tests/unit/test_step_runner_verify_crashed.py::TestSafeVerifyCompletionVerifyCrashed::test_keyerror_raises_verify_crashed",
  "tests/unit/test_step_runner_verify_crashed.py::TestSafeVerifyCompletionVerifyCrashed::test_value_error_raises_verify_crashed",
  "tests/unit/test_still_recipe.py::test_ab_branch_refs_differ_only_by_conti",
  "tests/unit/test_still_recipe.py::test_ab_branch_refs_require_plate_for_complex",
  "tests/unit/test_still_recipe.py::test_ab_branch_refs_seed_bg_differ_only_by_conti",
  "tests/unit/test_still_recipe.py::test_apply_share_plan_prev_overrides",
  "tests/unit/test_still_recipe.py::test_bgfirst_bg_prompt_lighting_param",
  "tests/unit/test_still_recipe.py::test_bgfirst_bg_prompt_v10_keeps_animals_and_scale",
  "tests/unit/test_still_recipe.py::test_bgfirst_eligible_full_chain_includes_lane_and_prev",
  "tests/unit/test_still_recipe.py::test_bgfirst_eligible_full_chain_still_excludes_bgonly_and_noconti",
  "tests/unit/test_still_recipe.py::test_bgfirst_eligible_full_excludes_prev_bgonly_lane_noconti",
  "tests/unit/test_still_recipe.py::test_bgfirst_eligible_full_includes_complex_and_seed",
  "tests/unit/test_still_recipe.py::test_bgfirst_seed_clause_and_input_ids_with_seed",
  "tests/unit/test_still_recipe.py::test_bgfirst_winner_lineage_canon_master_authority",
  "tests/unit/test_still_recipe.py::test_bgfirst_winner_lineage_prev_authority",
  "tests/unit/test_still_recipe.py::test_bgonly_refs_carry_only_the_handler",
  "tests/unit/test_still_recipe.py::test_bgonly_refs_skip_when_no_name_matches",
  "tests/unit/test_still_recipe.py::test_camera_frame_clause_fail_safe_empty",
  "tests/unit/test_still_recipe.py::test_camera_frame_clause_renders_staging_contract",
  "tests/unit/test_still_recipe.py::test_chain_bg_location_pack_in_run_fingerprint_source_contract",
  "tests/unit/test_still_recipe.py::test_classify_v4_asks_who_handles_the_object",
  "tests/unit/test_still_recipe.py::test_conduct_bgonly_gets_drawn_mark_only",
  "tests/unit/test_still_recipe.py::test_conduct_clauses_injected_when_version_set",
  "tests/unit/test_still_recipe.py::test_conduct_empty_is_byte_identical",
  "tests/unit/test_still_recipe.py::test_conti_targets_includes_prev_shots_when_geom",
  "tests/unit/test_still_recipe.py::test_conti_targets_reads_classification_directly",
  "tests/unit/test_still_recipe.py::test_decide_groupbg_reuse_all_members_compare_canonical_fp",
  "tests/unit/test_still_recipe.py::test_decide_groupbg_reuse_follower_detects_context_drift",
  "tests/unit/test_still_recipe.py::test_effective_prompt_used_prefers_selected_variant",
  "tests/unit/test_still_recipe.py::test_geom_authority_replaces_stage_head",
  "tests/unit/test_still_recipe.py::test_geom_authority_swaps_sketch_label",
  "tests/unit/test_still_recipe.py::test_geom_authority_without_conti_is_noop",
  "tests/unit/test_still_recipe.py::test_groupbg_context_sig_detects_drift",
  "tests/unit/test_still_recipe.py::test_groupbg_prompt_no_people_and_no_shot_specific",
  "tests/unit/test_still_recipe.py::test_groupbg_prompt_v10_ignores_extras_byte_identical",
  "tests/unit/test_still_recipe.py::test_groupbg_prompt_v10_keeps_animals",
  "tests/unit/test_still_recipe.py::test_groupbg_prompt_v11_empty_extras_omit_clauses",
  "tests/unit/test_still_recipe.py::test_groupbg_prompt_v11_location_detail_and_evidence",
  "tests/unit/test_still_recipe.py::test_groupbg_require_input_ids_fail_closed",
  "tests/unit/test_still_recipe.py::test_handled_clause_coexists_with_no_people",
  "tests/unit/test_still_recipe.py::test_handled_object_clause_names_the_hand_owner",
  "tests/unit/test_still_recipe.py::test_identity_role_builder_empty_without_char_refs",
  "tests/unit/test_still_recipe.py::test_identity_role_clause_injected_after_people",
  "tests/unit/test_still_recipe.py::test_identity_role_condition_mirrors_build_still_refs",
  "tests/unit/test_still_recipe.py::test_identity_role_empty_is_byte_identical",
  "tests/unit/test_still_recipe.py::test_lighting_mood_clause_failsafe_empty",
  "tests/unit/test_still_recipe.py::test_lighting_mood_clause_renders_from_staging",
  "tests/unit/test_still_recipe.py::test_locked_pose_short_ids_prev_coverage_rule",
  "tests/unit/test_still_recipe.py::test_mannequin_wins_over_geom_authority",
  "tests/unit/test_still_recipe.py::test_multiroll_select_actually_accepts_the_three_keys",
  "tests/unit/test_still_recipe.py::test_no_handler_keeps_prompt_identical",
  "tests/unit/test_still_recipe.py::test_no_people_clause_permits_the_hand_that_holds",
  "tests/unit/test_still_recipe.py::test_outer_hash_carries_still_only_judge_pack_and_geom",
  "tests/unit/test_still_recipe.py::test_outfit_assignments_conflict_fail_closed",
  "tests/unit/test_still_recipe.py::test_outfit_assignments_invalid_fail_closed",
  "tests/unit/test_still_recipe.py::test_outfit_assignments_production_shape_selects_composite",
  "tests/unit/test_still_recipe.py::test_partition_lineage_excludes_plate_conti_from_reference",
  "tests/unit/test_still_recipe.py::test_plate_authority_absent_conti_divergence_fail_closed",
  "tests/unit/test_still_recipe.py::test_plate_authority_absent_conti_is_sot_when_mapping_missing",
  "tests/unit/test_still_recipe.py::test_plate_authority_absent_keeps_consistent_assignment",
  "tests/unit/test_still_recipe.py::test_plate_authority_conti_mismatch_fail_closed",
  "tests/unit/test_still_recipe.py::test_plate_authority_entry_wins_and_matches_conti",
  "tests/unit/test_still_recipe.py::test_plate_authority_missing_file_fail_closed",
  "tests/unit/test_still_recipe.py::test_plate_flow_mode_truth_table",
  "tests/unit/test_still_recipe.py::test_prev_shot_gets_conti_only_under_geom_authority",
  "tests/unit/test_still_recipe.py::test_prompt_bgonly_does_not_override_assigned_characters",
  "tests/unit/test_still_recipe.py::test_prompt_bgonly_no_people_no_pose",
  "tests/unit/test_still_recipe.py::test_prompt_camera_frame_insertion_and_identity",
  "tests/unit/test_still_recipe.py::test_prompt_lane_location_authority",
  "tests/unit/test_still_recipe.py::test_prompt_no_chars_fallback",
  "tests/unit/test_still_recipe.py::test_prompt_normal_order_and_people_traits",
  "tests/unit/test_still_recipe.py::test_prompt_pose_canon_injects_gravity_contract",
  "tests/unit/test_still_recipe.py::test_prompt_prev_continues_and_usage",
  "tests/unit/test_still_recipe.py::test_prompt_v1_assembly_unchanged_without_seed",
  "tests/unit/test_still_recipe.py::test_prompt_v4_structure_look_clause",
  "tests/unit/test_still_recipe.py::test_prompt_v5_seed_bg_location_lock",
  "tests/unit/test_still_recipe.py::test_prompt_world_anchor_injected",
  "tests/unit/test_still_recipe.py::test_recipe_service_fail_closed_on_missing_upstream",
  "tests/unit/test_still_recipe.py::test_refs_bgonly_plate_only",
  "tests/unit/test_still_recipe.py::test_refs_bgonly_share_plan_prev_wins",
  "tests/unit/test_still_recipe.py::test_refs_lane_direct_seed_seed_only",
  "tests/unit/test_still_recipe.py::test_refs_lane_sketch_seed_prev_entities",
  "tests/unit/test_still_recipe.py::test_refs_normal_plate_conti_entities",
  "tests/unit/test_still_recipe.py::test_refs_prev_uses_sel_and_no_conti",
  "tests/unit/test_still_recipe.py::test_refs_structure_seed_guards",
  "tests/unit/test_still_recipe.py::test_refs_v4_bg_only_includes_seed",
  "tests/unit/test_still_recipe.py::test_refs_v4_plate_and_seed_coexist_order",
  "tests/unit/test_still_recipe.py::test_refs_v5_seed_bg_single_authority",
  "tests/unit/test_still_recipe.py::test_resolve_groupbg_canonical_origin_contract",
  "tests/unit/test_still_recipe.py::test_resolve_groupbg_canonical_origin_group_sig_fail_closed",
  "tests/unit/test_still_recipe.py::test_resolve_groupbg_regen_origin_contract",
  "tests/unit/test_still_recipe.py::test_resolver_exact_miss_returns_none",
  "tests/unit/test_still_recipe.py::test_run_branch_select_default_omits_new_kwargs",
  "tests/unit/test_still_recipe.py::test_run_branch_select_forwards_fix_ref_gate_and_missing_texts",
  "tests/unit/test_still_recipe.py::test_run_branch_select_forwards_fix_rejudge_fn",
  "tests/unit/test_still_recipe.py::test_run_branch_select_forwards_variant_kwargs",
  "tests/unit/test_still_recipe.py::test_run_branch_select_gate_without_texts_sends_empty_clause",
  "tests/unit/test_still_recipe.py::test_run_branch_select_gen_fix_same_callable_executes",
  "tests/unit/test_still_recipe.py::test_scene_image_step_config_hash_stamped_only_when_on",
  "tests/unit/test_still_recipe.py::test_scene_pipeline_hash_stamps_chain_bg_location_pack",
  "tests/unit/test_still_recipe.py::test_scene_pipeline_hash_stamps_lane_bgfirst_pack",
  "tests/unit/test_still_recipe.py::test_scene_pipeline_hash_stamps_lane_pack_on_only",
  "tests/unit/test_still_recipe.py::test_service_derives_geom_authority_from_classification",
  "tests/unit/test_still_recipe.py::test_service_hands_the_gate_and_texts_to_run_branch_select",
  "tests/unit/test_still_recipe.py::test_service_passes_geom_authority_to_all_three_assemblers",
  "tests/unit/test_still_recipe.py::test_service_passes_handled_by",
  "tests/unit/test_still_recipe.py::test_share_plan_service_wiring_source_contract",
  "tests/unit/test_still_recipe.py::test_still_prompt_lighting_applies_to_bg_only",
  "tests/unit/test_still_recipe.py::test_still_prompt_lighting_empty_is_byte_identical",
  "tests/unit/test_still_recipe.py::test_still_prompt_lighting_inserted_after_camera_frame",
  "tests/unit/test_still_recipe.py::test_still_recipe_v11_pack_copy_integrity",
  "tests/unit/test_still_recipe.py::test_still_variants_flag_default_off",
  "tests/unit/test_still_recipe.py::test_still_variants_service_and_hash_wiring_source_contract",
  "tests/unit/test_still_recipe.py::test_validate_groupbg_conti_source_fail_closed",
  "tests/unit/test_still_recipe.py::test_variants_critique_and_judge_model_wiring_source_contract",
  "tests/unit/test_still_recipe.py::test_ve_fallback_scene_union",
  "tests/unit/test_still_recipe.py::test_winner_exact_multiroll_tag",
  "tests/unit/test_still_recipe_bgfirst.py::test_bg_fill_prompt_order_and_stems",
  "tests/unit/test_still_recipe_bgfirst.py::test_bg_fill_prompt_requires_place_and_world_facts",
  "tests/unit/test_still_recipe_bgfirst.py::test_bg_only_lane_shot_keeps_its_plate_reference",
  "tests/unit/test_still_recipe_bgfirst.py::test_bg_only_lane_shot_prompt_matches_its_attached_plate",
  "tests/unit/test_still_recipe_bgfirst.py::test_bg_prompt_assembly_matches_canonical_order",
  "tests/unit/test_still_recipe_bgfirst.py::test_bg_prompt_camera_optional",
  "tests/unit/test_still_recipe_bgfirst.py::test_bgfirst_refs_omit_sketch_slot_when_conti_is_none",
  "tests/unit/test_still_recipe_bgfirst.py::test_bgfirst_refs_omits_sketch_slot_when_conti_is_none",
  "tests/unit/test_still_recipe_bgfirst.py::test_bgfirst_winner_lineage_matrix",
  "tests/unit/test_still_recipe_bgfirst.py::test_chain_bg_mode_is_exclusive_with_other_authorities",
  "tests/unit/test_still_recipe_bgfirst.py::test_chain_bg_mode_off_is_byte_identical",
  "tests/unit/test_still_recipe_bgfirst.py::test_chain_bg_mode_replaces_location_photograph_tail",
  "tests/unit/test_still_recipe_bgfirst.py::test_chain_bg_stem_loads_from_explicit_version",
  "tests/unit/test_still_recipe_bgfirst.py::test_chain_only_branch_critiques_selected_prompt_only",
  "tests/unit/test_still_recipe_bgfirst.py::test_chain_only_decided_before_b_candidate_assembly",
  "tests/unit/test_still_recipe_bgfirst.py::test_conti_defect_matrix",
  "tests/unit/test_still_recipe_bgfirst.py::test_contract_version_bumped_for_eligibility_change",
  "tests/unit/test_still_recipe_bgfirst.py::test_contract_version_pinned_to_current_chain_prompt_migration",
  "tests/unit/test_still_recipe_bgfirst.py::test_eligible_plain_conti_shot_only",
  "tests/unit/test_still_recipe_bgfirst.py::test_entity_labels_match_noconti_branch",
  "tests/unit/test_still_recipe_bgfirst.py::test_final_prompt_default_stays_byte_identical",
  "tests/unit/test_still_recipe_bgfirst.py::test_final_prompt_default_takes_the_dedicated_stage_head",
  "tests/unit/test_still_recipe_bgfirst.py::test_final_prompt_wraps_base",
  "tests/unit/test_still_recipe_bgfirst.py::test_full_contract_version_present",
  "tests/unit/test_still_recipe_bgfirst.py::test_judge_header_is_neutral",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_chain_authority_is_entry_assert_not_branch_condition",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_conti_only_final_lineage_has_no_conti_edge",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_conti_only_input_ids_exempts_plate_only_in_that_mode",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_conti_only_rejects_supplied_plate_input",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_contract_version_present",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_facts_are_not_wired_into_non_lane_paths",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_pack_registered",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_shot_with_assigned_plate_resolves_lane_conti_only",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_step1_fails_closed_on_failed_place_spec_group",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_step1_fails_closed_on_skipped_place_spec_group",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_step1_fails_closed_without_place_spec",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_step1_fails_closed_without_world_rules",
  "tests/unit/test_still_recipe_bgfirst.py::test_lane_step1_prompt_carries_place_and_world_facts",
  "tests/unit/test_still_recipe_bgfirst.py::test_mannequin_stage_head_points_only_at_attached_refs",
  "tests/unit/test_still_recipe_bgfirst.py::test_mannequin_stage_head_replaces_figures",
  "tests/unit/test_still_recipe_bgfirst.py::test_non_lane_bg_prompt_is_byte_identical",
  "tests/unit/test_still_recipe_bgfirst.py::test_pack_nine_registered",
  "tests/unit/test_still_recipe_bgfirst.py::test_pack_seven_registered",
  "tests/unit/test_still_recipe_bgfirst.py::test_person_visible_lane_shot_keeps_sketch_location_lock",
  "tests/unit/test_still_recipe_bgfirst.py::test_place_facts_block_dedupes_and_skips_nameless",
  "tests/unit/test_still_recipe_bgfirst.py::test_place_facts_block_degrades_on_non_dict",
  "tests/unit/test_still_recipe_bgfirst.py::test_place_facts_block_is_restrained",
  "tests/unit/test_still_recipe_bgfirst.py::test_refs_order_and_labels",
  "tests/unit/test_still_recipe_bgfirst.py::test_register_bg_asset_fresh_creates_with_inputs",
  "tests/unit/test_still_recipe_bgfirst.py::test_register_bg_asset_groupbg_type_and_role",
  "tests/unit/test_still_recipe_bgfirst.py::test_register_bg_asset_upserts_existing_lineage",
  "tests/unit/test_still_recipe_bgfirst.py::test_require_input_ids_fail_closed",
  "tests/unit/test_still_recipe_bgfirst.py::test_run_still_recipe_raises_on_mannequin_cp_with_chain_off",
  "tests/unit/test_still_recipe_bgfirst.py::test_run_still_recipe_raises_on_mannequin_cp_with_lane_prev_off",
  "tests/unit/test_still_recipe_bgfirst.py::test_run_still_recipe_raises_on_stale_sketch_pack_with_chain_on",
  "tests/unit/test_still_recipe_bgfirst.py::test_service_mannequin_check_runs_before_lane_chain_branch",
  "tests/unit/test_still_recipe_bgfirst.py::test_service_rejects_mannequin_cp_when_chain_flag_off",
  "tests/unit/test_still_recipe_bgfirst.py::test_service_requires_exact_sketch_pack_when_chain_ready",
  "tests/unit/test_still_recipe_bgfirst.py::test_service_threads_chain_bg_mode",
  "tests/unit/test_still_recipe_bgfirst.py::test_service_threads_lane_lineage_and_ref_drop",
  "tests/unit/test_still_recipe_bgfirst.py::test_service_threads_mannequin_stem_for_lane",
  "tests/unit/test_still_recipe_bgfirst.py::test_structural_skip_error_wins_over_skip_reason",
  "tests/unit/test_still_recipe_bgfirst.py::test_structural_skip_excludes_conti_step_declared_nontargets",
  "tests/unit/test_still_recipe_bgfirst.py::test_structural_skip_keeps_genuine_defects_fail_closed",
  "tests/unit/test_still_recipe_bgfirst.py::test_unknown_pack_selector_raises",
  "tests/unit/test_still_recipe_shot_scope.py::test_off_leaves_ambient_call_meta_empty",
  "tests/unit/test_still_recipe_shot_scope.py::test_off_opens_no_scope",
  "tests/unit/test_still_recipe_shot_scope.py::test_on_opens_scope_with_identity",
  "tests/unit/test_still_recipe_shot_scope.py::test_scope_carries_shot_identity",
  "tests/unit/test_still_recipe_shot_scope.py::test_scope_disables_capture",
  "tests/unit/test_still_recipe_shot_scope.py::test_scope_does_not_rename_the_step",
  "tests/unit/test_still_recipe_shot_scope.py::test_shot_loop_opens_capture_scope",
  "tests/unit/test_still_recipe_shot_scope.py::test_shot_loop_uses_the_flagged_helper",
  "tests/unit/test_still_variants.py::test_ab_label_map_contract_fixed",
  "tests/unit/test_still_variants.py::test_assemble_base_once_approach_and_tail_last",
  "tests/unit/test_still_variants.py::test_assemble_four_labels_cycles_variants",
  "tests/unit/test_still_variants.py::test_assemble_invalid_label_count_raises",
  "tests/unit/test_still_variants.py::test_author_cache_invalid_entry_reauthors",
  "tests/unit/test_still_variants.py::test_author_cache_reuse_no_llm_call",
  "tests/unit/test_still_variants.py::test_author_fp_sensitive_to_inputs",
  "tests/unit/test_still_variants.py::test_author_retry_carries_violations_then_fail_closed",
  "tests/unit/test_still_variants.py::test_author_returns_data_and_fp",
  "tests/unit/test_still_variants.py::test_author_schema_two_variants",
  "tests/unit/test_still_variants.py::test_build_ab_roll_refs_maps_conti_by_label",
  "tests/unit/test_still_variants.py::test_outlook_phase1_latest_pack_has_baseline_contract",
  "tests/unit/test_still_variants.py::test_pack_resolve_and_texts_load",
  "tests/unit/test_still_variants.py::test_validate_ok_returns_no_violations",
  "tests/unit/test_still_variants.py::test_validate_rejects_malformed[data0]",
  "tests/unit/test_still_variants.py::test_validate_rejects_malformed[data1]",
  "tests/unit/test_still_variants.py::test_validate_rejects_malformed[data2]",
  "tests/unit/test_still_variants.py::test_validate_rejects_malformed[data3]",
  "tests/unit/test_still_variants.py::test_validate_rejects_malformed[data4]",
  "tests/unit/test_still_variants.py::test_validate_rejects_malformed[data5]",
  "tests/unit/test_still_variants.py::test_validate_rejects_malformed[data6]",
  "tests/unit/test_still_variants.py::test_winner_uses_conti_label_contract",
  "tests/unit/test_subject_reference_policy_helper.py::test_derive_visible_subject_ids_basic",
  "tests/unit/test_subject_reference_policy_helper.py::test_derive_visible_subject_ids_empty",
  "tests/unit/test_subject_reference_policy_helper.py::test_derive_visible_subject_ids_filters_noise",
  "tests/unit/test_subject_reference_policy_helper.py::test_get_or_default_invalid_subject_id_shape",
  "tests/unit/test_subject_reference_policy_helper.py::test_get_or_default_omitted_returns_default",
  "tests/unit/test_subject_reference_policy_helper.py::test_get_or_default_outlook_id_normalized_to_base",
  "tests/unit/test_subject_reference_policy_helper.py::test_get_or_default_present",
  "tests/unit/test_subject_reference_policy_helper.py::test_id_usage_rule_base_id_required_base_forbidden_false",
  "tests/unit/test_subject_reference_policy_helper.py::test_id_usage_rule_generic_descriptor_allowed_flags",
  "tests/unit/test_subject_reference_policy_helper.py::test_id_usage_rule_id_and_outlook_required_base_forbidden_false",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_duplicate_after_normalization",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_duplicate_subject",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_empty_array_graceful",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_invalid_policy_enum",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_invalid_policy_type_enum",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_missing_required_key",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_none_graceful",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_outlook_id_normalized",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_unknown_subject",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_valid_single",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_items_visible_set_none_skips_unknown_check",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_subject_id_base",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_subject_id_invalid_shape",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_subject_id_no_warn_default",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_subject_id_outlook_to_base",
  "tests/unit/test_subject_reference_policy_helper.py::test_normalize_subject_id_warn_opt_in",
  "tests/unit/test_subject_reference_policy_helper.py::test_policy_to_id_usage_rule_invalid",
  "tests/unit/test_subject_reference_policy_helper.py::test_policy_to_id_usage_rule_matrix",
  "tests/unit/test_subject_reference_policy_helper.py::test_serialize_deterministic_ordering",
  "tests/unit/test_subject_reference_policy_helper.py::test_serialize_empty",
  "tests/unit/test_subject_reference_policy_helper.py::test_serialize_exceptions_first",
  "tests/unit/test_subject_state_helper.py::TestGetVisualDescriptor::test_alive_raises",
  "tests/unit/test_subject_state_helper.py::TestGetVisualDescriptor::test_immobilized_states_return_descriptor[dead]",
  "tests/unit/test_subject_state_helper.py::TestGetVisualDescriptor::test_immobilized_states_return_descriptor[severely_injured]",
  "tests/unit/test_subject_state_helper.py::TestGetVisualDescriptor::test_immobilized_states_return_descriptor[unconscious]",
  "tests/unit/test_subject_state_helper.py::TestGetVisualDescriptor::test_invalid_raises",
  "tests/unit/test_subject_state_helper.py::TestIsImmobilizedState::test_is_immobilized_state[-False]",
  "tests/unit/test_subject_state_helper.py::TestIsImmobilizedState::test_is_immobilized_state[None-False]",
  "tests/unit/test_subject_state_helper.py::TestIsImmobilizedState::test_is_immobilized_state[alive-False]",
  "tests/unit/test_subject_state_helper.py::TestIsImmobilizedState::test_is_immobilized_state[dead-True]",
  "tests/unit/test_subject_state_helper.py::TestIsImmobilizedState::test_is_immobilized_state[invalid_state-False]",
  "tests/unit/test_subject_state_helper.py::TestIsImmobilizedState::test_is_immobilized_state[severely_injured-True]",
  "tests/unit/test_subject_state_helper.py::TestIsImmobilizedState::test_is_immobilized_state[unconscious-True]",
  "tests/unit/test_subject_state_helper.py::TestSubjectStateConstants::test_immobilized_states_frozenset",
  "tests/unit/test_subject_state_helper.py::TestSubjectStateConstants::test_subject_states_tuple",
  "tests/unit/test_subject_state_helper.py::TestSubjectStateConstants::test_visual_descriptor_keys",
  "tests/unit/test_subject_state_helper.py::TestSubjectStateConstants::test_visual_descriptor_non_empty",
  "tests/unit/test_subject_state_helper.py::TestValidateSubjectState::test_invalid_states_fail[ALIVE]",
  "tests/unit/test_subject_state_helper.py::TestValidateSubjectState::test_invalid_states_fail[Dead]",
  "tests/unit/test_subject_state_helper.py::TestValidateSubjectState::test_invalid_states_fail[]",
  "tests/unit/test_subject_state_helper.py::TestValidateSubjectState::test_invalid_states_fail[invalid]",
  "tests/unit/test_subject_state_helper.py::TestValidateSubjectState::test_valid_states_pass[alive]",
  "tests/unit/test_subject_state_helper.py::TestValidateSubjectState::test_valid_states_pass[dead]",
  "tests/unit/test_subject_state_helper.py::TestValidateSubjectState::test_valid_states_pass[severely_injured]",
  "tests/unit/test_subject_state_helper.py::TestValidateSubjectState::test_valid_states_pass[unconscious]",
  "tests/unit/test_t2i_review_apply_scene_fixes.py::test_apply_raises_on_unknown_item_id",
  "tests/unit/test_t2i_review_apply_scene_fixes.py::test_apply_returns_applied_indices_count",
  "tests/unit/test_t2i_review_apply_scene_fixes.py::test_apply_skips_no_op_target_not_found",
  "tests/unit/test_t2i_review_apply_scene_fixes.py::test_build_item_id_map_preserved_after_v1",
  "tests/unit/test_t2i_review_apply_scene_fixes.py::test_review_scene_detail_alias_equality_enforced",
  "tests/unit/test_t2i_review_apply_scene_fixes.py::test_run_t2i_review_empty_diagnostics_when_no_issues",
  "tests/unit/test_t2i_review_apply_scene_fixes.py::test_run_t2i_review_no_mutation_invariant",
  "tests/unit/test_t2i_review_apply_scene_fixes.py::test_run_t2i_review_returns_empty_indices_when_no_fixes",
  "tests/unit/test_t2i_review_apply_scene_fixes.py::test_run_t2i_review_returns_scene_applied_indices",
  "tests/unit/test_t2i_review_apply_scene_fixes.py::test_run_t2i_review_returns_v1_keys",
  "tests/unit/test_t2i_review_item_id_map.py::test_build_item_id_map_basic",
  "tests/unit/test_t2i_review_item_id_map.py::test_build_item_id_map_handles_fanout_same_scene_index",
  "tests/unit/test_t2i_review_item_id_map.py::test_build_item_id_map_skips_scenes_without_variations",
  "tests/unit/test_t2i_review_schema_v3.py::test_entity_schema_latest_has_5_core_fields",
  "tests/unit/test_t2i_review_schema_v3.py::test_scene_schema_latest_action_const_regen_required",
  "tests/unit/test_t2i_review_schema_v3.py::test_scene_schema_latest_has_5_core_fields",
  "tests/unit/test_t2i_review_schema_v3.py::test_scene_schema_latest_has_item_id_required",
  "tests/unit/test_t2i_review_schema_v3.py::test_scene_schema_latest_has_scene_var_index_nullable_required",
  "tests/unit/test_t2i_review_schema_v3.py::test_scene_schema_latest_has_scene_var_index_optional",
  "tests/unit/test_t2i_review_schema_v3.py::test_scene_schema_latest_scope_const_scene",
  "tests/unit/test_t2i_review_schema_v3.py::test_scene_system_prompt_has_item_id_protocol",
  "tests/unit/test_t2i_review_sentinel_refresh.py::test_full_cycle_refresh_then_verify_passes",
  "tests/unit/test_t2i_review_sentinel_refresh.py::test_full_cycle_verify_completion_drift_detected_then_cleared",
  "tests/unit/test_t2i_review_sentinel_refresh.py::test_pre_card_state_captured_before_mutation",
  "tests/unit/test_t2i_review_sentinel_refresh.py::test_refresh_raises_when_owned_validation_missing",
  "tests/unit/test_t2i_review_sentinel_refresh.py::test_refresh_returns_zero_when_no_changes",
  "tests/unit/test_t2i_review_sentinel_refresh.py::test_refresh_updates_only_modified_indices",
  "tests/unit/test_t2i_review_step_save.py::test_save_checkpoint_data_raises_when_archive_copy_fails",
  "tests/unit/test_t2i_review_step_save.py::test_save_checkpoint_data_raises_when_manifest_missing",
  "tests/unit/test_t2i_review_step_save.py::test_save_checkpoint_data_raises_when_manifest_unreadable",
  "tests/unit/test_text_policy_only_source.py::test_assembly_switches_on_whether_the_list_is_present",
  "tests/unit/test_text_policy_only_source.py::test_empty_author_output_falls_through_to_the_total_ban",
  "tests/unit/test_text_policy_only_source.py::test_empty_author_output_still_allows_what_the_references_fix",
  "tests/unit/test_text_policy_only_source.py::test_fixed_figures_are_not_hidden",
  "tests/unit/test_text_policy_only_source.py::test_grok_branch_uses_the_compact_contract",
  "tests/unit/test_text_policy_only_source.py::test_no_leaky_phrase_survives_in_the_active_text_policy_pack",
  "tests/unit/test_text_policy_only_source.py::test_objects_may_stay_but_out_of_legibility",
  "tests/unit/test_text_policy_only_source.py::test_shared_background_stems_follow_the_same_policy",
  "tests/unit/test_text_policy_only_source.py::test_shared_background_stems_forbid_readable_writing",
  "tests/unit/test_text_policy_only_source.py::test_the_chain_candidate_carries_the_same_words",
  "tests/unit/test_text_policy_only_source.py::test_v1_shaped_output_still_reaches_the_prompt",
  "tests/unit/test_text_policy_only_source.py::test_v3_author_output_reaches_the_outgoing_prompt",
  "tests/unit/test_text_policy_only_source.py::test_with_an_approved_list_only_those_words_are_readable",
  "tests/unit/test_text_policy_only_source.py::test_with_no_approved_list_nothing_is_readable",
  "tests/unit/test_text_policy_only_source.py::test_with_no_approved_list_only_what_the_references_fix_is_readable",
  "tests/unit/test_text_policy_pack.py::test_bg_fill_keeps_its_other_contract",
  "tests/unit/test_text_policy_pack.py::test_general_stem_exists_and_drops_the_blanket_ban[bg_fill_tail]",
  "tests/unit/test_text_policy_pack.py::test_general_stem_exists_and_drops_the_blanket_ban[bg_reproject_tail]",
  "tests/unit/test_text_policy_pack.py::test_general_stem_exists_and_drops_the_blanket_ban[groupbg_tail]",
  "tests/unit/test_text_policy_pack.py::test_general_stem_exists_and_drops_the_blanket_ban[no_text]",
  "tests/unit/test_text_policy_pack.py::test_general_stem_exists_and_drops_the_blanket_ban[no_text_none]",
  "tests/unit/test_text_policy_pack.py::test_grok_stem_exists_and_drops_the_blanket_ban[no_text]",
  "tests/unit/test_text_policy_pack.py::test_grok_stem_exists_and_drops_the_blanket_ban[no_text_none]",
  "tests/unit/test_text_policy_pack.py::test_groupbg_does_not_freeze_one_shots_wording",
  "tests/unit/test_text_policy_pack.py::test_two_branches_say_the_same_policy[42]",
  "tests/unit/test_text_policy_pack.py::test_two_branches_say_the_same_policy[43]",
  "tests/unit/test_tool_envelope_unwrap.py::test_does_not_unwrap_non_dict_inner",
  "tests/unit/test_tool_envelope_unwrap.py::test_does_not_unwrap_unknown_single_key",
  "tests/unit/test_tool_envelope_unwrap.py::test_does_not_unwrap_when_more_than_one_key",
  "tests/unit/test_tool_envelope_unwrap.py::test_does_not_unwrap_when_schema_wants_that_key",
  "tests/unit/test_tool_envelope_unwrap.py::test_leaves_normal_payload_untouched",
  "tests/unit/test_tool_envelope_unwrap.py::test_passes_through_non_dict_payload",
  "tests/unit/test_tool_envelope_unwrap.py::test_unwraps_arguments_and_input_envelopes",
  "tests/unit/test_tool_envelope_unwrap.py::test_unwraps_parameters_envelope",
  "tests/unit/test_try_claim_running.py::test_existing_running_returns_false_when_no_steal",
  "tests/unit/test_try_claim_running.py::test_first_run_inserts_new_row",
  "tests/unit/test_try_claim_running.py::test_insert_columns_includes_all_not_null",
  "tests/unit/test_try_claim_running.py::test_no_sql_cast_in_query",
  "tests/unit/test_try_claim_running.py::test_stale_steal_with_expected_match",
  "tests/unit/test_try_claim_running.py::test_uses_fetchone_not_rowcount",
  "tests/unit/test_unverified_state_variant_is_not_adopted.py::test_a_sanitized_variant_gets_a_different_marker",
  "tests/unit/test_unverified_state_variant_is_not_adopted.py::test_it_is_counted_as_a_failure_not_a_success",
  "tests/unit/test_unverified_state_variant_is_not_adopted.py::test_the_reason_says_unverified_not_erased",
  "tests/unit/test_unverified_state_variant_is_not_adopted.py::test_the_unadopted_list_reaches_the_step_result",
  "tests/unit/test_unverified_state_variant_is_not_adopted.py::test_the_unadopted_marker_cannot_match_the_reuse_query",
  "tests/unit/test_v1_lean_authoring.py::test_a_fresh_save_does_not_block_the_next_resume[off]",
  "tests/unit/test_v1_lean_authoring.py::test_a_fresh_save_does_not_block_the_next_resume[v1]",
  "tests/unit/test_v1_lean_authoring.py::test_both_fingerprints_split_v1_from_legacy",
  "tests/unit/test_v1_lean_authoring.py::test_dependency_declares_the_staging_dependency",
  "tests/unit/test_v1_lean_authoring.py::test_dependency_no_longer_reads_scene_detail_t2i_prompt",
  "tests/unit/test_v1_lean_authoring.py::test_dependency_prompt_carries_framing_not_t2i_prose",
  "tests/unit/test_v1_lean_authoring.py::test_legacy_is_untouched",
  "tests/unit/test_v1_lean_authoring.py::test_legacy_mode_still_runs_the_scene_branch",
  "tests/unit/test_v1_lean_authoring.py::test_legacy_review_still_runs_the_scene_branch",
  "tests/unit/test_v1_lean_authoring.py::test_missing_framing_stops_before_paying",
  "tests/unit/test_v1_lean_authoring.py::test_only_two_staging_fields_go_out",
  "tests/unit/test_v1_lean_authoring.py::test_skipping_is_recorded_not_silently_zero",
  "tests/unit/test_v1_lean_authoring.py::test_the_skip_can_be_turned_off",
  "tests/unit/test_v1_lean_authoring.py::test_the_step_return_actually_carries_the_hash",
  "tests/unit/test_v1_lean_authoring.py::test_v1_sends_typed_framing_and_no_t2i_prose",
  "tests/unit/test_v1_lean_authoring.py::test_v1_skips_scene_and_the_checkpoint_says_so",
  "tests/unit/test_v1_lean_authoring.py::test_v1_skips_the_scene_branch",
  "tests/unit/test_version_registry_camera_wave.py::test_scene_camera_flow_registry_matches_latest_pack",
  "tests/unit/test_version_registry_camera_wave.py::test_scene_detail_registry_matches_latest_pack",
  "tests/unit/test_version_registry_camera_wave.py::test_shot_staging_registry_matches_latest_pack",
  "tests/unit/test_visual_wave_severity_ab.py::test_ab_roll_prompt_map_single_label_is_base",
  "tests/unit/test_visual_wave_severity_ab.py::test_ab_roll_prompt_map_varies_second_roll",
  "tests/unit/test_visual_wave_severity_ab.py::test_critique_schema_default_has_no_severity",
  "tests/unit/test_visual_wave_severity_ab.py::test_critique_schema_with_severity_requires_it",
  "tests/unit/test_visual_wave_severity_ab.py::test_judge_v10_resolves_and_loads",
  "tests/unit/test_visual_wave_severity_ab.py::test_recipe_stem_content_hash_exact_stem",
  "tests/unit/test_visual_wave_severity_ab.py::test_roll_count_validator_locks_two",
  "tests/unit/test_visual_wave_severity_ab.py::test_roll_prompts_fold_into_fingerprint",
  "tests/unit/test_visual_wave_severity_ab.py::test_severity_gate_absent_keeps_legacy_behavior",
  "tests/unit/test_visual_wave_severity_ab.py::test_severity_gate_fixes_only_critical",
  "tests/unit/test_visual_wave_severity_ab.py::test_severity_gate_skips_fix_when_nothing_critical",
  "tests/unit/test_visual_wave_severity_ab.py::test_still_recipe_v18_resolves_and_loads",
  "tests/unit/test_visual_wave_severity_ab.py::test_support_stillness_clause_injected_for_people_only",
  "tests/unit/test_vlm_auth_carries_key.py::test_an_empty_gemini_pool_stops_the_call_instead_of_going_out",
  "tests/unit/test_vlm_auth_carries_key.py::test_an_openai_model_does_not_get_a_gemini_key",
  "tests/unit/test_vlm_auth_carries_key.py::test_dwelling_takes_one_key_per_paid_call",
  "tests/unit/test_vlm_auth_carries_key.py::test_dwelling_zone_map_carries_the_gemini_key",
  "tests/unit/test_vlm_auth_carries_key.py::test_every_wired_vlm_site_actually_calls_auth_kwargs",
  "tests/unit/test_vlm_auth_carries_key.py::test_floor_plan_semantic_carries_the_gemini_key",
  "tests/unit/test_vlm_auth_carries_key.py::test_floor_plan_semantic_takes_one_key_per_paid_call",
  "tests/unit/test_vlm_auth_carries_key.py::test_indoor_pose_qc_carries_the_gemini_key",
  "tests/unit/test_vlm_auth_carries_key.py::test_indoor_pose_takes_one_key_per_paid_call",
  "tests/unit/test_vlm_auth_carries_key.py::test_no_vlm_site_still_gates_on_has_openai_key",
  "tests/unit/test_vlm_auth_carries_key.py::test_provider_is_read_from_the_prefix",
  "tests/unit/test_vlm_auth_carries_key.py::test_shot_projection_card_carries_the_gemini_key",
  "tests/unit/test_vlm_auth_carries_key.py::test_shot_projection_card_takes_one_key_per_paid_call",
  "tests/unit/test_vlm_auth_carries_key.py::test_space_set_bg_takes_one_key_per_paid_call",
  "tests/unit/test_vlm_auth_carries_key.py::test_space_set_bg_vision_carries_the_gemini_key",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_a_text_only_constant_is_allowed_to_stay",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_a_text_only_constant_may_stay",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_no_forbidden_model_is_a_vlm_default",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_no_sol_in_a_vlm_model_constant",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_dashscope_client_is_gone",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_deprecated_client_says_so",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_floor_readback_single_path_is_gemini",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_floor_readback_single_path_is_gemini_too",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_only_judge_pair_is_gemini_and_grok",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_qwen_judge_paths_are_gone",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_select_judge_sentinels_are_gemini_or_grok",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_sentinel_dispatch_no_longer_goes_to_dashscope",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_sentinel_name_is_known_to_be_stale",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_sentinel_refuses_to_invent_a_model",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_settings_vlm_slots_are_gemini_or_grok",
  "tests/unit/test_vlm_models_gemini_grok_only.py::test_the_settings_vlm_slots_are_not_sol",
  "tests/unit/test_winner_violation_gate.py::test_a_blocked_prev_is_not_bypassed_through_the_db_primary",
  "tests/unit/test_winner_violation_gate.py::test_a_clean_duplicate_row_does_not_erase_an_unchecked_one",
  "tests/unit/test_winner_violation_gate.py::test_a_clean_winner_passes_untouched",
  "tests/unit/test_winner_violation_gate.py::test_a_different_judgement_gets_a_different_evidence_id",
  "tests/unit/test_winner_violation_gate.py::test_a_disqualified_winner_is_swapped_for_an_admissible_candidate",
  "tests/unit/test_winner_violation_gate.py::test_a_missing_row_is_unchecked_not_admissible",
  "tests/unit/test_winner_violation_gate.py::test_a_mixed_case_is_incomplete_not_all_disqualified",
  "tests/unit/test_winner_violation_gate.py::test_a_non_applicable_branch_is_recorded_not_passed",
  "tests/unit/test_winner_violation_gate.py::test_a_real_disqualification_is_still_unresolved",
  "tests/unit/test_winner_violation_gate.py::test_a_row_without_a_proper_array_is_unchecked[\\ubb38\\uc790\\uc5f4]",
  "tests/unit/test_winner_violation_gate.py::test_a_row_without_a_proper_array_is_unchecked[\\uc22b\\uc790]",
  "tests/unit/test_winner_violation_gate.py::test_a_row_without_a_proper_array_is_unchecked[\\uce78_\\uc5c6\\uc74c]",
  "tests/unit/test_winner_violation_gate.py::test_a_row_without_a_proper_array_is_unchecked[null]",
  "tests/unit/test_winner_violation_gate.py::test_an_admissible_candidate_wins_even_if_another_is_unchecked",
  "tests/unit/test_winner_violation_gate.py::test_an_unchecked_candidate_cannot_rescue_a_bad_winner",
  "tests/unit/test_winner_violation_gate.py::test_an_unreadable_record_blocks_when_the_gate_is_on",
  "tests/unit/test_winner_violation_gate.py::test_an_unreadable_record_does_not_block",
  "tests/unit/test_winner_violation_gate.py::test_an_unresolved_shot_is_not_used_as_the_next_shots_anchor",
  "tests/unit/test_winner_violation_gate.py::test_blank_strings_do_not_count_as_violations",
  "tests/unit/test_winner_violation_gate.py::test_no_readings_at_all_means_everything_unchecked",
  "tests/unit/test_winner_violation_gate.py::test_only_an_empty_violation_array_is_admissible",
  "tests/unit/test_winner_violation_gate.py::test_only_the_standard_branch_turns_it_on",
  "tests/unit/test_winner_violation_gate.py::test_only_unchecked_is_incomplete_not_a_quality_failure",
  "tests/unit/test_winner_violation_gate.py::test_reselection_follows_the_existing_ranking",
  "tests/unit/test_winner_violation_gate.py::test_the_ab_branches_never_turn_it_on",
  "tests/unit/test_winner_violation_gate.py::test_the_gate_off_run_never_blocks",
  "tests/unit/test_winner_violation_gate.py::test_the_gate_runs_before_the_selection_is_materialised",
  "tests/unit/test_winner_violation_gate.py::test_the_named_branches_are_on",
  "tests/unit/test_winner_violation_gate.py::test_the_non_target_branch_says_so_explicitly",
  "tests/unit/test_winner_violation_gate.py::test_the_outcome_is_always_recorded",
  "tests/unit/test_winner_violation_gate.py::test_the_outer_step_hash_carries_the_policy_when_on",
  "tests/unit/test_winner_violation_gate.py::test_the_plain_flip_branch_refuses_the_gate",
  "tests/unit/test_winner_violation_gate.py::test_the_policy_identity_is_always_recorded",
  "tests/unit/test_winner_violation_gate.py::test_the_policy_is_folded_into_the_fingerprint",
  "tests/unit/test_winner_violation_gate.py::test_the_policy_is_not_folded_into_the_generation_fingerprint",
  "tests/unit/test_winner_violation_gate.py::test_the_prev_anchor_actually_consults_the_gate",
  "tests/unit/test_winner_violation_gate.py::test_the_shared_function_does_not_default_to_on",
  "tests/unit/test_winner_violation_gate.py::test_the_wiring_lives_in_one_place",
  "tests/unit/test_winner_violation_gate.py::test_when_both_are_disqualified_it_is_unresolved",
  "tests/unit/test_world_context.py::test_world_facts_block_empty_when_no_usable_facts",
  "tests/unit/test_world_context.py::test_world_facts_block_filter_is_the_declared_rule_types",
  "tests/unit/test_world_context.py::test_world_facts_block_includes_region_era_and_place_rules_only",
  "tests/unit/test_world_context.py::test_world_rules_text_degrades_and_tolerates_partial_rules",
  "tests/unit/test_world_context.py::test_world_rules_text_includes_every_rule_type",
  "tests/unit/test_xai_cine_client.py::test_404_is_terminal_no_retry",
  "tests/unit/test_xai_cine_client.py::test_503_is_retried_then_succeeds",
  "tests/unit/test_xai_cine_client.py::test_body_is_the_edit_shape_with_quality",
  "tests/unit/test_xai_cine_client.py::test_moderation_is_not_retried",
  "tests/unit/test_xai_cine_client.py::test_provider_wiring",
  "tests/unit/test_xai_cine_client.py::test_settings_accept_xai_provider",
  "tests/unit/test_xai_cine_client.py::test_source_image_is_required",
  "tests/unit/test_xai_cine_client.py::test_xai_route_has_a_resend_policy"
]