Convert documentation websites, GitHub repositories, and PDFs into Claude AI skills with automatic conflict detection
5066 matches across 20 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | CONTRIBUTING.md | 425 | def test_config_validation_with_missing_fields(): |
| LOW | tests/test_conflict_detector.py | 9 | def test_detector_with_empty_docs_data(self): |
| LOW | tests/test_conflict_detector.py | 16 | def test_detector_with_empty_code_data(self): |
| LOW | tests/test_conflict_detector.py | 23 | def test_detector_with_both_empty(self): |
| LOW | tests/test_conflict_detector.py | 30 | def test_apis_with_non_dict_structure(self): |
| LOW | tests/test_conflict_detector.py | 38 | def test_conflict_dataclass_all_fields_none(self): |
| LOW | tests/test_conflict_detector.py | 49 | def test_conflict_asdict_with_all_fields(self): |
| LOW | tests/test_install_skill.py | 37 | async def test_validation_no_config(self): |
| LOW | tests/test_install_skill.py | 48 | async def test_validation_both_configs(self): |
| LOW | tests/test_install_skill.py | 65 | async def test_dry_run_with_config_name(self): |
| LOW | tests/test_install_skill.py | 87 | async def test_dry_run_with_config_path(self): |
| LOW | tests/test_install_skill.py | 112 | async def test_enhancement_is_mandatory(self): |
| LOW | tests/test_install_skill.py | 142 | async def test_full_workflow_with_fetch( |
| LOW | tests/test_install_skill.py | 214 | async def test_workflow_with_existing_config( |
| LOW | tests/test_install_skill.py | 283 | async def test_scrape_phase_failure(self, mock_open, mock_scrape): |
| LOW | tests/test_install_skill.py | 310 | async def test_enhancement_phase_failure(self, mock_open, mock_subprocess, mock_scrape): |
| LOW | tests/test_install_skill_e2e.py | 359 | def test_cli_validation_error_no_config(self): |
| LOW | tests/test_install_skill_e2e.py | 398 | async def test_cli_full_workflow_mocked( |
| LOW | tests/test_install_skill_e2e.py | 434 | def test_cli_via_unified_command(self, test_config_file): |
| LOW | tests/test_setup_scripts.py | 39 | def test_references_correct_mcp_directory(self, script_content): |
| LOW | tests/test_setup_scripts.py | 62 | def test_requirements_txt_path(self, script_content): |
| LOW | tests/test_setup_scripts.py | 102 | def test_referenced_files_exist(self): |
| LOW | tests/test_setup_scripts.py | 114 | def test_config_directory_exists(self): |
| LOW | tests/test_setup_scripts.py | 119 | def test_script_is_executable(self, script_path): |
| LOW | tests/test_setup_scripts.py | 125 | def test_json_config_path_format(self, script_content): |
| LOW | tests/test_setup_scripts.py | 140 | def test_pytest_command_references(self, script_content): |
| LOW | tests/test_setup_scripts.py | 158 | def test_all_scripts_have_shebang(self, all_bash_scripts): |
| LOW | tests/test_setup_scripts.py | 166 | def test_all_scripts_syntax_valid(self, all_bash_scripts): |
| LOW | tests/test_setup_scripts.py | 172 | def test_all_scripts_use_set_e(self, all_bash_scripts): |
| LOW | tests/test_setup_scripts.py | 183 | def test_no_deprecated_backticks(self, all_bash_scripts): |
| LOW | tests/test_setup_scripts.py | 200 | def test_github_workflows_reference_correct_paths(self): |
| LOW | tests/test_setup_scripts.py | 212 | def test_readme_references_correct_paths(self): |
| LOW | tests/test_setup_scripts.py | 226 | def test_documentation_references_correct_paths(self): |
| LOW | tests/test_setup_scripts.py | 240 | def test_mcp_directory_structure(): |
| LOW | tests/test_dependency_analyzer.py | 73 | def test_syntax_error_handling(self): |
| LOW | tests/test_dependency_analyzer.py | 197 | def test_multiple_dependencies(self): |
| LOW | tests/test_dependency_analyzer.py | 228 | def test_no_circular_dependencies(self): |
| LOW | tests/test_dependency_analyzer.py | 238 | def test_simple_circular_dependency(self): |
| LOW | tests/test_dependency_analyzer.py | 565 | def test_unsupported_language(self): |
| LOW | tests/test_dependency_analyzer.py | 572 | def test_file_with_only_comments(self): |
| LOW | tests/test_cli_paths.py | 20 | def test_doc_scraper_uses_modern_commands(self): |
| LOW | tests/test_cli_paths.py | 35 | def test_enhance_skill_local_uses_modern_commands(self): |
| LOW | tests/test_cli_paths.py | 54 | def test_estimate_pages_uses_modern_commands(self): |
| LOW | tests/test_cli_paths.py | 69 | def test_package_skill_uses_modern_commands(self): |
| LOW | tests/test_cli_paths.py | 84 | def test_github_scraper_uses_modern_commands(self): |
| LOW | tests/test_cli_paths.py | 103 | def test_main_cli_help_output(self): |
| LOW | tests/test_cli_paths.py | 127 | def test_main_cli_version_output(self): |
| LOW | tests/test_cli_paths.py | 151 | def test_no_hardcoded_paths_in_cli_scripts(self): |
| LOW | tests/test_cli_paths.py | 197 | def test_main_cli_file_exists(self): |
| LOW | tests/test_language_detector.py | 77 | def test_detect_from_html_with_css_class(self): |
| LOW | tests/test_language_detector.py | 90 | def test_detect_from_html_with_parent_class(self): |
| LOW | tests/test_language_detector.py | 107 | def test_unity_monobehaviour_detection(self): |
| LOW | tests/test_language_detector.py | 128 | def test_unity_lifecycle_methods(self): |
| LOW | tests/test_language_detector.py | 144 | def test_unity_coroutine_detection(self): |
| LOW | tests/test_language_detector.py | 159 | def test_unity_serializefield_attribute(self): |
| LOW | tests/test_language_detector.py | 211 | def test_generic_csharp_vs_unity(self): |
| LOW | tests/test_language_detector.py | 321 | def test_javascript_detection(self): |
| LOW | tests/test_language_detector.py | 339 | def test_typescript_detection(self): |
| LOW | tests/test_language_detector.py | 553 | def test_confidence_threshold(self): |
| LOW | tests/test_language_detector.py | 567 | def test_html_with_embedded_css(self): |
| 2775 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | setup.sh | 26 | # ============================================================================= |
| MEDIUM | setup.sh | 28 | # ============================================================================= |
| MEDIUM | setup.sh | 49 | # ============================================================================= |
| MEDIUM | setup.sh | 51 | # ============================================================================= |
| MEDIUM | setup.sh | 98 | # ============================================================================= |
| MEDIUM | setup.sh | 100 | # ============================================================================= |
| MEDIUM | setup.sh | 139 | # ============================================================================= |
| MEDIUM | setup.sh | 141 | # ============================================================================= |
| MEDIUM | setup.sh | 197 | # ============================================================================= |
| MEDIUM | setup.sh | 199 | # ============================================================================= |
| MEDIUM | setup.sh | 384 | # ============================================================================= |
| MEDIUM | setup.sh | 386 | # ============================================================================= |
| MEDIUM | setup.sh | 460 | # ============================================================================= |
| MEDIUM | setup.sh | 462 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 57 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 59 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 64 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 66 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 102 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 104 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 472 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 474 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 29 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 31 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 171 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 173 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 217 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 219 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 277 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 279 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 548 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 550 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 582 | # ============================================================================= |
| MEDIUM | setup_mcp.sh | 584 | # ============================================================================= |
| MEDIUM | tests/test_workflow_runner.py | 81 | # ─────────────────────────── run_workflows ────────────────────────────────── |
| MEDIUM | tests/test_workflow_runner.py | 22 | # ─────────────────────────── helpers ──────────────────────────────────────── |
| MEDIUM | tests/test_workflow_runner.py | 40 | # ─────────────────────────── collect_workflow_vars ────────────────────────── |
| MEDIUM | tests/test_workflow_runner.py | 381 | # ────────────────── bundled preset loading (integration) ───────────────────── |
| MEDIUM | tests/test_mcp_fastmcp.py | 170 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 172 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 263 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 265 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 425 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 427 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 526 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 528 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 581 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 583 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 729 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 731 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 784 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 786 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 833 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 835 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 44 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 46 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 113 | # ============================================================================ |
| MEDIUM | tests/test_mcp_fastmcp.py | 115 | # ============================================================================ |
| MEDIUM | tests/test_unified.py | 24 | # =========================== |
| MEDIUM | tests/test_unified.py | 26 | # =========================== |
| 662 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | QWEN.md | 253 | except Exception as e: |
| LOW | tests/test_integration_adaptors.py | 122 | except Exception: |
| LOW | tests/test_integration_adaptors.py | 148 | except Exception as e: |
| LOW | tests/test_integration_adaptors.py | 228 | except Exception as e: |
| LOW | tests/test_integration_adaptors.py | 298 | except Exception as e: |
| LOW | tests/test_integration_adaptors.py | 373 | except Exception as e: |
| LOW | tests/test_integration_adaptors.py | 432 | except Exception as e: |
| LOW | tests/test_integration_adaptors.py | 533 | except Exception as e: |
| LOW | tests/test_c3_integration.py | 288 | except Exception as e: |
| LOW | tests/test_real_world_fastmcp.py | 105 | except Exception as e: |
| LOW | tests/test_utilities.py | 207 | except Exception as e: |
| LOW | tests/test_utilities.py | 218 | except Exception as e: |
| LOW | tests/test_video_scraper.py | 3103 | except Exception: |
| LOW | tests/test_unified_mcp_integration.py | 206 | except Exception as e: |
| LOW | tests/test_guide_enhancer.py | 463 | except Exception: |
| LOW | tests/test_bootstrap_skill_e2e.py | 164 | except Exception as e: |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 531 | except Exception as e: |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 858 | except Exception as e: |
| LOW | docs/plans/video/01_VIDEO_RESEARCH.md | 258 | except Exception: |
| LOW | docs/plans/video/03_VIDEO_PIPELINE.md | 361 | except Exception as e: |
| LOW | docs/plans/video/03_VIDEO_PIPELINE.md | 369 | except Exception: |
| LOW | docs/plans/video/03_VIDEO_PIPELINE.md | 377 | except Exception: |
| LOW | docs/plans/video/03_VIDEO_PIPELINE.md | 388 | except Exception: |
| LOW | docs/plans/video/03_VIDEO_PIPELINE.md | 399 | except Exception: |
| LOW | docs/roadmap/INTELLIGENCE_SYSTEM_ARCHITECTURE.md | 749 | except Exception as e: |
| LOW | docs/zh-CN/reference/CODE_QUALITY.md | 157 | except Exception: |
| LOW | docs/zh-CN/reference/CODE_QUALITY.md | 165 | except Exception as e: |
| LOW | docs/integrations/WEAVIATE.md | 282 | except Exception as e: |
| LOW | docs/integrations/WEAVIATE.md | 722 | except Exception as e: |
| LOW | docs/integrations/QDRANT.md | 774 | except Exception as e: |
| LOW | docs/reference/CODE_QUALITY.md | 157 | except Exception: |
| LOW | docs/reference/CODE_QUALITY.md | 165 | except Exception as e: |
| LOW | docs/strategy/ARBITRARY_LIMITS_AND_DEAD_CODE_PLAN.md | 277 | except Exception as e: |
| LOW | examples/test_http_server.py | 63 | except Exception as e: |
| LOW | examples/test_http_server.py | 84 | except Exception as e: |
| LOW | examples/pinecone-upsert/quickstart.py | 248 | except Exception as e: |
| LOW | examples/pinecone-upsert/quickstart.py | 343 | except Exception as e: |
| LOW | examples/continue-dev-universal/context_server.py | 168 | except Exception as e: |
| LOW | examples/weaviate-example/3_query_example.py | 49 | except Exception as e: |
| LOW | examples/weaviate-example/3_query_example.py | 97 | except Exception as e: |
| LOW | examples/weaviate-example/3_query_example.py | 132 | except Exception as e: |
| LOW | examples/weaviate-example/3_query_example.py | 172 | except Exception as e: |
| LOW | examples/weaviate-example/3_query_example.py | 203 | except Exception as e: |
| LOW | examples/weaviate-example/3_query_example.py | 235 | except Exception as e: |
| LOW | examples/weaviate-example/2_upload_to_weaviate.py | 59 | except Exception as e: |
| LOW | examples/llama-index-query-engine/quickstart.py | 163 | except Exception as e: |
| LOW | examples/llama-index-query-engine/quickstart.py | 212 | except Exception as e: |
| LOW | examples/cursor-react-skill/generate_cursorrules.py | 138 | except Exception as e: |
| LOW | examples/chroma-example/3_query_example.py | 41 | except Exception as e: |
| LOW | examples/chroma-example/3_query_example.py | 49 | except Exception as e: |
| LOW | examples/chroma-example/3_query_example.py | 101 | except Exception as e: |
| LOW | examples/chroma-example/3_query_example.py | 143 | except Exception as e: |
| LOW | examples/chroma-example/3_query_example.py | 174 | except Exception as e: |
| LOW | examples/chroma-example/3_query_example.py | 214 | except Exception as e: |
| LOW | examples/chroma-example/3_query_example.py | 242 | except Exception as e: |
| LOW | examples/chroma-example/2_upload_to_chroma.py | 50 | except Exception as e: |
| LOW | examples/chroma-example/2_upload_to_chroma.py | 95 | except Exception as e: |
| LOW | examples/chroma-example/2_upload_to_chroma.py | 115 | except Exception as e: |
| LOW | examples/haystack-pipeline/quickstart.py | 126 | except Exception as e: |
| LOW | examples/langchain-rag-pipeline/quickstart.py | 204 | except Exception as e: |
| 394 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | CONTRIBUTING.md | 344 | Scrape a single page and extract content. Args: url: The URL to scrape selectors: Dictionary o |
| 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 |
| 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 |
| HIGH | examples/continue-dev-universal/context_server.py | 42 | Load framework documentation from Skill Seekers output. Args: framework: Framework name (vue, react, d |
| HIGH | src/skill_seekers/benchmark/runner.py | 51 | Run single benchmark. Args: name: Benchmark name benchmark_func: Function that |
| HIGH | src/skill_seekers/benchmark/runner.py | 93 | Run multiple benchmarks. Args: benchmarks: Dict of name -> benchmark function |
| HIGH | src/skill_seekers/benchmark/runner.py | 121 | Compare two benchmark reports. Args: baseline_path: Path to baseline report cu |
| HIGH | src/skill_seekers/benchmark/runner.py | 250 | Get path to latest benchmark with given name. Args: name: Benchmark name Returns: |
| HIGH | src/skill_seekers/benchmark/framework.py | 134 | Time an operation. Args: operation: Operation name iterations: Number of itera |
| HIGH | src/skill_seekers/benchmark/framework.py | 166 | Track memory usage. Args: operation: Operation name Yields: None |
| HIGH | src/skill_seekers/benchmark/framework.py | 212 | Measure function execution. Args: func: Function to measure *args: Positional |
| HIGH | src/skill_seekers/benchmark/framework.py | 243 | Decorator for timing functions. Args: operation: Operation name (defaults to func.__name__ |
| HIGH | src/skill_seekers/embedding/server.py | 123 | Generate embedding for a single text. Args: request: Embedding request Returns: |
| HIGH | src/skill_seekers/embedding/server.py | 162 | Generate embeddings for multiple texts. Args: request: Batch embedding request Re |
| HIGH | src/skill_seekers/embedding/server.py | 227 | Generate embeddings for skill content. Args: request: Skill embedding request Ret |
| HIGH | src/skill_seekers/embedding/generator.py | 190 | Generate embedding for a single text. Args: text: Text to embed model: Model n |
| HIGH | src/skill_seekers/embedding/generator.py | 224 | Generate embeddings for multiple texts. Args: texts: List of texts to embed mo |
| HIGH | src/skill_seekers/mcp/server_fastmcp.py | 777 | Extract configuration patterns from config files with optional AI enhancement. Analyzes configuration files in |
| HIGH | src/skill_seekers/mcp/server_fastmcp.py | 1182 | Submit a custom config file to the community. Args: config_path: Path to config JSON file to submit (e |
| HIGH | src/skill_seekers/mcp/git_repo.py | 49 | Clone repository if not cached, else pull latest changes. Args: source_name: Source identi |
| HIGH | src/skill_seekers/mcp/git_repo.py | 152 | Load specific config by name from repository. Args: repo_path: Path to cloned repo |
| HIGH | src/skill_seekers/mcp/git_repo.py | 192 | Load and validate config JSON file. Args: config_path: Path to config file Return |
| HIGH | src/skill_seekers/mcp/git_repo.py | 212 | Inject authentication token into git URL. Converts SSH URLs to HTTPS and adds token for authentication |
| HIGH | src/skill_seekers/mcp/marketplace_publisher.py | 188 | Validate skill name to prevent path traversal and injection. Args: name: Skill name to val |
| HIGH | src/skill_seekers/mcp/marketplace_manager.py | 42 | Add or update a marketplace repository. Args: name: Marketplace identifier (lowercase, alp |
| HIGH | src/skill_seekers/mcp/source_manager.py | 47 | Add or update a config source. Args: name: Source identifier (lowercase, alphanumeric + hy |
| HIGH | src/skill_seekers/mcp/source_manager.py | 119 | Get source by name. Args: name: Source identifier Returns: Source dic |
| HIGH | src/skill_seekers/mcp/source_manager.py | 187 | Update specific fields of an existing source. Args: name: Source identifier ** |
| HIGH | src/skill_seekers/mcp/tools/source_tools.py | 348 | Submit a custom config to skill-seekers-configs repository via GitHub issue. Validates the config (both legacy |
| HIGH | src/skill_seekers/cli/skill_converter.py | 111 | Get the appropriate converter for a source type. Args: source_type: Source type from SourceDetector (web, g |
| HIGH | src/skill_seekers/cli/pptx_scraper.py | 797 | Group slides into sections based on layout type and section breaks. Section breaks are detected from: 1 |
| HIGH | src/skill_seekers/cli/codebase_scraper.py | 989 | Analyze local codebase and extract code knowledge. Args: directory: Directory to analyze outpu |
| HIGH | src/skill_seekers/cli/video_visual.py | 640 | Detect scene boundaries in a video using scenedetect. Args: video_path: Path to video file. Returns: |
| HIGH | src/skill_seekers/cli/video_visual.py | 671 | Extract keyframes at specified timestamps using OpenCV. Args: video_path: Path to video file. times |
| HIGH | src/skill_seekers/cli/video_visual.py | 992 | Extract text from a video frame using EasyOCR. Applies frame-type-aware preprocessing and OCR parameters for be |
| 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 |
| HIGH | src/skill_seekers/cli/config_validator.py | 527 | Validate config file and return validator instance. Args: config_path: Path to config JSON file R |
| HIGH | src/skill_seekers/cli/how_to_guide_builder.py | 844 | Main entry point - build guides from workflow examples. Args: examples: List of TestExampl |
| HIGH | src/skill_seekers/cli/video_scraper.py | 112 | Parse a time string into seconds. Accepted formats: - Plain seconds: ``"330"`` or ``"330.5"`` - MM: |
| 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 |
| 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: |
| 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 |
| HIGH | src/skill_seekers/cli/openapi_scraper.py | 320 | Detect the OpenAPI/Swagger version from the spec. Args: spec: Parsed spec dictionary. Retu |
| 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 |
| HIGH | src/skill_seekers/cli/rate_limit_handler.py | 136 | Check if response indicates rate limit and handle it. Args: response: requests.Response ob |
| HIGH | src/skill_seekers/cli/rate_limit_handler.py | 218 | Handle rate limit based on strategy. Args: rate_info: Dict with rate limit information |
| HIGH | src/skill_seekers/cli/doc_scraper.py | 2318 | Load and validate configuration from JSON file. Automatically fetches configs from SkillSeekersWeb.com API if not f |
| HIGH | src/skill_seekers/cli/install_agent.py | 59 | Resolve the installation path for a given agent. Handles both global paths (~/.<agent>/skills/) and project-re |
| 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. |
| 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 |
| 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 |
| HIGH | src/skill_seekers/cli/confluence_scraper.py | 1269 | Load previously extracted data from a JSON file. Args: json_path: Path to the intermediate extracte |
| HIGH | src/skill_seekers/cli/html_scraper.py | 62 | Collect HTML files from a path (file or directory). For a single file, returns a list with that file. For a directo |
| HIGH | src/skill_seekers/cli/source_detector.py | 50 | Detect source type and extract information. Args: source: User input (URL, path, repo, etc.) |
| HIGH | src/skill_seekers/cli/video_metadata.py | 111 | Extract metadata from a YouTube video URL without downloading. Args: url: YouTube video URL. Returns: |
| 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: |
| 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 |
| HIGH | src/skill_seekers/cli/generate_router.py | 295 | Extract readable topic from skill name. Examples: - "fastmcp-oauth" -> "OAuth authentication" |
| HIGH | src/skill_seekers/cli/generate_router.py | 457 | Convert GitHub issue title to natural question format. Examples: - "OAuth fails on redirect" → |
| HIGH | src/skill_seekers/cli/generate_router.py | 526 | Parse issue title to extract problem-solution pattern. Analyzes the structure of closed issue titles t |
| 20 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_pinecone_adaptor.py | 873 | |
| LOW | tests/test_create_arguments.py | 101 | |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 324 | |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 702 | |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 796 | |
| LOW | tests/test_adaptors/test_adaptors_e2e.py | 820 | |
| LOW | examples/llama-index-query-engine/quickstart.py | 122 | |
| LOW | examples/chroma-example/2_upload_to_chroma.py | 66 | |
| LOW | scripts/translate_doc.py | 199 | |
| LOW | api/config_analyzer.py | 182 | |
| LOW | src/skill_seekers/benchmark/runner.py | 120 | |
| LOW | src/skill_seekers/embedding/server.py | 161 | |
| LOW | src/skill_seekers/mcp/server.py | 66 | |
| LOW | src/skill_seekers/mcp/git_repo.py | 41 | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 66 | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 615 | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 754 | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 985 | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 1261 | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 1550 | |
| LOW | src/skill_seekers/mcp/server_legacy.py | 1877 | |
| LOW | src/skill_seekers/mcp/marketplace_manager.py | 185 | |
| LOW | src/skill_seekers/mcp/tools/splitting_tools.py | 30 | |
| LOW | src/skill_seekers/mcp/tools/config_tools.py | 158 | |
| LOW | src/skill_seekers/mcp/tools/scraping_tools.py | 81 | |
| LOW | src/skill_seekers/mcp/tools/scraping_tools.py | 211 | |
| LOW | src/skill_seekers/mcp/tools/scraping_tools.py | 380 | |
| LOW | src/skill_seekers/mcp/tools/packaging_tools.py | 32 | |
| LOW | src/skill_seekers/mcp/tools/packaging_tools.py | 108 | |
| LOW | src/skill_seekers/mcp/tools/packaging_tools.py | 300 | |
| LOW | src/skill_seekers/mcp/tools/packaging_tools.py | 433 | |
| LOW | src/skill_seekers/mcp/tools/source_tools.py | 36 | |
| LOW | src/skill_seekers/mcp/tools/source_tools.py | 347 | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 146 | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 433 | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 574 | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 669 | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 710 | |
| LOW | src/skill_seekers/cli/asciidoc_scraper.py | 751 | |
| LOW | src/skill_seekers/cli/agent_client.py | 219 | |
| LOW | src/skill_seekers/cli/agent_client.py | 286 | |
| LOW | src/skill_seekers/cli/agent_client.py | 355 | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 105 | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 364 | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 453 | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 597 | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 965 | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 1030 | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 1152 | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 1256 | |
| LOW | src/skill_seekers/cli/pptx_scraper.py | 1315 | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 427 | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 538 | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 1328 | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 1416 | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 1474 | |
| LOW | src/skill_seekers/cli/chat_scraper.py | 1536 | |
| LOW | src/skill_seekers/cli/github_scraper.py | 103 | |
| LOW | src/skill_seekers/cli/github_scraper.py | 405 | |
| LOW | src/skill_seekers/cli/github_scraper.py | 713 | |
| 252 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_mcp_fastmcp.py | 743 | # Step 1: Generate config |
| LOW | tests/test_mcp_fastmcp.py | 749 | # Step 2: Validate config |
| LOW | tests/test_mcp_fastmcp.py | 757 | # Step 1: Add source |
| LOW | tests/test_mcp_fastmcp.py | 763 | # Step 2: Fetch config |
| LOW | tests/test_mcp_fastmcp.py | 771 | # Step 1: Split config |
| LOW | tests/test_mcp_fastmcp.py | 777 | # Step 2: Generate router |
| LOW | tests/test_git_sources_e2e.py | 133 | # Step 2: List available configs |
| LOW | tests/test_git_sources_e2e.py | 139 | # Step 3: Fetch specific config |
| LOW | tests/test_git_sources_e2e.py | 142 | # Step 4: Verify config content |
| LOW | tests/test_git_sources_e2e.py | 182 | # Step 2: List sources |
| LOW | tests/test_git_sources_e2e.py | 187 | # Step 3: Get source details |
| LOW | tests/test_git_sources_e2e.py | 191 | # Step 4: Clone via source name |
| LOW | tests/test_git_sources_e2e.py | 199 | # Step 5: Fetch config |
| LOW | tests/test_git_sources_e2e.py | 204 | # Step 6: Update source (re-add with different priority) |
| LOW | tests/test_git_sources_e2e.py | 214 | # Step 7: Remove source |
| LOW | tests/test_git_sources_e2e.py | 218 | # Step 8: Verify removal |
| LOW | tests/test_git_sources_e2e.py | 241 | # Step 1: Add multiple sources with different priorities |
| LOW | tests/test_git_sources_e2e.py | 246 | # Step 2: Verify sources are sorted by priority |
| LOW | tests/test_git_sources_e2e.py | 253 | # Step 3: Enable/disable sources |
| LOW | tests/test_git_sources_e2e.py | 256 | # Step 4: List enabled sources only |
| LOW | tests/test_git_sources_e2e.py | 337 | # Step 1: Clone repository |
| LOW | tests/test_git_sources_e2e.py | 342 | # Step 2: Modify local cache manually |
| LOW | tests/test_git_sources_e2e.py | 349 | # Step 3: Force refresh |
| LOW | tests/test_git_sources_e2e.py | 357 | # Step 4: Verify cache was reset |
| LOW | tests/test_git_sources_e2e.py | 377 | # Step 1: Clone repository |
| LOW | tests/test_git_sources_e2e.py | 382 | # Step 2: Try to fetch non-existent config |
| LOW | tests/test_git_sources_e2e.py | 386 | # Step 3: Verify helpful error message with suggestions |
| LOW | tests/test_git_sources_e2e.py | 460 | # Step 1: Add source with one instance |
| LOW | tests/test_git_sources_e2e.py | 464 | # Step 2: Create new instance |
| LOW | tests/test_git_sources_e2e.py | 467 | # Step 3: Verify source persists |
| LOW | tests/test_git_sources_e2e.py | 473 | # Step 4: Modify source with new instance |
| LOW | tests/test_git_sources_e2e.py | 480 | # Step 5: Verify changes persist |
| LOW | tests/test_git_sources_e2e.py | 505 | # Step 1: Clone to cache_dir_1 |
| LOW | tests/test_git_sources_e2e.py | 511 | # Step 2: Clone same repo to cache_dir_2 |
| LOW | tests/test_git_sources_e2e.py | 517 | # Step 3: Verify both caches are independent |
| LOW | tests/test_git_sources_e2e.py | 522 | # Step 4: Modify one cache |
| LOW | tests/test_git_sources_e2e.py | 527 | # Step 5: Verify other cache is unaffected |
| LOW | tests/test_git_sources_e2e.py | 552 | # Step 1: Add GitHub source |
| LOW | tests/test_git_sources_e2e.py | 560 | # Step 2: Verify GITHUB_TOKEN was auto-detected |
| LOW | tests/test_git_sources_e2e.py | 563 | # Step 3: Add GitLab source |
| LOW | tests/test_git_sources_e2e.py | 571 | # Step 4: Verify GITLAB_TOKEN was auto-detected |
| LOW | tests/test_git_sources_e2e.py | 599 | # Step 1: Team lead creates repository (already done by fixture) |
| LOW | tests/test_git_sources_e2e.py | 601 | # Step 2: Team lead registers source |
| LOW | tests/test_git_sources_e2e.py | 607 | # Step 3: Developer 1 clones and uses config |
| LOW | tests/test_git_sources_e2e.py | 617 | # Step 4: Developer 2 uses same source (should use cache, not re-clone) |
| LOW | tests/test_git_sources_e2e.py | 624 | # Step 5: Team lead updates repository |
| LOW | tests/test_git_sources_e2e.py | 635 | # Step 6: Developers pull updates |
| LOW | tests/test_git_sources_e2e.py | 643 | # Step 7: Config is removed from repo |
| LOW | tests/test_git_sources_e2e.py | 652 | # Step 8: Error handling works correctly |
| LOW | tests/test_git_sources_e2e.py | 122 | # Step 1: Clone repository |
| LOW | tests/test_git_sources_e2e.py | 169 | # Step 1: Add source to registry |
| LOW | tests/test_git_sources_e2e.py | 278 | # Step 1: Clone repository |
| LOW | tests/test_git_sources_e2e.py | 286 | # Step 2: Add new commit to original repo |
| LOW | tests/test_git_sources_e2e.py | 305 | # Step 3: Pull updates |
| LOW | tests/test_git_sources_e2e.py | 313 | # Step 4: Verify new config is available |
| LOW | tests/test_mcp_server.py | 564 | # Step 1: Generate config using skill_seeker_server |
| LOW | tests/test_mcp_server.py | 573 | # Step 2: Validate config |
| LOW | tests/test_mcp_server.py | 578 | # Step 3: List configs |
| LOW | tests/test_issue_277_discord_e2e.py | 61 | # Step 1: Detect llms.txt |
| LOW | tests/test_issue_277_discord_e2e.py | 64 | # Step 2: Download the largest variant (same logic as doc_scraper) |
| 81 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | setup.sh | 266 | # Check if HTTP transport needed |
| LOW | setup.sh | 271 | # Check if this is an HTTP agent |
| LOW | setup.sh | 298 | # Check if config already exists |
| LOW | setup.sh | 307 | # Check if skill-seeker already configured |
| LOW | setup.sh | 388 | # Check if any selected agent needs HTTP |
| LOW | setup.sh | 425 | # Check if server started |
| LOW | setup_mcp.sh | 107 | # Check if we're in a virtual environment |
| LOW | setup_mcp.sh | 476 | # Check if any selected agent needs HTTP |
| LOW | setup_mcp.sh | 192 | # Check if uvicorn is available |
| LOW | setup_mcp.sh | 346 | # Check if HTTP transport needed |
| LOW | setup_mcp.sh | 351 | # Check if this is an HTTP agent |
| LOW | setup_mcp.sh | 378 | # Check if config already exists |
| LOW | setup_mcp.sh | 387 | # Check if skill-seeker already configured |
| LOW | setup_mcp.sh | 513 | # Check if server started |
| LOW | tests/test_source_manager.py | 185 | # Read file directly |
| LOW | tests/test_source_manager.py | 335 | # Read file directly |
| LOW | tests/test_git_sources_e2e.py | 27 | # Check if MCP is available |
| LOW | tests/test_integration_adaptors.py | 132 | # Check if Weaviate client is installed |
| LOW | tests/test_integration_adaptors.py | 138 | # Check if Weaviate is running |
| LOW | tests/test_integration_adaptors.py | 282 | # Check if ChromaDB is installed |
| LOW | tests/test_integration_adaptors.py | 288 | # Check if Chroma is running |
| LOW | tests/test_integration_adaptors.py | 415 | # Check if Qdrant client is installed |
| LOW | tests/test_integration_adaptors.py | 422 | # Check if Qdrant is running |
| LOW | tests/test_cloud_storage.py | 20 | # Check if cloud storage dependencies are available |
| LOW | tests/test_issue_219_e2e.py | 24 | # Check if anthropic is available |
| LOW | tests/test_create_arguments.py | 110 | # Check if this flag already exists in source-specific args |
| LOW | tests/test_how_to_guide_builder.py | 1041 | # Check if all keywords are in integration_keywords list |
| LOW | tests/test_server_fastmcp_http.py | 13 | # Check if starlette is available |
| LOW | tests/test_config_extractor.py | 159 | # Check if parsing failed due to missing PyYAML |
| LOW | tests/test_config_extractor.py | 317 | # Check if parsing failed due to missing toml/tomli |
| LOW | examples/http_transport_examples.sh | 107 | # Check if port is already in use |
| LOW | examples/pinecone-upsert/quickstart.py | 38 | # Check if index exists |
| LOW | examples/pinecone-upsert/quickstart.py | 237 | # Display results |
| LOW | examples/pinecone-upsert/quickstart.py | 278 | # Check if documents exist |
| LOW | examples/continue-dev-universal/quickstart.py | 76 | # Check if already exists |
| LOW | examples/weaviate-example/1_generate_skill.py | 23 | # Check if skill-seekers is installed |
| LOW | examples/weaviate-example/1_generate_skill.py | 76 | # Check if output file exists |
| LOW | examples/weaviate-example/2_upload_to_weaviate.py | 51 | # Check if ready |
| LOW | examples/weaviate-example/2_upload_to_weaviate.py | 84 | # Check if class already exists |
| LOW | examples/llama-index-query-engine/quickstart.py | 180 | # Check if documents exist |
| LOW | examples/faiss-example/3_query_example.py | 43 | # Display results |
| LOW | examples/chroma-example/1_generate_skill.py | 23 | # Check if skill-seekers is installed |
| LOW | examples/chroma-example/1_generate_skill.py | 76 | # Check if output file exists |
| LOW | examples/chroma-example/2_upload_to_chroma.py | 71 | # Check if collection exists |
| LOW | examples/haystack-pipeline/quickstart.py | 20 | # Check if Haystack is installed |
| LOW | examples/haystack-pipeline/quickstart.py | 95 | # Display results |
| LOW | examples/langchain-rag-pipeline/quickstart.py | 145 | # Check if documents exist |
| LOW | scripts/run_benchmarks.sh | 26 | # Check if package is installed |
| LOW | scripts/check_translation_sync.sh | 2 | # Check if Chinese translations are in sync with English originals |
| LOW | scripts/check_translation_sync.sh | 19 | # Check if Chinese version exists |
| LOW | scripts/check_translation_sync.sh | 30 | # Check if English is newer |
| LOW | src/skill_seekers/embedding/cache.py | 27 | # Check if cached |
| LOW | src/skill_seekers/mcp/server_fastmcp.py | 1803 | # Check if MCP is available |
| LOW | src/skill_seekers/mcp/agent_detector.py | 120 | # Check if parent directory exists (agent is likely installed) |
| LOW | src/skill_seekers/mcp/server_legacy.py | 96 | # Check if process finished |
| LOW | src/skill_seekers/mcp/server_legacy.py | 772 | # Set max_pages to None (unlimited) |
| LOW | src/skill_seekers/mcp/server_legacy.py | 874 | # Check if API key exists - only upload if available |
| LOW | src/skill_seekers/mcp/server_legacy.py | 993 | # Check if file exists |
| LOW | src/skill_seekers/mcp/server_legacy.py | 2156 | # Check if this is an update |
| LOW | src/skill_seekers/mcp/source_manager.py | 95 | # Check if source exists |
| 88 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/test_adaptors/test_markdown_adaptor.py | 0 | test that package creates zip file with correct structure |
| HIGH | tests/test_adaptors/test_minimax_adaptor.py | 0 | test that package creates zip file with correct structure |
| HIGH | tests/test_adaptors/test_claude_adaptor.py | 0 | test that package creates zip file with correct structure |
| HIGH | tests/test_adaptors/test_openai_adaptor.py | 0 | test that package creates zip file with correct structure |
| HIGH | tests/test_adaptors/test_chroma_adaptor.py | 0 | test upload returns instructions (no actual upload). |
| HIGH | tests/test_adaptors/test_qdrant_adaptor.py | 0 | test upload returns instructions (no actual upload). |
| HIGH | tests/test_adaptors/test_langchain_adaptor.py | 0 | test upload returns instructions (no actual upload). |
| HIGH | tests/test_adaptors/test_llama_index_adaptor.py | 0 | test upload returns instructions (no actual upload). |
| HIGH | tests/test_adaptors/test_haystack_adaptor.py | 0 | test upload returns instructions (no actual upload). |
| HIGH | tests/test_adaptors/test_faiss_adaptor.py | 0 | test upload returns instructions (no actual upload). |
| HIGH | tests/test_adaptors/test_weaviate_adaptor.py | 0 | test upload returns instructions (no actual upload). |
| HIGH | tests/test_adaptors/test_chroma_adaptor.py | 0 | test that api key validation returns false (no api needed). |
| HIGH | tests/test_adaptors/test_qdrant_adaptor.py | 0 | test that api key validation returns false (no api needed). |
| HIGH | tests/test_adaptors/test_langchain_adaptor.py | 0 | test that api key validation returns false (no api needed). |
| HIGH | tests/test_adaptors/test_llama_index_adaptor.py | 0 | test that api key validation returns false (no api needed). |
| HIGH | tests/test_adaptors/test_haystack_adaptor.py | 0 | test that api key validation returns false (no api needed). |
| HIGH | tests/test_adaptors/test_faiss_adaptor.py | 0 | test that api key validation returns false (no api needed). |
| HIGH | tests/test_adaptors/test_weaviate_adaptor.py | 0 | test that api key validation returns false (no api needed). |
| HIGH | tests/test_adaptors/test_gemini_adaptor.py | 0 | test successful enhancement - skipped (needs real api for integration test) |
| HIGH | tests/test_adaptors/test_claude_adaptor.py | 0 | test successful enhancement - skipped (needs real api for integration test) |
| HIGH | tests/test_adaptors/test_openai_adaptor.py | 0 | test successful enhancement - skipped (needs real api for integration test) |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| HIGH | src/skill_seekers/cli/asciidoc_scraper.py | 0 | simple quality heuristic for code blocks (0-10 scale). |
| HIGH | src/skill_seekers/cli/epub_scraper.py | 0 | simple quality heuristic for code blocks (0-10 scale). |
| HIGH | src/skill_seekers/cli/word_scraper.py | 0 | simple quality heuristic for code blocks (0-10 scale). |
| HIGH | src/skill_seekers/cli/asciidoc_scraper.py | 0 | extract key concepts from headings across all sections. |
| HIGH | src/skill_seekers/cli/epub_scraper.py | 0 | extract key concepts from headings across all sections. |
| HIGH | src/skill_seekers/cli/word_scraper.py | 0 | extract key concepts from headings across all sections. |
| HIGH | src/skill_seekers/cli/adaptors/claude.py | 0 | read reference markdown files from skill directory. args: references_dir: path to references directory max_chars: maximu |
| HIGH | src/skill_seekers/cli/adaptors/gemini.py | 0 | read reference markdown files from skill directory. args: references_dir: path to references directory max_chars: maximu |
| HIGH | src/skill_seekers/cli/adaptors/openai.py | 0 | read reference markdown files from skill directory. args: references_dir: path to references directory max_chars: maximu |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/conftest.py | 16 | |
| LOW | tests/test_git_sources_e2e.py | 29 | |
| LOW | tests/test_git_sources_e2e.py | 30 | |
| LOW | tests/test_mcp_server.py | 25 | |
| LOW | tests/test_cloud_storage.py | 22 | |
| LOW | tests/test_cloud_storage.py | 29 | |
| LOW | tests/test_cloud_storage.py | 36 | |
| LOW | tests/test_issue_219_e2e.py | 26 | |
| LOW | tests/test_issue_219_e2e.py | 39 | |
| LOW | tests/test_issue_219_e2e.py | 39 | |
| LOW | tests/test_pdf_advanced_features.py | 32 | |
| LOW | tests/test_pdf_advanced_features.py | 33 | |
| LOW | tests/test_doctor.py | 3 | |
| LOW | tests/test_video_scraper.py | 23 | |
| LOW | tests/test_video_scraper.py | 30 | |
| LOW | tests/test_video_scraper.py | 2394 | |
| LOW | tests/test_kotlin_support.py | 8 | |
| LOW | tests/test_pdf_scraper.py | 21 | |
| LOW | tests/test_workflow_prompt_injection.py | 10 | |
| LOW | tests/test_unified_mcp_integration.py | 23 | |
| LOW | tests/test_signal_collectors.py | 8 | |
| LOW | tests/test_mcp_workflow_tools.py | 11 | |
| LOW | tests/test_mcp_git_sources.py | 16 | |
| LOW | tests/test_scan_command.py | 9 | |
| LOW | tests/test_github_scraper.py | 27 | |
| LOW | tests/test_word_scraper.py | 26 | |
| LOW | tests/test_word_scraper.py | 27 | |
| LOW | tests/test_browser_renderer.py | 6 | |
| LOW | examples/llama-index-query-engine/quickstart.py | 22 | |
| LOW | examples/faiss-example/1_generate_skill.py | 3 | |
| LOW | examples/faiss-example/2_build_faiss_index.py | 5 | |
| LOW | examples/qdrant-example/2_upload_to_qdrant.py | 4 | |
| LOW | examples/qdrant-example/1_generate_skill.py | 3 | |
| LOW | src/skill_seekers/__init__.py | 8 | |
| LOW | src/skill_seekers/benchmark/__init__.py | 31 | |
| LOW | src/skill_seekers/benchmark/__init__.py | 31 | |
| LOW | src/skill_seekers/benchmark/__init__.py | 32 | |
| LOW | src/skill_seekers/benchmark/__init__.py | 33 | |
| LOW | src/skill_seekers/benchmark/__init__.py | 33 | |
| LOW | src/skill_seekers/embedding/__init__.py | 21 | |
| LOW | src/skill_seekers/embedding/__init__.py | 21 | |
| LOW | src/skill_seekers/embedding/__init__.py | 21 | |
| LOW | src/skill_seekers/embedding/__init__.py | 22 | |
| LOW | src/skill_seekers/embedding/__init__.py | 23 | |
| LOW | src/skill_seekers/mcp/__init__.py | 32 | |
| LOW | src/skill_seekers/mcp/tools/workflow_tools.py | 12 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 17 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 19 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 22 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 25 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 28 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 31 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 34 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 37 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 40 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 43 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 46 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 49 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 52 | |
| LOW | src/skill_seekers/mcp/tools/__init__.py | 55 | |
| 128 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tests/test_dependency_analyzer.py | 187 | # Create a simple dependency: main.py -> utils.py |
| MEDIUM | tests/test_source_detector.py | 121 | # Create a test directory |
| MEDIUM | tests/test_source_detector.py | 270 | # Create a directory that looks like a domain |
| MEDIUM | tests/test_source_detector.py | 104 | # Create a test directory |
| MEDIUM | tests/test_mcp_fastmcp.py | 395 | # Create a dummy source directory |
| MEDIUM | tests/test_mcp_fastmcp.py | 437 | # Create a mock skill directory |
| MEDIUM | tests/test_mcp_fastmcp.py | 372 | # Create a dummy PDF config |
| MEDIUM | tests/test_mcp_fastmcp.py | 408 | # Create a dummy source directory |
| MEDIUM | tests/test_mcp_fastmcp.py | 461 | # Create a mock zip file |
| MEDIUM | tests/test_chunking_integration.py | 45 | # Create a reference file |
| MEDIUM | tests/test_rag_chunker.py | 119 | # This function is longer than our chunk size |
| MEDIUM | tests/test_mcp_server.py | 193 | # Create a test config |
| MEDIUM | tests/test_mcp_server.py | 358 | # Create a mock skill directory |
| MEDIUM | tests/test_create_integration_basic.py | 55 | # Create a test directory |
| MEDIUM | tests/test_create_integration_basic.py | 72 | # Create a dummy PDF file |
| MEDIUM | tests/test_create_integration_basic.py | 90 | # Create a minimal config file |
| MEDIUM | tests/test_config_publisher.py | 135 | # Create a mock source that returns proper data |
| MEDIUM | tests/test_config_publisher.py | 181 | # Create a working repo with existing config |
| MEDIUM | tests/test_terminal_detection.py | 146 | # Create a test skill directory with minimal setup |
| MEDIUM | tests/test_utilities.py | 166 | # Create a real zip file |
| MEDIUM | tests/test_video_scraper.py | 396 | # Create a temp file |
| MEDIUM | tests/test_video_scraper.py | 2924 | # Create a temp skill dir with a video reference file |
| MEDIUM | tests/test_video_scraper.py | 489 | # Create a fake video file and matching SRT |
| MEDIUM | tests/test_video_scraper.py | 2329 | # Create a dark frame (simulating dark-theme IDE) |
| MEDIUM | tests/test_video_scraper.py | 2365 | # Create a light frame (white background, dark text) |
| MEDIUM | tests/test_video_scraper.py | 2403 | # Create a simple white image with black text |
| MEDIUM | tests/test_video_scraper.py | 2488 | # Create a minimal image file |
| MEDIUM | tests/test_marketplace_publisher.py | 298 | # Create a working repo with initial marketplace structure, then bare-clone it |
| MEDIUM | tests/test_marketplace_publisher.py | 212 | # Create a cached repo without .git so publish() takes the clone path |
| MEDIUM | tests/test_pinecone_adaptor.py | 300 | # Create a dummy package file |
| MEDIUM | tests/test_pinecone_adaptor.py | 769 | # Create a minimal weaviate package |
| MEDIUM | tests/test_unified_analyzer.py | 205 | # Create a test file that C3.x can analyze |
| MEDIUM | tests/test_unified_scraper_orchestration.py | 347 | # Create a fake data file that the converter will "produce" |
| MEDIUM | tests/test_pdf_extractor.py | 682 | # Create a mock page that raises AssertionError on markdown extraction |
| MEDIUM | tests/test_pdf_extractor.py | 711 | # Create a mock page that raises RuntimeError |
| MEDIUM | tests/test_pdf_extractor.py | 738 | # Create a mock page that raises TypeError |
| MEDIUM | tests/test_pdf_extractor.py | 763 | # Create a mock page with structured content |
| MEDIUM | tests/test_unified_mcp_integration.py | 70 | # Create a truly legacy config (no "sources" key — just base_url + selectors) |
| MEDIUM | tests/test_signal_collectors.py | 73 | # Create a manifest file then make it unreadable by injecting a read error. |
| MEDIUM | tests/test_codebase_scraper.py | 447 | # Create a documentation directory with some content |
| MEDIUM | tests/test_smart_summarization.py | 20 | # Create a realistic reference content with more text to make summarization worthwhile |
| MEDIUM | tests/test_word_scraper.py | 489 | # Create a real file with wrong extension |
| MEDIUM | tests/test_epub_scraper.py | 388 | # Create a real file with wrong extension |
| MEDIUM | tests/test_epub_scraper.py | 1479 | os.makedirs(dir_path) # Create a directory with .epub name |
| MEDIUM | examples/weaviate-example/2_upload_to_weaviate.py | 98 | # Create the class |
| MEDIUM | src/skill_seekers/cli/config_manager.py | 77 | # Create main config and progress directories |
| MEDIUM | src/skill_seekers/cli/unified_skill_builder.py | 1152 | # Create main index |
| MEDIUM | src/skill_seekers/cli/unified_skill_builder.py | 1256 | # Create main index |
| MEDIUM | src/skill_seekers/cli/enhance_skill_local.py | 782 | # Create a shell script to run in the terminal |
| MEDIUM | src/skill_seekers/cli/parsers/extractors/base_parser.py | 154 | # Create a wrapper that looks like a path |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | CHANGELOG.md | 13 | - **`skill-seekers scan <dir>` command** (#327) — point at any project; an AI agent inspects manifests, README, Dockerfi |
| HIGH | CHANGELOG.md | 27 | - **Safety** (#327) — atomic JSON writes via `os.replace` so SIGINT mid-write can't corrupt a config and silently flip i |
| HIGH | CHANGELOG.md | 1301 | - Combines manual header with auto-generated codebase analysis |
| HIGH | tests/test_scan_command.py | 892 | # First call → detection. Second call → AI-generated config. |
| HIGH | docs/features/BOOTSTRAP_SKILL_TECHNICAL.md | 330 | # AI-generated (generic): |
| HIGH | docs/getting-started/05-scan-a-project.md | 122 | # 🤖 18 AI-generated (preview — would invoke AI) |
| HIGH | src/skill_seekers/cli/scan_command.py | 79 | generated: list[Path] = field(default_factory=list) # subset: freshly AI-generated |
| HIGH | src/skill_seekers/cli/scan_command.py | 1170 | # Would have been AI-generated (subject to cap) or failed. |
| HIGH | src/skill_seekers/cli/test_example_extractor.py | 80 | ai_analysis: dict | None = None # AI-generated analysis (C3.6) |
| HIGH | src/skill_seekers/cli/pattern_recognizer.py | 56 | ai_analysis: dict | None = None # AI-generated analysis (C3.6) |
| HIGH | src/skill_seekers/cli/presets/manager.py | 72 | "how_to_guides": True, # ON - AI-generated guides |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | docs/features/UNIFIED_SCRAPING.md | 673 | skill-seekers create --config configs/react_unified.json --api-key YOUR_API_KEY |
| HIGH | docs/integrations/WEAVIATE.md | 91 | auth_client_secret=weaviate.AuthApiKey(api_key="your-api-key"), |
| HIGH | docs/integrations/WEAVIATE.md | 224 | auth_client_secret=weaviate.AuthApiKey(api_key="your-api-key"), |
| HIGH | docs/integrations/LANGCHAIN.md | 208 | pinecone.init(api_key="your-api-key", environment="us-west1-gcp") |
| HIGH | docs/integrations/QDRANT.md | 224 | api_key="your-api-key" |
| HIGH | docs/integrations/PINECONE.md | 62 | export PINECONE_API_KEY=your-api-key |
| HIGH | docs/integrations/PINECONE.md | 182 | pc = Pinecone(api_key="your-api-key") |
| HIGH | examples/pinecone-upsert/README.md | 192 | pc = Pinecone(api_key="your-api-key") |
| HIGH | examples/pinecone-upsert/quickstart.py | 269 | print(" export PINECONE_API_KEY=your-api-key") |
| HIGH | examples/weaviate-example/README.md | 105 | --api-key YOUR_API_KEY |
| HIGH | examples/weaviate-example/README.md | 146 | --api-key YOUR_API_KEY |
| HIGH | src/skill_seekers/cli/adaptors/qdrant.py | 300 | # api_key="your-api-key" |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tests/test_generate_router_github.py | 403 | # Create comprehensive GitHub streams |
| MEDIUM | tests/test_preset_system.py | 68 | """Test comprehensive preset configuration.""" |
| MEDIUM | tests/test_preset_system.py | 156 | """Test applying comprehensive preset.""" |
| MEDIUM | tests/test_preset_system.py | 220 | # --comprehensive flag |
| MEDIUM | tests/test_preset_system.py | 237 | # Using --preset comprehensive |
| MEDIUM | tests/test_unified_parsers.py | 25 | """Test RST parser with comprehensive example.""" |
| MEDIUM | tests/test_guide_enhancer.py | 506 | """Test comprehensive enhancement prompt generation""" |
| MEDIUM | scripts/run_benchmarks.sh | 3 | # Runs comprehensive benchmarks for all platform adaptors |
| MEDIUM | src/skill_seekers/workflows/unity-game-dev.yaml | 2 | description: Unity game development patterns, MonoBehaviour lifecycle, component architecture, memory management, and C# |
| MEDIUM | src/skill_seekers/mcp/server_legacy.py | 1922 | # Use ConfigValidator for comprehensive validation |
| MEDIUM | src/skill_seekers/mcp/tools/source_tools.py | 418 | # Use ConfigValidator for comprehensive validation |
| MEDIUM | src/skill_seekers/cli/scan_command.py | 1294 | # Nested event loop (Jupyter, async test harness): surface a clear |
| MEDIUM | src/skill_seekers/cli/unified_skill_builder.py | 1506 | """Generate comprehensive ARCHITECTURE.md (C3.5 main deliverable).""" |
| MEDIUM | src/skill_seekers/cli/how_to_guide_builder.py | 116 | # AI enhancement (comprehensive - NEW) |
| MEDIUM | src/skill_seekers/cli/how_to_guide_builder.py | 1085 | # Add best practices as variations |
| MEDIUM | src/skill_seekers/cli/how_to_guide_builder.py | 1099 | # Add explanation to steps based on best practices |
| LOW | src/skill_seekers/cli/dependency_analyzer.py | 793 | # For now, just return the imported module if it exists in our file_nodes |
| LOW | src/skill_seekers/cli/estimate_pages.py | 315 | # If we can't parse the config, just use the filename |
| MEDIUM | src/skill_seekers/cli/utils.py | 297 | # ARCHITECTURE.md is high confidence (comprehensive) |
| MEDIUM | src/skill_seekers/cli/generate_router.py | 215 | # Build comprehensive description from all sub-skills |
| MEDIUM | src/skill_seekers/cli/generate_router.py | 716 | # Add comprehensive footer items |
| MEDIUM | src/skill_seekers/cli/generate_router.py | 734 | # NEW: Generate comprehensive description from all sub-skills |
| LOW | src/skill_seekers/cli/pattern_recognizer.py | 441 | # Check if it has logic (not just pass) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/test_pattern_recognizer.py | 98 | if (instance == null) { |
| HIGH | tests/test_pattern_recognizer.py | 410 | if (instance == null) { |
| HIGH | tests/test_pattern_recognizer.py | 674 | if (instance == null) instance = new DatabaseConnection(); |
| HIGH | tests/test_kotlin_support.py | 22 | val email: String? = null, |
| HIGH | tests/test_kotlin_support.py | 158 | val user = User(2, "", null) |
| HIGH | src/skill_seekers/mcp/config_publisher.py | 210 | repo.remotes.origin.push(target_branch) |
| HIGH | src/skill_seekers/mcp/marketplace_publisher.py | 161 | repo.git.push(push_url, target_branch) |
| HIGH | src/skill_seekers/cli/scan_command.py | 1218 | pipelines (`scan && build`) detect that the scan didn't produce anything. |
| HIGH | src/skill_seekers/cli/install_agent.py | 449 | print(" sudo mkdir -p ~/.amp && sudo chown -R $USER ~/.amp") |
| Severity | File | Line | Snippet |
|---|---|---|---|
| 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 |
| CRITICAL | src/skill_seekers/cli/storage/azure_storage.py | 11 | from azure.core.exceptions import ResourceNotFoundError |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_sync_config_e2e.py | 21 | |
| LOW | docs/archive/legacy/USAGE.md | 301 | |
| LOW | docs/plans/video/07_VIDEO_DEPENDENCIES.md | 401 | # scenedetect ❌ Not installed |
| LOW | docs/features/BOOTSTRAP_SKILL_TECHNICAL.md | 561 | head -10 scripts/skill_header.md |
| LOW | docs/features/ENHANCEMENT_MODES.md | 281 | ### Check Status Command |
| LOW | docs/blog/UNIVERSAL_RAG_PREPROCESSOR.md | 41 | for url in all_urls: # How do you even get all URLs? |
| LOW | docs/blog/UNIVERSAL_RAG_PREPROCESSOR.md | 61 | # Day 5: Add metadata |
| LOW | docs/zh-CN/reference/LARGE_DOCUMENTATION.md | 341 | # - aws-compute (EC2, Lambda) |
| LOW | docs/integrations/LANGCHAIN.md | 121 | ```bash |
| LOW | docs/integrations/LLAMA_INDEX.md | 121 | ``` |
| LOW | docs/reference/LARGE_DOCUMENTATION.md | 341 | # - aws-compute (EC2, Lambda) |
| LOW | examples/http_transport_examples.sh | 1 | #!/bin/bash |
| LOW | examples/http_transport_examples.sh | 61 | # TESTING |
| LOW | examples/http_transport_examples.sh | 81 | # } |
| LOW | examples/haystack-pipeline/requirements.txt | 1 | # Haystack Pipeline Example Requirements |
| LOW | templates/github-actions/update-skills.yml | 1 | # GitHub Actions template for auto-updating Skill Seekers skills |
| LOW | templates/github-actions/update-skills.yml | 61 | fail-fast: false |
| LOW | src/skill_seekers/cli/skill_converter.py | 81 | # Callers must construct it directly, not via get_converter(). |
| LOW | src/skill_seekers/cli/scan_command.py | 621 | """ |
| LOW | src/skill_seekers/cli/main.py | 41 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_chunking_integration.py | 34 | content = "# Test Skill\n\n" + ("Lorem ipsum dolor sit amet. " * 2000) |
| LOW | tests/test_chunking_integration.py | 34 | content = "# Test Skill\n\n" + ("Lorem ipsum dolor sit amet. " * 2000) |
| LOW | tests/test_chunking_integration.py | 148 | """ + ("Lorem ipsum dolor sit amet. " * 1000) # Make it large enough to force chunking |
| LOW | tests/test_chunking_integration.py | 148 | """ + ("Lorem ipsum dolor sit amet. " * 1000) # Make it large enough to force chunking |
| LOW | tests/test_chunking_integration.py | 263 | content = "Lorem ipsum dolor sit amet. " * 2000 # >512 tokens |
| LOW | tests/test_chunking_integration.py | 263 | content = "Lorem ipsum dolor sit amet. " * 2000 # >512 tokens |
| LOW | tests/test_config_publisher.py | 27 | repo.config_writer().set_value("user", "email", "test@test.com").release() |
| LOW | tests/test_adaptor_benchmarks.py | 63 | skill_content = f"# {skill_name.title()} Skill\n\n" + "Lorem ipsum dolor sit amet. " * 500 |
| LOW | tests/test_adaptor_benchmarks.py | 63 | skill_content = f"# {skill_name.title()} Skill\n\n" + "Lorem ipsum dolor sit amet. " * 500 |
| LOW | tests/test_marketplace_publisher.py | 303 | repo.config_writer().set_value("user", "email", "test@test.com").release() |
| LOW | tests/test_marketplace_publisher.py | 311 | "owner": {"name": "Test", "email": "test@test.com"}, |
| LOW | tests/test_quality_metrics.py | 110 | (skill_dir / "SKILL.md").write_text("# Skill\n\nLorem ipsum dolor sit amet") |
| LOW | tests/test_quality_metrics.py | 110 | (skill_dir / "SKILL.md").write_text("# Skill\n\nLorem ipsum dolor sit amet") |
| LOW | docs/reference/CONFIG_FORMAT.md | 371 | "username": "user@example.com", |
| LOW | src/skill_seekers/cli/quality_metrics.py | 197 | placeholders = [r"\blorem ipsum\b", r"\bplaceholder\b", r"\bcoming soon\b"] |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_framework_detection.py | 122 | (app_dir / "utils.py").write_text("def my_function():\n return 'hello'\n") |
| LOW | tests/test_video_scraper.py | 582 | _classify_content_type("import os\ndef process_data(): return result"), |
| LOW | tests/test_code_analyzer.py | 450 | def test_function(a, b): |
| LOW | tests/test_code_analyzer.py | 178 | def helper(): |
| LOW | tests/test_benchmark.py | 187 | def my_function(x): |
| LOW | tests/test_scraper_features.py | 122 | html = "<code>def my_function():\n pass</code>" |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | templates/github-actions/update-skills.yml | 6 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | src/skill_seekers/cli/video_setup.py | 827 | print(f"\nDon't forget to activate the venv first:") |