diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f84a9c..3d3e978 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -193,6 +193,21 @@ This **minor feature release** introduces intelligent GitHub rate limit handling - **Test counts**: Standardized to 1200+ tests (was inconsistent 700+ in some docs) - **MCP tool counts**: Updated to 18 tools (from 17) +- **📦 Git Submodules for Configuration Management** - Improved config organization and API deployment + - **Configs as git submodule** at `api/configs_repo/` for cleaner repository + - **Production configs**: Added official production-ready configuration presets + - **Duplicate removal**: Cleaned up all duplicate configs from main repository + - **Test filtering**: Filtered out test-example configs from API endpoints + - **CI/CD integration**: GitHub Actions now initializes submodules automatically + - **API deployment**: Updated render.yaml to use git submodule for configs_repo + - **Benefits**: Cleaner main repo, better config versioning, production/test separation + +- **🔍 Config Discovery Enhancements** - Improved config listing + - **--all flag** for estimate command: `skill-seekers estimate --all` + - Lists all available preset configurations with descriptions + - Helps users discover supported frameworks before scraping + - Shows config names, frameworks, and documentation URLs + ### Changed - **GitHub Fetcher** - Integrated rate limit handler diff --git a/CLAUDE.md b/CLAUDE.md index 1e0a2fe..d3a1e83 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,6 +9,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co **Current Version:** v2.7.0 **Python Version:** 3.10+ required **Status:** Production-ready, published on PyPI +**Website:** https://skillseekersweb.com/ - Browse configs, share, and access documentation ## 🏗️ Architecture @@ -681,6 +682,9 @@ pytest tests/test_file.py --cov=src/skill_seekers --cov-report=term-missing ## 📖 Additional Documentation +**Official Website:** +- [SkillSeekersWeb.com](https://skillseekersweb.com/) - Browse 24+ preset configs, share configs, complete documentation + **For Users:** - [README.md](README.md) - Complete user documentation - [BULLETPROOF_QUICKSTART.md](BULLETPROOF_QUICKSTART.md) - Beginner guide diff --git a/README.md b/README.md index 167d1ac..1f76e6f 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,12 @@ [![PyPI version](https://badge.fury.io/py/skill-seekers.svg)](https://pypi.org/project/skill-seekers/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/skill-seekers.svg)](https://pypi.org/project/skill-seekers/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/skill-seekers.svg)](https://pypi.org/project/skill-seekers/) +[![Website](https://img.shields.io/badge/Website-skillseekersweb.com-blue.svg)](https://skillseekersweb.com/) **Automatically convert documentation websites, GitHub repositories, and PDFs into Claude AI skills in minutes.** +> 🌐 **[Visit SkillSeekersWeb.com](https://skillseekersweb.com/)** - Browse 24+ preset configs, share your configs, and access complete documentation! + > 📋 **[View Development Roadmap & Tasks](https://github.com/users/yusufkaraaslan/projects/2)** - 134 tasks across 10 categories, pick any to contribute! ## What is Skill Seeker? diff --git a/pyproject.toml b/pyproject.toml index 5e447d8..bad50c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "skill-seekers" -version = "2.7.0" +version = "2.8.0-dev" description = "Convert documentation websites, GitHub repositories, and PDFs into Claude AI skills" readme = "README.md" requires-python = ">=3.10" @@ -99,10 +99,12 @@ all = [ ] [project.urls] -Homepage = "https://github.com/yusufkaraaslan/Skill_Seekers" +Homepage = "https://skillseekersweb.com/" +Website = "https://skillseekersweb.com/" Repository = "https://github.com/yusufkaraaslan/Skill_Seekers" "Bug Tracker" = "https://github.com/yusufkaraaslan/Skill_Seekers/issues" -Documentation = "https://github.com/yusufkaraaslan/Skill_Seekers#readme" +Documentation = "https://skillseekersweb.com/" +"Config Browser" = "https://skillseekersweb.com/" [project.scripts] # Main unified CLI diff --git a/src/skill_seekers/__init__.py b/src/skill_seekers/__init__.py index 7f3645d..375f58c 100644 --- a/src/skill_seekers/__init__.py +++ b/src/skill_seekers/__init__.py @@ -5,7 +5,7 @@ This package provides tools for automatically scraping, organizing, and packagin documentation from various sources into uploadable Claude AI skills. """ -__version__ = "2.7.0" +__version__ = "2.8.0-dev" __author__ = "Yusuf Karaaslan" __license__ = "MIT" diff --git a/src/skill_seekers/cli/__init__.py b/src/skill_seekers/cli/__init__.py index 1cd0088..97909a0 100644 --- a/src/skill_seekers/cli/__init__.py +++ b/src/skill_seekers/cli/__init__.py @@ -28,7 +28,7 @@ except ImportError: open_folder = None read_reference_files = None -__version__ = "2.7.0" +__version__ = "2.8.0-dev" __all__ = [ "LlmsTxtDetector", diff --git a/src/skill_seekers/mcp/__init__.py b/src/skill_seekers/mcp/__init__.py index be8094f..b0a299d 100644 --- a/src/skill_seekers/mcp/__init__.py +++ b/src/skill_seekers/mcp/__init__.py @@ -28,6 +28,6 @@ Usage: in ~/.config/claude-code/mcp.json """ -__version__ = "2.7.0" +__version__ = "2.8.0-dev" __all__ = ["agent_detector"] diff --git a/src/skill_seekers/mcp/server_legacy.py b/src/skill_seekers/mcp/server_legacy.py index 93b05d1..c63dd40 100644 --- a/src/skill_seekers/mcp/server_legacy.py +++ b/src/skill_seekers/mcp/server_legacy.py @@ -1479,8 +1479,16 @@ Next steps: detail_response.raise_for_status() config_info = detail_response.json() - # Download the actual config file - download_url = f"{API_BASE_URL}/api/download/{config_name}.json" + # Download the actual config file using the download_url from API response + download_url = config_info.get("download_url") + if not download_url: + return [ + TextContent( + type="text", + text=f"❌ Config '{config_name}' has no download_url. Contact support.", + ) + ] + download_response = await client.get(download_url) download_response.raise_for_status() config_data = download_response.json() diff --git a/src/skill_seekers/mcp/tools/__init__.py b/src/skill_seekers/mcp/tools/__init__.py index fa481a8..376b5a2 100644 --- a/src/skill_seekers/mcp/tools/__init__.py +++ b/src/skill_seekers/mcp/tools/__init__.py @@ -11,7 +11,7 @@ Tools are organized by functionality: - source_tools: Config source management (fetch, submit, add/remove sources) """ -__version__ = "2.7.0" +__version__ = "2.8.0-dev" from .config_tools import ( generate_config as generate_config_impl, diff --git a/src/skill_seekers/mcp/tools/source_tools.py b/src/skill_seekers/mcp/tools/source_tools.py index 2aecf82..9ba3457 100644 --- a/src/skill_seekers/mcp/tools/source_tools.py +++ b/src/skill_seekers/mcp/tools/source_tools.py @@ -282,8 +282,16 @@ Next steps: detail_response.raise_for_status() config_info = detail_response.json() - # Download the actual config file - download_url = f"{API_BASE_URL}/api/download/{config_name}.json" + # Download the actual config file using the download_url from API response + download_url = config_info.get("download_url") + if not download_url: + return [ + TextContent( + type="text", + text=f"❌ Config '{config_name}' has no download_url. Contact support.", + ) + ] + download_response = await client.get(download_url) download_response.raise_for_status() config_data = download_response.json()