← Về thư mục
scripts/test_check_v3_6_8_pattern_protection.py
- _run_lint · function · L43-L51 — def _run_lint() -> subprocess.CompletedProcess[str]
- _Snapshot · class · L57-L74 — class _Snapshot
- init · method · L59-L62 — def init(self, path: Path)
- enter · method · L64-L68 — def enter(self) -> "_Snapshot"
- exit · method · L70-L74 — def exit(self, exc_type, exc, tb) -> None
- test_happy_path_passes_on_clean_tree · function · L80-L91 — def test_happy_path_passes_on_clean_tree() -> None
- test_mutation_inside_v3_6_7_block_fails · function · L94-L109 — def test_mutation_inside_v3_6_7_block_fails() -> None
- test_appending_new_h2_directly_after_eof_newline_passes · function · L112-L140 — def test_appending_new_h2_directly_after_eof_newline_passes() -> None
- test_inserting_blank_line_between_v367_and_step3a_blocks_fails · function · L143-L187 — def test_inserting_blank_line_between_v367_and_step3a_blocks_fails() -> None
- test_v3_6_8_manifest_scope_must_be_correct · function · L190-L199 — def test_v3_6_8_manifest_scope_must_be_correct() -> None
- test_v3_6_8_manifest_files_must_be_list · function · L202-L211 — def test_v3_6_8_manifest_files_must_be_list() -> None
- test_pr1_initial_state_empty_files_list_is_ok · function · L214-L225 — def test_pr1_initial_state_empty_files_list_is_ok() -> None
- test_v3_6_7_manifest_deletion_hard_fails · function · L228-L247 — def test_v3_6_7_manifest_deletion_hard_fails() -> None
- test_v3_6_8_manifest_deletion_hard_fails · function · L250-L256 — def test_v3_6_8_manifest_deletion_hard_fails() -> None
- test_heading_prefix_mutation_is_caught · function · L259-L289 — def test_heading_prefix_mutation_is_caught() -> None
- test_extractor_includes_heading_prefix_bytes · function · L292-L309 — def test_extractor_includes_heading_prefix_bytes() -> None
- test_prose_mention_does_not_truncate_block_range · function · L312-L353 — def test_prose_mention_does_not_truncate_block_range() -> None
- test_prose_mention_of_marker_does_not_misanchor_extractor · function · L356-L394 — def test_prose_mention_of_marker_does_not_misanchor_extractor() -> None
- test_extractor_strips_only_file_level_bom_not_block_level · function · L397-L428 — def test_extractor_strips_only_file_level_bom_not_block_level() -> None
- test_bom_before_heading_attack_caught_by_lint · function · L431-L460 — def test_bom_before_heading_attack_caught_by_lint() -> None
- test_anti_self_baseline_guard_rejects_manifest_mutation_in_pr · function · L463-L504 — def test_anti_self_baseline_guard_rejects_manifest_mutation_in_pr(monkeypatch) -> None
- test_anti_self_baseline_guard_history_scan_called · function · L507-L547 — def test_anti_self_baseline_guard_history_scan_called(monkeypatch) -> None
- patched_run_git · function · L531-L540 — def patched_run_git(args, cwd=None): # Intercept the merge-base..HEAD log query with the manifest path.
- test_v3_6_7_marker_removed_at_head_fails · function · L550-L564 — def test_v3_6_7_marker_removed_at_head_fails() -> None
- test_strip_file_bom_only_at_byte_zero · function · L570-L581 — def test_strip_file_bom_only_at_byte_zero() -> None
- test_sha256_helper_matches_hashlib · function · L584-L587 — def test_sha256_helper_matches_hashlib() -> None
- _agent_path · function · L619-L620 — def _agent_path(rel: str) -> Path
- test_step3a_each_manifest_agent_carries_two_layer_block · function · L623-L630 — def test_step3a_each_manifest_agent_carries_two_layer_block() -> None
- test_step3a_lint_passes_on_clean_tree · function · L633-L647 — def test_step3a_lint_passes_on_clean_tree() -> None
- test_step3a_v3_6_8_manifest_lists_three_agents · function · L650-L658 — def test_step3a_v3_6_8_manifest_lists_three_agents() -> None
- test_step3a_invariant_i_two_layer_form_required · function · L661-L693 — def test_step3a_invariant_i_two_layer_form_required() -> None
- _inject_into_block_body · function · L696-L713 — def _inject_into_block_body(target: Path, injection: str) -> None
- test_step3a_invariant_ii_finalizer_mention_forbidden · function · L716-L734 — def test_step3a_invariant_ii_finalizer_mention_forbidden() -> None
- test_step3a_invariant_ii_orchestrator_mention_forbidden · function · L737-L747 — def test_step3a_invariant_ii_orchestrator_mention_forbidden() -> None
- test_step3a_invariant_ii_stage_gate_mention_forbidden · function · L750-L760 — def test_step3a_invariant_ii_stage_gate_mention_forbidden() -> None
- test_step3a_invariant_iii_frontmatter_read_instruction_forbidden · function · L763-L783 — def test_step3a_invariant_iii_frontmatter_read_instruction_forbidden() -> None
- test_step3a_block_missing_from_manifest_agent_fails · function · L786-L808 — def test_step3a_block_missing_from_manifest_agent_fails() -> None
- test_step3a_invariant_iii_unrelated_negation_does_not_bless_read_instruction · function · L811-L841 — def test_step3a_invariant_iii_unrelated_negation_does_not_bless_read_instruction() -> None
- test_step3a_invariant_iii_front_matter_two_word_variant_caught · function · L844-L859 — def test_step3a_invariant_iii_front_matter_two_word_variant_caught() -> None
- test_step3a_invariant_iii_front_dash_matter_variant_caught · function · L862-L876 — def test_step3a_invariant_iii_front_dash_matter_variant_caught() -> None
- test_step3a_invariant_iii_wrapped_read_instruction_caught · function · L879-L894 — def test_step3a_invariant_iii_wrapped_read_instruction_caught() -> None
- test_step3a_invariant_iii_canonical_negation_still_passes · function · L897-L909 — def test_step3a_invariant_iii_canonical_negation_still_passes() -> None
- test_step3a_duplicate_block_rejected · function · L912-L929 — def test_step3a_duplicate_block_rejected() -> None
- test_step3a_invariant_iii_bullet_boundary_is_clause_terminator · function · L932-L959 — def test_step3a_invariant_iii_bullet_boundary_is_clause_terminator() -> None
- test_step3a_invariant_ii_finalizer_agent_substring_caught · function · L962-L987 — def test_step3a_invariant_ii_finalizer_agent_substring_caught() -> None
- test_step3a_invariant_ii_terminal_gate_agent_substring_caught · function · L990-L1007 — def test_step3a_invariant_ii_terminal_gate_agent_substring_caught() -> None
- test_step3a_h3_same_title_duplicate_rejected · function · L1010-L1032 — def test_step3a_h3_same_title_duplicate_rejected() -> None
- test_step3a_invariant_ii_plural_finalizers_caught · function · L1035-L1045 — def test_step3a_invariant_ii_plural_finalizers_caught() -> None
- test_step3a_invariant_ii_plural_orchestrators_caught · function · L1048-L1057 — def test_step3a_invariant_ii_plural_orchestrators_caught() -> None
- test_step3a_invariant_ii_plural_resolvers_caught · function · L1060-L1069 — def test_step3a_invariant_ii_plural_resolvers_caught() -> None
- test_step3a_invariant_iii_function_call_read_frontmatter_caught · function · L1072-L1092 — def test_step3a_invariant_iii_function_call_read_frontmatter_caught() -> None
- test_step3a_heading_drift_with_trailing_text_rejected · function · L1095-L1124 — def test_step3a_heading_drift_with_trailing_text_rejected() -> None
- test_step3a_block_addition_does_not_break_v3_6_7_sha_gate · function · L1127-L1138 — def test_step3a_block_addition_does_not_break_v3_6_7_sha_gate() -> None