The first real AI developer
This report summarizes scanner evidence for Pythagora-io/gpt-pilot, a Python project with 33,650 GitHub stars. SynthScan examined 39,174 lines of code across 384 source files, recording 393 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 11.8 (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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 227 finding(s).
Are imports declared and package/API names verified? 60 finding(s).
Are wrappers, guards, and repeated structures necessary? 266 finding(s).
Which changes need focused human review? 393 finding(s).
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.
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.
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.
The scanner identified 393 distinct pattern matches across 18 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/ui/api_server.py | 511 | async def _handle_current_task_status(self, message: Message, writer: asyncio.StreamWriter): | CODE |
| LOW | core/ui/api_server.py | 600 | async def _handle_start_another_task(self, message: Message, writer: asyncio.StreamWriter): | CODE |
| LOW | core/config/__init__.py | 177 | def from_provider_and_agent_configs(cls, provider: ProviderConfig, agent: AgentLLMConfig): | CODE |
| LOW | core/agents/mixins.py | 130 | async def get_relevant_files_parallel( | CODE |
| LOW | core/agents/convo.py | 41 | def _get_default_template_vars(self) -> dict: | CODE |
| LOW | core/agents/convo.py | 55 | def _serialize_prompt_context(context: dict) -> dict: | CODE |
| LOW | core/agents/tech_lead.py | 92 | def create_initial_project_epic(self): | CODE |
| LOW | core/agents/bug_hunter.py | 82 | async def get_bug_reproduction_instructions(self): | CODE |
| LOW | core/agents/bug_hunter.py | 363 | def generate_iteration_convo_so_far(self, omit_last_cycle=False): | CODE |
| LOW | core/agents/bug_hunter.py | 400 | def set_data_for_next_hunting_cycle(self, human_readable_instructions, new_status): | CODE |
| LOW | core/agents/problem_solver.py | 49 | async def generate_alternative_solutions(self): | CODE |
| LOW | core/agents/problem_solver.py | 76 | async def try_alternative_solutions(self) -> AgentResponse: | CODE |
| LOW | core/agents/problem_solver.py | 107 | async def ask_for_preferred_solution(self) -> Optional[tuple[int, str]]: | CODE |
| LOW | core/agents/frontend.py | 33 | def has_correct_num_of_backticks(response: str) -> bool: | CODE |
| LOW | core/agents/architect.py | 237 | async def check_system_dependencies(self, spec: Specification): | CODE |
| LOW | core/agents/orchestrator.py | 345 | def handle_parallel_responses(self, agent: BaseAgent, responses: List[AgentResponse]) -> AgentResponse: | CODE |
| LOW | core/agents/troubleshooter.py | 348 | def try_next_alternative_solution(self, user_feedback: str, user_feedback_qa: list[str]) -> AgentResponse: | CODE |
| LOW | core/agents/developer.py | 121 | async def breakdown_current_iteration(self) -> AgentResponse: | CODE |
| LOW | core/agents/spec_writer.py | 63 | async def initialize_spec_and_project(self) -> AgentResponse: | CODE |
| LOW | core/cli/helpers.py | 412 | def find_first_todo_task_index(tasks): | CODE |
| LOW | core/cli/helpers.py | 849 | async def list_projects_branches_states(db: SessionManager): | CODE |
| LOW⚡ | core/state/state_manager.py | 106 | async def list_projects_with_branches_states(self) -> list[Project]: | CODE |
| LOW⚡ | core/state/state_manager.py | 116 | async def get_branches_for_project_id(self, project_id: UUID) -> list[Branch]: | CODE |
| LOW⚡ | core/state/state_manager.py | 119 | async def get_project_state_for_redo_task(self, project_state: ProjectState) -> Optional[ProjectState]: | CODE |
| LOW | core/state/state_manager.py | 137 | async def get_project_state_for_convo_id(self, convo_id) -> Optional["ProjectState"]: | CODE |
| LOW | core/state/state_manager.py | 140 | async def get_task_conversation_project_states( | CODE |
| LOW | core/state/state_manager.py | 151 | async def get_project_states_in_between( | CODE |
| LOW | core/state/state_manager.py | 679 | def get_full_parent_project_root(self) -> str: | CODE |
| LOW | core/state/state_manager.py | 786 | async def get_modified_files_with_content(self) -> list[dict]: | CODE |
| LOW | core/state/state_manager.py | 850 | async def update_implemented_pages_and_apis(self): | CODE |
| LOW | core/state/state_manager.py | 950 | async def find_backend_implementation(self, endpoint_line: str) -> dict: | CODE |
| LOW | core/db/models/project_state.py | 370 | def flag_iterations_as_modified(self): | CODE |
| LOW | core/db/models/project_state.py | 400 | def flag_knowledge_base_as_modified(self): | CODE |
| LOW | core/db/models/project_state.py | 711 | async def get_project_states_in_between( | CODE |
| LOW | core/db/models/project_state.py | 758 | async def get_task_conversation_project_states( | CODE |
| LOW | core/db/models/chat_convo.py | 38 | async def get_project_state_for_convo_id(session: AsyncSession, convo_id) -> Optional["ProjectState"]: | CODE |
| LOW | core/db/models/project.py | 103 | async def get_branches_for_project_id(session: AsyncSession, project_id: UUID) -> list["Branch"]: | CODE |
| LOW | core/db/models/project.py | 117 | async def get_all_projects_with_branches_states(session: "AsyncSession") -> list["Project"]: | CODE |
| LOW | core/db/models/project.py | 153 | def get_folder_from_project_name(name: str): | CODE |
| LOW | …tes/tree/vite_react/client/src/components/ui/chart.tsx | 321 | function getPayloadConfigFromPayload( | CODE |
| LOW | …/vite_react_swagger/client/src/components/ui/chart.tsx | 321 | function getPayloadConfigFromPayload( | CODE |
| LOW | tests/proc/test_process_manager.py | 14 | async def test_local_process_start_terminate(tmp_path): | CODE |
| LOW | tests/proc/test_process_manager.py | 58 | async def test_process_manager_run_command_capture_stdout(tmp_path): | CODE |
| LOW | tests/proc/test_process_manager.py | 75 | async def test_process_manager_run_command_capture_stderr(tmp_path): | CODE |
| LOW | tests/proc/test_process_manager.py | 92 | async def test_process_manager_start_list_terminate(tmp_path): | CODE |
| LOW | tests/ui/test_console.py | 57 | async def test_ask_question_with_buttons(mock_PromptSession): | CODE |
| LOW | tests/ui/test_console.py | 78 | async def test_ask_question_interrupted(mock_PromptSession): | CODE |
| LOW | tests/ui/test_ipc_client.py | 193 | async def test_server_closes_connection(): | CODE |
| LOW | tests/ui/test_ipc_client.py | 227 | async def test_ask_question_buttons(): | CODE |
| LOW | tests/ui/test_ipc_client.py | 256 | async def test_ask_question_buttons_only_with_default(): | CODE |
| LOW | tests/ui/test_ipc_client.py | 286 | async def test_handle_garbage_response(): | CODE |
| LOW | tests/llm/test_parser.py | 25 | def test_multi_code_block_parser(input, expected): | CODE |
| LOW | tests/llm/test_parser.py | 123 | def test_parse_json_with_spec(input, expected): | CODE |
| LOW | tests/llm/test_parser.py | 204 | def test_optional_block_parser(input, expected): | CODE |
| LOW | tests/llm/test_openai.py | 68 | async def test_openai_stream_handler(mock_AsyncOpenAI, mock_state_manager): | CODE |
| LOW | tests/llm/test_openai.py | 98 | async def test_openai_parser_with_retries(mock_AsyncOpenAI, mock_state_manager): | CODE |
| LOW | tests/llm/test_openai.py | 179 | async def test_openai_error_handler_success(mock_AsyncOpenAI, mock_state_manager): | CODE |
| LOW | tests/llm/test_openai.py | 226 | async def test_openai_error_handler_failure(mock_AsyncOpenAI, mock_state_manager): | CODE |
| LOW | tests/llm/test_openai.py | 271 | def test_openai_rate_limit_parser( | CODE |
| LOW | tests/llm/test_prompt.py | 19 | def test_jinja_string_template(): | CODE |
| 95 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/ui/ipc_client.py | 213 | except Exception as err: | CODE |
| LOW | core/ui/ipc_client.py | 541 | except Exception: | CODE |
| LOW | core/ui/api_server.py | 243 | except Exception as e: | CODE |
| LOW | core/ui/api_server.py | 353 | except Exception as err: | CODE |
| LOW | core/ui/api_server.py | 430 | except Exception as err: | CODE |
| LOW | core/ui/api_server.py | 445 | except Exception as err: | CODE |
| LOW | core/ui/api_server.py | 480 | except Exception as err: | CODE |
| LOW | core/ui/api_server.py | 507 | except Exception as err: | CODE |
| LOW | core/ui/api_server.py | 536 | except Exception as err: | CODE |
| LOW | core/ui/api_server.py | 596 | except Exception as err: | CODE |
| LOW | core/ui/api_server.py | 635 | except Exception as e: | CODE |
| LOW | core/ui/api_server.py | 657 | except Exception as err: | CODE |
| LOW | core/ui/api_server.py | 698 | except Exception as err: | CODE |
| LOW | core/ui/api_server.py | 731 | except Exception as err: | CODE |
| LOW | core/ui/api_server.py | 773 | except Exception as err: | CODE |
| LOW | core/llm/parser.py | 183 | except Exception as err: | CODE |
| LOW | core/llm/base.py | 318 | except Exception: | CODE |
| LOW | core/llm/base.py | 344 | except Exception: | CODE |
| LOW | core/llm/base.py | 357 | except Exception as e: | CODE |
| LOW | core/llm/relace_client.py | 56 | except Exception as e: | CODE |
| LOW | core/agents/mixins.py | 185 | except Exception as e: | CODE |
| LOW | core/agents/git.py | 64 | except Exception as e: | CODE |
| LOW | core/agents/frontend.py | 263 | except Exception as e: | CODE |
| LOW | core/agents/frontend.py | 270 | except Exception as e: | CODE |
| LOW | core/agents/frontend.py | 504 | except Exception as e: | CODE |
| LOW | core/agents/frontend.py | 510 | except Exception as e: | CODE |
| LOW | core/agents/frontend.py | 597 | except Exception as e: | CODE |
| LOW | core/agents/wizard.py | 55 | except Exception as e: | CODE |
| LOW | core/agents/wizard.py | 162 | except Exception as e: | CODE |
| LOW | core/agents/wizard.py | 167 | except Exception as e: | CODE |
| LOW | core/agents/orchestrator.py | 219 | except Exception as e: | CODE |
| LOW | core/agents/orchestrator.py | 249 | except Exception as e: | CODE |
| LOW | core/agents/orchestrator.py | 280 | except Exception as e: | CODE |
| LOW | core/agents/orchestrator.py | 303 | except Exception as e: | CODE |
| LOW | core/agents/orchestrator.py | 342 | except Exception as e: | CODE |
| LOW | core/agents/code_monkey.py | 131 | except Exception: | CODE |
| LOW | core/utils/text.py | 40 | except Exception: | CODE |
| LOW | core/cli/main.py | 98 | except Exception as err: | CODE |
| LOW | core/cli/main.py | 417 | except Exception as err: | CODE |
| MEDIUM | core/cli/helpers.py | 300 | print(f"Error parsing config file {args.config}: {err}", file=sys.stderr) | CODE |
| MEDIUM | core/state/state_manager.py | 418 | def commit_with_retry(self): | CODE |
| LOW | core/state/state_manager.py | 237 | except Exception as e: | CODE |
| LOW | core/state/state_manager.py | 242 | except Exception as e: | CODE |
| LOW | core/state/state_manager.py | 368 | except Exception as e: | CODE |
| LOW | core/state/state_manager.py | 429 | except Exception as e: | CODE |
| LOW | core/state/state_manager.py | 475 | except Exception as e: | CODE |
| LOW | core/state/state_manager.py | 509 | except Exception as e: | CODE |
| LOW | core/state/state_manager.py | 520 | except Exception as e: | CODE |
| LOW | core/state/state_manager.py | 984 | except Exception as e: | CODE |
| MEDIUM | core/db/fix_migrations.py | 29 | print(f"Error updating database: {e}") | CODE |
| MEDIUM | core/db/fix_migrations.py | 42 | print(f"Error: Could not find alembic.ini at {alembic_ini}") | CODE |
| MEDIUM | core/db/fix_migrations.py | 50 | print("Error: This script only works with SQLite databases") | CODE |
| MEDIUM | core/db/fix_migrations.py | 69 | print("Error: No migration versions found") | CODE |
| LOW | core/db/fix_migrations.py | 84 | except Exception as e: | CODE |
| MEDIUM | core/db/fix_migrations.py | 85 | print(f"Error: {e}") | CODE |
| LOW | core/db/v0importer.py | 43 | except Exception as err: # noqa | CODE |
| MEDIUM | core/db/v0importer.py | 40 | def import_database(self): | CODE |
| LOW | core/db/models/project_state.py | 704 | except Exception as e: | CODE |
| LOW | core/templates/base.py | 126 | except Exception as err: | CODE |
| MEDIUM | core/templates/base.py | 123 | def install_hook_template(self) -> Any: | CODE |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/config/__init__.py | 256 | CODE | |
| LOW | core/agents/convo.py | 15 | CODE | |
| LOW | core/agents/response.py | 7 | CODE | |
| LOW | core/agents/response.py | 8 | CODE | |
| LOW | core/agents/base.py | 8 | CODE | |
| LOW | core/state/state_manager.py | 17 | CODE | |
| LOW | core/state/state_manager.py | 42 | CODE | |
| LOW | core/db/models/user_input.py | 14 | CODE | |
| LOW | core/db/models/user_input.py | 14 | CODE | |
| LOW | core/db/models/project_state.py | 17 | CODE | |
| LOW | core/db/models/project_state.py | 17 | CODE | |
| LOW | core/db/models/project_state.py | 17 | CODE | |
| LOW | core/db/models/chat_message.py | 9 | CODE | |
| LOW | core/db/models/__init__.py | 6 | CODE | |
| LOW | core/db/models/__init__.py | 7 | CODE | |
| LOW | core/db/models/__init__.py | 8 | CODE | |
| LOW | core/db/models/__init__.py | 9 | CODE | |
| LOW | core/db/models/__init__.py | 10 | CODE | |
| LOW | core/db/models/__init__.py | 11 | CODE | |
| LOW | core/db/models/__init__.py | 12 | CODE | |
| LOW | core/db/models/__init__.py | 13 | CODE | |
| LOW | core/db/models/__init__.py | 14 | CODE | |
| LOW | core/db/models/__init__.py | 15 | CODE | |
| LOW | core/db/models/__init__.py | 16 | CODE | |
| LOW | core/db/models/__init__.py | 17 | CODE | |
| LOW | core/db/models/__init__.py | 17 | CODE | |
| LOW | core/db/models/__init__.py | 18 | CODE | |
| LOW | core/db/models/branch.py | 12 | CODE | |
| LOW | core/db/models/branch.py | 14 | CODE | |
| LOW | core/db/models/branch.py | 14 | CODE | |
| LOW | core/db/models/branch.py | 14 | CODE | |
| LOW | core/db/models/branch.py | 14 | CODE | |
| LOW | core/db/models/file.py | 6 | CODE | |
| LOW | core/db/models/file.py | 12 | CODE | |
| LOW | core/db/models/file.py | 12 | CODE | |
| LOW | core/db/models/exec_log.py | 13 | CODE | |
| LOW | core/db/models/exec_log.py | 13 | CODE | |
| LOW | core/db/models/llm_request.py | 14 | CODE | |
| LOW | core/db/models/llm_request.py | 15 | CODE | |
| LOW | core/db/models/llm_request.py | 15 | CODE | |
| LOW | core/templates/render.py | 1 | CODE | |
| LOW | core/templates/base.py | 13 | CODE | |
| LOW | core/templates/base.py | 14 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/proc/process_manager.py | 171 | CODE | |
| LOW | core/ui/api_server.py | 540 | CODE | |
| LOW | core/llm/base.py | 124 | CODE | |
| LOW | core/llm/base.py | 416 | CODE | |
| LOW | core/config/env_importer.py | 44 | CODE | |
| LOW | core/agents/tech_lead.py | 146 | CODE | |
| LOW | core/agents/tech_lead.py | 371 | CODE | |
| LOW | core/agents/bug_hunter.py | 61 | CODE | |
| LOW | core/agents/bug_hunter.py | 241 | CODE | |
| LOW | core/agents/frontend.py | 44 | CODE | |
| LOW | core/agents/frontend.py | 151 | CODE | |
| LOW | core/agents/frontend.py | 356 | CODE | |
| LOW | core/agents/frontend.py | 451 | CODE | |
| LOW | core/agents/wizard.py | 30 | CODE | |
| LOW | core/agents/wizard.py | 133 | CODE | |
| LOW | core/agents/orchestrator.py | 370 | CODE | |
| LOW | core/agents/orchestrator.py | 463 | CODE | |
| LOW | core/agents/orchestrator.py | 554 | CODE | |
| LOW | core/agents/troubleshooter.py | 244 | CODE | |
| LOW | core/agents/developer.py | 121 | CODE | |
| LOW | core/cli/helpers.py | 437 | CODE | |
| LOW | core/cli/helpers.py | 481 | CODE | |
| LOW | core/cli/helpers.py | 583 | CODE | |
| LOW | core/state/state_manager.py | 172 | CODE | |
| LOW | core/state/state_manager.py | 272 | CODE | |
| LOW | core/db/models/project_state.py | 592 | CODE | |
| LOW | core/db/models/project_state.py | 631 | CODE | |
| LOW | core/db/models/project_state.py | 758 | CODE | |
| LOW | core/db/models/project_state.py | 976 | CODE | |
| LOW | core/db/models/file.py | 46 | CODE | |
| LOW | core/templates/render.py | 71 | CODE | |
| LOW | core/log/__init__.py | 30 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/proc/exec_log.py | 21 | __all__ = ["ExecLog"] | CODE |
| LOW | core/ui/ipc_client.py | 690 | __all__ = ["IPCClientUI"] | CODE |
| LOW | core/ui/console.py | 272 | __all__ = ["PlainConsoleUI"] | CODE |
| LOW | core/ui/virtual.py | 253 | __all__ = ["VirtualUI"] | CODE |
| LOW | core/ui/base.py | 573 | __all__ = [ | CODE |
| LOW | core/llm/convo.py | 170 | __all__ = ["Convo"] | CODE |
| LOW | core/llm/groq_client.py | 93 | __all__ = ["GroqClient"] | CODE |
| LOW | core/llm/prompt.py | 48 | __all__ = ["FormatTemplate", "JinjaStringTemplate", "JinjaFileTemplate"] | CODE |
| LOW | core/llm/request_log.py | 30 | __all__ = ["LLMRequestLog", "LLMRequestStatus"] | CODE |
| LOW | core/llm/openai_client.py | 120 | __all__ = ["OpenAIClient"] | CODE |
| LOW | core/llm/anthropic_client.py | 154 | __all__ = ["AnthropicClient"] | CODE |
| LOW | core/llm/base.py | 459 | __all__ = ["BaseLLMClient"] | CODE |
| LOW | core/llm/relace_client.py | 62 | __all__ = ["RelaceClient"] | CODE |
| LOW | core/config/user_settings.py | 94 | __all__ = ["settings"] | CODE |
| LOW | core/config/version.py | 110 | __all__ = ["get_version", "get_git_branch"] | CODE |
| LOW | core/config/__init__.py | 544 | __all__ = ["loader", "get_config"] | CODE |
| LOW | core/cli/helpers.py | 955 | __all__ = [ | CODE |
| LOW | core/state/state_manager.py | 1046 | __all__ = ["StateManager"] | CODE |
| LOW | core/db/session.py | 76 | __all__ = ["SessionManager"] | CODE |
| LOW | core/db/setup.py | 49 | __all__ = ["run_migrations"] | CODE |
| LOW | core/db/models/__init__.py | 20 | __all__ = [ | CODE |
| LOW | core/log/__init__.py | 111 | __all__ = ["setup", "get_logger"] | CODE |
| LOW | core/disk/ignore.py | 125 | __all__ = ["IgnoreMatcher"] | CODE |
| LOW | core/disk/vfs.py | 188 | __all__ = ["VirtualFileSystem", "MemoryVFS", "LocalDiskVFS"] | CODE |
| LOW | core/telemetry/__init__.py | 400 | __all__ = ["telemetry"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/ui/api_server.py | 202 | # Check if convo exists for this convo id | COMMENT |
| LOW | core/ui/api_server.py | 213 | # Check if any ChatMessages exists with the convo id | COMMENT |
| LOW | core/agents/git.py | 99 | # Check if there are any changes to commit | COMMENT |
| LOW | core/agents/orchestrator.py | 187 | # Check if file exists | COMMENT |
| LOW | core/agents/orchestrator.py | 196 | # Check if script already exists | COMMENT |
| LOW | core/agents/orchestrator.py | 269 | # Check if favicon link already exists | COMMENT |
| LOW | core/agents/orchestrator.py | 318 | # Check if required configs already exist | COMMENT |
| LOW | core/agents/spec_writer.py | 70 | # Check if initial_prompt is provided in command line arguments | COMMENT |
| LOW | core/cli/main.py | 131 | # Check if initial_prompt is provided, if so, automatically select "node" | COMMENT |
| LOW | core/state/state_manager.py | 859 | # Check if pages or apis have changed | COMMENT |
| LOW | core/templates/tree/add_raw_tags.py | 8 | # Open the file and read the contents | COMMENT |
| LOW | core/templates/tree/add_raw_tags.py | 12 | # Check if the tags are already present | COMMENT |
| LOW⚡ | core/templates/tree/add_raw_tags.py | 42 | # Check if the directory path argument is provided | COMMENT |
| LOW⚡ | core/templates/tree/add_raw_tags.py | 50 | # Check if the provided directory exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | core/agents/external_docs.py | 50 | CODE | |
| MEDIUM | core/agents/external_docs.py | 56 | CODE | |
| MEDIUM | core/agents/external_docs.py | 57 | CODE | |
| MEDIUM | core/agents/external_docs.py | 59 | CODE | |
| MEDIUM | core/agents/external_docs.py | 64 | CODE | |
| MEDIUM | core/agents/external_docs.py | 65 | CODE | |
| MEDIUM | core/agents/external_docs.py | 66 | CODE | |
| MEDIUM | core/agents/external_docs.py | 67 | CODE | |
| MEDIUM | core/agents/external_docs.py | 69 | CODE | |
| MEDIUM | core/agents/external_docs.py | 70 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | core/llm/parser.py | 186 | # Create a new model that includes the original model fields and the original text | COMMENT |
| MEDIUM | core/agents/wizard.py | 113 | # Create a new knowledge base instance for the project state | COMMENT |
| MEDIUM | core/db/models/project_state.py | 411 | # Create a new knowledge base instance with the current data | COMMENT |
| MEDIUM | tests/cli/test_cli.py | 308 | # Create a mock with a string value for the button attribute | COMMENT |
| MEDIUM | tests/cli/test_cli.py | 341 | # Create a mock response with a string value for the button attribute | COMMENT |
| MEDIUM | tests/state/test_state_manager.py | 143 | # Create an instance of StateManager with mocked UI | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/ui/test_ipc_client.py | 108 | "placeholder": None, | CODE |
| LOW | tests/ui/test_ipc_client.py | 120 | "placeholder": None, | CODE |
| LOW | tests/ui/test_ipc_client.py | 152 | "placeholder": None, | CODE |
| LOW | tests/ui/test_ipc_client.py | 164 | "placeholder": None, | CODE |
| LOW | tests/ui/test_ipc_client.py | 176 | "placeholder": None, | CODE |
| LOW⚡ | tests/llm/test_convo.py | 88 | convo.user("Hello, World!", "John Doe") | CODE |
| LOW⚡ | tests/llm/test_convo.py | 92 | "name": "John Doe", | CODE |
| LOW | tests/integration/llm/test_anthropic.py | 113 | large_convo = " ".join(["lorem ipsum dolor sit amet"] * 60000) | CODE |
| LOW | tests/integration/llm/test_anthropic.py | 113 | large_convo = " ".join(["lorem ipsum dolor sit amet"] * 60000) | CODE |
| LOW | tests/integration/llm/test_openai.py | 116 | large_convo = " ".join(["lorem ipsum dolor sit amet"] * 30000) | CODE |
| LOW | tests/integration/llm/test_openai.py | 116 | large_convo = " ".join(["lorem ipsum dolor sit amet"] * 30000) | CODE |
| LOW | tests/integration/llm/test_groq.py | 118 | large_convo = " ".join(["lorem ipsum dolor sit amet"] * 30000) | CODE |
| LOW | tests/integration/llm/test_groq.py | 118 | large_convo = " ".join(["lorem ipsum dolor sit amet"] * 30000) | CODE |
| LOW | tests/telemetry/test_telemetry.py | 36 | "user_contact": "user@example.com", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | example-config.json | 16 | "api_key": "your-api-key", | CODE |
| HIGH | example-config.json | 23 | "api_key": "your-api-key", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/llm/base.py | 301 | # Token limit exceeded (in original gpt-pilot handled as | COMMENT |
| LOW | core/agents/tech_lead.py | 61 | if len(self.current_state.epics) == 1: | COMMENT |
| LOW | core/agents/architect.py | 141 | "select_templates", | COMMENT |
| LOW | core/db/alembic.ini | 1 | # A generic, single database configuration. | COMMENT |
| LOW | core/db/alembic.ini | 21 | # string value is passed to ZoneInfo() | COMMENT |
| LOW | core/db/alembic.ini | 41 | # The path separator used here should be the separator specified by "version_path_separator" below. | COMMENT |
| LOW | core/db/alembic.ini | 61 | # are written from script.py.mako | COMMENT |
| LOW | core/telemetry/__init__.py | 141 | # End result of development: | COMMENT |
| LOW | tests/db/test_db.py | 61 | # this assertion would fail with an ORM exception, *unless* we add | COMMENT |
| LOW | cloud/entrypoint.sh | 1 | #!/bin/bash | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | core/agents/code_monkey.py | 209 | # ------------------------------ | COMMENT |
| MEDIUM | core/agents/code_monkey.py | 211 | # ------------------------------ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | core/proc/process_manager.py | 116 | except psutil.NoSuchProcess: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/ui/ipc_client.py | 316 | CODE | |
| LOW | core/ui/console.py | 86 | CODE | |
| LOW | core/ui/virtual.py | 81 | CODE | |
| LOW | core/ui/base.py | 220 | CODE | |
| LOW | core/agents/base.py | 70 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | core/agents/git.py | 129 | "git diff --cached || git diff", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | core/llm/base.py | 366 | "Here's how you can get Pythagora to ignore those extra files: ", | CODE |
| LOW | core/agents/troubleshooter.py | 241 | # Sometimes LLM can return a non-existent file, let's make sure to filter those out | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/agents/orchestrator.py | 84 | # TODO: consider refactoring this into two loop; the outer with one iteration per committed step, | COMMENT |
| LOW | core/state/state_manager.py | 565 | # TODO: implement this | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/ui/api_server.py | 541 | # if the extension sent "add", just add a new task in the tasks array before the first todo task | COMMENT |