Repository Analysis

EvoScientist/EvoScientist

🔬 Harness Vibe Research with Self-evolving AI Scientists

51.6 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of EvoScientist/EvoScientist, a Python project with 4,180 GitHub stars. SynthScan v2.0 examined 134,931 lines of code across 413 source files, recording 4733 pattern matches distributed across 19 syntactic categories. The overall adjusted score of 51.6 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).

51.6
Adjusted Score
51.6
Raw Score
100%
Time Factor
2026-07-14
Last Push
4.2K
Stars
Python
Language
134.9K
Lines of Code
413
Files
4.7K
Pattern Hits
2026-07-14
Scan Date
0.09
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 0HIGH 36MEDIUM 947LOW 3750

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 4733 distinct pattern matches across 19 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 Separators904 hits · 3263 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_hitl.py17# =============================================================================COMMENT
MEDIUMtests/test_hitl.py19# =============================================================================COMMENT
MEDIUMtests/test_hitl.py50# =============================================================================COMMENT
MEDIUMtests/test_hitl.py52# =============================================================================COMMENT
MEDIUMtests/test_hitl.py141# =============================================================================COMMENT
MEDIUMtests/test_hitl.py143# =============================================================================COMMENT
MEDIUMtests/test_hitl.py333# =============================================================================COMMENT
MEDIUMtests/test_hitl.py335# =============================================================================COMMENT
MEDIUMtests/test_hitl.py376# =============================================================================COMMENT
MEDIUMtests/test_hitl.py378# =============================================================================COMMENT
MEDIUMtests/test_hitl.py434# =============================================================================COMMENT
MEDIUMtests/test_hitl.py436# =============================================================================COMMENT
MEDIUMtests/test_hitl.py560# =============================================================================COMMENT
MEDIUMtests/test_hitl.py562# =============================================================================COMMENT
MEDIUMtests/test_hitl.py605# =============================================================================COMMENT
MEDIUMtests/test_hitl.py607# =============================================================================COMMENT
MEDIUMtests/test_hitl.py102# =============================================================================COMMENT
MEDIUMtests/test_hitl.py104# =============================================================================COMMENT
MEDIUMtests/test_tool_error_handler.py14# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tool_error_handler.py16# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tool_error_handler.py26# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tool_error_handler.py28# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tool_error_handler.py74# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tool_error_handler.py76# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tool_error_handler.py143# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tool_error_handler.py145# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tool_error_handler.py204# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tool_error_handler.py206# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_ccproxy_manager.py87# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py89# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py204# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py206# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py23# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py25# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py41# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py43# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py125# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py127# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py221# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py223# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py242# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py244# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py268# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py270# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py294# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py296# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py310# =============================================================================COMMENT
MEDIUMtests/test_ccproxy_manager.py312# =============================================================================COMMENT
MEDIUMtests/test_serde_default_rich_exception.py32# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_serde_default_rich_exception.py34# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_serde_default_rich_exception.py139# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_serde_default_rich_exception.py141# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_serde_default_rich_exception.py206# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_serde_default_rich_exception.py209# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_stream_state.py10# =============================================================================COMMENT
MEDIUMtests/test_stream_state.py12# =============================================================================COMMENT
MEDIUMtests/test_stream_state.py63# =============================================================================COMMENT
MEDIUMtests/test_stream_state.py65# =============================================================================COMMENT
MEDIUMtests/test_stream_state.py362# =============================================================================COMMENT
MEDIUMtests/test_stream_state.py364# =============================================================================COMMENT
844 more matches not shown…
Hyper-Verbose Identifiers2454 hits · 2171 pts
SeverityFileLineSnippetContext
LOWtests/test_hitl.py23 def test_interrupt_event_structure(self):CODE
LOWtests/test_hitl.py37 def test_interrupt_defaults_review_configs(self):CODE
LOWtests/test_hitl.py41 def test_interrupt_multiple_action_requests(self):CODE
LOWtests/test_hitl.py56 def test_handle_interrupt_sets_pending(self):CODE
LOWtests/test_hitl.py147 def test_empty_requests_auto_approves(self):CODE
LOWtests/test_hitl.py153 def test_session_auto_approve(self):CODE
LOWtests/test_hitl.py339 def test_auto_approve_default(self):CODE
LOWtests/test_hitl.py369 def test_shell_allow_list_set(self):CODE
LOWtests/test_hitl.py382 async def test_interrupt_from_updates_mode(self):CODE
LOWtests/test_hitl.py440 def test_parse_approval_approve(self):CODE
LOWtests/test_hitl.py446 def test_parse_approval_reject(self):CODE
LOWtests/test_hitl.py491 def test_should_auto_approve_non_execute(self):CODE
LOWtests/test_hitl.py496 def test_should_auto_approve_empty(self):CODE
LOWtests/test_hitl.py501 def test_should_auto_approve_execute_no_allowlist(self):CODE
LOWtests/test_hitl.py570 async def test_register_and_resolve_reply(self):CODE
LOWtests/test_hitl.py611 def test_prompt_fn_called_for_execute(self):CODE
LOWtests/test_hitl.py69 def test_pending_interrupt_starts_none(self):CODE
LOWtests/test_hitl.py73 def test_interrupt_does_not_affect_other_state(self):CODE
LOWtests/test_hitl.py87 def test_done_after_interrupt_preserves_pending(self):CODE
LOWtests/test_hitl.py194 def test_non_execute_tool_auto_approves(self):CODE
LOWtests/test_hitl.py218 def test_execute_with_matching_allow_list(self):CODE
LOWtests/test_hitl.py242 def test_execute_not_in_allow_list_prompts(self):CODE
LOWtests/test_hitl.py271 def test_run_in_background_not_in_allow_list_prompts(self):CODE
LOWtests/test_hitl.py304 def test_run_in_background_in_allow_list_auto_approves(self):CODE
LOWtests/test_hitl.py351 def test_shell_allow_list_default(self):CODE
LOWtests/test_hitl.py419 async def test_updates_without_interrupt_skipped(self):CODE
LOWtests/test_hitl.py458 def test_parse_approval_unrecognized(self):CODE
LOWtests/test_hitl.py465 def test_format_approval_prompt(self):CODE
LOWtests/test_hitl.py479 def test_format_approval_prompt_multiple(self):CODE
LOWtests/test_hitl.py517 def test_should_auto_approve_run_in_background_no_allowlist(self):CODE
LOWtests/test_hitl.py532 def test_should_auto_approve_config_true(self):CODE
LOWtests/test_hitl.py545 def test_should_auto_approve_allowlist_match(self):CODE
LOWtests/test_hitl.py586 def test_try_resolve_no_pending(self):CODE
LOWtests/test_hitl.py594 async def test_reply_timeout_returns_none(self):CODE
LOWtests/test_hitl.py639 def test_prompt_fn_not_called_for_auto_approve(self):CODE
LOWtests/test_hitl.py665 def test_prompt_fn_not_called_for_non_execute(self):CODE
LOWtests/test_tool_error_handler.py32 def test_returns_tool_message(self):CODE
LOWtests/test_tool_error_handler.py64 def test_content_includes_retry_guidance(self):CODE
LOWtests/test_tool_error_handler.py83 def test_success_passes_through(self):CODE
LOWtests/test_tool_error_handler.py93 def test_command_passes_through(self):CODE
LOWtests/test_tool_error_handler.py102 def test_exception_returns_error_tool_message(self):CODE
LOWtests/test_tool_error_handler.py114 def test_exception_does_not_propagate(self):CODE
LOWtests/test_tool_error_handler.py122 def test_keyboard_interrupt_propagates(self):CODE
LOWtests/test_tool_error_handler.py130 def test_various_exception_types(self):CODE
LOWtests/test_tool_error_handler.py152 async def test_success_passes_through(self):CODE
LOWtests/test_tool_error_handler.py187 async def test_exception_does_not_propagate(self):CODE
LOWtests/test_tool_error_handler.py195 async def test_keyboard_interrupt_propagates(self):CODE
LOWtests/test_tool_error_handler.py44 def test_content_includes_tool_name(self):CODE
LOWtests/test_tool_error_handler.py53 def test_content_includes_traceback(self):CODE
LOWtests/test_tool_error_handler.py163 async def test_command_passes_through(self):CODE
LOWtests/test_tool_error_handler.py174 async def test_exception_returns_error_tool_message(self):CODE
LOWtests/test_ccproxy_manager.py99 def test_uses_health_live_endpoint(self, mock_get):CODE
LOWtests/test_ccproxy_manager.py210 def test_writes_codex_mapping_override(self, tmp_path):CODE
LOWtests/test_ccproxy_manager.py174 def test_passes_generated_config(self, mock_popen, mock_running, tmp_path):CODE
LOWtests/test_ccproxy_manager.py190 def test_config_write_failure_starts_without_config(CODE
LOWtests/test_ccproxy_manager.py339 def test_oauth_mode_raises_no_binary(self, mock_avail):CODE
LOWtests/test_ccproxy_manager.py351 def test_oauth_mode_raises_no_auth(self, mock_avail, mock_auth):CODE
LOWtests/test_ccproxy_manager.py362 def test_openai_oauth_mode_starts(CODE
LOWtests/test_ccproxy_manager.py382 def test_both_oauth_starts_both(CODE
LOWtests/test_ccproxy_manager.py401 def test_openai_oauth_raises_no_binary_editable(self, mock_avail, mock_edit):CODE
2394 more matches not shown…
Excessive Try-Catch Wrapping482 hits · 447 pts
SeverityFileLineSnippetContext
LOWtests/test_tool_error_handler.py68 except Exception:CODE
LOWtests/test_async_watcher_middleware.py25 except Exception:CODE
LOWtests/test_async_watcher_middleware.py33 except Exception:CODE
LOWtests/conftest.py137except Exception:CODE
LOWtests/test_background_middleware.py52 except Exception:CODE
LOWtests/test_observation_memory.py479 except Exception as exc:CODE
MEDIUMtests/test_stream_utils.py41 content = '#!/usr/bin/env python3\n"""\nSkill Packager\n"""\n\nprint(f"Error: not found")'CODE
LOWtests/test_bus_integration.py23 except Exception:CODE
LOWtests/test_background.py44 except Exception:CODE
LOWtests/test_stream_recovery.py65 except Exception:CODE
LOWEvoScientist/sessions.py460 except Exception: # pragma: no cover - defensive (config import errors)CODE
LOWEvoScientist/sessions.py531 except Exception as exc:CODE
LOWEvoScientist/sessions.py238 except Exception as exc: # pragma: no cover - defensiveCODE
LOWEvoScientist/sessions.py343 except Exception as exc:CODE
LOWEvoScientist/sessions.py714 except Exception as exc:CODE
LOWEvoScientist/sessions.py1766 except Exception:CODE
LOWEvoScientist/sessions.py1335 except Exception:STRING
LOWEvoScientist/sessions.py1275 except Exception: # pragma: no cover - never let UI break sweepSTRING
LOWEvoScientist/sessions.py1520 except Exception:STRING
LOWEvoScientist/sessions.py1656 except Exception:STRING
LOWEvoScientist/paths.py140except Exception:CODE
LOWEvoScientist/update_check.py44 except Exception:CODE
LOWEvoScientist/update_check.py57 except Exception:CODE
LOWEvoScientist/update_check.py68 except Exception:CODE
LOWEvoScientist/background.py133 except Exception:CODE
LOWEvoScientist/background.py140 except Exception:CODE
LOWEvoScientist/backends.py1022 except Exception:CODE
LOWEvoScientist/backends.py1035 except Exception:CODE
LOWEvoScientist/ccproxy_manager.py74 except Exception:CODE
LOWEvoScientist/ccproxy_manager.py166 except Exception as exc:CODE
LOWEvoScientist/ccproxy_manager.py283 except Exception:CODE
LOWEvoScientist/stt.py133 except Exception as e:CODE
LOWEvoScientist/middleware/context_overflow.py36 except Exception as exc:CODE
LOWEvoScientist/middleware/context_overflow.py54 except Exception as exc:CODE
LOWEvoScientist/middleware/async_watcher.py74 except Exception:CODE
LOWEvoScientist/middleware/async_watcher.py107 except Exception:CODE
LOWEvoScientist/middleware/memory.py458 except Exception as e:CODE
LOWEvoScientist/middleware/memory.py475 except Exception as e:CODE
LOWEvoScientist/middleware/model_fallback.py91 except Exception:CODE
LOWEvoScientist/middleware/model_fallback.py291 except Exception as fb_exc:CODE
LOWEvoScientist/middleware/model_fallback.py385 except Exception as exc:CODE
LOWEvoScientist/middleware/model_fallback.py403 except Exception as exc:CODE
LOWEvoScientist/middleware/tool_selector.py135 except Exception as exc:CODE
LOWEvoScientist/middleware/tool_selector.py185 except Exception as exc:CODE
LOWEvoScientist/middleware/configurable_model.py60 except Exception:CODE
LOWEvoScientist/middleware/configurable_model.py158 except Exception:CODE
LOWEvoScientist/middleware/configurable_model.py186 except Exception:CODE
LOWEvoScientist/middleware/error_normalization.py213 except Exception as exc:CODE
LOWEvoScientist/middleware/error_normalization.py226 except Exception as exc:CODE
LOWEvoScientist/middleware/background.py28 except Exception:CODE
LOWEvoScientist/middleware/utils.py42 except Exception:CODE
LOWEvoScientist/middleware/scheduler.py72 except Exception as e:CODE
LOWEvoScientist/middleware/scheduler.py89 except Exception as e:CODE
LOWEvoScientist/middleware/scheduler.py128 except Exception as e:CODE
LOWEvoScientist/middleware/scheduler.py162 except Exception:CODE
LOWEvoScientist/middleware/memory_lifecycle.py82 except Exception:CODE
LOWEvoScientist/middleware/memory_lifecycle.py112 except Exception:CODE
LOWEvoScientist/middleware/tool_error_handler.py48 except Exception as exc:CODE
LOWEvoScientist/middleware/tool_error_handler.py60 except Exception as exc:CODE
LOWEvoScientist/tools/skills_manager.py509 except Exception:CODE
422 more matches not shown…
Unused Imports416 hits · 389 pts
SeverityFileLineSnippetContext
LOWtests/test_serde_default_rich_exception.py17CODE
LOWtests/test_serve_agent_holder.py9CODE
LOWtests/test_async_watcher_middleware.py8CODE
LOWtests/test_channel_notification_origin.py4CODE
LOWtests/stream_v3_fakes.py3CODE
LOWtests/test_thread_selector.py3CODE
LOWtests/test_cli_resume_flag.py3CODE
LOWtests/test_configurable_model_middleware.py9CODE
LOWtests/test_wechat_channel.py240CODE
LOWtests/test_wechat_channel.py245CODE
LOWtests/test_async_subagent_swap.py8CODE
LOWtests/test_autoskills.py1CODE
LOWtests/test_async_subagent_factory.py10CODE
LOWtests/test_observation_memory.py1CODE
LOWtests/test_llm.py10CODE
LOWtests/test_file_mentions.py3CODE
LOWtests/test_langgraph_schema_generator_silenced.py11CODE
LOWtests/test_error_normalization_middleware.py10CODE
LOWtests/test_langgraph_dev_deploy_mode.py9CODE
LOWtests/test_agent_loader.py3CODE
LOWtests/test_load_subagents.py8CODE
LOWtests/test_langgraph_dev_http.py6CODE
LOWtests/test_langgraph_dev_workspace_sidecar.py17CODE
LOWtests/test_cli_serve.py3CODE
LOWtests/test_graph_gateway.py3CODE
LOWtests/test_model_passthrough_patch.py11CODE
LOWtests/test_subagent_summarize.py10CODE
LOWtests/test_ollama_discovery.py9CODE
LOWtests/test_langgraph_manager.py8CODE
LOWtests/test_cli_channel_bus_mode.py3CODE
LOWtests/test_stream_cancel.py3CODE
LOWtests/test_agent_mcp_cache.py3CODE
LOWtests/test_profile_memory_middleware.py1CODE
LOWtests/test_gateway_background_runs.py1CODE
LOWtests/test_tui_widgets.py7CODE
LOWtests/test_model_fallback.py7CODE
LOWtests/test_diff_format.py3CODE
LOWtests/test_resume_hint.py3CODE
LOWtests/fakes.py3CODE
LOWtests/test_stt.py7CODE
LOWtests/test_channel_command_ui.py1CODE
LOWtests/test_status_bar.py3CODE
LOWtests/test_runtime_context_middleware.py1CODE
LOWtests/test_tui_banner_position.py17CODE
LOWtests/test_channel_comprehensive.py15CODE
LOWtests/test_cli_deploy.py12CODE
LOWtests/test_code_interpreter_middleware.py10CODE
LOWEvoScientist/_winloop.py26CODE
LOWEvoScientist/EvoScientist.py42CODE
LOWEvoScientist/paths.py3CODE
LOWEvoScientist/update_check.py8CODE
LOWEvoScientist/background.py17CODE
LOWEvoScientist/__init__.py8CODE
LOWEvoScientist/ccproxy_manager.py11CODE
LOWEvoScientist/stt.py17CODE
LOWEvoScientist/middleware/context_overflow.py10CODE
LOWEvoScientist/middleware/code_interpreter.py30CODE
LOWEvoScientist/middleware/async_watcher.py21CODE
LOWEvoScientist/middleware/memory.py11CODE
LOWEvoScientist/middleware/model_fallback.py14CODE
356 more matches not shown…
Modern Structural Boilerplate129 hits · 134 pts
SeverityFileLineSnippetContext
LOWtests/fakes.py116 def update_status_after_compact(self, tokens_after: int) -> None:CODE
LOWEvoScientist/sessions.py1120async def _set_user_version(conn: aiosqlite.Connection, version: int) -> None:STRING
LOWEvoScientist/EvoScientist.py88def set_active_config(cfg) -> None:CODE
LOWEvoScientist/EvoScientist.py216def set_chat_model_instance(instance, key: tuple[str | None, str | None]) -> None:CODE
LOWEvoScientist/paths.py11logger = logging.getLogger(__name__)CODE
LOWEvoScientist/paths.py145def set_workspace_root(path: str | Path) -> None:CODE
LOWEvoScientist/paths.py208def set_active_workspace(path: str | Path) -> None:CODE
LOWEvoScientist/update_check.py16logger = logging.getLogger(__name__)CODE
LOWEvoScientist/background.py33logger = logging.getLogger(__name__)CODE
LOWEvoScientist/utils.py17logger = logging.getLogger(__name__)CODE
LOWEvoScientist/ccproxy_manager.py21logger = logging.getLogger(__name__)CODE
LOWEvoScientist/stt.py23logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/context_overflow.py21logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/async_watcher.py32logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/memory.py38logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/model_fallback.py26logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/model_fallback.py65def set_ui_emit(fn: Callable[[str, str], None] | None) -> None:CODE
LOWEvoScientist/middleware/model_fallback.py109def set_fallback_chain(chain: list[tuple[str, str]]) -> None:CODE
LOWEvoScientist/middleware/tool_selector.py32logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/configurable_model.py44logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/__init__.py41__all__ = [CODE
LOWEvoScientist/middleware/ask_user.py37logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/memory_lifecycle.py23logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/tool_error_handler.py33logger = logging.getLogger(__name__)CODE
LOWEvoScientist/tools/__init__.py11__all__ = [CODE
LOWEvoScientist/memory/__init__.py34__all__ = [CODE
LOWEvoScientist/memory/scheduler.py21logger = logging.getLogger(__name__)CODE
LOWEvoScientist/memory/agents/memory_worker.py34logger = logging.getLogger(__name__)CODE
LOWEvoScientist/memory/agents/__init__.py9__all__ = [CODE
LOWEvoScientist/memory/agents/observation_linker.py23logger = logging.getLogger(__name__)CODE
LOWEvoScientist/memory/observations/tools.py31logger = logging.getLogger(__name__)CODE
LOWEvoScientist/memory/observations/__init__.py40__all__ = [CODE
LOWEvoScientist/config/__init__.py30__all__ = [CODE
LOWEvoScientist/config/onboard/prompter.py115__all__ = [CODE
LOWEvoScientist/config/onboard/constants.py43__all__ = [CODE
LOWEvoScientist/config/onboard/__init__.py34__all__ = ["run_onboard"]CODE
LOWEvoScientist/deploy/__init__.py22__all__ = ["server"]CODE
LOWEvoScientist/mcp/registry.py27logger = logging.getLogger(__name__)CODE
LOWEvoScientist/mcp/client.py22logger = logging.getLogger(__name__)CODE
LOWEvoScientist/mcp/__init__.py29__all__ = [CODE
LOWEvoScientist/cli/rich_command_ui.py226 def update_status_after_compact(self, input_tokens: int) -> None:CODE
LOWEvoScientist/cli/async_notifier.py103logger = logging.getLogger(__name__)CODE
LOWEvoScientist/cli/tui_interactive.py3052 def _set_status_usage_baseline(self, input_tokens: int) -> None:CODE
LOWEvoScientist/cli/tui_interactive.py3063 def update_status_after_compact(self, tokens_after: int) -> None:CODE
LOWEvoScientist/cli/tui_interactive.py3089 def _set_status_streaming_text(self, text: str | None) -> None:CODE
LOWEvoScientist/cli/channel.py102def _set_channel_response(msg_id: str, response: str) -> None:CODE
LOWEvoScientist/cli/__init__.py15__all__ = [CODE
LOWEvoScientist/cli/interactive.py518 def _set_status_streaming_text(text: str | None) -> None:CODE
LOWEvoScientist/cli/clipboard.py29logger = logging.getLogger(__name__)CODE
LOWEvoScientist/cli/widgets/ask_user_widget.py26logger = logging.getLogger(__name__)CODE
LOWEvoScientist/cli/widgets/ask_user_widget.py131 def set_future(self, future: asyncio.Future) -> None:CODE
LOWEvoScientist/cli/widgets/ask_user_widget.py340 def _update_choices(self) -> None:CODE
LOWEvoScientist/cli/widgets/model_picker.py259 def _update_filter(self) -> None:CODE
LOWEvoScientist/cli/widgets/model_picker.py272 def _update_rows(self) -> None:CODE
LOWEvoScientist/cli/widgets/subagent_widget.py84 def update_name(self, name: str, description: str = "") -> None:STRING
LOWEvoScientist/cli/widgets/subagent_widget.py219 def _update_visibility(self) -> None:CODE
LOWEvoScientist/cli/widgets/summarization_widget.py121 def set_content(self, text: str) -> None:CODE
LOWEvoScientist/cli/widgets/mcp_loader_widget.py80 def update_server(self, name: str, state: str, detail: str = "") -> None:CODE
LOWEvoScientist/cli/widgets/__init__.py20__all__ = [CODE
LOWEvoScientist/cli/widgets/mcp_browser.py155 def _update_display(self) -> None:CODE
69 more matches not shown…
Deep Nesting152 hits · 120 pts
SeverityFileLineSnippetContext
LOWtests/test_async_watcher_middleware.py18CODE
LOWtests/test_event_loop.py26CODE
LOWEvoScientist/sessions.py465CODE
LOWEvoScientist/sessions.py547CODE
LOWEvoScientist/sessions.py1535CODE
LOWEvoScientist/background.py234CODE
LOWEvoScientist/backends.py71CODE
LOWEvoScientist/backends.py413CODE
LOWEvoScientist/backends.py685CODE
LOWEvoScientist/backends.py720CODE
LOWEvoScientist/backends.py751CODE
LOWEvoScientist/backends.py989CODE
LOWEvoScientist/backends.py1179CODE
LOWEvoScientist/utils.py21CODE
LOWEvoScientist/utils.py63CODE
LOWEvoScientist/ccproxy_manager.py55CODE
LOWEvoScientist/middleware/ask_user.py245CODE
LOWEvoScientist/tools/skills_manager.py465CODE
LOWEvoScientist/tools/skills_manager.py642CODE
LOWEvoScientist/tools/skills_manager.py766CODE
LOWEvoScientist/tools/skill_manager.py9CODE
LOWEvoScientist/llm/models.py427CODE
LOWEvoScientist/llm/patches.py38CODE
LOWEvoScientist/llm/patches.py82CODE
LOWEvoScientist/llm/patches.py341CODE
LOWEvoScientist/llm/patches.py378CODE
LOWEvoScientist/llm/patches.py413CODE
LOWEvoScientist/memory/autoskills/candidates.py124CODE
LOWEvoScientist/config/onboard/steps.py1073CODE
LOWEvoScientist/config/onboard/wizard.py66CODE
LOWEvoScientist/config/onboard/wizard.py151CODE
LOWEvoScientist/config/onboard/wizard.py474CODE
LOWEvoScientist/config/onboard/channels.py24CODE
LOWEvoScientist/config/onboard/channels.py819CODE
LOWEvoScientist/config/onboard/channels.py838CODE
LOWEvoScientist/config/onboard/helpers.py343CODE
LOWEvoScientist/config/onboard/helpers.py638CODE
LOWEvoScientist/stream/events.py740CODE
LOWEvoScientist/stream/events.py794CODE
LOWEvoScientist/stream/events.py505CODE
LOWEvoScientist/stream/display.py517CODE
LOWEvoScientist/stream/display.py899CODE
LOWEvoScientist/stream/display.py1183CODE
LOWEvoScientist/stream/display.py1282CODE
LOWEvoScientist/stream/display.py1347CODE
LOWEvoScientist/stream/utils.py140CODE
LOWEvoScientist/stream/summarization.py15CODE
LOWEvoScientist/stream/v3_payloads.py56CODE
LOWEvoScientist/stream/tool_results.py18CODE
LOWEvoScientist/stream/diff_format.py66CODE
LOWEvoScientist/stream/state.py364CODE
LOWEvoScientist/stream/state.py152CODE
LOWEvoScientist/mcp/registry.py162CODE
LOWEvoScientist/mcp/registry.py289CODE
LOWEvoScientist/mcp/client.py418CODE
LOWEvoScientist/mcp/client.py492CODE
LOWEvoScientist/mcp/client.py616CODE
LOWEvoScientist/cli/file_mentions.py414CODE
LOWEvoScientist/cli/rich_command_ui.py112CODE
LOWEvoScientist/cli/tui_interactive.py276CODE
92 more matches not shown…
Cross-Language Confusion21 hits · 118 pts
SeverityFileLineSnippetContext
HIGHtests/test_background_middleware.py133 out = run_in_background.invoke({"command": "cat /etc/hosts && cat ../x"})CODE
HIGHtests/test_background_middleware.py135 assert captured["command"] == "cat /etc/hosts && cat ../x" # no ./ rewriteCODE
HIGHtests/test_langgraph_dev_workspace_sidecar.py83 '{"workspace": null}', # workspace present but null → Path(None) TypeErrorCODE
HIGHtests/test_backends.py110 result = validate_command("cd /etc && cat passwd")CODE
HIGHtests/test_backends.py138 assert validate_command("cd /etc && ls", dangerous=True) is NoneCODE
HIGHtests/test_backends.py1281 "cat /data/file.txt && ssh host 'ls /home/username/project'",CODE
HIGHtests/test_backends.py1288 == "cat ./data/file.txt && ssh host 'ls /home/username/project'"CODE
HIGHtests/test_backends.py1412 command = "cat /data/file.txt && ssh host 'ls /home/username/project'"CODE
HIGHtests/test_backends.py1419 == "cat ./data/file.txt && ssh host 'ls /home/username/project'"CODE
HIGHtests/test_backends.py1547 result = validate_command("echo ok && chmod 777 file")CODE
HIGHtests/test_backends.py1563 assert validate_command("mkdir build && cd build") is NoneCODE
HIGHtests/test_backends.py1145 command = f"mkdir -p {tmp_workspace}/test-sanitized && echo ok"CODE
HIGHtests/test_backends.py1319 command = "echo __EVOSCI_SSH_REMOTE_0__ && ssh host 'ls /home'"CODE
HIGHtests/test_backends.py1546 """chmod after && should be caught."""STRING
HIGHtests/test_backends.py1562 """Normal && chains should be fine."""STRING
HIGHEvoScientist/backends.py364 "for example: ssh host 'cd /home/user/project && python train.py'."CODE
HIGHEvoScientist/backends.py245 >>> [(i, h, r, e) for _, i, h, r, e in _ssh_invocations("cat x && ssh -p 22 host 'pwd'")]STRING
HIGHEvoScientist/backends.py292 >>> _ssh_remote_command_spans("cat /tmp/x && ssh host 'pwd'")STRING
HIGHEvoScientist/middleware/error_normalization.py10``{"message": …, "status_code": …, "body": …, "headers": null,STRING
HIGHEvoScientist/middleware/error_normalization.py11"raw_response": null, "data": {…}}`` with no ``error`` / ``class`` /STRING
HIGHEvoScientist/langgraph_dev/manager.py215 ``{"workspace": null}`` or ``{"workspace": []}`` would parse fine, passSTRING
Structural Annotation Overuse49 hits · 91 pts
SeverityFileLineSnippetContext
LOWEvoScientist/prompts.py183## Step 5: Write ReportCOMMENT
LOWEvoScientist/prompts.py189## Step 6: VerifyCOMMENT
LOWEvoScientist/prompts.py105## Step 3: Execute & DebugCOMMENT
LOWEvoScientist/prompts.py130## Step 4: Evaluate & IterateCOMMENT
LOWEvoScientist/prompts.py88 return "\n".join(["## Step 1: Intake & Scope", *bullets])STRING
LOWEvoScientist/prompts.py91_EXPERIMENT_WORKFLOW_EXECUTION = """## Step 2: Plan (Recommended Structure)STRING
LOWEvoScientist/config/onboard/helpers.py644 # Step 1: ValidateCOMMENT
LOWEvoScientist/config/onboard/helpers.py660 # Step 2: Offer to installCOMMENT
LOWEvoScientist/skills/find-skills/SKILL.md20## Step 1: Search for SkillsCOMMENT
LOWEvoScientist/skills/find-skills/SKILL.md42## Step 2: Present OptionsCOMMENT
LOWEvoScientist/skills/find-skills/SKILL.md50## Step 3: InstallCOMMENT
LOWEvoScientist/skills/skill-creator/SKILL.md206### Step 1: Spawn all runs (with-skill AND baseline) using `task` toolCOMMENT
LOWEvoScientist/skills/skill-creator/SKILL.md236### Step 2: While runs are in progress, draft assertionsCOMMENT
LOWEvoScientist/skills/skill-creator/SKILL.md242### Step 3: As runs complete, capture timing dataCOMMENT
LOWEvoScientist/skills/skill-creator/SKILL.md254### Step 4: Grade, aggregate, and launch the viewerCOMMENT
LOWEvoScientist/skills/skill-creator/SKILL.md287### Step 5: Read the feedbackCOMMENT
LOWEvoScientist/skills/skill-creator/SKILL.md330### Step 1: Generate trigger eval queriesCOMMENT
LOWEvoScientist/skills/skill-creator/SKILL.md347### Step 2: Review with userCOMMENT
LOWEvoScientist/skills/skill-creator/SKILL.md356### Step 3: Run the optimization loopCOMMENT
LOWEvoScientist/skills/skill-creator/SKILL.md377### Step 4: Apply the resultCOMMENT
LOWEvoScientist/skills/skill-creator/agents/grader.md21### Step 1: Read the TranscriptCOMMENT
LOWEvoScientist/skills/skill-creator/agents/grader.md27### Step 2: Examine Output FilesCOMMENT
LOWEvoScientist/skills/skill-creator/agents/grader.md33### Step 3: Evaluate Each AssertionCOMMENT
LOWEvoScientist/skills/skill-creator/agents/grader.md43### Step 4: Extract and Verify ClaimsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/grader.md61### Step 5: Read User NotesCOMMENT
LOWEvoScientist/skills/skill-creator/agents/grader.md68### Step 6: Critique the EvalsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/grader.md81### Step 7: Write Grading ResultsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/grader.md101### Step 8: Read Executor Metrics and TimingCOMMENT
LOWEvoScientist/skills/skill-creator/agents/comparator.md22### Step 1: Read Both OutputsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/comparator.md29### Step 2: Understand the TaskCOMMENT
LOWEvoScientist/skills/skill-creator/agents/comparator.md37### Step 3: Generate Evaluation RubricCOMMENT
LOWEvoScientist/skills/skill-creator/agents/comparator.md60### Step 4: Evaluate Each Output Against the RubricCOMMENT
LOWEvoScientist/skills/skill-creator/agents/comparator.md68### Step 5: Check Assertions (if provided)COMMENT
LOWEvoScientist/skills/skill-creator/agents/comparator.md77### Step 6: Determine the WinnerCOMMENT
LOWEvoScientist/skills/skill-creator/agents/comparator.md87### Step 7: Write Comparison ResultsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md23### Step 1: Read Comparison ResultCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md29### Step 2: Read Both SkillsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md39### Step 3: Read Both TranscriptsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md49### Step 4: Analyze Instruction FollowingCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md59### Step 5: Identify Winner StrengthsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md69### Step 6: Identify Loser WeaknessesCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md77### Step 7: Generate Improvement SuggestionsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md87### Step 8: Write Analysis ResultsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md205### Step 1: Read Benchmark DataCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md211### Step 2: Analyze Per-Assertion PatternsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md220### Step 3: Analyze Cross-Eval PatternsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md227### Step 4: Analyze Metrics PatternsCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md234### Step 5: Generate NotesCOMMENT
LOWEvoScientist/skills/skill-creator/agents/analyzer.md249### Step 6: Write NotesCOMMENT
Docstring Block Structure12 hits · 60 pts
SeverityFileLineSnippetContext
HIGHEvoScientist/__init__.py45Lazily import and cache package-level attributes. Args: name: The attribute name to look up. Returns: STRING
HIGHEvoScientist/ccproxy_manager.py214Start ccproxy serve as a background process. Args: port: Port number for the proxy server. Returns: STRING
HIGHEvoScientist/middleware/model_fallback.py238Walk the fallback chain, trying each model until one succeeds. Shared implementation for both sync and async middleSTRING
HIGHEvoScientist/middleware/model_fallback.py340Check non-fallbackable conditions, then delegate to ``_try_fallbacks``. Args: primary_exc: The exception raSTRING
HIGHEvoScientist/tools/skill_manager.py16Manage user-installable skills: install from GitHub or local path, list available skills, browse remote skills, get detaSTRING
HIGHEvoScientist/llm/models.py432Get a chat model instance. Args: model: Model name (short name like 'claude-sonnet-4-6' or full ID STRING
HIGHEvoScientist/subagents/_factory.py23Build a deployable graph for the ``name`` sub-agent defined in yaml. Args: name: The sub-agent's key in oneSTRING
HIGHEvoScientist/config/settings.py612Coerce a value to the expected field type. Args: value: The value to coerce. field_type: The targetSTRING
HIGHEvoScientist/langgraph_dev/manager.py552Start langgraph dev as a background subprocess. Args: workspace_dir: Working directory for the subprocess (STRING
HIGHEvoScientist/commands/implementation/model.py10Parse model name and provider from argument list. Args: args: Non-empty argument list (model_name [providerSTRING
HIGHEvoScientist/channels/imessage/targets.py150Parse an iMessage target string. Supports formats: - chat_id:123 - chat_guid:abc-def - chat_identifier:STRING
HIGHEvoScientist/channels/imessage/rpc_client.py127Send a JSON-RPC request and wait for response. Args: method: RPC method name params: MeSTRING
Modern AI Meta-Vocabulary9 hits · 32 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_langgraph_manager.py279# ensure_langgraph_dev — high-level orchestrationCOMMENT
MEDIUM…erature/SIGIR2026_public_arxiv_systematic_survey_zh.md126## 5. Search Agents、RAG 与推理:从单轮检索到轨迹级策略学习COMMENT
MEDIUM…erature/SIGIR2026_public_arxiv_systematic_survey_zh.md148### 5.4 长视频与时空 grounding 说明 agentic reasoning 已跨出文本COMMENT
MEDIUM…erature/SIGIR2026_public_arxiv_systematic_survey_en.md128## 5. Search Agents, RAG, and Reasoning: From Single-Turn Retrieval to Trajectory-Level Policy LearningCOMMENT
MEDIUMEvoScientist/sessions.py652 # a multi-agent DB where a third-party tool shares the sameCOMMENT
MEDIUMEvoScientist/backends.py31# If the agent hallucinates an absolute system path, we block it.COMMENT
MEDIUMEvoScientist/ccproxy_manager.py332# High-level orchestrationCOMMENT
MEDIUMEvoScientist/middleware/code_interpreter.py69# Multi-agent orchestration is the killer use case: ``Promise.all`` overCOMMENT
MEDIUMEvoScientist/langgraph_dev/manager.py897# High-level orchestrationCOMMENT
Over-Commented Block37 hits · 28 pts
SeverityFileLineSnippetContext
LOWtests/test_stt.py261# EvoSci config set stt_enabled trueCOMMENT
LOWEvoScientist/EvoScientist.py61# _ensure_config(new_cfg) has overwritten the active config — causingCOMMENT
LOWEvoScientist/llm/context_window.py41# Order matters — first match wins; put more specific patterns first.COMMENT
LOWEvoScientist/llm/models.py121_FALSEY_ENV_VALUES = {"0", "false", "no", "off"}COMMENT
LOWEvoScientist/llm/models.py501 if _is_openai_proxy:COMMENT
LOWEvoScientist/llm/models.py561COMMENT
LOWEvoScientist/llm/patches.py741# ``{"description": docstring}`` — the endpoint still ends up in theCOMMENT
LOWEvoScientist/llm/patches.py781 _langgraph_schema_silenced_patched = TrueCOMMENT
LOWEvoScientist/llm/patches.py921 # Empty-string fallback for ALL DeepSeek models (not justCOMMENT
LOWEvoScientist/llm/patches.py941# Without this, async sub-agents stay on the model their graph was compiledCOMMENT
LOWEvoScientist/llm/errors.py101 for.COMMENT
LOWEvoScientist/llm/errors.py161# Kept here rather than imported from ``models.py`` to keep theCOMMENT
LOWEvoScientist/subagents/_factory.py81COMMENT
LOWEvoScientist/config/settings.py181 # LLM SettingsCOMMENT
LOWEvoScientist/config/settings.py201 enable_async_subagents: bool = TrueCOMMENT
LOWEvoScientist/config/settings.py221 # back to UTC if it can't be determined; set e.g. "Europe/London" to pin one.COMMENT
LOWEvoScientist/config/settings.py241 # each count as 1) before raising GraphRecursionError. Resets on everyCOMMENT
LOWEvoScientist/config/settings.py281 # Workspace SettingsCOMMENT
LOWEvoScientist/config/settings.py421COMMENT
LOWEvoScientist/mcp/client.py21COMMENT
LOWEvoScientist/mcp/client.py101# =============================================================================COMMENT
LOWEvoScientist/cli/async_notifier.py61 # drains for any current_thread_id (back-compat for direct callers).COMMENT
LOWEvoScientist/cli/tui_interactive.py701 # whose workspace differs from the one the langgraph devCOMMENT
LOWEvoScientist/cli/channel.py461COMMENT
LOWEvoScientist/cli/interactive.py761 # in a worker thread so the asyncio event loop keepsCOMMENT
LOWEvoScientist/cli/commands.py1541 console.print("[dim]Press Ctrl+C to stop.[/dim]\n")COMMENT
LOWEvoScientist/langgraph_dev/__init__.py21# loop that serves runs. Forcing the Proactor loop policy here — at import,COMMENT
LOWEvoScientist/langgraph_dev/main_graph.py21from langgraph.graph.state import CompiledStateGraphCOMMENT
LOWEvoScientist/langgraph_dev/manager.py241COMMENT
LOWEvoScientist/langgraph_dev/manager.py261_PROCESS_WORKSPACE: Path | None = NoneCOMMENT
LOWEvoScientist/langgraph_dev/manager.py481 _unlink_workspace_sidecar()COMMENT
LOWEvoScientist/langgraph_dev/manager.py601 # (a) Our own previous langgraph dev (PID matches RUNTIME.pid_file) — kill it.COMMENT
LOWEvoScientist/langgraph_dev/manager.py621 # is genuinely free so the upcoming bind() doesn't race aCOMMENT
LOWEvoScientist/langgraph_dev/manager.py661 # scans lines this subprocess writes — never a stale URL left in theCOMMENT
LOWEvoScientist/langgraph_dev/manager.py681 sub_env["EVOSCIENTIST_WORKSPACE_DIR"] = str(workspace_dir)COMMENT
LOWEvoScientist/langgraph_dev/manager.py701 # ``EvoSci`` / ``EvoSci serve``. The CLI's main agent already loadedCOMMENT
LOWEvoScientist/langgraph_dev/manager.py921 background workers will fail.COMMENT
Self-Referential Comments8 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_skills_manager.py748 # Create a fake repo structureCOMMENT
MEDIUMtests/test_event_loop.py181 # Create a fresh loopCOMMENT
MEDIUMtests/test_sessions.py2817 # Create a valid but empty SQLite DB (no checkpoints table).COMMENT
MEDIUMtests/test_mcp_client.py1300 # Create a fake executable in a temp bin dirCOMMENT
MEDIUMtests/test_mcp_client.py124 # Create a fake executable next to sys.executableCOMMENT
MEDIUMtests/test_channel_debug.py177 # Create a minimal concrete channelCOMMENT
MEDIUMEvoScientist/utils.py91 # Create a formatted display of the promptCOMMENT
MEDIUMEvoScientist/channels/standalone.py96 # Create a lightweight manager for the consumer to useCOMMENT
Redundant / Tautological Comments12 hits · 16 pts
SeverityFileLineSnippetContext
LOWEvoScientist/tools/skills_manager.py500 # Check if local path existsCOMMENT
LOWEvoScientist/tools/skills_manager.py815 # Check if it's a built-in skill (read-only, cannot be uninstalled)COMMENT
LOWEvoScientist/config/settings.py197 # Set False to run fully in-process — saves the startup cost in scenariosCOMMENT
LOWEvoScientist/config/onboard/steps.py1288 # Check if any selected servers require npxCOMMENT
LOWEvoScientist/stream/display.py853 # Check if any sub-agent is activeCOMMENT
LOWEvoScientist/mcp/client.py682 # Check if any pattern contains wildcard charactersCOMMENT
LOWEvoScientist/commands/implementation/mcp_install.py70 # Check if it's a tag — fall through to browserCOMMENT
LOWEvoScientist/skills/skill-creator/scripts/run_eval.py88 # Check if the model called load_skill with the right skill nameCOMMENT
LOWEvoScientist/skills/skill-creator/scripts/init_skill.py207 # Check if directory already existsCOMMENT
LOWEvoScientist/channels/middleware.py275 # Check if already has pending requestCOMMENT
LOWEvoScientist/channels/imessage/targets.py185 # Check if remainder is a chat targetCOMMENT
LOWEvoScientist/channels/imessage/rpc_client.py214 # Check if it's a response (has id)COMMENT
AI Structural Patterns20 hits · 16 pts
SeverityFileLineSnippetContext
LOWtests/test_cli_serve.py12CODE
LOWtests/test_cli_serve.py46CODE
LOWtests/fakes.py207CODE
LOWtests/test_cli_deploy.py23CODE
LOWtests/test_cli_deploy.py67CODE
LOWEvoScientist/middleware/memory.py611CODE
LOWEvoScientist/middleware/memory.py231CODE
LOWEvoScientist/stream/display.py517CODE
LOWEvoScientist/stream/display.py1282CODE
LOWEvoScientist/cli/tui_runtime.py66CODE
LOWEvoScientist/cli/tui_interactive.py1282CODE
LOWEvoScientist/cli/tui_backends.py18CODE
LOWEvoScientist/cli/tui_backends.py46CODE
LOWEvoScientist/cli/interactive.py331CODE
LOWEvoScientist/cli/commands.py75CODE
LOWEvoScientist/cli/commands.py2026CODE
LOWEvoScientist/cli/commands.py408CODE
LOWEvoScientist/channels/mixins.py141CODE
LOWEvoScientist/channels/consumer.py208CODE
LOWEvoScientist/channels/dingtalk/channel.py319CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtests/test_background_middleware.py0cross-platform command that sleeps for *seconds* and exits 0.STRING
HIGHtests/test_background.py0cross-platform command that sleeps for *seconds* and exits 0.STRING
HIGHtests/test_backends.py0cross-platform command that sleeps for *seconds* and exits 0.STRING
Verbosity Indicators8 hits · 11 pts
SeverityFileLineSnippetContext
LOWEvoScientist/prompts.py183## Step 5: Write ReportCOMMENT
LOWEvoScientist/prompts.py189## Step 6: VerifyCOMMENT
LOWEvoScientist/prompts.py105## Step 3: Execute & DebugCOMMENT
LOWEvoScientist/prompts.py130## Step 4: Evaluate & IterateCOMMENT
LOWEvoScientist/prompts.py88 return "\n".join(["## Step 1: Intake & Scope", *bullets])STRING
LOWEvoScientist/prompts.py91_EXPERIMENT_WORKFLOW_EXECUTION = """## Step 2: Plan (Recommended Structure)STRING
LOWEvoScientist/config/onboard/helpers.py644 # Step 1: ValidateCOMMENT
LOWEvoScientist/config/onboard/helpers.py660 # Step 2: Offer to installCOMMENT
Fake / Example Data10 hits · 10 pts
SeverityFileLineSnippetContext
LOWtests/test_dingtalk_channel.py128 channel._access_token = "fake-token"CODE
LOWtests/test_dingtalk_channel.py250 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py553 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py198 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py342 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py360 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py617 channel._access_token = "fake-token"CODE
LOWtests/test_additional_channel_smoke.py27 chat_id="user@example.com",CODE
LOWtests/test_additional_channel_smoke.py29 metadata={"chat_id": "user@example.com"},CODE
LOWEvoScientist/config/onboard/helpers.py157 kwargs["placeholder"] = placeholderCODE
AI Slop Vocabulary4 hits · 9 pts
SeverityFileLineSnippetContext
LOWtests/test_llm.py2188 # Should not raise, just return the payload as-isCOMMENT
MEDIUMtests/test_langgraph_dev_http.py112 # Ollama suffix — robust to future static Ollama entries in the registry.COMMENT
MEDIUMEvoScientist/llm/patches.py803# azure-ignore is not sufficient). The only robust fix is to drop these itemsCOMMENT
LOWEvoScientist/cli/tui_interactive.py2164 # errors; callers just return so the send is dropped.COMMENT
Dead Code3 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_llm.py1939CODE
MEDIUMtests/test_async_notifier.py96CODE
MEDIUMtests/test_async_notifier.py964CODE