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.2 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of Kiln-AI/Kiln, a Python project with 5,037 GitHub stars. SynthScan v2.0 examined 520,432 lines of code across 2261 source files, recording 7622 pattern matches distributed across 25 syntactic categories. The overall adjusted score of 17.2 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.2
Adjusted Score
17.2
Raw Score
100%
Time Factor
2026-08-28
Last Push
5.0K
Stars
Python
Language
520.4K
Lines of Code
2.3K
Files
7.6K
Pattern Hits
2026-08-29
Scan Date
0.06
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 140MEDIUM 685LOW 6795

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 7622 distinct pattern matches across 25 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 Identifiers5578 hits · 4810 pts
SeverityFileLineSnippetContext
LOWconftest.py139def 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_dev_server.py107def test_launcher_does_not_import_the_app_tree():STRING
LOWapp/desktop/test_dev_server.py122def test_serves_the_app_from_the_dev_app_module(run_dev_server_main):STRING
LOWapp/desktop/test_dev_server.py142def test_kiln_port_is_exported_for_reload_workers(run_dev_server_main):STRING
LOWapp/desktop/test_dev_server.py151def test_no_kiln_port_leaves_the_configured_port_alone(run_dev_server_main):STRING
LOWapp/desktop/test_dev_server.py160def test_launcher_sets_the_dev_env_vars(run_dev_server_main):STRING
LOWapp/desktop/test_dev_server.py169def test_dev_app_sets_dev_env_vars_before_importing_the_app(env_when_app_built):STRING
LOWapp/desktop/test_dev_server.py178def test_set_dev_env_vars_keeps_an_explicit_skip_remote_model_list():STRING
LOWapp/desktop/test_dev_server.py188def test_set_dev_env_vars_overrides_the_dev_mode_flags(env_var):STRING
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/copilot_api.py190async def _get_data_guide_job_status(client: AuthenticatedClient, job_id: str) -> str:CODE
LOWapp/desktop/studio_server/copilot_api.py245async def _get_data_guide_job_result(client: AuthenticatedClient, job_id: str) -> str:CODE
LOWapp/desktop/studio_server/copilot_api.py374def _validate_structured_examples(input_json_schema: str, examples: list[str]) -> None:CODE
LOWapp/desktop/studio_server/test_run_config_api.py143def test_validate_input_transform_template_valid(client):CODE
LOWapp/desktop/studio_server/test_run_config_api.py154def test_validate_input_transform_template_invalid(client):CODE
LOWapp/desktop/studio_server/test_run_config_api.py167def test_validate_input_transform_template_empty(client):CODE
LOWapp/desktop/studio_server/test_run_config_api.py178def test_validate_mcp_input_schema_plaintext_success(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py203def test_validate_mcp_input_schema_plaintext_fails(mock_task, tool_schema, error_match):CODE
LOWapp/desktop/studio_server/test_run_config_api.py209def test_validate_mcp_input_schema_structured_success(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py221def test_validate_mcp_input_schema_structured_fails(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py230def test_validate_mcp_output_schema_success(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py258def test_validate_mcp_output_schema_fails(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py267def test_load_mcp_tool_success(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py285def test_load_mcp_tool_fails_not_mcp_tool_id(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py297def test_load_mcp_tool_fails_wrong_type(mock_task):CODE
LOWapp/desktop/studio_server/test_run_config_api.py314async def test_load_mcp_input_schema_success():CODE
LOWapp/desktop/studio_server/test_run_config_api.py325async def test_load_mcp_input_schema_fails():CODE
LOWapp/desktop/studio_server/test_run_config_api.py338async def test_load_mcp_output_schema_success():CODE
LOWapp/desktop/studio_server/test_run_config_api.py352async def test_load_mcp_output_schema_fails():CODE
LOWapp/desktop/studio_server/test_run_config_api.py360def test_create_task_from_tool_plaintext(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py417def test_create_task_from_tool_structured(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py483def test_create_task_from_tool_sanitizes_names(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py549def test_create_task_from_tool_invalid_tool(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py580def test_create_mcp_run_config_success(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py634def test_create_mcp_run_config_plaintext_success(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py699def test_create_mcp_run_config_input_schema_mismatch(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py757def test_tasks_compatible_with_tool_mixed_results(client, project_and_tasks):CODE
LOWapp/desktop/studio_server/test_run_config_api.py812def test_tasks_compatible_with_tool_invalid_tool(client, project_and_tasks):CODE
LOWapp/desktop/studio_server/test_run_config_api.py832def test_tasks_compatible_with_tool_empty_project(client, tmp_path):CODE
LOWapp/desktop/studio_server/test_run_config_api.py936def test_schemas_compatible_true(task_schema, tool_schema, description):CODE
LOWapp/desktop/studio_server/test_run_config_api.py977def test_schemas_compatible_false(task_schema, tool_schema, description):CODE
LOWapp/desktop/studio_server/test_run_config_api.py981def test_resolve_mcp_tool_from_id_success():CODE
LOWapp/desktop/studio_server/test_run_config_api.py1006def test_resolve_mcp_tool_from_id_not_mcp():CODE
LOWapp/desktop/studio_server/test_run_config_api.py1014def test_create_mcp_run_config_properties():CODE
LOWapp/desktop/studio_server/test_run_config_api.py1038def test_create_mcp_run_config_properties_no_output_schema():CODE
LOWapp/desktop/studio_server/test_repair_api.py100def mock_repair_task_run_human_edited(improvement_task, data_source):CODE
LOWapp/desktop/studio_server/test_repair_api.py192def test_repair_run_missing_model_info(CODE
LOWapp/desktop/studio_server/test_repair_api.py215def test_repair_run_human_source(CODE
LOWapp/desktop/studio_server/test_repair_api.py268 async def mock_acompletion_checking_response(self, **kwargs):CODE
5518 more matches not shown…
Decorative Section Separators294 hits · 1004 pts
SeverityFileLineSnippetContext
MEDIUMchecks.sh40# ── Parallel check runner ────────────────────────────────────────────COMMENT
MEDIUMchecks.sh135# ── Kick off all checks ──────────────────────────────────────────────COMMENT
MEDIUMchecks.sh171# ── Wait and summarize ────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_startup.sh71# ── Containers only ───────────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_startup.sh117# ── Locate the checkout ───────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_startup.sh157# ── Was this machine provisioned by setup_env.sh? ─────────────────────────────COMMENT
MEDIUM.config/utils/setup_startup.sh184# ── Hard dependencies ─────────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_startup.sh215# ── Agent configuration ───────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_startup.sh238# ── Pin the Python version ────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_startup.sh263# ── Seed node_modules from the VM's warm tree ─────────────────────────────────COMMENT
MEDIUM.config/utils/setup_startup.sh400# ── Sync this branch ──────────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_startup.sh463# ── Verify what the environment setup was supposed to provide ─────────────────COMMENT
MEDIUM.config/utils/setup_startup.sh501# ── Playwright ────────────────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh31# ── CONFIGURATION ─────────────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh43# ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh73# ── Project root discovery ────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh186# ── uv version ────────────────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh259# ── Python ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh269# ── Warm this machine's caches ────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh382# ── Run setup_startup.sh from a Claude Code SessionStart hook ─────────────────COMMENT
MEDIUM.config/utils/setup_env.sh612# ── Playwright ────────────────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh856# ── Everything below here needs a checkout ────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh900# ── Dependencies ──────────────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh936# ── Agent configuration ───────────────────────────────────────────────────────COMMENT
MEDIUM.config/utils/setup_env.sh956# ── Optional workspace tooling ────────────────────────────────────────────────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.py128# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py130# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py198# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py200# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py276# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py278# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py326# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py328# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py391# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py393# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py507# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py509# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py25# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py27# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py463# ---------------------------------------------------------------------------COMMENT
MEDIUM…ktop/git_sync/integration_tests/test_crash_recovery.py465# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py107# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py109# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py166# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py168# ---------------------------------------------------------------------------COMMENT
MEDIUMapp/desktop/git_sync/integration_tests/test_fixtures.py230# ---------------------------------------------------------------------------COMMENT
234 more matches not shown…
Self-Referential Comments270 hits · 797 pts
SeverityFileLineSnippetContext
MEDIUMapp/desktop/linux_installer.sh190 # Create the desktop entry fileCOMMENT
MEDIUM…ktop/studio_server/test_prompt_optimization_job_api.py2611 # Create a target run configCOMMENT
MEDIUM…ktop/studio_server/test_prompt_optimization_job_api.py2886 # Create a promptCOMMENT
MEDIUM…ktop/studio_server/test_prompt_optimization_job_api.py2925 # Create a run configCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3647 # Create an MCP tool server to trigger the RAG set inclusionCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3713 # Create a RAG configCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4295 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4304 # Create a run config with ID "default" for the taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4381 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4390 # Create a run config with ID "default" for the taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4431 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4440 # Create a run config with ID "default" for the taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4553 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4562 # Create a run config with ID "default" for the taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4620 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4629 # Create a run config for the taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py387 # Create the tool with empty toolsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py443 # Create the tool with successful validationCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py583 # Create the tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py723 # Create a mapping of server URLs to their toolsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py815 # Create a tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py829 # Create the tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1299 # Create a mock ExternalToolServerCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1332 # Create a mock ExternalToolServerCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1354 # Create a mock ExternalToolServerCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1376 # Create a mock ExternalToolServerCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1400 # Create a mock ExternalToolServer with kiln_task typeCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1665 # Create a tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1803 # Create the tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1927 # Create a tool server with secret headersCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py1947 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2032 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2077 # Create a tool server firstCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2093 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2137 # Create a tool server with secret headersCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2157 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2600 # Create a local MCP tool server with secret env varsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2621 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2668 # Create a local MCP tool server without secret env varsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2685 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2728 # Create a local MCP tool server with secret env varsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2749 # Create the tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2790 # Create a local MCP tool server firstCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2807 # Create the local tool server first (without mocking Config to avoid interference)COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2866 # Create the tool with successful validationCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py2942 # Create the tool with successful validationCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3013 # Create the tool with successful validationCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3095 # Create the local MCP tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3170 # Create a test taskCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3188 # Create a Kiln task tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3322 # Create the local MCP tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3420 # Create the local MCP tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3661 # Create the MCP serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3727 # Create an MCP tool serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3741 # Create the MCP serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3987 # Create a mock KilnTaskToolCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4019 # Create a mock KilnTaskTool with minimal fieldsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4104 # Create a non-kiln task server to ensure it's filtered outCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4159 # Create a non-kiln task serverCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py4192 # Create a valid task firstCOMMENT
210 more matches not shown…
Docstring Block Structure98 hits · 490 pts
SeverityFileLineSnippetContext
HIGH…_client/api/chat/list_sessions_v1_chat_sessions_get.py132List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. RaisSTRING
HIGH…_client/api/chat/list_sessions_v1_chat_sessions_get.py173List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. RaisSTRING
HIGH…_client/api/chat/list_sessions_v1_chat_sessions_get.py208List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. RaisSTRING
HIGH…_client/api/chat/list_sessions_v1_chat_sessions_get.py247List Sessions Args: limit (int | Unset): Default: 50. offset (int | Unset): Default: 0. RaisSTRING
HIGH…t/delete_session_v1_chat_sessions_session_id_delete.py124Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns STRING
HIGH…t/delete_session_v1_chat_sessions_session_id_delete.py162Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns STRING
HIGH…t/delete_session_v1_chat_sessions_session_id_delete.py194Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns STRING
HIGH…t/delete_session_v1_chat_sessions_session_id_delete.py230Delete Session Args: session_id (str): Raises: errors.UnexpectedStatus: If the server returns STRING
HIGH…pi/chat/get_session_v1_chat_sessions_session_id_get.py126Get 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.py164Get 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.py196Get 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.py232Get 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.py121Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns aSTRING
HIGH…_ai_server_client/api/chat/handle_chat_v1_chat_post.py159Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns aSTRING
HIGH…_ai_server_client/api/chat/handle_chat_v1_chat_post.py191Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns aSTRING
HIGH…_ai_server_client/api/chat/handle_chat_v1_chat_post.py227Handle Chat Args: body (ChatRequest): Raises: errors.UnexpectedStatus: If the server returns aSTRING
HIGH…i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py74Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.UnexSTRING
HIGH…i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py105Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.UnexSTRING
HIGH…i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py131Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.UnexSTRING
HIGH…i/copilot/clarify_spec_v1_copilot_clarify_spec_post.py160Clarify Spec Clarify a specification. Args: body (ClarifySpecInput): Raises: errors.UnexSTRING
HIGH…copilot/question_spec_v1_copilot_question_spec_post.py74Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput)STRING
HIGH…copilot/question_spec_v1_copilot_question_spec_post.py105Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput)STRING
HIGH…copilot/question_spec_v1_copilot_question_spec_post.py131Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput)STRING
HIGH…copilot/question_spec_v1_copilot_question_spec_post.py160Question Spec Generate questions to help clarify a specification. Args: body (SpecQuestionerApiInput)STRING
HIGH…th_answers_v1_copilot_refine_spec_with_answers_post.py74Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): RequSTRING
HIGH…th_answers_v1_copilot_refine_spec_with_answers_post.py105Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): RequSTRING
HIGH…th_answers_v1_copilot_refine_spec_with_answers_post.py131Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): RequSTRING
HIGH…th_answers_v1_copilot_refine_spec_with_answers_post.py160Refine Spec With Answers Refine a specification with answers. Args: body (SubmitAnswersRequest): RequSTRING
HIGH…pilot/generate_batch_v1_copilot_generate_batch_post.py74Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation STRING
HIGH…pilot/generate_batch_v1_copilot_generate_batch_post.py106Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation STRING
HIGH…pilot/generate_batch_v1_copilot_generate_batch_post.py133Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation STRING
HIGH…pilot/generate_batch_v1_copilot_generate_batch_post.py163Generate Batch Generate a batch of data. Args: body (GenerateBatchInput): Input for batch generation STRING
HIGH…t/api/copilot/batch_plan_v1_copilot_batch_plan_post.py74Batch Plan Plan a synthetic batch: turn batch guidance + count into one tailored generation prompt per input, STRING
HIGH…t/api/copilot/batch_plan_v1_copilot_batch_plan_post.py106Batch Plan Plan a synthetic batch: turn batch guidance + count into one tailored generation prompt per input, STRING
HIGH…t/api/copilot/batch_plan_v1_copilot_batch_plan_post.py133Batch Plan Plan a synthetic batch: turn batch guidance + count into one tailored generation prompt per input, STRING
HIGH…t/api/copilot/batch_plan_v1_copilot_batch_plan_post.py163Batch Plan Plan a synthetic batch: turn batch guidance + count into one tailored generation prompt per input, STRING
HIGH…t_data_guide_v1_copilot_draft_input_data_guide_post.py74Draft Input Data Guide Draft an input data guide from a heterogeneous list of input examples (manual entries, STRING
HIGH…t_data_guide_v1_copilot_draft_input_data_guide_post.py108Draft Input Data Guide Draft an input data guide from a heterogeneous list of input examples (manual entries, STRING
HIGH…t_data_guide_v1_copilot_draft_input_data_guide_post.py137Draft Input Data Guide Draft an input data guide from a heterogeneous list of input examples (manual entries, STRING
HIGH…t_data_guide_v1_copilot_draft_input_data_guide_post.py169Draft Input Data Guide Draft an input data guide from a heterogeneous list of input examples (manual entries, STRING
HIGH…api/copilot/refine_spec_v1_copilot_refine_spec_post.py74Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.UnexpecSTRING
HIGH…api/copilot/refine_spec_v1_copilot_refine_spec_post.py105Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.UnexpecSTRING
HIGH…api/copilot/refine_spec_v1_copilot_refine_spec_post.py131Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.UnexpecSTRING
HIGH…api/copilot/refine_spec_v1_copilot_refine_spec_post.py160Refine Spec Refine a specification. Args: body (RefineSpecInput): Raises: errors.UnexpecSTRING
HIGH…i/auth/check_entitlements_v1_check_entitlements_get.py91Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code(STRING
HIGH…i/auth/check_entitlements_v1_check_entitlements_get.py129Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code(STRING
HIGH…i/auth/check_entitlements_v1_check_entitlements_get.py161Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code(STRING
HIGH…i/auth/check_entitlements_v1_check_entitlements_get.py197Check Entitlements Check whether the authenticated user's organization has the given entitlement feature code(STRING
HIGH…job_result_v1_jobs_data_guide_job_job_id_result_get.py69Get Data Guide Job Result Get the result of a data guide job. Returns: The job result including the dSTRING
HIGH…job_result_v1_jobs_data_guide_job_job_id_result_get.py106Get Data Guide Job Result Get the result of a data guide job. Returns: The job result including the dSTRING
HIGH…job_result_v1_jobs_data_guide_job_job_id_result_get.py138Get Data Guide Job Result Get the result of a data guide job. Returns: The job result including the dSTRING
HIGH…job_result_v1_jobs_data_guide_job_job_id_result_get.py173Get Data Guide Job Result Get the result of a data guide job. Returns: The job result including the dSTRING
HIGH…t_v1_jobs_prompt_optimization_job_job_id_result_get.py69Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If theSTRING
HIGH…t_v1_jobs_prompt_optimization_job_job_id_result_get.py98Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If theSTRING
HIGH…t_v1_jobs_prompt_optimization_job_job_id_result_get.py122Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If theSTRING
HIGH…t_v1_jobs_prompt_optimization_job_job_id_result_get.py149Get Prompt Optimization Job Result Args: job_id (str): Raises: errors.UnexpectedStatus: If theSTRING
HIGH…rt_data_guide_job_v1_jobs_data_guide_job_start_post.py74Start Data Guide Job Start a new data guide job. Accepts the same request body as the synchronous `/copilSTRING
HIGH…rt_data_guide_job_v1_jobs_data_guide_job_start_post.py113Start Data Guide Job Start a new data guide job. Accepts the same request body as the synchronous `/copilSTRING
HIGH…rt_data_guide_job_v1_jobs_data_guide_job_start_post.py147Start Data Guide Job Start a new data guide job. Accepts the same request body as the synchronous `/copilSTRING
HIGH…rt_data_guide_job_v1_jobs_data_guide_job_start_post.py184Start Data Guide Job Start a new data guide job. Accepts the same request body as the synchronous `/copilSTRING
38 more matches not shown…
Unused Imports447 hits · 381 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…server_client/models/data_guide_job_result_response.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…_server_client/models/draft_input_data_guide_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…ient/kiln_ai_server_client/models/batch_plan_output.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__.py8CODE
LOW…er/api_client/kiln_ai_server_client/models/__init__.py9CODE
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
387 more matches not shown…
Modern AI Meta-Vocabulary101 hits · 316 pts
SeverityFileLineSnippetContext
MEDIUM.config/utils/setup_env.sh449# Capped, because this text is spent from the session's context window rather thanCOMMENT
MEDIUM.config/utils/setup_env.sh557 # spent from the context window. Re-running it on every compaction of a longCOMMENT
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.py3653 # Should map to built-in embedding model by nameCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3614# RAG-specific testsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3618 # Create some RAG configsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3643 # Save the RAG configsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3647 # Create an MCP tool server to trigger the RAG set inclusionCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3713 # Create a RAG configCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3565 # Create some RAG configsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3590 # Save the RAG configsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3676 # Built-in AI Models set + RAG set.COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3682 # Verify RAG tool detailsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3763 # Built-in AI Models + RAG + MCP sets.COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3785 # Verify RAG toolsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3833 # Create active and archived RAG configsCOMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3901 # Built-in AI Models + RAG + Kiln task sets.COMMENT
MEDIUMapp/desktop/studio_server/test_tool_api.py3915 # Only the active RAG config should be presentCOMMENT
MEDIUMapp/desktop/studio_server/eval_api.py123 # Treat empty-string and missing chain-of-thought instructions as equivalentCOMMENT
MEDIUMapp/desktop/studio_server/tool_api.py330 # Add search tools (RAG)COMMENT
MEDIUMapp/desktop/studio_server/test_eval_api.py4654 # Only RAG template allows eval_configs_filter_id to be NoneCOMMENT
MEDIUMapp/desktop/studio_server/api_models/copilot_models.py165# 200k chars stays well under the model's context window even for prose. TheCOMMENT
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/deep-cr-cleanup/project_overview.md30- Re-check Batch-1 #2's target (`_filter_output_to_score_keys`) — it may have been removed with the RAG templates.CODE
MEDIUMspecs/projects/deep-cr-cleanup/phase_plans/phase_1.md5# Phase 1: Verify the RAG PuntCOMMENT
MEDIUMspecs/projects/deep-cr-cleanup/phase_plans/phase_1.md29### 3. No RAG references remain across `libs/`, `app/`, `specs/` -- PASSCOMMENT
MEDIUM…ects/evals_v2/components/40_template_and_extraction.md370- **Few-shot examples:** users can author few-shot examples directly into their Jinja2 `prompt_template` or `system_promSTRING
MEDIUM…jects/evals_v2/components/80_extensibility_contract.md156### 4.2 First-party RAG templates as starting pointsCOMMENT
MEDIUMspecs/projects/evals_v2/components/90_open_risks.md182### 2.11 RAG judge templates + continuous scoring (punted from V2.0)COMMENT
MEDIUM…projects/evals_v2/components/45_runner_architecture.md188## 4. Multi-config orchestration and candidate calibration (C.9)COMMENT
MEDIUM…projects/evals_v2/components/29_rag_judge_templates.md439### Step 3: Calculate the hallucination scoreCOMMENT
MEDIUM…projects/evals_v2/components/29_rag_judge_templates.md11# RAG Judge Templates -- Stage 5 DesignCOMMENT
MEDIUMspecs/projects/evals_v2/phase_plans/phase_4.md5# Phase 4: Enhanced `llm_judge` + RAG Judge TemplatesCOMMENT
MEDIUMspecs/projects/evals_v2/phase_plans/phase_4.md311### Step 7: Create RAG judge template libraryCOMMENT
MEDIUMspecs/projects/evals_v2/phase_plans/phase_2.md181### Step 5: Two-level adapter dispatch scaffolding (`libs/core/kiln_ai/adapters/eval/registry.py`)COMMENT
MEDIUMspecs/projects/evals_v2/reference/ALIGNMENT.md1332**Implementation detail deferred to Stage 5 `design/21_type_llm_judge.md`:** exact Jinja2 wrapping shape (which reservedCODE
MEDIUM…cs/projects/playwright_seed_project/functional_spec.md229### RAG indexesCOMMENT
MEDIUM…rojects/playwright_seed_project/phase_plans/phase_4.md5# Phase 4: Skills, the RAG chain, and the index-rebuild proofCOMMENT
MEDIUMspecs/projects/rag_templates/project_overview.md5# Project: RAG Judge Templates + Continuous ScoringCOMMENT
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.py240 # Create mock RAG configCOMMENT
MEDIUMlibs/core/kiln_ai/tools/test_tool_registry.py247 # Setup mock RAG configCOMMENT
MEDIUMlibs/core/kiln_ai/tools/test_tool_registry.py252 # Setup mock RAG toolCOMMENT
MEDIUMlibs/core/kiln_ai/tools/test_tool_registry.py265 # 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.py410 # models have rate limits, which become very relevant when doing heavy processing like in RAGCOMMENT
MEDIUMlibs/core/kiln_ai/adapters/ml_model_list.py9218 # 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
41 more matches not shown…
Excessive Try-Catch Wrapping223 hits · 230 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.py856 except Exception:CODE
LOWapp/desktop/studio_server/copilot_api.py861 except Exception:CODE
LOWapp/desktop/studio_server/webhost.py25 except Exception:CODE
LOWapp/desktop/studio_server/webhost.py74 except Exception as e:CODE
MEDIUMapp/desktop/studio_server/webhost.py20def studio_path():CODE
LOWapp/desktop/studio_server/settings_api.py75 except Exception as e:CODE
LOWapp/desktop/studio_server/settings_api.py98 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.py83 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py100 except Exception:CODE
LOWapp/desktop/studio_server/provider_api.py1127 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1167 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1222 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1248 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1282 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1321 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1344 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1376 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1408 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1442 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1481 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1519 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1552 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1604 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1633 except Exception as e:CODE
LOWapp/desktop/studio_server/provider_api.py1683 except Exception:CODE
LOWapp/desktop/studio_server/provider_api.py2249 except Exception:CODE
LOWapp/desktop/studio_server/data_gen_api.py498 except Exception as e:CODE
LOWapp/desktop/studio_server/data_gen_api.py512 except Exception as e:CODE
LOWapp/desktop/studio_server/data_gen_api.py551 except Exception as e:CODE
LOWapp/desktop/studio_server/data_gen_api.py565 except Exception as e:CODE
LOWapp/desktop/studio_server/data_gen_api.py1408 except Exception:CODE
LOWapp/desktop/studio_server/tool_api.py364 except Exception:CODE
LOWapp/desktop/studio_server/tool_api.py1052 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py303 except Exception as cleanup_error:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py373 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py428 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py496 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py604 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py716 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py784 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py832 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py873 except Exception as e:CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py921 except Exception as e:CODE
LOWapp/desktop/studio_server/run_config_api.py218 except Exception as e:CODE
LOWapp/desktop/studio_server/run_config_api.py383 except Exception:CODE
LOWapp/desktop/studio_server/chat/stream_session.py285 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
163 more matches not shown…
Structural Annotation Overuse127 hits · 229 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.py302 # Step 1: original Run.COMMENT
LOWapp/desktop/studio_server/test_repair_api.py317 # Step 2: Repair, hitting the real endpoint with the persisted run.COMMENT
LOWapp/desktop/studio_server/test_tool_api.py1090 # Step 1: Create a tool serverCOMMENT
LOWapp/desktop/studio_server/test_tool_api.py1104 # Step 1: Create the tool serverCOMMENT
LOWapp/desktop/studio_server/test_tool_api.py1115 # 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
LOW…projects/evals_v2/components/29_rag_judge_templates.md121### Step 1: Extract claimsCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md124### Step 2: Verify each claimCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md131### Step 3: Calculate the faithfulness scoreCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md192### Step 1: Identify the user's intentCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md195### Step 2: Assess relevance dimensionsCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md202### Step 3: Assign a scoreCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md266### Step 1: Identify the information needCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md269### Step 2: Evaluate each chunkCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md276### Step 3: Calculate the context relevance scoreCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md345### Step 1: Understand the ideal answerCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md352### Step 2: Evaluate each retrieved chunk for usefulnessCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md362### Step 3: Calculate the precision scoreCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md426### Step 1: Extract claimsCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md431### Step 2: Classify each claimCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md439### Step 3: Calculate the hallucination scoreCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md506### Step 1: Extract key facts from the reference answerCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md511### Step 2: Check the response against each factCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md517### Step 3: Check for fabricated contentCOMMENT
LOW…projects/evals_v2/components/29_rag_judge_templates.md522### Step 4: Calculate the correctness scoreCOMMENT
LOWspecs/projects/evals_v2/phase_plans/phase_1.md19### Step 1: Fix `validate_template_properties` bug (eval.py)COMMENT
LOWspecs/projects/evals_v2/phase_plans/phase_1.md31### Step 2: Thinking formatter fix (chat_formatter.py)COMMENT
LOWspecs/projects/evals_v2/phase_plans/phase_1.md41### Step 3: V2 enum + properties types (eval.py)COMMENT
LOWspecs/projects/evals_v2/phase_plans/phase_1.md55### Step 4: EvalConfig schema changes (eval.py)COMMENT
LOWspecs/projects/evals_v2/phase_plans/phase_1.md64### Step 5: Eval schema changes (eval.py)COMMENT
LOWspecs/projects/evals_v2/phase_plans/phase_1.md71### Step 6: EvalRun schema changes (eval.py)COMMENT
67 more matches not shown…
Deep Nesting132 hits · 114 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.py852CODE
LOWapp/desktop/studio_server/test_server.py274CODE
LOWapp/desktop/studio_server/agent_api.py228CODE
LOWapp/desktop/studio_server/provider_api.py257CODE
LOWapp/desktop/studio_server/provider_api.py1694CODE
LOWapp/desktop/studio_server/provider_api.py1771CODE
LOWapp/desktop/studio_server/provider_api.py1806CODE
LOWapp/desktop/studio_server/provider_api.py1898CODE
LOWapp/desktop/studio_server/provider_api.py1921CODE
LOWapp/desktop/studio_server/provider_api.py2085CODE
LOWapp/desktop/studio_server/provider_api.py277CODE
LOWapp/desktop/studio_server/provider_api.py422CODE
LOWapp/desktop/studio_server/provider_api.py489CODE
LOWapp/desktop/studio_server/provider_api.py690CODE
LOWapp/desktop/studio_server/eval_api.py1409CODE
LOWapp/desktop/studio_server/eval_api.py2419CODE
LOWapp/desktop/studio_server/eval_api.py2566CODE
LOWapp/desktop/studio_server/tool_api.py288CODE
LOWapp/desktop/studio_server/tool_api.py523CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py436CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py736CODE
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.py108CODE
LOW…er/api_client/kiln_ai_server_client/models/task_run.py279CODE
LOW…er/api_client/kiln_ai_server_client/models/task_run.py425CODE
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.py58CODE
LOWapp/desktop/studio_server/chat/test_integration.py178CODE
LOWapp/desktop/studio_server/chat/test_integration.py235CODE
LOWapp/desktop/studio_server/chat/test_integration.py335CODE
LOWapp/desktop/studio_server/chat/stream_session.py101CODE
LOWapp/desktop/studio_server/jobs/events.py87CODE
LOWapp/desktop/studio_server/jobs/error_log.py35CODE
LOWapp/desktop/git_sync/git_sync_api.py438CODE
LOWapp/desktop/git_sync/git_sync_api.py704CODE
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.py188CODE
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.py836CODE
LOWlibs/core/kiln_ai/tools/sandbox_bridge.py499CODE
LOWlibs/core/kiln_ai/tools/mcp_session_manager.py341CODE
LOWlibs/core/kiln_ai/tools/tool_registry.py31CODE
LOWlibs/core/kiln_ai/utils/logging.py98CODE
LOWlibs/core/kiln_ai/utils/test_import_layering.py93CODE
72 more matches not shown…
Cross-File Repetition21 hits · 105 pts
SeverityFileLineSnippetContext
HIGHapp/desktop/git_sync/registry.py0singleton registry of gitsyncmanager instances, keyed by repo path.STRING
HIGH…/projects/desktop_lint_config_scope/functional_spec.md0singleton registry of gitsyncmanager instances, keyed by repo path.STRING
HIGHspecs/projects/git_auto_sync/architecture.md0singleton registry of gitsyncmanager instances, keyed by repo path.STRING
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
Modern Structural Boilerplate102 hits · 103 pts
SeverityFileLineSnippetContext
LOWapp/desktop/desktop_server.py52logger = logging.getLogger(__name__)CODE
LOWapp/desktop/custom_tray.py6logger = logging.getLogger(__name__)CODE
LOWapp/desktop/dev_env.py6def set_dev_env_vars() -> None:CODE
LOWapp/desktop/desktop.py32logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/copilot_api.py110logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/code_tool_api.py32logger = 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.py60logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/eval_api.py107logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/data_gen_api.py50logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/tool_api.py44logger = logging.getLogger(__name__)CODE
LOW…p/desktop/studio_server/prompt_optimization_job_api.py63logger = 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.py9logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/chat/__init__.py16__all__ = [CODE
LOWapp/desktop/studio_server/chat/test_integration.py28logger = logging.getLogger(__name__)CODE
LOWapp/desktop/studio_server/chat/stream_session.py28logger = 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.py57logger = 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/sandbox_bridge.py35logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/tools/mcp_session_manager.py28logger = logging.getLogger(__name__)CODE
LOWlibs/core/kiln_ai/tools/__init__.py4__all__ = [CODE
LOWlibs/core/kiln_ai/tools/code_tool.py36__all__ = [CODE
LOWlibs/core/kiln_ai/tools/code_tool.py42logger = logging.getLogger(__name__)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__.py45__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.py788 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
42 more matches not shown…
Cross-Language Confusion17 hits · 85 pts
SeverityFileLineSnippetContext
HIGHapp/desktop/studio_server/data_gen_api.py786 # we do not save the TaskRun to disk, so the ID is null, but we needCOMMENT
HIGHapp/desktop/studio_server/test_eval_api.py5557 # save_to_file writes the migrated shape (splits populated, legacy fields null).COMMENT
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.py125 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.py1097 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/core/kiln_ai/datamodel/eval.py1260 the eval saves with both fields null, and re-running the validator — whichSTRING
HIGHlibs/server/kiln_server/test_run_api.py2040 '{"train": null, "test": 0.5}',CODE
HIGHlibs/server/kiln_server/run_api.py665 # Testing for the key rather than a set value also refuses `{"eval_source": null}`,COMMENT
Redundant / Tautological Comments44 hits · 75 pts
SeverityFileLineSnippetContext
LOWconftest.py121 # Check if we're running manually (eg, in vscode)COMMENT
LOWconftest.py130 # 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.py1327 # Check if all built-in models are present in the responseCOMMENT
LOWapp/desktop/studio_server/test_provider_api.py1333 # Check if the number of models in the response matches the number of built-in modelsCOMMENT
LOWapp/desktop/studio_server/test_provider_api.py3484 # Check if all built-in embedding models are present in the responseCOMMENT
LOWapp/desktop/studio_server/test_provider_api.py3490 # Check if the number of models in the response matches the number of built-in embedding modelsCOMMENT
LOWapp/desktop/studio_server/test_provider_api.py3751 # Check if all built-in reranker models are present in the responseCOMMENT
LOWapp/desktop/studio_server/test_provider_api.py3757 # Check if the number of models in the response matches the number of built-in reranker modelsCOMMENT
LOWapp/desktop/studio_server/provider_api.py699 # Check if provider is configuredCOMMENT
LOWapp/desktop/studio_server/eval_api.py2472 # 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.py2664 # Check if this item is expected for this evalCOMMENT
LOWapp/desktop/studio_server/data_gen_api.py714 # Set parent to task to ensure the correct path is usedCOMMENT
LOWapp/desktop/studio_server/tool_api.py573 # 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.py526 # Check if eval has a default configCOMMENT
LOWlibs/core/kiln_ai/tools/mcp_session_manager.py347 # Check if the exception itself is of the target typeCOMMENT
LOWlibs/core/kiln_ai/tools/tool_registry.py73 # 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.py689 # 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
Over-Commented Block69 hits · 66 pts
SeverityFileLineSnippetContext
LOWconftest.py21 # Importing litellm costs several seconds, and pytest imports this conftest onCOMMENT
LOW.config/utils/claude_code_vm_setup.sh1#!/usr/bin/env bashCOMMENT
LOW.config/utils/claude_code_vm_setup.sh21#COMMENT
LOW.config/utils/setup_startup.sh1#!/usr/bin/env bashCOMMENT
LOW.config/utils/setup_startup.sh181EOFCOMMENT
LOW.config/utils/setup_startup.sh221# CLAUDE.md, .claude/skills/ and .mcp.json into a session's working copy.COMMENT
LOW.config/utils/setup_startup.sh261fiCOMMENT
LOW.config/utils/setup_startup.sh281# one `rm -rf` unlinks entries out of the other's tree mid-`cp -al` and the survivorsCOMMENT
LOW.config/utils/setup_startup.sh301# It is specifically *not* safe because of the age filter. `cp -al` impliesCOMMENT
LOW.config/utils/setup_startup.sh321 # Only this run's own path — a PID can be reused after a reboot, and cp -al ontoCOMMENT
LOW.config/utils/setup_startup.sh401branch="$(git -C "$PROJECT_ROOT" branch --show-current 2>/dev/null)"COMMENT
LOW.config/utils/setup_startup.sh501# ── Playwright ────────────────────────────────────────────────────────────────COMMENT
LOW.config/utils/setup_startup.sh541# where it looked. Naming the revision here turns that into one clear line.COMMENT
LOW.config/utils/setup_env.sh1#!/usr/bin/env bashCOMMENT
LOW.config/utils/setup_env.sh41CREATE_STARTUP_SCRIPT=false # true: run setup_startup.sh from a Claude Code SessionStart hook (cloud VMs)COMMENT
LOW.config/utils/setup_env.sh61WARM_NODE_MODULES="$VM_SETUP_DIR/node_modules"COMMENT
LOW.config/utils/setup_env.sh261# test modules and both OpenAPI schema scripts. uv-managed CPython bundles Tk.COMMENT
LOW.config/utils/setup_env.sh361 # inside the clone, the move and delete above invalidated it, and the very nextCOMMENT
LOW.config/utils/setup_env.sh381COMMENT
LOW.config/utils/setup_env.sh421# Claude Code SessionStart hook. Written by Kiln's .config/utils/setup_env.shCOMMENT
LOW.config/utils/setup_env.sh621# named anywhere below. It is whatever the checkout's own playwright asksCOMMENT
LOW.config/utils/setup_env.sh661COMMENT
LOWapp/desktop/dev_server.py1# Run a desktop server for development:COMMENT
LOWapp/desktop/dev_app.py1# The dev server's ASGI app object, in a module of its own.COMMENT
LOWapp/desktop/studio_server/copilot_api.py141 task_description: str = ""COMMENT
LOW…ktop/studio_server/test_prompt_optimization_job_api.py61COMMENT
LOWapp/desktop/studio_server/jobs/registry.py81 self._cancel_intent: set[str] = set()COMMENT
LOWapp/web_ui/playwright.config.ts61 // name: 'webkit',COMMENT
LOWapp/web_ui/src/lib/ui/data_guide_progress_widget.svelte1<script lang="ts">COMMENT
LOWapp/web_ui/src/lib/ui/callout_card.svelte1<script lang="ts">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
LOWapp/web_ui/src/lib/utils/built_in_tool_ids.ts1// Kiln's built-in tool IDs, mirroring KilnBuiltInToolId on the server. They are notCOMMENT
LOWapp/web_ui/src/lib/components/extractor_picker.svelte21 // Document-id allow-list scoping the run. When set, only these documents areCOMMENT
LOW…p/web_ui/src/lib/components/run_eval.component.test.ts1// @vitest-environment jsdomCOMMENT
LOW…/[task_id]/spec_builder/create_spec_judge_form.test.ts221 })COMMENT
LOW…p)/docs/library/[project_id]/upload_file_dialog.svelte21 // without a second dialog. Opt-in; other callers keep the existing behavior.COMMENT
LOW…project_id]/[task_id]/synth_data_guidance_datamodel.ts281 store.set(guidance)COMMENT
LOW…generate/[project_id]/[task_id]/data_gen_intro.test.ts241 // split, and a test split that isn't tag-shaped — and this dialog picks its messageCOMMENT
LOW…ct_id]/[task_id]/data_guide_setup_copilot/+page.svelte101COMMENT
LOW…d]/[task_id]/data_guide_setup/guide_refine_view.svelte81 // Verify Changes (and the settings widget above it) are always shown butCOMMENT
LOW…ct_id]/[task_id]/data_guide_setup/guide_preview.svelte21 export let guide: string = ""COMMENT
LOW…ct_id]/[task_id]/data_guide_setup/guide_preview.svelte41 export let show_restart: boolean = falseCOMMENT
LOW…cs/projects/eval_splits_v1_v2/phase2_mutation_sweep.py181 # set_split". Its pattern still matches, but with one home set_split andCOMMENT
LOW…cs/projects/eval_splits_v1_v2/phase3_mutation_sweep.py61 # direct-dict-assignment, homes-test-only, and does-nothing shapes. That functionCOMMENT
LOW…ects/evals_v2/components/85_observability_and_audit.md81 """Why an (input x config) combination was permanently skipped.COMMENT
LOW…ects/evals_v2/components/85_observability_and_audit.md101 # - Future: image-gen EvalInput under a text-only EvalConfig, etc.COMMENT
LOW…ects/evals_v2/components/85_observability_and_audit.md121 # project_trust_granted() before execution; untrusted -> skip.COMMENT
LOW.agents/scripts/playwright_server.sh1#!/usr/bin/env bashCOMMENT
LOW.agents/scripts/playwright_server.sh61# behaves exactly as it always has, with nothing connected.COMMENT
LOW.agents/scripts/playwright_server.sh101COMMENT
LOW.agents/scripts/playwright_server.sh261# change to how the datamodel serializes cannot break it.COMMENT
LOW.agents/scripts/playwright_server.sh381# get_projects catches every per-project load exception and continues, so a projectCOMMENT
LOW.agents/scripts/playwright_server.sh421}COMMENT
LOW.agents/scripts/playwright_server.sh441# Gated on verify_seed_loaded having confirmed the project with the backend, not onCOMMENT
LOW.agents/scripts/playwright_server.sh621# The only path that re-seeds. There is deliberately no drift detection on `start`:COMMENT
LOW.agents/scripts/playwright_server.sh701COMMENT
LOWlibs/core/setup.cfg1# empty, but needed by setuptoolsCOMMENT
LOWlibs/core/kiln_ai/tools/sandbox_bridge.py41side effect of unifying the pool (arch §3.4)."""COMMENT
LOWlibs/core/kiln_ai/adapters/ml_model_list.py401 # some models on siliconflow allow dynamically disabling thinkingCOMMENT
9 more matches not shown…
Fake / Example Data54 hits · 48 pts
SeverityFileLineSnippetContext
LOWapp/desktop/studio_server/test_tool_api.py3083 "DATABASE_PASSWORD": "placeholder",CODE
LOWapp/desktop/studio_server/test_tool_api.py3122 "DATABASE_PASSWORD": "placeholder",CODE
LOWapp/desktop/git_sync/integration_tests/test_fixtures.py155 sig = pygit2.Signature("Test", "test@test.com")CODE
LOWapp/web_ui/src/lib/utils/code_tool_helpers.test.ts283 expect(isCodeUnmodified("", "placeholder")).toBe(true)CODE
LOWapp/web_ui/src/lib/utils/code_tool_helpers.test.ts287 expect(isCodeUnmodified(" \n ", "placeholder")).toBe(true)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
LOW…s/core/kiln_ai/adapters/eval/test_v2_eval_llm_judge.py817 mock_config_obj.open_ai_api_key = "fake-key"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.py40 properties={"created_by": "John Doe"},CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py46 properties={"created_by": "John Doe"},CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py58 assert task_run.input_source.properties == {"created_by": "John Doe"}CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py61 assert task_run.output.source.properties == {"created_by": "John Doe"}CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py90 properties={"created_by": "John Doe"},CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py96 properties={"wrong_key": "John Doe"},CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py240 == '{"name": "John Doe", "age": 31}'CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py408 valid_task_output.input = '{"name": "John Doe", "age": "thirty"}'CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py414 loaded_task_output.input = '{"name": "John Doe", "age": "thirty"}'CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py420 input='{"name": "John Doe", "age": "thirty"}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py442 properties={"created_by": "John Doe"},CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py446 assert output.source.properties["created_by"] == "John Doe"CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py169 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py188 output='{"name": "John Doe", "age": 31}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py196 output='{"name": "John Doe", "age": 31}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py321 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py335 task_output.output.output = '{"name": "John Doe", "age": "thirty"}'CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py344 loaded_task_output.output.output = '{"name": "John Doe", "age": "forty"}'CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py357 output='{"name": "John Doe", "age": "thirty"}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py390 input='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py683 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py691 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py711 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py719 output='{"name": "John Doe", "age": 30', # missing closing braceCODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py737 output='{"name": "John Doe", "age": 30}',CODE
LOWlibs/core/kiln_ai/datamodel/test_example_models.py745 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.py977 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py982 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py989 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py421 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py426 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py464 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py469 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py585 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
LOWlibs/server/kiln_server/test_run_api.py590 type=DataSourceType.human, properties={"created_by": "Jane Doe"}CODE
AI Slop Vocabulary16 hits · 28 pts
SeverityFileLineSnippetContext
MEDIUMapp/web_ui/src/routes/(app)/sidebar_rail_item.test.ts8// `container` so the assertions are robust to portaling. Also explicitlyCOMMENT
MEDIUM…cs/projects/eval_splits_v1_v2/phase3_mutation_sweep.py168 # lines away, and this harness applies one edit. It is covered byCOMMENT
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.py534 """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.py29 # 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
LOWlibs/core/kiln_ai/adapters/eval/test_eval_helpers.py260 # Invalid regex should not raise, just return FalseCOMMENT
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
Hallucination Indicators2 hits · 25 pts
SeverityFileLineSnippetContext
CRITICAL…iln_ai/tools/built_in_tools/test_kiln_api_call_tool.py145 query = route.calls.last.request.url.query.decode()CODE
CRITICAL…iln_ai/tools/built_in_tools/test_kiln_api_call_tool.py721 query = route.calls.last.request.url.query.decode()CODE
Synthetic Comment Markers3 hits · 22 pts
SeverityFileLineSnippetContext
HIGH…_guide_setup_copilot/existing_run_picker_dialog.svelte3 // by tag; the union of the chosen tags is added. Synthetic (AI-generated) runsCOMMENT
HIGH…_guide_setup_copilot/existing_run_picker_dialog.svelte78 // Warn when any selected run (pulled in via a chosen tag) is AI-generated.COMMENT
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
Overly Generic Function Names10 hits · 10 pts
SeverityFileLineSnippetContext
LOW…op/studio_server/api_client/test_kiln_server_client.py167 async def handle_request(request: httpx.Request) -> httpx.Response:CODE
LOW…i/src/lib/utils/eval_types/reference_data_gate.test.ts77 def helper():CODE
LOWlibs/core/kiln_ai/adapters/eval/base_eval.py573 async def run_task(CODE
LOWlibs/core/kiln_ai/sandbox/test_code_tool_execution.py194 async def helper():CODE
LOWlibs/core/kiln_ai/sandbox/test_code_tool_execution.py304 def helper():CODE
LOWlibs/core/kiln_ai/datamodel/test_eval_model.py3216 CodeEvalProperties(code="def helper():\n pass\n")CODE
LOWlibs/core/kiln_ai/datamodel/test_eval_model.py4642 "def helper():\n pass\n", encoding="utf-8"CODE
LOWlibs/core/kiln_ai/datamodel/test_code_tool.py51 _make_code_tool(code="def helper():\n pass\n")CODE
LOWlibs/core/kiln_ai/datamodel/test_code_tool.py309 "def helper():\n pass\n", encoding="utf-8"CODE
LOWlibs/server/kiln_server/run_api.py433 async def run_task(CODE
Verbosity Indicators5 hits · 6 pts
SeverityFileLineSnippetContext
LOWapp/desktop/studio_server/test_repair_api.py302 # Step 1: original Run.COMMENT
LOWapp/desktop/studio_server/test_repair_api.py317 # Step 2: Repair, hitting the real endpoint with the persisted run.COMMENT
LOWapp/desktop/studio_server/test_tool_api.py1090 # Step 1: Create a tool serverCOMMENT
LOWapp/desktop/studio_server/test_tool_api.py1104 # Step 1: Create the tool serverCOMMENT
LOWapp/desktop/studio_server/test_tool_api.py1115 # 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
Dead Code2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMapp/desktop/studio_server/test_eval_api.py1173CODE
MEDIUMapp/desktop/studio_server/chat/test_stream_session.py89CODE
TODO Padding2 hits · 2 pts
SeverityFileLineSnippetContext
LOWspecs/projects/code_tools/ui_design.md57 # TODO: implementCOMMENT
LOWspecs/projects/code_tools/phase_plans/phase_4.md16- `generateCodeToolPlaceholder(schema, toolDescription)`: generates a typed `def run(...)` stub from `parameters_schema`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
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWlibs/core/kiln_ai/datamodel/basemodel.py293# Usage:COMMENT