AI Slop Code RIsk Monitor

katanemo/plano

Plano is an AI-native proxy server and data plane for agentic apps. Smart LLM routing, observability, agent orchestration, and guardrails so you stay focused on your agents core logic.

9.9 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for katanemo/plano, a Rust project with 7,084 GitHub stars. SynthScan examined 125,243 lines of code across 557 source files, recording 714 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 9.9 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

9.9
Adjusted Signal
9.9
Raw Pattern Score
100%
Time Factor
2026-10-07
Last Push
7.1K
Stars
Rust
Language
125.2K
Lines of Code
557
Files
714
Pattern Hits
2026-10-12
Scan Date
0.05
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 27.1/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 501 finding(s).

Hallucinated Dependency & Supply Chain Risk 5.3/100 · LOW

Are imports declared and package/API names verified? 70 finding(s).

Agent Over-Engineering Ratio 17.3/100 · LOW

Are wrappers, guards, and repeated structures necessary? 305 finding(s).

PR Review Velocity Impact 34.0/100 · MEDIUM

Which changes need focused human review? 714 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 29MEDIUM 90LOW 595

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 714 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Structural Annotation Overuse89 hits · 191 pts
SeverityFileLineSnippetContext
LOWcrates/brightstaff/src/state/memory.rs387 // Step 1: Previous state contains the initial exchangeCOMMENT
LOW⚡crates/brightstaff/src/state/memory.rs413 // Step 2: Current request includes function call outputCOMMENT
LOW⚡crates/brightstaff/src/state/memory.rs422 // Step 3: Merge should combine all conversation historyCOMMENT
LOW⚡docs/source/resources/includes/agents/flights.py282 # Step 1: Extract origin, destination, and dateCOMMENT
LOW⚡docs/source/resources/includes/agents/flights.py288 # Step 2: Short circuit if missing origin or destinationCOMMENT
LOW⚡docs/source/resources/includes/agents/flights.py339 # Step 4: Get live flight dataCOMMENT
LOWdocs/source/resources/includes/agents/flights.py315 # Step 3: Resolve airport codesCOMMENT
LOWdocs/source/resources/includes/agents/flights.py370 # Step 5: Prepare context for LLM - append flight data to last user messageCOMMENT
LOWdocs/source/resources/includes/agents/flights.py397 # Step 6: Stream responseCOMMENT
LOW⚡docs/source/resources/includes/agents/weather.py134 # Step 2: Fetch weather data for the extracted locationCOMMENT
LOWcli/planoai/init_cmd.py251 # Step 1: choose template (or clean)COMMENT
LOWcli/planoai/init_cmd.py270 # Step 2: output path (default: config.yaml)COMMENT
LOW⚡demos/advanced/currency_exchange/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/advanced/currency_exchange/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/advanced/currency_exchange/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/advanced/currency_exchange/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/advanced/model_choice_test_harness/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/advanced/model_choice_test_harness/run_demo.sh10 # Step 2: Create `.env` file and set API keysCOMMENT
LOW⚡demos/advanced/model_choice_test_harness/run_demo.sh20 # Step 3: Start PlanoCOMMENT
LOW⚡demos/advanced/model_choice_test_harness/run_demo.sh30 # Step 2: Stop PlanoCOMMENT
LOW⚡demos/advanced/multi_turn_rag/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/advanced/multi_turn_rag/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/advanced/multi_turn_rag/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM)COMMENT
LOW⚡demos/advanced/multi_turn_rag/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/advanced/multi_turn_rag/run_demo.sh32 # Step 5: Start agents nativelyCOMMENT
LOW⚡demos/advanced/stock_quote/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/advanced/stock_quote/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/advanced/stock_quote/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/advanced/stock_quote/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/llm_routing/codex_router/README.md33### Step 1: Open the DemoCOMMENT
LOW⚡demos/llm_routing/codex_router/README.md40### Step 2: Set API KeysCOMMENT
LOW⚡demos/llm_routing/codex_router/README.md49### Step 3: Start PlanoCOMMENT
LOW⚡demos/llm_routing/codex_router/README.md56### Step 4: Launch Codex Through PlanoCOMMENT
LOWdemos/llm_routing/claude_code_router/README.md50### Step 1: Get ConfigurationCOMMENT
LOWdemos/llm_routing/claude_code_router/README.md57### Step 2: Set API KeysCOMMENT
LOWdemos/llm_routing/claude_code_router/README.md68### Step 3: Start PlanoCOMMENT
LOWdemos/llm_routing/claude_code_router/README.md80### Step 4: Launch Enhanced Claude CodeCOMMENT
LOW⚡demos/llm_routing/preference_based_routing/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/llm_routing/preference_based_routing/run_demo.sh10 # Step 2: Create `.env` file and set API keysCOMMENT
LOW⚡demos/llm_routing/preference_based_routing/run_demo.sh27 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/llm_routing/preference_based_routing/run_demo.sh34 # Step 4: Start PlanoCOMMENT
LOW⚡demos/llm_routing/model_alias_routing/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/llm_routing/model_alias_routing/run_demo.sh10 # Step 2: Create `.env` file and set API keysCOMMENT
LOWdemos/llm_routing/model_alias_routing/run_demo.sh27 # Step 3: Start PlanoCOMMENT
LOWdemos/llm_routing/model_alias_routing/run_demo.sh49 # Step 2: Stop PlanoCOMMENT
LOW⚡demos/filter_chains/http_filter/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/filter_chains/http_filter/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/filter_chains/http_filter/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/filter_chains/http_filter/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/filter_chains/http_filter/run_demo.sh32 # Step 5: Start agents nativelyCOMMENT
LOW⚡demos/filter_chains/pii_anonymizer/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/filter_chains/pii_anonymizer/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/filter_chains/pii_anonymizer/run_demo.sh21 # Step 3: Optionally start UI services (Jaeger)COMMENT
LOW⚡demos/filter_chains/pii_anonymizer/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/filter_chains/pii_anonymizer/run_demo.sh32 # Step 5: Start filter service nativelyCOMMENT
LOW⚡demos/filter_chains/mcp_filter/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/filter_chains/mcp_filter/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/filter_chains/mcp_filter/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/filter_chains/mcp_filter/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/filter_chains/mcp_filter/run_demo.sh32 # Step 5: Start agents nativelyCOMMENT
29 more matches not shown…
Verbosity Indicators82 hits · 178 pts
SeverityFileLineSnippetContext
LOWcrates/hermesllm/src/providers/request.rs1093 // But we need to check if the system prompt was actually setCOMMENT
LOWcrates/brightstaff/src/state/memory.rs387 // Step 1: Previous state contains the initial exchangeCOMMENT
LOW⚡crates/brightstaff/src/state/memory.rs413 // Step 2: Current request includes function call outputCOMMENT
LOW⚡crates/brightstaff/src/state/memory.rs422 // Step 3: Merge should combine all conversation historyCOMMENT
LOW⚡docs/source/resources/includes/agents/flights.py282 # Step 1: Extract origin, destination, and dateCOMMENT
LOW⚡docs/source/resources/includes/agents/flights.py288 # Step 2: Short circuit if missing origin or destinationCOMMENT
LOW⚡docs/source/resources/includes/agents/flights.py339 # Step 4: Get live flight dataCOMMENT
LOWdocs/source/resources/includes/agents/flights.py315 # Step 3: Resolve airport codesCOMMENT
LOWdocs/source/resources/includes/agents/flights.py370 # Step 5: Prepare context for LLM - append flight data to last user messageCOMMENT
LOWdocs/source/resources/includes/agents/flights.py397 # Step 6: Stream responseCOMMENT
LOW⚡docs/source/resources/includes/agents/weather.py134 # Step 2: Fetch weather data for the extracted locationCOMMENT
LOWcli/planoai/init_cmd.py251 # Step 1: choose template (or clean)COMMENT
LOWcli/planoai/init_cmd.py270 # Step 2: output path (default: config.yaml)COMMENT
LOW⚡demos/advanced/currency_exchange/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/advanced/currency_exchange/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/advanced/currency_exchange/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/advanced/currency_exchange/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/advanced/model_choice_test_harness/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/advanced/model_choice_test_harness/run_demo.sh10 # Step 2: Create `.env` file and set API keysCOMMENT
LOW⚡demos/advanced/model_choice_test_harness/run_demo.sh20 # Step 3: Start PlanoCOMMENT
LOW⚡demos/advanced/model_choice_test_harness/run_demo.sh30 # Step 2: Stop PlanoCOMMENT
LOW⚡demos/advanced/multi_turn_rag/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/advanced/multi_turn_rag/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/advanced/multi_turn_rag/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM)COMMENT
LOW⚡demos/advanced/multi_turn_rag/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/advanced/multi_turn_rag/run_demo.sh32 # Step 5: Start agents nativelyCOMMENT
LOW⚡demos/advanced/stock_quote/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/advanced/stock_quote/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/advanced/stock_quote/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/advanced/stock_quote/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/llm_routing/preference_based_routing/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/llm_routing/preference_based_routing/run_demo.sh10 # Step 2: Create `.env` file and set API keysCOMMENT
LOW⚡demos/llm_routing/preference_based_routing/run_demo.sh27 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/llm_routing/preference_based_routing/run_demo.sh34 # Step 4: Start PlanoCOMMENT
LOW⚡demos/llm_routing/model_alias_routing/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/llm_routing/model_alias_routing/run_demo.sh10 # Step 2: Create `.env` file and set API keysCOMMENT
LOWdemos/llm_routing/model_alias_routing/run_demo.sh27 # Step 3: Start PlanoCOMMENT
LOWdemos/llm_routing/model_alias_routing/run_demo.sh49 # Step 2: Stop PlanoCOMMENT
LOW⚡demos/filter_chains/http_filter/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/filter_chains/http_filter/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/filter_chains/http_filter/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/filter_chains/http_filter/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/filter_chains/http_filter/run_demo.sh32 # Step 5: Start agents nativelyCOMMENT
LOW⚡demos/filter_chains/pii_anonymizer/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/filter_chains/pii_anonymizer/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/filter_chains/pii_anonymizer/run_demo.sh21 # Step 3: Optionally start UI services (Jaeger)COMMENT
LOW⚡demos/filter_chains/pii_anonymizer/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/filter_chains/pii_anonymizer/run_demo.sh32 # Step 5: Start filter service nativelyCOMMENT
LOW⚡demos/filter_chains/mcp_filter/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/filter_chains/mcp_filter/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/filter_chains/mcp_filter/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/filter_chains/mcp_filter/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/filter_chains/mcp_filter/run_demo.sh32 # Step 5: Start agents nativelyCOMMENT
LOW⚡demos/integrations/spotify_bearer_auth/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/integrations/spotify_bearer_auth/run_demo.sh10 # Step 2: Create `.env` file and set OpenAI keyCOMMENT
LOW⚡demos/integrations/spotify_bearer_auth/run_demo.sh21 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
LOW⚡demos/integrations/spotify_bearer_auth/run_demo.sh28 # Step 4: Start PlanoCOMMENT
LOW⚡demos/integrations/ollama/run_demo.sh6 # Step 1: Check if .env file existsCOMMENT
LOW⚡demos/integrations/ollama/run_demo.sh10 # Step 2: Create `.env` file and set API keysCOMMENT
LOW⚡demos/integrations/ollama/run_demo.sh27 # Step 3: Optionally start UI services (AnythingLLM, Jaeger)COMMENT
22 more matches not shown…
Hyper-Verbose Identifiers160 hits · 168 pts
SeverityFileLineSnippetContext
LOWtests/archgw/test_prompt_gateway.py14def httpserver_listen_address():CODE
LOWtests/archgw/test_prompt_gateway.py25def normalize_tool_call_arguments(tool_call):CODE
LOW⚡tests/e2e/test_model_alias_routing.py25def test_assistant_message_with_null_content_and_tool_calls():CODE
LOWtests/e2e/test_model_alias_routing.py200def test_openai_client_with_alias_streaming():CODE
LOWtests/e2e/test_model_alias_routing.py234def test_anthropic_client_with_alias_streaming():CODE
LOWtests/e2e/test_model_alias_routing.py429def test_anthropic_thinking_mode_streaming():CODE
LOWtests/e2e/test_model_alias_routing.py484def test_openai_client_with_coding_model_alias_and_tools():CODE
LOWtests/e2e/test_model_alias_routing.py534def test_anthropic_client_with_coding_model_alias_and_tools():CODE
LOWtests/e2e/test_model_alias_routing.py582def test_anthropic_client_with_coding_model_alias_and_tools_streaming():CODE
LOWtests/e2e/test_model_alias_routing.py677def test_anthropic_client_streaming_with_bedrock():CODE
LOWtests/e2e/test_model_alias_routing.py718def test_openai_client_streaming_with_bedrock():CODE
LOWtests/e2e/test_model_alias_routing.py757def test_openai_client_streaming_with_bedrock_and_tools():CODE
LOW…sts/e2e/test_openai_responses_api_client_with_state.py20def test_conversation_state_management_two_turn():CODE
LOW…sts/e2e/test_openai_responses_api_client_with_state.py106def test_conversation_state_management_two_turn_streaming():CODE
LOWtests/e2e/test_prompt_gateway.py27def normalize_tool_call_arguments(tool_call):CODE
LOWtests/e2e/test_prompt_gateway.py143def test_prompt_gateway_arch_direct_response(stream):CODE
LOWtests/e2e/test_prompt_gateway.py186def test_prompt_gateway_param_gathering(stream):CODE
LOWtests/e2e/test_prompt_gateway.py229def test_prompt_gateway_param_tool_call(stream):CODE
LOWtests/e2e/test_prompt_gateway.py310def test_prompt_gateway_default_target(stream):CODE
LOWtests/e2e/test_prompt_gateway.py354def test_prompt_gateway_prompt_guard_jailbreak(stream):CODE
LOWtests/e2e/test_prompt_gateway.py439def test_anthropic_client_with_openai_model_streaming():CODE
LOWtests/e2e/test_prompt_gateway.py527def test_openai_client_with_claude_model_streaming():CODE
LOW⚡tests/e2e/test_openai_responses_api_client.py23def test_openai_responses_api_non_streaming_passthrough():CODE
LOWtests/e2e/test_openai_responses_api_client.py47def test_openai_responses_api_with_streaming_passthrough():CODE
LOWtests/e2e/test_openai_responses_api_client.py92def test_openai_responses_api_non_streaming_with_tools_passthrough():CODE
LOWtests/e2e/test_openai_responses_api_client.py124def test_openai_responses_api_with_streaming_with_tools_passthrough():CODE
LOWtests/e2e/test_openai_responses_api_client.py179def test_openai_responses_api_non_streaming_upstream_chat_completions():CODE
LOWtests/e2e/test_openai_responses_api_client.py198def test_openai_responses_api_with_streaming_upstream_chat_completions():CODE
LOWtests/e2e/test_openai_responses_api_client.py243def test_openai_responses_api_non_streaming_with_tools_upstream_chat_completions():CODE
LOWtests/e2e/test_openai_responses_api_client.py275def test_openai_responses_api_streaming_with_tools_upstream_chat_completions():CODE
LOWtests/e2e/test_openai_responses_api_client.py331def test_openai_responses_api_non_streaming_upstream_bedrock():CODE
LOWtests/e2e/test_openai_responses_api_client.py352def test_openai_responses_api_with_streaming_upstream_bedrock():CODE
LOWtests/e2e/test_openai_responses_api_client.py398def test_openai_responses_api_non_streaming_with_tools_upstream_bedrock():CODE
LOWtests/e2e/test_openai_responses_api_client.py431def test_openai_responses_api_streaming_with_tools_upstream_bedrock():CODE
LOWtests/e2e/test_openai_responses_api_client.py486def test_openai_responses_api_non_streaming_upstream_anthropic():CODE
LOWtests/e2e/test_openai_responses_api_client.py505def test_openai_responses_api_with_streaming_upstream_anthropic():CODE
LOWtests/e2e/test_openai_responses_api_client.py550def test_openai_responses_api_non_streaming_with_tools_upstream_anthropic():CODE
LOWtests/e2e/test_openai_responses_api_client.py582def test_openai_responses_api_streaming_with_tools_upstream_anthropic():CODE
LOWtests/e2e/test_openai_responses_api_client.py637def test_openai_responses_api_mixed_content_types():CODE
LOWcli/test/test_config_generator.py20def test_validate_and_render_happy_path(monkeypatch):CODE
LOWcli/test/test_config_generator.py83def test_validate_and_render_happy_path_agent_config(monkeypatch):STRING
LOWcli/test/test_config_generator.py444def test_validate_and_render_schema_tests(monkeypatch, plano_config_test_case):STRING
LOWcli/test/test_config_generator.py489def test_convert_legacy_llm_providers():STRING
LOWcli/test/test_config_generator.py559def test_convert_legacy_llm_providers_no_prompt_gateway():STRING
LOWcli/test/test_config_generator.py612def test_inline_routing_preferences_migrated_to_top_level():STRING
LOWcli/test/test_config_generator.py656def test_inline_same_name_across_providers_merges_models():STRING
LOWcli/test/test_config_generator.py692def test_existing_top_level_routing_preferences_preserved():STRING
LOWcli/test/test_config_generator.py722def test_existing_top_level_wins_over_inline_migration():STRING
LOWcli/test/test_config_generator.py754def test_wildcard_with_inline_routing_preferences_errors():STRING
LOWcli/test/test_config_generator.py777def test_migration_bumps_version_even_without_inline_preferences():STRING
LOWcli/test/test_config_generator.py826def test_migration_does_not_downgrade_newer_versions():STRING
LOWcli/test/test_config_generator.py860def test_apply_kimi_code_provider_defaults_injects_user_agent():STRING
LOWcli/test/test_obs_pricing.py18def test_lookup_matches_bare_and_prefixed():CODE
LOWcli/test/test_obs_pricing.py31def test_cost_computation_without_cache():CODE
LOWcli/test/test_obs_pricing.py39def test_cost_computation_with_cached_discount():CODE
LOWcli/test/test_obs_pricing.py52def test_empty_catalog_returns_none():CODE
LOWcli/test/test_obs_pricing.py56def test_parse_do_catalog_treats_small_values_as_per_token():CODE
LOWcli/test/test_obs_pricing.py86def test_anthropic_aliases_match_plano_emitted_names():CODE
LOWcli/test/test_obs_pricing.py129def test_parse_do_catalog_divides_large_values_as_per_million():CODE
LOWcli/test/test_obs_pricing.py173def test_parse_models_dev_composes_provider_keys_and_per_token_rates():CODE
100 more matches not shown…
Decorative Section Separators41 hits · 132 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/e2e/test_model_alias_routing.py20# =============================================================================COMMENT
MEDIUM⚡tests/e2e/test_model_alias_routing.py22# =============================================================================COMMENT
MEDIUM⚡tests/e2e/test_model_alias_routing.py375# =============================================================================COMMENT
MEDIUM⚡tests/e2e/test_model_alias_routing.py377# =============================================================================COMMENT
MEDIUM⚡tests/e2e/test_openai_responses_api_client.py20# -----------------------COMMENT
MEDIUM⚡tests/e2e/test_openai_responses_api_client.py22# -----------------------COMMENT
MEDIUM⚡.github/workflows/ci.yml17 # ──────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/ci.yml19 # ──────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/ci.yml27 # ──────────────────────────────────────────────COMMENT
MEDIUM⚡.github/workflows/ci.yml29 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml56 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml58 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml160 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml162 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml203 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml205 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml223 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml225 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml267 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml269 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml317 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml319 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml367 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml369 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml417 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml419 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml482 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml484 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml534 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/ci.yml536 # ──────────────────────────────────────────────COMMENT
MEDIUMapps/www/src/utils/asciiBuilder.ts100 // Line 20: bottom ╚══════╝COMMENT
MEDIUMdemos/filter_chains/pii_anonymizer/test.sh8# ── Wait for Plano to be ready ──────────────────────────────────────────────COMMENT
MEDIUMdemos/filter_chains/pii_anonymizer/test.sh22# ── Helper ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMdemos/filter_chains/pii_anonymizer/test.sh44# ── /v1/chat/completions ─────────────────────────────────────────────────────COMMENT
MEDIUMdemos/filter_chains/pii_anonymizer/test.sh72# ── /v1/responses ────────────────────────────────────────────────────────────COMMENT
MEDIUMdemos/filter_chains/pii_anonymizer/test.sh91# ── /v1/messages (Anthropic) ─────────────────────────────────────────────────COMMENT
MEDIUMdemos/filter_chains/pii_anonymizer/test.sh113# ── Summary ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMdemos/filter_chains/model_listener_filter/test.sh8# ── Wait for Plano to be ready ──────────────────────────────────────────────COMMENT
MEDIUMdemos/filter_chains/model_listener_filter/test.sh22# ── Helper ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMdemos/filter_chains/model_listener_filter/test.sh60# ── Tests ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMdemos/filter_chains/model_listener_filter/test.sh82# ── Summary ──────────────────────────────────────────────────────────────────COMMENT
Modern AI Meta-Vocabulary29 hits · 90 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md37**Jump to our [docs](https://docs.planoai.dev)** to learn how you can use Plano to improve the speed, safety and obervabCODE
MEDIUMREADME.md185- **[Filter Chains](https://docs.planoai.dev/concepts/filter_chain.html)** - Add guardrails, moderation, and memory hookCODE
MEDIUMcrates/hermesllm/src/apis/amazon_bedrock.rs305 /// Trace information for guardrailsCOMMENT
MEDIUMcrates/brightstaff/src/app_state.rs34 /// When false, agentic signal analysis is skipped on LLM responses to save CPU.COMMENT
MEDIUM…ce/resources/includes/plano_config_full_reference.yaml158# Prompt targets for function calling and API orchestrationCOMMENT
MEDIUM⚡…ce/resources/includes/plano_config_full_reference.yaml204 # Trim conversation history to fit within the model's context windowCOMMENT
MEDIUM⚡…ce/resources/includes/plano_config_full_reference.yaml206 # Use Plano's agent orchestrator for multi-agent request routingCOMMENT
MEDIUM⚡…ce/resources/includes/plano_config_full_reference.yaml214 # Model used for agent orchestration (must be listed in model_providers)COMMENT
MEDIUM⚡…ce/resources/includes/plano_config_full_reference.yaml216 # Disable agentic signal analysis (frustration, repetition, escalation, etc.)COMMENT
MEDIUM⚡…ce/resources/includes/plano_config_full_reference.yaml220# Model affinity — pin routing decisions for agentic loopsCOMMENT
MEDIUM…ce/resources/includes/plano_config_full_reference.yaml243# Input guardrails applied globally to all incoming requestsCOMMENT
MEDIUMskills/test-cases.json232 "input": "filters:\n - id: context_builder\n url: http://host.docker.internal:10502 # Runs expensive RAG reCODE
MEDIUMskills/AGENTS.md984 url: http://host.docker.internal:10502 # Runs expensive RAG retrieval firstCODE
MEDIUMskills/AGENTS.md1500# Initialize a RAG with guardrails projectCOMMENT
MEDIUMskills/AGENTS.md1500# Initialize a RAG with guardrails projectCOMMENT
MEDIUMskills/AGENTS.md1876# --- Listener 3: Agent orchestration gateway ---COMMENT
MEDIUMskills/rules/advanced-multi-listener.md66# --- Listener 3: Agent orchestration gateway ---COMMENT
MEDIUMskills/rules/filter-ordering.md24 url: http://host.docker.internal:10502 # Runs expensive RAG retrieval firstCODE
MEDIUMskills/rules/cli-init.md31# Initialize a RAG with guardrails projectCOMMENT
MEDIUMskills/rules/cli-init.md31# Initialize a RAG with guardrails projectCOMMENT
MEDIUMapps/www/src/lib/metadata.ts90 // Emerging trends (A2A, agentic RAG)COMMENT
MEDIUMdemos/advanced/multi_turn_rag/README.md1# Multi-Turn Agentic Demo (RAG)COMMENT
MEDIUMdemos/llm_routing/openclaw_routing/config.yaml15 # Great for general conversation, agentic tasks, and multimodal workCOMMENT
MEDIUMdemos/filter_chains/http_filter/README.md1# RAG Agent DemoCOMMENT
MEDIUMdemos/filter_chains/http_filter/README.md28### RAG Agent (REST/OpenAI)COMMENT
MEDIUMdemos/filter_chains/http_filter/sample_queries.md1# Sample Queries for Knowledge Base RAG AgentCOMMENT
MEDIUMdemos/filter_chains/mcp_filter/README.md1# RAG Agent DemoCOMMENT
MEDIUMdemos/filter_chains/mcp_filter/README.md31### RAG Agent (REST/OpenAI)COMMENT
MEDIUMdemos/filter_chains/mcp_filter/sample_queries.md1# Sample Queries for Knowledge Base RAG AgentCOMMENT
Over-Commented Block79 hits · 78 pts
SeverityFileLineSnippetContext
LOWcrates/hermesllm/src/lib.rs121COMMENT
LOWcrates/hermesllm/src/clients/lib.rs1//! Helper functions and utilities for API transformationsCOMMENT
LOWcrates/hermesllm/src/apis/openai_responses.rs981#[derive(Debug, Clone, Serialize, Deserialize)]COMMENT
LOWcrates/hermesllm/src/apis/openai_responses.rs1341COMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs61}COMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs81 #[serde(rename = "toolConfig")]COMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs281COMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs481}COMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs561COMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs581 #[serde(rename = "guardrailIdentifier")]COMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs661pub struct BedrockTokenUsage {COMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs701/// Guardrail trace assessment (simplified)COMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs801COMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs841 /// Guardrail traceCOMMENT
LOWcrates/hermesllm/src/apis/amazon_bedrock.rs861// ============================================================================COMMENT
LOWcrates/hermesllm/src/apis/anthropic.rs381 None => {}COMMENT
LOWcrates/hermesllm/src/apis/openai.rs581#[derive(Serialize, Deserialize, Debug, Clone)]COMMENT
LOW…esllm/src/apis/streaming_shapes/sse_chunk_processor.rs1use crate::apis::streaming_shapes::sse::{COMMENT
LOW…esllm/src/apis/streaming_shapes/sse_chunk_processor.rs41 Err(_) => false,COMMENT
LOW…esllm/src/apis/streaming_shapes/sse_chunk_processor.rs81 ///COMMENT
LOW…esllm/src/apis/streaming_shapes/sse_chunk_processor.rs101 // bytes after the final `\n` form a partial line that may be split acrossCOMMENT
LOW…esllm/src/apis/streaming_shapes/sse_chunk_processor.rs261 // Captured GPT-5.6 Responses-API SSE stream (direct from backend, streams fine).COMMENT
LOWcrates/hermesllm/src/apis/streaming_shapes/sse.rs21 /// For example, Anthropic buffers inject ContentBlockStart before the first ContentBlockDelta.COMMENT
LOW…rc/apis/streaming_shapes/anthropic_streaming_buffer.rs1use crate::apis::anthropic::{COMMENT
LOW…rc/apis/streaming_shapes/anthropic_streaming_buffer.rs381 // Convert all accumulated events to bytes and clear buffer.COMMENT
LOWcrates/hermesllm/src/bin/fetch_models.rs1// Fetch latest provider models from canonical provider APIs and merge intoCOMMENT
LOWcrates/hermesllm/src/providers/streaming_response.rs41 SupportedUpstreamAPIs::OpenAIResponsesAPI(_),COMMENT
LOWcrates/hermesllm/src/providers/id.rs101/// of gateway provider, the underlying model family, and the upstream API shape — notCOMMENT
LOWcrates/hermesllm/src/providers/id.rs221 SupportedUpstreamAPIs::OpenAIResponsesAPI(_) => CacheMarkerStrategy::Automatic,COMMENT
LOW…c/transforms/response_streaming/to_openai_streaming.rs21// # Architecture SeparationCOMMENT
LOWcrates/common/src/configuration.rs261///COMMENT
LOWcrates/common/src/configuration.rs281 /// Minimum estimated prefix tokens before a cache breakpoint is injected.COMMENT
LOWcrates/common/src/configuration.rs301/// never credits the spend back — the "saving" is vs a path we didn't take, not realCOMMENT
LOWcrates/common/src/configuration.rs501///COMMENT
LOWcrates/common/src/traces/span_builder.rs1use super::shapes::{Attribute, AttributeValue, Span};COMMENT
LOWcrates/common/src/traces/span_builder.rs21/// use common::traces::{SpanBuilder, SpanKind};COMMENT
LOWcrates/brightstaff/src/affinity.rs1//! Implicit session-affinity key derivation.COMMENT
LOWcrates/brightstaff/src/streaming.rs261 ///COMMENT
LOWcrates/brightstaff/src/metrics/labels.rs61// `decision` label — the coarse outcome:COMMENT
LOWcrates/brightstaff/src/metrics/mod.rs1//! Prometheus metrics for brightstaff.COMMENT
LOWcrates/brightstaff/src/session_cache/mod.rs21 /// Provider-qualified model that handled the latest request (e.g. `openai/gpt-4o`).COMMENT
LOWcrates/brightstaff/src/session_cache/mod.rs41 /// Hash of the stable prompt prefix (system + tools) observed when the binding wasCOMMENT
LOWcrates/brightstaff/src/session_cache/mod.rs61 /// Monotonic: paid switches add to it, free/cheaper switches never subtract. A paidCOMMENT
LOWcrates/brightstaff/src/session_cache/mod.rs81 pub session_cost_usd: f64,COMMENT
LOWcrates/brightstaff/src/tracing/constants.rs1/// OpenTelemetry Semantic ConventionsCOMMENT
LOWcrates/brightstaff/src/tracing/constants.rs41}COMMENT
LOWcrates/brightstaff/src/tracing/constants.rs161 /// Caller identity used to populate downstream observability `distinct_id`COMMENT
LOWcrates/brightstaff/src/tracing/constants.rs201 /// Actual input-cost (USD) of the proposed model switch — computed from input-tokenCOMMENT
LOWcrates/brightstaff/src/tracing/constants.rs221 /// *would* have selected had the switch been allowed. Recorded only on a `retained`COMMENT
LOWcrates/brightstaff/src/tracing/constants.rs281 pub const HANDOFF: &str = "plano(handoff)";COMMENT
LOWcrates/brightstaff/src/tracing/constants.rs301/// ```COMMENT
LOWcrates/brightstaff/src/tracing/posthog_exporter.rs1//! PostHog Span ExporterCOMMENT
LOWcrates/brightstaff/src/tracing/service_name_exporter.rs1//! Service Name Override ExporterCOMMENT
LOWcrates/brightstaff/src/tracing/mod.rs21/// OpenTelemetry span, which allows observability backends to filter and groupCOMMENT
LOWcrates/brightstaff/src/bin/signals_replay.rs1//! `signals-replay` — batch driver for the `brightstaff` signal analyzer.COMMENT
LOWcrates/brightstaff/src/signals/analyzer.rs1//! Top-level signal analyzer.COMMENT
LOWcrates/brightstaff/src/signals/analyzer.rs221 .collect();COMMENT
LOWcrates/brightstaff/src/signals/mod.rs1//! Plano signals: behavioral quality indicators for agent interactions.COMMENT
LOWcrates/brightstaff/src/signals/execution/loops.rs301// retry and parameter_drift are exact: both are properties of the maximalCOMMENT
LOWcrates/brightstaff/src/handlers/llm/prompt_caching.rs1//! Prompt-caching request handling for the LLM path.COMMENT
19 more matches not shown…
Cross-Language Confusion12 hits · 75 pts
SeverityFileLineSnippetContext
HIGH⚡docs/source/resources/includes/agents/flights.py78 4. Return JSON: {"origin": "City" or null, "destination": "City" or null, "date": "YYYY-MM-DD" or null}CODE
HIGH⚡docs/source/resources/includes/agents/flights.py82 - "What flights go to New York?" -> {"origin": null, "destination": "New York", "date": null}CODE
HIGH⚡docs/source/resources/includes/agents/flights.py83 - "Flights to Miami on Christmas" -> {"origin": null, "destination": "Miami", "date": "2025-12-25"}CODE
HIGHdocs/source/resources/includes/agents/flights.py53- "terminal_origin": Departure terminal (may be null)CODE
HIGHdocs/source/resources/includes/agents/flights.py54- "gate_origin": Departure gate (may be null)CODE
HIGHdocs/source/resources/includes/agents/weather.py333 Remember: Only use the provided data. If fields are null, mention data is unavailable."""CODE
HIGH…ration/travel_agents/src/travel_agents/flight_agent.py40- terminal_origin/gate_origin: Departure terminal and gate (may be null)CODE
HIGH⚡…ration/travel_agents/src/travel_agents/flight_agent.py59Output format: {"cities": ["City1", "City2", ...], "date": "YYYY-MM-DD" or null}CODE
HIGH⚡…ration/travel_agents/src/travel_agents/flight_agent.py63- "Seattle to Dubai to Lahore" → {"cities": ["Seattle", "Dubai", "Lahore"], "date": null}CODE
HIGH⚡…ration/travel_agents/src/travel_agents/flight_agent.py64- "Flights from LA through Chicago to NYC" → {"cities": ["LA", "Chicago", "NYC"], "date": null}CODE
HIGH…ation/travel_agents/src/travel_agents/weather_agent.py348 Remember: Only use the provided data. If fields are null, mention data is unavailable."""CODE
HIGH…ulti_agent_crewai_langchain/langchain/weather_agent.py272 Remember: Only use the provided data. If fields are null, mention data is unavailable."""CODE
Excessive Try-Catch Wrapping61 hits · 71 pts
SeverityFileLineSnippetContext
LOWtests/parity/signals/run_parity.py255 except Exception as e:CODE
LOWtests/parity/signals/run_parity.py273 except Exception:CODE
LOWtests/parity/signals/run_parity.py287 except Exception:CODE
LOW⚡tests/e2e/test_model_alias_routing.py370 except Exception as e:CODE
LOWtests/e2e/test_model_alias_routing.py295 except Exception as e:CODE
LOWtests/e2e/test_model_alias_routing.py336 except Exception as e:CODE
LOWtests/e2e/test_model_alias_routing.py646 except Exception as e:CODE
LOWdocs/source/resources/includes/agents/flights.py119 except Exception as e:CODE
LOWdocs/source/resources/includes/agents/flights.py151 except Exception as e:CODE
LOWdocs/source/resources/includes/agents/flights.py257 except Exception as e:CODE
LOWdocs/source/resources/includes/agents/flights.py418 except Exception as e:CODE
LOW⚡docs/source/resources/includes/agents/weather.py128 except Exception as e:CODE
LOWdocs/source/resources/includes/agents/weather.py247 except Exception as e:CODE
LOWdocs/source/resources/includes/agents/weather.py369 except Exception as e:CODE
LOWcli/planoai/trace_cmd.py150 except Exception:CODE
MEDIUMcli/planoai/native_binaries.py134 print("Error: Could not find envoy binary in the downloaded archive.")CODE
MEDIUMcli/planoai/native_binaries.py143 print("Error: Could not extract envoy binary from archive.")CODE
MEDIUMcli/planoai/native_binaries.py299 print(f"Error: WASM plugins not found: {', '.join(missing)}")CODE
MEDIUMcli/planoai/native_binaries.py321 print(f"Error: brightstaff binary not found at {brightstaff_path}")CODE
LOWcli/planoai/obs_cmd.py54 except Exception as exc: # noqa: BLE001 — config is optional for obsCODE
LOWcli/planoai/utils.py81 except Exception as e:CODE
LOWcli/planoai/chatgpt_cmd.py37 except Exception as e:CODE
LOWcli/planoai/chatgpt_auth.py76 except Exception:CODE
LOWcli/planoai/config_generator.py222 except Exception as e:CODE
LOWcli/planoai/config_generator.py698 except Exception as e:CODE
LOWcli/planoai/main.py142 except Exception as e:CODE
LOWcli/planoai/main.py407 except Exception as e:CODE
LOWcli/planoai/main.py503 except Exception as e:CODE
LOWcli/planoai/main.py710 except Exception as e:CODE
LOWcli/planoai/obs/pricing.py84 except Exception as exc: # noqa: BLE001 — best-effort; never fatalCODE
LOW…ter_chains/http_filter/src/rag_agent/query_rewriter.py73 except Exception as e:CODE
LOW…ilter_chains/http_filter/src/rag_agent/input_guards.py122 except Exception as e:CODE
LOW…er_chains/http_filter/src/rag_agent/context_builder.py58 except Exception as e:CODE
LOW…er_chains/http_filter/src/rag_agent/context_builder.py133 except Exception as e:CODE
MEDIUM…os/filter_chains/http_filter/src/rag_agent/__init__.py50 print(f"Error: Unknown agent '{agent}'")CODE
MEDIUM…os/filter_chains/http_filter/src/rag_agent/__init__.py72 print(f"Error: Agent '{agent}' does not support REST server mode.")CODE
MEDIUM…os/filter_chains/http_filter/src/rag_agent/__init__.py81 print(f"Error: Agent '{agent}' does not support MCP mode.")CODE
LOW…s/filter_chains/http_filter/src/rag_agent/rag_agent.py166 except Exception as e:CODE
LOW…lter_chains/mcp_filter/src/rag_agent/query_rewriter.py72 except Exception as e:CODE
LOW…filter_chains/mcp_filter/src/rag_agent/input_guards.py117 except Exception as e:CODE
LOW…ter_chains/mcp_filter/src/rag_agent/context_builder.py54 except Exception as e:CODE
LOW…ter_chains/mcp_filter/src/rag_agent/context_builder.py133 except Exception as e:CODE
MEDIUM…mos/filter_chains/mcp_filter/src/rag_agent/__init__.py50 print(f"Error: Unknown agent '{agent}'")CODE
MEDIUM…mos/filter_chains/mcp_filter/src/rag_agent/__init__.py72 print(f"Error: Agent '{agent}' does not support REST server mode.")CODE
MEDIUM…mos/filter_chains/mcp_filter/src/rag_agent/__init__.py81 print(f"Error: Agent '{agent}' does not support MCP mode.")CODE
LOW…os/filter_chains/mcp_filter/src/rag_agent/rag_agent.py168 except Exception as e:CODE
LOW…ration/travel_agents/src/travel_agents/flight_agent.py103 except Exception as e:CODE
LOW…ration/travel_agents/src/travel_agents/flight_agent.py135 except Exception as e:CODE
LOW…ration/travel_agents/src/travel_agents/flight_agent.py225 except Exception as e:CODE
LOW…ration/travel_agents/src/travel_agents/flight_agent.py373 except Exception as e:CODE
LOW⚡…ation/travel_agents/src/travel_agents/weather_agent.py131 except Exception as e:CODE
LOW…ation/travel_agents/src/travel_agents/weather_agent.py250 except Exception as e:CODE
LOW…ation/travel_agents/src/travel_agents/weather_agent.py386 except Exception as e:CODE
LOW…on/multi_agent_crewai_langchain/crewai/flight_agent.py225 except Exception as e:CODE
LOW…on/multi_agent_crewai_langchain/crewai/flight_agent.py315 except Exception as e:CODE
LOW…on/multi_agent_crewai_langchain/crewai/flight_agent.py370 except Exception as e:CODE
LOW…on/multi_agent_crewai_langchain/crewai/flight_agent.py396 except Exception as e:CODE
LOW…ulti_agent_crewai_langchain/langchain/weather_agent.py108 except Exception as e:CODE
LOW…ulti_agent_crewai_langchain/langchain/weather_agent.py228 except Exception as e:CODE
LOW…ulti_agent_crewai_langchain/langchain/weather_agent.py348 except Exception as e:CODE
1 more matches not shown…
Unused Imports57 hits · 56 pts
SeverityFileLineSnippetContext
LOWtests/parity/signals/_smoke_test.py10CODE
LOWtests/parity/signals/run_parity.py18CODE
LOWtests/parity/signals/compare.py9CODE
LOW…sts/e2e/test_openai_responses_api_client_with_state.py2CODE
LOWdocs/source/resources/includes/agents/flights.py10CODE
LOWdocs/source/resources/includes/agents/weather.py11CODE
LOWdocs/source/_ext/llms_txt.py1CODE
LOWdocs/source/_ext/provider_models.py3CODE
LOW…build_with_plano/includes/multi_turn/multi_turn_rag.py1CODE
LOW…build_with_plano/includes/multi_turn/multi_turn_rag.py2CODE
LOW…build_with_plano/includes/multi_turn/multi_turn_rag.py4CODE
LOW…build_with_plano/includes/multi_turn/multi_turn_rag.py7CODE
LOW…build_with_plano/includes/multi_turn/multi_turn_rag.py8CODE
LOWcli/test/test_obs_collector.py3CODE
LOWcli/test/test_version_check.py1CODE
LOWcli/test/test_version_check.py3CODE
LOWcli/test/test_version_check.py3CODE
LOWcli/planoai/template_sync.py1CODE
LOWcli/planoai/trace_cmd.py5CODE
LOWcli/planoai/trace_cmd.py6CODE
LOWcli/planoai/obs_cmd.py3CODE
LOWcli/planoai/utils.py1CODE
LOWcli/planoai/defaults.py14CODE
LOWcli/planoai/obs/render.py3CODE
LOWcli/planoai/obs/collector.py3CODE
LOWcli/planoai/obs/__init__.py3CODE
LOWcli/planoai/obs/__init__.py3CODE
LOWcli/planoai/obs/__init__.py3CODE
LOWcli/planoai/obs/__init__.py4CODE
LOWcli/planoai/obs/pricing.py8CODE
LOWdemos/advanced/multi_turn_rag/main.py1CODE
LOWdemos/advanced/multi_turn_rag/main.py2CODE
LOWdemos/advanced/multi_turn_rag/main.py4CODE
LOWdemos/advanced/multi_turn_rag/main.py7CODE
LOW…ter_chains/http_filter/src/rag_agent/query_rewriter.py1CODE
LOW…ter_chains/http_filter/src/rag_agent/query_rewriter.py3CODE
LOW…ter_chains/http_filter/src/rag_agent/query_rewriter.py4CODE
LOW…ter_chains/http_filter/src/rag_agent/query_rewriter.py4CODE
LOW…ter_chains/http_filter/src/rag_agent/query_rewriter.py5CODE
LOW…ter_chains/http_filter/src/rag_agent/query_rewriter.py6CODE
LOW…ter_chains/http_filter/src/rag_agent/query_rewriter.py11CODE
LOW…ter_chains/http_filter/src/rag_agent/query_rewriter.py11CODE
LOW…ilter_chains/http_filter/src/rag_agent/input_guards.py1CODE
LOW…ilter_chains/http_filter/src/rag_agent/input_guards.py3CODE
LOW…ilter_chains/http_filter/src/rag_agent/input_guards.py5CODE
LOW…ilter_chains/http_filter/src/rag_agent/input_guards.py6CODE
LOW…ilter_chains/http_filter/src/rag_agent/input_guards.py13CODE
LOW…ilter_chains/http_filter/src/rag_agent/input_guards.py13CODE
LOW…ilter_chains/http_filter/src/rag_agent/input_guards.py14CODE
LOW…er_chains/http_filter/src/rag_agent/context_builder.py2CODE
LOW…s/filter_chains/http_filter/src/rag_agent/rag_agent.py10CODE
LOW…s/filter_chains/http_filter/src/rag_agent/rag_agent.py12CODE
LOW…ter_chains/mcp_filter/src/rag_agent/context_builder.py1CODE
LOW…ter_chains/mcp_filter/src/rag_agent/context_builder.py2CODE
LOW…os/filter_chains/mcp_filter/src/rag_agent/rag_agent.py10CODE
LOW…os/filter_chains/mcp_filter/src/rag_agent/rag_agent.py12CODE
LOW…ation/travel_agents/src/travel_agents/weather_agent.py11CODE
Empty Error Handlers10 hits · 50 pts
SeverityFileLineSnippetContext
HIGHtests/archgw/test_prompt_gateway.py41except (json.JSONDecodeError, TypeError):CODE
HIGHtests/e2e/test_prompt_gateway.py43except (json.JSONDecodeError, TypeError):CODE
HIGHcli/planoai/trace_cmd.py150except Exception:CODE
HIGHcli/planoai/trace_cmd.py543except KeyboardInterrupt:CODE
HIGHcli/planoai/trace_cmd.py549except NameError:CODE
HIGHcli/planoai/native_runner.py367except (ProcessLookupError, PermissionError):CODE
HIGHcli/planoai/native_runner.py424except ProcessLookupError:CODE
HIGHcli/planoai/docker_cli.py114except requests.RequestException as e:CODE
HIGHcli/planoai/chatgpt_auth.py63except FileNotFoundError:CODE
HIGHcli/planoai/trace_listener_runtime.py69except ProcessLookupError:CODE
Deep Nesting32 hits · 30 pts
SeverityFileLineSnippetContext
LOWtests/parity/signals/compare.py168CODE
LOWtests/e2e/test_model_alias_routing.py429CODE
LOWtests/e2e/test_model_alias_routing.py582CODE
LOWtests/e2e/test_model_alias_routing.py677CODE
LOWtests/e2e/test_model_alias_routing.py757CODE
LOWcli/test/test_config_generator.py444CODE
LOWcli/planoai/trace_cmd.py123CODE
LOWcli/planoai/trace_cmd.py441CODE
LOWcli/planoai/trace_cmd.py657CODE
LOWcli/planoai/trace_cmd.py777CODE
LOWcli/planoai/trace_cmd.py789CODE
LOWcli/planoai/trace_cmd.py947CODE
LOWcli/planoai/trace_cmd.py348CODE
LOWcli/planoai/trace_cmd.py473CODE
LOWcli/planoai/native_runner.py309CODE
LOWcli/planoai/native_binaries.py49CODE
LOWcli/planoai/native_binaries.py92CODE
LOWcli/planoai/core.py49CODE
LOWcli/planoai/obs_cmd.py28CODE
LOWcli/planoai/utils.py171CODE
LOWcli/planoai/chatgpt_auth.py178CODE
LOWcli/planoai/config_generator.py98CODE
LOWcli/planoai/config_generator.py202CODE
LOWcli/planoai/main.py356CODE
LOWcli/planoai/main.py589CODE
LOWcli/planoai/obs/collector.py219CODE
LOWcli/planoai/obs/pricing.py186CODE
LOWcli/planoai/obs/pricing.py389CODE
LOWdemos/filter_chains/pii_anonymizer/store.py59CODE
LOWdemos/filter_chains/pii_anonymizer/store.py92CODE
LOW…s/filter_chains/model_listener_filter/content_guard.py50CODE
LOW…ulti_agent_crewai_langchain/langchain/weather_agent.py49CODE
Modern Structural Boilerplate26 hits · 27 pts
SeverityFileLineSnippetContext
LOWtests/archgw/test_prompt_gateway.py7logger = logging.getLogger(__name__)CODE
LOW⚡tests/e2e/test_model_alias_routing.py14logger = logging.getLogger(__name__)CODE
LOW…sts/e2e/test_openai_responses_api_client_with_state.py13logger = logging.getLogger(__name__)CODE
LOW⚡tests/e2e/test_openai_responses_api_client.py13logger = logging.getLogger(__name__)CODE
LOWdocs/source/resources/includes/agents/flights.py20logger = logging.getLogger(__name__)CODE
LOWdocs/source/resources/includes/agents/weather.py22logger = logging.getLogger(__name__)CODE
LOWcli/planoai/obs_cmd.py25logger = logging.getLogger(__name__)CODE
LOWcli/planoai/main.py533 def _update_progress(message: str) -> None:CODE
LOWcli/planoai/obs/__init__.py6__all__ = ["LLMCall", "LLMCallStore", "ObsCollector", "PricingCatalog"]CODE
LOWcli/planoai/obs/pricing.py33logger = logging.getLogger(__name__)CODE
LOWdemos/shared/test_runner/test_demos.py10logger = logging.getLogger(__name__)CODE
LOW…ter_chains/http_filter/src/rag_agent/query_rewriter.py21logger = logging.getLogger(__name__)CODE
LOW…ilter_chains/http_filter/src/rag_agent/input_guards.py23logger = logging.getLogger(__name__)CODE
LOW…er_chains/http_filter/src/rag_agent/context_builder.py20logger = logging.getLogger(__name__)CODE
LOW…s/filter_chains/http_filter/src/rag_agent/rag_agent.py23logger = logging.getLogger(__name__)CODE
LOWdemos/filter_chains/pii_anonymizer/store.py13logger = logging.getLogger(__name__)CODE
LOWdemos/filter_chains/pii_anonymizer/pii_anonymizer.py33logger = logging.getLogger(__name__)CODE
LOW…lter_chains/mcp_filter/src/rag_agent/query_rewriter.py15logger = logging.getLogger(__name__)CODE
LOW…filter_chains/mcp_filter/src/rag_agent/input_guards.py17logger = logging.getLogger(__name__)CODE
LOW…ter_chains/mcp_filter/src/rag_agent/context_builder.py18logger = logging.getLogger(__name__)CODE
LOW…os/filter_chains/mcp_filter/src/rag_agent/rag_agent.py23logger = logging.getLogger(__name__)CODE
LOW…s/filter_chains/model_listener_filter/content_guard.py20logger = logging.getLogger(__name__)CODE
LOW…ration/travel_agents/src/travel_agents/flight_agent.py17logger = logging.getLogger(__name__)CODE
LOW…ation/travel_agents/src/travel_agents/weather_agent.py22logger = logging.getLogger(__name__)CODE
LOW…on/multi_agent_crewai_langchain/crewai/flight_agent.py24logger = logging.getLogger(__name__)CODE
LOW…ulti_agent_crewai_langchain/langchain/weather_agent.py27logger = logging.getLogger(__name__)CODE
Cross-File Repetition5 hits · 25 pts
SeverityFileLineSnippetContext
HIGHdocs/source/resources/includes/agents/flights.py0http endpoint for chat completions with streaming support.STRING
HIGHdocs/source/resources/includes/agents/weather.py0http endpoint for chat completions with streaming support.STRING
HIGH…s/filter_chains/http_filter/src/rag_agent/rag_agent.py0http endpoint for chat completions with streaming support.STRING
HIGH…os/filter_chains/mcp_filter/src/rag_agent/rag_agent.py0http endpoint for chat completions with streaming support.STRING
HIGH…ation/travel_agents/src/travel_agents/weather_agent.py0http endpoint for chat completions with streaming support.STRING
Self-Referential Comments7 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUMconfig/grafana/prometheus_scrape.yaml17# This file is unrelated to demos/llm_routing/model_routing_service/prometheus.yaml,COMMENT
MEDIUMtests/e2e/test_openai_responses_api_client.py97 # Define a simple tool/function for the Responses APICOMMENT
MEDIUM…build_with_plano/includes/multi_turn/multi_turn_rag.py13# Define the request modelCOMMENT
MEDIUMcli/planoai/trace_cmd.py379 # Create the group if needed.COMMENT
MEDIUMdemos/advanced/multi_turn_rag/main.py12# Define the request modelCOMMENT
MEDIUM…er_chains/http_filter/src/rag_agent/context_builder.py75 # Create a system prompt for passage selectionCOMMENT
MEDIUM…ter_chains/mcp_filter/src/rag_agent/context_builder.py71 # Create a system prompt for passage selectionCOMMENT
Redundant / Tautological Comments10 hits · 15 pts
SeverityFileLineSnippetContext
LOW…sts/e2e/test_openai_responses_api_client_with_state.py72 # Check if the model acknowledges receiving multiple messagesCOMMENT
LOW…sts/e2e/test_openai_responses_api_client_with_state.py189 # Check if the model acknowledges receiving multiple messagesCOMMENT
LOW⚡docs/source/resources/includes/agents/flights.py346 # Check if there's a specific error message (e.g., date too far in future)COMMENT
LOWcli/planoai/trace_cmd.py559 # Check if the requested port is already in use.COMMENT
LOWcli/planoai/native_runner.py259 # Check if processes are still aliveCOMMENT
LOWcli/planoai/native_runner.py415 os.kill(pid, 0) # Check if still aliveCODE
LOWcli/planoai/native_binaries.py98 # Check if cached binary matches the pinned versionCOMMENT
LOWcli/planoai/core.py99 # Check if timeout is reachedCOMMENT
LOWcli/planoai/config_generator.py379 # Check if this is a wildcard model (provider/*)COMMENT
LOWcli/planoai/config_generator.py405 # Check if this is a wildcard (provider/*)COMMENT
AI Slop Vocabulary3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMcrates/hermesllm/src/apis/anthropic.rs1592 "text": "\nYou are an interactive CLI tool that helps users with software engineering tasks. Use theCODE
MEDIUMdocs/source/conf.py53# Allow importing extensions from docs/source/_ext (robust to current working directory)COMMENT
LOW…lter_chains/mcp_filter/src/rag_agent/query_rewriter.py45 # Prepare messages for the query rewriter - just add system prompt to existing messagesCOMMENT
Overly Generic Function Names6 hits · 6 pts
SeverityFileLineSnippetContext
LOWdocs/source/resources/includes/agents/flights.py266async def handle_request(request: Request):CODE
LOWdocs/source/resources/includes/agents/weather.py263async def handle_request(request: Request):CODE
LOW…ration/travel_agents/src/travel_agents/flight_agent.py284async def handle_request(request: Request):CODE
LOW…ation/travel_agents/src/travel_agents/weather_agent.py266async def handle_request(request: Request):CODE
LOW…on/multi_agent_crewai_langchain/crewai/flight_agent.py329async def handle_request(request: Request):CODE
LOW…ulti_agent_crewai_langchain/langchain/weather_agent.py318async def handle_request(request: Request):CODE
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHcli/planoai/main.py156 console.print(f' [cyan]export {key}="your-api-key"[/cyan]')CODE
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…on/multi_agent_crewai_langchain/crewai/flight_agent.py93Convert a city name to its primary airport IATA code. Args: city_name: Name of the city (e.g., 'SeaSTRING
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMcrates/hermesllm/src/apis/anthropic.rs1592 "text": "\nYou are an interactive CLI tool that helps users with software engineering tasks. Use theCODE
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOW…build_with_plano/includes/multi_turn/multi_turn_rag.py39CODE
LOWdemos/advanced/multi_turn_rag/main.py38CODE