feat: Complete multi-platform feature parity implementation

This commit implements full feature parity across all platforms (Claude, Gemini, OpenAI, Markdown) and all skill modes (Docs, GitHub, PDF, Unified, Local Repo).

## Core Changes

### Phase 1: MCP Package Tool Multi-Platform Support
- Added `target` parameter to `package_skill_tool()` in packaging_tools.py
- Updated MCP server definition to expose `target` parameter
- Platform-specific packaging: ZIP for Claude/OpenAI/Markdown, tar.gz for Gemini
- Platform-specific output messages and instructions

### Phase 2: MCP Upload Tool Multi-Platform Support
- Added `target` parameter to `upload_skill_tool()` in packaging_tools.py
- Added optional `api_key` parameter for API key override
- Updated MCP server definition with platform selection
- Platform-specific API key validation (ANTHROPIC_API_KEY, GOOGLE_API_KEY, OPENAI_API_KEY)
- Graceful handling of Markdown (upload not supported)

### Phase 3: Standalone MCP Enhancement Tool
- Created new `enhance_skill_tool()` function (140+ lines)
- Supports both 'local' mode (Claude Code Max) and 'api' mode (platform APIs)
- Added MCP server definition for `enhance_skill`
- Works with Claude, Gemini, and OpenAI
- Integrated into MCP tools exports

### Phase 4: Unified Config Splitting Support
- Added `is_unified_config()` method to detect multi-source configs
- Implemented `split_by_source()` method to split by source type (docs, github, pdf)
- Updated auto-detection to recommend 'source' strategy for unified configs
- Added 'source' to valid CLI strategy choices
- Updated MCP tool documentation for unified support

### Phase 5: Comprehensive Feature Matrix Documentation
- Created `docs/FEATURE_MATRIX.md` (~400 lines)
- Complete platform comparison tables
- Skill mode support matrix
- CLI and MCP tool coverage matrices
- Platform-specific notes and FAQs
- Workflow examples for each combination
- Updated README.md with feature matrix section

## Files Modified

**Core Implementation:**
- src/skill_seekers/mcp/tools/packaging_tools.py
- src/skill_seekers/mcp/server_fastmcp.py
- src/skill_seekers/mcp/tools/__init__.py
- src/skill_seekers/cli/split_config.py
- src/skill_seekers/mcp/tools/splitting_tools.py

**Documentation:**
- docs/FEATURE_MATRIX.md (NEW)
- README.md

**Tests:**
- tests/test_install_multiplatform.py (already existed)

## Test Results
-  699 tests passing
-  All multiplatform install tests passing (6/6)
-  No regressions introduced
-  All syntax checks passed
-  Import tests successful

## Breaking Changes
None - all changes are backward compatible with default `target='claude'`

## Migration Guide
Existing MCP calls without `target` parameter will continue to work (defaults to 'claude').

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
yusyus
2025-12-28 21:35:21 +03:00
parent d587240e7b
commit 891ce2dbc6
9 changed files with 1017 additions and 95 deletions

View File

@@ -94,17 +94,22 @@ def run_subprocess_with_streaming(cmd, timeout=None):
async def split_config(args: dict) -> List[TextContent]:
"""
Split large documentation config into multiple focused skills.
Split large configs into multiple focused skills.
Supports both documentation and unified (multi-source) configs:
- Documentation configs: Split by categories, size, or create router skills
- Unified configs: Split by source type (documentation, github, pdf)
For large documentation sites (10K+ pages), this tool splits the config into
multiple smaller configs based on categories, size, or custom strategy. This
improves performance and makes individual skills more focused.
multiple smaller configs. For unified configs with multiple sources, splits
into separate configs per source type.
Args:
args: Dictionary containing:
- config_path (str): Path to config JSON file (e.g., configs/godot.json)
- strategy (str, optional): Split strategy: auto, none, category, router, size (default: auto)
- target_pages (int, optional): Target pages per skill (default: 5000)
- config_path (str): Path to config JSON file (e.g., configs/godot.json or configs/react_unified.json)
- strategy (str, optional): Split strategy: auto, none, source, category, router, size (default: auto)
'source' strategy is for unified configs only
- target_pages (int, optional): Target pages per skill for doc configs (default: 5000)
- dry_run (bool, optional): Preview without saving files (default: False)
Returns: