Repository Analysis

EvoScientist/EvoScientist

🔬 Harness Vibe Research with Self-evolving AI Scientists

50.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,529 GitHub stars. SynthScan v2.0 examined 158,066 lines of code across 458 source files, recording 5680 pattern matches distributed across 19 syntactic categories. The overall adjusted score of 50.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).

50.6
Adjusted Score
50.6
Raw Score
100%
Time Factor
2026-08-27
Last Push
4.5K
Stars
Python
Language
158.1K
Lines of Code
458
Files
5.7K
Pattern Hits
2026-08-29
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 41MEDIUM 1046LOW 4593

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 5680 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 Separators1001 hits · 3583 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.py102# =============================================================================COMMENT
MEDIUMtests/test_hitl.py104# =============================================================================COMMENT
MEDIUMtests/test_hitl.py331# =============================================================================COMMENT
MEDIUMtests/test_hitl.py333# =============================================================================COMMENT
MEDIUMtests/test_hitl.py374# =============================================================================COMMENT
MEDIUMtests/test_hitl.py376# =============================================================================COMMENT
MEDIUMtests/test_hitl.py432# =============================================================================COMMENT
MEDIUMtests/test_hitl.py434# =============================================================================COMMENT
MEDIUMtests/test_hitl.py578# =============================================================================COMMENT
MEDIUMtests/test_hitl.py580# =============================================================================COMMENT
MEDIUMtests/test_hitl.py623# =============================================================================COMMENT
MEDIUMtests/test_hitl.py625# =============================================================================COMMENT
MEDIUMtests/test_hitl.py710# =============================================================================COMMENT
MEDIUMtests/test_hitl.py712# =============================================================================COMMENT
MEDIUMtests/test_hitl.py923# =============================================================================COMMENT
MEDIUMtests/test_hitl.py925# =============================================================================COMMENT
MEDIUMtests/test_hitl.py798# =============================================================================COMMENT
MEDIUMtests/test_hitl.py800# =============================================================================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
941 more matches not shown…
Hyper-Verbose Identifiers3162 hits · 2760 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.py108 def test_empty_requests_auto_approves(self):CODE
LOWtests/test_hitl.py114 def test_session_auto_approve(self):CODE
LOWtests/test_hitl.py337 def test_auto_approve_default(self):CODE
LOWtests/test_hitl.py367 def test_shell_allow_list_set(self):CODE
LOWtests/test_hitl.py380 async def test_interrupt_from_updates_mode(self):CODE
LOWtests/test_hitl.py438 def test_parse_approval_approve(self):CODE
LOWtests/test_hitl.py444 def test_parse_approval_reject(self):CODE
LOWtests/test_hitl.py489 def test_should_auto_approve_non_execute(self):CODE
LOWtests/test_hitl.py494 def test_should_auto_approve_empty(self):CODE
LOWtests/test_hitl.py499 def test_should_auto_approve_execute_no_allowlist(self):CODE
LOWtests/test_hitl.py588 async def test_register_and_resolve_reply(self):CODE
LOWtests/test_hitl.py629 def test_prompt_fn_called_for_execute(self):CODE
LOWtests/test_hitl.py718 def test_hitl_interrupt_on_helper_gates_on_auto_approve(self):CODE
LOWtests/test_hitl.py723 def test_hitl_interrupt_on_helper_returns_shell_tools(self):CODE
LOWtests/test_hitl.py934 def test_dangerous_is_approved_under_session_grant(self):CODE
LOWtests/test_hitl.py1022 def test_async_factory_guards_research_agents(self):CODE
LOWtests/test_hitl.py1030 def test_async_factory_does_not_guard_internal_agents(self):CODE
LOWtests/test_hitl.py1040 def test_delegation_prompt_explains_blocked_command_relay(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.py156 def test_non_execute_tool_auto_approves(self):CODE
LOWtests/test_hitl.py181 def test_execute_with_matching_allow_list(self):CODE
LOWtests/test_hitl.py206 def test_execute_not_in_allow_list_prompts(self):CODE
LOWtests/test_hitl.py236 def test_run_in_background_not_in_allow_list_prompts(self):CODE
LOWtests/test_hitl.py270 def test_run_in_background_in_allow_list_auto_approves(self):CODE
LOWtests/test_hitl.py299 def test_delete_only_request_prompts_not_auto_approved(self):CODE
LOWtests/test_hitl.py349 def test_shell_allow_list_default(self):CODE
LOWtests/test_hitl.py417 async def test_updates_without_interrupt_skipped(self):CODE
LOWtests/test_hitl.py456 def test_parse_approval_unrecognized(self):CODE
LOWtests/test_hitl.py463 def test_format_approval_prompt(self):CODE
LOWtests/test_hitl.py477 def test_format_approval_prompt_multiple(self):CODE
LOWtests/test_hitl.py516 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.py546 def test_should_auto_approve_allowlist_match(self):CODE
LOWtests/test_hitl.py561 def test_should_auto_approve_delete_not_cleared(self):CODE
LOWtests/test_hitl.py604 def test_try_resolve_no_pending(self):CODE
LOWtests/test_hitl.py612 async def test_reply_timeout_returns_none(self):CODE
LOWtests/test_hitl.py658 def test_prompt_fn_not_called_for_auto_approve(self):CODE
LOWtests/test_hitl.py685 def test_prompt_fn_not_called_for_non_execute(self):CODE
LOWtests/test_hitl.py734 def test_auto_mode_implies_auto_approve_so_nothing_is_armed(self):CODE
LOWtests/test_hitl.py745 def test_hitl_interrupt_on_reaches_create_deep_agent(self):CODE
LOWtests/test_hitl.py816 def test_dangerous_command_rejected_under_auto_approve(self, monkeypatch):CODE
LOWtests/test_hitl.py836 def test_everyday_command_approved_under_auto_approve(self, monkeypatch):CODE
LOWtests/test_hitl.py848 def test_session_grant_blanket_approves_dangerous(self, monkeypatch):CODE
LOWtests/test_hitl.py862 def test_interactive_dangerous_calls_prompt(self, monkeypatch):CODE
LOWtests/test_hitl.py882 def test_schedule_task_always_prompts_not_auto_cleared(self, monkeypatch):CODE
LOWtests/test_hitl.py905 def test_malformed_request_is_not_auto_approved(self, monkeypatch):CODE
LOWtests/test_hitl.py950 def test_length_matches_all_approved(self):CODE
LOWtests/test_hitl.py961 def test_empty_batch_returns_empty(self):CODE
LOWtests/test_hitl.py972 def test_get_default_backend_applies_forced_guard(self):CODE
LOWtests/test_hitl.py983 def test_get_default_backend_defaults_to_config_auto_approve(self):CODE
LOWtests/test_hitl.py1052 def test_build_hitl_resume_is_id_keyed(self):CODE
LOWtests/test_hitl.py1058 def test_two_parallel_subagent_interrupts_drain_without_crash(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
3102 more matches not shown…
Excessive Try-Catch Wrapping517 hits · 472 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.py117except Exception:CODE
LOWtests/test_background_middleware.py60 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.py758 except Exception as exc:CODE
LOWEvoScientist/sessions.py1814 except Exception:CODE
LOWEvoScientist/sessions.py1876 except Exception:CODE
LOWEvoScientist/sessions.py1380 except Exception:STRING
LOWEvoScientist/sessions.py1320 except Exception: # pragma: no cover - never let UI break sweepSTRING
LOWEvoScientist/sessions.py1565 except Exception:STRING
LOWEvoScientist/sessions.py1704 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.py1336 except Exception:CODE
LOWEvoScientist/backends.py1349 except Exception:CODE
LOWEvoScientist/backends.py1766 except Exception as exc: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/expert_async_subagent.py160 except Exception as e:CODE
LOWEvoScientist/middleware/expert_async_subagent.py187 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.py98 except Exception:CODE
LOWEvoScientist/middleware/memory.py467 except Exception as e:CODE
LOWEvoScientist/middleware/memory.py484 except Exception as e:CODE
LOWEvoScientist/middleware/model_fallback.py261 except Exception as fb_exc:CODE
LOWEvoScientist/middleware/model_fallback.py331 except Exception as fb_exc:CODE
LOWEvoScientist/middleware/model_fallback.py458 except Exception as exc:CODE
LOWEvoScientist/middleware/model_fallback.py476 except Exception as exc:CODE
LOWEvoScientist/middleware/tool_selector.py92 except Exception:CODE
LOWEvoScientist/middleware/tool_selector.py213 except Exception as exc:CODE
LOWEvoScientist/middleware/tool_selector.py262 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.py318 except Exception as exc:CODE
LOWEvoScientist/middleware/error_normalization.py331 except Exception as exc:CODE
LOWEvoScientist/middleware/background.py31 except Exception:CODE
LOWEvoScientist/middleware/active_team.py76 except Exception:CODE
LOWEvoScientist/middleware/active_team.py108 except Exception:CODE
LOWEvoScientist/middleware/active_team.py112 except Exception:CODE
LOWEvoScientist/middleware/utils.py61 except Exception:CODE
LOWEvoScientist/middleware/scheduler.py72 except Exception as e:CODE
LOWEvoScientist/middleware/scheduler.py89 except Exception as e:CODE
457 more matches not shown…
Unused Imports473 hits · 434 pts
SeverityFileLineSnippetContext
LOWtests/test_serde_default_rich_exception.py17CODE
LOWtests/test_serve_agent_holder.py9CODE
LOWtests/test_middleware_utils.py8CODE
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.py241CODE
LOWtests/test_wechat_channel.py246CODE
LOWtests/test_async_subagent_swap.py8CODE
LOWtests/test_autoskills.py1CODE
LOWtests/test_async_subagent_factory.py10CODE
LOWtests/test_route_async_specs.py13CODE
LOWtests/test_observation_memory.py1CODE
LOWtests/test_active_team_middleware.py3CODE
LOWtests/test_cli_async_runtime.py9CODE
LOWtests/test_llm.py10CODE
LOWtests/test_file_mentions.py3CODE
LOWtests/test_langgraph_schema_generator_silenced.py11CODE
LOWtests/test_picker_widgets.py11CODE
LOWtests/test_error_normalization_middleware.py10CODE
LOWtests/test_langgraph_dev_deploy_mode.py9CODE
LOWtests/test_agent_loader.py3CODE
LOWtests/test_command_goto_none_crash.py35CODE
LOWtests/test_command_goto_none_crash.py48CODE
LOWtests/test_expert_container.py3CODE
LOWtests/test_tui_completion_window.py11CODE
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_runtime.py3CODE
LOWtests/test_mcp_client.py392CODE
LOWtests/test_mcp_client.py615CODE
LOWtests/test_graph_gateway.py3CODE
LOWtests/test_experts_command.py3CODE
LOWtests/test_middleware_event_sink.py11CODE
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_panel_widget.py10CODE
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/test_channel_sends.py3CODE
LOWtests/fakes.py3CODE
LOWtests/test_stt.py7CODE
LOWtests/test_channel_command_ui.py1CODE
LOWtests/test_webui_launcher.py11CODE
LOWtests/test_status_bar.py3CODE
LOWtests/test_expert_async_subagent.py3CODE
413 more matches not shown…
Cross-Language Confusion26 hits · 150 pts
SeverityFileLineSnippetContext
HIGHtests/test_background_middleware.py131 out = _run_bg(dangerous=True).invoke({"command": "cat /etc/hosts && cat ../x"})CODE
HIGHtests/test_background_middleware.py133 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.py113 result = validate_command("cd /etc && cat passwd")CODE
HIGHtests/test_backends.py141 assert validate_command("cd /etc && ls", dangerous=True) is NoneCODE
HIGHtests/test_backends.py1356 "cat /data/file.txt && ssh host 'ls /home/username/project'",CODE
HIGHtests/test_backends.py1363 == "cat ./data/file.txt && ssh host 'ls /home/username/project'"CODE
HIGHtests/test_backends.py1497 command = "cat /data/file.txt && ssh host 'ls /home/username/project'"CODE
HIGHtests/test_backends.py1504 == "cat ./data/file.txt && ssh host 'ls /home/username/project'"CODE
HIGHtests/test_backends.py1710 result = validate_command("echo ok && chmod 777 file")CODE
HIGHtests/test_backends.py1726 assert validate_command("mkdir build && cd build") is NoneCODE
HIGHtests/test_backends.py2063 assert check_dangerous_command("a || bash") is NoneCODE
HIGHtests/test_backends.py2064 assert check_dangerous_command("a && bash") is NoneCODE
HIGHtests/test_backends.py2152 "ls -la && curl http://x -o y",CODE
HIGHtests/test_backends.py2153 "ls -la || rm x",CODE
HIGHtests/test_backends.py1210 command = f"mkdir -p {tmp_workspace}/test-sanitized && echo ok"CODE
HIGHtests/test_backends.py1398 command = "echo __EVOSCI_SSH_REMOTE_0__ && ssh host 'ls /home'"CODE
HIGHtests/test_backends.py1709 """chmod after && should be caught."""STRING
HIGHtests/test_backends.py1725 """Normal && chains should be fine."""STRING
HIGHEvoScientist/backends.py632 "for example: ssh host 'cd /home/user/project && python train.py'."CODE
HIGHEvoScientist/backends.py379 a chain (``a; b``, ``a && b``, ``a | b``) must match, so an allow-listedSTRING
HIGHEvoScientist/backends.py513 >>> [(i, h, r, e) for _, i, h, r, e in _ssh_invocations("cat x && ssh -p 22 host 'pwd'")]STRING
HIGHEvoScientist/backends.py560 >>> _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.py269 ``{"workspace": null}`` or ``{"workspace": []}`` would parse fine, passSTRING
Modern Structural Boilerplate135 hits · 141 pts
SeverityFileLineSnippetContext
LOWtests/fakes.py116 def update_status_after_compact(self, tokens_after: int) -> None:CODE
LOWEvoScientist/sessions.py1165async def _set_user_version(conn: aiosqlite.Connection, version: int) -> None:STRING
LOWEvoScientist/EvoScientist.py103def set_active_config(cfg) -> None:CODE
LOWEvoScientist/EvoScientist.py231def 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/runtime.py28logger = logging.getLogger(__name__)CODE
LOWEvoScientist/runtime.py217 def _settle_abandoned_tasks(self) -> None:CODE
LOWEvoScientist/runtime.py314 def _set_handle_result(handle: RuntimeHandle[Any], result: Any) -> None:CODE
LOWEvoScientist/runtime.py321 def _set_handle_exception(handle: RuntimeHandle[Any], exc: BaseException) -> None:CODE
LOWEvoScientist/runtime.py559__all__ = [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/code_interpreter.py47logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/async_watcher.py35logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/memory.py38logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/model_fallback.py31logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/model_fallback.py77def set_fallback_chain(chain: list[tuple[str, str]]) -> None:CODE
LOWEvoScientist/middleware/tool_selector.py39logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/configurable_model.py44logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/__init__.py43__all__ = [CODE
LOWEvoScientist/middleware/ask_user.py37logger = logging.getLogger(__name__)CODE
LOWEvoScientist/middleware/tool_history_repair.py45logger = 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/llm/deepseek.py15logger = logging.getLogger(__name__)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.py47__all__ = [CODE
LOWEvoScientist/config/onboard/__init__.py34__all__ = ["run_onboard"]CODE
LOWEvoScientist/deploy/__init__.py22__all__ = ["server"]CODE
LOWEvoScientist/stream/sink.py24logger = logging.getLogger(__name__)CODE
LOWEvoScientist/mcp/registry.py27logger = logging.getLogger(__name__)CODE
LOWEvoScientist/mcp/client.py26logger = 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.py3373 def _set_status_usage_baseline(self, input_tokens: int) -> None:CODE
LOWEvoScientist/cli/tui_interactive.py3384 def update_status_after_compact(self, tokens_after: int) -> None:CODE
LOWEvoScientist/cli/tui_interactive.py3410 def _set_status_streaming_text(self, text: str | None) -> None:CODE
LOWEvoScientist/cli/channel.py107def _set_channel_response(msg_id: str, response: str) -> None:CODE
LOWEvoScientist/cli/__init__.py15__all__ = [CODE
LOWEvoScientist/cli/interactive.py592 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
75 more matches not shown…
Deep Nesting170 hits · 129 pts
SeverityFileLineSnippetContext
LOWtests/test_hitl.py745CODE
LOWtests/test_async_watcher_middleware.py18CODE
LOWEvoScientist/sessions.py465CODE
LOWEvoScientist/sessions.py591CODE
LOWEvoScientist/sessions.py1580CODE
LOWEvoScientist/background.py234CODE
LOWEvoScientist/runtime.py456CODE
LOWEvoScientist/backends.py164CODE
LOWEvoScientist/backends.py304CODE
LOWEvoScientist/backends.py715CODE
LOWEvoScientist/backends.py987CODE
LOWEvoScientist/backends.py1022CODE
LOWEvoScientist/backends.py1053CODE
LOWEvoScientist/backends.py1303CODE
LOWEvoScientist/backends.py1534CODE
LOWEvoScientist/backends.py1637CODE
LOWEvoScientist/utils.py43CODE
LOWEvoScientist/utils.py85CODE
LOWEvoScientist/ccproxy_manager.py55CODE
LOWEvoScientist/middleware/tool_selector.py71CODE
LOWEvoScientist/middleware/error_normalization.py64CODE
LOWEvoScientist/middleware/ask_user.py245CODE
LOWEvoScientist/middleware/tool_history_repair.py60CODE
LOWEvoScientist/middleware/tool_history_repair.py156CODE
LOWEvoScientist/tools/skills_manager.py835CODE
LOWEvoScientist/tools/skills_manager.py996CODE
LOWEvoScientist/tools/skills_manager.py1167CODE
LOWEvoScientist/tools/skill_manager.py10CODE
LOWEvoScientist/llm/models.py327CODE
LOWEvoScientist/llm/patches.py50CODE
LOWEvoScientist/llm/patches.py94CODE
LOWEvoScientist/llm/patches.py355CODE
LOWEvoScientist/llm/patches.py392CODE
LOWEvoScientist/llm/patches.py866CODE
LOWEvoScientist/llm/patches.py1249CODE
LOWEvoScientist/memory/autoskills/candidates.py124CODE
LOWEvoScientist/config/onboard/steps.py1108CODE
LOWEvoScientist/config/onboard/wizard.py67CODE
LOWEvoScientist/config/onboard/wizard.py156CODE
LOWEvoScientist/config/onboard/wizard.py479CODE
LOWEvoScientist/config/onboard/channels.py25CODE
LOWEvoScientist/config/onboard/channels.py828CODE
LOWEvoScientist/config/onboard/channels.py848CODE
LOWEvoScientist/config/onboard/helpers.py366CODE
LOWEvoScientist/config/onboard/helpers.py661CODE
LOWEvoScientist/deploy/webui.py48CODE
LOWEvoScientist/stream/events.py804CODE
LOWEvoScientist/stream/events.py858CODE
LOWEvoScientist/stream/events.py569CODE
LOWEvoScientist/stream/display.py277CODE
LOWEvoScientist/stream/display.py651CODE
LOWEvoScientist/stream/display.py1035CODE
LOWEvoScientist/stream/display.py1313CODE
LOWEvoScientist/stream/display.py1431CODE
LOWEvoScientist/stream/display.py1524CODE
LOWEvoScientist/stream/utils.py140CODE
LOWEvoScientist/stream/summarization.py15CODE
LOWEvoScientist/stream/v3_payloads.py56CODE
LOWEvoScientist/stream/tool_results.py18CODE
LOWEvoScientist/stream/diff_format.py66CODE
110 more matches not shown…
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.py667 # Step 1: ValidateCOMMENT
LOWEvoScientist/config/onboard/helpers.py683 # 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.py207Walk the fallback chain, trying each model until one succeeds. Shared implementation for both sync and async middleSTRING
HIGHEvoScientist/middleware/model_fallback.py383Check non-fallbackable conditions, then delegate to ``_try_fallbacks``. Args: primary_exc: The exception raSTRING
HIGHEvoScientist/tools/skill_manager.py18Manage user-installable skills: install from GitHub or local path, list available skills, browse remote skills, get detaSTRING
HIGHEvoScientist/llm/models.py332Get a chat model instance. Args: model: Model name (short name like 'claude-sonnet-4-6' or full ID STRING
HIGHEvoScientist/subagents/_factory.py27Build a deployable graph for the ``name`` sub-agent defined in yaml. Args: name: The sub-agent's key in oneSTRING
HIGHEvoScientist/config/settings.py672Coerce a value to the expected field type. Args: value: The value to coerce. field_type: The targetSTRING
HIGHEvoScientist/langgraph_dev/manager.py800Start 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
Over-Commented Block51 hits · 38 pts
SeverityFileLineSnippetContext
LOWtests/test_stt.py261# EvoSci config set stt_enabled trueCOMMENT
LOWEvoScientist/sessions.py1301 # have threads where the latest N checkpoints sit ABOVE aCOMMENT
LOWEvoScientist/sessions.py1621 try:COMMENT
LOWEvoScientist/EvoScientist.py81# tool selector). Cached separately from the main model; falls back to the mainCOMMENT
LOWEvoScientist/EvoScientist.py601 # only when the yaml-async spec list is non-empty. An expert-only setupCOMMENT
LOWEvoScientist/EvoScientist.py621 # expert name, no notification is enqueued, and the main agent neverCOMMENT
LOWEvoScientist/middleware/expert_async_subagent.py241COMMENT
LOWEvoScientist/middleware/tool_selector.py301 from langchain.agents.middleware import LLMToolSelectorMiddlewareCOMMENT
LOWEvoScientist/tools/skills_manager.py121 # SKILL.md body (post-frontmatter). Populated by ``_parse_skill_md`` soCOMMENT
LOWEvoScientist/tools/skills_manager.py161 body = content[match.end() :].lstrip()COMMENT
LOWEvoScientist/llm/context_window.py41 # Tencent Hunyuan HY3 — 262K context (OpenRouter ``tencent/hy3``).COMMENT
LOWEvoScientist/llm/models.py401 if _is_openai_proxy:COMMENT
LOWEvoScientist/llm/models.py461 # Moonshot: disable thinking for pre-K3 models to prevent LangChain fromCOMMENT
LOWEvoScientist/llm/models.py481 # so enabling `summary` is safe. See langchain-ai/langchain#37777.COMMENT
LOWEvoScientist/llm/patches.py81_patch_anthropic_proxy_compat()COMMENT
LOWEvoScientist/llm/patches.py781# Patch (module-level): silence langgraph_api's OpenAPI schema-generationCOMMENT
LOWEvoScientist/llm/patches.py841# Patch (lazy, Anthropic protocol): strip foreign reasoning blocks fromCOMMENT
LOWEvoScientist/llm/patches.py961COMMENT
LOWEvoScientist/llm/patches.py1061# ---------------------------------------------------------------------------COMMENT
LOWEvoScientist/llm/errors.py101 for.COMMENT
LOWEvoScientist/llm/errors.py161# Kept here rather than imported from ``models.py`` to keep theCOMMENT
LOWEvoScientist/subagents/_factory.py81 # ``mcp.yaml``. Use the cached helper so multiple ``build_async_subagent_graph``COMMENT
LOWEvoScientist/subagents/expert_container_async.py321 _get_default_middleware,COMMENT
LOWEvoScientist/memory/observations/store.py361 for document, entries in parsedCOMMENT
LOWEvoScientist/config/settings.py201 # non-blocking via AsyncSubAgent. Currently affects writing-agent andCOMMENT
LOWEvoScientist/config/settings.py221 # so widening never redirects their traffic off-box.COMMENT
LOWEvoScientist/config/settings.py241 # Empty string => the host's local IANA zone (resolved via tzlocal), fallingCOMMENT
LOWEvoScientist/config/settings.py261 # Keep the auto-started langgraph dev subprocess running after the CLICOMMENT
LOWEvoScientist/config/settings.py281 recursion_limit: int = 1_000_000COMMENT
LOWEvoScientist/config/settings.py321 default_workdir: str = ""COMMENT
LOWEvoScientist/config/settings.py461 enable_ask_user: bool = True # Enable ask_user tool for agent-initiated questionsCOMMENT
LOWEvoScientist/config/settings.py921 """COMMENT
LOWEvoScientist/config/onboard/wizard.py561 f"bytes ({exc}); revert will fall back to a re-serialized "COMMENT
LOWEvoScientist/config/onboard/wizard.py601 # we re-snapped here, declining the save after Reset wouldCOMMENT
LOWEvoScientist/mcp/client.py21COMMENT
LOWEvoScientist/mcp/client.py101COMMENT
LOWEvoScientist/cli/async_notifier.py61 # drains for any current_thread_id (back-compat for direct callers).COMMENT
LOWEvoScientist/cli/channel.py481COMMENT
LOWEvoScientist/cli/interactive.py821 async def _on_handle_session_resume(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.py301# Shell B blocks until Shell A's health-check finishes, then sees theCOMMENT
LOWEvoScientist/langgraph_dev/manager.py321_LOG_OFFSET_AT_START: int = 0COMMENT
LOWEvoScientist/langgraph_dev/manager.py841 config_file = _packaged_langgraph_config()COMMENT
LOWEvoScientist/langgraph_dev/manager.py901 RUNTIME.pid_dir.mkdir(parents=True, exist_ok=True)COMMENT
LOWEvoScientist/langgraph_dev/manager.py921COMMENT
LOWEvoScientist/langgraph_dev/manager.py941 # who want a clean workspace can opt out via:COMMENT
LOWEvoScientist/langgraph_dev/manager.py961 # MCP normally; async sub-agents stay disabled (no langgraph devCOMMENT
LOWEvoScientist/langgraph_dev/manager.py1201 """COMMENT
LOWEvoScientist/langgraph_dev/manager.py1281 if is_langgraph_dev_running(port=port, host=host):COMMENT
LOW.github/workflows/publish.yml1name: Publish to PyPICOMMENT
Modern AI Meta-Vocabulary9 hits · 32 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_langgraph_manager.py404# 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.py696 # a multi-agent DB where a third-party tool shares the sameCOMMENT
MEDIUMEvoScientist/backends.py43# If the agent hallucinates an absolute system path, we block it.COMMENT
MEDIUMEvoScientist/ccproxy_manager.py332# High-level orchestrationCOMMENT
MEDIUMEvoScientist/middleware/code_interpreter.py122# Multi-agent orchestration is the killer use case: ``Promise.all`` overCOMMENT
MEDIUMEvoScientist/langgraph_dev/manager.py1176# High-level orchestrationCOMMENT
Self-Referential Comments7 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_skills_manager.py768 # Create a fake repo structureCOMMENT
MEDIUMtests/test_sessions.py2831 # Create a valid but empty SQLite DB (no checkpoints table).COMMENT
MEDIUMtests/test_mcp_client.py1693 # Create a fake executable in a temp bin dirCOMMENT
MEDIUMtests/test_mcp_client.py131 # Create a fake executable next to sys.executableCOMMENT
MEDIUMtests/test_channel_debug.py178 # Create a minimal concrete channelCOMMENT
MEDIUMEvoScientist/utils.py113 # Create a formatted display of the promptCOMMENT
MEDIUMEvoScientist/channels/standalone.py103 # Create a lightweight manager for the consumer to useCOMMENT
AI Structural Patterns25 hits · 18 pts
SeverityFileLineSnippetContext
LOWtests/test_cli_serve.py14CODE
LOWtests/test_cli_serve.py49CODE
LOWtests/fakes.py207CODE
LOWtests/test_cli_deploy.py24CODE
LOWtests/test_cli_deploy.py70CODE
LOWtests/test_cli_deploy.py128CODE
LOWEvoScientist/backends.py1476CODE
LOWEvoScientist/middleware/memory.py620CODE
LOWEvoScientist/middleware/memory.py231CODE
LOWEvoScientist/tools/skills_manager.py467CODE
LOWEvoScientist/stream/display.py651CODE
LOWEvoScientist/stream/display.py1431CODE
LOWEvoScientist/cli/tui_runtime.py107CODE
LOWEvoScientist/cli/tui_interactive.py1531CODE
LOWEvoScientist/cli/tui_backends.py21CODE
LOWEvoScientist/cli/tui_backends.py51CODE
LOWEvoScientist/cli/interactive.py391CODE
LOWEvoScientist/cli/commands.py113CODE
LOWEvoScientist/cli/commands.py1442CODE
LOWEvoScientist/cli/commands.py2110CODE
LOWEvoScientist/cli/commands.py454CODE
LOWEvoScientist/langgraph_dev/manager.py789CODE
LOWEvoScientist/channels/mixins.py141CODE
LOWEvoScientist/channels/consumer.py208CODE
LOWEvoScientist/channels/dingtalk/channel.py319CODE
Redundant / Tautological Comments12 hits · 16 pts
SeverityFileLineSnippetContext
LOWEvoScientist/tools/skills_manager.py854 # Check if local path existsCOMMENT
LOWEvoScientist/tools/skills_manager.py1204 # Check if it's a built-in skill (read-only, cannot be uninstalled)COMMENT
LOWEvoScientist/config/settings.py205 # Set False to run fully in-process — saves the startup cost in scenariosCOMMENT
LOWEvoScientist/config/onboard/steps.py1323 # Check if any selected servers require npxCOMMENT
LOWEvoScientist/stream/display.py989 # Check if any sub-agent is activeCOMMENT
LOWEvoScientist/mcp/client.py858 # 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.py276 # 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
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
Fake / Example Data12 hits · 13 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.py554 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py670 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py680 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py199 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py343 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py361 channel._access_token = "fake-token"CODE
LOWtests/test_feishu_channel.py618 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.py180 kwargs["placeholder"] = placeholderCODE
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.py667 # Step 1: ValidateCOMMENT
LOWEvoScientist/config/onboard/helpers.py683 # Step 2: Offer to installCOMMENT
AI Slop Vocabulary4 hits · 11 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_langgraph_dev_http.py112 # Ollama suffix — robust to future static Ollama entries in the registry.COMMENT
MEDIUMEvoScientist/llm/patches.py925# azure-ignore is not sufficient). The only robust fix is to drop these itemsCOMMENT
MEDIUMEvoScientist/mcp/client.py237 # Forward by keyword: robust against future SDK signature changesCOMMENT
LOWEvoScientist/cli/tui_interactive.py2462 # errors; callers just return so the send is dropped.COMMENT
Dead Code4 hits · 7 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_llm.py2425CODE
MEDIUMtests/test_mcp_client.py582CODE
MEDIUMtests/test_async_notifier.py96CODE
MEDIUMtests/test_async_notifier.py964CODE