Repository Analysis

gptme/gptme

Your agent in your terminal, equipped with local tools: writes code, uses the terminal, browses the web. Make your own persistent autonomous agent on top!

35.7 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of gptme/gptme, a Python project with 4,401 GitHub stars. SynthScan v2.0 examined 467,836 lines of code across 1389 source files, recording 13056 pattern matches distributed across 26 syntactic categories. The overall adjusted score of 35.7 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).

35.7
Adjusted Score
35.7
Raw Score
100%
Time Factor
2026-08-29
Last Push
4.4K
Stars
Python
Language
467.8K
Lines of Code
1.4K
Files
13.1K
Pattern Hits
2026-08-29
Scan Date
0.12
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 173MEDIUM 1705LOW 11178

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 13056 distinct pattern matches across 26 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.

Hyper-Verbose Identifiers8713 hits · 7570 pts
SeverityFileLineSnippetContext
LOWtests/test_server_path_traversal.py50 def test_events_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py55 def test_step_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py63 def test_tool_confirm_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py71 def test_rerun_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py76 def test_elicit_respond_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py84 def test_interrupt_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py96 def test_browse_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py101 def test_upload_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py106 def test_file_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py112 def test_preview_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py120 def test_download_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py285 def test_user_avatar_rejects_non_image_extension(CODE
LOWtests/test_server_path_traversal.py303 def test_user_avatar_accepts_image_extension(CODE
LOWtests/test_server_path_traversal.py335 def test_agent_avatar_by_path_rejects_non_image_extension(CODE
LOWtests/test_server_path_traversal.py385 def test_conversation_agent_avatar_rejects_non_image_extension(CODE
LOWtests/test_server_path_traversal.py38def _assert_traversal_rejected(response):CODE
LOWtests/test_server_path_traversal.py132 def test_post_message_rejects_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py170 def test_rejects_traversal_in_files(CODE
LOWtests/test_server_path_traversal.py183 def test_safe_relative_path_not_rejected_as_traversal(CODE
LOWtests/test_server_path_traversal.py220 def test_name_with_dots_no_traversal(self, client: FlaskClient):CODE
LOWtests/test_server_path_traversal.py254 def test_generate_rejects_branch_traversal(self, client: FlaskClient, payload: str):CODE
LOWtests/test_server_path_traversal.py266 def test_valid_branch_accepted(self, client: FlaskClient):CODE
LOWtests/test_server_path_traversal.py319 def test_user_avatar_rejects_dotfile_without_image_ext(CODE
LOWtests/test_server_path_traversal.py361 def test_agent_avatar_by_path_accepts_image_extension(CODE
LOWtests/test_server_path_traversal.py427 def test_user_avatar_rejects_disguised_non_image(CODE
LOWtests/test_server_path_traversal.py470 def test_rejects_absolute_path_outside_cwd(CODE
LOWtests/test_server_path_traversal.py484 def test_rejects_home_directory_path(CODE
LOWtests/test_server_path_traversal.py498 def test_rejects_traversal_in_path(CODE
LOWtests/test_server_path_traversal.py525 def test_rejects_non_object_json_body(self, client: FlaskClient, body: object):CODE
LOWtests/test_server_path_traversal.py537 def test_rejects_name_that_slugifies_to_empty(CODE
LOWtests/test_server_path_traversal.py611 def test_whitespace_only_id_rejected_unit(self):CODE
LOWtests/test_server_path_traversal.py626 def test_control_or_edge_whitespace_id_rejected_unit(self, bad_id: str):CODE
LOWtests/test_server_path_traversal.py638 def test_multibyte_over_limit_rejected(self):CODE
LOWtests/test_server_path_traversal.py661 def test_too_long_branch_unit(self):CODE
LOWtests/test_server_path_traversal.py696 def test_multibyte_branch_over_limit_rejected(self):CODE
LOWtests/test_server_path_traversal.py716 def test_too_long_branch_via_endpoint(self, client: FlaskClient):CODE
LOWtests/test_server_path_traversal.py738 def test_rejects_traversal_payloads(self):CODE
LOWtests/test_server_path_traversal.py772 def test_rejects_non_string_branch(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py41 def test_matches_simple_at_ref(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py44 def test_matches_hyphenated_name(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py47 def test_matches_multiple_refs(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py53 def test_no_false_positive_on_email_address(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py64 def test_no_messages_yields_nothing(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py68 def test_no_at_ref_yields_nothing(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py73 def test_at_ref_matches_server_yields_hint(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py85 def test_at_ref_no_matching_server_yields_nothing(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py90 def test_no_loaded_servers_yields_nothing(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py96 def test_multiple_servers_in_one_message(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py109 def test_only_last_user_message_checked(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py120 def test_tool_without_description(self):CODE
LOWtests/test_hooks_mcp_namespace_hint.py136 def test_hint_format_contains_full_tool_name(self):CODE
LOWtests/test_commands_llm.py21def test_cmd_model_appends_replacement_prompt_and_persists_generation(tmp_path: Path):CODE
LOWtests/test_commands_llm.py51def test_cmd_tools_load_appends_replacement_prompt(tmp_path: Path):CODE
LOWtests/test_commands_llm.py76def test_cmd_context_reports_context_savings(tmp_path: Path):CODE
LOWtests/test_shell_issue729.py26def test_stderr_redirect_with_pipe(shell):CODE
LOWtests/test_shell_issue729.py49def test_jq_complex_syntax_nested_pipe(shell):CODE
LOWtests/test_shell_issue729.py87def test_jq_function_in_filter(shell):CODE
LOWtests/test_shell_issue729.py118def test_stdout_and_stderr_redirect(shell):CODE
LOWtests/test_dspy_basic.py138def test_tool_metric_empty_messages():CODE
LOWtests/test_dspy_basic.py154def test_prompt_optimizer_init(mock_dspy):CODE
8653 more matches not shown…
Decorative Section Separators1426 hits · 5004 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_hooks_mcp_namespace_hint.py35# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_hooks_mcp_namespace_hint.py37# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_hooks_mcp_namespace_hint.py58# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_hooks_mcp_namespace_hint.py60# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_api.py348# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_api.py350# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_api.py119# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_api.py121# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_api.py181# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_api.py183# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_api.py213# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_api.py215# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_api.py297# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_api.py299# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_adapter.py366# ============================================================================COMMENT
MEDIUMtests/test_mcp_adapter.py368# ============================================================================COMMENT
MEDIUMtests/test_lessons.py42# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py44# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py67# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py69# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py93# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py95# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py651# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py653# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py137# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py139# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py161# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py163# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py202# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py204# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py404# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py406# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py491# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py493# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py777# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py779# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py814# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_lessons.py816# ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_eval_behavioral_solutions.py1379# ── Parametrized solution verification ───────────────────────────────────────STRING
MEDIUMtests/test_eval_behavioral_solutions.py1451# ── Smoke tests for individual scenarios ─────────────────────────────────────STRING
MEDIUMtests/test_computer_x11_integration.py33# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_x11_integration.py35# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_x11_integration.py63# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_x11_integration.py65# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_x11_integration.py199# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_x11_integration.py201# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_x11_integration.py219# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_computer_x11_integration.py221# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_backtrack.py17# ── helpers ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/test_backtrack.py50# ── ConvCheckpoint primitives ─────────────────────────────────────────────────COMMENT
MEDIUMtests/test_backtrack.py100# ── /backtrack command ────────────────────────────────────────────────────────COMMENT
MEDIUMtests/test_k_best.py108# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_k_best.py110# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_k_best.py228# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_k_best.py230# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_k_best.py12# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_k_best.py14# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_k_best.py36# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_k_best.py38# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_k_best.py183# ---------------------------------------------------------------------------COMMENT
1366 more matches not shown…
Cross-Language Confusion115 hits · 638 pts
SeverityFileLineSnippetContext
HIGHtests/test_shell_issue729.py41. File descriptor redirects (2>/dev/null, 2>&1, etc.)STRING
HIGHtests/test_codeblock.py160pwd && ls -laCODE
HIGHtests/test_codeblock.py166 assert codeblocks[0] == Codeblock("shell", "pwd && ls -la")CODE
HIGHtests/test_shell_output_mixing_issue408.py106 ret1, out1, err1 = shell.run("sleep 0.1 && echo 'delayed output'")CODE
HIGHtests/test_server_client.py74 b'data: {"type": "connected", "session_id": null}'CODE
HIGHtests/test_tools_shell_background.py553 job = start_background_job("echo out && echo err >&2")CODE
HIGHtests/test_tools_shell_background.py186 job = start_background_job("echo hello && echo world")CODE
HIGHtests/test_tools_shell_background.py202 job = start_background_job("sleep 0.1 && echo done")CODE
HIGHtests/test_shell_issue772.py52. Combinations of || with pipe operators (|)STRING
HIGHtests/test_shell_issue772.py27 Issue: cat .env.local 2>/dev/null || cat .env.example | head -20STRING
HIGHtests/test_shell_issue772.py31 The shell tool was treating the first | in || as a pipe operator,STRING
HIGHtests/test_shell_issue772.py40 code = f"cat /nonexistent 2>/dev/null || cat {temp_file} | head -3"CODE
HIGHtests/test_shell_issue772.py62 Verify that || operator works correctly in basic cases.STRING
HIGHtests/test_shell_issue772.py64 code = "false || echo 'fallback'"CODE
HIGHtests/test_shell_issue772.py85 code = f"cat /nonexistent 2>/dev/null || cat {temp_file}"CODE
HIGHtests/test_shell_issue772.py102 """Test multiple || operators in sequence.STRING
HIGHtests/test_shell_issue772.py104 Verify that chains of || operators are handled correctly.STRING
HIGHtests/test_shell_issue772.py106 code = "false || false || echo 'third try'"CODE
HIGHtests/test_shell_issue772.py115 """Test combination of || and && operators.STRING
HIGHtests/test_shell_issue772.py115 """Test combination of || and && operators.STRING
HIGHtests/test_shell_issue772.py119 code = "true && echo 'success' || echo 'failure'"CODE
HIGHtests/test_shell_issue772.py133 cat file1 2>/dev/null || cat file2 | head -20STRING
HIGHtests/test_shell_issue772.py136 - stderr redirect (2>/dev/null)STRING
HIGHtests/test_shell_issue772.py147 code = f"cat /nonexistent 2>/dev/null || cat {temp_file} | head -5"CODE
HIGHtests/test_execenv.py410 env.run("cat input.txt > output.txt && echo ' modified' >> output.txt")CODE
HIGHtests/test_tools_shell_multiline.py13 gh pr checks "$pr" --json name,conclusion,workflowName --jq '.[] | select(.conclusion != null) | "\\(.workflowName): \CODE
HIGHtests/test_tools_shell_validation.py205 assert _find_first_unquoted_pipe("cmd1 || cmd2") is NoneCODE
HIGHtests/test_tools_shell_validation.py208 result = _find_first_unquoted_pipe("cmd1 || cmd2 | cmd3")CODE
HIGHtests/test_tools_shell_validation.py211 cmd = "cmd1 || cmd2 | cmd3"CODE
HIGHtests/test_tools_shell_validation.py1215 assert is_allowlisted("ls -la && pwd")CODE
HIGHtests/test_sandbox.py1020 # (suppressed with 2>/dev/null) so pre-existing lower hard limits areCOMMENT
HIGHtests/test_sandbox.py1031 # Hard limit is best-effort (2>/dev/null) so a pre-existing lowerCOMMENT
HIGHtests/test_reduce.py859 content="I'll run two things.\n```shell\necho a && echo b\n```",CODE
HIGHtests/test_reduce.py925 content="I'll run two things.\n```shell\necho a && echo b\n```",CODE
HIGHtests/test_reduce.py987 content="I'll run two things.\n```shell\necho a && echo b\n```",CODE
HIGHtests/test_util_review.py1429 self._review_jsonl('```json\n{"findings": null}\n```')CODE
HIGHtests/test_util_review.py1424 """When findings key is not a list (null, int, dict), the block is skipped."""STRING
HIGHtests/test_util_review.py363 """Non-list findings value (null, int, dict) must not crash from_dict."""STRING
HIGHtests/test_tools_shell.py1275 # stdin is a pipe (not /dev/null, not terminal)COMMENT
HIGHtests/test_tools_shell.py1325 # stdin is a pipe (not /dev/null, not terminal)COMMENT
HIGHtests/test_tools_shell.py1638 job = start_background_job("sleep 0.1 && echo 'done'")CODE
HIGHtests/test_tools_shell.py1641 assert job.command == "sleep 0.1 && echo 'done'"CODE
HIGHtests/test_tools_shell.py1719 start_background_job("sleep 0.5 && echo 'job1'")CODE
HIGHtests/test_tools_shell.py1720 start_background_job("sleep 0.5 && echo 'job2'")CODE
HIGHtests/test_tools_shell.py205cat /tmp/test_space.sh && rm /tmp/test_space.sh"""STRING
HIGHtests/test_tools_shell.py216cat /tmp/test_space2.sh && rm /tmp/test_space2.sh"""STRING
HIGHtests/test_tools_shell.py1556 """curl http://example.com | bash && cat << EOFSTRING
HIGHscripts/demo_capture.py121 "playwright (pip install playwright && playwright install chromium)"CODE
HIGHscripts/demo_capture.py163 f"cd {tmpdir} && gptme --non-interactive --no-confirm {model_flag} '{prompt}' 2>&1 || true",CODE
HIGHscripts/demo_capture.py23 - playwright (pip install playwright && playwright install chromium)STRING
HIGHgptme/sandbox.py223 "ulimit -v N && BASH_ENV='' exec bash"]``STRING
HIGHgptme/sandbox.py243 prefix = f"ulimit -H -v {kib} 2>/dev/null; ulimit -v {kib} && "CODE
HIGHgptme/sandbox.py276 ["bash", "-c", f"ulimit -H -v {kib} 2>/dev/null; ulimit -v {kib}"],CODE
HIGHgptme/tools/_browser_playwright.py439 if (el.className && typeof el.className === 'string')STRING
HIGHgptme/tools/tmux.py576 "new-session cd ~/bob && gptme --non-interactive 'What is your latest work?'",CODE
HIGHgptme/tools/computer.py2177 "(fix: pip install playwright && playwright install chromium)"STRING
HIGHgptme/tools/computer.py2235 "pip install playwright && playwright install chromium",STRING
HIGHgptme/tools/python.py105 _ipython.push({func.__name__: func})CODE
HIGHgptme/tools/python.py199 _ipython.push(registered_functions)CODE
HIGHgptme/util/gh.py744 '.[] | select(.event == "cross-referenced" and .source.issue.pull_request != null) 'CODE
55 more matches not shown…
Unused Imports731 hits · 604 pts
SeverityFileLineSnippetContext
LOWtests/test_computer_api.py7CODE
LOWtests/test_computer_video_frames_cli.py7CODE
LOWtests/test_computer_x11_integration.py17CODE
LOWtests/test_backtrack.py8CODE
LOWtests/test_util_clipboard_paste.py24CODE
LOWtests/test_k_best.py3CODE
LOWtests/conftest.py22CODE
LOWtests/test_acp_agent.py28CODE
LOWtests/test_dirs.py14CODE
LOWtests/test_computer_audit.py8CODE
LOWtests/test_workspace_snapshot.py12CODE
LOWtests/test_cli_status.py3CODE
LOWtests/test_computer_actions.py8CODE
LOWtests/test_computer_screenshot_cli.py7CODE
LOWtests/test_computer_task.py8CODE
LOWtests/test_eventlog.py3CODE
LOWtests/test_mcp_server.py3CODE
LOWtests/test_mcp_server.py586CODE
LOWtests/test_provider_plugins.py7CODE
LOWtests/test_terminal_startup_latency.py8CODE
LOWtests/test_circuit_breaker.py11CODE
LOWtests/test_anti_slop.py3CODE
LOWtests/test_timings.py22CODE
LOWtests/test_acp_client.py12CODE
LOWtests/test_acp_client.py32CODE
LOWtests/test_model_selection_trace_export.py3CODE
LOWtests/test_cli_from_turn.py3CODE
LOWtests/test_tools_hashline_edit.py3CODE
LOWtests/test_computer_record.py8CODE
LOWtests/test_local_discovery.py7CODE
LOWtests/test_tools_patch_anchored.py3CODE
LOWtests/test_tasks_api.py18CODE
LOWtests/test_execute_msg_hook_call_id.py17CODE
LOWtests/test_computer_doctor_cmd.py7CODE
LOWtests/test_acp_session_runtime.py3CODE
LOWtests/test_cmd_service.py7CODE
LOWtests/test_util_hooks.py3CODE
LOWtests/test_tools_request_tool_change.py1CODE
LOWtests/test_computer_demo_cmd.py8CODE
LOWtests/test_gptme_provider.py8CODE
LOWtests/test_acp_protocol_logging.py7CODE
LOWtests/test_github_ci_self_heal.py1CODE
LOWtests/test_browser_state.py3CODE
LOWtests/test_computer_run_task_cli.py8CODE
LOWtests/test_tools__anchored.py7CODE
LOWtests/test_snapshot_command.py3CODE
LOWtests/test_snapshot_command.py14CODE
LOWtests/test_treeofthoughts.py8CODE
LOWtests/test_tools_convert.py3CODE
LOWtests/test_computer_gate.py11CODE
LOWtests/test_computer_use_integration.py18CODE
LOWtests/test_computer_milestone_integration.py23CODE
LOWtests/test_util_cli_review_watch.py3CODE
LOWtests/test_computer_docker_config.py15CODE
LOWtests/test_skill_commands.py184CODE
LOWtests/test_acp_e2e_smoke.py13CODE
LOWtests/test_computer_settle.py12CODE
LOWtests/test_llm_openai.py6CODE
LOWtests/test_llm_openai.py7CODE
LOWtests/test_computer_risk_streaming.py16CODE
671 more matches not shown…
Excessive Try-Catch Wrapping587 hits · 594 pts
SeverityFileLineSnippetContext
LOWtests/test_eval_behavioral_solutions.py925 except Exception:STRING
LOWtests/test_eval_behavioral_solutions.py1435 except Exception as e:STRING
LOWtests/conftest.py141 except Exception:CODE
LOWtests/conftest.py418 except Exception as e:CODE
LOWtests/conftest.py449 except Exception as e:CODE
LOWtests/conftest.py497 except Exception:CODE
LOWtests/conftest.py741 except Exception as e:CODE
LOWtests/test_acp_agent.py413 except Exception as e:CODE
LOWtests/test_chat_history.py69 except Exception as e:CODE
MEDIUMtests/test_chat_history.py70 print(f"Error generating chat history: {e}")CODE
MEDIUMtests/test_circuit_breaker.py345def do_fail():CODE
MEDIUMtests/test_circuit_breaker.py371def do_fail():CODE
LOWtests/test_circuit_breaker.py348 except Exception as e:CODE
LOWtests/test_circuit_breaker.py414 except Exception:CODE
LOWtests/test_hooks_server_confirm.py211 except Exception as e:CODE
LOWtests/test_hooks_server_confirm.py219 except Exception as e:CODE
MEDIUMtests/test_hooks_server_confirm.py204def register_and_wait(tool_id):CODE
LOWtests/test_llm_anthropic.py377 except Exception:CODE
MEDIUMtests/test_subagent_unit.py5139def thread_target():CODE
LOWtests/test_subagent_unit.py5151 except Exception as e:CODE
MEDIUMtests/test_eval_behavioral.py1022 print(f"Error: negative value {value}")CODE
MEDIUMtests/test_eval_behavioral.py1028 print(f"Error: {e}")CODE
MEDIUMtests/test_eval_behavioral.py984def process_record(record):CODE
LOWtests/test_eval_behavioral.py1680 except Exception:CODE
LOWtests/test_eval_behavioral.py2949 except Exception as err:STRING
LOWtests/test_mcp_discovery.py160 except Exception as e:CODE
MEDIUMtests/test_computer_use_integration.py37def _playwright_available() -> bool:CODE
LOWtests/test_computer_use_integration.py184 except Exception:CODE
LOWtests/test_computer_use_integration.py61 except Exception:CODE
MEDIUMtests/test_computer_milestone_integration.py34def _playwright_available() -> bool:CODE
LOWtests/test_computer_milestone_integration.py81 except Exception:CODE
LOWtests/test_computer_milestone_integration.py54 except Exception:CODE
LOWtests/test_server_bad_input.py346 except Exception:CODE
LOWtests/test_llm_openai.py688 except Exception:CODE
LOWtests/test_tools_subagent.py1225 except Exception:CODE
LOWtests/test_tools_subagent.py1274 except Exception:CODE
LOWtests/test_server_session_models.py714 except Exception as e:CODE
LOWtests/test_server_session_models.py723 except Exception as e:CODE
LOWtests/test_server_session_models.py756 except Exception as e:CODE
LOWtests/test_server_session_models.py764 except Exception as e:CODE
LOWtests/test_oauth_openrouter.py88 except Exception as e:CODE
MEDIUMtests/test_oauth_openrouter.py81def target() -> None:CODE
MEDIUMtests/test_hooks_registry.py911def registerer():CODE
MEDIUMtests/test_hooks_registry.py920def unregisterer():CODE
LOWtests/test_hooks_registry.py917 except Exception as e:CODE
LOWtests/test_hooks_registry.py924 except Exception as e:CODE
LOWtests/test_tui.py520 except Exception as e:CODE
MEDIUMscripts/auto_rename_logs.py44 print(f"Error: Logs directory not found: {logs_dir}")CODE
LOWscripts/auto_rename_logs.py142 except Exception as e:CODE
MEDIUMscripts/auto_rename_logs.py143 print(f"Error processing {conv_dir}: {e}")CODE
LOWscripts/treeofthoughts.py285 except Exception:CODE
MEDIUMscripts/treeofthoughts.py454 print(f"Error: workspace {workspace} is not a directory", file=sys.stderr)CODE
MEDIUMscripts/github_bot.py72 print(f"Error: {name} environment variable is required", file=sys.stderr)CODE
MEDIUMscripts/github_bot.py642 print("Error in resolve mode: provide GITHUB_EVENT_PATH or --issue")STRING
MEDIUMscripts/github_bot.py726 print("Error: Either GITHUB_EVENT_PATH or --comment-body required")STRING
LOWscripts/build_changelog.py587 except Exception as e:STRING
LOWscripts/analyze_compression.py116 except Exception as e:CODE
LOWscripts/analyze_compression.py220 except Exception as e:CODE
LOWscripts/demo_capture.py195 except Exception as e:CODE
LOWscripts/demo_capture.py275 except Exception as e:CODE
527 more matches not shown…
Self-Referential Comments176 hits · 543 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_server_path_traversal.py400 # Create the logdir and a valid conversation log so theCOMMENT
MEDIUMtests/test_shell_issue729.py58 # Create a test JSON fileCOMMENT
MEDIUMtests/test_cost_awareness_delayed_warning.py72 # Create a messages list with a user messageCOMMENT
MEDIUMtests/test_cost_awareness_delayed_warning.py97 # Create a messages list with an assistant messageCOMMENT
MEDIUMtests/test_eval_behavioral_solutions.py205 # Create the shared validation moduleSTRING
MEDIUMtests/test_replay.py293 # Create a working context that's nearly full (simulated)COMMENT
MEDIUMtests/test_utils.py16 # Create a test image file that is 0.8MB raw (within 1MB limit)COMMENT
MEDIUMtests/test_utils.py53 # Create a file that is 1.2MB (exceeds 1MB limit)COMMENT
MEDIUMtests/conftest.py530 # Create a temporary file with the given contentCOMMENT
MEDIUMtests/test_acp_agent.py1031 # Create a fake log directory with a conversation.jsonlCOMMENT
MEDIUMtests/test_acp_agent.py1652 # Create a minimal log dir so new_session can resume from diskCOMMENT
MEDIUMtests/test_tools_chats.py13 # Create a test conversation containing "python"COMMENT
MEDIUMtests/test_server_v2.py1889 # Create a conversation with a non-test prefix so it isn't filtered outCOMMENT
MEDIUMtests/test_server_v2.py1922 # Create a real conversation with a non-test prefix so it isn't filteredCOMMENT
MEDIUMtests/test_util_cli_skills.py174 # Create a skill so the index isn't empty (tests the "not found" path, not "empty index")COMMENT
MEDIUMtests/test_util_cli_skills.py206 # Create a skill where metadata.name differs from the H1 titleCOMMENT
MEDIUMtests/test_demo_capture.py48 # Create a fake fileCOMMENT
MEDIUMtests/test_cc_memory.py90 # Create a fake CC memory fileCOMMENT
MEDIUMtests/test_agent.py451 # Create a plist fileCOMMENT
MEDIUMtests/test_agent.py771 # Create a fake workspaceCOMMENT
MEDIUMtests/test_agent.py991 # Create a repo with multiple commitsCOMMENT
MEDIUMtests/test_tools_save.py110 # Create a subdirectory to work fromCOMMENT
MEDIUMtests/test_tools_save.py132 # Create a directory outside the cwdCOMMENT
MEDIUMtests/test_tools_save.py141 # Create a symlink in work_dir pointing to outside_dirCOMMENT
MEDIUMtests/test_tools_save.py188 # Create a symlink in work_dir pointing to outside_dirCOMMENT
MEDIUMtests/test_misc_subprocess_timeouts.py198 # Create a file so glob has something to findCOMMENT
MEDIUMtests/test_llm_utils.py361 # Create a file with a tilde path won't work in CI, but we can testCOMMENT
MEDIUMtests/test_tool_use.py239 "import numpy as np\nimport pandas as pd\n\n# Create a simple dataset\n"CODE
MEDIUMtests/test_chat_history.py30 # Create a few mock conversationsCOMMENT
MEDIUMtests/test_plugins.py463 # Create a hook module with register() functionCOMMENT
MEDIUMtests/test_agent_service_timeouts.py100 # Create a temp file to simulate a log fileCOMMENT
MEDIUMtests/test_util_gh_mocked.py587 # Create a body that exceeds 1000 tokens (4000 chars)COMMENT
MEDIUMtests/test_util_gh_mocked.py616 # Create a body with identifiable start and endCOMMENT
MEDIUMtests/test_util_gh_mocked.py665 # Create a mock response with a very long review commentCOMMENT
MEDIUMtests/test_util_gh_mocked.py720 # Create a long comment with a suggestion in the middle (where truncation would remove it)COMMENT
MEDIUMtests/test_util_gh_mocked.py842 # Create a diff larger than default budget (4000 tokens = 16000 chars)COMMENT
MEDIUMtests/test_custom_providers.py94 # Create a minimal tool specCOMMENT
MEDIUMtests/test_prompt.py123 # Create a symlinkCOMMENT
MEDIUMtests/test_prompt.py148 # Create a new file in tmp_pathCOMMENT
MEDIUMtests/test_util_safety.py202 # Create a report with artificially high-risk segmentsCOMMENT
MEDIUMtests/test_message.py534 # Create a message - role with special chars is unusual but should be safeCOMMENT
MEDIUMtests/test_message.py246 # Create a test file in tmp_pathCOMMENT
MEDIUMtests/test_llm_anthropic.py336 # Create a mock that looks like an Anthropic API 500 errorCOMMENT
MEDIUMtests/test_prompt_skills_summary.py17 # Create a mock skill fileCOMMENT
MEDIUMtests/test_prompt_skills_summary.py56 # Create a mock skill file with long descriptionCOMMENT
MEDIUMtests/test_prompts.py211 # Create a temp workspace with a fileCOMMENT
MEDIUMtests/test_prompts.py216 # Create a file outside workspaceCOMMENT
MEDIUMtests/test_prompts.py221 # Create a gptme.toml with path traversal attemptCOMMENT
MEDIUMtests/test_execenv.py236 # Create a mock log fileCOMMENT
MEDIUMtests/test_tasks_api.py1023 # Create a temp task fileCOMMENT
MEDIUMtests/test_tasks_api.py219 # Create a fake repo subdir with .gitCOMMENT
MEDIUMtests/test_tools_browser.py393 # Create a minimal mock for pypdfCOMMENT
MEDIUMtests/test_computer_doctor_cmd.py736 # Create a tmp_path home with no .XdefaultsCOMMENT
MEDIUMtests/test_acp_session_runtime.py193 # Create a conversation via the API so LogManager can find itCOMMENT
MEDIUMtests/test_acp_session_runtime.py204 # Create a session backed by the dummy ACP runtimeCOMMENT
MEDIUMtests/test_acp_session_runtime.py917 # Create a session with a dead ACP runtimeCOMMENT
MEDIUMtests/test_lessons_matcher.py374 # Create a lesson fileCOMMENT
MEDIUMtests/test_lessons_matcher.py422 # Create a lesson fileCOMMENT
MEDIUMtests/test_cmd_service.py966 # Create a subdir whose name contains a character systemd forbids butCOMMENT
MEDIUMtests/test_server_v2_sessions.py2080 # Create a conversation via PUT, then manually remove the session to simulate no-session caseCOMMENT
116 more matches not shown…
Deep Nesting448 hits · 398 pts
SeverityFileLineSnippetContext
LOWtests/test_eval_behavioral_solutions.py55CODE
LOWtests/conftest.py254CODE
LOWtests/conftest.py454CODE
LOWtests/conftest.py575CODE
LOWtests/conftest.py708CODE
LOWtests/conftest.py583CODE
LOWtests/conftest.py717CODE
LOWtests/test_tree.py4CODE
LOWtests/test_onboard.py20CODE
LOWtests/test_plugins.py369CODE
LOWtests/test_server_parent_death_watcher.py45CODE
LOWtests/test_util_gh_mocked.py194CODE
LOWtests/test_util_gh_mocked.py228CODE
LOWtests/test_util_gh_mocked.py712CODE
LOWtests/test_util_gh_mocked.py201CODE
LOWtests/test_util_gh_mocked.py745CODE
LOWtests/test_hooks_server_confirm.py301CODE
LOWtests/test_hooks_server_confirm.py329CODE
LOWtests/test_computer_docker_config.py28CODE
LOWtests/test_tools_subagent.py1176CODE
LOWtests/test_tools_subagent.py1230CODE
LOWtests/test_computer_semantic_fixtures.py183CODE
LOWdocs/conf.py25CODE
LOWscripts/check_model_freshness.py95CODE
LOWscripts/auto_rename_logs.py32CODE
LOWscripts/github_ci_self_heal.py294CODE
LOWscripts/github_ci_self_heal.py305CODE
LOWscripts/treeofthoughts.py183CODE
LOWscripts/generate_sounds.py371CODE
LOWscripts/build_changelog.py207CODE
LOWscripts/build_changelog.py327CODE
LOWscripts/build_changelog.py454CODE
LOWscripts/check_rst_formatting.py26CODE
LOWscripts/check_rst_formatting.py170CODE
LOWscripts/analyze_compression.py33CODE
LOWscripts/analyze_compression.py132CODE
LOWscripts/analyze_compression.py236CODE
LOWscripts/analyze_compression.py329CODE
LOWscripts/analyze_compression.py502CODE
LOWscripts/demo_capture.py133CODE
LOWscripts/demo_capture.py200CODE
LOWscripts/demo_capture.py286CODE
LOWscripts/demo_capture.py485CODE
LOWgptme/dirs.py109CODE
LOWgptme/checkpoint.py240CODE
LOWgptme/prompt_queue.py128CODE
LOWgptme/model_attestation.py129CODE
LOWgptme/message.py544CODE
LOWgptme/message.py615CODE
LOWgptme/__version__.py16CODE
LOWgptme/__version__.py60CODE
LOWgptme/status_provider.py77CODE
LOWgptme/sandbox.py548CODE
LOWgptme/chat.py201CODE
LOWgptme/chat.py391CODE
LOWgptme/chat.py695CODE
LOWgptme/circuit_breaker.py108CODE
LOWgptme/k_best.py69CODE
LOWgptme/k_best.py99CODE
LOWgptme/k_best.py101CODE
388 more matches not shown…
Modern Structural Boilerplate297 hits · 298 pts
SeverityFileLineSnippetContext
LOWtests/test_eval_behavioral_solutions.py586 def update_metadata(self, key: str, info: dict[str, Any]) -> None:STRING
LOWtests/conftest.py46logger = logging.getLogger(__name__)CODE
LOWtests/test_workspace_snapshot.py344 def set_git_dates(timestamp: int) -> None:CODE
LOWtests/test_server_tts_api.py12def _set_openrouter_key(monkeypatch: pytest.MonkeyPatch, value: str | None) -> None:CODE
LOWtests/test_server_v2_auto_stepping.py12logger = logging.getLogger(__name__)CODE
LOWtests/test_acp_session_runtime.py60 async def set_session_model(self, session_id: str, model_id: str) -> None:CODE
LOWtests/thread_leak.py30__all__ = [CODE
LOWtests/test_subagent_unit.py5908 def _set_agent_id(self, agent_id: str) -> None:CODE
LOWtests/test_eval_behavioral.py1055logger = logging.getLogger(__name__)CODE
LOWtests/test_server_v2_tool_confirmation.py11logger = logging.getLogger(__name__)CODE
LOWscripts/auto_rename_logs.py14logger = logging.getLogger(__name__)CODE
LOWscripts/github_bot.py77def set_github_env(name: str, value: str) -> None:CODE
LOWscripts/build_changelog.py32logger = logging.getLogger(__name__)CODE
LOWscripts/analyze_compression.py25logger = logging.getLogger(__name__)CODE
LOWscripts/train/collect.py19logger = logging.getLogger(__name__)CODE
LOWgptme/dirs.py11logger = logging.getLogger(__name__)CODE
LOWgptme/prompt_queue.py17logger = logging.getLogger(__name__)CODE
LOWgptme/model_attestation.py19logger = logging.getLogger(__name__)CODE
LOWgptme/model_attestation.py274def set_selection_trace(trace: ModelSelectionTrace | None) -> None:CODE
LOWgptme/session.py18logger = logging.getLogger(__name__)CODE
LOWgptme/__init__.py13__all__ = [CODE
LOWgptme/telemetry.py32__all__ = [CODE
LOWgptme/telemetry.py49logger = logging.getLogger(__name__)CODE
LOWgptme/message.py30logger = logging.getLogger(__name__)CODE
LOWgptme/message.py44def set_output_format(fmt: str) -> None:CODE
LOWgptme/status_provider.py31logger = logging.getLogger(__name__)CODE
LOWgptme/sandbox.py47logger = logging.getLogger(__name__)CODE
LOWgptme/chat.py51logger = logging.getLogger(__name__)CODE
LOWgptme/circuit_breaker.py38logger = logging.getLogger(__name__)CODE
LOWgptme/circuit_breaker.py286__all__ = [CODE
LOWgptme/k_best.py38logger = logging.getLogger(__name__)CODE
LOWgptme/init.py36logger = logging.getLogger(__name__)CODE
LOWgptme/init.py412def _set_console_compact(enabled: bool) -> None:CODE
LOWgptme/profiles.py41logger = logging.getLogger(__name__)CODE
LOWgptme/executor.py25logger = logging.getLogger(__name__)CODE
LOWgptme/workspace_snapshot.py30logger = logging.getLogger(__name__)CODE
LOWgptme/tools/_browser_lynx.py12logger = logging.getLogger(__name__)CODE
LOWgptme/tools/shell_validation.py24logger = logging.getLogger(__name__)CODE
LOWgptme/tools/shell_flags.py34__all__ = ["FlagSpec", "PERMITTED_FLAGS", "flags_permitted"]CODE
LOWgptme/tools/_browser_perplexity.py9logger = logging.getLogger(__name__)CODE
LOWgptme/tools/clarify.py23logger = logging.getLogger(__name__)CODE
LOWgptme/tools/lessons.py34logger = logging.getLogger(__name__)CODE
LOWgptme/tools/gh.py47logger = logging.getLogger(__name__)CODE
LOWgptme/tools/convert.py31logger = logging.getLogger(__name__)CODE
LOWgptme/tools/_browser_playwright.py39logger = logging.getLogger(__name__)CODE
LOWgptme/tools/shell.py118logger = logging.getLogger(__name__)CODE
LOWgptme/tools/shell.py1040def set_workspace_cwd(cwd: str) -> None:CODE
LOWgptme/tools/shell.py1075def set_shell(shell: ShellSession) -> None:CODE
LOWgptme/tools/tmux.py31logger = logging.getLogger(__name__)CODE
LOWgptme/tools/__init__.py42logger = logging.getLogger(__name__)CODE
LOWgptme/tools/__init__.py45__all__ = [CODE
LOWgptme/tools/__init__.py85def _set_available_tools_cache(tools: list[ToolSpec] | None) -> None:CODE
LOWgptme/tools/__init__.py494def set_tools(tools: list[ToolSpec]) -> None:CODE
LOWgptme/tools/computer.py117logger = logging.getLogger(__name__)CODE
LOWgptme/tools/_browser_thread.py16logger = logging.getLogger(__name__)CODE
LOWgptme/tools/_browser_thread.py44def set_storage_state_override(path: Path | None) -> None:CODE
LOWgptme/tools/elicit.py34logger = logging.getLogger(__name__)CODE
LOWgptme/tools/browser.py389logger = logging.getLogger(__name__)CODE
LOWgptme/tools/autocommit.py33logger = logging.getLogger(__name__)CODE
LOWgptme/tools/autocommit.py176__all__ = ["tool"]STRING
237 more matches not shown…
Redundant / Tautological Comments186 hits · 283 pts
SeverityFileLineSnippetContext
LOWtests/test_dspy_basic.py13# Check if DSPy is available and handle import errors gracefullyCOMMENT
LOWtests/conftest.py287 # Check if Anthropic quota is exhausted to skip API tests gracefully.COMMENT
LOWtests/test_chat_history.py23 # Check if feature is enabledCOMMENT
LOWtests/test_hybrid_lessons.py12# Check if hybrid matching is availableCOMMENT
LOWtests/test_server_v2_hooks.py76 # Check if test SESSION_START hook message is in the logCOMMENT
LOWtests/test_server_v2_hooks.py125 # Check if test STEP_PRE hook message is in the logCOMMENT
LOWtests/test_server_v2_hooks.py228 # Check if test TURN_POST hook message is in the logCOMMENT
LOWtests/test_tools_computer.py38 # Check if xrandr is available and can run successfullyCOMMENT
LOWtests/test_auto_compact.py362 # Check if original had <think>, if so, compacted should tooCOMMENT
LOWtests/test_tools_morph.py242 # Set cwd to a subdirectory so the file path escapes itCOMMENT
LOWtests/test_cli.py1338 # Set timeout to 5 minutes to avoid Anthropic's streaming recommendationCOMMENT
LOWtests/test_dspy_hybrid.py5# Check if DSPy is available and handle import errors gracefullyCOMMENT
LOWtests/test_tools_shell.py1265# Check if stdin is /dev/nullCOMMENT
LOWtests/test_tools_shell.py1315# Check if stdin is /dev/nullCOMMENT
LOWscripts/github_bot.py454 # Check if there are changesCOMMENT
LOWscripts/check_rst_formatting.py65 # Check if we're exiting a code block (line with same or less indentation that has content)COMMENT
LOWscripts/check_rst_formatting.py99 # Check if this is the start of a new list (not continuing an existing one)COMMENT
LOWscripts/check_rst_formatting.py106 # Check if there's a blank line between this and the parent list itemCOMMENT
LOWscripts/check_rst_formatting.py119 # Check if bullet list needs blank line before itCOMMENT
LOWscripts/check_rst_formatting.py128 # Check if there's no blank line before this listCOMMENT
LOWscripts/check_poetry_lock_sync.sh13# Check if poetry.lock is in sync with pyproject.tomlCOMMENT
LOWscripts/demo_capture.py109 # Check if playwright is importableCOMMENT
LOWscripts/demo_capture.py375 # Check if server is already runningCOMMENT
LOWscripts/demo_capture.py418 # Check if already runningCOMMENT
LOWscripts/demo_capture.py616 # Print resultsCOMMENT
LOWscripts/build_server_executable.sh6# Check if we're in the project rootCOMMENT
LOWscripts/build_server_executable.sh24# Check if build was successfulCOMMENT
LOWwebui/server.py36 # Check if this looks like an asset requestCOMMENT
LOWgptme/chat.py453 # Check if user declined execution - return to prompt without generating responseCOMMENT
LOWgptme/chat.py490 # Check if there are any runnable tools leftCOMMENT
LOWgptme/chat.py520 # Check if there's an interrupt or decline message after the last assistant messageCOMMENT
LOWgptme/chat.py549 # Check if we should prompt for input or generate response directlyCOMMENT
LOWgptme/codeblock.py261 # Check if this line starts with backticks (potential opening or closing)COMMENT
LOWgptme/codeblock.py265 # Check if this is a bare fence (only backticks on the line)COMMENT
LOWgptme/codeblock.py330 # Check if this line is a bare fence (only backticks)COMMENT
LOWgptme/codeblock.py336 # Check if there's content after it (allowing blank lines)COMMENT
LOWgptme/init.py162 # Check if model has provider/model formatCOMMENT
LOWgptme/init.py165 # Check if it's a built-in provider or custom providerCOMMENT
LOWgptme/info.py260 # Check if editable via direct_url.jsonCOMMENT
LOWgptme/info.py280 # Check if installed via pipx (lives in ~/.local/pipx/)COMMENT
LOWgptme/info.py298 # Check if any of the indicator packages are installedCOMMENT
LOWgptme/tools/save.py160 # Check if file exists and store original content for comparisonCOMMENT
LOWgptme/tools/save.py165 # Check if folder existsCOMMENT
LOWgptme/tools/save.py191 # Check if this was an inefficient overwrite (minimal changes)COMMENT
LOWgptme/tools/save.py244 # Check if folder exists firstCOMMENT
LOWgptme/tools/shell_validation.py245 # Check if remaining text is the delimiter. Include theCOMMENT
LOWgptme/tools/shell_validation.py252 # Check if the line from pos to newline_idx is just the delimiter.COMMENT
LOWgptme/tools/shell_validation.py284 # Check if this pipe is inside quotesCOMMENT
LOWgptme/tools/shell_validation.py286 # Check if this is part of || (logical OR)COMMENT
LOWgptme/tools/shell_validation.py560 # Check if all commands in the pipeline are allowlistedCOMMENT
LOWgptme/tools/shell_validation.py620 # Check if the match is within a safe region (quoted or heredoc)COMMENT
LOWgptme/tools/shell_validation.py680 # Check if command is allowlistedCOMMENT
LOWgptme/tools/shell_validation.py707 # Check if disabled via environment variableCOMMENT
LOWgptme/tools/shell_validation.py711 # Check if shellcheck is availableCOMMENT
LOWgptme/tools/shell_validation.py780 # Check if any triggered codes are error codes (should block)COMMENT
LOWgptme/tools/gh.py244 # Check if all checks are doneCOMMENT
LOWgptme/tools/mcp_adapter.py203 # Check if the tool has inputSchema with propertiesCOMMENT
LOWgptme/tools/mcp_adapter.py444 # Check if server already loadedCOMMENT
LOWgptme/tools/mcp_adapter.py448 # Check if server is in configCOMMENT
LOWgptme/tools/shell.py424 # Check if -S or -n flags are present (they disable TTY need)COMMENT
126 more matches not shown…
Docstring Block Structure51 hits · 255 pts
SeverityFileLineSnippetContext
HIGHtests/test_eval_behavioral_solutions.py714\ import re def parse_args(input_str): \"\"\"Parse a string of arguments respeSTRING
HIGHtests/test_eval_behavioral_solutions.py1041\ \"\"\"API client for external service.\"\"\" import urllib.request import json STRING
HIGHtests/test_eval_behavioral.py2732\ import re def parse_args(input_str): """Parse a shell-like argument string into a list of tokens. Handles qSTRING
HIGHgptme/model_attestation.py225Convenience constructor for creating a selection trace. Args: requested_model: The model string as requesteSTRING
HIGHgptme/session.py81Create a new session. Args: session_id: Unique session identifier log: Optional LogManaSTRING
HIGHgptme/message.py298Concatenate two messages of the same role. Merges content with separator, and combines files and file_hashes. STRING
HIGHgptme/sandbox.py517Return path to the cached CPython WASI binary, downloading if needed. Args: path: Override cache path. DefaSTRING
HIGHgptme/k_best.py77Decorator factory: run the wrapped function K times and return the best result. Args: k: Number of candidatSTRING
HIGHgptme/tools/_browser_playwright.py739Load a previously saved browser session (cookies, localStorage) from a file. This is the in-session complement to `STRING
HIGHgptme/tools/_browser_playwright.py891Press a keyboard key or shortcut in the current browser page. Dispatches the key event to the active focused elemenSTRING
HIGHgptme/tools/computer.py765Return a text dump of the AT-SPI2 accessibility tree for all desktop apps. Requires the optional ``pyatspi`` packagSTRING
HIGHgptme/tools/computer.py843Find an accessible element by role and name and return its center coordinates. Looks up the element via AT-SPI2, coSTRING
HIGHgptme/tools/computer.py939Return a text dump of the macOS accessibility tree for visible apps. Uses AppleScript via ``osascript`` to query thSTRING
HIGHgptme/tools/computer.py1043Find a UI element on macOS by AX role and name and return its center coordinates. Searches the frontmost applicatioSTRING
HIGHgptme/tools/computer.py2431Start recording the screen to an MP4 file. Uses ``ffmpeg`` with ``x11grab`` (Linux) or ``avfoundation`` (macOS). STRING
HIGHgptme/tools/computer.py2514Record the screen for a fixed duration and return the output path. Synchronous wrapper around ``start_recording()``STRING
HIGHgptme/tools/browser.py189Convert PDF pages to images using auto-detected CLI tools. Auto-detects and uses the first available tool: pdftoppmSTRING
HIGHgptme/tools/browser.py1020Load a previously saved browser session (cookies, localStorage) from a file. In-session complement to ``save_browseSTRING
HIGHgptme/tools/browser.py1130Press a keyboard key or shortcut in the current browser page. Dispatches the key event to the focused element (or dSTRING
HIGHgptme/tools/computer_semantic.py125Compare pre/post screenshots and optionally apply a semantic expectation check. Pixel-change detection runs uncondiSTRING
HIGHgptme/tools/screenshot.py63Validate that screenshot path is within allowed directory. Security: Prevents arbitrary file writes via path traverSTRING
HIGHgptme/tools/base.py356 Tool specification. Defines a tool that can be used by the agent. Args: name: The name of the tool. STRING
HIGHgptme/tools/autocompact/hook.py35 Get a unique name for the compacted conversation fork. The original conversation stays untouched as the backupSTRING
HIGHgptme/tools/subagent/batch.py392Wait for the first subagent to complete and return its result. Useful for speculative/hedging patterns: spawn NSTRING
HIGHgptme/tools/subagent/api.py1159Inject a steering message into a running subagent's conversation. The message is queued via the subagent's logdir pSTRING
HIGHgptme/tools/subagent/api.py1523Wait for the first of the given subagents to complete. Useful for speculative/hedging patterns: spawn N subagents aSTRING
HIGHgptme/llm/__init__.py1175 Get available models from a provider. Args: provider: The provider to get models from Returns: STRING
HIGHgptme/llm/utils.py85Convert Parameter objects to JSON Schema dictionary format. This utility converts a list of Parameter objects into STRING
HIGHgptme/oauth/openrouter.py146Run the OpenRouter PKCE OAuth flow and return a durable API key. Args: key_label: Label OpenRouter shows foSTRING
HIGHgptme/util/master_context.py97 Recover truncated content from the master context. Args: logfile: Path to conversation.jsonl bSTRING
HIGHgptme/util/git_worktree.py130Create a git worktree for isolated subagent execution. Args: repo_path: Path to the git repository root. STRING
HIGHgptme/util/content.py2 Check if message content is a command (starts with / and first word has exactly one slash). Examples: STRING
HIGHgptme/util/keyword_matching.py20Convert a keyword (possibly with wildcards) to a compiled regex pattern. Wildcards: - '*' matches zero or more STRING
HIGHgptme/util/install.py40 Get the install command for a package based on the current environment. Args: package: Package name (eSTRING
HIGHgptme/util/tool_format.py195Format detailed tool information. Args: tool: The tool to format include_examples: Include example STRING
HIGHgptme/server/workspace_api.py160 Safely resolve a path within a workspace. Args: workspace: Base workspace path path: Optional STRING
HIGHgptme/server/client.py53Create a new session for conversation via events endpoint. Args: conversation_id: The conversation STRING
HIGHgptme/server/client.py104Take a step in the conversation. Args: conversation_id: The conversation ID session_id:STRING
HIGHgptme/server/client.py140Stream events from conversation. Args: conversation_id: The conversation ID session_id:STRING
HIGHgptme/server/client.py174Interrupt the current generation or tool execution. Args: conversation_id: The conversation ID STRING
HIGHgptme/server/client.py206Confirm, edit, or skip a pending tool execution. Args: conversation_id: The conversation ID STRING
HIGHgptme/agent/workspace.py61 Create an agent workspace by cloning a template repository. This is the recommended approach for creating agenSTRING
HIGHgptme/mcp/client.py348Read a specific resource by URI. Args: uri: The URI of the resource to read. Returns: STRING
HIGHgptme/mcp/client.py428Get a specific prompt by name with optional arguments. Args: name: The name of the prompt to retrieSTRING
HIGHgptme/logmanager/conversations.py553 Delete a conversation by its ID. Args: conv_id: The conversation ID to delete Returns: TrSTRING
HIGHgptme/lessons/installer.py510Check if all skill dependencies are satisfied. Args: skill_names: Specific skills to check (None = check alSTRING
HIGHgptme/lessons/parser.py110Convert a file glob pattern to likely keywords. Args: glob_pattern: File pattern like '**/*.py' or 'src/apiSTRING
HIGHgptme/eval/leaderboard.py1310Generate a leaderboard from eval results. Args: results_dir: Path to eval_results directory with timestampeSTRING
HIGHgptme/eval/dspy/hybrid_optimizer.py382 Select appropriate optimization strategy based on task characteristics. This function implements automated optSTRING
HIGHgptme/eval/dspy/experiments.py407 Run a complete prompt optimization experiment. Args: experiment_name: Name for the experiment STRING
HIGHgptme/eval/dspy/experiments.py458 Quick test of prompt variations without full optimization. Args: prompt_variations: Dictionary of promSTRING
Modern AI Meta-Vocabulary33 hits · 98 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md83 - [🛡 Guardrails](#-guardrails)CODE
MEDIUMtests/test_replay.py337 # Model with a 100-token context windowCOMMENT
MEDIUMtests/conftest.py285 # Download the embedding model before running tests.COMMENT
MEDIUMtests/test_cmd_service.py224 # First scaffold a periodic agent (creates testagent.timer)COMMENT
MEDIUMtests/test_cmd_service.py967 # launchd allows (apostrophe), then scaffold into it.COMMENT
MEDIUMtests/test_cmd_service.py659 # to ensure the actual warning path was exercised (not just the scaffold line).COMMENT
MEDIUMtests/test_tools_rag.py50 # Should yield nothing when RAG is not availableCOMMENT
MEDIUMtests/test_tools_rag.py68 # Should yield nothing when RAG is disabledCOMMENT
MEDIUMtests/test_tools_token_awareness.py80 # GPT-4 has a context window of 8192 or 128000 depending on versionCOMMENT
MEDIUMtests/test_init.py56# init() — orchestration testsCOMMENT
MEDIUMdocs/howto/automate-task.md56## Set up a project scaffoldCOMMENT
MEDIUMgptme/constants.py58# This prevents unbounded memory usage and context window overflowCOMMENT
MEDIUMgptme/tools/shell.py1757 # starting background execution so guardrails can intercept commandsCOMMENT
MEDIUMgptme/tools/shell.py1846 # TOOL_CONFIRM hooks (including third-party guardrails) see the completeCOMMENT
MEDIUMgptme/tools/rag.py21 workspace_only = true # Whether to only search in the workspace directory, or the whole RAG indexSTRING
MEDIUMgptme/tools/rag.py22 paths = [] # List of paths to include in the RAG index. Has no effect if workspace_only is true.STRING
MEDIUMgptme/tools/rag.py82### When to use RAGCOMMENT
MEDIUMgptme/tools/subagent/hooks.py105 # immediately, without waiting for the agentic turn to finish naturally.COMMENT
MEDIUMgptme/llm/llm_openai_models.py297 # GPT-5.3 Codex — top-tier agentic coding modelCOMMENT
MEDIUMgptme/llm/llm_openai_models.py327 # GPT-5.2 Codex — agentic coding variant of 5.2COMMENT
MEDIUMgptme/llm/llm_openai_models.py349 # GPT-5.1 Codex — agentic coding variant of 5.1COMMENT
MEDIUMgptme/util/ask_execute.py129 # execution request: route it through the hook chain again so guardrailsCOMMENT
MEDIUMgptme/agent/cli.py287 gptme service init # Lightweight alternative: minimal service scaffoldSTRING
MEDIUMgptme/cli/util.py466 # Initialize RAGCOMMENT
MEDIUMgptme/cli/util.py487 # Initialize RAGCOMMENT
MEDIUMgptme/cli/util.py519 # Initialize RAGCOMMENT
MEDIUMgptme/cli/setup.py464# Uncomment to enable RAG (Retrieval-Augmented Generation)COMMENT
MEDIUMgptme/cli/cmd_init.py9 gptme init my-project # Create my-project/ with scaffoldSTRING
MEDIUMgptme/logmanager/manager.py842 # Expired — drop from context window (not from the log on disk).COMMENT
MEDIUMgptme/logmanager/manager.py972 # Enrich with enabled context enhancements (RAG, fresh context)COMMENT
MEDIUMgptme/prompts/__init__.py477# Sub-module imports for orchestrationCOMMENT
MEDIUMgptme/commands/llm.py353 # Show context window utilization if model info is availableCOMMENT
MEDIUMgptme/eval/agents/swebench.py83 # implementation. This is the orchestration skeleton from bjsi'sCOMMENT
Verbosity Indicators39 hits · 73 pts
SeverityFileLineSnippetContext
LOWtests/test_server_v2.py1657 # Step 1: list sessions (webui catalog fetch)COMMENT
LOWtests/test_server_v2.py1664 # Step 2: fetch that specific session by its ID (webui detail fetch)COMMENT
LOWtests/test_snapshot_command.py267 # Step 1: record state before attemptCOMMENT
LOWtests/test_snapshot_command.py276 # Step 2: mutate workspace (simulate a failed attempt)COMMENT
LOWtests/test_snapshot_command.py280 # Step 3: restore to before-attemptCOMMENT
LOWtests/test_server_v2_hooks.py275 # We need to check if there's an endpoint for this or if it happens automaticallyCOMMENT
LOWtests/test_computer_use_integration.py233 # Step 1: open the form pageCOMMENT
LOWtests/test_computer_use_integration.py237 # Step 2: fill message and author fieldsCOMMENT
LOWtests/test_computer_use_integration.py241 # Step 3: click the submit button (waits for page load internally)COMMENT
LOWtests/test_computer_use_integration.py244 # Step 4: read the result pageCOMMENT
LOWtests/test_computer_use_integration.py604 # Step 1: open a page and save the sessionCOMMENT
LOWtests/test_computer_use_integration.py609 # Step 2: reload the state in the same sessionCOMMENT
LOWtests/test_computer_use_integration.py616 # Step 3: open the same page again — should work with restored stateCOMMENT
LOWtests/test_chat.py498 # Step 1: include_paths extracts the image pathCOMMENT
LOWtests/test_chat.py503 # Step 2: embed_attached_file_content preserves imagesCOMMENT
LOWtests/test_chat.py509 # Step 3: msgs2dicts preserves files for provider processingCOMMENT
LOWtests/test_computer_milestone_integration.py117 # Step 1: load the gameCOMMENT
LOWtests/test_computer_milestone_integration.py120 # Step 2: verify initial stateCOMMENT
LOWtests/test_computer_milestone_integration.py129 # Step 3: fire at the enemy — auto-aims so one Space winsCOMMENT
LOWtests/test_computer_milestone_integration.py132 # Step 4: verify the milestone markerCOMMENT
LOWtests/test_computer_milestone_integration.py202 # Step 1: load the gameCOMMENT
LOWtests/test_computer_milestone_integration.py205 # Step 2: verify initial stateCOMMENT
LOWtests/test_computer_milestone_integration.py211 # Step 3: click three ore nodes to gather 6 iron oreCOMMENT
LOWtests/test_computer_milestone_integration.py216 # Step 4: wait for the craft button to become enabled (needs >= 5 ore)COMMENT
LOWtests/test_computer_milestone_integration.py219 # Step 5: craft an iron plateCOMMENT
LOWtests/test_computer_milestone_integration.py222 # Step 6: verify the milestone markerCOMMENT
LOWgptme/llm/llm_gptme.py254 # Step 1: Request device authorizationCOMMENT
LOWgptme/llm/llm_gptme.py272 # Step 2: Display code to userCOMMENT
LOWgptme/llm/llm_gptme.py276 # Step 3: Poll for tokenCOMMENT
LOWgptme/cli/auth.py81 # Step 1: Request device authorizationCOMMENT
LOWgptme/cli/auth.py109 # Step 2: Show the user what to doCOMMENT
LOWgptme/cli/auth.py125 # Step 3: Poll for tokenCOMMENT
LOWgptme/cli/onboard.py238 # Step 1: Detect providersCOMMENT
LOWgptme/cli/onboard.py268 # Step 2: Select providerCOMMENT
LOWgptme/cli/onboard.py278 # Step 3: Test connectivityCOMMENT
LOWgptme/cli/onboard.py292 # Step 4: Create configCOMMENT
LOWgptme/hooks/form_autodetect.py204 # Step 1: Heuristic detectionCOMMENT
LOWgptme/hooks/form_autodetect.py210 # Step 2: LLM parsingCOMMENT
LOWgptme/hooks/form_autodetect.py216 # Step 3: Create and yield form messageCOMMENT
Over-Commented Block78 hits · 73 pts
SeverityFileLineSnippetContext
LOW.pre-commit-config.yaml41#- repo: localCOMMENT
LOWpyproject.toml401# Scope --timeout to the test function only, NOT the whole runtest protocol.COMMENT
LOWdocker-compose.yml1# Two services are available:COMMENT
LOWdocker-compose.yml41 restart: unless-stoppedCOMMENT
LOWgptme.toml1prompt = "This is gptme"COMMENT
LOWgptme.toml21#paths = [COMMENT
LOWgptme.toml41#command = "npx"COMMENT
LOWtauri/src-tauri/src/lib.rs61COMMENT
LOWtauri/src-tauri/src/lib.rs701 // Two paths need coverage:COMMENT
LOWtauri/src-tauri/src/lib.rs761 match child.kill() {COMMENT
LOWtests/conftest.py461 yieldCOMMENT
LOWtests/thread_leak.py41DICT_RACE_MESSAGE = "dictionary changed size during iteration"COMMENT
LOWtests/data/gh-issue-list.txt1#301 fix: broken import in tools/shell.py open 2025-01-15COMMENT
LOWtests/data/gh-issue-list.txt21#321 fix: edge case with piped commands detection open 2025-01-28COMMENT
LOWscripts/check_model_freshness.py41 "llm/models/resolution.py",COMMENT
LOWscripts/bump_version.sh1#!/bin/bashCOMMENT
LOWscripts/publish_release.sh1#!/bin/bashCOMMENT
LOWscripts/install.sh1#!/usr/bin/env shCOMMENT
LOW.github/workflows/release.yml1name: ReleaseCOMMENT
LOW.github/workflows/webui-visual-diff.yml161 # Pinned to a full commit SHA (not the mutable `v2` tag) because thisCOMMENT
LOW.github/workflows/build.yml141 labels: ${{ steps.meta-eval.outputs.labels }}COMMENT
LOWwebui/.pre-commit-config.yaml41 # types_or: [javascript, jsx, ts, tsx]COMMENT
LOWwebui/eslint.config.js61 // {COMMENT
LOWwebui/wrangler.toml1# Cloudflare Pages configurationCOMMENT
LOWwebui/e2e/generation.spec.ts1import { test, expect, type Page } from '@playwright/test';COMMENT
LOWwebui/e2e/generation.spec.ts21// chatConfig arrived. Fix: skeleton pill while loading (PR #3441).COMMENT
LOWwebui/e2e/generation.spec.ts41// 1. UI: chat-input is enabled (server is reachable and a conversation canCOMMENT
LOWwebui/e2e/generation.spec.ts81 // Wait for ConversationContent to actually mount. MainLayout returns null whenCOMMENT
LOWwebui/e2e/performance.spec.ts1import { test, expect } from '@playwright/test';COMMENT
LOWwebui/e2e/ui-stability.spec.ts1import { test, expect } from '@playwright/test';COMMENT
LOWwebui/e2e/conversation.spec.ts141COMMENT
LOWwebui/src/stores/conversations.ts61 needsInitialStep: boolean;COMMENT
LOWwebui/src/utils/workspaceApi.ts81 //COMMENT
LOWwebui/src/utils/conversation.ts1// This file can be removed or repurposed for other conversation utilitiesCOMMENT
LOWwebui/src/utils/tauri.ts1// Detect if we're running in Tauri environment.COMMENT
LOWwebui/src/components/ConversationContent.tsx401 const count = visibleMessageIndicesRef.current.length;COMMENT
LOWwebui/src/components/ChatInput.tsx621 defaultModel: apiDefaultModel,COMMENT
LOW…/src/components/__tests__/ConversationContent.test.tsx761 // by the scroll handler. The second rAF must detect the position driftCOMMENT
LOW…/src/components/__tests__/ConversationContent.test.tsx821 });COMMENT
LOWgptme/sandbox.py241 # before we get here). The soft limit is then set to the same value andCOMMENT
LOWgptme/codeblock.py141 )COMMENT
LOWgptme/codeblock.py221COMMENT
LOWgptme/codeblock.py281 # Only treat it as a real blank if there's more content after.COMMENT
LOWgptme/tools/shell_validation.py361 # predict at validation time, so any `..` in a path is treated asCOMMENT
LOWgptme/tools/shell_validation.py581 return FalseCOMMENT
LOWgptme/tools/hashline_edit.py81COMMENT
LOWgptme/tools/base.py781 # message and stamp call_id plus tool provenance on it.COMMENT
LOWgptme/tools/subagent/execution.py201 # with a fresh, empty contextvars context, so _loaded_tools_var here alreadyCOMMENT
LOWgptme/tools/subagent/execution.py421 # Subagent._read_log() instead.COMMENT
LOWgptme/tools/subagent/execution.py581 # Progress file for subprocess-mode progress delivery.COMMENT
LOWgptme/tools/subagent/batch.py281 # collected in self.results. Workers will exit their poll loops withinCOMMENT
LOWgptme/tools/subagent/types.py301 # behaviour: auto-remove if unchanged, preserve branch if changes exist.COMMENT
LOWgptme/llm/__init__.py741 # Buffer chars for the current line before forwarding to on_token.COMMENT
LOWgptme/llm/__init__.py821 just_closed_thinking = TrueCOMMENT
LOWgptme/llm/__init__.py881 # <think> tag characters from leaking to callers before are_thinkingCOMMENT
LOWgptme/llm/__init__.py921COMMENT
LOWgptme/llm/models/data.py61 "azure",COMMENT
LOWgptme/llm/models/data.py381 "preferred_edit_format": "diff",COMMENT
LOWgptme/server/session_step.py681COMMENT
LOWgptme/server/session_step.py1061 # assistant message may contain multiple tool uses. After completingCOMMENT
18 more matches not shown…
Structural Annotation Overuse38 hits · 72 pts
SeverityFileLineSnippetContext
LOWtests/test_server_v2.py1657 # Step 1: list sessions (webui catalog fetch)COMMENT
LOWtests/test_server_v2.py1664 # Step 2: fetch that specific session by its ID (webui detail fetch)COMMENT
LOWtests/test_snapshot_command.py267 # Step 1: record state before attemptCOMMENT
LOWtests/test_snapshot_command.py276 # Step 2: mutate workspace (simulate a failed attempt)COMMENT
LOWtests/test_snapshot_command.py280 # Step 3: restore to before-attemptCOMMENT
LOWtests/test_computer_use_integration.py233 # Step 1: open the form pageCOMMENT
LOWtests/test_computer_use_integration.py237 # Step 2: fill message and author fieldsCOMMENT
LOWtests/test_computer_use_integration.py241 # Step 3: click the submit button (waits for page load internally)COMMENT
LOWtests/test_computer_use_integration.py244 # Step 4: read the result pageCOMMENT
LOWtests/test_computer_use_integration.py604 # Step 1: open a page and save the sessionCOMMENT
LOWtests/test_computer_use_integration.py609 # Step 2: reload the state in the same sessionCOMMENT
LOWtests/test_computer_use_integration.py616 # Step 3: open the same page again — should work with restored stateCOMMENT
LOWtests/test_chat.py498 # Step 1: include_paths extracts the image pathCOMMENT
LOWtests/test_chat.py503 # Step 2: embed_attached_file_content preserves imagesCOMMENT
LOWtests/test_chat.py509 # Step 3: msgs2dicts preserves files for provider processingCOMMENT
LOWtests/test_computer_milestone_integration.py117 # Step 1: load the gameCOMMENT
LOWtests/test_computer_milestone_integration.py120 # Step 2: verify initial stateCOMMENT
LOWtests/test_computer_milestone_integration.py129 # Step 3: fire at the enemy — auto-aims so one Space winsCOMMENT
LOWtests/test_computer_milestone_integration.py132 # Step 4: verify the milestone markerCOMMENT
LOWtests/test_computer_milestone_integration.py202 # Step 1: load the gameCOMMENT
LOWtests/test_computer_milestone_integration.py205 # Step 2: verify initial stateCOMMENT
LOWtests/test_computer_milestone_integration.py211 # Step 3: click three ore nodes to gather 6 iron oreCOMMENT
LOWtests/test_computer_milestone_integration.py216 # Step 4: wait for the craft button to become enabled (needs >= 5 ore)COMMENT
LOWtests/test_computer_milestone_integration.py219 # Step 5: craft an iron plateCOMMENT
LOWtests/test_computer_milestone_integration.py222 # Step 6: verify the milestone markerCOMMENT
LOWgptme/llm/llm_gptme.py254 # Step 1: Request device authorizationCOMMENT
LOWgptme/llm/llm_gptme.py272 # Step 2: Display code to userCOMMENT
LOWgptme/llm/llm_gptme.py276 # Step 3: Poll for tokenCOMMENT
LOWgptme/cli/auth.py81 # Step 1: Request device authorizationCOMMENT
LOWgptme/cli/auth.py109 # Step 2: Show the user what to doCOMMENT
LOWgptme/cli/auth.py125 # Step 3: Poll for tokenCOMMENT
LOWgptme/cli/onboard.py238 # Step 1: Detect providersCOMMENT
LOWgptme/cli/onboard.py268 # Step 2: Select providerCOMMENT
LOWgptme/cli/onboard.py278 # Step 3: Test connectivityCOMMENT
LOWgptme/cli/onboard.py292 # Step 4: Create configCOMMENT
LOWgptme/hooks/form_autodetect.py204 # Step 1: Heuristic detectionCOMMENT
LOWgptme/hooks/form_autodetect.py210 # Step 2: LLM parsingCOMMENT
LOWgptme/hooks/form_autodetect.py216 # Step 3: Create and yield form messageCOMMENT
AI Slop Vocabulary19 hits · 46 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml102swebench = {version = ">=1.0", optional=true} # for SWE-bench eval harnessCODE
MEDIUMpyproject.toml103terminal-bench = {version = ">=0.1", optional=true, python = ">=3.12"} # for Terminal-Bench eval harnessCODE
MEDIUMtests/test_mcp_discovery.py151 # We'll use a try-except to make the test more robustCOMMENT
LOWtests/test_reduce.py150 # Should not raise ValueError, just return messages as-is with content preservedCOMMENT
MEDIUMgptme/tools/autocompact/resume.py177 resume_prompt = """Please create a comprehensive resume of this conversation that includes:CODE
MEDIUMgptme/tools/subagent/__init__.py141### ACP Mode (multi-harness support)COMMENT
MEDIUMgptme/tools/subagent/api.py549 # ACP mode: multi-harness support via Agent Client ProtocolCOMMENT
MEDIUMgptme/llm/__init__.py927 # TODO: make this more robust/general, maybe with a callback that runs on each char/chunkCOMMENT
LOWgptme/util/reduce.py124 # but if prev_len == tokens, we are not making progress, so just return the log as-isCOMMENT
MEDIUMgptme/util/install.py18 # Check for uvx (comprehensive cross-platform detection to avoid false positives)COMMENT
MEDIUMgptme/plugins/__init__.py482 # Check for uvx (comprehensive cross-platform detection to avoid false positives)COMMENT
LOWgptme/server/openapi_docs.py634 # For now, just use the first non-None type as 200 responseCOMMENT
MEDIUMgptme/server/tasks_api.py273 """Get comprehensive task information with derived data."""STRING
MEDIUMgptme/eval/dspy/tasks.py415 """Create advanced multi-step tasks for comprehensive evaluation."""STRING
MEDIUMgptme/eval/dspy/experiments.py29 """Generate a comprehensive optimization report."""STRING
MEDIUMgptme/eval/swe_extra/swe_bench_test_spec.py1# edited from the original swebench/harness/test_spec.pyCOMMENT
MEDIUMgptme/eval/swebench/evaluate.py246 # NOTE: This is NOT authoritative — use the official SWE-bench harness forCOMMENT
MEDIUMgptme/eval/swebench/main.py208 # Run the official harness for the first model's predictionsCOMMENT
MEDIUMgptme/eval/swebench/main.py209 # (multi-model harness runs can be done by calling this multiple times)COMMENT
Fake / Example Data36 hits · 36 pts
SeverityFileLineSnippetContext
LOWtests/test_server_path_traversal.py291 fake_key = tmp_path / "id_rsa"CODE
LOWtests/test_server_path_traversal.py292 fake_key.write_text("PRIVATE KEY")CODE
LOWtests/test_server_path_traversal.py295 mock_config.user.avatar = str(fake_key)CODE
LOWtests/test_server_path_traversal.py343 fake_key = agent_dir / "id_rsa"CODE
LOWtests/test_server_path_traversal.py344 fake_key.write_text("PRIVATE KEY")CODE
LOWtests/test_server_path_traversal.py393 fake_key = agent_dir / "id_rsa"CODE
LOWtests/test_server_path_traversal.py394 fake_key.write_text("PRIVATE KEY")CODE
LOWtests/test_agent.py687 monkeypatch.setenv("GIT_AUTHOR_EMAIL", "test@test.com")CODE
LOWtests/test_agent.py689 monkeypatch.setenv("GIT_COMMITTER_EMAIL", "test@test.com")CODE
LOWtests/test_prompts.py341 ["git", "config", "user.email", "test@test.com"],CODE
LOWtests/test_prompts.py617 ["git", "config", "user.email", "test@test.com"],CODE
LOWtests/test_subagent_worktree_isolation.py57 ["git", "config", "user.email", "test@test.com"],CODE
LOWtests/test_agent_doctor.py62 "GIT_AUTHOR_EMAIL": "test@test.com",CODE
LOWtests/test_agent_doctor.py64 "GIT_COMMITTER_EMAIL": "test@test.com",CODE
LOWtests/test_lessons_commands.py160 assert "placeholder" in result.lower()CODE
LOWtests/test_lessons_commands.py57 keywords=["patch", "placeholder", "error"],CODE
LOWtests/test_util_cli.py1035 "GIT_AUTHOR_EMAIL": "test@test.com",CODE
LOWtests/test_util_cli.py1037 "GIT_COMMITTER_EMAIL": "test@test.com",CODE
LOWtests/test_util_cli.py1043 ["git", "config", "user.email", "test@test.com"],CODE
LOWtests/test_git_worktree.py23 ["git", "config", "user.email", "test@test.com"],CODE
LOWtests/test_config_encoding.py99 config_file.write_text('[user]\nabout = "placeholder"\n', encoding="utf-8")CODE
LOWtests/test_util_keyword_matching.py251 text = "Lorem ipsum " * 100 + "specific keyword here" + " dolor sit" * 100CODE
LOWtests/test_util_review.py2332 run(["git", "config", "user.email", "test@test.com"])CODE
LOW.github/workflows/docs.yml39 echo -e '[prompt]\nabout_user = "testing"\nresponse_preference = "just testing"\n\n[env]\nOPENAI_API_KEY="sk-dCODE
LOWwebui/src/democonversations.ts152 content: `Stress message ${i + 1}: ${'Lorem ipsum dolor sit amet. '.repeat(3)}`,CODE
LOWwebui/src/democonversations.ts152 content: `Stress message ${i + 1}: ${'Lorem ipsum dolor sit amet. '.repeat(3)}`,CODE
LOWwebui/src/components/__tests__/CommandPalette.test.tsx678 expect(input).toHaveAttribute('placeholder', expect.stringContaining('command'));CODE
LOWgptme/tools/_browser_playwright.py1062 fill_element("[name='email']", "user@example.com")STRING
LOWgptme/tools/computer.py2068 computer("type", text="user@example.com")CODE
LOWgptme/tools/computer.py2072 computer("type", text="user@example.com")CODE
LOWgptme/tools/browser.py1253 fill_element("[name='email']", "user@example.com")STRING
LOWgptme/eval/suites/practical7.py215 "phone": "555-1234",CODE
LOWgptme/eval/suites/practical7.py217 "street": "123 Main St",CODE
LOWgptme/eval/suites/practical7.py230 "street": "123 Main St",CODE
LOWgptme/eval/suites/behavioral/noisy_worktree_fix.py106 assert validate_email("user@example.com") is TrueCODE
LOWgptme/eval/suites/behavioral/add_docstrings.py174 assert validate_email("user@example.com") == "user@example.com"CODE
Dead Code15 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_mcp_server.py36CODE
MEDIUMtests/test_llm_utils.py481CODE
MEDIUMtests/test_hooks.py64CODE
MEDIUMtests/test_hooks.py69CODE
MEDIUMtests/test_hooks.py74CODE
MEDIUMtests/test_llm_openai_subscription.py357CODE
MEDIUMtests/test_hooks_cwd_changed.py87CODE
MEDIUMtests/test_hooks_cwd_changed.py137CODE
MEDIUMgptme/hooks/aw_watcher_agent.py158CODE
MEDIUMgptme/hooks/aw_watcher_agent.py175CODE
MEDIUMgptme/hooks/aw_watcher_agent.py195CODE
MEDIUMgptme/hooks/aw_watcher_agent.py235CODE
MEDIUMgptme/hooks/cwd_changed.py42CODE
MEDIUMgptme/hooks/auto_snapshots.py253CODE
MEDIUMgptme/hooks/auto_snapshots.py284CODE
AI Structural Patterns29 hits · 24 pts
SeverityFileLineSnippetContext
LOWtests/test_util_cli_models.py191CODE
LOWtests/test_agent.py29CODE
LOWtests/test_chats_stats.py52CODE
LOWtests/test_util_cli.py839CODE
LOWtests/test_util_tool_format.py28CODE
LOWtests/test_json_output.py137CODE
LOWtests/test_json_output.py652CODE
LOWtests/test_json_output.py765CODE
LOWgptme/chat.py55CODE
LOWgptme/tools/shell.py1951CODE
LOWgptme/tools/chats.py646CODE
LOWgptme/tools/base.py401CODE
LOWgptme/tools/subagent/execution.py155CODE
LOWgptme/tools/subagent/execution.py889CODE
LOWgptme/tools/subagent/batch.py491CODE
LOWgptme/tools/subagent/batch.py600CODE
LOWgptme/tools/subagent/batch.py1096CODE
LOWgptme/tools/subagent/api.py98CODE
LOWgptme/llm/__init__.py279CODE
LOWgptme/llm/__init__.py690CODE
LOWgptme/llm/models/listing.py284CODE
LOWgptme/util/reduce.py632CODE
LOWgptme/config/cli_setup.py101CODE
LOWgptme/cli/cmd_init.py187CODE
LOWgptme/prompts/__init__.py385CODE
LOWgptme/prompts/__init__.py504CODE
LOWgptme/eval/main.py542CODE
LOWgptme/eval/dspy/prompt_optimizer.py226CODE
LOWgptme/eval/dspy/prompt_optimizer.py278CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtests/test_eval_behavioral.py0\ def summarize(text): \"\"\"return a dict with word and line counts for the given text.\"\"\" if not text: return {"worSTRING
HIGH…vioral/minimal_feature_preserve_default_with_decoys.py0\ def summarize(text): \"\"\"return a dict with word and line counts for the given text.\"\"\" if not text: return {"worSTRING
HIGH…eval/suites/behavioral/add_feature_preserve_default.py0\ def summarize(text): \"\"\"return a dict with word and line counts for the given text.\"\"\" if not text: return {"worSTRING
Overly Generic Function Names15 hits · 14 pts
SeverityFileLineSnippetContext
LOWtests/test_active_context.py20 (tmp_path / "utils.py").write_text("def helper(): pass\n")CODE
LOWtests/test_active_context.py138 assert "def helper(): pass" in contentCODE
LOWtests/test_eval_behavioral.py231 def helper():CODE
LOWtests/test_eval_behavioral.py1665def helper():CODE
LOWtests/test_context.py353 (subdir / "utils.py").write_text("def helper(): pass")CODE
LOWtests/test_context.py492 (subdir / "utils.py").write_text("def helper(): pass")CODE
LOWtests/test_tools_base.py276 def helper(name: str) -> bool:CODE
LOWtests/test_tools_base.py287 def helper(name: str) -> bool:CODE
LOWtests/test_tools_base.py455 def helper(name: str) -> bool:CODE
LOWtests/test_tools_base.py501 def helper(name: str) -> bool:CODE
LOWtests/test_tools_shell.py388def test_function(shell):STRING
LOWgptme/cli/cmd_computer.py903def run_task(task: str, timeout: int, model: str | None, as_json: bool):CODE
LOWgptme/hooks/tests/test_active_context.py28 (ws / "utils.py").write_text("def helper():\n return 42\n")CODE
LOWgptme/eval/dspy/tasks.py584 "slow_processor.py": """def process_data(data):STRING
LOWgptme/eval/dspy/tasks.py708def process_data(size):CODE
Synthetic Comment Markers2 hits · 12 pts
SeverityFileLineSnippetContext
HIGHscripts/github_ci_self_heal.py262 f"*🤖 Auto-generated by gptme-bot self-heal ({model})*\n"CODE
HIGHgptme/cli/onboard.py201# Generated by gptme onboardCOMMENT
Example Usage Blocks8 hits · 12 pts
SeverityFileLineSnippetContext
LOWdocker-compose.yml56 # Usage:COMMENT
LOWtauri/scripts/build-appimage.sh4# Usage:COMMENT
LOWscripts/bump_version.sh4# Usage:COMMENT
LOWscripts/gh-pr-view-with-pr-comments.sh9# Example usage:COMMENT
LOWscripts/publish_release.sh11# Usage:COMMENT
LOWscripts/install.sh4# Usage:COMMENT
LOWgptme/lessons/installer.py675# Example usageCOMMENT
LOWgptme/eval/dspy/experiments.py498 # Example usageCOMMENT
TODO Padding6 hits · 12 pts
SeverityFileLineSnippetContext
LOWgptme/eval/suites/behavioral/implement_lru_cache.py144 # TODO: implement LRU cachingCOMMENT
LOWgptme/eval/suites/behavioral/implement_memoization.py91 # TODO: implement memoizationCOMMENT
LOW…tme/eval/suites/behavioral/implement_priority_queue.py97 # TODO: implement priority queueCOMMENT
LOW…tme/eval/suites/behavioral/implement_priority_queue.py101 # TODO: implementCOMMENT
LOW…tme/eval/suites/behavioral/implement_priority_queue.py111 # TODO: implementCOMMENT
LOW…tme/eval/suites/behavioral/implement_priority_queue.py120 # TODO: implementCOMMENT
Slop Phrases3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_anti_slop.py31 "Certainly! It's worth noting that we delve into a rich tapestry of ideas "CODE
MEDIUMtests/test_anti_slop.py51 "It's worth noting that we delve into a rich tapestry of ideas."CODE
MEDIUMtests/test_server_v2_tool_confirmation.py45 "Done, let me know if you need anything else.",CODE
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHwebui/src/utils/__tests__/highlightUtils.test.ts37 '// ... existing code ...\ndef updated_fn():\n return True\n// ... existing code ...';CODE
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHgptme/cli/util.py1391 click.echo(f"Set it with: export {env_var}=your-api-key")CODE