pytest dedupe audit (tests/)
Регенерация:
PYTHONIOENCODING=utf-8 python scripts/audit_pytest_dedupe.py > docs/ru/research/tausik-1.4-pytest-dedupe-2026-05-02.md. Группы упорядочены по убыванию размера. Это отчёт для ревью, не основание для авто-удаления.
164 group(s) of structurally identical test functions (total 480 tests). Review only — do not auto-delete.
Group 1 (sig d999534d6c2db06b, 15 tests)
tests/test_hooks.py:37—TestBashFirewall.test_normal_command_allowedtests/test_hooks.py:46—TestBashFirewall.test_rm_rf_dot_blockedtests/test_hooks.py:50—TestBashFirewall.test_drop_table_blockedtests/test_hooks.py:57—TestBashFirewall.test_git_reset_hard_blockedtests/test_hooks.py:63—TestBashFirewall.test_git_push_force_blockedtests/test_hooks.py:78—TestBashFirewall.test_empty_command_allowedtests/test_hooks.py:98—TestBashFirewall.test_git_push_short_f_blockedtests/test_hooks.py:137—TestBashFirewall.test_git_clean_fd_blockedtests/test_hooks.py:144—TestBashFirewall.test_git_checkout_dot_blockedtests/test_hooks.py:190—TestGitPushGate.test_git_status_allowedtests/test_hooks.py:194—TestGitPushGate.test_git_commit_allowedtests/test_hooks.py:216—TestGitPushGate.test_chained_command_blockedtests/test_hooks.py:223—TestGitPushGate.test_absolute_path_git_blockedtests/test_hooks.py:285—TestAutoFormat.test_nonexistent_file_allowedtests/test_hooks.py:303—TestAutoFormat.test_empty_file_path_allowed
Group 2 (sig 514c35b28575e229, 12 tests)
tests/test_audit_stale_docs.py:73—TestMirrorPartner.test_en_partnertests/test_audit_stale_docs.py:76—TestMirrorPartner.test_ru_partnertests/test_rag.py:29—TestDetectLanguage.test_pythontests/test_rag.py:32—TestDetectLanguage.test_typescripttests/test_rag.py:35—TestDetectLanguage.test_gotests/test_rag.py:38—TestDetectLanguage.test_dockerfiletests/test_rag.py:41—TestDetectLanguage.test_makefiletests/test_rag.py:47—TestDetectLanguage.test_markdowntests/test_skill_manager.py:71—TestRepoNameFromUrl.test_https_urltests/test_skill_manager.py:74—TestRepoNameFromUrl.test_url_with_git_suffixtests/test_skill_manager.py:77—TestRepoNameFromUrl.test_trailing_slashtests/test_v13_hardening.py:46—TestSafeSingleLine.test_empty_string
Group 3 (sig ce0bd5c98f81d28e, 12 tests)
tests/test_brain_scrubbing.py:242—test_blocklist_all_cyrillic_homoglyphs_blockedtests/test_brain_scrubbing.py:251—test_blocklist_zero_width_bypass_blockedtests/test_brain_scrubbing.py:276—test_blocklist_double_url_encoded_bypass_blockedtests/test_brain_scrubbing.py:285—test_blocklist_html_numeric_entity_bypass_blockedtests/test_brain_scrubbing.py:302—test_blocklist_mixed_homoglyph_and_zero_width_blockedtests/test_brain_scrubbing.py:319—test_blocklist_greek_lowercase_alpha_blockedtests/test_brain_scrubbing.py:325—test_blocklist_cyrillic_lowercase_v_blockedtests/test_brain_scrubbing.py:341—test_blocklist_cyrillic_lowercase_k_blockedtests/test_brain_scrubbing.py:350—test_blocklist_greek_lowercase_nu_blockedtests/test_brain_scrubbing.py:356—test_blocklist_greek_lowercase_rho_blockedtests/test_brain_scrubbing.py:362—test_blocklist_combining_marks_strippedtests/test_brain_scrubbing.py:390—test_blocklist_case_insensitive_regression
Group 4 (sig 56ef61843572624f, 9 tests)
tests/test_brain_scrubbing.py:102—test_public_url_with_private_pattern_passestests/test_brain_scrubbing.py:136—test_project_name_case_insensitivetests/test_brain_scrubbing.py:220—test_unicode_content_with_russian_project_name_blockedtests/test_brain_scrubbing.py:260—test_blocklist_zero_width_joiner_bypass_blockedtests/test_brain_scrubbing.py:268—test_blocklist_url_encoded_bypass_blockedtests/test_brain_scrubbing.py:294—test_blocklist_html_named_entity_bypass_blockedtests/test_brain_scrubbing.py:311—test_blocklist_greek_homoglyph_blockedtests/test_brain_scrubbing.py:331—test_blocklist_cyrillic_lowercase_m_blockedtests/test_brain_scrubbing.py:336—test_blocklist_cyrillic_lowercase_t_blocked
Group 5 (sig d02edd5159a93b69, 9 tests)
tests/test_edge_cases.py:41—TestSlugValidation.test_slug_emptytests/test_edge_cases.py:45—TestSlugValidation.test_slug_starts_with_dashtests/test_edge_cases.py:49—TestSlugValidation.test_slug_uppercasetests/test_edge_cases.py:53—TestSlugValidation.test_slug_spacestests/test_edge_cases.py:57—TestSlugValidation.test_slug_unicodetests/test_ide_utils.py:99—TestGetIdeConfig.test_unknown_ide_raisestests/test_plan_parser.py:72—TestParsePlan.test_no_tasks_raisestests/test_skill_manager.py:333—TestUrlValidation.test_ext_rejectedtests/test_skill_manager.py:337—TestUrlValidation.test_file_rejected
Group 6 (sig ade550098ecb2ada, 9 tests)
tests/test_stack_go_rust.py:76—TestStackFiltering.test_go_test_skipped_for_python_filestests/test_stack_go_rust.py:90—TestStackFiltering.test_cargo_test_skipped_for_python_filestests/test_stack_go_rust.py:97—TestStackFiltering.test_cargo_test_runs_for_rust_filestests/test_stack_iac.py:153—TestCrossStackFiltering.test_pytest_skipped_on_dockerfiletests/test_stack_iac.py:160—TestCrossStackFiltering.test_pytest_skipped_on_terraformtests/test_stack_iac.py:167—TestCrossStackFiltering.test_ansible_lint_skipped_on_pythontests/test_stack_iac.py:174—TestCrossStackFiltering.test_hadolint_runs_for_dockerfiletests/test_stack_iac.py:181—TestCrossStackFiltering.test_terraform_validate_runs_for_tftests/test_stack_iac.py:188—TestCrossStackFiltering.test_kubeval_runs_for_k8s_manifest
Group 7 (sig 8e84f639e892d000, 8 tests)
tests/test_audit_orphan_files.py:57—TestExclusion.test_tests_excludedtests/test_audit_orphan_files.py:60—TestExclusion.test_pycache_excludedtests/test_audit_orphan_files.py:63—TestExclusion.test_hooks_excludedtests/test_audit_stale_docs.py:59—TestExclusion.test_research_excludedtests/test_audit_stale_docs.py:62—TestExclusion.test_generated_excludedtests/test_audit_stale_docs.py:65—TestExclusion.test_release_notes_excludedtests/test_audit_unused_python.py:59—TestExclusionHelpers.test_hooks_glob_excludedtests/test_audit_unused_python.py:62—TestExclusionHelpers.test_pycache_excluded
Group 8 (sig c0b9e98470266a43, 8 tests)
tests/test_hooks.py:90—TestBashFirewall.test_git_push_force_with_lease_blockedtests/test_hooks.py:105—TestBashFirewall.test_git_push_force_after_args_blockedtests/test_hooks.py:113—TestBashFirewall.test_echo_quoted_git_push_force_allowedtests/test_hooks.py:121—TestBashFirewall.test_word_with_git_prefix_allowedtests/test_hooks.py:129—TestBashFirewall.test_full_path_git_push_force_blockedtests/test_hooks.py:151—TestBashFirewall.test_git_checkout_branch_allowedtests/test_hooks.py:159—TestBashFirewall.test_git_with_c_flag_then_push_force_blockedtests/test_hooks.py:171—TestBashFirewall.test_git_push_at_line_start_blocked
Group 9 (sig e855e79d38d2620f, 7 tests)
tests/test_hooks_common.py:51—TestMarkerPresentAnchored.test_marker_inside_fenced_code_block_returns_falsetests/test_hooks_common.py:55—TestMarkerPresentAnchored.test_marker_inside_multiline_fenced_block_returns_falsetests/test_hooks_common.py:76—TestMarkerPresentAnchored.test_marker_as_part_of_sentence_returns_falsetests/test_hooks_common.py:80—TestMarkerPresentAnchored.test_partial_line_match_returns_falsetests/test_hooks_common.py:93—TestMarkerPresentAnchored.test_u2029_paragraph_separator_does_NOT_trigger_bypasstests/test_hooks_common.py:108—TestMarkerPresentAnchored.test_tilde_fence_with_language_tag_does_NOT_trigger_bypasstests/test_hooks_common.py:118—TestMarkerPresentAnchored.test_tab_indented_line_does_NOT_trigger_bypass
Group 10 (sig 606db32500eac993, 6 tests)
tests/test_audit_orphan_files.py:75—TestCollectOrphans.test_imported_module_not_reportedtests/test_audit_orphan_files.py:79—TestCollectOrphans.test_doc_referenced_standalone_not_reportedtests/test_audit_orphan_files.py:84—TestCollectOrphans.test_hook_path_excluded_from_scantests/test_audit_stale_docs.py:88—TestCollectStale.test_referenced_doc_not_reportedtests/test_audit_stale_docs.py:92—TestCollectStale.test_mirror_partner_protectedtests/test_audit_stale_docs.py:97—TestCollectStale.test_research_excluded
Group 11 (sig 47cd478bb552e9f5, 6 tests)
tests/test_brain_fallback.py:28—test_classify_authtests/test_brain_fallback.py:32—test_classify_not_foundtests/test_brain_fallback.py:36—test_classify_rate_limittests/test_brain_fallback.py:42—test_classify_servertests/test_brain_fallback.py:62—test_classify_unknown_notion_errortests/test_brain_fallback.py:66—test_classify_non_notion_error
Group 12 (sig 0d9c44d32a3f46a8, 6 tests)
tests/test_gates.py:206—TestGateRunner.test_count_lines_nonexistenttests/test_session_cleanup_check.py:35—TestPureHelpers.test_review_count_header_onlytests/test_session_cleanup_check.py:42—TestPureHelpers.test_review_count_nonetests/test_session_cleanup_check.py:45—TestPureHelpers.test_session_overrun_below_thresholdtests/test_session_cleanup_check.py:48—TestPureHelpers.test_session_overrun_at_thresholdtests/test_session_cleanup_check.py:51—TestPureHelpers.test_session_overrun_no_match
Group 13 (sig 967fa6007ffd52ed, 5 tests)
tests/test_bootstrap_generate.py:153—TestGenerateAgentsMd.test_header_mentions_agenttests/test_bootstrap_generate.py:183—TestGenerateCursorrules.test_header_mentions_cursortests/test_bootstrap_generate.py:188—TestGenerateCursorrules.test_points_to_cursor_subdirtests/test_bootstrap_generate.py:214—TestGenerateQwenMd.test_header_mentions_qwentests/test_bootstrap_generate.py:219—TestGenerateQwenMd.test_points_to_qwen_subdir
Group 14 (sig 6cd048592498de44, 5 tests)
tests/test_hooks_common.py:46—TestMarkerPresentAnchored.test_substring_only_returns_falsetests/test_hooks_common.py:86—TestMarkerPresentAnchored.test_u2028_line_separator_does_NOT_trigger_bypasstests/test_hooks_common.py:97—TestMarkerPresentAnchored.test_u0085_nel_does_NOT_trigger_bypasstests/test_hooks_common.py:102—TestMarkerPresentAnchored.test_tilde_fenced_block_does_NOT_trigger_bypasstests/test_hooks_common.py:112—TestMarkerPresentAnchored.test_four_space_indented_line_does_NOT_trigger_bypass
Group 15 (sig feb65d2235cbcc5c, 5 tests)
tests/test_project_mcp.py:37—TestStatus.test_status_emptytests/test_project_mcp.py:155—TestSession.test_session_starttests/test_project_mcp.py:175—TestSession.test_last_handoff_emptytests/test_project_mcp.py:220—TestHierarchy.test_roadmap_emptytests/test_project_mcp.py:286—TestMetricsAndEvents.test_unknown_tool
Group 16 (sig 3c79cfd9f2a33890, 5 tests)
tests/test_project_mcp.py:75—TestTaskCRUD.test_task_list_filter_statustests/test_project_mcp.py:122—TestTaskCRUD.test_task_update_no_fieldstests/test_project_mcp.py:240—TestKnowledge.test_memory_search_emptytests/test_project_mcp.py:255—TestKnowledge.test_searchtests/test_project_mcp.py:259—TestKnowledge.test_search_empty
Group 17 (sig b44bdf8b25683771, 5 tests)
tests/test_skill_manager.py:583—TestCopySkillFilters.test_skips_claude_plugintests/test_skill_manager.py:588—TestCopySkillFilters.test_skips_hookstests/test_skill_manager.py:593—TestCopySkillFilters.test_skips_pycachetests/test_skill_manager.py:598—TestCopySkillFilters.test_skips_claude_mdtests/test_skill_manager.py:603—TestCopySkillFilters.test_skips_gitmodules
Group 18 (sig e7ab049134bc4f3d, 4 tests)
tests/test_audit_unused_python.py:55—TestExclusionHelpers.test_module_nametests/test_hooks_common.py:136—TestLastUserPromptText.test_missing_file_returns_emptytests/test_rag_edge.py:349—TestDetectEdge.test_no_extensiontests/test_rag_edge.py:353—TestDetectEdge.test_compound_extension
Group 19 (sig dbf7765fd93fc1d0, 4 tests)
tests/test_brain_hook_utils.py:84—TestIsFresh.test_recent_within_ttltests/test_brain_hook_utils.py:87—TestIsFresh.test_stale_beyond_ttltests/test_brain_hook_utils.py:90—TestIsFresh.test_boundary_exactly_at_ttltests/test_brain_hook_utils.py:94—TestIsFresh.test_zero_ttl_never_fresh
Group 20 (sig b5cc8b90a41a12a0, 4 tests)
tests/test_brain_schema.py:304—test_unique_notion_page_idtests/test_brain_schema.py:320—test_generalizable_check_constrainttests/test_brain_schema.py:336—test_confidence_check_constrainttests/test_brain_schema.py:352—test_severity_check_constraint
Group 21 (sig 6543bdaf264f06fd, 4 tests)
tests/test_brain_scrubbing.py:58—test_relative_paths_passtests/test_brain_scrubbing.py:63—test_url_path_not_flagged_as_filesystemtests/test_brain_scrubbing.py:110—test_private_url_without_patterns_passestests/test_brain_scrubbing.py:215—test_unicode_content_cyrillic_clean
Group 22 (sig da0ea30742d44e80, 4 tests)
tests/test_edge_cases.py:61—TestSlugValidation.test_slug_single_chartests/test_edge_cases.py:64—TestSlugValidation.test_slug_with_numberstests/test_skill_manager.py:327—TestUrlValidation.test_https_allowedtests/test_skill_manager.py:330—TestUrlValidation.test_ssh_allowed
Group 23 (sig dc3a0fe8a945c267, 4 tests)
tests/test_edge_cases.py:195—TestBoundaryOperations.test_session_end_without_starttests/test_senar.py:312—TestSessionDurationEnforcement.test_session_extend_no_session_raisestests/test_senar.py:364—TestExplorations.test_exploration_end_no_activetests/test_tausik_service.py:459—TestSessions.test_end_no_session
Group 24 (sig d2bac9ba25cba6ea, 4 tests)
tests/test_hooks.py:70—TestBashFirewall.test_skip_hooks_envtests/test_hooks.py:200—TestGitPushGate.test_skip_push_hook_envtests/test_hooks.py:208—TestGitPushGate.test_skip_hooks_no_longer_bypasses_pushtests/test_hooks.py:295—TestAutoFormat.test_skip_hooks_env
Group 25 (sig e3e0d8240eb4ae27, 4 tests)
tests/test_model_routing.py:19—test_medium_maps_to_sonnettests/test_model_routing.py:24—test_complex_maps_to_opustests/test_model_routing.py:45—test_case_insensitivetests/test_model_routing.py:50—test_whitespace_tolerated
Group 26 (sig a0a39b7cb5d9efcf, 4 tests)
tests/test_qg0_dimensions.py:34—TestDimensionsScore.test_epic_also_counts_as_story_linktests/test_qg0_dimensions.py:39—TestDimensionsScore.test_evidence_plan_via_file_referencetests/test_qg0_dimensions.py:44—TestDimensionsScore.test_evidence_plan_via_memory_referencetests/test_qg0_dimensions.py:49—TestDimensionsScore.test_evidence_plan_vague_ac
Group 27 (sig 200cae476eabd105, 4 tests)
tests/test_rag.py:67—TestGitignore.test_matches_dirtests/test_rag.py:70—TestGitignore.test_matches_nestedtests/test_rag_edge.py:316—TestGitignoreEdge.test_double_star_patterntests/test_rag_edge.py:319—TestGitignoreEdge.test_trailing_slash_dir
Group 28 (sig 3e83335cb242f138, 4 tests)
tests/test_senar.py:423—TestChecklistTier.test_tier_simple_lightweighttests/test_senar.py:435—TestChecklistTier.test_tier_medium_standardtests/test_senar.py:447—TestChecklistTier.test_tier_auth_auto_hightests/test_senar.py:461—TestChecklistTier.test_tier_complex_critical
Group 29 (sig 76b6a3fbd3603f87, 4 tests)
tests/test_service_verification.py:848—TestIsDeclaredConsistentWithGitDiff.test_under_declared_returns_falsetests/test_service_verification.py:883—TestIsDeclaredConsistentWithGitDiff.test_no_changes_returns_truetests/test_service_verification.py:902—TestIsDeclaredConsistentWithGitDiff.test_partial_overlap_with_extra_changed_returns_falsetests/test_service_verification.py:916—TestIsDeclaredConsistentWithGitDiff.test_backslash_declaration_normalizes_to_match
Group 30 (sig f338a8c86269e456, 4 tests)
tests/test_stack_php_js.py:73—TestStackFiltering.test_phpunit_skipped_for_pythontests/test_stack_php_js.py:79—TestStackFiltering.test_phpunit_runs_for_phptests/test_stack_php_js.py:85—TestStackFiltering.test_js_test_skipped_for_gotests/test_stack_php_js.py:91—TestStackFiltering.test_js_test_runs_for_tsx
Group 31 (sig a492dca6919d327c, 4 tests)
tests/test_tausik_backend.py:232—TestStories.test_add_to_nonexistent_epictests/test_tausik_backend.py:302—TestTasks.test_add_to_nonexistent_storytests/test_tausik_service.py:62—TestHierarchy.test_story_invalid_epictests/test_tausik_service.py:498—TestKnowledge.test_memory_invalid_type
Group 32 (sig 0f24659a87548d29, 3 tests)
tests/test_audit_orphan_files.py:66—TestExclusion.test_unrelated_path_not_excludedtests/test_audit_stale_docs.py:68—TestExclusion.test_unrelated_path_not_excludedtests/test_audit_unused_python.py:65—TestExclusionHelpers.test_unrelated_path_kept
Group 33 (sig 41ee8110381925ac, 3 tests)
tests/test_audit_stale_docs.py:79—TestMirrorPartner.test_no_partner_for_roottests/test_brain_hook_utils.py:56—TestParseIsoToEpoch.test_empty_string_returns_nonetests/test_rag.py:44—TestDetectLanguage.test_unknown
Group 34 (sig 10fe70ad9f4120d0, 3 tests)
tests/test_audit_unused_python.py:94—TestCollectUnused.test_referenced_kept_cleantests/test_audit_unused_python.py:99—TestCollectUnused.test_private_helper_skippedtests/test_audit_unused_python.py:105—TestCollectUnused.test_hooks_excluded_by_glob
Group 35 (sig 273758ec2cfbfc22, 3 tests)
tests/test_bootstrap_frontmatter.py:64—TestValidateFrontmatter.test_valid_context_inlinetests/test_bootstrap_frontmatter.py:67—TestValidateFrontmatter.test_valid_context_forktests/test_bootstrap_frontmatter.py:89—TestValidateFrontmatter.test_valid_paths
Group 36 (sig eec5395ace6146f2, 3 tests)
tests/test_bootstrap_frontmatter.py:70—TestValidateFrontmatter.test_invalid_contexttests/test_bootstrap_frontmatter.py:79—TestValidateFrontmatter.test_invalid_efforttests/test_bootstrap_frontmatter.py:84—TestValidateFrontmatter.test_empty_paths_warning
Group 37 (sig 474339df785784d8, 3 tests)
tests/test_bootstrap_generate.py:148—TestGenerateAgentsMd.test_contains_shared_hard_markerstests/test_bootstrap_generate.py:178—TestGenerateCursorrules.test_contains_shared_hard_markerstests/test_bootstrap_generate.py:209—TestGenerateQwenMd.test_contains_shared_hard_markers
Group 38 (sig c59d37aca6717a82, 3 tests)
tests/test_bootstrap_generate.py:158—TestGenerateAgentsMd.test_preserves_existingtests/test_bootstrap_generate.py:193—TestGenerateCursorrules.test_preserves_existingtests/test_bootstrap_generate.py:224—TestGenerateQwenMd.test_preserves_existing
Group 39 (sig 49593e70f60f71a4, 3 tests)
tests/test_brain_classifier.py:71—test_src_file_marker_routes_localtests/test_brain_classifier.py:78—test_tausik_cmd_marker_routes_localtests/test_brain_classifier.py:85—test_slug_marker_routes_local_for_non_web_cache
Group 40 (sig cad2e8bcfd6d62d6, 3 tests)
tests/test_brain_mcp_handlers.py:119—test_brain_search_empty_querytests/test_brain_mcp_handlers.py:124—test_brain_get_missing_idtests/test_brain_mcp_handlers.py:129—test_brain_get_missing_category
Group 41 (sig ba4b5ee0a46f6c2b, 3 tests)
tests/test_brain_metrics.py:34—test_brain_event_record_validates_typetests/test_brain_storage_hardening.py:234—TestNfcProjectHash.test_empty_still_raisestests/test_service_stack_ops.py:31—TestStackShow.test_unknown_stack_raises_keyerror
Group 42 (sig a78b76d38ee2d278, 3 tests)
tests/test_brain_search.py:366—test_search_query_with_dash_does_not_crashtests/test_brain_search.py:377—test_search_query_with_inner_quotes_does_not_crashtests/test_brain_search.py:388—test_search_query_with_colon_does_not_crash
Group 43 (sig a745229e4bc2bf99, 3 tests)
tests/test_cq_client.py:33—TestEndpointValidation.test_file_scheme_raisestests/test_cq_client.py:37—TestEndpointValidation.test_ftp_scheme_raisestests/test_cq_client.py:41—TestEndpointValidation.test_empty_scheme_raises
Group 44 (sig c5aba93122ca3aae, 3 tests)
tests/test_edge_cases.py:140—TestFTS5EdgeCases.test_search_with_parenstests/test_edge_cases.py:144—TestFTS5EdgeCases.test_search_with_asterisktests/test_edge_cases.py:148—TestFTS5EdgeCases.test_search_only_special_chars
Group 45 (sig 538d96b88b424ece, 3 tests)
tests/test_hooks_common.py:27—TestMarkerPresentAnchored.test_exact_line_returns_truetests/test_hooks_common.py:32—TestMarkerPresentAnchored.test_line_with_leading_trailing_whitespacetests/test_hooks_common.py:37—TestMarkerPresentAnchored.test_case_insensitive
Group 46 (sig 71973bbff4e54098, 3 tests)
tests/test_hooks_common.py:42—TestMarkerPresentAnchored.test_multiline_marker_on_its_own_linetests/test_hooks_common.py:59—TestMarkerPresentAnchored.test_marker_after_closing_fence_returns_truetests/test_hooks_common.py:63—TestMarkerPresentAnchored.test_marker_before_opening_fence_returns_true
Group 47 (sig b8fb510eabd7ddb7, 3 tests)
tests/test_hooks_common.py:67—TestMarkerPresentAnchored.test_empty_text_returns_falsetests/test_hooks_common.py:70—TestMarkerPresentAnchored.test_empty_marker_returns_falsetests/test_hooks_common.py:73—TestMarkerPresentAnchored.test_whitespace_only_marker_returns_false
Group 48 (sig ac4fae7a5d559c12, 3 tests)
tests/test_ide_utils.py:23—TestDetectIde.test_explicit_tausik_ide_envtests/test_ide_utils.py:27—TestDetectIde.test_explicit_tausik_ide_windsurftests/test_ide_utils.py:36—TestDetectIde.test_cursor_env_detected
Group 49 (sig 5ff75ebdb79619d7, 3 tests)
tests/test_ide_utils.py:61—TestDetectIde.test_project_dir_detection_cursortests/test_ide_utils.py:65—TestDetectIde.test_project_dir_detection_windsurftests/test_ide_utils.py:69—TestDetectIde.test_project_dir_detection_codex
Group 50 (sig af1258b542fd52e2, 3 tests)
tests/test_project_mcp.py:41—TestStatus.test_status_with_taskstests/test_project_mcp.py:70—TestTaskCRUD.test_task_listtests/test_project_mcp.py:265—TestMetricsAndEvents.test_metrics
Group 51 (sig 0a27ba37b9eb6b28, 3 tests)
tests/test_senar.py:78—TestQG0NegativeScenario.test_start_ac_with_negative_passestests/test_senar.py:89—TestQG0NegativeScenario.test_start_ac_with_401_passestests/test_senar.py:100—TestQG0NegativeScenario.test_start_ac_with_russian_negative_passes
Group 52 (sig 854310b833c56d9b, 3 tests)
tests/test_senar.py:113—TestQG0NegativeScenario.test_start_ac_without_errors_phrase_failstests/test_senar.py:125—TestQG0NegativeScenario.test_start_ac_no_failures_failstests/test_senar.py:144—TestQG0NegativeScenario.test_start_ac_inline_numbered_fails
Group 53 (sig e1a89a5c94634faf, 3 tests)
tests/test_service_verification.py:255—TestIsSecuritySensitive.test_any_match_triggerstests/test_service_verification.py:259—TestIsSecuritySensitive.test_any_basename_match_triggerstests/test_service_verification.py:263—TestIsSecuritySensitive.test_any_extension_match_triggers
Group 54 (sig d987a22557bd0432, 3 tests)
tests/test_stack_info_cli.py:43—TestStackInfo.test_unknown_stack_raises_with_suggestiontests/test_tausik_service.py:47—TestHierarchy.test_epic_not_foundtests/test_tausik_service.py:205—TestTaskLifecycle.test_show_not_found
Group 55 (sig 0d3615c8fbd88974, 3 tests)
tests/test_task_done_v2_matcher.py:20—test_v1_mcp_name_in_matchertests/test_task_done_v2_matcher.py:24—test_v2_mcp_name_in_matchertests/test_task_done_v2_matcher.py:28—test_v2_bare_name_in_matcher
Group 56 (sig a924073872972d8d, 3 tests)
tests/test_task_done_verify_hook.py:72—TestBashTaskDoneDetection.test_real_tausik_task_done_matchestests/test_task_done_verify_hook.py:77—TestBashTaskDoneDetection.test_echo_mentioning_task_done_does_not_matchtests/test_task_done_verify_hook.py:82—TestBashTaskDoneDetection.test_grep_for_task_done_does_not_match
Group 57 (sig 41809bc46d2eca5b, 3 tests)
tests/test_v131_blind_review.py:40—test_task_update_status_active_is_refusedtests/test_v131_blind_review.py:47—test_task_update_status_blocked_is_refusedtests/test_v131_blind_review.py:54—test_task_update_status_review_is_refused
Group 58 (sig 1a5c98ff938bc2c1, 2 tests)
tests/test_adversarial_review_mode.py:16—TestCriticAgentFile.test_critic_mentions_three_weaknessestests/test_adversarial_review_mode.py:29—TestCriticAgentFile.test_critic_says_no_fabrication
Group 59 (sig 01693d7dc7fabc14, 2 tests)
tests/test_agent_units.py:117—TestTaskSetCallBudget.test_negative_rejectedtests/test_agent_units.py:150—TestTaskSetCallActual.test_negative_rejected
Group 60 (sig a9316158e0c26585, 2 tests)
tests/test_agent_units.py:122—TestTaskSetCallBudget.test_unknown_slug_returns_falsetests/test_agent_units.py:155—TestTaskSetCallActual.test_unknown_slug_returns_false
Group 61 (sig aaf613cfc6ba7490, 2 tests)
tests/test_agent_units_cli.py:80—TestServiceUpdate.test_update_budget_derives_tiertests/test_med_findings_fix.py:53—TestUpdateBudgetWins.test_budget_only_auto_derives
Group 62 (sig 0d610c22debfadb3, 2 tests)
tests/test_agent_units_cli.py:203—TestCliParser.test_help_lists_call_budgettests/test_agent_units_cli.py:209—TestCliParser.test_help_update_lists_call_budget
Group 63 (sig b9966551b37e3121, 2 tests)
tests/test_audit_orphan_files.py:71—TestCollectOrphans.test_lonely_helper_reportedtests/test_audit_stale_docs.py:84—TestCollectStale.test_lonely_reported
Group 64 (sig 2fdce8e4ac2b0c9d, 2 tests)
tests/test_bootstrap_dryrun.py:19—TestBootstrapDryRun.test_dry_run_no_files_createdtests/test_bootstrap_dryrun.py:89—TestBootstrapDryRun.test_dry_run_all_ides
Group 65 (sig c7782f1404076805, 2 tests)
tests/test_bootstrap_generate.py:117—TestGenerateClaudeMd.test_special_chars_in_project_nametests/test_bootstrap_generate.py:122—TestGenerateClaudeMd.test_empty_project_name
Group 66 (sig ce128425a997d79a, 2 tests)
tests/test_bootstrap_generate_mcp.py:57—test_skips_brain_when_server_missingtests/test_bootstrap_qwen.py:51—test_qwen_skips_brain_when_server_missing
Group 67 (sig 0ed241665854d11e, 2 tests)
tests/test_bootstrap_hooks_parity.py:71—test_qwen_has_every_claude_hooktests/test_bootstrap_hooks_parity.py:82—test_qwen_does_not_invent_hooks
Group 68 (sig 54bf533932b3e573, 2 tests)
tests/test_bootstrap_venv.py:24—TestCheckVersion.test_nonexistent_binarytests/test_bootstrap_venv.py:28—TestCheckVersion.test_invalid_command
Group 69 (sig 1ea41642df27b2e0, 2 tests)
tests/test_brain_classifier.py:45—test_empty_content_routed_localtests/test_brain_classifier.py:197—test_clean_content_routes_brain
Group 70 (sig 91c90e3658e8d23b, 2 tests)
tests/test_brain_classifier.py:107—test_web_cache_still_blocks_on_abs_pathtests/test_brain_classifier.py:129—test_decision_category_keeps_slug_signal
Group 71 (sig a7df1f9a8486b467, 2 tests)
tests/test_brain_classifier.py:117—test_web_cache_still_blocks_on_src_filetests/test_brain_classifier.py:123—test_web_cache_still_blocks_on_tausik_cmd
Group 72 (sig 331554bcd0fa298e, 2 tests)
tests/test_brain_config.py:207—test_compute_project_hash_length_and_charsettests/test_brain_mcp_write.py:140—test_content_hash_16_hex_chars
Group 73 (sig 06edb203bddd92d4, 2 tests)
tests/test_brain_config.py:224—test_compute_project_hash_rejects_emptytests/test_brain_project_registry.py:44—test_canonical_name_empty_raises
Group 74 (sig 5e27e7503360be8d, 2 tests)
tests/test_brain_hook_utils.py:45—TestParseIsoToEpoch.test_offset_formtests/test_brain_hook_utils.py:50—TestParseIsoToEpoch.test_naive_assumed_utc
Group 75 (sig 13cad52e1c9aad8e, 2 tests)
tests/test_brain_hook_utils.py:103—TestIsFresh.test_unparseable_timestamp_is_staletests/test_brain_hook_utils.py:106—TestIsFresh.test_empty_timestamp_is_stale
Group 76 (sig ccec0c2ab1a5b34e, 2 tests)
tests/test_brain_hook_utils.py:145—TestLookupExactUrl.test_empty_url_returns_nonetests/test_vendor.py:81—TestLockFile.test_read_missing_returns_none
Group 77 (sig d29c206cf3b87111, 2 tests)
tests/test_brain_init.py:67—test_db_schema_unknown_raisestests/test_brain_notion_client.py:115—test_token_required
Group 78 (sig 426f4ea56bcf2973, 2 tests)
tests/test_brain_init.py:620—TestCliIOPrompt.test_eof_raises_wizard_errortests/test_brain_init.py:629—TestCliIOPrompt.test_keyboard_interrupt_raises_wizard_error
Group 79 (sig 67e43891ad32779e, 2 tests)
tests/test_brain_mcp_read.py:475—test_format_record_pattern_shows_confidence_badgetests/test_brain_mcp_read.py:548—test_format_record_preserves_cyrillic
Group 80 (sig c40c89300dd92ddd, 2 tests)
tests/test_brain_mcp_write.py:152—test_content_hash_rejects_non_stringtests/test_brain_scrubbing.py:204—test_non_string_content_raises
Group 81 (sig ccd1ff1187d9c044, 2 tests)
tests/test_brain_mcp_write.py:663—test_handler_brain_store_pattern_happytests/test_brain_mcp_write.py:676—test_handler_brain_store_gotcha_happy
Group 82 (sig ecb72cd194afb4ba, 2 tests)
tests/test_brain_mcp_write.py:695—test_store_pattern_taxonomy_strict_requires_kindtests/test_brain_mcp_write.py:769—test_store_pattern_scope_strict_requires_key
Group 83 (sig f19de746c8a9d84d, 2 tests)
tests/test_brain_mcp_write.py:719—test_store_pattern_invalid_taxonomy_even_when_loosetests/test_brain_mcp_write.py:755—test_store_pattern_scope_empty_string_blocks
Group 84 (sig cba2abacc28ac852, 2 tests)
tests/test_brain_mcp_write.py:747—test_format_store_result_taxonomy_blockedtests/test_brain_mcp_write.py:791—test_format_store_result_card_schema_blocked
Group 85 (sig b14eba0113a8b638, 2 tests)
tests/test_brain_move.py:212—TestMoveToBrain.test_invalid_kindtests/test_brain_move.py:216—TestMoveToBrain.test_source_not_found
Group 86 (sig 5f4488278f6fd990, 2 tests)
tests/test_brain_move.py:329—TestMoveToLocal.test_invalid_categorytests/test_brain_move.py:335—TestMoveToLocal.test_not_found
Group 87 (sig 3167ce3979d3da04, 2 tests)
tests/test_brain_notion_client.py:120—test_token_must_be_stringtests/test_brain_project_registry.py:51—test_canonical_name_non_string_raises
Group 88 (sig c879426434a3bd21, 2 tests)
tests/test_brain_project_registry.py:56—test_load_registry_missing_returns_emptytests/test_brain_project_registry.py:153—test_all_project_names_empty
Group 89 (sig f0d36bda3a0b40a3, 2 tests)
tests/test_brain_project_registry.py:60—test_load_registry_malformed_returns_emptytests/test_brain_project_registry.py:65—test_load_registry_non_list_returns_empty
Group 90 (sig b10c97193002f3da, 2 tests)
tests/test_brain_scrubbing.py:18—test_clean_content_passestests/test_brain_scrubbing.py:209—test_empty_content_passes
Group 91 (sig b12ad7a18636c765, 2 tests)
tests/test_brain_scrubbing.py:40—test_posix_users_path_blockedtests/test_brain_scrubbing.py:46—test_windows_drive_path_blocked
Group 92 (sig 8f7c2f290c549ef1, 2 tests)
tests/test_brain_scrubbing.py:93—test_private_url_matches_configured_patterntests/test_brain_scrubbing.py:127—test_project_name_exact_substring_blocked
Group 93 (sig b300c4c33b727d3d, 2 tests)
tests/test_brain_search.py:187—test_sanitize_wraps_in_quotestests/test_brain_search.py:191—test_sanitize_escapes_embedded_quotes
Group 94 (sig 06286b5eeb8e02ec, 2 tests)
tests/test_brain_search.py:431—test_apply_prefer_stack_ranking_boosts_matching_stacktests/test_brain_search.py:440—test_apply_prefer_stack_ranking_respects_stronger_bm25
Group 95 (sig e533b296f9067243, 2 tests)
tests/test_brain_search_proactive_hook.py:355—test_no_cache_hit_allows_fetchtests/test_brain_search_proactive_hook.py:476—test_empty_query_exits_zero
Group 96 (sig 2819a2e08d2b4b66, 2 tests)
tests/test_cascade_delete.py:105—TestForeignKeyIntegrity.test_task_requires_valid_storytests/test_cascade_delete.py:109—TestForeignKeyIntegrity.test_story_requires_valid_epic
Group 97 (sig 85ba2a8cf1b1082f, 2 tests)
tests/test_cascade_delete.py:118—TestForeignKeyIntegrity.test_task_story_id_references_storiestests/test_cascade_delete.py:127—TestForeignKeyIntegrity.test_story_epic_id_references_epics
Group 98 (sig 66496de30d2be460, 2 tests)
tests/test_cq_client.py:25—TestEndpointValidation.test_http_endpoint_acceptedtests/test_cq_client.py:29—TestEndpointValidation.test_https_endpoint_accepted
Group 99 (sig ff914fbd7d04c310, 2 tests)
tests/test_doc_extract.py:52—test_is_available_when_installedtests/test_doc_extract.py:57—test_is_available_when_missing
Group 100 (sig ca7d3c690bd6fee1, 2 tests)
tests/test_edge_cases.py:72—TestLengthValidation.test_title_max_lengthtests/test_edge_cases.py:79—TestLengthValidation.test_content_max
Group 101 (sig 0a96e9c633131254, 2 tests)
tests/test_edge_cases.py:75—TestLengthValidation.test_title_over_maxtests/test_edge_cases.py:82—TestLengthValidation.test_content_over_max
Group 102 (sig 23dcaee06e83a34e, 2 tests)
tests/test_edge_cases.py:124—TestUnicode.test_unicode_searchtests/test_tausik_service.py:502—TestKnowledge.test_memory_search
Group 103 (sig 966617296a43a592, 2 tests)
tests/test_edge_cases.py:190—TestBoundaryOperations.test_session_double_starttests/test_tausik_service.py:454—TestSessions.test_double_start
Group 104 (sig 9823ffcec84f855e, 2 tests)
tests/test_gate_stack_aware.py:72—TestGateApplies.test_python_gate_skipped_for_go_filestests/test_gate_stack_aware.py:78—TestGateApplies.test_mixed_files_match_any
Group 105 (sig 4ca6ac88e45588f6, 2 tests)
tests/test_gates.py:255—TestGateRunner.test_format_results_passtests/test_gates.py:263—TestGateRunner.test_format_results_fail
Group 106 (sig 719db6d66b2f3844, 2 tests)
tests/test_gates.py:329—TestStackGates.test_auto_enable_for_gotests/test_gates.py:337—TestStackGates.test_auto_enable_for_rust
Group 107 (sig 0b2e273fc3e3a476, 2 tests)
tests/test_gates.py:375—TestStackGates.test_react_enables_tsc_and_eslinttests/test_stack_go_rust.py:47—TestGateRegistration.test_in_stack_gate_map
Group 108 (sig 7252c7041fbc43e9, 2 tests)
tests/test_gates.py:409—TestCustomGateValidation.test_shell_operators_without_files_allowedtests/test_gates.py:422—TestCustomGateValidation.test_path_prefix_stripped
Group 109 (sig a2602e658380db63, 2 tests)
tests/test_gates.py:654—TestDefaultGatesHaveFileExtensions.test_ruff_has_py_extensiontests/test_gates.py:657—TestDefaultGatesHaveFileExtensions.test_mypy_has_py_extension
Group 110 (sig d74497a7bbdc5348, 2 tests)
tests/test_gates.py:680—TestResolveTestFilesForRelevant.test_basename_matchtests/test_gates.py:748—TestResolveTestFilesForRelevant.test_windows_backslash_path_normalized
Group 111 (sig 10a8db25a05fedea, 2 tests)
tests/test_graph_memory.py:213—TestGraphService.test_memory_link_nonexistent_nodetests/test_graph_memory.py:218—TestGraphService.test_memory_link_self_loop
Group 112 (sig b15f109ae6ef91e2, 2 tests)
tests/test_graph_memory.py:243—TestGraphService.test_memory_unlink_nonexistenttests/test_tausik_service.py:507—TestKnowledge.test_memory_not_found
Group 113 (sig 845452c7cb04a80d, 2 tests)
tests/test_hooks.py:41—TestBashFirewall.test_rm_rf_root_blockedtests/test_hooks.py:183—TestGitPushGate.test_git_push_blocked
Group 114 (sig a910efc91c095945, 2 tests)
tests/test_hooks.py:82—TestBashFirewall.test_no_stdin_allowedtests/test_hooks.py:291—TestAutoFormat.test_no_stdin_allowed
Group 115 (sig a98e74d02eb1ca49, 2 tests)
tests/test_hooks_common.py:192—TestLastUserPromptText.test_huge_transcript_uses_tail_readtests/test_hooks_common.py:231—TestLastUserPromptText.test_partial_first_line_after_seek_dropped
Group 116 (sig 7254a8eb1e1dbffc, 2 tests)
tests/test_iac_bootstrap_detection.py:39—TestSignatureMatch.test_exact_filename_misstests/test_iac_bootstrap_detection.py:62—TestSignatureMatch.test_glob_no_match
Group 117 (sig f6a957a6ba271b4a, 2 tests)
tests/test_iac_bootstrap_detection.py:77—TestDetectStacks.test_docker_onlytests/test_iac_bootstrap_detection.py:90—TestDetectStacks.test_helm_via_chart_yaml
Group 118 (sig 2da4ec9635533a7b, 2 tests)
tests/test_iac_bootstrap_detection.py:128—TestAutoEnable.test_terraform_auto_enables_terraform_validatetests/test_iac_bootstrap_detection.py:138—TestAutoEnable.test_docker_auto_enables_hadolint
Group 119 (sig 57e4cd2d46119414, 2 tests)
tests/test_ide_utils.py:51—TestDetectIde.test_explicit_overrides_envtests/test_ide_utils.py:56—TestDetectIde.test_cursor_wins_over_windsurf
Group 120 (sig 7a2213d48d2f7d32, 2 tests)
tests/test_ide_utils.py:85—TestGetIdeConfig.test_claude_configtests/test_ide_utils.py:90—TestGetIdeConfig.test_cursor_config
Group 121 (sig 70a3c6a98c996733, 2 tests)
tests/test_ide_utils.py:111—TestPathHelpers.test_get_ide_dirtests/test_ide_utils.py:115—TestPathHelpers.test_get_ide_dir_codex
Group 122 (sig 04ecb970db11ef0f, 2 tests)
tests/test_interview_skill.py:28—test_socratic_framingtests/test_interview_skill.py:33—test_stop_condition_present
Group 123 (sig 3074b4f54c833356, 2 tests)
tests/test_keyword_detector_hook.py:191—TestSettingsGeneration.test_claude_settings_has_stop_hooktests/test_user_prompt_submit_hook.py:152—TestSettingsGeneration.test_claude_settings_has_userpromptsubmit
Group 124 (sig 2f9414e0cf418ad9, 2 tests)
tests/test_keyword_detector_hook.py:204—TestSettingsGeneration.test_qwen_settings_has_stop_hooktests/test_user_prompt_submit_hook.py:167—TestSettingsGeneration.test_qwen_settings_has_userpromptsubmit
Group 125 (sig 48382eecc25b48e5, 2 tests)
tests/test_mcp_project_server.py:87—test_cursor_project_server_chdir_is_in_maintests/test_mcp_project_server.py:117—test_project_server_minimal_text_reply_on_exception
Group 126 (sig b1f1e97d2ff30a8a, 2 tests)
tests/test_mcp_windows.py:71—TestGitHeadReading.test_empty_head_filetests/test_mcp_windows.py:80—TestGitHeadReading.test_invalid_short_hash
Group 127 (sig 3668a8b187c27a11, 2 tests)
tests/test_mcp_windows.py:99—TestSafePath.test_traversal_blockedtests/test_mcp_windows.py:104—TestSafePath.test_windows_backslash_traversal
Group 128 (sig 0fe6471230cd2926, 2 tests)
tests/test_mcp_windows.py:154—TestPathNormalization.test_chunk_file_empty_contenttests/test_mcp_windows.py:159—TestPathNormalization.test_chunk_file_whitespace_only
Group 129 (sig c5df64759e76ddca, 2 tests)
tests/test_memory_block.py:29—TestMemoryBlockContent.test_empty_db_returns_empty_stringtests/test_memory_compact.py:33—TestMemoryCompact.test_empty_db_returns_empty
Group 130 (sig fc43dc97d87d4e8d, 2 tests)
tests/test_memory_block.py:176—TestSkillsDocumentation.test_start_skill_mentions_memory_blocktests/test_memory_block.py:183—TestSkillsDocumentation.test_checkpoint_skill_mentions_memory_block
Group 131 (sig 8059a498319b73f9, 2 tests)
tests/test_memory_markers.py:100—TestEdgeCases.test_empty_texttests/test_memory_markers.py:103—TestEdgeCases.test_whitespace_only
Group 132 (sig 498301850c96baef, 2 tests)
tests/test_memory_markers.py:135—TestTwoSegmentSlugs.test_two_seg_slug_with_src_file_kepttests/test_memory_markers.py:142—TestTwoSegmentSlugs.test_two_seg_slug_with_tausik_cmd_kept
Group 133 (sig b347a712dbbdd606, 2 tests)
tests/test_memory_posttool_audit_hook.py:280—TestSettingsGeneration.test_claude_settings_registers_audittests/test_memory_pretool_block_hook.py:606—TestSettingsGeneration.test_claude_settings_registers_hook
Group 134 (sig e5d602925978438e, 2 tests)
tests/test_memory_posttool_audit_hook.py:300—TestSettingsGeneration.test_qwen_settings_registers_audittests/test_memory_pretool_block_hook.py:626—TestSettingsGeneration.test_qwen_settings_registers_hook
Group 135 (sig 5332b812b7c77579, 2 tests)
tests/test_memory_pretool_block_hook.py:141—TestBlocksMemoryWrites.test_blocks_agents_memorytests/test_memory_pretool_block_hook.py:156—TestBlocksMemoryWrites.test_blocks_deeply_nested_memory
Group 136 (sig 048d66275a555c03, 2 tests)
tests/test_memory_pretool_block_hook.py:267—TestGracefulMalformed.test_malformed_jsontests/test_memory_pretool_block_hook.py:285—TestGracefulMalformed.test_empty_stdin
Group 137 (sig a972d60e23a1b486, 2 tests)
tests/test_memory_pretool_block_hook.py:401—TestBypassMarker.test_marker_in_last_user_turn_as_stringtests/test_memory_pretool_block_hook.py:454—TestBypassMarker.test_marker_case_insensitive
Group 138 (sig 6593c7d47f31627a, 2 tests)
tests/test_migrations.py:130—TestMigrationV1ToV2.test_cascade_delete_works_after_migrationtests/test_migrations.py:143—TestMigrationV1ToV2.test_story_cascade_deletes_tasks
Group 139 (sig e63f8863aec25daf, 2 tests)
tests/test_plan_parser.py:81—TestParsePlan.test_untitled_plantests/test_plan_parser.py:91—TestParsePlan.test_no_context
Group 140 (sig 59ec57f501890a72, 2 tests)
tests/test_project_mcp.py:116—TestTaskCRUD.test_task_updatetests/test_project_mcp.py:244—TestKnowledge.test_decide
Group 141 (sig ca7c81aa2f675453, 2 tests)
tests/test_qg2_gates.py:295—TestQG0SecuritySurface.test_qg0_security_surface_warningtests/test_qg2_gates.py:336—TestQG0ScopeWarnings.test_qg0_scope_warning
Group 142 (sig f554bd2a55c5bc4d, 2 tests)
tests/test_rag_edge.py:35—TestSafePath.test_traversal_dotdottests/test_rag_edge.py:39—TestSafePath.test_traversal_encoded
Group 143 (sig 64631c276dbd10f4, 2 tests)
tests/test_rag_edge.py:232—TestStoreEdgeCases.test_search_empty_dbtests/test_tausik_backend.py:388—TestTaskLogs.test_list_empty
Group 144 (sig 18274152e8616f38, 2 tests)
tests/test_review_high_fixes.py:42—TestIacExecutablesWhitelisted.test_user_override_with_path_prefix_passestests/test_review_high_fixes.py:73—TestShellChainBlocked.test_pipe_without_files_still_allowed
Group 145 (sig 32ceb3aa80220ec1, 2 tests)
tests/test_senar.py:53—TestQG0ContextGate.test_start_with_goal_and_ac_passestests/test_senar.py:350—TestExplorations.test_exploration_start
Group 146 (sig 3ee0bf0d4d92d164, 2 tests)
tests/test_senar.py:136—TestQG0NegativeScenario.test_start_ac_russian_without_errors_failstests/test_senar.py:170—TestQG0NegativeScenario.test_has_negative_scenario_unit_returns_true_for_real_scenario
Group 147 (sig ae42bee352fe5f8c, 2 tests)
tests/test_senar.py:578—TestNoKnowledgeRefusal.test_no_knowledge_allowed_for_simpletests/test_senar.py:583—TestNoKnowledgeRefusal.test_no_knowledge_allowed_for_medium
Group 148 (sig 8fde57b1a26d2fb7, 2 tests)
tests/test_service_knowledge_decide.py:63—test_content_with_src_file_marker_routes_localtests/test_service_knowledge_decide.py:84—test_clean_content_brain_disabled_falls_back_local
Group 149 (sig 578192dc4b10b8f5, 2 tests)
tests/test_service_knowledge_decide.py:70—test_content_with_abs_path_marker_routes_localtests/test_service_knowledge_decide.py:230—test_whitespace_only_routes_local
Group 150 (sig a8292720cc8062b8, 2 tests)
tests/test_service_roles.py:64—TestRoleCRUD.test_show_unknown_raisestests/test_service_roles.py:113—TestRoleDelete.test_delete_unknown_raises
Group 151 (sig bea13f7f26161a86, 2 tests)
tests/test_service_verification.py:301—TestRecordAndLookup.test_lookup_misses_on_no_runstests/test_service_verification.py:424—TestRecordAndLookup.test_lookup_empty_slug_returns_none
Group 152 (sig c0f04970a99d6e39, 2 tests)
tests/test_service_verification.py:307—TestRecordAndLookup.test_lookup_misses_on_files_hash_mismatchtests/test_service_verification.py:322—TestRecordAndLookup.test_lookup_misses_on_command_mismatch
Group 153 (sig 017f372ce4900d24, 2 tests)
tests/test_service_verification.py:432—TestIsCacheAllowed.test_safe_files_allow_cachetests/test_service_verification.py:435—TestIsCacheAllowed.test_security_files_disallow_cache
Group 154 (sig 3ab0801772d9da8b, 2 tests)
tests/test_session_capacity.py:72—TestEnforcement.test_passes_under_budgettests/test_session_capacity.py:90—TestEnforcement.test_zero_budget_no_block
Group 155 (sig 62a4545671442ce7, 2 tests)
tests/test_session_cleanup_check.py:24—TestPureHelpers.test_no_active_exploration_returns_falsetests/test_session_cleanup_check.py:32—TestPureHelpers.test_empty_explore_output_returns_false
Group 156 (sig f2ea870be28a0bb3, 2 tests)
tests/test_skills_maturity.py:60—TestRoleProfiles.test_role_has_required_sectionstests/test_skills_maturity.py:68—TestRoleProfiles.test_role_has_skill_modifiers
Group 157 (sig 93fdbc885088b805, 2 tests)
tests/test_skills_maturity.py:317—TestBootstrapRolesStacks.test_copy_roles_function_existstests/test_skills_maturity.py:323—TestBootstrapRolesStacks.test_copy_stacks_function_exists
Group 158 (sig f214a0ee70038f10, 2 tests)
tests/test_stack_go_rust.py:58—TestStackInfo.test_go_info_lists_test_runnertests/test_stack_php_js.py:58—TestStackInfo.test_php_info
Group 159 (sig d8fd23eb7bc8530c, 2 tests)
tests/test_stack_go_rust.py:64—TestStackInfo.test_rust_info_lists_test_runnertests/test_stack_php_js.py:64—TestStackInfo.test_typescript_info
Group 160 (sig 88a05154e635745c, 2 tests)
tests/test_task_done_verify_hook.py:44—TestHeuristics.test_missing_test_numbers_fails_that_checktests/test_task_done_verify_hook.py:49—TestHeuristics.test_missing_lint_fails_that_check
Group 161 (sig f0c3822546992b3e, 2 tests)
tests/test_task_next_model_hint.py:48—TestIsTaskNextModelHintEnabled.test_true_when_settests/test_task_next_model_hint.py:55—TestIsTaskNextModelHintEnabled.test_false_when_disabled
Group 162 (sig bc63e6fe991c6ba5, 2 tests)
tests/test_tausik_cli.py:353—TestRoadmap.test_roadmap_include_donetests/test_tausik_cli.py:409—TestExplore.test_explore_current
Group 163 (sig 4b857e60236f18c4, 2 tests)
tests/test_tausik_cli.py:374—TestDeadEnd.test_dead_endtests/test_tausik_cli.py:403—TestExplore.test_explore_start
Group 164 (sig cb2e5e45a267c99c, 2 tests)
tests/test_user_prompt_submit_hook.py:89—TestIntentDetection.test_explain_prompt_does_not_nudgetests/test_user_prompt_submit_hook.py:95—TestIntentDetection.test_empty_prompt_does_not_nudge
Documented false positives
- Tests that share AST shape because they exercise different inputs but the same code path are not bugs — they are explicit coverage of edge cases. Review each group manually.
- Identifier names, string literals, and numeric values are erased during normalisation. So two tests with different fixtures and assertions but identical control flow will hash the same.
- Parametrize candidates: groups whose members differ only in a single literal can usually collapse into one parametrised test.