Repository Analysis

HKUDS/OpenHarness

"OpenHarness: Open Agent Harness with a Built-in Personal Agent--Ohmo!"

47.0 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of HKUDS/OpenHarness, a Python project with 14,778 GitHub stars. SynthScan v2.0 examined 93,823 lines of code across 460 source files, recording 2884 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 47.0 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).

47.0
Adjusted Score
47.0
Raw Score
100%
Time Factor
2026-06-04
Last Push
14.8K
Stars
Python
Language
93.8K
Lines of Code
460
Files
2.9K
Pattern Hits
2026-07-14
Scan Date
0.10
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 17HIGH 29MEDIUM 560LOW 2278

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 2884 distinct pattern matches across 18 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 Separators529 hits · 1790 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_hooks_skills_plugins_real.py53# ====================================================================COMMENT
MEDIUMtests/test_hooks_skills_plugins_real.py59# ====================================================================COMMENT
MEDIUMtests/test_hooks_skills_plugins_real.py136# ====================================================================COMMENT
MEDIUMtests/test_hooks_skills_plugins_real.py142# ====================================================================COMMENT
MEDIUMtests/test_hooks_skills_plugins_real.py230# ====================================================================STRING
MEDIUMtests/test_hooks_skills_plugins_real.py235# ====================================================================STRING
MEDIUMtests/test_hooks_skills_plugins_real.py333# ====================================================================STRING
MEDIUMtests/test_hooks_skills_plugins_real.py339# ====================================================================STRING
MEDIUMtests/test_hooks_skills_plugins_real.py486# ====================================================================STRING
MEDIUMtests/test_hooks_skills_plugins_real.py491# ====================================================================STRING
MEDIUMtests/test_hooks_skills_plugins_real.py603# ====================================================================STRING
MEDIUMtests/test_hooks_skills_plugins_real.py605# ====================================================================STRING
MEDIUMtests/test_real_large_tasks.py85# ====================================================================COMMENT
MEDIUMtests/test_real_large_tasks.py91# ====================================================================COMMENT
MEDIUMtests/test_real_large_tasks.py161# ====================================================================COMMENT
MEDIUMtests/test_real_large_tasks.py167# ====================================================================COMMENT
MEDIUMtests/test_real_large_tasks.py289# ====================================================================COMMENT
MEDIUMtests/test_real_large_tasks.py295# ====================================================================COMMENT
MEDIUMtests/test_real_large_tasks.py410# ====================================================================COMMENT
MEDIUMtests/test_real_large_tasks.py416# ====================================================================COMMENT
MEDIUMtests/test_real_large_tasks.py33# ====================================================================COMMENT
MEDIUMtests/test_real_large_tasks.py35# ====================================================================COMMENT
MEDIUMtests/test_real_large_tasks.py508# ====================================================================STRING
MEDIUMtests/test_real_large_tasks.py515# ====================================================================STRING
MEDIUMtests/test_real_large_tasks.py658# ====================================================================STRING
MEDIUMtests/test_real_large_tasks.py663# ====================================================================STRING
MEDIUMtests/test_real_large_tasks.py758# ====================================================================STRING
MEDIUMtests/test_real_large_tasks.py760# ====================================================================STRING
MEDIUMtests/test_untested_features.py101# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py103# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py562# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py564# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py646# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py648# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py718# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py720# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py39# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py41# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py146# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py148# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py179# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py181# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py239# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py241# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py390# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py392# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py443# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py445# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py492# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py494# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py540# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py542# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py598# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py600# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py620# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py622# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py806# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py808# ====================================================================COMMENT
MEDIUMtests/test_untested_features.py294# ====================================================================STRING
MEDIUMtests/test_untested_features.py296# ====================================================================STRING
469 more matches not shown…
Hyper-Verbose Identifiers1348 hits · 1331 pts
SeverityFileLineSnippetContext
LOWohmo/session_storage.py95def load_latest_for_session_key(workspace: str | Path | None, session_key: str) -> dict[str, Any] | None:CODE
LOWohmo/session_storage.py193 def load_latest_for_session_key(self, session_key: str) -> dict[str, Any] | None:CODE
LOWohmo/memory.py179def create_memory_command_backend(workspace: str | Path | None = None) -> MemoryCommandBackend:CODE
LOWohmo/runtime.py69def build_ohmo_backend_command(CODE
LOWohmo/cli.py141def _format_provider_profile_label(info: dict[str, object]) -> str:CODE
LOWohmo/cli.py328def _run_gateway_config_wizard(workspace: str | Path) -> GatewayConfig:CODE
LOWohmo/cli.py372def _print_gateway_config_summary(config: GatewayConfig) -> None:CODE
LOWohmo/cli.py411def _configure_gateway_logging(CODE
LOWohmo/cli.py430def _build_gateway_logging_handlers(CODE
LOWohmo/group_registry.py50def save_managed_group_record(CODE
LOWohmo/group_registry.py80def load_managed_group_record(CODE
LOWohmo/workspace.py234def get_gateway_restart_notice_path(workspace: str | Path | None = None) -> Path:STRING
LOWohmo/gateway/service.py168 async def _publish_pending_restart_notice(self) -> None:CODE
LOWohmo/gateway/service.py322def _iter_workspace_gateway_pids(workspace: str | Path | None = None) -> list[int]:CODE
LOWohmo/gateway/config.py29def build_channel_manager_config(config: GatewayConfig) -> Config:CODE
LOWohmo/gateway/provider_commands.py13def handle_gateway_provider_command(args: str, *, workspace: str | Path | None) -> tuple[str, bool]:CODE
LOWohmo/gateway/provider_commands.py55def handle_gateway_model_command(args: str, *, workspace: str | Path | None) -> tuple[str, bool]:CODE
LOWohmo/gateway/bridge.py176 async def _prepare_group_prompt_message(CODE
LOWohmo/gateway/bridge.py377def _build_group_agent_prompt(raw_request: str) -> str:CODE
LOWohmo/gateway/bridge.py391def _normalize_feishu_group_policy(value: str | None) -> str:CODE
LOWohmo/gateway/runtime.py1100def _history_has_image_blocks(messages: list[ConversationMessage]) -> bool:CODE
LOWohmo/gateway/runtime.py1104def _strip_image_blocks_from_engine_history(engine) -> None:CODE
LOWohmo/gateway/runtime.py1112def _strip_image_blocks_from_messages(messages: list[ConversationMessage]) -> list[ConversationMessage]:CODE
LOWohmo/gateway/runtime.py1116def _strip_image_blocks_from_message(message: ConversationMessage) -> ConversationMessage:CODE
LOWohmo/gateway/runtime.py139 def _handle_gateway_scoped_command(self, command_name: str, args: str) -> tuple[str, bool] | None:CODE
LOWohmo/gateway/runtime.py753 def _set_group_request_context(CODE
LOWohmo/gateway/runtime.py781 def _restore_group_request_context(bundle: RuntimeBundle, previous: object) -> None:CODE
LOWohmo/gateway/runtime.py797def _sanitize_snapshot_messages(raw_messages: object) -> list[dict[str, object]] | None:CODE
LOWohmo/gateway/runtime.py855def _extract_final_reply_media(reply: str, emitted_media: set[str]) -> list[str]:CODE
LOWohmo/gateway/runtime.py876def _format_tool_media_caption(event: ToolExecutionCompleted, media: list[str]) -> str:CODE
LOWohmo/gateway/runtime.py889def _sanitize_group_command_prompts(messages: list[ConversationMessage]) -> list[ConversationMessage]:CODE
LOWohmo/gateway/runtime.py894def _sanitize_group_command_prompt(message: ConversationMessage) -> ConversationMessage:CODE
LOWohmo/gateway/runtime.py908def _format_group_command_history_note(prompt: str) -> str:CODE
LOWohmo/gateway/runtime.py916def _sanitize_group_command_metadata(raw_metadata: object) -> object:CODE
LOWohmo/gateway/runtime.py927def _sanitize_group_command_metadata_value(value: object) -> object:CODE
LOWohmo/gateway/runtime.py1045def _build_inbound_user_message(message: InboundMessage) -> ConversationMessage:CODE
LOWohmo/gateway/runtime.py1071def _should_retry_without_image_input(error_message: str, messages: list[ConversationMessage]) -> bool:CODE
LOWohmo/gateway/runtime.py1233def _prefers_chinese_progress(content: str) -> bool:CODE
LOWfrontend/terminal/src/clipboardImage.ts90async function readWindowsClipboardImage(): Promise<ClipboardImageRead | null> {CODE
LOWtests/conftest.py11async def _reset_background_task_manager():CODE
LOWtests/test_hooks_skills_plugins_real.py61async def task_hook_blocks_model_adapts():CODE
LOWtests/test_hooks_skills_plugins_real.py144async def task_model_invokes_skill_tool():CODE
LOWtests/test_hooks_skills_plugins_real.py237async def task_plugin_skill_in_agent_loop():STRING
LOWtests/test_hooks_skills_plugins_real.py341async def task_hook_gates_writes_skill_guides():STRING
LOWtests/test_hooks_skills_plugins_real.py493async def task_swarm_teammates_use_skills():STRING
LOWtests/test_real_large_tasks.py93async def task_security_audit_with_hooks():CODE
LOWtests/test_real_large_tasks.py169async def task_coordinator_code_review():CODE
LOWtests/test_real_large_tasks.py297async def task_migration_plan_with_memory():CODE
LOWtests/test_real_large_tasks.py665async def task_refactor_with_session():STRING
LOWtests/test_untested_features.py650async def test_combined_hooks_skills_agent():CODE
LOWtests/test_untested_features.py722async def test_full_swarm_autoagent():CODE
LOWtests/test_platforms.py8def test_detect_platform_recognizes_wsl():CODE
LOWtests/test_platforms.py17def test_detect_platform_recognizes_windows():CODE
LOWtests/test_platforms.py25def test_windows_capabilities_disable_swarm_mailbox_and_sandbox():CODE
LOWtests/test_merged_prs_on_autoagent.py153async def task_memory_research_autoagent():CODE
LOWtests/test_merged_prs_on_autoagent.py327async def task_session_resume_autoagent():STRING
LOWtests/test_merged_prs_on_autoagent.py412async def task_cron_autoagent_maintenance():STRING
LOWtests/test_bridge/test_session_flow.py14async def test_bridge_session_writes_output_in_cwd(tmp_path: Path):CODE
LOWtests/test_bridge/test_session_flow.py25def test_bridge_secret_and_url_flow():CODE
LOWtests/test_bridge/test_core.py13def test_work_secret_roundtrip():CODE
1288 more matches not shown…
Unused Imports490 hits · 472 pts
SeverityFileLineSnippetContext
LOWohmo/session_storage.py3CODE
LOWohmo/memory.py3CODE
LOWohmo/runtime.py3CODE
LOWohmo/prompts.py3CODE
LOWohmo/cli.py3CODE
LOWohmo/group_registry.py3CODE
LOWohmo/workspace.py3CODE
LOWohmo/gateway/service.py3CODE
LOWohmo/gateway/config.py3CODE
LOWohmo/gateway/models.py3CODE
LOWohmo/gateway/provider_commands.py3CODE
LOWohmo/gateway/bridge.py3CODE
LOWohmo/gateway/notify.py3CODE
LOWohmo/gateway/runtime.py3CODE
LOWohmo/gateway/router.py3CODE
LOWohmo/gateway/group_tool.py3CODE
LOWtests/conftest.py3CODE
LOWtests/test_hooks_skills_plugins_real.py9CODE
LOWtests/test_real_large_tasks.py9CODE
LOWtests/test_untested_features.py10CODE
LOWtests/test_platforms.py3CODE
LOWtests/test_merged_prs_on_autoagent.py9CODE
LOWtests/test_bridge/test_session_flow.py3CODE
LOWtests/test_bridge/test_core.py3CODE
LOWtests/test_install/test_windows_alias.py3CODE
LOWtests/test_tasks/test_manager.py3CODE
LOWtests/test_tools/test_image_generation_tool.py3CODE
LOWtests/test_tools/test_web_fetch_tool.py3CODE
LOWtests/test_tools/test_mcp_auth_tool.py3CODE
LOWtests/test_tools/test_integration_flows.py3CODE
LOWtests/test_tools/test_core_tools.py3CODE
LOWtests/test_tools/test_image_to_text_tool.py3CODE
LOWtests/test_tools/test_task_tools.py3CODE
LOWtests/test_swarm/test_registry.py3CODE
LOWtests/test_swarm/test_permission_sync.py3CODE
LOWtests/test_swarm/test_imports.py3CODE
LOWtests/test_swarm/test_lockfile.py3CODE
LOWtests/test_swarm/test_mailbox.py3CODE
LOWtests/test_swarm/test_spawn_utils.py3CODE
LOWtests/test_swarm/test_subprocess_backend.py3CODE
LOWtests/test_swarm/test_in_process.py3CODE
LOWtests/test_swarm/test_team_lifecycle.py3CODE
LOWtests/test_swarm/test_worktree.py3CODE
LOWtests/test_swarm/test_types.py3CODE
LOWtests/test_utils/test_fs.py3CODE
LOWtests/test_utils/test_helpers.py3CODE
LOWtests/test_utils/test_shell.py3CODE
LOWtests/test_utils/test_network_guard.py3CODE
LOWtests/test_commands/test_registry.py3CODE
LOWtests/test_commands/test_command_flows.py3CODE
LOWtests/test_autopilot/test_verification.py3CODE
LOWtests/test_memory/test_memdir.py3CODE
LOWtests/test_memory/test_claude_runtime_memory.py3CODE
LOWtests/test_coordinator/test_coordinator_mode.py3CODE
LOWtests/test_coordinator/test_agent_definitions.py3CODE
LOWtests/test_channels/test_telegram_security.py1CODE
LOWtests/test_channels/test_base.py1CODE
LOWtests/test_channels/test_feishu_security.py3CODE
LOWtests/test_plugins/test_lifecycle_flow.py3CODE
LOWtests/test_plugins/test_loader.py3CODE
430 more matches not shown…
Excessive Try-Catch Wrapping197 hits · 203 pts
SeverityFileLineSnippetContext
LOWohmo/gateway/service.py228 except Exception as exc:CODE
LOWohmo/gateway/service.py332 except Exception:CODE
LOWohmo/gateway/service.py357 except Exception:CODE
LOWohmo/gateway/bridge.py296 except Exception as exc: # pragma: no cover - gateway failure pathCODE
LOWohmo/gateway/bridge.py362 except Exception:CODE
LOWohmo/gateway/runtime.py481 except Exception:CODE
LOWohmo/gateway/runtime.py805 except Exception:CODE
LOWohmo/gateway/runtime.py851 except Exception:CODE
LOWohmo/gateway/runtime.py1065 except Exception:CODE
LOWohmo/gateway/group_tool.py95 except Exception as exc:CODE
LOWohmo/gateway/group_tool.py121 except Exception as exc:CODE
LOWtests/test_hooks_skills_plugins_real.py620 except Exception as e:STRING
LOWtests/test_real_large_tasks.py781 except Exception as e:STRING
LOWtests/test_untested_features.py94 except Exception as e:CODE
LOWtests/test_merged_prs_on_autoagent.py649 except Exception as e:STRING
LOWscripts/test_harness_features.py229 except Exception as exc:CODE
LOWscripts/test_real_skills_plugins.py336 except Exception as exc:CODE
LOWscripts/test_react_tui_redesign.py177 except Exception as exc:CODE
LOWscripts/test_tui_interactions.py192 except Exception as exc:CODE
LOWscripts/test_cli_flags.py147 except Exception as exc:CODE
LOWscripts/test_docker_sandbox_e2e.py639 except Exception as exc:CODE
LOWscripts/test_headless_rendering.py133 except Exception as exc:CODE
LOWscripts/test_headless_rendering.py156 except Exception as exc:CODE
MEDIUMsrc/openharness/cli.py1896 print(f"Error: {exc}", file=sys.stderr)CODE
MEDIUMsrc/openharness/cli.py2172 print(f"Error: {exc}", file=sys.stderr)CODE
MEDIUMsrc/openharness/cli.py1638 print(f"Error: {exc}", file=sys.stderr)CODE
MEDIUMsrc/openharness/cli.py1692 print(f"Error: {exc}", file=sys.stderr, flush=True)CODE
MEDIUMsrc/openharness/cli.py1738 print(f"Error: {exc}", file=sys.stderr)CODE
MEDIUMsrc/openharness/cli.py1923 print("Error: domain cannot be empty.", file=sys.stderr, flush=True)CODE
MEDIUMsrc/openharness/cli.py1933 print(f"Error: {exc}", file=sys.stderr, flush=True)CODE
MEDIUMsrc/openharness/cli.py2031 print(f"Error: {exc}", file=sys.stderr)CODE
MEDIUMsrc/openharness/cli.py2066 print(f"Error: {exc}", file=sys.stderr)CODE
MEDIUMsrc/openharness/cli.py2153 print(f"Error: {exc}", file=sys.stderr)CODE
MEDIUMsrc/openharness/cli.py2400 print("Error: --dry-run does not support --continue/--resume yet.", file=sys.stderr)CODE
MEDIUMsrc/openharness/cli.py2406 print("Error: -p/--print requires a prompt value, e.g. -p 'your prompt'", file=sys.stderr)CODE
MEDIUMsrc/openharness/cli.py2501 print("Error: -p/--print requires a prompt value, e.g. -p 'your prompt'", file=sys.stderr)CODE
LOWsrc/openharness/cli.py465 except Exception as exc: # pragma: no cover - defensive diagnostic pathCODE
LOWsrc/openharness/cli.py1743 except Exception:CODE
LOWsrc/openharness/ui/runtime.py87 except Exception:CODE
LOWsrc/openharness/ui/runtime.py201 except Exception as exc:CODE
LOWsrc/openharness/ui/runtime.py246 except Exception:CODE
LOWsrc/openharness/ui/runtime.py491 except Exception:CODE
MEDIUMsrc/openharness/ui/runtime.py198def _safe_resolve_auth():CODE
LOWsrc/openharness/ui/backend_host.py201 except Exception as exc: # pragma: no cover - defensive protocol handlingCODE
LOWsrc/openharness/ui/react_launcher.py18 except Exception:CODE
LOWsrc/openharness/swarm/team_lifecycle.py665 except Exception:CODE
LOWsrc/openharness/swarm/subprocess_backend.py99 except Exception as exc:CODE
LOWsrc/openharness/swarm/in_process.py273 except Exception:CODE
LOWsrc/openharness/swarm/in_process.py306 except Exception:CODE
LOWsrc/openharness/swarm/in_process.py312 except Exception:CODE
LOWsrc/openharness/tasks/manager.py372 except Exception:CODE
LOWsrc/openharness/tools/agent_tool.py83 except Exception as exc:CODE
LOWsrc/openharness/tools/mcp_auth_tool.py65 except Exception as exc: # pragma: no cover - defensiveCODE
LOWsrc/openharness/tools/image_to_text_tool.py119 except Exception as exc:CODE
LOWsrc/openharness/tools/image_generation_tool.py114 except Exception as exc:CODE
LOWsrc/openharness/tools/send_message_tool.py55 except Exception as exc:CODE
LOWsrc/openharness/coordinator/agent_definitions.py888 except Exception:CODE
LOWsrc/openharness/coordinator/agent_definitions.py942 except Exception:CODE
LOWsrc/openharness/auth/storage.py107 except Exception as exc:CODE
LOWsrc/openharness/auth/storage.py137 except Exception as exc:CODE
137 more matches not shown…
Hallucination Indicators17 hits · 180 pts
SeverityFileLineSnippetContext
CRITICALtests/test_utils/test_helpers.py5from openharness.utils.helpers import get_data_path, safe_filename, split_messageCODE
CRITICALsrc/openharness/channels/impl/matrix.py41from openharness.utils.helpers import safe_filenameCODE
CRITICALsrc/openharness/channels/impl/telegram.py17from openharness.utils.helpers import split_messageCODE
CRITICALsrc/openharness/channels/impl/discord.py15from openharness.utils.helpers import split_messageCODE
CRITICALsrc/openharness/channels/impl/mochat.py19from openharness.utils.helpers import get_data_pathCODE
CRITICALsrc/openharness/channels/impl/feishu.py18from openharness.utils.helpers import safe_filenameCODE
CRITICALsrc/openharness/channels/impl/feishu.py545 response = self._client.im.v1.message_reaction.create(request)CODE
CRITICALsrc/openharness/channels/impl/feishu.py806 response = self._client.im.v1.image.create(request)CODE
CRITICALsrc/openharness/channels/impl/feishu.py834 response = self._client.im.v1.file.create(request)CODE
CRITICALsrc/openharness/channels/impl/feishu.py855 response = self._client.im.v1.message_resource.get(request)CODE
CRITICALsrc/openharness/channels/impl/feishu.py888 response = self._client.im.v1.message_resource.get(request)CODE
CRITICALsrc/openharness/channels/impl/feishu.py975 response = self._client.im.v1.message.reply(request)CODE
CRITICALsrc/openharness/channels/impl/feishu.py986 response = self._client.im.v1.message.create(request)CODE
CRITICALsrc/openharness/channels/impl/feishu.py1027 response = self._client.im.v1.chat.create(request)CODE
CRITICALsrc/openharness/channels/impl/feishu.py1054 response = self._client.im.v1.chat.update(request)CODE
CRITICALsrc/openharness/channels/impl/feishu.py1180 lark.api.contact.v3.GetUserRequest.builder()CODE
CRITICALsrc/openharness/channels/impl/feishu.py1185 response = self._client.contact.v3.user.get(request)CODE
Cross-Language Confusion27 hits · 151 pts
SeverityFileLineSnippetContext
HIGHtests/test_hooks_skills_plugins_real.py413 command='echo "$TOOL_INPUT" | grep -q "config.py" && exit 1 || exit 0',STRING
HIGHtests/test_hooks_skills_plugins_real.py420 command='echo "$TOOL_INPUT" | grep -q "config.py" && exit 1 || exit 0',STRING
HIGHtests/test_real_large_tasks.py427 os.system(f"cd {repo} && git init -q && git checkout -b main 2>/dev/null")CODE
HIGHtests/test_real_large_tasks.py461 os.system(f"cd {repo} && git add -A && git commit -q -m 'initial commit'")STRING
HIGHtests/test_untested_features.py574 os.system(f"cd {repo} && git init && git commit --allow-empty -m 'init' 2>/dev/null")CODE
HIGHtests/test_untested_features.py205 command='echo "$TOOL_INPUT" | grep -q "rm " && exit 1 || exit 0',CODE
HIGHtests/test_merged_prs_on_autoagent.py433 "command": "cd /home/tangjiabin/AutoAgent && ruff check autoagent/"},STRING
HIGHtests/test_merged_prs_on_autoagent.py435 "command": "cd /home/tangjiabin/AutoAgent && python -m pytest tests/ -q"},STRING
HIGHtests/test_merged_prs_on_autoagent.py437 "command": "cd /home/tangjiabin/AutoAgent && grep -r TODO autoagent/ | wc -l"},STRING
HIGHtests/test_merged_prs_on_autoagent.py585 "command": "cd /home/tangjiabin/AutoAgent && ruff check autoagent/",STRING
HIGHtests/test_permissions/test_checker.py32 command="npm init -y && npm install next react react-dom",CODE
HIGHtests/test_autopilot/test_verification.py37 "pytest && evil",CODE
HIGHtests/test_autopilot/test_verification.py38 "pytest || evil",CODE
HIGHtests/test_autopilot/test_verification.py56 {"command": "cd frontend && npm ci && tsc --noEmit", "shell": True},CODE
HIGHtests/test_autopilot/test_verification.py60 assert cmd.raw == "cd frontend && npm ci && tsc --noEmit"CODE
HIGHtests/test_autopilot/test_verification.py185 "commands": [{"command": "cd x && y", "shell": True}],CODE
HIGHtests/test_autopilot/test_verification.py191 assert seen["target"] == "cd x && y"CODE
HIGHtests/test_prompts/test_environment.py42 # Create a git repo (cross-platform: use subprocess, not os.system with /dev/null)COMMENT
HIGHscripts/test_docker_sandbox_e2e.py417 ["bash", "-c", "timeout 3 bash -c 'echo > /dev/tcp/8.8.8.8/53' 2>&1 || exit 1"],CODE
HIGHscripts/test_docker_sandbox_e2e.py439 ["bash", "-c", "getent hosts github.com 2>/dev/null && echo DNS_OK || echo DNS_FAIL"],CODE
HIGHscripts/test_docker_sandbox_e2e.py439 ["bash", "-c", "getent hosts github.com 2>/dev/null && echo DNS_OK || echo DNS_FAIL"],CODE
HIGHsrc/openharness/coordinator/coordinator_mode.py419{_AGENT_TOOL_NAME}({{ prompt: "Fix the null pointer in src/auth/validate.ts:42. The user field on Session (src/auth/typeCODE
HIGHsrc/openharness/coordinator/coordinator_mode.py452{_SEND_MESSAGE_TOOL_NAME}({{ to: "xyz-456", message: "Fix the null pointer in src/auth/validate.ts:42. The user field isCODE
HIGHsrc/openharness/coordinator/coordinator_mode.py512 {_SEND_MESSAGE_TOOL_NAME}({{ to: "agent-a1b", message: "Fix the null pointer in src/auth/validate.ts:42. Add a null chCODE
HIGHsrc/openharness/coordinator/agent_definitions.py425 "current_usage": null,CODE
HIGHsrc/openharness/coordinator/agent_definitions.py426 "used_percentage": null,CODE
HIGHsrc/openharness/sandbox/docker_image.py16RUN apt-get update && apt-get install -y --no-install-recommends \\CODE
Modern Structural Boilerplate94 hits · 99 pts
SeverityFileLineSnippetContext
LOWohmo/__init__.py3__all__ = ["__version__"]CODE
LOWohmo/gateway/service.py35logger = logging.getLogger(__name__)CODE
LOWohmo/gateway/bridge.py18logger = logging.getLogger(__name__)CODE
LOWohmo/gateway/notify.py13logger = logging.getLogger(__name__)CODE
LOWohmo/gateway/runtime.py45logger = logging.getLogger(__name__)CODE
LOWtests/test_tools/test_mcp_auth_tool.py22 def update_server_config(self, name: str, config: object) -> None:CODE
LOWscripts/e2e_smoke.py142def _setup_skill_flow(_: Path, config_dir: Path) -> None:CODE
LOWscripts/e2e_smoke.py161def _setup_context_flow(cwd: Path, _: Path) -> None:CODE
LOWscripts/e2e_smoke.py170def _setup_plugin_combo_flow(cwd: Path, _: Path) -> None:CODE
LOWscripts/e2e_smoke.py191def _setup_worktree_flow(cwd: Path, _: Path) -> None:CODE
LOWscripts/e2e_smoke.py215def _setup_issue_pr_context_flow(cwd: Path, _: Path) -> None:CODE
LOWscripts/e2e_smoke.py341def _setup_lsp_flow(cwd: Path, _: Path) -> None:CODE
LOWsrc/openharness/personalization/__init__.py6__all__ = ["extract_local_rules", "load_local_rules", "save_local_rules"]CODE
LOWsrc/openharness/vim/__init__.py5__all__ = ["toggle_vim_mode"]CODE
LOWsrc/openharness/ui/protocol.py241__all__ = [CODE
LOWsrc/openharness/ui/__init__.py5__all__ = ["run_repl", "run_print_mode"]CODE
LOWsrc/openharness/ui/backend_host.py934__all__ = ["run_backend_host", "ReactBackendHost", "BackendHostConfig"]CODE
LOWsrc/openharness/ui/input.py15 def set_modes(self, *, vim_enabled: bool, voice_enabled: bool) -> None:CODE
LOWsrc/openharness/ui/react_launcher.py179__all__ = ["build_backend_command", "get_frontend_dir", "launch_react_tui"]CODE
LOWsrc/openharness/ui/textual_app.py430 def _set_current_response(self, message: str) -> None:STRING
LOWsrc/openharness/ui/output.py31 def set_style(self, style_name: str) -> None:CODE
LOWsrc/openharness/swarm/lockfile.py18__all__ = [CODE
LOWsrc/openharness/swarm/registry.py17logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/swarm/subprocess_backend.py25logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/swarm/__init__.py35__all__ = [CODE
LOWsrc/openharness/swarm/in_process.py45logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/swarm/in_process.py186def set_teammate_context(ctx: TeammateContext) -> None:CODE
LOWsrc/openharness/tasks/__init__.py9__all__ = [CODE
LOWsrc/openharness/tools/agent_tool.py17logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/tools/__init__.py101__all__ = [CODE
LOWsrc/openharness/tools/send_message_tool.py14logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/coordinator/__init__.py6__all__ = [CODE
LOWsrc/openharness/coordinator/agent_definitions.py14logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/memory/__init__.py12__all__ = [CODE
LOWsrc/openharness/keybindings/__init__.py8__all__ = [CODE
LOWsrc/openharness/config/__init__.py22__all__ = [CODE
LOWsrc/openharness/auth/__init__.py15__all__ = [CODE
LOWsrc/openharness/plugins/__init__.py11__all__ = [CODE
LOWsrc/openharness/plugins/loader.py33logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/bridge/__init__.py8__all__ = [CODE
LOWsrc/openharness/utils/fs.py36__all__ = ["atomic_write_bytes", "atomic_write_text"]CODE
LOWsrc/openharness/utils/helpers.py16__all__ = ["get_data_path", "safe_filename", "split_message"]CODE
LOWsrc/openharness/mcp/client.py70 def update_server_config(self, name: str, config: object) -> None:CODE
LOWsrc/openharness/mcp/__init__.py20__all__ = [CODE
LOWsrc/openharness/state/__init__.py6__all__ = ["AppState", "AppStateStore"]CODE
LOWsrc/openharness/permissions/__init__.py11__all__ = ["PermissionChecker", "PermissionDecision", "PermissionMode"]CODE
LOWsrc/openharness/voice/__init__.py7__all__ = ["VoiceDiagnostics", "extract_keyterms", "inspect_voice_capabilities", "toggle_voice_mode", "transcribe_streamCODE
LOWsrc/openharness/sandbox/docker_backend.py16logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/sandbox/docker_image.py10logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/sandbox/session.py14logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/sandbox/__init__.py19__all__ = [CODE
LOWsrc/openharness/hooks/__init__.py13__all__ = [CODE
LOWsrc/openharness/hooks/executor.py48 def update_registry(self, registry: HookRegistry) -> None:CODE
LOWsrc/openharness/prompts/__init__.py8__all__ = [CODE
LOWsrc/openharness/api/__init__.py11__all__ = [CODE
LOWsrc/openharness/commands/__init__.py13__all__ = [CODE
LOWsrc/openharness/skills/_frontmatter.py10logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/skills/__init__.py11__all__ = [CODE
LOWsrc/openharness/skills/loader.py21logger = logging.getLogger(__name__)CODE
LOWsrc/openharness/output_styles/__init__.py5__all__ = ["OutputStyle", "get_output_styles_dir", "load_output_styles"]CODE
34 more matches not shown…
Deep Nesting101 hits · 82 pts
SeverityFileLineSnippetContext
LOWohmo/runtime.py147CODE
LOWohmo/runtime.py188CODE
LOWohmo/cli.py148CODE
LOWohmo/cli.py195CODE
LOWohmo/gateway/runtime.py954CODE
LOWtests/test_hooks_skills_plugins_real.py34CODE
LOWtests/test_real_large_tasks.py65CODE
LOWtests/test_untested_features.py68CODE
LOWtests/test_untested_features.py183CODE
LOWtests/test_merged_prs_on_autoagent.py82CODE
LOWscripts/local_system_scenarios.py222CODE
LOWscripts/e2e_smoke.py694CODE
LOWscripts/e2e_smoke.py759CODE
LOWscripts/test_docker_sandbox_e2e.py588CODE
LOWsrc/openharness/cli.py333CODE
LOWsrc/openharness/cli.py1404CODE
LOWsrc/openharness/cli.py2181CODE
LOWsrc/openharness/personalization/rules.py49CODE
LOWsrc/openharness/personalization/extractor.py78CODE
LOWsrc/openharness/ui/runtime.py621CODE
LOWsrc/openharness/ui/runtime.py777CODE
LOWsrc/openharness/ui/backend_host.py92CODE
LOWsrc/openharness/ui/backend_host.py250CODE
LOWsrc/openharness/ui/backend_host.py682CODE
LOWsrc/openharness/ui/backend_host.py274CODE
LOWsrc/openharness/ui/app.py92CODE
LOWsrc/openharness/ui/app.py177CODE
LOWsrc/openharness/ui/app.py121CODE
LOWsrc/openharness/ui/app.py240CODE
LOWsrc/openharness/ui/textual_app.py327CODE
LOWsrc/openharness/ui/textual_app.py436CODE
LOWsrc/openharness/ui/output.py56CODE
LOWsrc/openharness/swarm/in_process.py196CODE
LOWsrc/openharness/swarm/permission_sync.py1035CODE
LOWsrc/openharness/tools/grep_tool.py105CODE
LOWsrc/openharness/tools/config_tool.py28CODE
LOWsrc/openharness/tools/glob_tool.py98CODE
LOWsrc/openharness/tools/image_generation_tool.py318CODE
LOWsrc/openharness/coordinator/agent_definitions.py695CODE
LOWsrc/openharness/coordinator/agent_definitions.py905CODE
LOWsrc/openharness/auth/storage.py166CODE
LOWsrc/openharness/auth/manager.py116CODE
LOWsrc/openharness/auth/manager.py186CODE
LOWsrc/openharness/plugins/loader.py320CODE
LOWsrc/openharness/plugins/loader.py479CODE
LOWsrc/openharness/plugins/loader.py621CODE
LOWsrc/openharness/plugins/loader.py691CODE
LOWsrc/openharness/permissions/checker.py75CODE
LOWsrc/openharness/hooks/executor.py64CODE
LOWsrc/openharness/prompts/claudemd.py8CODE
LOWsrc/openharness/prompts/context.py102CODE
LOWsrc/openharness/api/provider.py97CODE
LOWsrc/openharness/api/client.py98CODE
LOWsrc/openharness/api/client.py165CODE
LOWsrc/openharness/api/codex_client.py77CODE
LOWsrc/openharness/api/codex_client.py253CODE
LOWsrc/openharness/api/codex_client.py358CODE
LOWsrc/openharness/api/openai_client.py81CODE
LOWsrc/openharness/api/openai_client.py315CODE
LOWsrc/openharness/commands/registry.py445CODE
41 more matches not shown…
Self-Referential Comments8 hits · 22 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_hooks_skills_plugins_real.py163 # Create a skill file that gives specific instructionsCOMMENT
MEDIUMtests/test_hooks_skills_plugins_real.py256 # Create a plugin with a skillSTRING
MEDIUMtests/test_hooks_skills_plugins_real.py384 # Create a file to refactorSTRING
MEDIUMtests/test_real_large_tasks.py424 # Create a test repo with a "buggy" fileCOMMENT
MEDIUMtests/test_real_large_tasks.py673 # Create a file to refactorSTRING
MEDIUMtests/test_tools/test_image_to_text_tool.py174 # Create a minimal valid PNG fileCOMMENT
MEDIUMtests/test_prompts/test_environment.py42 # Create a git repo (cross-platform: use subprocess, not os.system with /dev/null)COMMENT
MEDIUMscripts/install.sh192# Create a virtual environment to avoid PEP 668 externally-managed errorsCOMMENT
Verbosity Indicators21 hits · 19 pts
SeverityFileLineSnippetContext
LOWtests/test_merged_prs_on_autoagent.py556 # Step 3: Use diagnose skill on AutoAgent (PR #17)STRING
LOWtests/test_merged_prs_on_autoagent.py565 # Step 4: Track costs (PR #16)STRING
LOWtests/test_merged_prs_on_autoagent.py570 # Step 5: Save session (PR #16)STRING
LOWtests/test_merged_prs_on_autoagent.py579 # Step 6: Create cron job for ongoing monitoring (PR #16)STRING
LOWtests/test_merged_prs_on_autoagent.py590 # Step 7: Resume session in Anthropic client and continue (PR #16 + #14)STRING
LOWtests/test_merged_prs_on_autoagent.py529 # Step 1: OpenAI client researches AutoAgent (PR #14)STRING
LOWtests/test_merged_prs_on_autoagent.py542 # Step 2: Save research to memory with frontmatter (PR #12)STRING
LOWscripts/install.sh67# Step 1: Detect OSCOMMENT
LOWscripts/install.sh88# Step 2: Check Python >= 3.10COMMENT
LOWscripts/install.sh151# Step 3: Check Node.js >= 18COMMENT
LOWscripts/install.sh182# Step 4: Install OpenHarnessCOMMENT
LOWscripts/install.sh241# Step 5: Channel dependenciesCOMMENT
LOWscripts/install.sh249# Step 6: Install frontend/terminal npm dependenciesCOMMENT
LOWscripts/install.sh270# Step 7: Create OpenHarness config directoryCOMMENT
LOWscripts/install.sh281# Step 8: Register global commandsCOMMENT
LOWscripts/install.sh292# Step 9: Verify installationCOMMENT
LOWscripts/install.sh316# Step 10: Add command directory to shell profileCOMMENT
LOWsrc/openharness/services/compact/__init__.py1163 # Step 1: microcompact to reduce tokens cheaplyCOMMENT
LOWsrc/openharness/services/compact/__init__.py1169 # Step 2: split into older (summarize) and newer (preserve)COMMENT
LOWsrc/openharness/services/compact/__init__.py1172 # Step 3: build compact request — send older messages + compact promptCOMMENT
LOWsrc/openharness/services/compact/__init__.py1375 # Step 4: build the new message listCOMMENT
Structural Annotation Overuse21 hits · 19 pts
SeverityFileLineSnippetContext
LOWtests/test_merged_prs_on_autoagent.py556 # Step 3: Use diagnose skill on AutoAgent (PR #17)STRING
LOWtests/test_merged_prs_on_autoagent.py565 # Step 4: Track costs (PR #16)STRING
LOWtests/test_merged_prs_on_autoagent.py570 # Step 5: Save session (PR #16)STRING
LOWtests/test_merged_prs_on_autoagent.py579 # Step 6: Create cron job for ongoing monitoring (PR #16)STRING
LOWtests/test_merged_prs_on_autoagent.py590 # Step 7: Resume session in Anthropic client and continue (PR #16 + #14)STRING
LOWtests/test_merged_prs_on_autoagent.py529 # Step 1: OpenAI client researches AutoAgent (PR #14)STRING
LOWtests/test_merged_prs_on_autoagent.py542 # Step 2: Save research to memory with frontmatter (PR #12)STRING
LOWscripts/install.sh67# Step 1: Detect OSCOMMENT
LOWscripts/install.sh88# Step 2: Check Python >= 3.10COMMENT
LOWscripts/install.sh151# Step 3: Check Node.js >= 18COMMENT
LOWscripts/install.sh182# Step 4: Install OpenHarnessCOMMENT
LOWscripts/install.sh241# Step 5: Channel dependenciesCOMMENT
LOWscripts/install.sh249# Step 6: Install frontend/terminal npm dependenciesCOMMENT
LOWscripts/install.sh270# Step 7: Create OpenHarness config directoryCOMMENT
LOWscripts/install.sh281# Step 8: Register global commandsCOMMENT
LOWscripts/install.sh292# Step 9: Verify installationCOMMENT
LOWscripts/install.sh316# Step 10: Add command directory to shell profileCOMMENT
LOWsrc/openharness/services/compact/__init__.py1163 # Step 1: microcompact to reduce tokens cheaplyCOMMENT
LOWsrc/openharness/services/compact/__init__.py1169 # Step 2: split into older (summarize) and newer (preserve)COMMENT
LOWsrc/openharness/services/compact/__init__.py1172 # Step 3: build compact request — send older messages + compact promptCOMMENT
LOWsrc/openharness/services/compact/__init__.py1375 # Step 4: build the new message listCOMMENT
AI Structural Patterns18 hits · 16 pts
SeverityFileLineSnippetContext
LOWohmo/runtime.py28CODE
LOWohmo/cli.py448CODE
LOWsrc/openharness/cli.py2072CODE
LOWsrc/openharness/cli.py2116CODE
LOWsrc/openharness/cli.py2181CODE
LOWsrc/openharness/ui/runtime.py274CODE
LOWsrc/openharness/ui/backend_host.py883CODE
LOWsrc/openharness/ui/react_launcher.py81CODE
LOWsrc/openharness/ui/react_launcher.py116CODE
LOWsrc/openharness/ui/app.py40CODE
LOWsrc/openharness/ui/app.py92CODE
LOWsrc/openharness/ui/app.py177CODE
LOWsrc/openharness/swarm/spawn_utils.py109CODE
LOWsrc/openharness/auth/manager.py344CODE
LOWsrc/openharness/engine/query_engine.py24CODE
LOWsrc/openharness/services/compact/__init__.py1119CODE
LOWsrc/openharness/services/compact/__init__.py1482CODE
LOWsrc/openharness/services/autodream/service.py97CODE
AI Slop Vocabulary4 hits · 11 pts
SeverityFileLineSnippetContext
MEDIUMdocs/autopilot/assets/index-gQnrxco6.js49`).replace(hm,"")}function Hd(l,t){return t=Cd(t),Cd(l)===t}function fl(l,t,a,u,e,n){switch(a){case"children":typeof u==CODE
MEDIUMsrc/openharness/swarm/in_process.py257 # harness wires up the full engine for in-process teammates.COMMENT
MEDIUMsrc/openharness/coordinator/agent_definitions.py133 subagent_type: str = "general-purpose" # routing key used by the harnessCODE
MEDIUMsrc/openharness/channels/impl/dingtalk.py55 # Parse using SDK's ChatbotMessage for robust handlingCOMMENT
Docstring Block Structure2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHsrc/openharness/swarm/registry.py271Return a TeammateExecutor for the given backend type. Args: backend: Explicit backend type to use. STRING
HIGHsrc/openharness/swarm/permission_sync.py346Build a new :class:`SwarmPermissionRequest` with a generated ID. Missing worker/team fields are read from environmeSTRING
Modern AI Meta-Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_real_large_tasks.py512# Features: coordinator mode (5-turn orchestration), 3 concurrentSTRING
MEDIUMsrc/openharness/coordinator/agent_definitions.py105 max_turns: int | None = None # maximum agentic turns before stopping; must be > 0CODE
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/install_dev.sh3# Usage:COMMENT
LOWscripts/sync_nanobot_channels.sh4# Usage:COMMENT
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOWsrc/openharness/swarm/spawn_utils.py21COMMENT
LOWsrc/openharness/auth/flows.py81 # Only http(s) URLs are valid here. ShellExecute / xdg-open / `open`COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWsrc/openharness/channels/impl/discord.py273 # Check if bot was mentioned in the messageCOMMENT