Convert documentation websites, GitHub repositories, and PDFs into Claude AI skills with automatic conflict detection
This report presents the forensic synthetic code analysis of yusufkaraaslan/Skill_Seekers, a Python project with 14,451 GitHub stars. SynthScan v2.0 examined 1,156,182 lines of code across 2911 source files, recording 6082 pattern matches distributed across 24 syntactic categories. The overall adjusted score of 7.8 places this repository in the Low 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).
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.
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.
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.
The scanner identified 6082 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CONTRIBUTING.md | 425 | def test_config_validation_with_missing_fields(): | CODE |
| LOW⚡ | tests/test_mcp_inprocess_tools.py | 40 | def test_captures_stdout_and_returns_zero_for_none(self): | CODE |
| LOW⚡ | tests/test_mcp_inprocess_tools.py | 49 | def test_patches_and_restores_sys_argv(self): | CODE |
| LOW⚡ | tests/test_mcp_inprocess_tools.py | 105 | def test_system_exit_int_passes_through(self): | CODE |
| LOW⚡ | tests/test_mcp_inprocess_tools.py | 112 | def test_system_exit_none_maps_to_zero(self): | CODE |
| LOW⚡ | tests/test_mcp_inprocess_tools.py | 119 | def test_system_exit_message_maps_to_one_with_stderr(self): | CODE |
| LOW⚡ | tests/test_mcp_inprocess_tools.py | 147 | def test_log_handler_removed_after_call(self): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 62 | def test_sys_argv_restored_on_exception(self): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 73 | def test_parses_argv_through_a_real_parser(self): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 135 | def test_skill_seekers_logger_output_is_captured(self): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 176 | async def test_argv_passed_to_module(self, monkeypatch): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 190 | async def test_unlimited_maps_to_minus_one(self, monkeypatch): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 204 | async def test_nonzero_exit_maps_to_error_text(self, monkeypatch): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 220 | async def test_system_exit_does_not_propagate(self, monkeypatch): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 232 | async def test_output_does_not_claim_hard_timeout_cap(self, monkeypatch): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 267 | async def test_missing_input_short_circuits(self, monkeypatch): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 323 | async def test_real_parser_round_trip(self, tmp_path): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 361 | async def test_module_sys_exit_contained(self, monkeypatch): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 376 | async def test_argv_matches_real_parser_flags(self, monkeypatch, tmp_path): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 419 | async def test_enhance_maps_to_ai_mode_api(self, monkeypatch, tmp_path): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 442 | async def test_enhance_local_maps_to_ai_mode_local(self, monkeypatch, tmp_path): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 461 | async def test_explicit_ai_mode_wins_over_enhance_booleans(self, monkeypatch, tmp_path): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 485 | async def test_no_enhancement_passes_no_ai_mode(self, monkeypatch, tmp_path): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 534 | async def test_module_exception_maps_to_error(self, monkeypatch): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 550 | async def test_no_matching_configs_short_circuits(self, tmp_path): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 614 | async def test_failure_keeps_error_marker_contract(self, monkeypatch): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 635 | async def test_happy_path_system_exit_zero(self, monkeypatch): | CODE |
| LOW | tests/test_mcp_inprocess_tools.py | 671 | async def test_failure_exit_maps_to_error(self, monkeypatch): | CODE |
| LOW⚡ | tests/test_conflict_detector.py | 9 | def test_detector_with_empty_docs_data(self): | CODE |
| LOW⚡ | tests/test_conflict_detector.py | 16 | def test_detector_with_empty_code_data(self): | CODE |
| LOW⚡ | tests/test_conflict_detector.py | 23 | def test_detector_with_both_empty(self): | CODE |
| LOW⚡ | tests/test_conflict_detector.py | 30 | def test_apis_with_non_dict_structure(self): | CODE |
| LOW⚡ | tests/test_conflict_detector.py | 38 | def test_conflict_dataclass_all_fields_none(self): | CODE |
| LOW | tests/test_conflict_detector.py | 49 | def test_conflict_asdict_with_all_fields(self): | CODE |
| LOW | tests/test_install_skill.py | 37 | async def test_validation_no_config(self): | CODE |
| LOW | tests/test_install_skill.py | 48 | async def test_validation_both_configs(self): | CODE |
| LOW | tests/test_install_skill.py | 65 | async def test_dry_run_with_config_name(self): | CODE |
| LOW | tests/test_install_skill.py | 87 | async def test_dry_run_with_config_path(self): | CODE |
| LOW | tests/test_install_skill.py | 112 | async def test_enhancement_is_mandatory(self): | CODE |
| LOW | tests/test_install_skill.py | 142 | async def test_full_workflow_with_fetch( | CODE |
| LOW | tests/test_install_skill.py | 214 | async def test_workflow_with_existing_config( | CODE |
| LOW | tests/test_install_skill.py | 283 | async def test_scrape_phase_failure(self, mock_open, mock_scrape): | CODE |
| LOW | tests/test_install_skill.py | 310 | async def test_enhancement_phase_failure(self, mock_open, mock_subprocess, mock_scrape): | CODE |
| LOW | tests/test_install_skill_e2e.py | 408 | def test_cli_validation_error_no_config(self): | CODE |
| LOW | tests/test_install_skill_e2e.py | 447 | async def test_cli_full_workflow_mocked( | CODE |
| LOW | tests/test_install_skill_e2e.py | 483 | def test_cli_via_unified_command(self, test_config_file): | CODE |
| LOW | tests/test_setup_scripts.py | 39 | def test_references_correct_mcp_directory(self, script_content): | CODE |
| LOW | tests/test_setup_scripts.py | 62 | def test_requirements_txt_path(self, script_content): | CODE |
| LOW | tests/test_setup_scripts.py | 102 | def test_referenced_files_exist(self): | CODE |
| LOW⚡ | tests/test_setup_scripts.py | 114 | def test_config_directory_exists(self): | CODE |
| LOW⚡ | tests/test_setup_scripts.py | 119 | def test_script_is_executable(self, script_path): | CODE |
| LOW⚡ | tests/test_setup_scripts.py | 125 | def test_json_config_path_format(self, script_content): | CODE |
| LOW | tests/test_setup_scripts.py | 140 | def test_pytest_command_references(self, script_content): | CODE |
| LOW⚡ | tests/test_setup_scripts.py | 158 | def test_all_scripts_have_shebang(self, all_bash_scripts): | CODE |
| LOW⚡ | tests/test_setup_scripts.py | 166 | def test_all_scripts_syntax_valid(self, all_bash_scripts): | CODE |
| LOW⚡ | tests/test_setup_scripts.py | 172 | def test_all_scripts_use_set_e(self, all_bash_scripts): | CODE |
| LOW | tests/test_setup_scripts.py | 183 | def test_no_deprecated_backticks(self, all_bash_scripts): | CODE |
| LOW | tests/test_setup_scripts.py | 200 | def test_github_workflows_reference_correct_paths(self): | CODE |
| LOW | tests/test_setup_scripts.py | 212 | def test_readme_references_correct_paths(self): | CODE |
| LOW | tests/test_setup_scripts.py | 226 | def test_documentation_references_correct_paths(self): | CODE |
| 3112 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | setup.sh | 26 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 28 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 49 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 51 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 98 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 100 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 139 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 141 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 197 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 199 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | setup.sh | 384 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | setup.sh | 386 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 460 | # ============================================================================= | COMMENT |
| MEDIUM | setup.sh | 462 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | setup_mcp.sh | 57 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | setup_mcp.sh | 59 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | setup_mcp.sh | 64 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | setup_mcp.sh | 66 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | setup_mcp.sh | 102 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | setup_mcp.sh | 104 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | setup_mcp.sh | 472 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | setup_mcp.sh | 474 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 29 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 31 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 171 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 173 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 217 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 219 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 277 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 279 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 548 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 550 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 582 | # ============================================================================= | COMMENT |
| MEDIUM | setup_mcp.sh | 584 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_mcp_inprocess_tools.py | 34 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_inprocess_tools.py | 36 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_inprocess_tools.py | 154 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_inprocess_tools.py | 156 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_workflow_runner.py | 81 | # ─────────────────────────── run_workflows ────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_workflow_runner.py | 22 | # ─────────────────────────── helpers ──────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_workflow_runner.py | 40 | # ─────────────────────────── collect_workflow_vars ────────────────────────── | COMMENT |
| MEDIUM | tests/test_workflow_runner.py | 415 | # ────────────────── bundled preset loading (integration) ───────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 170 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 172 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 263 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 265 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 436 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 438 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 537 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 539 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 592 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 594 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 740 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 742 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 795 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 797 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 844 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 846 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_mcp_fastmcp.py | 44 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_mcp_fastmcp.py | 46 | # ============================================================================ | COMMENT |
| 697 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.hi.md | 249 | ### RAG निर्माताओं और AI इंजीनियरों के लिए | COMMENT |
| MEDIUM | README.hi.md | 413 | ### 🔗 RAG फ़्रेमवर्क एकीकरण | COMMENT |
| MEDIUM | README.hi.md | 1303 | ### RAG चंकिंग विकल्प (पैकेजिंग) | COMMENT |
| MEDIUM | README.fr.md | 248 | ### Pour les développeurs RAG et ingénieurs IA | COMMENT |
| MEDIUM | README.fr.md | 412 | ### 🔗 Intégrations de frameworks RAG | COMMENT |
| MEDIUM | README.fr.md | 1306 | ### Options de chunking RAG (package) | COMMENT |
| MEDIUM | README.es.md | 248 | ### Para constructores de RAG e ingenieros de IA | COMMENT |
| MEDIUM | README.es.md | 412 | ### 🔗 Integraciones con frameworks RAG | COMMENT |
| MEDIUM | README.es.md | 1306 | ### Opciones de RAG Chunking (package) | COMMENT |
| MEDIUM | README.ar.md | 242 | ### لبنّائي RAG ومهندسي الذكاء الاصطناعي | COMMENT |
| MEDIUM | README.ar.md | 406 | ### 🔗 تكامل أطر RAG | COMMENT |
| MEDIUM | README.ar.md | 1300 | ### خيارات تقسيم RAG (التعبئة) | COMMENT |
| MEDIUM | README.tr.md | 249 | ### RAG Geliştiricileri ve AI Mühendisleri İçin | COMMENT |
| MEDIUM | README.tr.md | 413 | ### 🔗 RAG Çerçeve Entegrasyonları | COMMENT |
| MEDIUM | README.tr.md | 1307 | ### RAG Parçalama Seçenekleri (paketleme) | COMMENT |
| MEDIUM | CHANGELOG.md | 88 | - **Safety** (#327) — atomic JSON writes via `os.replace` so SIGINT mid-write can't corrupt a config and silently flip i | CODE |
| MEDIUM | CHANGELOG.md | 742 | #### RAG & Vector Databases (8) | COMMENT |
| MEDIUM | pyproject.toml | 175 | # RAG vector database upload support | COMMENT |
| MEDIUM | README.de.md | 248 | ### Für RAG-Entwickler und KI-Ingenieure | COMMENT |
| MEDIUM | README.de.md | 412 | ### RAG-Framework-Integrationen | COMMENT |
| MEDIUM | README.de.md | 1267 | ### RAG-Chunking-Optionen (package) | COMMENT |
| MEDIUM | README.md | 243 | ### For RAG Builders & AI Engineers | COMMENT |
| MEDIUM | README.md | 407 | ### 🔗 RAG Framework Integrations | COMMENT |
| MEDIUM | README.md | 1301 | ### RAG Chunking Options (package) | COMMENT |
| MEDIUM | README.ja.md | 244 | ### RAG ビルダー & AI エンジニア向け | COMMENT |
| MEDIUM | README.ja.md | 408 | ### 🔗 RAG フレームワーク統合 | COMMENT |
| MEDIUM | README.ja.md | 1302 | ### RAG チャンキングオプション(パッケージング) | COMMENT |
| MEDIUM | README.pt-BR.md | 248 | ### Para Construtores de RAG e Engenheiros de IA | COMMENT |
| MEDIUM | README.pt-BR.md | 412 | ### 🔗 Integrações com Frameworks RAG | COMMENT |
| MEDIUM | README.pt-BR.md | 1306 | ### Opções de RAG Chunking (package) | COMMENT |
| MEDIUM | README.zh-CN.md | 244 | ### 面向 RAG 构建者和 AI 工程师 | COMMENT |
| MEDIUM | README.zh-CN.md | 408 | ### 🔗 RAG 框架集成 | COMMENT |
| MEDIUM | README.zh-CN.md | 1302 | ### RAG 分块选项(打包) | COMMENT |
| MEDIUM | README.ko.md | 244 | ### RAG 빌더 및 AI 엔지니어를 위해 | COMMENT |
| MEDIUM | README.ko.md | 408 | ### 🔗 RAG 프레임워크 통합 | COMMENT |
| MEDIUM | README.ko.md | 1302 | ### RAG 청킹 옵션 (패키징) | COMMENT |
| MEDIUM | README.ru.md | 247 | ### Для RAG-разработчиков и ИИ-инженеров | COMMENT |
| MEDIUM | README.ru.md | 411 | ### 🔗 Интеграции с RAG-фреймворками | COMMENT |
| MEDIUM | README.ru.md | 1284 | ### Опции RAG-фрагментации (упаковка) | COMMENT |
| MEDIUM | tests/test_chunking_integration.py | 199 | # Package with RAG platform (should auto-enable chunking) | COMMENT |
| MEDIUM⚡ | tests/test_enhance_skill_local.py | 507 | # run() orchestration | COMMENT |
| MEDIUM | tests/test_execution_context.py | 193 | # NOTE: RAG/chunking config was removed from ExecutionContext — it belongs to | COMMENT |
| MEDIUM | tests/test_adaptor_benchmarks.py | 94 | "haystack", # RAG frameworks | CODE |
| MEDIUM | tests/test_adaptor_benchmarks.py | 194 | # Test with LangChain (representative RAG adaptor) | COMMENT |
| MEDIUM⚡ | tests/test_unified_scraper_orchestration.py | 591 | # 6. run() orchestration | COMMENT |
| MEDIUM | docs/README.md | 177 | ### I Want to Build RAG Pipelines | COMMENT |
| MEDIUM | docs/BEST_PRACTICES.md | 494 | This guide was contributed by the [AI Writing Guide](https://github.com/jmagly/ai-writing-guide) project, which uses Ski | CODE |
| MEDIUM | docs/archive/historical/HTTPX_SKILL_GRADING.md | 1113 | - [4 Agentic AI Design Patterns - AIMultiple](https://research.aimultiple.com/agentic-ai-design-patterns/) | CODE |
| MEDIUM | docs/archive/historical/HTTPX_SKILL_GRADING.md | 1114 | - [Traditional RAG vs. Agentic RAG - NVIDIA](https://developer.nvidia.com/blog/traditional-rag-vs-agentic-rag-why-ai-age | CODE |
| MEDIUM | docs/user-guide/04-packaging.md | 186 | ## RAG Chunking | COMMENT |
| MEDIUM | docs/user-guide/04-packaging.md | 290 | # Use in RAG pipeline | COMMENT |
| MEDIUM | docs/plans/video/01_VIDEO_RESEARCH.md | 23 | ### How the Industry Processes Video for AI/RAG | COMMENT |
| MEDIUM | docs/plans/video/06_VIDEO_TESTING.md | 39 | ├── test_video_scraper.py # Main scraper orchestration tests | CODE |
| MEDIUM | docs/plans/video/05_VIDEO_OUTPUT.md | 485 | ## RAG Chunking for Video | COMMENT |
| MEDIUM | docs/plans/video/05_VIDEO_OUTPUT.md | 506 | ### RAG Metadata per Chunk | COMMENT |
| MEDIUM | docs/roadmap/README.md | 210 | ### vs RAG Systems | COMMENT |
| MEDIUM | docs/blog/UNIVERSAL_RAG_PREPROCESSOR.md | 1 | # Skill Seekers: The Universal Preprocessor for RAG Systems | COMMENT |
| MEDIUM | docs/blog/UNIVERSAL_RAG_PREPROCESSOR.md | 28 | ## The RAG Data Problem Nobody Talks About | COMMENT |
| MEDIUM | docs/blog/UNIVERSAL_RAG_PREPROCESSOR.md | 66 | # Day 6: Format for your RAG framework | COMMENT |
| MEDIUM | docs/blog/UNIVERSAL_RAG_PREPROCESSOR.md | 185 | python deploy_rag.py # Your RAG pipeline | CODE |
| 120 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | BULLETPROOF_QUICKSTART.md | 22 | ## Step 1: Install Python (5 minutes) | COMMENT |
| LOW | BULLETPROOF_QUICKSTART.md | 81 | ## Step 2: Install Git (3 minutes) | COMMENT |
| LOW | BULLETPROOF_QUICKSTART.md | 114 | ## Step 3: Get Skill Seeker (2 minutes) | COMMENT |
| LOW | BULLETPROOF_QUICKSTART.md | 168 | ## Step 4: Setup Virtual Environment & Install Skill Seekers (3 minutes) | COMMENT |
| LOW | BULLETPROOF_QUICKSTART.md | 241 | ## Step 5: Test Your Installation (1 minute) | COMMENT |
| LOW | BULLETPROOF_QUICKSTART.md | 266 | ## Step 6: Create Your First Skill! (5-10 minutes) | COMMENT |
| LOW | BULLETPROOF_QUICKSTART.md | 358 | ## Step 7: Package for Claude (30 seconds) | COMMENT |
| LOW | BULLETPROOF_QUICKSTART.md | 378 | ## Step 8: Upload to Claude (2 minutes) | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 754 | # Step 1: Generate config | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 760 | # Step 2: Validate config | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 768 | # Step 1: Add source | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 774 | # Step 2: Fetch config | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 782 | # Step 1: Split config | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 788 | # Step 2: Generate router | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 133 | # Step 2: List available configs | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 139 | # Step 3: Fetch specific config | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 142 | # Step 4: Verify config content | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 182 | # Step 2: List sources | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 187 | # Step 3: Get source details | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 191 | # Step 4: Clone via source name | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 199 | # Step 5: Fetch config | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 204 | # Step 6: Update source (re-add with different priority) | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 214 | # Step 7: Remove source | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 218 | # Step 8: Verify removal | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 241 | # Step 1: Add multiple sources with different priorities | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 246 | # Step 2: Verify sources are sorted by priority | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 253 | # Step 3: Enable/disable sources | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 256 | # Step 4: List enabled sources only | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 278 | # Step 1: Clone repository | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 286 | # Step 2: Add new commit to original repo | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 305 | # Step 3: Pull updates | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 313 | # Step 4: Verify new config is available | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 337 | # Step 1: Clone repository | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 342 | # Step 2: Modify local cache manually | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 349 | # Step 3: Force refresh | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 357 | # Step 4: Verify cache was reset | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 377 | # Step 1: Clone repository | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 382 | # Step 2: Try to fetch non-existent config | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 386 | # Step 3: Verify helpful error message with suggestions | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 460 | # Step 1: Add source with one instance | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 464 | # Step 2: Create new instance | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 467 | # Step 3: Verify source persists | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 473 | # Step 4: Modify source with new instance | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 480 | # Step 5: Verify changes persist | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 505 | # Step 1: Clone to cache_dir_1 | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 511 | # Step 2: Clone same repo to cache_dir_2 | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 517 | # Step 3: Verify both caches are independent | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 522 | # Step 4: Modify one cache | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 527 | # Step 5: Verify other cache is unaffected | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 552 | # Step 1: Add GitHub source | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 560 | # Step 2: Verify GITHUB_TOKEN was auto-detected | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 563 | # Step 3: Add GitLab source | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 571 | # Step 4: Verify GITLAB_TOKEN was auto-detected | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 599 | # Step 1: Team lead creates repository (already done by fixture) | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 601 | # Step 2: Team lead registers source | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 607 | # Step 3: Developer 1 clones and uses config | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 617 | # Step 4: Developer 2 uses same source (should use cache, not re-clone) | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 624 | # Step 5: Team lead updates repository | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 635 | # Step 6: Developers pull updates | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 643 | # Step 7: Config is removed from repo | COMMENT |
| 261 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | QWEN.md | 253 | except Exception as e: | CODE |
| MEDIUM | tests/test_mcp_inprocess_tools.py | 283 | print("Error: File not found: nope.py", file=sys.stderr) | CODE |
| LOW⚡ | tests/test_integration_adaptors.py | 122 | except Exception: | CODE |
| LOW⚡ | tests/test_integration_adaptors.py | 148 | except Exception as e: | CODE |
| LOW | tests/test_integration_adaptors.py | 228 | except Exception as e: | CODE |
| LOW⚡ | tests/test_integration_adaptors.py | 298 | except Exception as e: | CODE |
| LOW | tests/test_integration_adaptors.py | 373 | except Exception as e: | CODE |
| LOW⚡ | tests/test_integration_adaptors.py | 432 | except Exception as e: | CODE |
| LOW | tests/test_integration_adaptors.py | 533 | except Exception as e: | CODE |
| LOW | tests/test_c3_integration.py | 288 | except Exception as e: | CODE |
| LOW | tests/test_real_world_fastmcp.py | 105 | except Exception as e: | CODE |
| LOW⚡ | tests/test_utilities.py | 207 | except Exception as e: | CODE |
| LOW⚡ | tests/test_utilities.py | 218 | except Exception as e: | CODE |
| LOW | tests/test_video_scraper.py | 3103 | except Exception: | CODE |
| LOW | tests/test_unified_mcp_integration.py | 266 | except Exception as e: | CODE |
| LOW | tests/test_guide_enhancer.py | 463 | except Exception: | CODE |
| LOW | tests/test_bootstrap_skill_e2e.py | 164 | except Exception as e: | CODE |
| LOW⚡ | tests/test_adaptors/test_adaptors_e2e.py | 531 | except Exception as e: | CODE |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 858 | except Exception as e: | CODE |
| LOW | docs/plans/video/01_VIDEO_RESEARCH.md | 258 | except Exception: | CODE |
| LOW⚡ | docs/plans/video/03_VIDEO_PIPELINE.md | 361 | except Exception as e: | CODE |
| LOW⚡ | docs/plans/video/03_VIDEO_PIPELINE.md | 369 | except Exception: | CODE |
| LOW⚡ | docs/plans/video/03_VIDEO_PIPELINE.md | 377 | except Exception: | CODE |
| LOW | docs/plans/video/03_VIDEO_PIPELINE.md | 388 | except Exception: | CODE |
| LOW | docs/plans/video/03_VIDEO_PIPELINE.md | 399 | except Exception: | CODE |
| LOW | docs/roadmap/INTELLIGENCE_SYSTEM_ARCHITECTURE.md | 749 | except Exception as e: | CODE |
| LOW | docs/zh-CN/reference/CODE_QUALITY.md | 157 | except Exception: | CODE |
| LOW | docs/zh-CN/reference/CODE_QUALITY.md | 165 | except Exception as e: | CODE |
| LOW | docs/integrations/WEAVIATE.md | 282 | except Exception as e: | CODE |
| LOW | docs/integrations/WEAVIATE.md | 722 | except Exception as e: | CODE |
| LOW | docs/integrations/QDRANT.md | 774 | except Exception as e: | CODE |
| LOW | docs/reference/CODE_QUALITY.md | 157 | except Exception: | CODE |
| LOW | docs/reference/CODE_QUALITY.md | 165 | except Exception as e: | CODE |
| LOW | docs/strategy/ARBITRARY_LIMITS_AND_DEAD_CODE_PLAN.md | 277 | except Exception as e: | CODE |
| LOW | examples/test_http_server.py | 63 | except Exception as e: | CODE |
| LOW | examples/test_http_server.py | 84 | except Exception as e: | CODE |
| LOW | examples/pinecone-upsert/quickstart.py | 248 | except Exception as e: | CODE |
| LOW⚡ | examples/pinecone-upsert/quickstart.py | 343 | except Exception as e: | CODE |
| LOW | examples/continue-dev-universal/context_server.py | 168 | except Exception as e: | CODE |
| LOW | examples/weaviate-example/3_query_example.py | 49 | except Exception as e: | CODE |
| LOW | examples/weaviate-example/3_query_example.py | 97 | except Exception as e: | CODE |
| LOW | examples/weaviate-example/3_query_example.py | 132 | except Exception as e: | CODE |
| LOW | examples/weaviate-example/3_query_example.py | 172 | except Exception as e: | CODE |
| LOW | examples/weaviate-example/3_query_example.py | 203 | except Exception as e: | CODE |
| LOW | examples/weaviate-example/3_query_example.py | 235 | except Exception as e: | CODE |
| LOW | examples/weaviate-example/2_upload_to_weaviate.py | 59 | except Exception as e: | CODE |
| LOW | examples/llama-index-query-engine/quickstart.py | 163 | except Exception as e: | CODE |
| LOW⚡ | examples/llama-index-query-engine/quickstart.py | 212 | except Exception as e: | CODE |
| LOW | examples/cursor-react-skill/generate_cursorrules.py | 138 | except Exception as e: | CODE |
| LOW | examples/chroma-example/3_query_example.py | 41 | except Exception as e: | CODE |
| LOW | examples/chroma-example/3_query_example.py | 49 | except Exception as e: | CODE |
| LOW | examples/chroma-example/3_query_example.py | 101 | except Exception as e: | CODE |
| LOW | examples/chroma-example/3_query_example.py | 143 | except Exception as e: | CODE |
| LOW | examples/chroma-example/3_query_example.py | 174 | except Exception as e: | CODE |
| LOW | examples/chroma-example/3_query_example.py | 214 | except Exception as e: | CODE |
| LOW | examples/chroma-example/3_query_example.py | 242 | except Exception as e: | CODE |
| LOW | examples/chroma-example/2_upload_to_chroma.py | 50 | except Exception as e: | CODE |
| LOW | examples/chroma-example/2_upload_to_chroma.py | 95 | except Exception as e: | CODE |
| LOW | examples/chroma-example/2_upload_to_chroma.py | 115 | except Exception as e: | CODE |
| LOW | examples/haystack-pipeline/quickstart.py | 126 | except Exception as e: | CODE |
| 371 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 344 | Scrape a single page and extract content. Args: url: The URL to scrape selectors: Dictionary o | STRING |
| HIGH | docs/zh-CN/reference/CODE_QUALITY.md | 534 | Scrape documentation from a website using BFS traversal. Args: base_url: The root URL to start scraping fro | STRING |
| HIGH | docs/reference/CODE_QUALITY.md | 534 | Scrape documentation from a website using BFS traversal. Args: base_url: The root URL to start scraping fro | STRING |
| HIGH | examples/continue-dev-universal/context_server.py | 42 | Load framework documentation from Skill Seekers output. Args: framework: Framework name (vue, react, d | STRING |
| HIGH | src/skill_seekers/benchmark/runner.py | 52 | Run single benchmark. Args: name: Benchmark name benchmark_func: Function that | STRING |
| HIGH | src/skill_seekers/benchmark/runner.py | 94 | Run multiple benchmarks. Args: benchmarks: Dict of name -> benchmark function | STRING |
| HIGH | src/skill_seekers/benchmark/runner.py | 122 | Compare two benchmark reports. Args: baseline_path: Path to baseline report cu | STRING |
| HIGH | src/skill_seekers/benchmark/runner.py | 259 | Get path to latest benchmark with given name. Args: name: Benchmark name Returns: | STRING |
| HIGH | src/skill_seekers/benchmark/framework.py | 134 | Time an operation. Args: operation: Operation name iterations: Number of itera | STRING |
| HIGH | src/skill_seekers/benchmark/framework.py | 166 | Track memory usage. Args: operation: Operation name Yields: None | STRING |
| HIGH | src/skill_seekers/benchmark/framework.py | 229 | Measure function execution. Args: func: Function to measure *args: Positional | STRING |
| HIGH | src/skill_seekers/benchmark/framework.py | 260 | Decorator for timing functions. Args: operation: Operation name (defaults to func.__name__ | STRING |
| HIGH | src/skill_seekers/embedding/server.py | 123 | Generate embedding for a single text. Args: request: Embedding request Returns: | STRING |
| HIGH | src/skill_seekers/embedding/server.py | 162 | Generate embeddings for multiple texts. Args: request: Batch embedding request Re | STRING |
| HIGH | src/skill_seekers/embedding/server.py | 227 | Generate embeddings for skill content. Args: request: Skill embedding request Ret | STRING |
| HIGH | src/skill_seekers/embedding/generator.py | 190 | Generate embedding for a single text. Args: text: Text to embed model: Model n | STRING |
| HIGH | src/skill_seekers/embedding/generator.py | 224 | Generate embeddings for multiple texts. Args: texts: List of texts to embed mo | STRING |
| HIGH | src/skill_seekers/mcp/server_fastmcp.py | 735 | Extract configuration patterns from config files with optional AI enhancement. Analyzes configuration files in | STRING |
| HIGH | src/skill_seekers/mcp/server_fastmcp.py | 1140 | Submit a custom config file to the community. Args: config_path: Path to config JSON file to submit (e | STRING |
| HIGH | src/skill_seekers/mcp/tools/source_tools.py | 343 | Submit a custom config to skill-seekers-configs repository via GitHub issue. Validates the config (both legacy | STRING |
| HIGH | src/skill_seekers/cli/skill_converter.py | 166 | Get the appropriate converter for a source type. Args: source_type: Source type from SourceDetector (web, g | STRING |
| HIGH | src/skill_seekers/cli/pptx_scraper.py | 828 | Group slides into sections based on layout type and section breaks. Section breaks are detected from: 1 | STRING |
| HIGH | src/skill_seekers/cli/codebase_scraper.py | 989 | Analyze local codebase and extract code knowledge. Args: directory: Directory to analyze outpu | STRING |
| HIGH | src/skill_seekers/cli/video_visual.py | 644 | Detect scene boundaries in a video using scenedetect. Args: video_path: Path to video file. Returns: | STRING |
| HIGH | src/skill_seekers/cli/video_visual.py | 675 | Extract keyframes at specified timestamps using OpenCV. Args: video_path: Path to video file. times | STRING |
| HIGH | src/skill_seekers/cli/video_visual.py | 996 | Extract text from a video frame using EasyOCR. Applies frame-type-aware preprocessing and OCR parameters for be | STRING |
| HIGH | src/skill_seekers/cli/browser_renderer.py | 123 | Render a page with JavaScript execution and return the HTML. Args: url: URL to render Retu | STRING |
| HIGH | src/skill_seekers/cli/config_validator.py | 529 | Validate config file and return validator instance. Args: config_path: Path to config JSON file R | STRING |
| HIGH | src/skill_seekers/cli/how_to_guide_builder.py | 873 | Main entry point - build guides from workflow examples. Args: examples: List of TestExampl | STRING |
| HIGH | src/skill_seekers/cli/video_scraper.py | 112 | Parse a time string into seconds. Accepted formats: - Plain seconds: ``"330"`` or ``"330.5"`` - MM: | STRING |
| HIGH | src/skill_seekers/cli/openapi_scraper.py | 222 | Load and parse a spec from a local file. Supports both YAML (.yaml, .yml) and JSON (.json) files. Args | STRING |
| HIGH | src/skill_seekers/cli/openapi_scraper.py | 249 | Fetch and parse a spec from a remote URL. Args: url: URL to fetch the spec from. Returns: | STRING |
| HIGH | src/skill_seekers/cli/openapi_scraper.py | 286 | Parse raw content as YAML or JSON. Tries JSON first (faster), falls back to YAML. YAML is a superset of | STRING |
| HIGH | src/skill_seekers/cli/openapi_scraper.py | 320 | Detect the OpenAPI/Swagger version from the spec. Args: spec: Parsed spec dictionary. Retu | STRING |
| HIGH | src/skill_seekers/cli/openapi_scraper.py | 349 | Load previously extracted data from a JSON file. Args: json_path: Path to the JSON file. Defaults t | STRING |
| HIGH | src/skill_seekers/cli/rate_limit_handler.py | 136 | Check if response indicates rate limit and handle it. Args: response: requests.Response ob | STRING |
| HIGH | src/skill_seekers/cli/rate_limit_handler.py | 218 | Handle rate limit based on strategy. Args: rate_info: Dict with rate limit information | STRING |
| HIGH | src/skill_seekers/cli/doc_scraper.py | 2392 | Load and validate configuration from JSON file. Automatically fetches configs from SkillSeekersWeb.com API if not f | STRING |
| HIGH | src/skill_seekers/cli/install_agent.py | 58 | Resolve the installation path for a given agent. Handles both global paths (~/.<agent>/skills/) and project-re | STRING |
| HIGH | src/skill_seekers/cli/utils.py | 366 | Retry an operation with exponential backoff. Useful for network operations that may fail due to transient errors. | STRING |
| HIGH | src/skill_seekers/cli/utils.py | 423 | Async version of retry_with_backoff for async operations. Args: operation: Async function to retry (takes n | STRING |
| HIGH | src/skill_seekers/cli/utils.py | 511 | Percent-encode square brackets in a URL's path and query components. Unencoded ``[`` and ``]`` in the path are tech | STRING |
| HIGH | src/skill_seekers/cli/confluence_scraper.py | 1276 | Load previously extracted data from a JSON file. Args: json_path: Path to the intermediate extracte | STRING |
| HIGH | src/skill_seekers/cli/html_scraper.py | 65 | Collect HTML files from a path (file or directory). For a single file, returns a list with that file. For a directo | STRING |
| HIGH | src/skill_seekers/cli/source_detector.py | 50 | Detect source type and extract information. Args: source: User input (URL, path, repo, etc.) | STRING |
| HIGH | src/skill_seekers/cli/video_metadata.py | 111 | Extract metadata from a YouTube video URL without downloading. Args: url: YouTube video URL. Returns: | STRING |
| HIGH | src/skill_seekers/cli/video_metadata.py | 200 | Resolve a YouTube playlist URL to a list of video URLs. Args: url: YouTube playlist URL. Returns: | STRING |
| HIGH | src/skill_seekers/cli/video_metadata.py | 236 | Resolve a YouTube channel URL to a list of recent video URLs. Args: url: YouTube channel URL. max_v | STRING |
| HIGH | src/skill_seekers/cli/generate_router.py | 295 | Extract readable topic from skill name. Examples: - "fastmcp-oauth" -> "OAuth authentication" | STRING |
| HIGH | src/skill_seekers/cli/generate_router.py | 466 | Convert GitHub issue title to natural question format. Examples: - "OAuth fails on redirect" → | STRING |
| HIGH | src/skill_seekers/cli/generate_router.py | 535 | Parse issue title to extract problem-solution pattern. Analyzes the structure of closed issue titles t | STRING |
| HIGH | src/skill_seekers/cli/ai_enhancer.py | 230 | Enhance test examples with AI context and explanations. Args: examples: List of extracted | STRING |
| HIGH | src/skill_seekers/cli/ai_enhancer.py | 352 | Group enhanced examples into tutorial sections. Args: examples: Enhanced examples with AI | STRING |
| HIGH | src/skill_seekers/cli/man_scraper.py | 285 | Read man page files from a directory and parse them. Recognised extensions: ``.1`` -- ``.8``, ``.1p``, ``.3p``, | STRING |
| HIGH | src/skill_seekers/cli/video_transcript.py | 49 | Fetch YouTube captions via youtube-transcript-api. Args: video_id: YouTube video ID (11 chars). lan | STRING |
| HIGH | src/skill_seekers/cli/github_fetcher.py | 147 | Fetch everything and split into 3 streams. Args: output_dir: Directory to clone repository | STRING |
| HIGH | src/skill_seekers/cli/github_fetcher.py | 305 | Fetch one page of issues. Args: state: 'open' or 'closed' max_count: Maximum i | STRING |
| HIGH | src/skill_seekers/cli/storage/base_storage.py | 51 | Upload file to cloud storage. Args: local_path: Path to local file remote_path | STRING |
| HIGH | src/skill_seekers/cli/storage/base_storage.py | 99 | List files in cloud storage. Args: prefix: Prefix to filter files (directory path) | STRING |
| HIGH | src/skill_seekers/cli/storage/base_storage.py | 129 | Generate signed URL for file access. Args: remote_path: Path to file in cloud storage | STRING |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_adaptors/test_markdown_adaptor.py | 0 | test that package creates zip file with correct structure | STRING |
| HIGH | tests/test_adaptors/test_minimax_adaptor.py | 0 | test that package creates zip file with correct structure | STRING |
| HIGH | tests/test_adaptors/test_claude_adaptor.py | 0 | test that package creates zip file with correct structure | STRING |
| HIGH | tests/test_adaptors/test_openai_adaptor.py | 0 | test that package creates zip file with correct structure | STRING |
| HIGH | tests/test_adaptors/test_chroma_adaptor.py | 0 | test upload returns instructions (no actual upload). | STRING |
| HIGH | tests/test_adaptors/test_qdrant_adaptor.py | 0 | test upload returns instructions (no actual upload). | STRING |
| HIGH | tests/test_adaptors/test_langchain_adaptor.py | 0 | test upload returns instructions (no actual upload). | STRING |
| HIGH | tests/test_adaptors/test_llama_index_adaptor.py | 0 | test upload returns instructions (no actual upload). | STRING |
| HIGH | tests/test_adaptors/test_haystack_adaptor.py | 0 | test upload returns instructions (no actual upload). | STRING |
| HIGH | tests/test_adaptors/test_faiss_adaptor.py | 0 | test upload returns instructions (no actual upload). | STRING |
| HIGH | tests/test_adaptors/test_weaviate_adaptor.py | 0 | test upload returns instructions (no actual upload). | STRING |
| HIGH | tests/test_adaptors/test_chroma_adaptor.py | 0 | test that api key validation returns false (no api needed). | STRING |
| HIGH | tests/test_adaptors/test_qdrant_adaptor.py | 0 | test that api key validation returns false (no api needed). | STRING |
| HIGH | tests/test_adaptors/test_langchain_adaptor.py | 0 | test that api key validation returns false (no api needed). | STRING |
| HIGH | tests/test_adaptors/test_llama_index_adaptor.py | 0 | test that api key validation returns false (no api needed). | STRING |
| HIGH | tests/test_adaptors/test_haystack_adaptor.py | 0 | test that api key validation returns false (no api needed). | STRING |
| HIGH | tests/test_adaptors/test_faiss_adaptor.py | 0 | test that api key validation returns false (no api needed). | STRING |
| HIGH | tests/test_adaptors/test_weaviate_adaptor.py | 0 | test that api key validation returns false (no api needed). | STRING |
| HIGH | tests/test_adaptors/test_langchain_adaptor.py | 0 | the copy-paste upload snippet must handle both package shapes. | STRING |
| HIGH | tests/test_adaptors/test_llama_index_adaptor.py | 0 | the copy-paste upload snippet must handle both package shapes. | STRING |
| HIGH | tests/test_adaptors/test_haystack_adaptor.py | 0 | the copy-paste upload snippet must handle both package shapes. | STRING |
| HIGH | tests/test_adaptors/test_gemini_adaptor.py | 0 | test successful enhancement - skipped (needs real api for integration test) | STRING |
| HIGH | tests/test_adaptors/test_claude_adaptor.py | 0 | test successful enhancement - skipped (needs real api for integration test) | STRING |
| HIGH | tests/test_adaptors/test_openai_adaptor.py | 0 | test successful enhancement - skipped (needs real api for integration test) | STRING |
| HIGH | docs/zh-CN/reference/C3_x_Router_Architecture.md | 0 | fetch from github and split into 3 streams. usage: fetcher = githubthreestreamfetcher( repo_url="https://github.com/face | STRING |
| HIGH | docs/reference/C3_x_Router_Architecture.md | 0 | fetch from github and split into 3 streams. usage: fetcher = githubthreestreamfetcher( repo_url="https://github.com/face | STRING |
| HIGH | src/skill_seekers/cli/github_fetcher.py | 0 | fetch from github and split into 3 streams. usage: fetcher = githubthreestreamfetcher( repo_url="https://github.com/face | STRING |
| HIGH | docs/zh-CN/reference/C3_x_Router_Architecture.md | 0 | unified analyzer for any codebase (local or github). key insight: c3.x is a depth mode, not a source type. usage: analyz | STRING |
| HIGH | docs/reference/C3_x_Router_Architecture.md | 0 | unified analyzer for any codebase (local or github). key insight: c3.x is a depth mode, not a source type. usage: analyz | STRING |
| HIGH | src/skill_seekers/cli/unified_codebase_analyzer.py | 0 | unified analyzer for any codebase (local or github). key insight: c3.x is a depth mode, not a source type. usage: analyz | STRING |
| HIGH | src/skill_seekers/mcp/git_repo.py | 0 | back-compat shim — module moved to ``skill_seekers.services.source_manager``. deprecated: import from ``skill_seekers.se | STRING |
| HIGH | src/skill_seekers/mcp/config_publisher.py | 0 | back-compat shim — module moved to ``skill_seekers.services.source_manager``. deprecated: import from ``skill_seekers.se | STRING |
| HIGH | src/skill_seekers/mcp/marketplace_publisher.py | 0 | back-compat shim — module moved to ``skill_seekers.services.source_manager``. deprecated: import from ``skill_seekers.se | STRING |
| HIGH | src/skill_seekers/mcp/marketplace_manager.py | 0 | back-compat shim — module moved to ``skill_seekers.services.source_manager``. deprecated: import from ``skill_seekers.se | STRING |
| HIGH | src/skill_seekers/mcp/source_manager.py | 0 | back-compat shim — module moved to ``skill_seekers.services.source_manager``. deprecated: import from ``skill_seekers.se | STRING |
| HIGH | src/skill_seekers/cli/asciidoc_scraper.py | 0 | extract key concepts from markdown headings across all sections. | STRING |
| HIGH | src/skill_seekers/cli/document_skill_builder.py | 0 | extract key concepts from markdown headings across all sections. | STRING |
| HIGH | src/skill_seekers/cli/jupyter_scraper.py | 0 | extract key concepts from markdown headings across all sections. | STRING |
| HIGH | src/skill_seekers/cli/adaptors/claude.py | 0 | build openai api prompt for enhancement. args: skill_name: name of the skill references: dictionary of reference content | STRING |
| HIGH | src/skill_seekers/cli/adaptors/gemini.py | 0 | build openai api prompt for enhancement. args: skill_name: name of the skill references: dictionary of reference content | STRING |
| HIGH | src/skill_seekers/cli/adaptors/openai.py | 0 | build openai api prompt for enhancement. args: skill_name: name of the skill references: dictionary of reference content | STRING |
| HIGH | src/skill_seekers/cli/adaptors/llama_index.py | 0 | chroma format doesn't use api keys for packaging. args: api_key: not used returns: always false (no api needed for packa | STRING |
| HIGH | src/skill_seekers/cli/adaptors/haystack.py | 0 | chroma format doesn't use api keys for packaging. args: api_key: not used returns: always false (no api needed for packa | STRING |
| HIGH | src/skill_seekers/cli/adaptors/weaviate.py | 0 | chroma format doesn't use api keys for packaging. args: api_key: not used returns: always false (no api needed for packa | STRING |
| HIGH | src/skill_seekers/cli/adaptors/langchain.py | 0 | chroma format doesn't use api keys for packaging. args: api_key: not used returns: always false (no api needed for packa | STRING |
| HIGH | src/skill_seekers/cli/adaptors/chroma.py | 0 | chroma format doesn't use api keys for packaging. args: api_key: not used returns: always false (no api needed for packa | STRING |
| HIGH | src/skill_seekers/cli/adaptors/llama_index.py | 0 | chroma format doesn't support ai enhancement. enhancement should be done before conversion using: skill-seekers enhance | STRING |
| HIGH | src/skill_seekers/cli/adaptors/haystack.py | 0 | chroma format doesn't support ai enhancement. enhancement should be done before conversion using: skill-seekers enhance | STRING |
| HIGH | src/skill_seekers/cli/adaptors/weaviate.py | 0 | chroma format doesn't support ai enhancement. enhancement should be done before conversion using: skill-seekers enhance | STRING |
| HIGH | src/skill_seekers/cli/adaptors/langchain.py | 0 | chroma format doesn't support ai enhancement. enhancement should be done before conversion using: skill-seekers enhance | STRING |
| HIGH | src/skill_seekers/cli/adaptors/chroma.py | 0 | chroma format doesn't support ai enhancement. enhancement should be done before conversion using: skill-seekers enhance | STRING |
| HIGH | src/skill_seekers/cli/arguments/manpage.py | 0 | add all jupyter command arguments to a parser. registers shared args (name, description, output, enhance-level, api-key, | STRING |
| HIGH | src/skill_seekers/cli/arguments/rss.py | 0 | add all jupyter command arguments to a parser. registers shared args (name, description, output, enhance-level, api-key, | STRING |
| HIGH | src/skill_seekers/cli/arguments/confluence.py | 0 | add all jupyter command arguments to a parser. registers shared args (name, description, output, enhance-level, api-key, | STRING |
| HIGH | src/skill_seekers/cli/arguments/openapi.py | 0 | add all jupyter command arguments to a parser. registers shared args (name, description, output, enhance-level, api-key, | STRING |
| HIGH | src/skill_seekers/cli/arguments/html.py | 0 | add all jupyter command arguments to a parser. registers shared args (name, description, output, enhance-level, api-key, | STRING |
| HIGH | src/skill_seekers/cli/arguments/pdf.py | 0 | add all jupyter command arguments to a parser. registers shared args (name, description, output, enhance-level, api-key, | STRING |
| HIGH | src/skill_seekers/cli/arguments/chat.py | 0 | add all jupyter command arguments to a parser. registers shared args (name, description, output, enhance-level, api-key, | STRING |
| HIGH | src/skill_seekers/cli/arguments/asciidoc.py | 0 | add all jupyter command arguments to a parser. registers shared args (name, description, output, enhance-level, api-key, | STRING |
| HIGH | src/skill_seekers/cli/arguments/notion.py | 0 | add all jupyter command arguments to a parser. registers shared args (name, description, output, enhance-level, api-key, | STRING |
| 16 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_pinecone_adaptor.py | 876 | CODE | |
| LOW | tests/test_create_arguments.py | 101 | CODE | |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 324 | CODE | |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 702 | CODE | |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 796 | CODE | |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 820 | CODE | |
| LOW | examples/llama-index-query-engine/quickstart.py | 122 | CODE | |
| LOW | examples/chroma-example/2_upload_to_chroma.py | 66 | CODE | |
| LOW | scripts/translate_doc.py | 199 | CODE | |
| LOW | api/config_analyzer.py | 182 | CODE | |
| LOW | src/skill_seekers/benchmark/runner.py | 121 | CODE | |
| LOW | src/skill_seekers/embedding/server.py | 161 | CODE | |
| LOW | src/skill_seekers/mcp/server.py | 66 | CODE | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 544 | CODE | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 683 | CODE | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 914 | CODE | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 1187 | CODE | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 1476 | CODE | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 1803 | CODE | |
| LOW | src/skill_seekers/mcp/tools/config_tools.py | 110 | CODE | |
| LOW | src/skill_seekers/mcp/tools/config_tools.py | 160 | CODE | |
| LOW | src/skill_seekers/mcp/tools/scraping_tools.py | 108 | CODE | |
| LOW | src/skill_seekers/mcp/tools/scraping_tools.py | 294 | CODE | |
| LOW | src/skill_seekers/mcp/tools/_common.py | 89 | CODE | |
| LOW | src/skill_seekers/mcp/tools/packaging_tools.py | 30 | CODE | |
| LOW | src/skill_seekers/mcp/tools/packaging_tools.py | 229 | CODE | |
| LOW | src/skill_seekers/mcp/tools/packaging_tools.py | 369 | CODE | |
| LOW | src/skill_seekers/mcp/tools/source_tools.py | 31 | CODE | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 125 | CODE | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 412 | CODE | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 553 | CODE | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 641 | CODE | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 718 | CODE | |
| LOW | src/skill_seekers/cli/agent_client.py | 346 | CODE | |
| LOW | src/skill_seekers/cli/agent_client.py | 440 | CODE | |
| LOW | src/skill_seekers/cli/agent_client.py | 590 | CODE | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 106 | CODE | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 395 | CODE | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 484 | CODE | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 628 | CODE | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 996 | CODE | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 1124 | CODE | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 379 | CODE | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 460 | CODE | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 588 | CODE | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 651 | CODE | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 1317 | CODE | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 1448 | CODE | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 1511 | CODE | |
| LOW | src/skill_seekers/cli/github_scraper.py | 103 | CODE | |
| LOW | src/skill_seekers/cli/github_scraper.py | 405 | CODE | |
| LOW | src/skill_seekers/cli/github_scraper.py | 724 | CODE | |
| LOW | src/skill_seekers/cli/github_scraper.py | 845 | CODE | |
| LOW | src/skill_seekers/cli/scan_command.py | 467 | CODE | |
| LOW | src/skill_seekers/cli/scan_command.py | 1113 | CODE | |
| LOW | src/skill_seekers/cli/codebase_scraper.py | 232 | CODE | |
| LOW | src/skill_seekers/cli/codebase_scraper.py | 289 | CODE | |
| LOW | src/skill_seekers/cli/codebase_scraper.py | 644 | CODE | |
| LOW | src/skill_seekers/cli/codebase_scraper.py | 900 | CODE | |
| LOW | src/skill_seekers/cli/codebase_scraper.py | 968 | CODE | |
| 238 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_mcp_fastmcp.py | 754 | # Step 1: Generate config | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 760 | # Step 2: Validate config | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 768 | # Step 1: Add source | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 774 | # Step 2: Fetch config | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 782 | # Step 1: Split config | COMMENT |
| LOW⚡ | tests/test_mcp_fastmcp.py | 788 | # Step 2: Generate router | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 133 | # Step 2: List available configs | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 139 | # Step 3: Fetch specific config | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 142 | # Step 4: Verify config content | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 182 | # Step 2: List sources | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 187 | # Step 3: Get source details | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 191 | # Step 4: Clone via source name | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 199 | # Step 5: Fetch config | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 204 | # Step 6: Update source (re-add with different priority) | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 214 | # Step 7: Remove source | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 218 | # Step 8: Verify removal | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 241 | # Step 1: Add multiple sources with different priorities | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 246 | # Step 2: Verify sources are sorted by priority | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 253 | # Step 3: Enable/disable sources | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 256 | # Step 4: List enabled sources only | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 278 | # Step 1: Clone repository | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 286 | # Step 2: Add new commit to original repo | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 305 | # Step 3: Pull updates | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 313 | # Step 4: Verify new config is available | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 337 | # Step 1: Clone repository | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 342 | # Step 2: Modify local cache manually | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 349 | # Step 3: Force refresh | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 357 | # Step 4: Verify cache was reset | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 377 | # Step 1: Clone repository | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 382 | # Step 2: Try to fetch non-existent config | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 386 | # Step 3: Verify helpful error message with suggestions | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 460 | # Step 1: Add source with one instance | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 464 | # Step 2: Create new instance | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 467 | # Step 3: Verify source persists | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 473 | # Step 4: Modify source with new instance | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 480 | # Step 5: Verify changes persist | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 505 | # Step 1: Clone to cache_dir_1 | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 511 | # Step 2: Clone same repo to cache_dir_2 | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 517 | # Step 3: Verify both caches are independent | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 522 | # Step 4: Modify one cache | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 527 | # Step 5: Verify other cache is unaffected | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 552 | # Step 1: Add GitHub source | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 560 | # Step 2: Verify GITHUB_TOKEN was auto-detected | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 563 | # Step 3: Add GitLab source | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 571 | # Step 4: Verify GITLAB_TOKEN was auto-detected | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 599 | # Step 1: Team lead creates repository (already done by fixture) | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 601 | # Step 2: Team lead registers source | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 607 | # Step 3: Developer 1 clones and uses config | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 617 | # Step 4: Developer 2 uses same source (should use cache, not re-clone) | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 624 | # Step 5: Team lead updates repository | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 635 | # Step 6: Developers pull updates | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 643 | # Step 7: Config is removed from repo | COMMENT |
| LOW⚡ | tests/test_git_sources_e2e.py | 652 | # Step 8: Error handling works correctly | COMMENT |
| LOW | tests/test_git_sources_e2e.py | 122 | # Step 1: Clone repository | COMMENT |
| LOW | tests/test_git_sources_e2e.py | 169 | # Step 1: Add source to registry | COMMENT |
| LOW⚡ | tests/test_mcp_server.py | 564 | # Step 1: Generate config using skill_seeker_server | COMMENT |
| LOW⚡ | tests/test_mcp_server.py | 573 | # Step 2: Validate config | COMMENT |
| LOW⚡ | tests/test_mcp_server.py | 578 | # Step 3: List configs | COMMENT |
| LOW⚡ | tests/test_issue_277_discord_e2e.py | 61 | # Step 1: Detect llms.txt | COMMENT |
| LOW⚡ | tests/test_issue_277_discord_e2e.py | 64 | # Step 2: Download the largest variant (same logic as doc_scraper) | COMMENT |
| 81 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.sh | 266 | # Check if HTTP transport needed | COMMENT |
| LOW | setup.sh | 271 | # Check if this is an HTTP agent | COMMENT |
| LOW | setup.sh | 298 | # Check if config already exists | COMMENT |
| LOW | setup.sh | 307 | # Check if skill-seeker already configured | COMMENT |
| LOW⚡ | setup.sh | 388 | # Check if any selected agent needs HTTP | COMMENT |
| LOW | setup.sh | 425 | # Check if server started | COMMENT |
| LOW⚡ | setup_mcp.sh | 107 | # Check if we're in a virtual environment | COMMENT |
| LOW⚡ | setup_mcp.sh | 476 | # Check if any selected agent needs HTTP | COMMENT |
| LOW | setup_mcp.sh | 192 | # Check if uvicorn is available | COMMENT |
| LOW | setup_mcp.sh | 346 | # Check if HTTP transport needed | COMMENT |
| LOW | setup_mcp.sh | 351 | # Check if this is an HTTP agent | COMMENT |
| LOW | setup_mcp.sh | 378 | # Check if config already exists | COMMENT |
| LOW | setup_mcp.sh | 387 | # Check if skill-seeker already configured | COMMENT |
| LOW | setup_mcp.sh | 513 | # Check if server started | COMMENT |
| LOW⚡ | tests/test_source_manager.py | 185 | # Read file directly | COMMENT |
| LOW⚡ | tests/test_source_manager.py | 335 | # Read file directly | COMMENT |
| LOW | tests/test_git_sources_e2e.py | 27 | # Check if MCP is available | COMMENT |
| LOW⚡ | tests/test_integration_adaptors.py | 132 | # Check if Weaviate client is installed | COMMENT |
| LOW⚡ | tests/test_integration_adaptors.py | 138 | # Check if Weaviate is running | COMMENT |
| LOW⚡ | tests/test_integration_adaptors.py | 282 | # Check if ChromaDB is installed | COMMENT |
| LOW⚡ | tests/test_integration_adaptors.py | 288 | # Check if Chroma is running | COMMENT |
| LOW⚡ | tests/test_integration_adaptors.py | 415 | # Check if Qdrant client is installed | COMMENT |
| LOW⚡ | tests/test_integration_adaptors.py | 422 | # Check if Qdrant is running | COMMENT |
| LOW | tests/test_cloud_storage.py | 20 | # Check if cloud storage dependencies are available | COMMENT |
| LOW | tests/test_issue_219_e2e.py | 24 | # Check if anthropic is available | COMMENT |
| LOW | tests/test_create_arguments.py | 110 | # Check if this flag already exists in source-specific args | COMMENT |
| LOW | tests/test_how_to_guide_builder.py | 1041 | # Check if all keywords are in integration_keywords list | STRING |
| LOW | tests/test_server_fastmcp_http.py | 13 | # Check if starlette is available | COMMENT |
| LOW | tests/test_config_extractor.py | 159 | # Check if parsing failed due to missing PyYAML | STRING |
| LOW | tests/test_config_extractor.py | 317 | # Check if parsing failed due to missing toml/tomli | STRING |
| LOW⚡ | examples/http_transport_examples.sh | 107 | # Check if port is already in use | COMMENT |
| LOW | examples/pinecone-upsert/quickstart.py | 38 | # Check if index exists | COMMENT |
| LOW | examples/pinecone-upsert/quickstart.py | 237 | # Display results | COMMENT |
| LOW | examples/pinecone-upsert/quickstart.py | 278 | # Check if documents exist | COMMENT |
| LOW | examples/continue-dev-universal/quickstart.py | 76 | # Check if already exists | COMMENT |
| LOW | examples/weaviate-example/1_generate_skill.py | 23 | # Check if skill-seekers is installed | COMMENT |
| LOW | examples/weaviate-example/1_generate_skill.py | 76 | # Check if output file exists | COMMENT |
| LOW | examples/weaviate-example/2_upload_to_weaviate.py | 51 | # Check if ready | COMMENT |
| LOW | examples/weaviate-example/2_upload_to_weaviate.py | 84 | # Check if class already exists | COMMENT |
| LOW⚡ | examples/llama-index-query-engine/quickstart.py | 180 | # Check if documents exist | COMMENT |
| LOW | examples/faiss-example/3_query_example.py | 43 | # Display results | COMMENT |
| LOW | examples/chroma-example/1_generate_skill.py | 23 | # Check if skill-seekers is installed | COMMENT |
| LOW | examples/chroma-example/1_generate_skill.py | 76 | # Check if output file exists | COMMENT |
| LOW | examples/chroma-example/2_upload_to_chroma.py | 71 | # Check if collection exists | COMMENT |
| LOW | examples/haystack-pipeline/quickstart.py | 20 | # Check if Haystack is installed | COMMENT |
| LOW | examples/haystack-pipeline/quickstart.py | 95 | # Display results | COMMENT |
| LOW⚡ | examples/langchain-rag-pipeline/quickstart.py | 145 | # Check if documents exist | COMMENT |
| LOW | scripts/run_benchmarks.sh | 26 | # Check if package is installed | COMMENT |
| LOW | scripts/check_translation_sync.sh | 2 | # Check if Chinese translations are in sync with English originals | COMMENT |
| LOW | scripts/check_translation_sync.sh | 19 | # Check if Chinese version exists | COMMENT |
| LOW | scripts/check_translation_sync.sh | 30 | # Check if English is newer | COMMENT |
| LOW | src/skill_seekers/embedding/cache.py | 27 | # Check if cached | STRING |
| LOW | src/skill_seekers/mcp/server_fastmcp.py | 1761 | # Check if MCP is available | COMMENT |
| LOW | src/skill_seekers/mcp/agent_detector.py | 120 | # Check if parent directory exists (agent is likely installed) | COMMENT |
| LOW | src/skill_seekers/mcp/server_legacy.py | 701 | # Set max_pages to None (unlimited) | COMMENT |
| LOW | src/skill_seekers/mcp/server_legacy.py | 803 | # Check if API key exists - only upload if available | COMMENT |
| LOW | src/skill_seekers/mcp/server_legacy.py | 919 | # Check if file exists | COMMENT |
| LOW | src/skill_seekers/mcp/server_legacy.py | 2082 | # Check if this is an update | COMMENT |
| LOW | src/skill_seekers/mcp/tools/config_tools.py | 178 | # Check if file exists | STRING |
| LOW | src/skill_seekers/mcp/tools/scraping_tools.py | 145 | # Set max_pages to None (unlimited) | COMMENT |
| 83 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 16 | CODE | |
| LOW | tests/test_git_sources_e2e.py | 29 | CODE | |
| LOW | tests/test_git_sources_e2e.py | 30 | CODE | |
| LOW | tests/test_mcp_server.py | 25 | CODE | |
| LOW | tests/test_cloud_storage.py | 22 | CODE | |
| LOW | tests/test_cloud_storage.py | 29 | CODE | |
| LOW | tests/test_cloud_storage.py | 36 | CODE | |
| LOW | tests/test_issue_219_e2e.py | 26 | CODE | |
| LOW | tests/test_issue_219_e2e.py | 39 | CODE | |
| LOW | tests/test_issue_219_e2e.py | 39 | CODE | |
| LOW | tests/test_pdf_advanced_features.py | 32 | CODE | |
| LOW | tests/test_pdf_advanced_features.py | 33 | CODE | |
| LOW | tests/test_doctor.py | 3 | CODE | |
| LOW | tests/test_video_scraper.py | 23 | CODE | |
| LOW | tests/test_video_scraper.py | 30 | CODE | |
| LOW | tests/test_video_scraper.py | 2394 | CODE | |
| LOW | tests/test_kotlin_support.py | 8 | CODE | |
| LOW | tests/test_pdf_scraper.py | 21 | CODE | |
| LOW | tests/test_workflow_prompt_injection.py | 10 | CODE | |
| LOW | tests/test_guide_enhancer.py | 651 | CODE | |
| LOW | tests/test_guide_enhancer.py | 651 | CODE | |
| LOW | tests/test_signal_collectors.py | 8 | CODE | |
| LOW | tests/test_mcp_workflow_tools.py | 11 | CODE | |
| LOW | tests/test_mcp_git_sources.py | 16 | CODE | |
| LOW | tests/test_scan_command.py | 9 | CODE | |
| LOW | tests/test_github_scraper.py | 27 | CODE | |
| LOW | tests/test_word_scraper.py | 26 | CODE | |
| LOW | tests/test_word_scraper.py | 27 | CODE | |
| LOW | tests/test_browser_renderer.py | 6 | CODE | |
| LOW | examples/llama-index-query-engine/quickstart.py | 22 | CODE | |
| LOW | examples/faiss-example/1_generate_skill.py | 3 | CODE | |
| LOW | examples/faiss-example/2_build_faiss_index.py | 5 | CODE | |
| LOW | examples/qdrant-example/2_upload_to_qdrant.py | 4 | CODE | |
| LOW | examples/qdrant-example/1_generate_skill.py | 3 | CODE | |
| LOW | src/skill_seekers/__init__.py | 8 | CODE | |
| LOW | src/skill_seekers/benchmark/__init__.py | 31 | CODE | |
| LOW | src/skill_seekers/benchmark/__init__.py | 31 | CODE | |
| LOW | src/skill_seekers/benchmark/__init__.py | 32 | CODE | |
| LOW | src/skill_seekers/benchmark/__init__.py | 33 | CODE | |
| LOW | src/skill_seekers/benchmark/__init__.py | 33 | CODE | |
| LOW | src/skill_seekers/embedding/__init__.py | 21 | CODE | |
| LOW | src/skill_seekers/embedding/__init__.py | 21 | CODE | |
| LOW | src/skill_seekers/embedding/__init__.py | 21 | CODE | |
| LOW | src/skill_seekers/embedding/__init__.py | 22 | CODE | |
| LOW | src/skill_seekers/embedding/__init__.py | 23 | CODE | |
| LOW | src/skill_seekers/mcp/git_repo.py | 7 | CODE | |
| LOW | src/skill_seekers/mcp/__init__.py | 32 | CODE | |
| LOW | src/skill_seekers/mcp/config_publisher.py | 7 | CODE | |
| LOW | src/skill_seekers/mcp/config_publisher.py | 7 | CODE | |
| LOW | src/skill_seekers/mcp/config_publisher.py | 7 | CODE | |
| LOW | src/skill_seekers/mcp/marketplace_publisher.py | 7 | CODE | |
| LOW | src/skill_seekers/mcp/marketplace_manager.py | 7 | CODE | |
| LOW | src/skill_seekers/mcp/source_manager.py | 7 | CODE | |
| LOW | src/skill_seekers/mcp/tools/workflow_tools.py | 12 | CODE | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 17 | CODE | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 19 | CODE | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 22 | CODE | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 25 | CODE | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 28 | CODE | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 31 | CODE | |
| 138 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_dependency_analyzer.py | 187 | # Create a simple dependency: main.py -> utils.py | COMMENT |
| MEDIUM⚡ | tests/test_source_detector.py | 121 | # Create a test directory | COMMENT |
| MEDIUM⚡ | tests/test_source_detector.py | 270 | # Create a directory that looks like a domain | COMMENT |
| MEDIUM | tests/test_source_detector.py | 104 | # Create a test directory | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 406 | # Create a dummy source directory | COMMENT |
| MEDIUM⚡ | tests/test_mcp_fastmcp.py | 448 | # Create a mock skill directory | COMMENT |
| MEDIUM | tests/test_mcp_fastmcp.py | 383 | # Create a dummy PDF config | COMMENT |
| MEDIUM | tests/test_mcp_fastmcp.py | 419 | # Create a dummy source directory | COMMENT |
| MEDIUM | tests/test_mcp_fastmcp.py | 472 | # Create a mock zip file | COMMENT |
| MEDIUM | tests/test_chunking_integration.py | 45 | # Create a reference file | COMMENT |
| MEDIUM⚡ | tests/test_rag_chunker.py | 119 | # This function is longer than our chunk size | COMMENT |
| MEDIUM | tests/test_mcp_server.py | 193 | # Create a test config | COMMENT |
| MEDIUM | tests/test_mcp_server.py | 358 | # Create a mock skill directory | COMMENT |
| MEDIUM | tests/test_create_integration_basic.py | 55 | # Create a test directory | COMMENT |
| MEDIUM | tests/test_create_integration_basic.py | 72 | # Create a dummy PDF file | COMMENT |
| MEDIUM | tests/test_create_integration_basic.py | 90 | # Create a minimal config file | COMMENT |
| MEDIUM | tests/test_config_publisher.py | 135 | # Create a mock source that returns proper data | COMMENT |
| MEDIUM | tests/test_config_publisher.py | 183 | # Create a working repo with existing config | COMMENT |
| MEDIUM | tests/test_terminal_detection.py | 146 | # Create a test skill directory with minimal setup | COMMENT |
| MEDIUM | tests/test_utilities.py | 166 | # Create a real zip file | COMMENT |
| MEDIUM⚡ | tests/test_video_scraper.py | 396 | # Create a temp file | COMMENT |
| MEDIUM⚡ | tests/test_video_scraper.py | 2924 | # Create a temp skill dir with a video reference file | COMMENT |
| MEDIUM | tests/test_video_scraper.py | 489 | # Create a fake video file and matching SRT | COMMENT |
| MEDIUM | tests/test_video_scraper.py | 2329 | # Create a dark frame (simulating dark-theme IDE) | COMMENT |
| MEDIUM | tests/test_video_scraper.py | 2365 | # Create a light frame (white background, dark text) | COMMENT |
| MEDIUM | tests/test_video_scraper.py | 2403 | # Create a simple white image with black text | COMMENT |
| MEDIUM | tests/test_video_scraper.py | 2488 | # Create a minimal image file | COMMENT |
| MEDIUM⚡ | tests/test_marketplace_publisher.py | 347 | # Create a working repo with initial marketplace structure, then bare-clone it | COMMENT |
| MEDIUM | tests/test_marketplace_publisher.py | 260 | # Create a cached repo without .git so publish() takes the clone path | COMMENT |
| MEDIUM⚡ | tests/test_pinecone_adaptor.py | 300 | # Create a dummy package file | COMMENT |
| MEDIUM | tests/test_pinecone_adaptor.py | 769 | # Create a minimal weaviate package | COMMENT |
| MEDIUM | tests/test_unified_analyzer.py | 205 | # Create a test file that C3.x can analyze | COMMENT |
| MEDIUM | tests/test_unified_scraper_orchestration.py | 347 | # Create a fake data file that the converter will "produce" | COMMENT |
| MEDIUM | tests/test_pdf_extractor.py | 682 | # Create a mock page that raises AssertionError on markdown extraction | COMMENT |
| MEDIUM | tests/test_pdf_extractor.py | 711 | # Create a mock page that raises RuntimeError | COMMENT |
| MEDIUM | tests/test_pdf_extractor.py | 738 | # Create a mock page that raises TypeError | COMMENT |
| MEDIUM | tests/test_pdf_extractor.py | 763 | # Create a mock page with structured content | COMMENT |
| MEDIUM | tests/test_unified_mcp_integration.py | 70 | # Create a truly legacy config (no "sources" key — just base_url + selectors) | COMMENT |
| MEDIUM⚡ | tests/test_signal_collectors.py | 73 | # Create a manifest file then make it unreadable by injecting a read error. | COMMENT |
| MEDIUM | tests/test_codebase_scraper.py | 447 | # Create a documentation directory with some content | COMMENT |
| MEDIUM | tests/test_smart_summarization.py | 20 | # Create a realistic reference content with more text to make summarization worthwhile | COMMENT |
| MEDIUM⚡ | tests/test_word_scraper.py | 489 | # Create a real file with wrong extension | COMMENT |
| MEDIUM⚡ | tests/test_epub_scraper.py | 388 | # Create a real file with wrong extension | COMMENT |
| MEDIUM⚡ | tests/test_epub_scraper.py | 1479 | os.makedirs(dir_path) # Create a directory with .epub name | CODE |
| MEDIUM | examples/weaviate-example/2_upload_to_weaviate.py | 98 | # Create the class | COMMENT |
| MEDIUM | src/skill_seekers/mcp/tools/scraping_tools.py | 155 | # Create a UNIQUE temporary config file. The previous | COMMENT |
| MEDIUM | src/skill_seekers/cli/github_scraper.py | 983 | # Create the actual parent of data_file. self.data_file derives from | COMMENT |
| MEDIUM | src/skill_seekers/cli/config_manager.py | 77 | # Create main config and progress directories | COMMENT |
| MEDIUM | src/skill_seekers/cli/unified_skill_builder.py | 1187 | # Create main index | COMMENT |
| MEDIUM | src/skill_seekers/cli/unified_skill_builder.py | 1291 | # Create main index | COMMENT |
| MEDIUM | src/skill_seekers/cli/enhance_skill_local.py | 746 | # Create a shell script to run in the terminal | STRING |
| MEDIUM | src/skill_seekers/cli/parsers/extractors/base_parser.py | 154 | # Create a wrapper that looks like a path | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/skill_seekers/__init__.py | 13 | __all__ = [ | CODE |
| LOW | src/skill_seekers/benchmark/__init__.py | 35 | __all__ = [ | CODE |
| LOW | src/skill_seekers/embedding/__init__.py | 25 | __all__ = [ | CODE |
| LOW | src/skill_seekers/mcp/git_repo.py | 9 | __all__ = ["GitConfigRepo"] | CODE |
| LOW | src/skill_seekers/mcp/__init__.py | 34 | __all__ = ["agent_detector", "__version__"] | CODE |
| LOW | src/skill_seekers/mcp/config_publisher.py | 13 | __all__ = ["CATEGORY_KEYWORDS", "ConfigPublisher", "detect_category"] | CODE |
| LOW | src/skill_seekers/mcp/marketplace_publisher.py | 9 | __all__ = ["MarketplacePublisher"] | CODE |
| LOW | src/skill_seekers/mcp/marketplace_manager.py | 9 | __all__ = ["MarketplaceManager"] | CODE |
| LOW | src/skill_seekers/mcp/source_manager.py | 9 | __all__ = ["SourceManager"] | CODE |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 137 | __all__ = [ | CODE |
| LOW | src/skill_seekers/mcp/tools/vector_db_tools.py | 469 | __all__ = [ | STRING |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/skill_converter.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/agent_client.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/skill_seekers/cli/pptx_scraper.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/skill_seekers/cli/chat_scraper.py | 65 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/github_scraper.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/scan_command.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/scan_command.py | 105 | def _set_detected_version(data: dict, version: str | None) -> None: | CODE |
| LOW | src/skill_seekers/cli/codebase_scraper.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/video_visual.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/epub_scraper.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/skill_seekers/cli/test_example_extractor.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/skill_seekers/cli/video_setup.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/parallel_batches.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/create_command.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/config_fetcher.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/word_scraper.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/browser_renderer.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/config_extractor.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/jupyter_scraper.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/signal_collectors.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/unified_skill_builder.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/architectural_pattern_detector.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/config_validator.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | src/skill_seekers/cli/how_to_guide_builder.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/constants.py | 53 | __all__ = [ | CODE |
| LOW⚡ | src/skill_seekers/cli/video_scraper.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/dependency_analyzer.py | 58 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/enhancement_workflow.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/rag_chunker.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/__init__.py | 37 | __all__ = [ | CODE |
| LOW | src/skill_seekers/cli/guide_enhancer.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/unified_scraper.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/openapi_scraper.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/unified_enhancer.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/language_detector.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/conflict_detector.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/merge_sources.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/video_segmenter.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/doc_scraper.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/utils.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/confluence_scraper.py | 56 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/config_enhancer.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/html_scraper.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/source_detector.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/video_metadata.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/code_analyzer.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/workflow_runner.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/skill_seekers/cli/rss_scraper.py | 44 | logger = logging.getLogger(__name__) | CODE |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CHANGELOG.md | 74 | - **`skill-seekers scan <dir>` command** (#327) — point at any project; an AI agent inspects manifests, README, Dockerfi | CODE |
| HIGH | CHANGELOG.md | 88 | - **Safety** (#327) — atomic JSON writes via `os.replace` so SIGINT mid-write can't corrupt a config and silently flip i | CODE |
| HIGH | CHANGELOG.md | 1362 | - Combines manual header with auto-generated codebase analysis | CODE |
| HIGH | tests/test_scan_command.py | 919 | # First call → detection. Second call → AI-generated config. | COMMENT |
| HIGH | docs/features/BOOTSTRAP_SKILL_TECHNICAL.md | 330 | # AI-generated (generic): | COMMENT |
| HIGH | docs/getting-started/05-scan-a-project.md | 122 | # 🤖 18 AI-generated (preview — would invoke AI) | COMMENT |
| HIGH⚡ | src/skill_seekers/cli/scan_command.py | 79 | generated: list[Path] = field(default_factory=list) # subset: freshly AI-generated | CODE |
| HIGH | src/skill_seekers/cli/scan_command.py | 1205 | # Would have been AI-generated (subject to cap) or failed. | COMMENT |
| HIGH | src/skill_seekers/cli/test_example_extractor.py | 79 | ai_analysis: dict | None = None # AI-generated analysis (C3.6) | CODE |
| HIGH | src/skill_seekers/cli/pattern_recognizer.py | 76 | ai_analysis: dict | None = None # AI-generated analysis (C3.6) | CODE |
| HIGH | src/skill_seekers/cli/presets/manager.py | 72 | "how_to_guides": True, # ON - AI-generated guides | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/features/UNIFIED_SCRAPING.md | 673 | skill-seekers create --config configs/react_unified.json --api-key YOUR_API_KEY | CODE |
| HIGH | docs/integrations/WEAVIATE.md | 91 | auth_client_secret=weaviate.AuthApiKey(api_key="your-api-key"), | CODE |
| HIGH | docs/integrations/WEAVIATE.md | 224 | auth_client_secret=weaviate.AuthApiKey(api_key="your-api-key"), | CODE |
| HIGH | docs/integrations/LANGCHAIN.md | 208 | pinecone.init(api_key="your-api-key", environment="us-west1-gcp") | CODE |
| HIGH | docs/integrations/QDRANT.md | 224 | api_key="your-api-key" | CODE |
| HIGH | docs/integrations/PINECONE.md | 62 | export PINECONE_API_KEY=your-api-key | CODE |
| HIGH⚡ | docs/integrations/PINECONE.md | 182 | pc = Pinecone(api_key="your-api-key") | CODE |
| HIGH | examples/pinecone-upsert/README.md | 192 | pc = Pinecone(api_key="your-api-key") | CODE |
| HIGH | examples/pinecone-upsert/quickstart.py | 269 | print(" export PINECONE_API_KEY=your-api-key") | CODE |
| HIGH | examples/weaviate-example/README.md | 105 | --api-key YOUR_API_KEY | CODE |
| HIGH | examples/weaviate-example/README.md | 146 | --api-key YOUR_API_KEY | CODE |
| HIGH | src/skill_seekers/cli/adaptors/qdrant.py | 355 | # api_key="your-api-key" | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_phase2_golden_pptx.py | 116 | "author": "Jane Doe", | CODE |
| LOW⚡ | tests/test_mcp_fastmcp.py | 656 | token="fake_token", | CODE |
| LOW | tests/test_phase2_golden_rss.py | 42 | "author": "Jane Doe", | CODE |
| LOW | tests/test_phase2_golden_rss.py | 67 | "author": "Jane Doe", | CODE |
| LOW | tests/test_chunking_integration.py | 34 | content = "# Test Skill\n\n" + ("Lorem ipsum dolor sit amet. " * 2000) | CODE |
| LOW | tests/test_chunking_integration.py | 34 | content = "# Test Skill\n\n" + ("Lorem ipsum dolor sit amet. " * 2000) | CODE |
| LOW | tests/test_chunking_integration.py | 148 | """ + ("Lorem ipsum dolor sit amet. " * 1000) # Make it large enough to force chunking | STRING |
| LOW | tests/test_chunking_integration.py | 148 | """ + ("Lorem ipsum dolor sit amet. " * 1000) # Make it large enough to force chunking | STRING |
| LOW⚡ | tests/test_chunking_integration.py | 263 | content = "Lorem ipsum dolor sit amet. " * 2000 # >512 tokens | CODE |
| LOW⚡ | tests/test_chunking_integration.py | 263 | content = "Lorem ipsum dolor sit amet. " * 2000 # >512 tokens | CODE |
| LOW⚡ | tests/test_mcp_server.py | 627 | "github_token": "fake_token", | CODE |
| LOW⚡ | tests/test_mcp_server.py | 636 | "github_token": "fake_token", | CODE |
| LOW⚡ | tests/test_mcp_server.py | 650 | args = {"config_json": json.dumps(legacy_config), "github_token": "fake_token"} | CODE |
| LOW | tests/test_mcp_server.py | 610 | "github_token": "fake_token", | CODE |
| LOW | tests/test_mcp_server.py | 669 | args = {"config_json": json.dumps(unified_config), "github_token": "fake_token"} | CODE |
| LOW | tests/test_mcp_server.py | 697 | args = {"config_path": temp_path, "github_token": "fake_token"} | CODE |
| LOW | tests/test_mcp_server.py | 716 | "github_token": "fake_token", | CODE |
| LOW | tests/test_config_publisher.py | 27 | repo.config_writer().set_value("user", "email", "test@test.com").release() | CODE |
| LOW | tests/test_config_publisher.py | 219 | patch.dict(os.environ, {"DUMMY_TOKEN": "fake-token"}), | CODE |
| LOW | tests/test_adaptor_benchmarks.py | 63 | skill_content = f"# {skill_name.title()} Skill\n\n" + "Lorem ipsum dolor sit amet. " * 500 | CODE |
| LOW | tests/test_adaptor_benchmarks.py | 63 | skill_content = f"# {skill_name.title()} Skill\n\n" + "Lorem ipsum dolor sit amet. " * 500 | CODE |
| LOW | tests/test_phase2_golden_pdf.py | 67 | "metadata": {"title": "The Manual", "author": "Jane Doe"}, | CODE |
| LOW⚡ | tests/test_marketplace_publisher.py | 352 | repo.config_writer().set_value("user", "email", "test@test.com").release() | CODE |
| LOW⚡ | tests/test_marketplace_publisher.py | 360 | "owner": {"name": "Test", "email": "test@test.com"}, | CODE |
| LOW | tests/test_marketplace_publisher.py | 281 | patch.dict(os.environ, {"TEST_TOKEN": "fake-token"}), | CODE |
| LOW | tests/test_pinecone_adaptor.py | 356 | result = adaptor.upload(pkg, api_key="fake-key") | CODE |
| LOW | tests/test_pinecone_adaptor.py | 377 | api_key="fake-key", | CODE |
| LOW | tests/test_pinecone_adaptor.py | 401 | api_key="fake-key", | CODE |
| LOW | tests/test_pinecone_adaptor.py | 422 | result = adaptor.upload(pkg, api_key="fake-key") | CODE |
| LOW | tests/test_pinecone_adaptor.py | 442 | api_key="fake-key", | CODE |
| LOW | tests/test_phase2_golden_html.py | 144 | "author": "Jane Doe", | CODE |
| LOW | tests/test_phase2_golden_epub_word.py | 89 | "author": "Jane Doe", | CODE |
| LOW⚡ | tests/test_quality_metrics.py | 113 | (skill_dir / "SKILL.md").write_text("# Skill\n\nLorem ipsum dolor sit amet") | CODE |
| LOW⚡ | tests/test_quality_metrics.py | 113 | (skill_dir / "SKILL.md").write_text("# Skill\n\nLorem ipsum dolor sit amet") | CODE |
| LOW | tests/test_adaptors/test_chroma_adaptor.py | 118 | result = adaptor.upload(package_path, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_chroma_adaptor.py | 151 | result = adaptor.upload(package_path, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_chroma_adaptor.py | 178 | result = adaptor.enhance(skill_dir, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_qdrant_adaptor.py | 121 | result = adaptor.upload(package_path, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_qdrant_adaptor.py | 149 | result = adaptor.enhance(skill_dir, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_langchain_adaptor.py | 114 | result = adaptor.upload(package_path, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_langchain_adaptor.py | 151 | result = adaptor.enhance(skill_dir, "fake-key") | CODE |
| LOW | tests/test_adaptors/test_openai_compatible_shared.py | 234 | result = adaptor.upload(Path("/nonexistent/file.zip"), "fake-key") | CODE |
| LOW | tests/test_adaptors/test_openai_compatible_shared.py | 243 | result = adaptor.upload(Path(tmp.name), "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_llama_index_adaptor.py | 114 | result = adaptor.upload(package_path, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_llama_index_adaptor.py | 151 | result = adaptor.enhance(skill_dir, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_haystack_adaptor.py | 114 | result = adaptor.upload(package_path, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_haystack_adaptor.py | 152 | result = adaptor.enhance(skill_dir, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_faiss_adaptor.py | 119 | result = adaptor.upload(package_path, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_faiss_adaptor.py | 147 | result = adaptor.enhance(skill_dir, "fake-key") | CODE |
| LOW | tests/test_adaptors/test_weaviate_adaptor.py | 121 | result = adaptor.upload(package_path, "fake-key") | CODE |
| LOW⚡ | tests/test_adaptors/test_weaviate_adaptor.py | 153 | result = adaptor.enhance(skill_dir, "fake-key") | CODE |
| LOW | docs/zh-CN/reference/CONFIG_FORMAT.md | 371 | "username": "user@example.com", | CODE |
| LOW | docs/reference/CONFIG_FORMAT.md | 371 | "username": "user@example.com", | CODE |
| LOW | src/skill_seekers/cli/quality_metrics.py | 208 | placeholders = [r"\blorem ipsum\b", r"\bplaceholder\b", r"\bcoming soon\b"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_pattern_recognizer.py | 98 | if (instance == null) { | CODE |
| HIGH | tests/test_pattern_recognizer.py | 410 | if (instance == null) { | CODE |
| HIGH | tests/test_pattern_recognizer.py | 674 | if (instance == null) instance = new DatabaseConnection(); | CODE |
| HIGH | tests/test_kotlin_support.py | 22 | val email: String? = null, | CODE |
| HIGH | tests/test_kotlin_support.py | 158 | val user = User(2, "", null) | CODE |
| HIGH | src/skill_seekers/cli/scan_command.py | 1253 | pipelines (`scan && build`) detect that the scan didn't produce anything. | STRING |
| HIGH | src/skill_seekers/cli/install_agent.py | 417 | print(" sudo mkdir -p ~/.amp && sudo chown -R $USER ~/.amp") | CODE |
| HIGH | src/skill_seekers/services/config_publisher.py | 235 | repo.git.push("--force", token_url, target_branch) | CODE |
| HIGH | src/skill_seekers/services/config_publisher.py | 237 | repo.git.push(token_url, target_branch) | CODE |
| HIGH | src/skill_seekers/services/marketplace_publisher.py | 177 | repo.git.push("--force", token_url, target_branch) | CODE |
| HIGH | src/skill_seekers/services/marketplace_publisher.py | 179 | repo.git.push(token_url, target_branch) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_generate_router_github.py | 403 | # Create comprehensive GitHub streams | COMMENT |
| MEDIUM | tests/test_preset_system.py | 68 | """Test comprehensive preset configuration.""" | STRING |
| MEDIUM | tests/test_preset_system.py | 156 | """Test applying comprehensive preset.""" | STRING |
| MEDIUM⚡ | tests/test_preset_system.py | 220 | # --comprehensive flag | COMMENT |
| MEDIUM | tests/test_preset_system.py | 237 | # Using --preset comprehensive | COMMENT |
| MEDIUM | tests/test_unified_parsers.py | 25 | """Test RST parser with comprehensive example.""" | STRING |
| MEDIUM | tests/test_guide_enhancer.py | 506 | """Test comprehensive enhancement prompt generation""" | STRING |
| MEDIUM | scripts/run_benchmarks.sh | 3 | # Runs comprehensive benchmarks for all platform adaptors | COMMENT |
| MEDIUM | src/skill_seekers/workflows/unity-game-dev.yaml | 2 | description: Unity game development patterns, MonoBehaviour lifecycle, component architecture, memory management, and C# | CODE |
| MEDIUM | src/skill_seekers/mcp/server_legacy.py | 1848 | # Use ConfigValidator for comprehensive validation | COMMENT |
| MEDIUM | src/skill_seekers/cli/scan_command.py | 1329 | # Nested event loop (Jupyter, async test harness): surface a clear | COMMENT |
| MEDIUM | src/skill_seekers/cli/unified_skill_builder.py | 1547 | """Generate comprehensive ARCHITECTURE.md (C3.5 main deliverable).""" | STRING |
| MEDIUM | src/skill_seekers/cli/how_to_guide_builder.py | 116 | # AI enhancement (comprehensive - NEW) | COMMENT |
| MEDIUM | src/skill_seekers/cli/how_to_guide_builder.py | 1114 | # Add best practices as variations | COMMENT |
| LOW | src/skill_seekers/cli/estimate_pages.py | 330 | # If we can't parse the config, just use the filename | COMMENT |
| MEDIUM | src/skill_seekers/cli/utils.py | 297 | # ARCHITECTURE.md is high confidence (comprehensive) | COMMENT |
| MEDIUM | src/skill_seekers/cli/generate_router.py | 215 | # Build comprehensive description from all sub-skills | COMMENT |
| MEDIUM | src/skill_seekers/cli/generate_router.py | 725 | # Add comprehensive footer items | STRING |
| MEDIUM | src/skill_seekers/cli/generate_router.py | 743 | # NEW: Generate comprehensive description from all sub-skills | STRING |
| LOW | src/skill_seekers/cli/pattern_recognizer.py | 461 | # Check if it has logic (not just pass) | COMMENT |
| MEDIUM | src/skill_seekers/services/source_manager.py | 395 | # Use ConfigValidator for comprehensive validation | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_sync_config_e2e.py | 21 | COMMENT | |
| LOW | docs/archive/legacy/USAGE.md | 301 | COMMENT | |
| LOW | docs/plans/video/07_VIDEO_DEPENDENCIES.md | 401 | # scenedetect ❌ Not installed | COMMENT |
| LOW | docs/features/BOOTSTRAP_SKILL_TECHNICAL.md | 561 | head -10 scripts/skill_header.md | COMMENT |
| LOW | docs/features/ENHANCEMENT_MODES.md | 281 | ### Check Status Command | COMMENT |
| LOW | docs/features/BOOTSTRAP_SKILL.md | 501 | COMMENT | |
| LOW | docs/blog/UNIVERSAL_RAG_PREPROCESSOR.md | 41 | for url in all_urls: # How do you even get all URLs? | COMMENT |
| LOW | docs/blog/UNIVERSAL_RAG_PREPROCESSOR.md | 61 | # Day 5: Add metadata | COMMENT |
| LOW | docs/zh-CN/reference/LARGE_DOCUMENTATION.md | 341 | # - aws-compute (EC2, Lambda) | COMMENT |
| LOW | docs/integrations/LANGCHAIN.md | 121 | ```bash | COMMENT |
| LOW | docs/integrations/LLAMA_INDEX.md | 121 | ``` | COMMENT |
| LOW | docs/integrations/HAYSTACK.md | 661 | COMMENT | |
| LOW | docs/reference/LARGE_DOCUMENTATION.md | 341 | # - aws-compute (EC2, Lambda) | COMMENT |
| LOW | examples/http_transport_examples.sh | 1 | #!/bin/bash | COMMENT |
| LOW | examples/http_transport_examples.sh | 61 | # TESTING | COMMENT |
| LOW | examples/http_transport_examples.sh | 81 | # } | COMMENT |
| LOW | examples/haystack-pipeline/requirements.txt | 1 | # Haystack Pipeline Example Requirements | COMMENT |
| LOW | templates/github-actions/update-skills.yml | 1 | # GitHub Actions template for auto-updating Skill Seekers skills | COMMENT |
| LOW | templates/github-actions/update-skills.yml | 61 | fail-fast: false | COMMENT |
| LOW | src/skill_seekers/cli/agent_client.py | 641 | # Build command via the shared builder (headless: always | COMMENT |
| LOW | src/skill_seekers/cli/scan_command.py | 641 | safe = re.sub(r"[^A-Za-z0-9._-]+", "-", detection.name).strip("-").lower() | COMMENT |
| LOW | src/skill_seekers/cli/scan_command.py | 801 | stamp_version(target, detection.version) | COMMENT |
| LOW | src/skill_seekers/cli/document_skill_builder.py | 41 | # Footer credit line suffix in SKILL.md, e.g. "EPUB Scraper". | COMMENT |
| LOW | src/skill_seekers/cli/main.py | 41 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | docs/UML/html/index.html/assets/js/jquery-2.1.0.min.js | 3 | while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=o.camelCase(d.slice(5)),P(f,d,e[d]));L.set(f,"hasDataAttrs",!0)}return | CODE |
| CRITICAL | src/skill_seekers/cli/storage/azure_storage.py | 11 | from azure.core.exceptions import ResourceNotFoundError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_framework_detection.py | 122 | (app_dir / "utils.py").write_text("def my_function():\n return 'hello'\n") | CODE |
| LOW⚡ | tests/test_video_scraper.py | 582 | _classify_content_type("import os\ndef process_data(): return result"), | CODE |
| LOW⚡ | tests/test_code_analyzer.py | 486 | def test_function(a, b): | CODE |
| LOW | tests/test_code_analyzer.py | 178 | def helper(): | CODE |
| LOW | tests/test_benchmark.py | 187 | def my_function(x): | CODE |
| LOW⚡ | tests/test_scraper_features.py | 122 | html = "<code>def my_function():\n pass</code>" | CODE |
| LOW⚡ | tests/test_how_to_guide_builder.py | 1160 | code = "def helper():\n hidden = 1\n\nvisible = 2\n" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_bootstrap_skill_e2e.py | 49 | CODE | |
| LOW | src/skill_seekers/mcp/server_fastmcp.py | 351 | CODE | |
| LOW | src/skill_seekers/mcp/server_fastmcp.py | 448 | CODE | |
| LOW | src/skill_seekers/mcp/server_fastmcp.py | 1080 | CODE | |
| LOW | src/skill_seekers/cli/codebase_scraper.py | 968 | CODE | |
| LOW | src/skill_seekers/cli/package_skill.py | 56 | CODE | |
| LOW | src/skill_seekers/cli/confluence_scraper.py | 1269 | CODE | |
| LOW | src/skill_seekers/cli/html_scraper.py | 1069 | CODE | |
| LOW | src/skill_seekers/cli/pdf_extractor_poc.py | 89 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | templates/github-actions/update-skills.yml | 6 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/skill_seekers/cli/video_setup.py | 827 | print(f"\nDon't forget to activate the venv first:") | CODE |