Repository Analysis

repowise-dev/repowise

Codebase intelligence for AI and humans: code health scores, auto-generated docs, git analytics, dead code detection, and architectural decisions via MCP.

40.4 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of repowise-dev/repowise, a Python project with 6,262 GitHub stars. SynthScan v2.0 examined 789,080 lines of code across 3754 source files, recording 21903 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 40.4 places this repository in the Strong AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

40.4
Adjusted Score
40.4
Raw Score
100%
Time Factor
2026-08-29
Last Push
6.3K
Stars
Python
Language
789.1K
Lines of Code
3.8K
Files
21.9K
Pattern Hits
2026-08-29
Scan Date
0.04
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 13HIGH 149MEDIUM 3634LOW 18107

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 21903 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators3508 hits · 12762 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml1# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml3# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml29# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml32# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml135# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml137# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml163# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml165# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml186# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml188# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml240# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml242# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml253# ---------------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml255# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_procutils.py33# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_procutils.py35# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_procutils.py53# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_procutils.py55# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_procutils.py88# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_procutils.py90# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_commit_rows.py53# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_commit_rows.py55# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_commit_rows.py194# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_commit_rows.py196# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py199# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py201# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py379# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py381# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py842# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py844# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py953# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py955# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py985# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py987# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py1066# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py1068# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py13# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py15# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py45# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py47# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py149# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py151# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py670# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_git_indexer.py672# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_ids.py194# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/test_ids.py198# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/pipeline/test_resume.py44# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/pipeline/test_resume.py46# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/pipeline/test_resume.py72# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/pipeline/test_resume.py74# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/pipeline/test_resume.py109# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/pipeline/test_resume.py111# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/pipeline/test_resume.py153# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/pipeline/test_resume.py155# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/pipeline/test_resume.py228# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/pipeline/test_resume.py230# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/ingestion/test_language_capabilities.py27# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/ingestion/test_language_capabilities.py29# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/ingestion/test_language_capabilities.py135# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/ingestion/test_language_capabilities.py137# ---------------------------------------------------------------------------COMMENT
3448 more matches not shown…
Hyper-Verbose Identifiers12305 hits · 12339 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py81def _isolate_structlog_config():CODE
LOWtests/unit/test_procutils.py42def test_pid_alive_dead_child() -> None:CODE
LOWtests/unit/test_procutils.py47def test_pid_alive_rejects_garbage() -> None:CODE
LOWtests/unit/test_procutils.py58def test_create_token_self_is_stable() -> None:CODE
LOWtests/unit/test_procutils.py65def test_create_token_dead_pid_is_none_or_differs_from_live() -> None:CODE
LOWtests/unit/test_procutils.py76def test_create_token_distinguishes_processes() -> None:CODE
LOWtests/unit/test_procutils.py93def test_parent_pid_of_child_is_us() -> None:CODE
LOWtests/unit/test_procutils.py102def test_process_name_of_child_is_python() -> None:CODE
LOWtests/unit/test_procutils.py113def test_ancestor_chain_starts_at_parent() -> None:CODE
LOWtests/unit/test_procutils.py124def test_ancestor_chain_excludes_self_and_has_no_duplicates() -> None:CODE
LOWtests/unit/test_git_commit_rows.py58def test_commit_sink_collects_full_footprint_including_non_indexable() -> None:CODE
LOWtests/unit/test_git_commit_rows.py116def test_commit_sink_since_ts_drops_old_commits() -> None:CODE
LOWtests/unit/test_git_commit_rows.py139def test_since_ts_bounds_the_numstat_walk_to_the_surviving_prefix() -> None:CODE
LOWtests/unit/test_git_commit_rows.py162def test_since_ts_newer_than_every_commit_skips_the_numstat_walk() -> None:CODE
LOWtests/unit/test_git_commit_rows.py174def test_commit_sink_default_none_is_noop() -> None:CODE
LOWtests/unit/test_git_commit_rows.py199def test_build_commit_rows_features_and_ordering() -> None:CODE
LOWtests/unit/test_git_commit_rows.py238def test_build_commit_rows_author_experience_is_cumulative() -> None:CODE
LOWtests/unit/test_git_commit_rows.py286def test_build_commit_rows_truncates_subject() -> None:CODE
LOWtests/unit/test_git_commit_rows.py301def test_build_commit_rows_handles_empty_and_no_changes() -> None:CODE
LOWtests/unit/test_git_commit_rows.py320def test_build_commit_rows_committed_at_parsed() -> None:CODE
LOWtests/unit/test_platform_telemetry.py51 def test_do_not_track_blocks_send(self, isolated, monkeypatch: pytest.MonkeyPatch):CODE
LOWtests/unit/test_platform_telemetry.py57 def test_stored_disable_blocks_send(self, isolated, monkeypatch: pytest.MonkeyPatch):CODE
LOWtests/unit/test_platform_telemetry.py80 def test_no_patch_version_leak(self, isolated, monkeypatch: pytest.MonkeyPatch):CODE
LOWtests/unit/test_platform_telemetry.py87 def test_missing_platform_json_sends_null_anon(self, isolated, monkeypatch: pytest.MonkeyPatch):CODE
LOWtests/unit/test_platform_telemetry.py96 def test_debug_prints_does_not_send(CODE
LOWtests/unit/test_blas_threads.py31def test_pins_every_backend_to_one(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWtests/unit/test_blas_threads.py43def test_covers_the_backend_that_actually_costs_the_memory() -> None:CODE
LOWtests/unit/test_blas_threads.py57def test_respects_an_explicit_setting(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWtests/unit/test_blas_threads.py69def test_accepts_a_thread_count(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWtests/unit/test_blas_threads.py96def test_entry_point_pins_before_any_other_import(entry: Path) -> None:CODE
LOWtests/unit/test_git_commit_index.py52def test_load_commit_index_buckets_per_file() -> None:CODE
LOWtests/unit/test_git_commit_index.py87def test_load_commit_index_drops_non_indexable_files() -> None:CODE
LOWtests/unit/test_git_commit_index.py110def test_load_commit_index_captures_multiline_body() -> None:CODE
LOWtests/unit/test_git_commit_index.py142def test_log_format_arg_has_no_real_null_byte() -> None:CODE
LOWtests/unit/test_git_commit_index.py160def test_load_commit_index_returns_empty_on_failure() -> None:CODE
LOWtests/unit/test_git_commit_index.py167def test_load_commit_index_handles_renames() -> None:CODE
LOWtests/unit/test_no_test_path_copies.py164def test_no_new_test_path_predicates() -> None:CODE
LOWtests/unit/test_no_test_path_copies.py175def test_known_copies_still_exist() -> None:CODE
LOWtests/unit/test_no_test_path_copies.py189def test_a_wrapper_is_not_a_copy() -> None:CODE
LOWtests/unit/test_no_test_path_copies.py201def test_shared_module_exports_the_replacements(name: str) -> None:CODE
LOWtests/unit/test_no_bare_type_name_copies.py160def test_no_new_bare_type_name_expressions() -> None:CODE
LOWtests/unit/test_no_bare_type_name_copies.py172def test_known_copies_still_exist() -> None:CODE
LOWtests/unit/test_no_bare_type_name_copies.py187def test_the_shape_is_what_gets_caught() -> None:CODE
LOWtests/unit/test_no_bare_type_name_copies.py203def test_builtin_type_lists_live_on_the_language_specs() -> None:CODE
LOWtests/unit/test_no_bare_type_name_copies.py239def test_shared_module_exports_the_replacements(name: str) -> None:CODE
LOWtests/unit/test_no_hotspot_health_copies.py64def _modules_mentioning_hotspot_health() -> list[pathlib.Path]:CODE
LOWtests/unit/test_no_hotspot_health_copies.py85def test_the_owner_module_is_where_the_arithmetic_lives() -> None:CODE
LOWtests/unit/test_no_hotspot_health_copies.py93def test_every_surface_gets_hotspot_health_from_the_one_owner() -> None:CODE
LOWtests/unit/test_no_hotspot_health_copies.py119def test_the_plumbing_allowlist_has_no_dead_entries(rel: str) -> None:CODE
LOWtests/unit/test_no_hotspot_health_copies.py132def test_the_retired_top_quartile_definition_is_gone() -> None:CODE
LOWtests/unit/test_support_paths.py26def test_example_dirs_are_examples(path: str):CODE
LOWtests/unit/test_support_paths.py43def test_production_paths_are_not_examples(path: str):CODE
LOWtests/unit/test_support_paths.py49def test_doc_dirs_are_support_but_not_examples(path: str):CODE
LOWtests/unit/test_support_paths.py60def test_matching_is_case_insensitive():CODE
LOWtests/unit/test_test_paths.py111def test_test_and_support_are_never_both_true(CODE
LOWtests/unit/test_test_paths.py119def test_related_is_the_union(path: str, language: str | None, expected: str) -> None:CODE
LOWtests/unit/test_test_paths.py124def test_degenerate_paths_are_not_tests(path: str) -> None:CODE
LOWtests/unit/test_test_paths.py128def test_windows_separators_match_posix() -> None:CODE
LOWtests/unit/test_test_paths.py135def test_case_sensitive_rules_stay_case_sensitive() -> None:CODE
LOWtests/unit/test_test_paths.py146def test_camel_prefix_rule_mirrors_the_suffix_rule() -> None:CODE
12245 more matches not shown…
Unused Imports3392 hits · 3055 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py3CODE
LOWtests/unit/test_procutils.py9CODE
LOWtests/unit/test_git_commit_rows.py8CODE
LOWtests/unit/test_platform_telemetry.py8CODE
LOWtests/unit/test_blas_threads.py15CODE
LOWtests/unit/test_git_commit_index.py3CODE
LOWtests/unit/test_no_test_path_copies.py21CODE
LOWtests/unit/test_no_bare_type_name_copies.py28CODE
LOWtests/unit/test_no_hotspot_health_copies.py24CODE
LOWtests/unit/test_support_paths.py3CODE
LOWtests/unit/test_test_paths.py9CODE
LOWtests/unit/test_git_indexer.py3CODE
LOWtests/unit/test_release_manifests.py25CODE
LOWtests/unit/test_structlog_isolation.py13CODE
LOWtests/unit/test_csharp_dead_code_markers.py9CODE
LOWtests/unit/test_no_unranked_truncation.py35CODE
LOWtests/unit/test_ids.py3CODE
LOWtests/unit/test_cache_seal.py3CODE
LOWtests/unit/test_co_change.py3CODE
LOWtests/unit/test_fts_query.py13CODE
LOWtests/unit/test_no_barrel_filename_copies.py1CODE
LOWtests/unit/test_function_blame_rollup.py3CODE
LOWtests/unit/pipeline/test_coverage_ingestion.py8CODE
LOWtests/unit/pipeline/test_tombstone_absent_files.py13CODE
LOW…s/unit/pipeline/test_framework_edge_failure_visible.py11CODE
LOWtests/unit/pipeline/test_generation_progress_split.py10CODE
LOWtests/unit/pipeline/test_phase_timing.py3CODE
LOW…sts/unit/pipeline/test_load_stored_function_mod_p80.py6CODE
LOWtests/unit/pipeline/test_run_generation_test_run.py11CODE
LOWtests/unit/pipeline/test_authoritative_page_types.py21CODE
LOWtests/unit/pipeline/test_git_partial_clone_warning.py3CODE
LOWtests/unit/pipeline/test_decision_source_reporting.py9CODE
LOWtests/unit/pipeline/test_drop_transient_git_signals.py11CODE
LOWtests/unit/pipeline/test_parallel_source_reads.py8CODE
LOWtests/unit/pipeline/test_load_stored_git_meta.py9CODE
LOWtests/unit/pipeline/test_cancellation.py9CODE
LOWtests/unit/pipeline/test_update_graph_convergence.py15CODE
LOW…ts/unit/pipeline/test_incremental_failure_isolation.py11CODE
LOWtests/unit/pipeline/test_resume.py9CODE
LOWtests/unit/pipeline/test_load_stored_coverage_map.py7CODE
LOW…ts/unit/pipeline/test_entry_point_score_persistence.py9CODE
LOWtests/unit/pipeline/test_tombstone_fts_removal.py14CODE
LOW…ts/unit/pipeline/test_init_update_graph_convergence.py16CODE
LOWtests/unit/pipeline/test_modes.py3CODE
LOWtests/unit/pipeline/test_checkpoint.py7CODE
LOWtests/unit/pipeline/test_kg_refresh.py9CODE
LOWtests/unit/pipeline/test_ingestion_parse_cache.py9CODE
LOWtests/unit/upgrade/test_release.py4CODE
LOWtests/unit/upgrade/test_bundled_changelog_sync.py10CODE
LOWtests/unit/upgrade/test_changelog.py3CODE
LOWtests/unit/upgrade/test_update_check_cache.py3CODE
LOWtests/unit/upgrade/test_whats_new.py3CODE
LOWtests/unit/upgrade/test_cli_executor.py9CODE
LOWtests/unit/upgrade/test_manager.py9CODE
LOWtests/unit/upgrade/test_parse_cache_decoupling.py8CODE
LOWtests/unit/ingestion/test_rust_framework_edges.py3CODE
LOWtests/unit/ingestion/test_language_capabilities.py20CODE
LOWtests/unit/ingestion/test_heritage_ancestors.py9CODE
LOWtests/unit/ingestion/test_jvm_type_refs.py7CODE
LOWtests/unit/ingestion/test_rust_resolver.py3CODE
3332 more matches not shown…
Excessive Try-Catch Wrapping976 hits · 964 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py35 except Exception:CODE
LOWtests/conftest.py42 except Exception:CODE
LOWtests/unit/pipeline/test_cancellation.py65 except Exception:CODE
LOWtests/unit/pipeline/test_update_graph_convergence.py71 except Exception:CODE
LOWtests/unit/health/test_dataflow_langs.py29 except Exception:CODE
LOWtests/unit/health/test_complexity_walker.py47 except Exception:CODE
LOWtests/unit/health/test_ff_track_d_exceptions.py31 except Exception:CODE
LOWtests/unit/health/test_ff_track_d_exceptions.py35 except Exception:CODE
MEDIUMtests/unit/health/test_dataflow_facts.py21def _require_python() -> None:CODE
LOWtests/unit/health/test_dataflow_facts.py24 except Exception:CODE
LOWtests/unit/health/test_perf_promotion.py24 except Exception:CODE
MEDIUMtests/unit/health/test_perf_promotion.py21def _require_python() -> None:CODE
LOWtests/unit/health/test_error_handling.py146 except Exception:CODE
LOWtests/unit/health/test_error_handling.py150 except Exception:CODE
LOWtests/unit/health/test_ff_track_bch_complexity.py31 except Exception: # pragma: no cover - depends on optional depsCODE
LOWtests/unit/health/test_refactoring_extract_method.py53 except Exception:STRING
LOWtests/unit/health/test_refactoring_extract_method.py286 except Exception:STRING
MEDIUMtests/unit/health/test_refactoring_extract_method.py50def _require_python() -> None:CODE
MEDIUMtests/unit/health/test_refactoring_extract_method.py283def test_prefix_sum_matches_per_span_reference_go():CODE
MEDIUMtests/unit/health/test_dataflow_cfg.py25def _require_python() -> None:CODE
MEDIUMtests/unit/health/test_dataflow_cfg.py265def f():CODE
LOWtests/unit/health/test_dataflow_cfg.py28 except Exception:CODE
LOWtests/unit/health/test_dataflow_cfg.py447 except Exception:STRING
LOWtests/unit/health/test_perf_promotion_engine.py20 except Exception:CODE
MEDIUMtests/unit/health/test_perf_promotion_engine.py17def _require_python() -> None:CODE
MEDIUMtests/unit/health/test_dataflow_reaching.py24def _require_python() -> None:CODE
LOWtests/unit/health/test_dataflow_reaching.py27 except Exception:CODE
LOWtests/unit/health/test_dataflow_reaching.py255 except Exception:STRING
LOWtests/integration/test_health_perf_benchmark.py70 except Exception:CODE
LOWtests/integration/test_health_perf_benchmark.py110 except Exception:CODE
LOWtests/integration/test_deterministic_generation.py46 except Exception:CODE
LOWtests/integration/test_deterministic_generation.py206 except Exception:CODE
LOWtests/integration/test_deterministic_generation.py294 except Exception:CODE
LOWtests/integration/test_generation_determinism.py51 except Exception:CODE
LOWtests/integration/test_cpp_dead_code.py50 except Exception:CODE
LOWtests/integration/test_health_coverage_integration.py32 except Exception:CODE
LOWtests/integration/test_wiki_idempotence.py61 except Exception:CODE
LOWtests/integration/test_jvm_dead_code.py53 except Exception:CODE
LOWtests/integration/test_dead_code_integration.py31 except Exception:CODE
LOWtests/integration/test_persistence.py100 except Exception:CODE
LOWtests/integration/test_generation_pipeline.py191 except Exception:CODE
LOWtests/integration/persistence/test_sql_job_store_pg.py28 except Exception as exc: # pragma: no cover - skip when Docker missingCODE
MEDIUMtests/integration/persistence/test_sql_job_store_pg.py24def postgres_container():CODE
LOWtests/integration/persistence/test_graph_metrics_pg.py32 except Exception as exc: # pragma: no cover - skip when Docker missingCODE
MEDIUMtests/integration/persistence/test_graph_metrics_pg.py28def postgres_container():CODE
LOWtests/integration/persistence/test_embed_batch_pg.py33 except Exception as exc: # pragma: no cover - skip when Docker / image missingCODE
MEDIUMtests/integration/persistence/test_embed_batch_pg.py29def pgvector_container():CODE
LOWscripts/benchmark_large_repo.py148 except Exception:CODE
LOWscripts/validate_quality.py39 except Exception:CODE
LOWscripts/validate_quality.py180 except Exception as exc:CODE
LOWscripts/benchmark_upgrade.py55 except Exception:CODE
LOWscripts/benchmark_upgrade.py136 except Exception:CODE
LOWscripts/kg_validate/run.py163 except Exception as exc:CODE
LOWpackages/core/src/repowise/core/fsutils.py22 except Exception:CODE
LOWpackages/core/src/repowise/core/procutils.py258 except Exception:CODE
LOWpackages/core/src/repowise/core/procutils.py288 except Exception:CODE
LOWpackages/core/src/repowise/core/procutils.py306 except Exception:CODE
LOWpackages/core/src/repowise/core/procutils.py327 except Exception:CODE
LOWpackages/core/src/repowise/core/procutils.py354 except Exception:CODE
LOW…s/core/src/repowise/core/pipeline/scoped_generation.py285 except Exception as exc:CODE
916 more matches not shown…
Cross-Language Confusion89 hits · 551 pts
SeverityFileLineSnippetContext
HIGHtests/unit/ingestion/test_jvm_type_refs.py224 "package com.foo\nclass Holder { val r: Repo? = null }\n",CODE
HIGHtests/unit/ingestion/test_ts_reexport_dead_code.py99 "pkg/src/comp/search-bar.tsx": "export function SearchBar() {\n return null;\n}\n",CODE
HIGHtests/unit/ingestion/test_ts_reexport_dead_code.py116 "pkg/src/widget.tsx": "export function Widget() {\n return null;\n}\n",CODE
HIGHtests/unit/ingestion/test_ts_framework_edges.py109 "export function getUserHandler() { return null; }\n"CODE
HIGHtests/unit/ingestion/test_bare_name_index_kinds.py163 "import { base } from './base';\nexport const doThing = base.bind(null);\n",CODE
HIGHtests/unit/ingestion/test_spring_framework_edges.py257 " private final User cachedUser = null;\n"CODE
HIGHtests/unit/ingestion/test_fix_shape.py183 removed=[" ctx.push()"],CODE
HIGHtests/unit/ingestion/test_fix_shape.py184 added=[" ctx.push()"],CODE
HIGHtests/unit/ingestion/test_receiver_types.py96 body = "public void Go() { Ocelot.Configuration.Route route = null; }"CODE
HIGHtests/unit/ingestion/test_receiver_types.py384 " fun run() { timeout.toString() }\n}"CODE
HIGHtests/unit/ingestion/test_receiver_types.py392 " fun run() { timeout.toString() }\n}"CODE
HIGH…ts/unit/ingestion/test_return_type_chain_resolution.py342 own = "package a;\nclass Duration { static Duration ofSeconds(int s) { return null; }\n long toNanos() { return 0; }CODE
HIGHtests/unit/ingestion/test_type_head_identifiers.py160 "function f(a: Foo | null) {}\n",CODE
HIGHtests/unit/ingestion/parser/test_method_signatures.py15 b"class Example { V get(K key) { return null; } }",CODE
HIGHtests/unit/ingestion/parser/test_typescript.py477 return null;CODE
HIGHtests/unit/ingestion/parser/test_typescript.py479const Memoized = React.memo(function Inner() { return null; });CODE
HIGHtests/unit/ingestion/parser/test_typescript.py480const Ctx = createContext(null);CODE
HIGHtests/unit/ingestion/parser/test_typescript.py543const AccordionItem = React.forwardRef((props, ref) => null);CODE
HIGHtests/unit/ingestion/parser/test_typescript.py544const Memoized = React.memo(function Inner() { return null; });CODE
HIGHtests/unit/ingestion/parser/test_typescript.py552const Ctx = createContext(null);CODE
HIGHtests/unit/ingestion/parser/test_typescript.py614const AccordionItem = React.forwardRef((props, ref) => null);CODE
HIGHtests/unit/health/test_dataflow_langs.py1010 out.push(r);CODE
HIGHtests/unit/health/test_dataflow_langs.py369 results.push(r);CODE
HIGHtests/unit/health/test_dataflow_langs.py904 results.push(*r);CODE
HIGHtests/unit/health/test_complexity_walker.py215 if (req.query.active && req.user) {CODE
HIGHtests/unit/health/test_ff_track_aefg_perf.py220 b" acc.push(x);\n"CODE
HIGHtests/unit/health/test_perf_dialects.py703 push = "function f(xs){ return xs.reduce((acc, x) => { acc.push(x); return acc; }, []); }"CODE
HIGHtests/unit/health/test_perf_dialects.py1065 "fun m(ids: List<Long>) {\n ids.firstOrNull { repo.findById(it) != null }\n}\n",CODE
HIGHtests/unit/health/test_dataflow_facts.py62 with ctx.push():STRING
HIGHtests/unit/health/test_shell_complexity.py26 assert _ccn("run || exit 1") == 2CODE
HIGHtests/unit/health/test_shell_complexity.py29 assert _ccn("a && b || c") == 3CODE
HIGHtests/unit/health/test_shell_complexity.py29 assert _ccn("a && b || c") == 3CODE
HIGHtests/unit/health/test_dataflow_cfg.py202 with ctx.push():STRING
HIGHtests/unit/health/test_dataflow_cfg.py425 if (dead && hot) return "unified";STRING
HIGHtests/unit/health/test_perf_promotion_engine.py163 out.push(r);CODE
HIGHtests/unit/health/test_dataflow_reaching.py136 with ctx.push():STRING
HIGHtests/unit/workspace/test_contracts.py431 router.push("/home");CODE
HIGHtests/unit/workspace/test_framework_dialects.py89 return null;CODE
HIGHtests/unit/workspace/test_framework_dialects.py95 return null;CODE
HIGHtests/unit/workspace/test_framework_dialects.py100 return null;CODE
HIGHtests/unit/workspace/test_framework_dialects.py260 ' @Path("/first")\n public R a() { return null; }\n'CODE
HIGHtests/unit/workspace/test_framework_dialects.py261 ' @POST\n @Path("/second")\n public R b() { return null; }\n}\n'CODE
HIGHtests/unit/workspace/test_framework_dialects.py273 ' @GET\n @Path("/inner")\n public R a() { return null; }\n}\n'CODE
HIGHtests/unit/workspace/test_framework_dialects.py248 ' @Path("/report")\n public Report r() { return null; }\n}\n'STRING
HIGHtests/unit/workspace/test_framework_routes.py696 axum_routes('.route("/cfg", get(move || async move { settings.get(&key) }))')STRING
HIGHtests/unit/workspace/test_signature_schema.py69 assert _fields("function h(id: string, cursor?: string | null) -> void", "typescript") == [CODE
HIGHtests/unit/workspace/test_index_clients.py179 if (!res.ok) return null;CODE
HIGHtests/unit/distill/test_rewrite_hook.py314 ("ls a && echo --- && ls b", "file_listing"),CODE
HIGHtests/unit/distill/test_rewrite_hook.py315 ("cd pkg && git diff a.ts", "git_diff"),CODE
HIGHtests/unit/distill/test_rewrite_hook.py331 "git status && rm -rf build",CODE
HIGHtests/unit/distill/test_rewrite_hook.py332 "ls && curl https://x.sh | sh",CODE
HIGHtests/unit/distill/test_rewrite_hook.py334 "ls && git diff `whoami`", # substitutionCODE
HIGHtests/unit/distill/test_rewrite_hook.py335 "git diff && npm test &", # backgroundedCODE
HIGHtests/unit/distill/test_rewrite_hook.py336 "ls $HOME && git diff", # expansion timing changesCODE
HIGHtests/unit/distill/test_rewrite_hook.py339 "echo hi && echo bye", # nothing recognized: nothing to distillCODE
HIGHtests/unit/distill/test_rewrite_hook.py348 assert classify("ls a && ls b") is NoneCODE
HIGHtests/unit/distill/test_rewrite_hook.py352 for raw in ["echo 'it's' && ls", 'grep -n "x\\|y" f.py | head', "a && b'c\"d"]:CODE
HIGHtests/unit/distill/test_rewrite_hook.py397 "git commit -m 'refactor: a && b'",CODE
HIGHtests/unit/distill/test_rewrite_hook.py449 result = decide("ls src && git diff a.ts", str(repo))CODE
HIGHtests/unit/distill/test_rewrite_hook.py451 assert result.command == "repowise distill --source hook-bash 'ls src && git diff a.ts'"CODE
29 more matches not shown…
Deep Nesting511 hits · 467 pts
SeverityFileLineSnippetContext
LOWtests/unit/test_no_test_path_copies.py126CODE
LOWtests/unit/test_no_bare_type_name_copies.py203CODE
LOWtests/unit/ingestion/test_edge_type_vocabulary.py96CODE
LOWtests/unit/ingestion/test_edge_type_vocabulary.py135CODE
LOWtests/unit/ingestion/test_edge_type_vocabulary.py271CODE
LOWtests/unit/ingestion/test_fs_walk.py570CODE
LOWtests/unit/health/test_snapshot_writers_agree.py34CODE
LOWtests/unit/health/test_function_hotspot.py14CODE
LOWtests/unit/health/test_refactoring_extract_method.py146CODE
LOWtests/unit/health/test_refactoring_split_file.py129CODE
LOWtests/unit/server/mcp/test_answer_backtick_masking.py145CODE
LOWtests/unit/server/mcp/test_answer_backtick_masking.py161CODE
LOW…unit/server/mcp/test_cross_tool_reference_contracts.py250CODE
LOW…unit/server/mcp/test_cross_tool_reference_contracts.py500CODE
LOWtests/unit/persistence/test_decision_supersession.py50CODE
LOWscripts/gen_plugin_content.py207CODE
LOWscripts/gen_plugin_content.py266CODE
LOWpackages/core/src/repowise/core/cache_seal.py202CODE
LOWpackages/core/src/repowise/core/update_lock.py160CODE
LOWpackages/core/src/repowise/core/repo_config.py142CODE
LOWpackages/core/src/repowise/core/fs_walk.py341CODE
LOWpackages/core/src/repowise/core/pipeline/checkpoint.py145CODE
LOWpackages/core/src/repowise/core/pipeline/persist.py292CODE
LOWpackages/core/src/repowise/core/pipeline/persist.py1504CODE
LOW…ckages/core/src/repowise/core/pipeline/orchestrator.py176CODE
LOWpackages/core/src/repowise/core/pipeline/incremental.py1382CODE
LOW…es/core/src/repowise/core/pipeline/phases/ingestion.py376CODE
LOW…es/core/src/repowise/core/pipeline/phases/ingestion.py711CODE
LOW…ges/core/src/repowise/core/pipeline/phases/analysis.py102CODE
LOW…ges/core/src/repowise/core/pipeline/phases/analysis.py175CODE
LOW…ges/core/src/repowise/core/pipeline/phases/analysis.py278CODE
LOWpackages/core/src/repowise/core/upgrade/manager.py151CODE
LOW…/core/src/repowise/core/ingestion/tsconfig_resolver.py171CODE
LOW…/core/src/repowise/core/ingestion/tsconfig_resolver.py263CODE
LOW…ges/core/src/repowise/core/ingestion/dispatch_edges.py105CODE
LOW…kages/core/src/repowise/core/ingestion/return_types.py22CODE
LOW…kages/core/src/repowise/core/ingestion/import_index.py38CODE
LOWpackages/core/src/repowise/core/ingestion/type_names.py47CODE
LOWpackages/core/src/repowise/core/ingestion/type_names.py118CODE
LOWpackages/core/src/repowise/core/ingestion/parser.py611CODE
LOWpackages/core/src/repowise/core/ingestion/parser.py957CODE
LOWpackages/core/src/repowise/core/ingestion/parser.py1000CODE
LOW…ges/core/src/repowise/core/ingestion/parser_helpers.py34CODE
LOW…ges/core/src/repowise/core/ingestion/parser_helpers.py384CODE
LOW…ages/core/src/repowise/core/ingestion/graph_warmups.py50CODE
LOW…ages/core/src/repowise/core/ingestion/graph_warmups.py115CODE
LOW…ages/core/src/repowise/core/ingestion/graph_warmups.py292CODE
LOWpackages/core/src/repowise/core/ingestion/sfc_source.py227CODE
LOW…ages/core/src/repowise/core/ingestion/call_resolver.py396CODE
LOW…ages/core/src/repowise/core/ingestion/call_resolver.py811CODE
LOW…ages/core/src/repowise/core/ingestion/call_resolver.py866CODE
LOW…ages/core/src/repowise/core/ingestion/call_resolver.py1043CODE
LOW…ages/core/src/repowise/core/ingestion/call_resolver.py1974CODE
LOWpackages/core/src/repowise/core/ingestion/traverser.py894CODE
LOWpackages/core/src/repowise/core/ingestion/traverser.py1070CODE
LOWpackages/core/src/repowise/core/ingestion/traverser.py1154CODE
LOWpackages/core/src/repowise/core/ingestion/traverser.py1173CODE
LOWpackages/core/src/repowise/core/ingestion/traverser.py643CODE
LOW…es/core/src/repowise/core/ingestion/change_detector.py379CODE
LOW…s/core/src/repowise/core/ingestion/git_commit_index.py78CODE
451 more matches not shown…
Over-Commented Block504 hits · 452 pts
SeverityFileLineSnippetContext
LOWtests/unit/test_no_test_path_copies.py61 # `protest/`, `latest/` and `contest/` all counted as tests, whileCOMMENT
LOWtests/unit/test_no_test_path_copies.py81 # Excludes bare `test/` on purpose: `django/test/` and `flask/testing.py`COMMENT
LOWtests/unit/test_no_bare_type_name_copies.py61 # of; in scope so moving it did not move it out of reach.COMMENT
LOWtests/unit/test_no_bare_type_name_copies.py81 # qualifier that is a type rather than a package must not be discarded.COMMENT
LOWtests/unit/ingestion/test_fs_walk.py501 _write(tmp_path, "a/b/c/package.json", "{}") # 4 parts — boundary, keptCOMMENT
LOWtests/unit/ingestion/test_fs_walk.py521# nested repos even when matches are filtered afterwards;COMMENT
LOWtests/unit/ingestion/parser/test_pascal.py221 ) -> None:COMMENT
LOWtests/unit/ingestion/parser/test_typescript.py201 ) -> None:COMMENT
LOWtests/unit/dead_code/test_interfaces.py161 # so the strongest assertion is "no spurious COM clamp masked theCOMMENT
LOWtests/unit/workspace/test_extraction_walk_budget.py161 monkeypatch: pytest.MonkeyPatch,COMMENT
LOWtests/unit/distill/test_rewrite_perf.py121 _fmt = ", ".join(f"{t:.0f}" for t in timings)COMMENT
LOWtests/unit/server/mcp/test_keyless_vector_leg.py241# --------------------------------------------------------------------------COMMENT
LOWtests/unit/server/mcp/test_tool_table_drift.py41 # Header + separator + one line per row.COMMENT
LOWtests/unit/cli/test_pricing_table_agreement.py21from __future__ import annotationsCOMMENT
LOWtests/unit/generation/test_page_confidence.py41)COMMENT
LOWtests/unit/generation/test_page_selection.py81 records = [PageRecord("file_page:src/a.py", "file_page", "src\\a.py", is_template=True)]COMMENT
LOWdocs/design/no-raw-hex-check.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/kg_validate/kg_checks.py21COMMENT
LOWscripts/kg_validate/kg_checks.py41SMALL_REPO_FILES = 10COMMENT
LOWpackages/ui/__tests__/docs/docs-tree.test.tsx861 });COMMENT
LOWpackages/ui/scripts/no-raw-hex-check.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/ui/scripts/ui-gates.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/ui/src/commits/code-evolution-chart.tsx41COMMENT
LOWpackages/ui/src/commits/priority-badge.tsx1import { cn } from "../lib/cn";COMMENT
LOWpackages/ui/src/health/health-file-drawer.tsx261 for (const c of breakdown?.categories ?? []) {COMMENT
LOWpackages/ui/src/graph/symbol-relations.ts21/** Heading per edge type, per side. Both halves of a relation are named, sinceCOMMENT
LOWpackages/ui/src/graph/sigma/sigma-controls.tsx21}: SigmaControlsProps) {COMMENT
LOWpackages/ui/src/graph/sigma/use-sigma.ts61 };COMMENT
LOWpackages/ui/src/wiki/wiki-markdown.tsx181 }COMMENT
LOWpackages/ui/src/docs/docs-tree.tsx281// longest-prefix path matching to guess which module owned a file. It is nowCOMMENT
LOWpackages/ui/src/docs/docs-tree.tsx321 "layer_page",COMMENT
LOWpackages/ui/src/docs/docs-tree.tsx921 );COMMENT
LOWpackages/ui/src/docs/reader-persona.ts1// Reader personas — a client-side lens that filters which sections of aCOMMENT
LOWpackages/ui/src/docs/page-labels.ts1// Display labels for wiki pages — replace raw graph ids with derived names.COMMENT
LOWpackages/ui/src/docs/docs-reader.tsx281}) {COMMENT
LOWpackages/ui/src/docs/doc-nav.ts1// Framework-neutral navigation helpers for the wiki reader.COMMENT
LOWpackages/ui/src/decisions/decisions-table.tsx101 const prefix = linkPrefix ?? `/repos/${repoId}`;COMMENT
LOWpackages/ui/src/decisions/decisions-table.tsx181 render: (d) => <DecisionStatusMark status={d.status} />,COMMENT
LOWpackages/ui/src/lib/layers.ts1// Which layer of the architecture spine a page belongs to, and how to group aCOMMENT
LOWpackages/ui/src/lib/page-types.ts141// ---------------------------------------------------------------------------COMMENT
LOWpackages/ui/src/lib/page-types.ts161 getting_started: "Getting Started",COMMENT
LOWpackages/ui/src/files/file-overview-tab.tsx41 const fixedCount = Object.values(rawFixCounts).filter((n) => n > 0).length;COMMENT
LOWpackages/core/src/repowise/core/rate_limiter.py41COMMENT
LOWpackages/core/src/repowise/core/update_lock.py21COMMENT
LOWpackages/core/src/repowise/core/test_paths.py61# the filename's own case, deliberately: a lowercase ``tests.py`` is theCOMMENT
LOWpackages/core/src/repowise/core/test_paths.py81# the tree requirement costs nothing and the widening would buy nothing.COMMENT
LOWpackages/core/src/repowise/core/fs_walk.py181 # can be asked without the answer depending on the path the callerCOMMENT
LOWpackages/core/src/repowise/core/fs_walk.py201 cycle_pruned.append(d)COMMENT
LOW…s/core/src/repowise/core/pipeline/scoped_generation.py241 async with get_session(session_factory) as session:COMMENT
LOWpackages/core/src/repowise/core/pipeline/persist.py861 Returns ``(deleted_path_count, refusals)``, where a refusal is a one-lineCOMMENT
LOWpackages/core/src/repowise/core/pipeline/persist.py1581 # and file pages are rendered structurally now, so the directive had noCOMMENT
LOW…ckages/core/src/repowise/core/pipeline/orchestrator.py261 # Mode policy: FAST forces ESSENTIAL git indexing and disables docCOMMENT
LOW…ckages/core/src/repowise/core/pipeline/orchestrator.py801 # legitimately emitted zero pages of it.COMMENT
LOW…ckages/core/src/repowise/core/pipeline/orchestrator.py821 has_code_to_group = any(COMMENT
LOWpackages/core/src/repowise/core/pipeline/incremental.py701 try:COMMENT
LOWpackages/core/src/repowise/core/pipeline/incremental.py741 # knowledge a full index had — the stored rows ARE what the last fullCOMMENT
LOWpackages/core/src/repowise/core/pipeline/incremental.py1641 # Drop file-scoped rows for files that have actually been deleted.COMMENT
LOWpackages/core/src/repowise/core/pipeline/incremental.py1661 else {pf.file_info.path for pf in parsed_files or []}COMMENT
LOWpackages/core/src/repowise/core/pipeline/incremental.py1721 # The swept half is not repairable this way, because the sweepsCOMMENT
LOW…es/core/src/repowise/core/pipeline/resume/rehydrate.py61COMMENT
444 more matches not shown…
Cross-File Repetition55 hits · 275 pts
SeverityFileLineSnippetContext
HIGHtests/unit/ingestion/parser/conftest.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_csharp.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_misc.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_swift.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_python.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_kotlin.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_java.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_cpp.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_ruby.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_scala.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_php.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_go.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_typescript.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_luau.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/test_rust.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/ingestion/parser/_helpers.py0unit tests for the unified astparser. tests parse inline byte strings so no filesystem i/o is needed. covers python, typSTRING
HIGHtests/unit/health/test_dataflow_facts.py0def f(ctx, cond): with ctx.push(): if cond: result = 1 else: result = 2 return resultSTRING
HIGHtests/unit/health/test_dataflow_cfg.py0def f(ctx, cond): with ctx.push(): if cond: result = 1 else: result = 2 return resultSTRING
HIGHtests/unit/health/test_dataflow_reaching.py0def f(ctx, cond): with ctx.push(): if cond: result = 1 else: result = 2 return resultSTRING
HIGHtests/unit/server/mcp/conftest.py0unit tests for repowise mcp server tools. tests all 9 mcp tools using an in-memory sqlite database with pre-populated teSTRING
HIGHtests/unit/server/mcp/test_search.py0unit tests for repowise mcp server tools. tests all 9 mcp tools using an in-memory sqlite database with pre-populated teSTRING
HIGHtests/unit/server/mcp/test_why.py0unit tests for repowise mcp server tools. tests all 9 mcp tools using an in-memory sqlite database with pre-populated teSTRING
HIGHtests/unit/server/mcp/test_risk.py0unit tests for repowise mcp server tools. tests all 9 mcp tools using an in-memory sqlite database with pre-populated teSTRING
HIGHtests/unit/server/mcp/test_dead_code.py0unit tests for repowise mcp server tools. tests all 9 mcp tools using an in-memory sqlite database with pre-populated teSTRING
HIGHtests/unit/server/mcp/test_config.py0unit tests for repowise mcp server tools. tests all 9 mcp tools using an in-memory sqlite database with pre-populated teSTRING
HIGHtests/unit/server/mcp/test_context.py0unit tests for repowise mcp server tools. tests all 9 mcp tools using an in-memory sqlite database with pre-populated teSTRING
HIGHtests/unit/server/mcp/test_overview.py0unit tests for repowise mcp server tools. tests all 9 mcp tools using an in-memory sqlite database with pre-populated teSTRING
HIGHtests/unit/server/mcp/test_health.py0unit tests for repowise mcp server tools. tests all 9 mcp tools using an in-memory sqlite database with pre-populated teSTRING
HIGHtests/unit/test_providers/test_openai_provider.py0unit tests for openrouterprovider. all tests mock the asyncopenai client — no real api calls are made.STRING
HIGHtests/unit/test_providers/test_kimi_provider.py0unit tests for openrouterprovider. all tests mock the asyncopenai client — no real api calls are made.STRING
HIGHtests/unit/test_providers/test_deepseek_provider.py0unit tests for openrouterprovider. all tests mock the asyncopenai client — no real api calls are made.STRING
HIGHtests/unit/test_providers/test_openrouter_provider.py0unit tests for openrouterprovider. all tests mock the asyncopenai client — no real api calls are made.STRING
HIGHtests/unit/generation/test_page_confidence.py0a provider that fails the way a real outage does: every call raises.STRING
HIGHtests/unit/generation/test_overview_architecture_map.py0a provider that fails the way a real outage does: every call raises.STRING
HIGHtests/unit/generation/test_stub_on_provider_error.py0a provider that fails the way a real outage does: every call raises.STRING
HIGH…es/core/src/repowise/core/pipeline/phases/ingestion.py0pipeline analysis phase. extracted from the former monolithic ``orchestrator.py``; ``run_pipeline`` (in orchestrator.py)STRING
HIGHpackages/core/src/repowise/core/pipeline/phases/git.py0pipeline analysis phase. extracted from the former monolithic ``orchestrator.py``; ``run_pipeline`` (in orchestrator.py)STRING
HIGH…s/core/src/repowise/core/pipeline/phases/generation.py0pipeline analysis phase. extracted from the former monolithic ``orchestrator.py``; ``run_pipeline`` (in orchestrator.py)STRING
HIGH…ges/core/src/repowise/core/pipeline/phases/analysis.py0pipeline analysis phase. extracted from the former monolithic ``orchestrator.py``; ``run_pipeline`` (in orchestrator.py)STRING
HIGH…kages/core/src/repowise/core/analysis/decision_gate.py0back-compat façade — moved to ``repowise.core.analysis.decisions.evolution``. import from the new path; this re-export kSTRING
HIGH…core/src/repowise/core/analysis/decision_provenance.py0back-compat façade — moved to ``repowise.core.analysis.decisions.evolution``. import from the new path; this re-export kSTRING
HIGH…/src/repowise/core/analysis/decision_semantic_match.py0back-compat façade — moved to ``repowise.core.analysis.decisions.evolution``. import from the new path; this re-export kSTRING
HIGH…/core/src/repowise/core/analysis/decision_extractor.py0back-compat façade — moved to ``repowise.core.analysis.decisions.evolution``. import from the new path; this re-export kSTRING
HIGH…/core/src/repowise/core/analysis/decision_evolution.py0back-compat façade — moved to ``repowise.core.analysis.decisions.evolution``. import from the new path; this re-export kSTRING
HIGH…src/repowise/core/workspace/extractors/grpc/dialect.py0return the contracts found in *ctx* (may be empty).STRING
HIGH…src/repowise/core/workspace/extractors/http/dialect.py0return the contracts found in *ctx* (may be empty).STRING
HIGH…src/repowise/core/workspace/extractors/data/dialect.py0return the contracts found in *ctx* (may be empty).STRING
HIGHpackages/core/src/repowise/core/persistence/crud/git.py0crud operations for the repository domain (repowise persistence layer). split out of the former monolithic ``crud.py``; STRING
HIGH…src/repowise/core/persistence/crud/external_systems.py0crud operations for the repository domain (repowise persistence layer). split out of the former monolithic ``crud.py``; STRING
HIGH…/src/repowise/core/persistence/crud/knowledge_graph.py0crud operations for the repository domain (repowise persistence layer). split out of the former monolithic ``crud.py``; STRING
HIGH…s/core/src/repowise/core/persistence/crud/decisions.py0crud operations for the repository domain (repowise persistence layer). split out of the former monolithic ``crud.py``; STRING
HIGH…kages/core/src/repowise/core/persistence/crud/graph.py0crud operations for the repository domain (repowise persistence layer). split out of the former monolithic ``crud.py``; STRING
HIGH…ckages/core/src/repowise/core/persistence/crud/chat.py0crud operations for the repository domain (repowise persistence layer). split out of the former monolithic ``crud.py``; STRING
HIGH…kages/core/src/repowise/core/persistence/crud/pages.py0crud operations for the repository domain (repowise persistence layer). split out of the former monolithic ``crud.py``; STRING
HIGH…/core/src/repowise/core/persistence/crud/repository.py0crud operations for the repository domain (repowise persistence layer). split out of the former monolithic ``crud.py``; STRING
Modern Structural Boilerplate234 hits · 236 pts
SeverityFileLineSnippetContext
LOWtests/unit/pipeline/test_generation_progress_split.py39 def set_cost(self, total_cost: float) -> None:CODE
LOWtests/unit/server/mcp/test_mcp_exclude_filter.py155def _set_excluded(monkeypatch, tmp_path, pattern: str) -> None:CODE
LOWtests/unit/server/mcp/test_hotspot_health_surfaces.py24async def _set_hotspots(session, repo_id: str, paths: set[str]) -> None:CODE
LOWtests/unit/cli/test_workspace_cmd.py463 def _setup(self, root: Path) -> None:CODE
LOWtests/unit/persistence/conftest.py58__all__ = ["insert_repo", "make_page_kwargs", "make_repo_kwargs"]CODE
LOWpackages/core/src/repowise/core/co_change.py30__all__ = [CODE
LOWpackages/core/src/repowise/core/cache_seal.py30__all__ = [CODE
LOWpackages/core/src/repowise/core/cancellation.py63def set_active_token(token: CancellationToken | None) -> None:CODE
LOWpackages/core/src/repowise/core/docs_mode.py19__all__ = ["DOCS_MODES", "DocsMode", "docs_mode_state_fields", "resolve_docs_mode"]CODE
LOWpackages/core/src/repowise/core/support_paths.py16__all__ = ["is_example_path", "is_support_path"]CODE
LOWpackages/core/src/repowise/core/fs_walk.py49__all__ = ["PRUNED_DIRS", "PRUNED_DIRS_DERIVED", "WalkSnapshot", "iter_glob", "walk_repo"]CODE
LOWpackages/core/src/repowise/core/pipeline/checkpoint.py38__all__ = [CODE
LOWpackages/core/src/repowise/core/pipeline/__init__.py30__all__ = [CODE
LOWpackages/core/src/repowise/core/pipeline/modes.py25__all__ = ["OrchestratorMode"]CODE
LOWpackages/core/src/repowise/core/pipeline/fix_rollups.py35__all__ = ["apply_fix_rollups"]CODE
LOW…es/core/src/repowise/core/pipeline/resume/rehydrate.py28__all__ = [CODE
LOW…ges/core/src/repowise/core/pipeline/resume/__init__.py23__all__ = [CODE
LOWpackages/core/src/repowise/core/upgrade/release.py173__all__ = [CODE
LOWpackages/core/src/repowise/core/upgrade/version.py62__all__ = [CODE
LOWpackages/core/src/repowise/core/upgrade/registry.py82__all__ = ["MIGRATIONS", "Migration", "migrations_between"]CODE
LOWpackages/core/src/repowise/core/upgrade/__init__.py28__all__ = [CODE
LOWpackages/core/src/repowise/core/upgrade/changelog.py144__all__ = [CODE
LOWpackages/core/src/repowise/core/upgrade/manager.py242__all__ = ["UpgradeContext", "apply_auto", "assess", "stamp"]CODE
LOWpackages/core/src/repowise/core/upgrade/verdict.py83__all__ = [CODE
LOW…/core/src/repowise/core/ingestion/python_local_refs.py49__all__ = ["extract_python_local_refs"]CODE
LOWpackages/core/src/repowise/core/ingestion/__init__.py35__all__ = [CODE
LOW…ckages/core/src/repowise/core/ingestion/parse_cache.py46__all__ = ["ParseCache", "parser_fingerprint"]CODE
LOW…e/src/repowise/core/ingestion/git_indexer/co_change.py35__all__ = ["compute_co_changes_and_entropy"]CODE
LOW…e/src/repowise/core/ingestion/git_indexer/fix_shape.py49__all__ = ["SHAPE_KINDS", "classify_fix_shape", "is_code_path", "is_test_path"]CODE
LOW…core/src/repowise/core/ingestion/git_indexer/enrich.py27__all__ = [CODE
LOW…ore/src/repowise/core/ingestion/git_indexer/records.py14__all__ = [CODE
LOW…re/src/repowise/core/ingestion/git_indexer/__init__.py62__all__ = [CODE
LOW…/repowise/core/ingestion/git_indexer/function_blame.py33__all__ = [CODE
LOW…re/src/repowise/core/ingestion/git_indexer/backfill.py32__all__ = ["BACKFILL_PHASE", "backfill_full_tier"]CODE
LOW…c/repowise/core/ingestion/git_indexer/prior_defects.py51__all__ = ["FixCommit", "FixWalk", "PriorDefects", "collect_fix_commits", "compute_prior_defects"]CODE
LOW…ore/src/repowise/core/ingestion/git_indexer/indexer.py46__all__ = ["GitIndexer"]CODE
LOW…epowise/core/ingestion/git_indexer/agent_provenance.py76__all__ = [CODE
LOW…/src/repowise/core/ingestion/git_indexer/fix_events.py37__all__ = ["build_fix_events"]CODE
LOW…rc/repowise/core/ingestion/git_indexer/file_history.py67__all__ = ["DECAY_REFRESH_KEYS", "index_file", "new_meta"]CODE
LOW…/core/src/repowise/core/ingestion/git_indexer/tiers.py15__all__ = ["GitIndexTier"]CODE
LOW…/src/repowise/core/ingestion/external_systems/cmake.py784__all__ = [CODE
LOW…c/repowise/core/ingestion/external_systems/__init__.py24__all__ = [CODE
LOW…/src/repowise/core/ingestion/external_systems/bazel.py315__all__ = [CODE
LOW…kages/core/src/repowise/core/ingestion/graph/_edges.py58 def update_co_change_edges(self, updated_meta: dict, min_count: int = 3) -> None:CODE
LOW…src/repowise/core/ingestion/graph/_centrality_cache.py41__all__ = ["CentralityCache", "subgraph_signature"]CODE
LOW…ges/core/src/repowise/core/ingestion/graph/__init__.py41__all__ = ["GraphBuilder", "_stem_priority", "build_stem_map"]CODE
LOW…ages/core/src/repowise/core/ingestion/graph/builder.py141 def set_tsconfig_resolver(self, resolver: Any) -> None:CODE
LOW…ages/core/src/repowise/core/ingestion/graph/builder.py196 def set_source_map(self, source_map: dict[str, bytes] | None) -> None:CODE
LOW…epowise/core/ingestion/lightweight_imports/__init__.py62__all__ = [CODE
LOW…core/src/repowise/core/ingestion/languages/__init__.py15__all__ = ["REGISTRY", "LanguageSpec"]CODE
LOW…rc/repowise/core/ingestion/languages/specs/__init__.py147__all__ = ["ALL_SPECS"]CODE
LOW…rc/repowise/core/ingestion/framework_edges/__init__.py106__all__ = [CODE
LOW…src/repowise/core/ingestion/resolvers/kotlin_gradle.py18__all__ = [CODE
LOW…core/src/repowise/core/ingestion/resolvers/__init__.py86__all__ = [CODE
LOW…src/repowise/core/ingestion/resolvers/cpp_workspace.py455__all__ = [CODE
LOW…c/repowise/core/ingestion/resolvers/dotnet/__init__.py20__all__ = [CODE
LOW…/src/repowise/core/ingestion/dynamic_hints/__init__.py6__all__ = ["DynamicEdge", "DynamicHintExtractor", "HintRegistry"]CODE
LOW…ore/src/repowise/core/ingestion/dynamic_hints/_walk.py26__all__ = ["PRUNED_DIRS", "iter_glob"]CODE
LOW…ore/src/repowise/core/ingestion/extractors/__init__.py15__all__ = [CODE
LOW…epowise/core/ingestion/extractors/heritage/__init__.py124__all__ = ["HERITAGE_EXTRACTORS", "extract_heritage", "heritage_node_types_for"]CODE
174 more matches not shown…
AI Slop Vocabulary60 hits · 176 pts
SeverityFileLineSnippetContext
MEDIUMpackage-lock.json15570 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz",CODE
LOWtests/unit/ingestion/test_typescript_resolver.py739 # resolver's job upstream; here we just return None.COMMENT
MEDIUM…sts/unit/ingestion/test_git_commit_rows_integration.py127 # robust assertion; the precise boundary is covered by the unit test.)COMMENT
MEDIUMtests/unit/health/test_dataflow_reaching.py415 # compute_def_use + compute_reaching can be driven without the file harness.STRING
MEDIUMtests/unit/server/test_mcp_decision_graph.py113 content="# Test Repo\n\nA comprehensive test repository.",CODE
MEDIUMtests/unit/server/test_job_executor.py188 """Unknown / missing / malformed style resolves to the comprehensive default."""STRING
MEDIUMtests/unit/server/mcp/conftest.py103 content="# Test Repo\n\nA comprehensive test repository.",CODE
MEDIUMtests/unit/server/mcp/test_health.py157 # Per-file leverage: (8 - score) * nloc, 0 once healthy.COMMENT
MEDIUMtests/unit/server/mcp/test_health.py445 # Big and low-scoring, so it outranks the seeded worst file on leverage —COMMENT
MEDIUMtests/unit/cli/test_update_pending_cleanup.py121 # index_repo_full does not persist state.json in the test harness; recordCOMMENT
MEDIUMtests/unit/cli/test_update_up_to_date_lock.py65 # index_repo_full does not persist state.json in the test harness; recordCOMMENT
MEDIUMtests/unit/sessions/test_efficacy.py328 # The paired record the harness also writes for the same firing.COMMENT
MEDIUMtests/unit/sessions/test_adapter_seam.py118# The three drive paths, all reached by a second harnessCOMMENT
MEDIUMtests/unit/sessions/test_adapter_seam.py256# Intents: the harness's key names live on the adapter, not in a consumerCOMMENT
MEDIUMscripts/kg_validate/matrix.toml184# resolution at harness-friendly size.COMMENT
MEDIUMscripts/kg_validate/matrix.toml191# --- Structural-mode batch (no resolver; harness-only acceptance) ---COMMENT
MEDIUMpackages/ui/src/health/findings-view.tsx229 // not group size, so "Leverage" sorted stays leverage-led inside and out.COMMENT
MEDIUM…/repowise/core/ingestion/git_indexer/function_blame.py226 # parser robust to out-of-order line emission from --incremental.COMMENT
MEDIUM…ges/core/src/repowise/core/ingestion/languages/spec.py51 # Consumed by the KG validation harness (density floors, honesty checks);COMMENT
MEDIUM…e/src/repowise/core/ingestion/extractors/visibility.py413 # nodes — but textual matching is robust across grammar versions.COMMENT
MEDIUMpackages/core/src/repowise/core/analysis/kg_curation.py1078# The harness signal is "this test file *depends on* that one" — typeCOMMENT
MEDIUMpackages/core/src/repowise/core/analysis/kg_curation.py1082# wiring is not harness evidence. "heritage" used to be a third member and wasCOMMENT
MEDIUMpackages/core/src/repowise/core/analysis/kg_curation.py70# harness uses, calibrated on the 13-repo matrix: express (1.89, broken CJSCOMMENT
MEDIUMpackages/core/src/repowise/core/analysis/kg_curation.py1167 # consumers (UI, harness) can see the degradation level.COMMENT
MEDIUMpackages/core/src/repowise/core/analysis/kg_curation.py1232 # Shared test harness files — base classes and helpers imported by twoCOMMENT
MEDIUMpackages/core/src/repowise/core/analysis/kg_curation.py1272 # Drop harness files unless that would leave nothing. OneCOMMENT
MEDIUMpackages/core/src/repowise/core/analysis/kg_curation.py1273 # single-target import from another test file is already harnessCOMMENT
MEDIUM…core/src/repowise/core/analysis/dead_code/constants.py500 # `#[cfg(test)] mod tests;` and the Cargo test harness, not production imports.COMMENT
MEDIUM…/core/src/repowise/core/analysis/dead_code/analyzer.py423 # ---- libFuzzer / Honggfuzz / AFL fuzz harness entries ------------COMMENT
MEDIUM…se/core/analysis/health/biomarkers/untested_hotspot.py59 # Not enough leverage to flag — would over-trigger onCOMMENT
MEDIUM…wise/core/analysis/health/complexity/class_analysis.py262 # keys off that index directly (robust to duplicate method names, which aCOMMENT
MEDIUMpackages/core/src/repowise/core/distill/corrections.py48#: stringly (cancellations, rejections, permission denials, harness errors)COMMENT
MEDIUMpackages/core/src/repowise/core/distill/corrections.py218 # rejections, and harness errors are neither failure nor success.COMMENT
MEDIUM…s/core/src/repowise/core/sessions/adapters/registry.py27#: The harness assumed when a caller names none.COMMENT
MEDIUM…kages/core/src/repowise/core/sessions/adapters/base.py31#: A consumer asks for an intent; the adapter owns which of its harness'sCOMMENT
MEDIUM…kages/core/src/repowise/core/sessions/adapters/base.py32#: key names spot it, so harness vocabulary never leaks into a miner.COMMENT
MEDIUM…kages/core/src/repowise/core/sessions/miners/demand.py236 # a second harness's discovery may fail in ways OSError does not name.COMMENT
MEDIUMpackages/core/src/repowise/core/generation/models.py294 # ``generation.styles.resolve_style``. "comprehensive" (default) is inert andCOMMENT
MEDIUM…re/src/repowise/core/generation/page_generator/core.py169 # Resolve the wiki style once. "comprehensive" (default) is inert, so thisCOMMENT
MEDIUM…re/src/repowise/core/generation/page_generator/core.py536 # styles, so default ("comprehensive") pages keep byte-identical metadata.COMMENT
MEDIUM…s/core/src/repowise/core/generation/styles/registry.py33# Built-in styles (see WIKI_STYLES_PLAN.md D1). ``comprehensive`` is inert byCOMMENT
MEDIUM…s/core/src/repowise/core/generation/styles/registry.py160 """Resolve a style name to a :class:`StyleSpec`, defaulting to ``comprehensive``.STRING
MEDIUM…s/server/src/repowise/server/mcp_server/tool_health.py1569 # ``kpis``, the module rollup, the leverage view and the churn quadrantCOMMENT
MEDIUM…s/server/src/repowise/server/mcp_server/tool_health.py1784 # set would report no plans on a file while the highest-leverageCOMMENT
MEDIUM…s/server/src/repowise/server/mcp_server/tool_health.py1933 # The one list whose entire purpose is leverage ranking, so it is theCOMMENT
MEDIUM…src/repowise/server/mcp_server/tool_context/targets.py330 # counts are small, so picking in Python is robust and cheap.COMMENT
MEDIUMpackages/cli/src/repowise/cli/agent_adapters/codex.py84 #: nothing to the Read and Grep surfaces for this harness. That is theCOMMENT
MEDIUM…ckages/cli/src/repowise/cli/agent_adapters/__init__.py23#: **This mapping is the whole cost of adding a harness.** Payload parsing,COMMENT
MEDIUM…ckages/cli/src/repowise/cli/agent_adapters/__init__.py34#: because it was the only harness when the hooks were written.COMMENT
MEDIUMpackages/cli/src/repowise/cli/agent_adapters/base.py30 #: harness", and an unattributable count is not written at all.COMMENT
MEDIUMpackages/cli/src/repowise/cli/agent_adapters/base.py155 #: original harness does (``hook-bash`` / ``hook-powershell``). DeclaredCOMMENT
MEDIUMpackages/cli/src/repowise/cli/agent_adapters/base.py171 #: harness is assumed unable to replace until its adapter says otherwise,COMMENT
MEDIUMpackages/cli/src/repowise/cli/agent_adapters/base.py184 #: harness that calls its editor ``apply_patch`` needs no branch of itsCOMMENT
MEDIUM…ges/cli/src/repowise/cli/agent_adapters/claude_code.py49 #: The only harness observed so far whose PostToolUse protocol can replaceCOMMENT
LOWpackages/cli/src/repowise/cli/commands/costs_cmd.py136 # would just return an empty result and confuse the user.COMMENT
MEDIUM…s/cli/src/repowise/cli/commands/augment_cmd/command.py109#: dispatcher carries no tool-name literals and a third harness needs no branchCOMMENT
MEDIUM…s/cli/src/repowise/cli/commands/augment_cmd/command.py386 # the tool output, and not every harness's protocol can honour that.COMMENT
LOW…es/cli/src/repowise/cli/commands/augment_cmd/search.py400#: these helpers cannot just return ``None`` on failure: that would turn aCOMMENT
LOW…ages/cli/src/repowise/cli/commands/init_cmd/command.py1206 # resolve_provider / interactive provider selection may have just setCOMMENT
MEDIUM…epowise/cli/commands/health_cmd/refactoring_targets.py93 # The order is the canonical recommendation rank (benefit and leverage,COMMENT
Hallucination Indicators13 hits · 160 pts
SeverityFileLineSnippetContext
CRITICALtests/unit/workspace/test_framework_dialects.py82@io.swagger.v3.oas.annotations.tags.Tag(name = "Account")CODE
CRITICALtests/unit/test_providers/test_edenai_provider.py204 mock_client.return_value.chat.completions.create.assert_not_called()CODE
CRITICALtests/unit/test_providers/test_openai_provider.py365 mock_client.return_value.chat.completions.create.assert_not_called()CODE
CRITICALtests/unit/test_providers/test_openai_provider.py380 mock_client.return_value.chat.completions.create.assert_not_called()CODE
CRITICALtests/unit/test_providers/test_openai_provider.py391 mock_client.return_value.chat.completions.create.assert_not_called()CODE
CRITICALtests/unit/test_providers/test_openai_provider.py303 mock_client.return_value.chat.completions.create.assert_not_called()CODE
CRITICALtests/unit/test_providers/test_ollama_provider.py105 provider._client.chat.completions.create.assert_not_called()CODE
CRITICALtests/unit/test_providers/test_kimi_provider.py183 mock_client.return_value.chat.completions.create.assert_called_once()CODE
CRITICALtests/unit/test_providers/test_kimi_provider.py280 mock_client.return_value.chat.completions.create.assert_not_called()CODE
CRITICALtests/unit/test_providers/test_deepseek_provider.py177 mock_client.return_value.chat.completions.create.assert_called_once()CODE
CRITICALtests/unit/test_providers/test_deepseek_provider.py203 mock_client.return_value.chat.completions.create.assert_not_called()CODE
CRITICALtests/unit/test_providers/test_openrouter_provider.py346 mock_client.return_value.chat.completions.create.assert_not_called()CODE
CRITICALtests/unit/test_providers/test_openrouter_provider.py327 mock_client.return_value.chat.completions.create.assert_not_called()CODE
Modern AI Meta-Vocabulary40 hits · 123 pts
SeverityFileLineSnippetContext
MEDIUMtests/unit/test_test_paths.py80 # scaffolding tokens missed because those only count inside a test tree.COMMENT
MEDIUMtests/unit/server/mcp/test_code_rationale.py212 "# The symbol cap is 40 because dense files flood the context window.\n"STRING
MEDIUMdocs/architecture/ARCHITECTURE.md126│ │ │ │ ├── context_assembler.py# context assembly (RAG + graph + git + source)CODE
MEDIUMdocs/architecture/chat.md197. [Agentic Loop](#7-agentic-loop)CODE
MEDIUMdocs/architecture/language-support.md147 parser.py # ASTParser (language-agnostic orchestration)CODE
MEDIUMpackages/core/src/repowise/core/test_paths.py68# Directories that hold the scaffolding rather than the tests. These only countCOMMENT
MEDIUMpackages/core/src/repowise/core/test_paths.py201 # token, a test- or support-shaped filename, or a scaffolding dir beneath itCOMMENT
MEDIUMpackages/core/src/repowise/core/test_paths.py254 # A scaffolding directory that needs no test tree around it settles theCOMMENT
MEDIUMpackages/core/src/repowise/core/test_paths.py264 # scaffolding directory demotes it to support.COMMENT
MEDIUMpackages/core/src/repowise/core/upgrade/version.py59#: state.json key holding the embedding model id the vectors were built with.COMMENT
MEDIUMpackages/core/src/repowise/core/upgrade/manager.py105 # be format-current yet hold vectors from a different embedding model (#426),COMMENT
MEDIUMpackages/core/src/repowise/core/ingestion/parser.py681 # scaffolding, not a runtime variable in the symbol graph.COMMENT
MEDIUM…re/src/repowise/core/ingestion/dynamic_hints/dotnet.py102 # in microservice repos, so we emit dynamic edges to *every*COMMENT
MEDIUMpackages/core/src/repowise/core/analysis/kg_curation.py1628 # Recognised scaffolding earns a real role instead of a bare nameCOMMENT
MEDIUM…core/src/repowise/core/analysis/decisions/extractor.py1163 # Anti-hallucination substring gate (Phase 1D)COMMENT
MEDIUM…core/src/repowise/core/analysis/decisions/extractor.py149 # anti-hallucination substring gate (Phase 1D).COMMENT
MEDIUM…core/src/repowise/core/analysis/decisions/extractor.py1310 # Raw per-source pool, then the anti-hallucination gate.COMMENT
MEDIUM…ore/src/repowise/core/analysis/decisions/provenance.py147# Anti-hallucination substring gateCOMMENT
MEDIUMpackages/core/src/repowise/core/workspace/update.py632# Workspace update orchestrationCOMMENT
MEDIUMpackages/core/src/repowise/core/persistence/models.py868 # Verification (anti-hallucination gate, Phase 1D). Aggregate over theCOMMENT
MEDIUM…ages/core/src/repowise/core/generation/interlinking.py30# qualified names. The same expression used by the hallucinationCOMMENT
MEDIUM…ages/core/src/repowise/core/generation/interlinking.py195# Top-level orchestrationCOMMENT
MEDIUMpackages/core/src/repowise/core/generation/models.py279 # RAG search is bypassed entirely until the vector store has at leastCOMMENT
MEDIUMpackages/core/src/repowise/core/generation/models.py525 # cross-run reuse can key on it even when the rendered prompt (RAGCOMMENT
MEDIUM…/core/src/repowise/core/generation/well_known_files.py21# scaffolding that shows up in almost every repo, where the filename alone isCOMMENT
MEDIUM…re/src/repowise/core/generation/page_generator/core.py226 # generate_all — orchestration (delegates to orchestrate.py)COMMENT
MEDIUM…repowise/core/generation/page_generator/orchestrate.py709 # next level's RAG search depends on these landing in the store.COMMENT
MEDIUM…repowise/core/generation/page_generator/orchestrate.py710 # Embedding is a RAG enhancement, not load-bearing, so a failure mustCOMMENT
MEDIUM…repowise/core/generation/page_generator/orchestrate.py618 # embedder round-trip and the level drains before the next level's RAGCOMMENT
MEDIUM…/repowise/core/generation/page_generator/validation.py448 # Whole-name hallucinations — the high-signal case — areCOMMENT
MEDIUM…se/core/generation/onboarding/subkinds/key_concepts.py607 # identical from outside, and a scaffolding list that stops matchingCOMMENT
MEDIUM…se/core/generation/onboarding/subkinds/key_concepts.py608 # anything reads the same as a repository with no scaffolding in it.COMMENT
MEDIUMpackages/server/src/repowise/server/app.py117 # Honour the indexed embedding model so serve doesn't silently rebuildCOMMENT
MEDIUMpackages/server/src/repowise/server/routers/chat.py244 # agentic loop internally (e.g. Gemini for thought_signature).COMMENT
MEDIUM…rver/src/repowise/server/mcp_server/_answer_context.py223 return "## Context scaffolding\n\n" + "\n".join(f"- {s}" for s in sections) + "\n"CODE
MEDIUM…ckages/server/src/repowise/server/mcp_server/_state.py40# initialise we still fall back to MockEmbedder (so non-RAG tools stay up) butCOMMENT
MEDIUM…s/server/src/repowise/server/mcp_server/tool_symbol.py88# can never blow up the agent's context window. Set to ~18 KB of source:COMMENT
MEDIUM…r/src/repowise/server/mcp_server/tool_answer/config.py169# plausible and (b) synthesis hallucination on tangential top hits.COMMENT
MEDIUM…r/src/repowise/server/mcp_server/tool_answer/answer.py658 # dropped before formatting, so the prompt never carries hollow scaffolding.COMMENT
MEDIUMpackages/api-client/src/chat.test.ts35 // running the agentic loop against a body nobody reads.COMMENT
Structural Annotation Overuse62 hits · 107 pts
SeverityFileLineSnippetContext
LOWplugins/claude-code/commands/init.md10## Step 1: Check if repowise is installedCOMMENT
LOWplugins/claude-code/commands/init.md26## Step 2: Check if this repo is already indexedCOMMENT
LOWplugins/claude-code/commands/init.md37## Step 3: Offer the mode, but do not block on itCOMMENT
LOWplugins/claude-code/commands/init.md169## Step 4: Provider selection (model-written wiki only)COMMENT
LOWplugins/claude-code/commands/init.md207## Step 5: ExclusionsCOMMENT
LOWplugins/claude-code/commands/init.md215## Step 6: Run itCOMMENT
LOWplugins/claude-code/commands/init.md229## Step 7: Post-setupCOMMENT
LOWplugins/shared/commands/init.md11## Step 1: Check if repowise is installedCOMMENT
LOWplugins/shared/commands/init.md27## Step 2: Check if this repo is already indexedCOMMENT
LOWplugins/shared/commands/init.md38## Step 3: Offer the mode, but do not block on itCOMMENT
LOWplugins/shared/commands/init.md170## Step 4: Provider selection (model-written wiki only)COMMENT
LOWplugins/shared/commands/init.md208## Step 5: ExclusionsCOMMENT
LOWplugins/shared/commands/init.md216## Step 6: Run itCOMMENT
LOWplugins/shared/commands/init.md230## Step 7: Post-setupCOMMENT
LOWwebsite/getting-started.md99### Step 1: Install the pluginCOMMENT
LOWwebsite/getting-started.md108### Step 2: Index your repoCOMMENT
LOWwebsite/getting-started.md173### Step 1: Install repowiseCOMMENT
LOWwebsite/getting-started.md179### Step 2: Set your API keyCOMMENT
LOWwebsite/getting-started.md187### Step 3: Index your repoCOMMENT
LOWwebsite/getting-started.md196### Step 4: Connect Claude CodeCOMMENT
LOWwebsite/getting-started.md212### Step 1: Install repowise and CodexCOMMENT
LOWwebsite/getting-started.md221### Step 2: Index your repoCOMMENT
LOWwebsite/getting-started.md230### Step 3: Start CodexCOMMENT
LOWwebsite/getting-started.md244### Step 1: Install and set upCOMMENT
LOWwebsite/getting-started.md251### Step 2: Index your repoCOMMENT
LOWwebsite/getting-started.md258### Step 3: Start the web dashboardCOMMENT
LOWwebsite/getting-started.md266### Step 4: Start the MCP server (optional)COMMENT
LOWtests/integration/test_mcp.py351 # Step 1: Get overviewCOMMENT
LOWtests/integration/test_mcp.py358 # Step 2: Drill into auth module via get_context.COMMENT
LOWtests/integration/test_mcp.py367 # Step 3: Get file contextCOMMENT
LOWtests/integration/test_mcp.py374 # Step 4: Look up a symbolCOMMENT
LOWdocs/architecture/language-support.md180#### Step 1: Add a `LanguageSpec` moduleCOMMENT
LOWdocs/architecture/language-support.md248#### Step 2: Add the `LanguageTag`COMMENT
LOWdocs/architecture/language-support.md256#### Step 3: Write a tree-sitter query fileCOMMENT
LOWdocs/architecture/language-support.md286#### Step 4: Add a `LanguageConfig` entryCOMMENT
LOWdocs/architecture/language-support.md307#### Step 5: Add the tree-sitter grammar dependencyCOMMENT
LOW…/core/src/repowise/core/ingestion/tsconfig_resolver.py149 # Step 1: try path alias entries.COMMENT
LOW…/core/src/repowise/core/ingestion/tsconfig_resolver.py159 # Step 2: baseUrl-only fallback.COMMENT
LOWpackages/core/src/repowise/core/workspace/update.py898 # Step 3: Save workspace config with updated timestampsCOMMENT
LOWpackages/core/src/repowise/core/workspace/update.py902 # Step 4: Run cross-repo hooks (Phase 3/4 placeholder). ``run_hooks`` letsCOMMENT
LOWpackages/core/src/repowise/core/workspace/update.py683 # Step 1: Determine which repos are staleCOMMENT
LOWpackages/core/src/repowise/core/workspace/update.py695 # Step 0: Sync ``last_commit_at_index`` from each repo's state.json soCOMMENT
LOWpackages/core/src/repowise/core/workspace/update.py761 # Step 2: Update stale repos (parallel with concurrency limit)COMMENT
LOWpackages/core/src/repowise/core/workspace/cross_repo.py426 # Step 1: Parse git logs for all reposCOMMENT
LOWpackages/core/src/repowise/core/workspace/cross_repo.py433 # Step 2: Drop noise files, then commits left with nothing, thenCOMMENT
LOWpackages/core/src/repowise/core/workspace/cross_repo.py449 # Step 3: Group all commits by author identity, tagged with repo aliasCOMMENT
LOWpackages/core/src/repowise/core/workspace/cross_repo.py455 # Step 4: Walk each author's sessions, accumulating per-file activityCOMMENT
LOW…s/core/src/repowise/core/generation/knowledge_graph.py380 # Step 1: main entry pointCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py729 # Step 3: Create workspace configCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py826 # Step 5: Cross-repo analysis (co-changes, package deps, contracts)COMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py829 # Step 6: Register primary repo with configured editor clientsCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py835 # Step 7: Completion summaryCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py618 # Step 1: Select repos to indexCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py634 # Step 2: Select primary repoCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py756 # Step 4: Index each selected repo (always generate_docs=False; generation is separate)COMMENT
LOW…cli/agent_targets/_data/codex_prompts/repowise-init.md9## Step 1: Check if repowise is installedCOMMENT
LOW…cli/agent_targets/_data/codex_prompts/repowise-init.md25## Step 2: Check if this repo is already indexedCOMMENT
LOW…cli/agent_targets/_data/codex_prompts/repowise-init.md36## Step 3: Offer the mode, but do not block on itCOMMENT
LOW…cli/agent_targets/_data/codex_prompts/repowise-init.md168## Step 4: Provider selection (model-written wiki only)COMMENT
LOW…cli/agent_targets/_data/codex_prompts/repowise-init.md206## Step 5: ExclusionsCOMMENT
2 more matches not shown…
Fake / Example Data44 hits · 54 pts
SeverityFileLineSnippetContext
LOWtests/unit/ingestion/test_author_identity.py63 assert owner_key("Jane Doe", None) == "name:Jane Doe"CODE
LOWtests/unit/ingestion/test_author_identity.py83 ("Jane Doe", "jane@company.com"),CODE
LOWtests/unit/ingestion/test_author_identity.py84 ("Jane Doe", "12345+jane@users.noreply.github.com"),CODE
LOWtests/unit/ingestion/test_author_identity.py87 assert resolve("Jane Doe", "jane@company.com") == "jane@company.com"CODE
LOWtests/unit/ingestion/test_author_identity.py88 assert resolve("Jane Doe", "12345+jane@users.noreply.github.com") == "jane@company.com"CODE
LOWtests/unit/ingestion/test_author_identity.py115 ("Jane Doe", "jane@company.com"),CODE
LOWtests/unit/ingestion/test_agent_provenance.py144 prov = _classify(an="Jane Doe", ae="jane@anthropic.com")CODE
LOWtests/unit/workspace/test_update.py109 ["git", "config", "user.email", "test@test.com"],CODE
LOWtests/unit/workspace/test_incremental_update.py43 _git(repo, "config", "user.email", "test@test.com")CODE
LOWtests/unit/workspace/test_cross_repo.py60 author_name="Jane Doe",CODE
LOWtests/unit/server/test_stats_contributors.py45 _commit("a1", "Jane Doe", "jane@company.com", 1000),CODE
LOWtests/unit/server/test_stats_contributors.py46 _commit("a2", "Jane Doe", "12345+jane@users.noreply.github.com", 1100),CODE
LOWtests/unit/server/test_stats_contributors.py47 _commit("a3", "Jane Doe", "999+jane@users.noreply.github.com", 1200),CODE
LOWtests/unit/server/test_stats_contributors.py71 _commit("a1", "Jane Doe", "jane@company.com", 1_600_000_000),CODE
LOWtests/unit/server/test_stats_contributors.py72 _commit("a2", "Jane Doe", "jane@company.com", 1_600_086_400),CODE
LOWtests/unit/server/test_stats_bot_filter.py46 ("Jane Doe", "jane@anthropic.com"),CODE
LOWtests/unit/server/test_stats_superlatives.py28 "author_name": "Jane Doe",CODE
LOWtests/unit/server/test_owners.py208 primary_owner_name="Jane Doe",CODE
LOWtests/unit/server/test_owners.py211 [{"name": "Jane Doe", "email": "jane@company.com", "commit_count": 10}]CODE
LOWtests/unit/server/test_owners.py221 primary_owner_name="Jane Doe",CODE
LOWtests/unit/server/test_owners.py226 "name": "Jane Doe",CODE
LOWtests/unit/server/test_owners.py243 assert jane.name == "Jane Doe"CODE
LOWtests/unit/server/test_stats_signals.py31 "author_name": "Jane Doe",CODE
LOWtests/unit/server/mcp/test_ff_mcp_payload_overview.py26 "primary_owner_name": "Jane Doe",CODE
LOWtests/unit/server/mcp/test_ff_mcp_payload_overview.py53 assert top["name"] == "Jane Doe"CODE
LOWtests/unit/server/mcp/test_ff_mcp_payload_overview.py63 assert _owner_display_name("Jane Doe", "jane.doe@example.com") == "Jane Doe"CODE
LOWtests/unit/cli/test_update_provider_prompt.py38 _git(repo, "config", "user.email", "test@test.com")CODE
LOWtests/unit/cli/test_init_failure_reporting.py461 assert "placeholder" not in outputCODE
LOWtests/unit/cli/test_docs_pointer.py60 _git(repo, "config", "user.email", "test@test.com")CODE
LOWtests/unit/cli/test_workspace_docs_pointer.py35 _git(repo, "config", "user.email", "test@test.com")CODE
LOWtests/unit/cli/test_update_e2e.py74 _git(repo, "config", "user.email", "test@test.com")CODE
LOWtests/unit/cli/test_update_e2e.py190 _git(repo, "config", "user.email", "test@test.com")CODE
LOWtests/unit/test_providers/test_gemini_provider.py225 provider = GeminiProvider(api_key="fake-key")CODE
LOWtests/unit/test_providers/test_gemini_provider.py239 provider = GeminiProvider(api_key="fake-key")CODE
LOWtests/unit/test_providers/test_gemini_provider.py250 provider = GeminiProvider(api_key="fake-key")CODE
LOWtests/unit/test_providers/test_gemini_provider.py261 provider = GeminiProvider(api_key="fake-key")CODE
LOWtests/unit/test_providers/test_gemini_provider.py145 provider = GeminiProvider(api_key="fake-key")CODE
LOWtests/unit/test_providers/test_gemini_provider.py159 provider = GeminiProvider(api_key="fake-key")CODE
LOWtests/unit/test_providers/test_gemini_provider.py171 provider = GeminiProvider(api_key="fake-key")CODE
LOWtests/unit/test_providers/test_gemini_provider.py185 provider = GeminiProvider(api_key="fake-key")CODE
LOWtests/unit/test_providers/test_gemini_provider.py204 provider = GeminiProvider(api_key="fake-key")CODE
LOWpackages/ui/__tests__/chat/chat-dock.test.tsx62 "placeholder",CODE
LOWpackages/ui/__tests__/chat/chat-dock.test.tsx80 "placeholder",CODE
LOWpackages/ui/__tests__/chat/chat-interface.test.tsx204 "placeholder",CODE
Verbosity Indicators23 hits · 41 pts
SeverityFileLineSnippetContext
LOWtests/integration/test_mcp.py351 # Step 1: Get overviewCOMMENT
LOWtests/integration/test_mcp.py358 # Step 2: Drill into auth module via get_context.COMMENT
LOWtests/integration/test_mcp.py367 # Step 3: Get file contextCOMMENT
LOWtests/integration/test_mcp.py374 # Step 4: Look up a symbolCOMMENT
LOW…/core/src/repowise/core/ingestion/tsconfig_resolver.py149 # Step 1: try path alias entries.COMMENT
LOW…/core/src/repowise/core/ingestion/tsconfig_resolver.py159 # Step 2: baseUrl-only fallback.COMMENT
LOWpackages/core/src/repowise/core/workspace/update.py898 # Step 3: Save workspace config with updated timestampsCOMMENT
LOWpackages/core/src/repowise/core/workspace/update.py902 # Step 4: Run cross-repo hooks (Phase 3/4 placeholder). ``run_hooks`` letsCOMMENT
LOWpackages/core/src/repowise/core/workspace/update.py683 # Step 1: Determine which repos are staleCOMMENT
LOWpackages/core/src/repowise/core/workspace/update.py695 # Step 0: Sync ``last_commit_at_index`` from each repo's state.json soCOMMENT
LOWpackages/core/src/repowise/core/workspace/update.py761 # Step 2: Update stale repos (parallel with concurrency limit)COMMENT
LOWpackages/core/src/repowise/core/workspace/cross_repo.py426 # Step 1: Parse git logs for all reposCOMMENT
LOWpackages/core/src/repowise/core/workspace/cross_repo.py433 # Step 2: Drop noise files, then commits left with nothing, thenCOMMENT
LOWpackages/core/src/repowise/core/workspace/cross_repo.py449 # Step 3: Group all commits by author identity, tagged with repo aliasCOMMENT
LOWpackages/core/src/repowise/core/workspace/cross_repo.py455 # Step 4: Walk each author's sessions, accumulating per-file activityCOMMENT
LOW…s/core/src/repowise/core/generation/knowledge_graph.py380 # Step 1: main entry pointCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py729 # Step 3: Create workspace configCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py826 # Step 5: Cross-repo analysis (co-changes, package deps, contracts)COMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py829 # Step 6: Register primary repo with configured editor clientsCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py835 # Step 7: Completion summaryCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py618 # Step 1: Select repos to indexCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py634 # Step 2: Select primary repoCOMMENT
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py756 # Step 4: Index each selected repo (always generate_docs=False; generation is separate)COMMENT
Overly Generic Function Names34 hits · 41 pts
SeverityFileLineSnippetContext
LOWtests/unit/pipeline/test_authoritative_page_types.py35 "def helper(n: int) -> int:\n return n + 1\n",CODE
LOW…ts/unit/pipeline/test_init_update_graph_convergence.py47 "def helper(x):\n return x + 1\n",CODE
LOWtests/unit/pipeline/test_ingestion_parse_cache.py17 (repo / "util.py").write_text("def helper(x):\n return x + 1\n", encoding="utf-8")CODE
LOWtests/unit/pipeline/test_ingestion_parse_cache.py52 "def helper(x):\n return x * 3\n",CODE
LOWtests/unit/ingestion/test_resolver_merged_index.py62 "lib.py": ("python", "def helper():\n return 1\n"),CODE
LOWtests/unit/ingestion/test_resolver_merged_index.py84 "a_lib.py": ("python", "def helper():\n return 'a'\n"),CODE
LOWtests/unit/ingestion/test_resolver_merged_index.py85 "z_lib.py": ("python", "def helper():\n return 'z'\n"),CODE
LOWtests/unit/ingestion/test_resolver_merged_index.py152 "class Other:\n def helper(self):\n return 1\n"CODE
LOWtests/unit/ingestion/test_traverser.py119 (tmp_path / "src" / "utils.py").write_text("def helper(): pass")CODE
LOWtests/unit/ingestion/test_star_import_barrel.py46 "pkg/leaf.py": "def helper(x):\n return x\n",CODE
LOWtests/unit/ingestion/test_star_import_barrel.py49 "other.py": "class Thing:\n def helper(self, x):\n return x\n",CODE
LOWtests/unit/ingestion/test_star_import_barrel.py163 "pkg/leaf.py": "def helper(x):\n return x\n",CODE
LOWtests/unit/ingestion/test_star_import_barrel.py166 "other.py": "class Thing:\n def helper(self, x):\n return x\n",CODE
LOWtests/unit/ingestion/test_enclosing_class_calls.py107 def helper(self):STRING
LOWtests/unit/ingestion/test_enclosing_class_calls.py115 def helper(self):STRING
LOWtests/unit/ingestion/test_single_query_pass.py32def helper(arg: str) -> str:CODE
LOWtests/unit/ingestion/test_working_tree_changes.py33 (tmp_path / "util.py").write_text("def helper():\n return 2\n", encoding="utf-8")CODE
LOWtests/unit/ingestion/test_value_reference_edges.py253 "def helper():\n return 1\n\n\ndef run():\n return helper()\n"CODE
LOWtests/unit/ingestion/test_self_call_resolution.py62 def helper(self):CODE
LOWtests/unit/ingestion/test_pytest_fixture_edges.py162 "def helper(client):\n return client\n"CODE
LOWtests/unit/ingestion/test_subgraph_cache.py42 gb.add_file(_parsed(tmp_path, "b.py", "def helper():\n return 1\n"))CODE
LOWtests/unit/ingestion/test_centrality_cache.py20_UTIL = "def helper(x):\n return x + 1\n"CODE
LOWtests/unit/ingestion/test_dispatch_edges.py204 "base.py": "class Base:\n def helper(self):\n return 1\n",CODE
LOWtests/unit/ingestion/test_dispatch_edges.py225 "l.py": "class Left:\n def helper(self):\n return 1\n",CODE
LOWtests/unit/ingestion/test_dispatch_edges.py226 "r.py": "class Right:\n def helper(self):\n return 2\n",CODE
LOWtests/unit/ingestion/test_dispatch_edges.py247 "base.py": "class Base:\n def helper(self):\n return 1\n",CODE
LOWtests/unit/ingestion/test_dispatch_edges.py251 " def helper(self):\n"CODE
LOWtests/unit/ingestion/test_dispatch_edges.py327 "base.py": "class Base:\n def helper(self):\n return 1\n",CODE
LOWtests/unit/ingestion/test_metrics_precompute.py36 "b.py": "def helper():\n return 1\n",CODE
LOWtests/unit/ingestion/test_parse_cache.py28 "def helper(x):\n return x + 1\n",CODE
LOWtests/unit/ingestion/test_parse_cache.py86 "def helper(x):\n return x * 2\n\n\ndef extra(y):\n return y\n",CODE
LOWtests/unit/ingestion/parser/test_scala.py21 private def helper(): Unit = {}CODE
LOWtests/unit/health/test_perf_crossfn.py112 b"def helper(session, r):\n"CODE
LOWtests/unit/health/test_refactoring_extract_method.py245 def helper(v):CODE
Self-Referential Comments7 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMtests/unit/workspace/test_registry.py32 # Create an empty wiki.db — init_db will create tables on first accessCOMMENT
MEDIUMtests/unit/cli/test_workspace_cmd.py312 # Create a git repo inside the workspace rootCOMMENT
MEDIUMtests/unit/cli/test_workspace_cmd.py192 # Create a subdirectory that has no workspace config anywhere in its treeCOMMENT
MEDIUMtests/integration/test_dead_code_integration.py68 # Create a mock providerCOMMENT
MEDIUMtests/integration/test_git_intelligence_integration.py32 # Create a temp dir with a file so GitIndexer has something to look at,COMMENT
MEDIUM…kages/server/src/repowise/server/mcp_server/_server.py528# Create the MCP serverCOMMENT
MEDIUM…ages/cli/src/repowise/cli/commands/init_cmd/command.py1289 # Create the engine, session factory, and repository row *before*COMMENT
AI Structural Patterns32 hits · 26 pts
SeverityFileLineSnippetContext
LOWtests/unit/health/test_coverage_biomarkers.py15CODE
LOWtests/unit/server/mcp/test_why_search_payload.py26CODE
LOWtests/unit/generation/conftest.py49CODE
LOWtests/unit/generation/test_onboarding.py105CODE
LOWtests/unit/generation/test_workspace_claude_md.py36CODE
LOW…ckages/core/src/repowise/core/pipeline/orchestrator.py176CODE
LOWpackages/core/src/repowise/core/pipeline/incremental.py1382CODE
LOW…s/core/src/repowise/core/pipeline/phases/generation.py30CODE
LOW…kages/core/src/repowise/core/analysis/health/engine.py932CODE
LOWpackages/core/src/repowise/core/workspace/update.py638CODE
LOW…s/core/src/repowise/core/persistence/crud/decisions.py63CODE
LOW…s/core/src/repowise/core/persistence/crud/decisions.py165CODE
LOW…kages/core/src/repowise/core/persistence/crud/pages.py226CODE
LOW…/core/src/repowise/core/persistence/crud/repository.py131CODE
LOW…s/core/src/repowise/core/registry/mcp_tool_registry.py83CODE
LOW…core/src/repowise/core/generation/context/assembler.py463CODE
LOW…src/repowise/core/generation/page_generator/pertype.py186CODE
LOW…src/repowise/core/generation/page_generator/pertype.py375CODE
LOW…re/src/repowise/core/generation/page_generator/core.py229CODE
LOW…ages/server/src/repowise/server/routers/refactoring.py266CODE
LOW…ckages/server/src/repowise/server/routers/decisions.py36CODE
LOWpackages/server/src/repowise/server/routers/symbols.py197CODE
LOWpackages/server/src/repowise/server/routers/pages.py123CODE
LOW…rc/repowise/server/routers/code_health/files_routes.py40CODE
LOW…erver/src/repowise/server/mcp_server/tool_dead_code.py266CODE
LOW…s/server/src/repowise/server/mcp_server/tool_health.py1088CODE
LOWpackages/cli/src/repowise/cli/ui/result_panels.py32CODE
LOW…li/src/repowise/cli/commands/update_cmd/persistence.py346CODE
LOW…es/cli/src/repowise/cli/commands/update_cmd/command.py344CODE
LOW…es/cli/src/repowise/cli/commands/update_cmd/command.py518CODE
LOW…/cli/src/repowise/cli/commands/update_cmd/workspace.py49CODE
LOW…es/cli/src/repowise/cli/commands/init_cmd/workspace.py568CODE
Docstring Block Structure4 hits · 20 pts
SeverityFileLineSnippetContext
HIGH…kages/core/src/repowise/core/providers/llm/registry.py251Instantiate a provider by name. Providers are imported lazily — only the requested provider's dependencies needSTRING
HIGHpackages/core/src/repowise/core/providers/llm/base.py258Generate a response from the LLM. Args: system_prompt: System-level instructions (role, output formSTRING
HIGH…core/src/repowise/core/providers/embedding/registry.py56Instantiate an embedder by name. Args: name: Embedder identifier ('openai', 'gemini', 'mock'). STRING
HIGH…es/core/src/repowise/core/generation/page_redirects.py161The live page id a retired one now points at, or ``None``. Follows retirement chains to their end, so the returned STRING
Redundant / Tautological Comments8 hits · 12 pts
SeverityFileLineSnippetContext
LOW…rc/repowise/core/ingestion/resolvers/rust_workspace.py245 # Check if this is a proc-macro crateCOMMENT
LOW…ges/core/src/repowise/core/ingestion/resolvers/rust.py106 # Check if it might be a local module at the crate root firstCOMMENT
LOW…/repowise/core/ingestion/dynamic_hints/pytest_hints.py92 # Check if any test function uses a fixture from this conftestCOMMENT
LOW…ges/core/src/repowise/core/analysis/execution_flows.py247 # Check if the containing file is marked as an entry pointCOMMENT
LOW…repowise/core/analysis/health/complexity/cyclomatic.py289 # Check if this is a case/arm inside a flat match — skip it.COMMENT
LOWpackages/core/src/repowise/core/workspace/scanner.py95 # Check if root itself is a git repoCOMMENT
LOWpackages/server/src/repowise/server/routers/jobs.py210 # Check if client disconnectedCOMMENT
LOW…rver/src/repowise/server/mcp_server/tool_dependency.py273 # Check if they're in completely disconnected componentsCOMMENT
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH…es/cli/src/repowise/cli/commands/init_cmd/workspace.py197 # A previously-persisted embedder on THIS repo counts as requested (re-initCOMMENT
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMtests/unit/server/test_chat_stream_terminal_event.py58CODE