Repository Analysis

Kiln-AI/Kiln

Build, Evaluate, and Optimize AI Systems. Includes evals, RAG, agents, fine-tuning, synthetic data generation, dataset management, MCP, and more.

17.7 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of Kiln-AI/Kiln, a Python project with 4,964 GitHub stars. SynthScan v2.0 examined 383,245 lines of code across 1682 source files, recording 5961 pattern matches distributed across 24 syntactic categories. The overall adjusted score of 17.7 places this repository in the Moderate 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).

17.7
Adjusted Score
17.7
Raw Score
100%
Time Factor
2026-07-14
Last Push
5.0K
Stars
Python
Language
383.2K
Lines of Code
1.7K
Files
6.0K
Pattern Hits
2026-07-14
Scan Date
0.07
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 2HIGH 116MEDIUM 444LOW 5399

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 5961 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers4443 hits · 3897 pts
SeverityFileLineSnippetContext
LOWconftest.py117def pytest_collection_modifyitems(config, items):CODE
LOWapp/desktop/test_start_background_syncs.py40async def test_start_background_syncs_passes_oauth_token(tmp_path: Path):CODE
LOWapp/desktop/test_start_background_syncs.py88async def test_start_background_syncs_passes_pat_token(tmp_path: Path):CODE
LOWapp/desktop/test_desktop.py103 def test_quit_app_with_tray_and_root(self, mock_tk_root, mock_kiln_tray):CODE
LOWapp/desktop/test_desktop.py133 def test_on_quit_without_root(self, mock_tk_root):CODE
LOWapp/desktop/test_desktop.py152 def test_resource_path_with_meipass(self, mock_tk_root):CODE
LOWapp/desktop/test_desktop.py162 def test_resource_path_without_meipass(self, mock_tk_root):CODE
LOWapp/desktop/test_desktop.py200 def test_run_tray_already_exists(self, mock_tk_root, mock_kiln_tray):CODE
LOWapp/desktop/test_desktop.py212 def test_run_tray_windows_default(CODE
LOWapp/desktop/test_desktop.py226 def test_run_tray_macos_no_default(CODE
LOWapp/desktop/test_desktop.py239 def test_close_splash_with_pyi_splash(self, mock_tk_root):CODE
LOWapp/desktop/test_desktop.py249 def test_close_splash_without_pyi_splash(self, mock_tk_root):CODE
LOWapp/desktop/test_desktop.py270 def test_run_in_thread_calls_app_on_quit(self, mock_tk_root):CODE
LOWapp/desktop/studio_server/test_run_config_api.py142def test_validate_input_transform_template_valid(client):CODE
LOWapp/desktop/studio_server/test_run_config_api.py153def test_validate_input_transform_template_invalid(client):CODE
LOWapp/desktop/studio_server/test_run_config_api.py166def test_validate_input_transform_template_empty(client):CODE
LOWapp/desktop/studio_server/test_run_config_api.py177def test_validate_mcp_input_schema_plaintext_success(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py202def test_validate_mcp_input_schema_plaintext_fails(mock_task, tool_schema, error_match):CODE
LOWapp/desktop/studio_server/test_run_config_api.py208def test_validate_mcp_input_schema_structured_success(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py220def test_validate_mcp_input_schema_structured_fails(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py229def test_validate_mcp_output_schema_success(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py257def test_validate_mcp_output_schema_fails(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py266def test_load_mcp_tool_success(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py284def test_load_mcp_tool_fails_not_mcp_tool_id(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py296def test_load_mcp_tool_fails_wrong_type(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py313async def test_load_mcp_input_schema_success():CODE
LOWapp/desktop/studio_server/test_run_config_api.py324async def test_load_mcp_input_schema_fails():CODE
LOWapp/desktop/studio_server/test_run_config_api.py337async def test_load_mcp_output_schema_success():CODE
LOWapp/desktop/studio_server/test_run_config_api.py351async def test_load_mcp_output_schema_fails():CODE
LOWapp/desktop/studio_server/test_run_config_api.py359def test_create_task_from_tool_plaintext(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py416def test_create_task_from_tool_structured(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py482def test_create_task_from_tool_sanitizes_names(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py548def test_create_task_from_tool_invalid_tool(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py579def test_create_mcp_run_config_success(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py633def test_create_mcp_run_config_plaintext_success(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py698def test_create_mcp_run_config_input_schema_mismatch(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py756def test_tasks_compatible_with_tool_mixed_results(client, project_and_tasks):CODE
LOWapp/desktop/studio_server/test_run_config_api.py811def test_tasks_compatible_with_tool_invalid_tool(client, project_and_tasks):CODE
LOWapp/desktop/studio_server/test_run_config_api.py831def test_tasks_compatible_with_tool_empty_project(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py935def test_schemas_compatible_true(task_schema, tool_schema, description):CODE
LOWapp/desktop/studio_server/test_run_config_api.py976def test_schemas_compatible_false(task_schema, tool_schema, description):CODE
LOWapp/desktop/studio_server/test_run_config_api.py980def test_resolve_mcp_tool_from_id_success():CODE
LOWapp/desktop/studio_server/test_run_config_api.py1005def test_resolve_mcp_tool_from_id_not_mcp():CODE
LOWapp/desktop/studio_server/test_run_config_api.py1013def test_create_mcp_run_config_properties():CODE
LOWapp/desktop/studio_server/test_run_config_api.py1037def test_create_mcp_run_config_properties_no_output_schema():CODE
LOWapp/desktop/studio_server/test_repair_api.py101def mock_repair_task_run_human_edited(improvement_task, data_source):CODE
LOWapp/desktop/studio_server/test_repair_api.py193def test_repair_run_missing_model_info(CODE
LOWapp/desktop/studio_server/test_repair_api.py216def test_repair_run_human_source(CODE
LOWapp/desktop/studio_server/test_repair_api.py269 async def mock_acompletion_checking_response(self, **kwargs):CODE
LOWapp/desktop/studio_server/test_repair_api.py338def test_repair_run_with_model_override(CODE
LOWapp/desktop/studio_server/test_repair_api.py367def test_repair_run_override_requires_both_fields(CODE
LOWapp/desktop/studio_server/test_repair_api.py381def test_repair_run_override_rederives_structured_output_mode(CODE
LOWapp/desktop/studio_server/test_agent_api.py195 def test_two_tags_both_counted(self, task):CODE
LOWapp/desktop/studio_server/test_agent_api.py365 def test_excludes_generators_includes_real_prompts(self, task, project):CODE
LOWapp/desktop/studio_server/test_agent_api.py434 def test_generators_from_task_instruction_count(self, task, project):CODE
LOWapp/desktop/studio_server/test_agent_api.py541 def test_ordering_within_groups(self, task):CODE
LOWapp/desktop/studio_server/webhost.py63 def not_found_exception_handler(request, exc):CODE
LOWapp/desktop/studio_server/test_data_gen_api.py896def test_combine_guidance_session_only(test_task):CODE
LOWapp/desktop/studio_server/test_data_gen_api.py905def test_combine_guidance_empty_returns_none(test_task):CODE
LOWapp/desktop/studio_server/test_data_gen_api.py912def test_combine_guidance_override_wins_over_persisted(test_task):CODE
4383 more matches not shown…
Self-Referential Comments271 hits · 803 pts
SeverityFileLineSnippetContext
MEDIUMapp/desktop/linux_installer.sh190 # Create the desktop entry fileCOMMENT
MEDIUM…ktop/studio_server/test_prompt_optimization_job_api.py2238 # Create a target run configCOMMENT
MEDIUM…ktop/studio_server/test_prompt_optimization_job_api.py2513 # Create a promptCOMMENT
MEDIUM…ktop/studio_server/test_prompt_optimization_job_api.py2552 # Create a run configCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3496 # Create an MCP tool server to trigger the RAG set inclusionCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3561 # Create a RAG configCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4141 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4150 # Create a run config with ID "default" for the taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4227 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4236 # Create a run config with ID "default" for the taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4277 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4286 # Create a run config with ID "default" for the taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4399 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4408 # Create a run config with ID "default" for the taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4466 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4475 # Create a run config for the taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py380 # Create the tool with empty toolsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py436 # Create the tool with successful validationCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py558 # Create the tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py697 # Create a mapping of server URLs to their toolsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py788 # Create a tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py802 # Create the tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1148 # Create a mock ExternalToolServerCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1181 # Create a mock ExternalToolServerCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1203 # Create a mock ExternalToolServerCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1225 # Create a mock ExternalToolServerCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1249 # Create a mock ExternalToolServer with kiln_task typeCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1514 # Create a tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1652 # Create the tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1776 # Create a tool server with secret headersCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1796 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1881 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1926 # Create a tool server firstCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1942 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1986 # Create a tool server with secret headersCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2006 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2449 # Create a local MCP tool server with secret env varsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2470 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2517 # Create a local MCP tool server without secret env varsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2534 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2577 # Create a local MCP tool server with secret env varsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2598 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2639 # Create a local MCP tool server firstCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2656 # Create the local tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2715 # Create the tool with successful validationCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2791 # Create the tool with successful validationCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2862 # Create the tool with successful validationCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2944 # Create the local MCP tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3019 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3037 # Create a Kiln task tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3171 # Create the local MCP tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3269 # Create the local MCP tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3510 # Create the MCP serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3575 # Create an MCP tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3589 # Create the MCP serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3833 # Create a mock KilnTaskToolCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3865 # Create a mock KilnTaskTool with minimal fieldsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3950 # Create a non-kiln task server to ensure it's filtered outCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4005 # Create a non-kiln task serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4038 # Create a valid task firstCOMMENT
211 more matches not shown…
Docstring Block Structure82 hits · 410 pts
SeverityFileLineSnippetContext
HIGH…_client/api/chat/list_sessions_v1_chat_sessions_get.py123List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. RaisSTRING
HIGH…_client/api/chat/list_sessions_v1_chat_sessions_get.py163List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. RaisSTRING
HIGH…_client/api/chat/list_sessions_v1_chat_sessions_get.py197List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. RaisSTRING
HIGH…_client/api/chat/list_sessions_v1_chat_sessions_get.py235List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. RaisSTRING
HIGH…t/delete_session_v1_chat_sessions_session_id_delete.py115Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns STRING
HIGH…t/delete_session_v1_chat_sessions_session_id_delete.py152Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns STRING
HIGH…t/delete_session_v1_chat_sessions_session_id_delete.py183Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns STRING
HIGH…t/delete_session_v1_chat_sessions_session_id_delete.py218Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns STRING
HIGH…pi/chat/get_session_v1_chat_sessions_session_id_get.py117Get Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns an STRING
HIGH…pi/chat/get_session_v1_chat_sessions_session_id_get.py154Get Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns an STRING
HIGH…pi/chat/get_session_v1_chat_sessions_session_id_get.py185Get Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns an STRING
HIGH…pi/chat/get_session_v1_chat_sessions_session_id_get.py220Get Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns an STRING
HIGH…_ai_server_client/api/chat/handle_chat_v1_chat_post.py112Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns aSTRING
HIGH…_ai_server_client/api/chat/handle_chat_v1_chat_post.py149Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns aSTRING
HIGH…_ai_server_client/api/chat/handle_chat_v1_chat_post.py180Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns aSTRING
HIGH…_ai_server_client/api/chat/handle_chat_v1_chat_post.py215Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns aSTRING
HIGH…i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py68Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.UnexSTRING
HIGH…i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py99Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.UnexSTRING
HIGH…i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py125Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.UnexSTRING
HIGH…i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py154Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.UnexSTRING
HIGH…copilot/question_spec_v1_copilot_question_spec_post.py68Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput)STRING
HIGH…copilot/question_spec_v1_copilot_question_spec_post.py99Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput)STRING
HIGH…copilot/question_spec_v1_copilot_question_spec_post.py125Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput)STRING
HIGH…copilot/question_spec_v1_copilot_question_spec_post.py154Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput)STRING
HIGH…th_answers_v1_copilot_refine_spec_with_answers_post.py68Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): RequSTRING
HIGH…th_answers_v1_copilot_refine_spec_with_answers_post.py99Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): RequSTRING
HIGH…th_answers_v1_copilot_refine_spec_with_answers_post.py125Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): RequSTRING
HIGH…th_answers_v1_copilot_refine_spec_with_answers_post.py154Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): RequSTRING
HIGH…pilot/generate_batch_v1_copilot_generate_batch_post.py68Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation STRING
HIGH…pilot/generate_batch_v1_copilot_generate_batch_post.py100Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation STRING
HIGH…pilot/generate_batch_v1_copilot_generate_batch_post.py127Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation STRING
HIGH…pilot/generate_batch_v1_copilot_generate_batch_post.py157Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation STRING
HIGH…api/copilot/refine_spec_v1_copilot_refine_spec_post.py68Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.UnexpecSTRING
HIGH…api/copilot/refine_spec_v1_copilot_refine_spec_post.py99Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.UnexpecSTRING
HIGH…api/copilot/refine_spec_v1_copilot_refine_spec_post.py125Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.UnexpecSTRING
HIGH…api/copilot/refine_spec_v1_copilot_refine_spec_post.py154Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.UnexpecSTRING
HIGH…i/auth/check_entitlements_v1_check_entitlements_get.py78Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code(STRING
HIGH…i/auth/check_entitlements_v1_check_entitlements_get.py113Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code(STRING
HIGH…i/auth/check_entitlements_v1_check_entitlements_get.py143Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code(STRING
HIGH…i/auth/check_entitlements_v1_check_entitlements_get.py176Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code(STRING
HIGH…t_v1_jobs_prompt_optimization_job_job_id_result_get.py63Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If theSTRING
HIGH…t_v1_jobs_prompt_optimization_job_job_id_result_get.py92Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If theSTRING
HIGH…t_v1_jobs_prompt_optimization_job_job_id_result_get.py116Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If theSTRING
HIGH…t_v1_jobs_prompt_optimization_job_job_id_result_get.py143Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If theSTRING
HIGH…jobs/start_sample_job_v1_jobs_sample_job_start_post.py67Start Sample Job Start a new sample job. Args: message: The message to process user_id: The aSTRING
HIGH…jobs/start_sample_job_v1_jobs_sample_job_start_post.py108Start Sample Job Start a new sample job. Args: message: The message to process user_id: The aSTRING
HIGH…jobs/start_sample_job_v1_jobs_sample_job_start_post.py144Start Sample Job Start a new sample job. Args: message: The message to process user_id: The aSTRING
HIGH…jobs/start_sample_job_v1_jobs_sample_job_start_post.py183Start Sample Job Start a new sample job. Args: message: The message to process user_id: The aSTRING
HIGH…s_prompt_optimization_job_check_model_supported_get.py72Check Prompt Optimization Model Supported Args: model_name (str): model_provider_name (str): RSTRING
HIGH…s_prompt_optimization_job_check_model_supported_get.py104Check Prompt Optimization Model Supported Args: model_name (str): model_provider_name (str): RSTRING
HIGH…s_prompt_optimization_job_check_model_supported_get.py131Check Prompt Optimization Model Supported Args: model_name (str): model_provider_name (str): RSTRING
HIGH…s_prompt_optimization_job_check_model_supported_get.py161Check Prompt Optimization Model Supported Args: model_name (str): model_provider_name (str): RSTRING
HIGH…ple_job_result_v1_jobs_sample_job_job_id_result_get.py63Get Sample Job Result Get the result of a sample job. Args: job_id: The job ID Returns: STRING
HIGH…ple_job_result_v1_jobs_sample_job_job_id_result_get.py103Get Sample Job Result Get the result of a sample job. Args: job_id: The job ID Returns: STRING
HIGH…ple_job_result_v1_jobs_sample_job_job_id_result_get.py138Get Sample Job Result Get the result of a sample job. Args: job_id: The job ID Returns: STRING
HIGH…ple_job_result_v1_jobs_sample_job_job_id_result_get.py176Get Sample Job Result Get the result of a sample job. Args: job_id: The job ID Returns: STRING
HIGH…s/get_job_status_v1_jobs_job_type_job_id_status_get.py67Get Job Status Get the status of a job. Args: job_type: The type of job job_id: The job ID STRING
HIGH…s/get_job_status_v1_jobs_job_type_job_id_status_get.py111Get Job Status Get the status of a job. Args: job_type: The type of job job_id: The job ID STRING
HIGH…s/get_job_status_v1_jobs_job_type_job_id_status_get.py150Get Job Status Get the status of a job. Args: job_type: The type of job job_id: The job ID STRING
HIGH…s/get_job_status_v1_jobs_job_type_job_id_status_get.py192Get Job Status Get the status of a job. Args: job_type: The type of job job_id: The job ID STRING
22 more matches not shown…
Unused Imports389 hits · 330 pts
SeverityFileLineSnippetContext
LOWapp/desktop/desktop.py19CODE
LOW…io_server/api_client/kiln_ai_server_client/__init__.py3CODE
LOW…io_server/api_client/kiln_ai_server_client/__init__.py3CODE
LOW…ion_v1_chat_sessions_session_id_delete_response_426.py1CODE
LOW…client/models/handle_chat_v1_chat_post_response_500.py1CODE
LOW…_ai_server_client/models/examples_for_feedback_item.py1CODE
LOW…ient/models/mcp_tool_reference_output_schema_type_0.py1CODE
LOW…r/api_client/kiln_ai_server_client/models/task_info.py1CODE
LOW…t/kiln_ai_server_client/models/question_with_answer.py1CODE
LOW…lient/kiln_ai_server_client/models/tools_run_config.py1CODE
LOW…api_client/kiln_ai_server_client/models/data_source.py1CODE
LOW…ient/models/chat_completion_developer_message_param.py1CODE
LOW…er_client/models/chat_completion_user_message_param.py1CODE
LOW…kiln_ai_server_client/models/chat_session_list_item.py1CODE
LOW…ent/kiln_ai_server_client/models/requirement_rating.py1CODE
LOW…server_client/models/spec_spec_field_current_values.py1CODE
LOW…client/models/handle_chat_v1_chat_post_response_404.py1CODE
LOW…ent/kiln_ai_server_client/models/task_output_rating.py1CODE
LOW…kiln_ai_server_client/models/data_source_properties.py1CODE
LOW…n_ai_server_client/models/mcp_run_config_properties.py1CODE
LOW…i_client/kiln_ai_server_client/models/chat_snapshot.py1CODE
LOW…lient/kiln_ai_server_client/models/validation_error.py1CODE
LOW…ai_server_client/models/api_key_verification_result.py1CODE
LOW…ient/kiln_ai_server_client/models/sample_job_output.py1CODE
LOW…client/kiln_ai_server_client/models/kiln_base_model.py1CODE
LOW…client/models/handle_chat_v1_chat_post_response_400.py1CODE
LOW…lient/kiln_ai_server_client/models/spec_spec_fields.py1CODE
LOW…ient/kiln_ai_server_client/models/refine_spec_input.py1CODE
LOW…erver_client/models/specification_input_spec_fields.py1CODE
LOW…iln_ai_server_client/models/create_api_key_response.py1CODE
LOW…er/api_client/kiln_ai_server_client/models/task_run.py1CODE
LOW…kiln_ai_server_client/models/submit_answers_request.py1CODE
LOW…dels/synthetic_data_generation_session_config_input.py1CODE
LOW…rver_client/models/kiln_agent_run_config_properties.py1CODE
LOW…ent/kiln_ai_server_client/models/mcp_tool_reference.py1CODE
LOW…ession_v1_chat_sessions_session_id_get_response_426.py1CODE
LOW…ls/chat_completion_message_function_tool_call_param.py1CODE
LOW…er/api_client/kiln_ai_server_client/models/question.py1CODE
LOW…i_client/kiln_ai_server_client/models/task_metadata.py1CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py3CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py4CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py5CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py6CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py7CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py10CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py11CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py12CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py13CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py14CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py15CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py16CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py17CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py18CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py19CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py20CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py21CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py22CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py23CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py24CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py25CODE
329 more matches not shown…
Modern AI Meta-Vocabulary85 hits · 263 pts
SeverityFileLineSnippetContext
MEDIUMapp/desktop/studio_server/prompt_api.py40 # the UI can render the chain of thought as a separate, editable field.COMMENT
MEDIUMapp/desktop/studio_server/test_provider_api.py3548 # Should map to built-in embedding model by nameCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3463# RAG-specific testsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3467 # Create some RAG configsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3492 # Save the RAG configsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3496 # Create an MCP tool server to trigger the RAG set inclusionCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3561 # Create a RAG configCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3414 # Create some RAG configsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3439 # Save the RAG configsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3525 # RAG set only — the Call Kiln API built-in tool is not listed.COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3530 # Verify RAG tool detailsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3611 # RAG + MCP sets — the Call Kiln API built-in tool is not listed.COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3632 # Verify RAG toolsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3680 # Create active and archived RAG configsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3748 # RAG + Kiln task sets — the Call Kiln API built-in tool is not listed.COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3761 # Only the active RAG config should be presentCOMMENT
MEDIUMapp/desktop/studio_server/eval_api.py64 # Treat empty-string and missing chain-of-thought instructions as equivalentCOMMENT
MEDIUMapp/desktop/studio_server/data_gen_api.py720 # the chosen prompt template (few-shot, chain-of-thought, saved prompts).STRING
MEDIUMapp/desktop/studio_server/data_gen_api.py720 # the chosen prompt template (few-shot, chain-of-thought, saved prompts).STRING
MEDIUMapp/desktop/studio_server/data_gen_api.py833 # on saved prompts / few-shot / prompt-optimization output it can beSTRING
MEDIUMapp/desktop/studio_server/tool_api.py292 # Add search tools (RAG)COMMENT
MEDIUMapp/desktop/studio_server/test_eval_api.py2499 # Only RAG template allows eval_configs_filter_id to be NoneCOMMENT
MEDIUMapp/desktop/studio_server/jobs/models.py133 # (e.g. RAG's four-phase breakdown). Kept as a dict on the wire so the coreCOMMENT
MEDIUMspecs/projects/git_sync_write_locks/architecture.md222### Threading `save_context` Through RAG ConstructionCOMMENT
MEDIUMlibs/core/README.md364## Taking Kiln RAG to productionCOMMENT
MEDIUMlibs/core/README.md377# Load your project and RAG configurationCOMMENT
MEDIUMlibs/core/README.md432### Deploy RAG without LlamaIndexCOMMENT
MEDIUMlibs/core/kiln_ai/tools/test_tool_registry.py203 # Create mock RAG configCOMMENT
MEDIUMlibs/core/kiln_ai/tools/test_tool_registry.py210 # Setup mock RAG configCOMMENT
MEDIUMlibs/core/kiln_ai/tools/test_tool_registry.py215 # Setup mock RAG toolCOMMENT
MEDIUMlibs/core/kiln_ai/tools/test_tool_registry.py228 # Test with RAG tool IDCOMMENT
MEDIUMlibs/core/kiln_ai/utils/dataset_import.py19# context window serializes to <10 MiB of text) while still bounding memoryCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/ml_model_list.py383 # models have rate limits, which become very relevant when doing heavy processing like in RAGCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/ml_model_list.py7985 # and let Kiln drive chain-of-thought via the multi-turn COT strategy.COMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_ollama_tools.py257 # Check that embedding model aliases are recognizedCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_ollama_tools.py260 # Check that embedding model aliases are NOT in the main model listsCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_prompt_builders.py471 # Should match regular prompt since no chain of thoughtCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_prompt_builders.py475 # Test chain of thought prompt builderCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py662 # Create a fully valid embedding model as baselineCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py665 # Case 1: Invalid embedding model - missing required field 'family'COMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py671 # Case 2: Invalid embedding model - invalid data type for required fieldCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py677 # Case 3: Invalid embedding model - completely malformedCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py680 # Case 4: Valid embedding model with one invalid provider (should keep model, skip invalid provider)COMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py752 # Check the first embedding model is fully intactCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py759 # Check embedding model with invalid provider has remaining valid providersCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py768 # Check embedding model with mixed providers has only the valid oneCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py691 # Case 5: Valid embedding model with mixed valid/invalid providers (should keep model and valid providers)COMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py716 # Case 6: Valid embedding model with all invalid providers (should keep model with empty providers)COMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py779 # Check embedding model with all invalid providers has empty providersCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py1056 # Create embedding model with mixed valid/invalid providersCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py1133 # Should have 1 embedding model with 2 valid providersCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py1145 # Should have logged 3 model provider validation warnings + 3 embedding model provider validation warnings + 3 reranCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/data_gen/data_gen_prompts.py263 - kiln_data_gen_part_text: ["# Tools & MCP\n\nKiln allows connecting to tools such as Kiln Search Tools (RAG) or third-CODE
MEDIUMlibs/core/kiln_ai/adapters/rag/test_progress.py418 # Test various RAG config combinationsCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/rag/test_progress.py622 # RAG config that filters for "python" tagCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/rag/test_progress.py648 # RAG config that filters for "python" OR "javascript"COMMENT
MEDIUMlibs/core/kiln_ai/adapters/rag/test_progress.py672 # RAG config that filters for "rust" tagCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/rag/test_progress.py742 # Two RAG configs with different tag filtersCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/rag/test_rag_runners.py2162 # Create RAG config that filters for "python" tagsCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/rag/test_rag_runners.py2215 # Create RAG config that filters for "rust" tagsCOMMENT
25 more matches not shown…
Decorative Section Separators72 hits · 258 pts
SeverityFileLineSnippetContext
MEDIUMchecks.sh40# ── Parallel check runner ────────────────────────────────────────────COMMENT
MEDIUMchecks.sh135# ── Kick off all checks ──────────────────────────────────────────────COMMENT
MEDIUMchecks.sh171# ── Wait and summarize ────────────────────────────────────────────────COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py226# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py228# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py47# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py49# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py67# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py69# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py271# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py273# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py389# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py391# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py406# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py408# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py451# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/conftest.py453# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py129# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py131# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py199# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py201# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py277# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py279# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py327# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py329# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py394# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py396# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py510# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py512# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py26# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py28# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py466# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py468# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py108# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py110# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py167# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py169# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py231# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py233# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py26# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py28# ---------------------------------------------------------------------------COMMENT
MEDIUM.agents/scripts/provider_utils.py31# ---------------------------------------------------------------------------COMMENT
MEDIUM.agents/scripts/provider_utils.py33# ---------------------------------------------------------------------------COMMENT
MEDIUM.agents/scripts/provider_utils.py100# ---------------------------------------------------------------------------COMMENT
MEDIUM.agents/scripts/provider_utils.py102# ---------------------------------------------------------------------------COMMENT
MEDIUM.agents/scripts/provider_utils.py125# ---------------------------------------------------------------------------COMMENT
MEDIUM.agents/scripts/provider_utils.py129# ---------------------------------------------------------------------------COMMENT
MEDIUM…n-check-finetune-deprecation/scripts/check_finetune.py55# ---------------------------------------------------------------------------COMMENT
MEDIUM…n-check-finetune-deprecation/scripts/check_finetune.py57# ---------------------------------------------------------------------------COMMENT
MEDIUM…n-check-finetune-deprecation/scripts/check_finetune.py81# ---------------------------------------------------------------------------COMMENT
MEDIUM…n-check-finetune-deprecation/scripts/check_finetune.py83# ---------------------------------------------------------------------------COMMENT
MEDIUM…n-check-finetune-deprecation/scripts/check_finetune.py172# ---------------------------------------------------------------------------COMMENT
MEDIUM…n-check-finetune-deprecation/scripts/check_finetune.py174# ---------------------------------------------------------------------------COMMENT
MEDIUM…n-check-finetune-deprecation/scripts/check_finetune.py273# ---------------------------------------------------------------------------COMMENT
MEDIUM…n-check-finetune-deprecation/scripts/check_finetune.py275# ---------------------------------------------------------------------------COMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_provider_tools.py1287# =============================================================================COMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_provider_tools.py1289# =============================================================================COMMENT
MEDIUM…pters/model_adapters/test_litellm_adapter_streaming.py831# ── Mocked variants (CI-friendly, no real API calls) ──────────────────────────COMMENT
MEDIUMlibs/core/kiln_ai/datamodel/test_basemodel.py1212# ============================================================================COMMENT
MEDIUMlibs/core/kiln_ai/datamodel/test_basemodel.py1214# ============================================================================COMMENT
12 more matches not shown…
Excessive Try-Catch Wrapping192 hits · 198 pts
SeverityFileLineSnippetContext
LOWapp/desktop/custom_tray.py15except Exception:CODE
LOWapp/desktop/custom_tray.py50 except Exception:CODE
LOWapp/desktop/desktop.py138 except Exception:CODE
LOWapp/desktop/studio_server/copilot_api.py438 except Exception:CODE
LOWapp/desktop/studio_server/copilot_api.py443 except Exception:CODE
LOWapp/desktop/studio_server/webhost.py24 except Exception:CODE
LOWapp/desktop/studio_server/webhost.py44 except Exception as e:CODE
MEDIUMapp/desktop/studio_server/webhost.py19def studio_path():CODE
LOWapp/desktop/studio_server/settings_api.py74 except Exception as e:CODE
LOWapp/desktop/studio_server/settings_api.py97 except Exception as e:CODE
LOWapp/desktop/studio_server/prompt_api.py43 except Exception as e:CODE
LOWapp/desktop/studio_server/finetune_api.py444 except Exception as e:CODE
LOWapp/desktop/studio_server/finetune_api.py784 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py81 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py98 except Exception:CODE
LOWapp/desktop/studio_server/provider_api.py1083 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1123 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1178 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1204 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1238 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1277 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1300 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1332 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1364 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1398 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1437 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1475 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1508 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1537 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1587 except Exception:CODE
LOWapp/desktop/studio_server/provider_api.py2153 except Exception:CODE
LOWapp/desktop/studio_server/data_gen_api.py845 except Exception:STRING
LOWapp/desktop/studio_server/tool_api.py325 except Exception:CODE
LOWapp/desktop/studio_server/tool_api.py984 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py209 except Exception as cleanup_error:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py279 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py334 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py402 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py485 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py597 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py665 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py713 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py754 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py802 except Exception as e:CODE
LOWapp/desktop/studio_server/run_config_api.py217 except Exception as e:CODE
LOWapp/desktop/studio_server/run_config_api.py382 except Exception:CODE
LOWapp/desktop/studio_server/chat/stream_session.py284 except Exception as e:CODE
LOWapp/desktop/studio_server/jobs/registry.py247 except Exception as exc:CODE
LOWapp/desktop/studio_server/jobs/registry.py430 except Exception:CODE
LOWapp/desktop/studio_server/jobs/registry.py466 except Exception:CODE
LOWapp/desktop/studio_server/jobs/error_log.py31 except Exception:CODE
LOWapp/desktop/studio_server/jobs/error_log.py57 except Exception:CODE
LOWapp/desktop/studio_server/jobs/error_log.py66 except Exception:CODE
LOWapp/desktop/util/resource_limits.py29 except Exception as e:CODE
LOWapp/desktop/git_sync/git_sync_manager.py73 except Exception:CODE
LOWapp/desktop/git_sync/git_sync_manager.py194 except Exception:CODE
LOWapp/desktop/git_sync/git_sync_manager.py239 except Exception as e:CODE
LOWapp/desktop/git_sync/git_sync_manager.py262 except Exception as e:CODE
LOWapp/desktop/git_sync/git_sync_manager.py285 except Exception as first_push_error:CODE
LOWapp/desktop/git_sync/git_sync_manager.py293 except Exception as fetch_err:CODE
132 more matches not shown…
Deep Nesting127 hits · 112 pts
SeverityFileLineSnippetContext
LOWapp/desktop/studio_server/finetune_api.py213CODE
LOWapp/desktop/studio_server/finetune_api.py283CODE
LOWapp/desktop/studio_server/finetune_api.py308CODE
LOWapp/desktop/studio_server/finetune_api.py413CODE
LOWapp/desktop/studio_server/test_generate_docs.py37CODE
LOWapp/desktop/studio_server/test_tool_api.py824CODE
LOWapp/desktop/studio_server/test_server.py273CODE
LOWapp/desktop/studio_server/agent_api.py228CODE
LOWapp/desktop/studio_server/provider_api.py255CODE
LOWapp/desktop/studio_server/provider_api.py1598CODE
LOWapp/desktop/studio_server/provider_api.py1675CODE
LOWapp/desktop/studio_server/provider_api.py1710CODE
LOWapp/desktop/studio_server/provider_api.py1802CODE
LOWapp/desktop/studio_server/provider_api.py1825CODE
LOWapp/desktop/studio_server/provider_api.py1989CODE
LOWapp/desktop/studio_server/provider_api.py275CODE
LOWapp/desktop/studio_server/provider_api.py420CODE
LOWapp/desktop/studio_server/provider_api.py487CODE
LOWapp/desktop/studio_server/provider_api.py688CODE
LOWapp/desktop/studio_server/eval_api.py600CODE
LOWapp/desktop/studio_server/eval_api.py1298CODE
LOWapp/desktop/studio_server/eval_api.py1445CODE
LOWapp/desktop/studio_server/data_gen_api.py227CODE
LOWapp/desktop/studio_server/data_gen_api.py647CODE
LOWapp/desktop/studio_server/tool_api.py277CODE
LOWapp/desktop/studio_server/tool_api.py455CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py342CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py617CODE
LOW…er_client/models/chat_completion_user_message_param.py46CODE
LOW…er_client/models/chat_completion_user_message_param.py88CODE
LOW…er_client/models/chat_completion_user_message_param.py96CODE
LOW…er/api_client/kiln_ai_server_client/models/task_run.py103CODE
LOW…er/api_client/kiln_ai_server_client/models/task_run.py263CODE
LOW…er/api_client/kiln_ai_server_client/models/task_run.py408CODE
LOW…els/chat_completion_assistant_message_param_wrapper.py59CODE
LOW…els/chat_completion_assistant_message_param_wrapper.py164CODE
LOW…els/chat_completion_assistant_message_param_wrapper.py194CODE
LOWapp/desktop/studio_server/chat/test_routes.py1039CODE
LOWapp/desktop/studio_server/chat/test_integration.py57CODE
LOWapp/desktop/studio_server/chat/test_integration.py177CODE
LOWapp/desktop/studio_server/chat/test_integration.py234CODE
LOWapp/desktop/studio_server/chat/test_integration.py334CODE
LOWapp/desktop/studio_server/chat/stream_session.py100CODE
LOWapp/desktop/studio_server/jobs/events.py87CODE
LOWapp/desktop/studio_server/jobs/error_log.py35CODE
LOWapp/desktop/git_sync/git_sync_api.py431CODE
LOWapp/desktop/git_sync/git_sync_api.py692CODE
LOWapp/desktop/git_sync/clone.py61CODE
LOWapp/desktop/git_sync/clone.py274CODE
LOWapp/desktop/git_sync/clone.py78CODE
LOWapp/desktop/git_sync/integration_tests/conftest.py486CODE
LOW…/desktop/git_sync/integration_tests/test_decorators.py163CODE
LOW.agents/scripts/provider_utils.py182CODE
LOW…n-check-finetune-deprecation/scripts/check_finetune.py120CODE
LOW…kills/kiln-check-deprecation/scripts/check_provider.py68CODE
LOW…kills/kiln-check-deprecation/scripts/check_provider.py149CODE
LOWlibs/core/kiln_ai/tools/test_mcp_session_manager.py830CODE
LOWlibs/core/kiln_ai/tools/mcp_session_manager.py334CODE
LOWlibs/core/kiln_ai/utils/logging.py98CODE
LOWlibs/core/kiln_ai/utils/config.py270CODE
67 more matches not shown…
Modern Structural Boilerplate90 hits · 91 pts
SeverityFileLineSnippetContext
LOWapp/desktop/desktop_server.py50logger = logging.getLogger(__name__)CODE
LOWapp/desktop/custom_tray.py6logger = logging.getLogger(__name__)CODE
LOWapp/desktop/desktop.py32logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/copilot_api.py81logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/finetune_api.py64logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/skill_api.py18logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/provider_api.py58logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/tool_api.py43logger = logging.getLogger(__name__)CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py54logger = logging.getLogger(__name__)CODE
LOW…tudio_server/api_client/kiln_ai_server_client/types.py54__all__ = ["UNSET", "File", "FileTypes", "RequestFiles", "Response", "Unset"]CODE
LOW…udio_server/api_client/kiln_ai_server_client/errors.py16__all__ = ["UnexpectedStatus"]CODE
LOWapp/desktop/studio_server/chat/sse_parser.py19logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/chat/tool_metadata.py8logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/chat/__init__.py16__all__ = [CODE
LOWapp/desktop/studio_server/chat/test_integration.py27logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/chat/stream_session.py27logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/jobs/registry.py28logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/jobs/events.py75 def set_snapshot_provider(self, provider: SnapshotProvider) -> None:CODE
LOWapp/desktop/util/resource_limits.py4logger = logging.getLogger(__name__)CODE
LOWapp/desktop/git_sync/git_sync_manager.py25logger = logging.getLogger(__name__)CODE
LOWapp/desktop/git_sync/registry.py14logger = logging.getLogger(__name__)CODE
LOWapp/desktop/git_sync/background_sync.py8logger = logging.getLogger(__name__)CODE
LOWapp/desktop/git_sync/git_sync_api.py55logger = logging.getLogger(__name__)CODE
LOWapp/desktop/git_sync/test_sse_invariants.py15logger = logging.getLogger(__name__)CODE
LOWapp/desktop/git_sync/middleware.py27logger = logging.getLogger(__name__)CODE
LOWapp/desktop/git_sync/oauth.py13logger = logging.getLogger(__name__)CODE
LOWapp/desktop/git_sync/clone.py20logger = logging.getLogger(__name__)CODE
LOWapp/desktop/git_sync/integration_tests/conftest.py34__all__ = [CODE
LOWlibs/core/kiln_ai/run_context.py20def set_agent_run_id(run_id: str) -> None:CODE
LOWlibs/core/kiln_ai/tools/mcp_session_manager.py22logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/tools/__init__.py4__all__ = [CODE
LOWlibs/core/kiln_ai/tools/built_in_tools/__init__.py9__all__ = [CODE
LOWlibs/core/kiln_ai/utils/dataset_import.py13logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/utils/async_job_runner.py6logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/utils/filesystem_cache.py9logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/utils/__init__.py10__all__ = [CODE
LOWlibs/core/kiln_ai/utils/test_dataset_import.py31logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/cli/__init__.py3__all__ = ["app"]CODE
LOWlibs/core/kiln_ai/adapters/ollama_tools.py12logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/adapters/__init__.py34__all__ = [CODE
LOWlibs/core/kiln_ai/adapters/provider_tools.py27logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/adapters/remote_config.py28logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/adapters/test_prompt_builders.py45logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/adapters/fine_tune/__init__.py9__all__ = [CODE
LOW…/core/kiln_ai/adapters/fine_tune/fireworks_finetune.py19logger = logging.getLogger(__name__)CODE
LOW…e/kiln_ai/adapters/fine_tune/test_dataset_formatter.py42logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/adapters/fine_tune/vertex_finetune.py19logger = logging.getLogger(__name__)CODE
LOW…ore/kiln_ai/adapters/model_adapters/litellm_adapter.py71logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/adapters/model_adapters/__init__.py13__all__ = [CODE
LOW…pters/model_adapters/test_litellm_adapter_streaming.py32logger = logging.getLogger(__name__)CODE
LOW…core/kiln_ai/adapters/model_adapters/adapter_stream.py30logger = logging.getLogger(__name__)CODE
LOW…s/core/kiln_ai/adapters/model_adapters/base_adapter.py801 def update_run_config_unknown_structured_output_mode(self) -> None:CODE
LOWlibs/core/kiln_ai/adapters/parsers/__init__.py10__all__ = ["base_parser", "json_parser", "r1_parser"]CODE
LOWlibs/core/kiln_ai/adapters/chat/__init__.py14__all__ = [CODE
LOWlibs/core/kiln_ai/adapters/chunkers/__init__.py9__all__ = [CODE
LOWlibs/core/kiln_ai/adapters/chunkers/base_chunker.py9logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/adapters/data_gen/__init__.py11__all__ = ["data_gen_task"]CODE
LOW…e/kiln_ai/adapters/embedding/base_embedding_adapter.py10logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/adapters/rag/progress.py19logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/adapters/rag/rag_runners.py51logger = logging.getLogger(__name__)CODE
30 more matches not shown…
Cross-File Repetition18 hits · 90 pts
SeverityFileLineSnippetContext
HIGHapp/desktop/git_sync/errors.py0git authentication failed or expired (bad/expired token, 401/403).STRING
HIGHspecs/projects/git_auth_recovery/architecture.md0git authentication failed or expired (bad/expired token, 401/403).STRING
HIGHspecs/projects/git_auth_recovery/phase_plans/phase_1.md0git authentication failed or expired (bad/expired token, 401/403).STRING
HIGHspecs/projects/agent_approvals/architecture.md0raised when an endpoint has no known policy (fail-safe block).STRING
HIGHspecs/projects/agent_approvals/functional_spec.md0raised when an endpoint has no known policy (fail-safe block).STRING
HIGH…server/kiln_server/utils/agent_checks/policy_lookup.py0raised when an endpoint has no known policy (fail-safe block).STRING
HIGHspecs/projects/templates/architecture.md0validate that the template compiles. raises valueerror on syntax error.STRING
HIGHspecs/projects/templates/functional_spec.md0validate that the template compiles. raises valueerror on syntax error.STRING
HIGHlibs/core/kiln_ai/utils/jinja_engine.py0validate that the template compiles. raises valueerror on syntax error.STRING
HIGHspecs/projects/templates/architecture.md0validate that a jinja2 expression compiles. raises valueerror on syntax error.STRING
HIGHspecs/projects/templates/functional_spec.md0validate that a jinja2 expression compiles. raises valueerror on syntax error.STRING
HIGHlibs/core/kiln_ai/utils/jinja_engine.py0validate that a jinja2 expression compiles. raises valueerror on syntax error.STRING
HIGHlibs/core/kiln_ai/adapters/repair/test_repair_task.py0{ "type": "object", "properties": { "setup": { "description": "the setup of the joke", "title": "setup", "type": "stringSTRING
HIGHlibs/core/kiln_ai/datamodel/test_model_perf.py0{ "type": "object", "properties": { "setup": { "description": "the setup of the joke", "title": "setup", "type": "stringSTRING
HIGHlibs/core/kiln_ai/datamodel/test_json_schema.py0{ "type": "object", "properties": { "setup": { "description": "the setup of the joke", "title": "setup", "type": "stringSTRING
HIGHlibs/core/kiln_ai/datamodel/test_extraction_model.py0we added discriminated union and the store_type in the properties, but older configs did not have the store_type in the STRING
HIGHlibs/core/kiln_ai/datamodel/test_chunk_models.py0we added discriminated union and the store_type in the properties, but older configs did not have the store_type in the STRING
HIGHlibs/core/kiln_ai/datamodel/test_vector_store.py0we added discriminated union and the store_type in the properties, but older configs did not have the store_type in the STRING
Redundant / Tautological Comments45 hits · 78 pts
SeverityFileLineSnippetContext
LOWconftest.py99 # Check if we're running manually (eg, in vscode)COMMENT
LOWconftest.py108 # Check if all of the items are the same prefix, expluding a.b.c[param]COMMENT
LOWapp/desktop/linux_installer.sh32# Check if we're on a supported platformCOMMENT
LOWapp/desktop/linux_installer.sh105 # Check if we can write to current directoryCOMMENT
LOWapp/desktop/linux_installer.sh239 # Check if the Kiln executable existsCOMMENT
LOWapp/desktop/linux_installer.sh245 # Check if this is an upgradeCOMMENT
LOWapp/desktop/studio_server/finetune_api.py874 # Check if the model supports tools via 'supportTools'COMMENT
LOWapp/desktop/studio_server/test_provider_api.py1285 # Check if all built-in models are present in the responseCOMMENT
LOWapp/desktop/studio_server/test_provider_api.py1291 # Check if the number of models in the response matches the number of built-in modelsCOMMENT
LOWapp/desktop/studio_server/test_provider_api.py3379 # Check if all built-in embedding models are present in the responseCOMMENT
LOWapp/desktop/studio_server/test_provider_api.py3385 # Check if the number of models in the response matches the number of built-in embedding modelsCOMMENT
LOWapp/desktop/studio_server/test_provider_api.py3646 # Check if all built-in reranker models are present in the responseCOMMENT
LOWapp/desktop/studio_server/test_provider_api.py3652 # Check if the number of models in the response matches the number of built-in reranker modelsCOMMENT
LOWapp/desktop/studio_server/provider_api.py697 # Check if provider is configuredCOMMENT
LOWapp/desktop/studio_server/eval_api.py1351 # Check if we should count this eval_run. Not every eval_run has to go into the stats:COMMENT
LOWapp/desktop/studio_server/eval_api.py1544 # Check if this dataset_id is expected for this evalCOMMENT
LOWapp/desktop/studio_server/data_gen_api.py344 # Set parent to task to ensure the correct path is usedCOMMENT
LOWapp/desktop/studio_server/tool_api.py505 # Check if the tool server has missing secrets (e.g. new user syncing existing project)COMMENT
LOW…p/desktop/studio_server/prompt_optimization_job_api.py432 # Check if eval has a default configCOMMENT
LOWlibs/core/kiln_ai/tools/mcp_session_manager.py340 # Check if the exception itself is of the target typeCOMMENT
LOWlibs/core/kiln_ai/tools/tool_registry.py54 # Check if this looks like an MCP or Kiln Task tool ID that requires a projectCOMMENT
LOWlibs/core/kiln_ai/utils/logging.py71 # Print the messages for the request in LiteLLM Message list, pretty printCOMMENT
LOWlibs/core/kiln_ai/utils/logging.py137 # Check if we already have a custom litellm loggerCOMMENT
LOWlibs/core/kiln_ai/utils/logging.py155 # Set formatter to match the default formattingCOMMENT
LOWlibs/core/kiln_ai/utils/dataset_import.py159 # Assign tags to runsCOMMENT
LOWlibs/core/kiln_ai/utils/dataset_import.py239 # Check if we have headersCOMMENT
LOWlibs/core/kiln_ai/utils/validation.py57 # Check if name is None or emptyCOMMENT
LOWlibs/core/kiln_ai/utils/validation.py64 # Check if name contains only lowercase letters, numbers, and underscoresCOMMENT
LOWlibs/core/kiln_ai/adapters/prompt_builders.py494 # Check if the prompt_id matches any enum valueCOMMENT
LOWlibs/core/kiln_ai/adapters/test_prompt_adaptors.py62 # Check if Ollama API is runningCOMMENT
LOWlibs/core/kiln_ai/adapters/test_prompt_adaptors.py71 # Check if Ollama API is runningCOMMENT
LOWlibs/core/kiln_ai/adapters/test_prompt_adaptors.py80 # Check if Ollama API is runningCOMMENT
LOWlibs/core/kiln_ai/adapters/test_prompt_adaptors.py89 # Check if Ollama API is runningCOMMENT
LOWlibs/core/kiln_ai/adapters/test_remote_config.py1415 # Check if uv is availableCOMMENT
LOWlibs/core/kiln_ai/adapters/test_remote_config.py1487 # Check if the test passedSTRING
LOW…/core/kiln_ai/adapters/fine_tune/fireworks_finetune.py440 # Check if the model is already deployedCOMMENT
LOW…e/kiln_ai/adapters/fine_tune/test_together_finetune.py43 # Check if any status is missing from categorizationCOMMENT
LOW…e/kiln_ai/adapters/fine_tune/test_together_finetune.py49 # Check if any status appears in multiple categoriesCOMMENT
LOWlibs/core/kiln_ai/adapters/fine_tune/vertex_finetune.py178 # Check if bucket exists and create it if it doesn'tCOMMENT
LOW…ore/kiln_ai/adapters/model_adapters/litellm_adapter.py320 # Check if we were interrupted by tool callsCOMMENT
LOWlibs/core/kiln_ai/adapters/eval/test_eval_runner.py350 # Set filter to match the taskCOMMENT
LOWlibs/core/kiln_ai/adapters/eval/test_eval_runner.py442 # Set filter to match the taskCOMMENT
LOWlibs/core/kiln_ai/datamodel/external_tool_server.py414 # Check if secrets are already savedCOMMENT
LOWlibs/core/kiln_ai/datamodel/task_output.py78 # Check if we have the old format (dict of floats)COMMENT
LOW…bs/core/kiln_ai/datamodel/test_external_tool_server.py713 # Set ID to test retrieval from configCOMMENT
Structural Annotation Overuse38 hits · 69 pts
SeverityFileLineSnippetContext
LOW.config/legacy_guides/Fine Tuning LLM Models Guide.md42### Step 1: Define your Task and GoalsCOMMENT
LOW.config/legacy_guides/Fine Tuning LLM Models Guide.md50### Step 2: Generate Training Data with Synthetic Data GenerationCOMMENT
LOW.config/legacy_guides/Fine Tuning LLM Models Guide.md62### Step 3: Select Models to Fine TuneCOMMENT
LOW.config/legacy_guides/Fine Tuning LLM Models Guide.md74### Step 4: Dispatch Training JobsCOMMENT
LOW.config/legacy_guides/Fine Tuning LLM Models Guide.md82### Step 5: Deploy and Run Your ModelsCOMMENT
LOWapp/desktop/studio_server/test_repair_api.py303 # Step 1: original Run.COMMENT
LOWapp/desktop/studio_server/test_repair_api.py318 # Step 2: Repair, hitting the real endpoint with the persisted run.COMMENT
LOWapp/desktop/studio_server/test_tool_api.py939 # Step 1: Create a tool serverCOMMENT
LOWapp/desktop/studio_server/test_tool_api.py953 # Step 1: Create the tool serverCOMMENT
LOWapp/desktop/studio_server/test_tool_api.py964 # Step 2: Verify it appears in the listCOMMENT
LOWspecs/projects/mcp_sessions/implementation_plan.md15## Step 1: Create `mcp_session_context.py`COMMENT
LOWspecs/projects/mcp_sessions/implementation_plan.md58## Step 2: Add session caching to `MCPSessionManager`COMMENT
LOWspecs/projects/mcp_sessions/implementation_plan.md272## Step 3: Update `BaseAdapter.invoke_returning_run_output()`COMMENT
LOWspecs/projects/mcp_sessions/implementation_plan.md338## Step 4: Update `MCPServerTool` to use session contextCOMMENT
LOWspecs/projects/mcp_sessions/implementation_plan.md419## Step 5: Write comprehensive testsCOMMENT
LOWspecs/projects/mcp_sessions/implementation_plan.md460## Step 6: Verification & quality checksCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md13### Step 1: Task paths — singular → plural (3 endpoints)COMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md19### Step 2: Prompt paths — `/task` → `/tasks` (3 endpoints)COMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md26### Step 3: Spec path — singular → plural (1 endpoint)COMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md30### Step 4: Eval paths — `/eval` → `/evals` (all eval endpoints + sub-paths)COMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md47### Step 5: Run config path unification (3 endpoints)COMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md55### Step 6: Repair endpoint path renames (2 endpoints)COMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md60### Step 7: GET → POST for provider connect (2 endpoints)COMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md65### Step 8: Update backend testsCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md75### Step 9: Update frontend TypeScript/SvelteCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md81### Step 10: Regenerate api_schema.d.tsCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_4.md84### Step 11: Run lint, format, testsCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_3.md15### Step 1: Core models in `basemodel.py`COMMENT
LOWspecs/projects/document_api/phase_plans/phase_3.md18### Step 2: High-value domain modelsCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_3.md25### Step 3: Extraction and document modelsCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_3.md33### Step 4: Spec and prompt modelsCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_3.md41### Step 5: Remaining datamodel filesCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_3.md50### Step 6: Server API request/response modelsCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_3.md57### Step 7: Desktop server API request/response modelsCOMMENT
LOWspecs/projects/document_api/phase_plans/phase_3.md72### Step 8: Run lint, format, typecheck, testsCOMMENT
LOWlibs/core/README.md270# Step 1: Create or Load a Task -- choose one of the following 1.A or 1.BCOMMENT
LOWlibs/core/README.md284# Step 2: Create an Adapter to run the task, with a specific model and providerCOMMENT
LOWlibs/core/README.md287# Step 3: Invoke the Adapter to run the taskCOMMENT
Cross-Language Confusion14 hits · 62 pts
SeverityFileLineSnippetContext
HIGHapp/desktop/studio_server/data_gen_api.py417 # we do not save the TaskRun to disk, so the ID is null, but we needSTRING
HIGHapp/desktop/git_sync/conftest.py86 remote.push([f"refs/heads/{branch}"])CODE
HIGHapp/desktop/git_sync/git_sync_manager.py460 remote.push([f"refs/heads/{branch_name}"], callbacks=callbacks)CODE
HIGHapp/desktop/git_sync/clone.py400 remote.push([f"refs/heads/{branch_name}"], callbacks=push_cb)CODE
HIGHapp/desktop/git_sync/clone.py462 remote.push([f"refs/heads/{branch_name}"], callbacks=push_cb)CODE
HIGH…ktop/git_sync/integration_tests/test_crash_recovery.py126 remote.push([f"+refs/heads/{branch}"])CODE
HIGHlibs/core/kiln_ai/adapters/parsers/test_json_parser.py66 "null": null,CODE
HIGHlibs/core/kiln_ai/adapters/repair/test_repair_task.py48 "default": null,CODE
HIGHlibs/core/kiln_ai/adapters/repair/test_repair_task.py92 output='{"setup": "Why did the chicken cross the road?", "punchline": "To get to the other side", "rating": STRING
HIGHlibs/core/kiln_ai/adapters/repair/test_repair_task.py126 == '{"setup": "Why did the chicken cross the road?", "punchline": "To get to the other side", "rating": null}'STRING
HIGHlibs/core/kiln_ai/datamodel/test_example_models.py1093 set (typically to null). It must still load — Pydantic's defaultSTRING
HIGHlibs/core/kiln_ai/datamodel/test_model_perf.py37 "default": null,CODE
HIGHlibs/core/kiln_ai/datamodel/test_json_schema.py45 "default": null,CODE
HIGHlibs/server/kiln_server/test_run_api.py1761 '{"train": null, "test": 0.5}',CODE
Fake / Example Data51 hits · 46 pts
SeverityFileLineSnippetContext
LOWapp/desktop/studio_server/test_tool_api.py2932 "DATABASE_PASSWORD": "placeholder",CODE
LOWapp/desktop/studio_server/test_tool_api.py2971 "DATABASE_PASSWORD": "placeholder",CODE
LOWapp/desktop/git_sync/integration_tests/test_fixtures.py156 sig = pygit2.Signature("Test", "test@test.com")CODE
LOWapp/web_ui/src/lib/git_sync/url_utils.test.ts51 expect(try_convert_ssh_to_https("user@example.com")).toBe(CODE
LOWapp/web_ui/src/lib/git_sync/url_utils.test.ts52 "user@example.com",CODE
LOWlibs/core/README.md200 properties={"created_by": "John Doe"},CODE
LOWlibs/core/README.md206 properties={"created_by": "Jane Doe"},CODE
LOW…i/adapters/vector_store_loaders/test_lancedb_loader.py37 ["Lorem ipsum dolor sit amet, consectetur adipiscing elit." for _ in range(n)]CODE
LOW…i/adapters/vector_store_loaders/test_lancedb_loader.py37 ["Lorem ipsum dolor sit amet, consectetur adipiscing elit." for _ in range(n)]CODE
LOW…pters/vector_store_loaders/test_vector_store_loader.py31 ["Lorem ipsum dolor sit amet, consectetur adipiscing elit." for _ in range(n)]CODE
LOW…pters/vector_store_loaders/test_vector_store_loader.py31 ["Lorem ipsum dolor sit amet, consectetur adipiscing elit." for _ in range(n)]CODE
LOWlibs/core/kiln_ai/adapters/repair/test_repair_task.py89 type=DataSourceType.human, properties={"created_by": "Jane Doe"}STRING
LOWlibs/core/kiln_ai/datamodel/test_example_models.py36 properties={"created_by": "John Doe"},CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py42 properties={"created_by": "John Doe"},CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py54 assert task_run.input_source.properties == {"created_by": "John Doe"}CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py57 assert task_run.output.source.properties == {"created_by": "John Doe"}CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py86 properties={"created_by": "John Doe"},CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py92 properties={"wrong_key": "John Doe"},CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py236 == '{"name": "John Doe", "age": 31}'CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py404 valid_task_output.input = '{"name": "John Doe", "age": "thirty"}'CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py410 loaded_task_output.input = '{"name": "John Doe", "age": "thirty"}'CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py416 input='{"name": "John Doe", "age": "thirty"}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py438 properties={"created_by": "John Doe"},CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py442 assert output.source.properties["created_by"] == "John Doe"CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py165 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py184 output='{"name": "John Doe", "age": 31}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py192 output='{"name": "John Doe", "age": 31}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py317 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py331 task_output.output.output = '{"name": "John Doe", "age": "thirty"}'CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py340 loaded_task_output.output.output = '{"name": "John Doe", "age": "forty"}'CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py353 output='{"name": "John Doe", "age": "thirty"}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py386 input='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py679 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py687 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py707 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py715 output='{"name": "John Doe", "age": 30', # missing closing braceCODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py733 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py741 output='{"name": "John Doe", "age": "thirty"}', # invalid schemaCODE
LOWlibs/core/kiln_ai/datamodel/test_datasource.py9 type=DataSourceType.human, properties={"created_by": "John Doe"}CODE
LOWlibs/core/kiln_ai/datamodel/test_datasource.py12 assert data_source.properties["created_by"] == "John Doe"CODE
LOWlibs/core/kiln_ai/datamodel/test_datasource.py86 "created_by": "John Doe",CODE
LOWlibs/core/kiln_ai/datamodel/test_datasource.py102 "created_by": "John Doe",CODE
LOWlibs/server/kiln_server/test_run_api.py860 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py865 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py872 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py419 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py424 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py462 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py467 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py583 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py588 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
Hallucination Indicators2 hits · 25 pts
SeverityFileLineSnippetContext
CRITICAL…iln_ai/tools/built_in_tools/test_kiln_api_call_tool.py143 query = route.calls.last.request.url.query.decode()CODE
CRITICAL…iln_ai/tools/built_in_tools/test_kiln_api_call_tool.py709 query = route.calls.last.request.url.query.decode()CODE
AI Slop Vocabulary14 hits · 23 pts
SeverityFileLineSnippetContext
MEDIUMapp/web_ui/src/routes/(app)/sidebar_rail_item.test.ts8// `container` so the assertions are robust to portaling. Also explicitlyCOMMENT
MEDIUMlibs/core/kiln_ai/tools/test_rag_tools.py900 multiline_description = """This is a comprehensive search tool that:CODE
LOWlibs/core/kiln_ai/utils/dataset_import.py184 # note that we don't persist the run yet, we just create and validate itCOMMENT
LOWlibs/core/kiln_ai/utils/filesystem_cache.py26 # worst case we just return NoneCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/test_adapter_registry.py507 """Mock all config values for comprehensive testing."""STRING
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py519 """Test comprehensive handling of invalid models and providers during deserialization."""STRING
MEDIUMlibs/core/kiln_ai/adapters/test_remote_config.py660 """Test comprehensive handling of invalid embedding models and providers during deserialization."""STRING
LOW…e/kiln_ai/adapters/fine_tune/test_dataset_formatter.py759 # It should just use the reasoning output if both thinking and chain_of_thought are presentCOMMENT
LOW…e/kiln_ai/adapters/fine_tune/test_dataset_formatter.py812 # It should just use the reasoning output if both thinking and chain_of_thought are presentCOMMENT
LOW…/adapters/model_adapters/test_litellm_adapter_tools.py236 # Usage should add up, not just return the last one.COMMENT
LOW…/adapters/model_adapters/test_litellm_adapter_tools.py325 # Usage should add up, not just return the last one.COMMENT
LOWlibs/core/kiln_ai/adapters/parsers/r1_parser.py27 # If they do it already, great just return. If not we parse it ourselves. Not ideal, but better than upstream chCOMMENT
LOW…/kiln_ai/adapters/vector_store/test_lancedb_adapter.py950 # before inserting data, we should simply return an empty listCOMMENT
MEDIUMlibs/core/kiln_ai/datamodel/strict_mode.py8# Strict mode enables extra validations that we want to enforce in Kiln App (and any other client that wants best practiCOMMENT
Over-Commented Block14 hits · 14 pts
SeverityFileLineSnippetContext
LOWapp/desktop/studio_server/data_gen_api.py741 if isinstance(sample_input, (dict, list))COMMENT
LOWapp/desktop/studio_server/jobs/registry.py81 self._cancel_intent: set[str] = set()COMMENT
LOWapp/web_ui/playwright.config.ts61 // name: 'webkit',COMMENT
LOW…_ui/src/lib/ui/animations/questioning_animation.svelte101 /* ========== CONTAINER 1 - Visible on initial load ========== */COMMENT
LOW…_ui/src/lib/ui/animations/questioning_animation.svelte121 #c2-connector-3,COMMENT
LOW…ct_id]/[task_id]/data_guide_setup/guide_preview.svelte21 export let guide: string = ""COMMENT
LOWlibs/core/setup.cfg1# empty, but needed by setuptoolsCOMMENT
LOWlibs/core/kiln_ai/adapters/ml_model_list.py7621 # structured_output_mode=StructuredOutputMode.json_instructions,COMMENT
LOWlibs/core/kiln_ai/adapters/ml_model_list.py7641 name=ModelName.kimi_k2_5,COMMENT
LOW…/core/kiln_ai/adapters/vector_store/lancedb_helpers.py61 "kiln_doc_id": document_id,COMMENT
LOWlibs/core/kiln_ai/adapters/eval/test_g_eval_data.py1# Saved a real RunOutput, with real logprobs via:COMMENT
LOWlibs/server/setup.cfg1# empty, but needed by setuptoolsCOMMENT
LOW.github/workflows/windows_release_build.yml41 # # for source-map upload (web bundle). The desktop python bundleCOMMENT
LOW.github/workflows/build_desktop.yml41 # Use GH python version (includes TK/TCL)COMMENT
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH…ore/kiln_ai/adapters/chunkers/test_semantic_chunker.py284 # random paragraphs generated by ChatGPT - the idea is they are about very different topics so shouldCOMMENT
Verbosity Indicators5 hits · 6 pts
SeverityFileLineSnippetContext
LOWapp/desktop/studio_server/test_repair_api.py303 # Step 1: original Run.COMMENT
LOWapp/desktop/studio_server/test_repair_api.py318 # Step 2: Repair, hitting the real endpoint with the persisted run.COMMENT
LOWapp/desktop/studio_server/test_tool_api.py939 # Step 1: Create a tool serverCOMMENT
LOWapp/desktop/studio_server/test_tool_api.py953 # Step 1: Create the tool serverCOMMENT
LOWapp/desktop/studio_server/test_tool_api.py964 # Step 2: Verify it appears in the listCOMMENT
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…project_id]/add_tools/local_mcp/edit_local_tool.svelte352 info_description="The value of the environment variable, such as 'your-api-key-here'"CODE
AI Structural Patterns3 hits · 2 pts
SeverityFileLineSnippetContext
LOWlibs/core/kiln_ai/utils/pdf_utils.py81CODE
LOWlibs/core/kiln_ai/utils/test_wandb_utils.py16CODE
LOWlibs/server/kiln_server/document_api.py215CODE
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOW…op/studio_server/api_client/test_kiln_server_client.py166 async def handle_request(request: httpx.Request) -> httpx.Response:CODE
LOWlibs/server/kiln_server/run_api.py404 async def run_task(CODE
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMapp/desktop/studio_server/chat/test_stream_session.py90CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWlibs/core/kiln_ai/datamodel/basemodel.py293# Usage:COMMENT