feat: expand platform coverage with 8 new adaptors, 7 new CLI agents, and OpenCode skill tools

Phase 1 - OpenCode Integration:
- Add OpenCodeAdaptor with directory-based packaging and dual-format YAML frontmatter
- Kebab-case name validation matching OpenCode's regex spec

Phase 2 - OpenAI-Compatible LLM Platforms:
- Extract OpenAICompatibleAdaptor base class from MiniMax (shared format/package/upload/enhance)
- Refactor MiniMax to ~20 lines of constants inheriting from base
- Add 6 new LLM adaptors: Kimi, DeepSeek, Qwen, OpenRouter, Together AI, Fireworks AI
- All use OpenAI-compatible API with platform-specific constants

Phase 3 - CLI Agent Expansion:
- Add 7 new install-agent paths: roo, cline, aider, bolt, kilo, continue, kimi-code
- Total agents: 11 -> 18

Phase 4 - Advanced Features:
- OpenCode skill splitter (auto-split large docs into focused sub-skills with router)
- Bi-directional skill format converter (import/export between OpenCode and any platform)
- GitHub Actions template for automated skill updates

Totals: 12 --target platforms, 18 --agent paths, 2915 tests passing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
yusyus
2026-03-21 20:31:51 +03:00
parent 1d3d7389d7
commit cd7b322b5e
24 changed files with 2482 additions and 499 deletions

View File

@@ -0,0 +1,153 @@
# GitHub Actions template for auto-updating Skill Seekers skills
#
# This workflow periodically re-scrapes documentation sources and updates
# the generated skills in your repository.
#
# Usage:
# 1. Copy this file to .github/workflows/update-skills.yml
# 2. Configure the SKILLS matrix below with your documentation sources
# 3. Set ANTHROPIC_API_KEY secret (optional, for AI enhancement)
# 4. Commit and push
#
# The workflow runs weekly by default (configurable via cron schedule).
name: Update AI Skills
on:
schedule:
# Run weekly on Monday at 6:00 AM UTC
- cron: '0 6 * * 1'
workflow_dispatch:
inputs:
skill_name:
description: 'Specific skill to update (leave empty for all)'
required: false
type: string
target:
description: 'Target platform'
required: false
default: 'claude'
type: choice
options:
- claude
- opencode
- gemini
- openai
- markdown
- kimi
- deepseek
- qwen
- openrouter
- together
- fireworks
agent:
description: 'Install to agent (leave empty to skip install)'
required: false
type: choice
options:
- ''
- claude
- cursor
- opencode
- all
env:
PYTHON_VERSION: '3.12'
jobs:
update-skills:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# ============================================================
# CONFIGURE YOUR SKILLS HERE
# Each entry defines a documentation source to scrape.
# ============================================================
skill:
# Example: Web documentation
# - name: react
# source: https://react.dev/reference
# target: claude
# Example: GitHub repository
# - name: fastapi
# source: tiangolo/fastapi
# target: opencode
# Example: PDF documentation
# - name: rfc-http
# source: ./docs/rfc9110.pdf
# target: markdown
# Placeholder - replace with your skills
- name: placeholder
source: https://example.com/docs
target: claude
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install Skill Seekers
run: pip install skill-seekers
- name: Check if specific skill requested
id: check
run: |
if [ -n "${{ github.event.inputs.skill_name }}" ]; then
if [ "${{ matrix.skill.name }}" != "${{ github.event.inputs.skill_name }}" ]; then
echo "skip=true" >> $GITHUB_OUTPUT
fi
fi
- name: Generate skill
if: steps.check.outputs.skip != 'true'
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
TARGET="${{ github.event.inputs.target || matrix.skill.target || 'claude' }}"
skill-seekers create "${{ matrix.skill.source }}" \
--name "${{ matrix.skill.name }}" \
--target "$TARGET" \
--output-dir "output/${{ matrix.skill.name }}"
- name: Install to agent
if: >
steps.check.outputs.skip != 'true' &&
github.event.inputs.agent != ''
run: |
skill-seekers install-agent \
"output/${{ matrix.skill.name }}" \
--agent "${{ github.event.inputs.agent }}" \
--force
- name: Check for changes
if: steps.check.outputs.skip != 'true'
id: changes
run: |
if [ -n "$(git status --porcelain output/)" ]; then
echo "has_changes=true" >> $GITHUB_OUTPUT
fi
- name: Create PR with updated skills
if: steps.changes.outputs.has_changes == 'true'
uses: peter-evans/create-pull-request@v6
with:
commit-message: "chore: update ${{ matrix.skill.name }} skill"
title: "Update ${{ matrix.skill.name }} skill"
body: |
Automated skill update for **${{ matrix.skill.name }}**.
Source: `${{ matrix.skill.source }}`
Target: `${{ github.event.inputs.target || matrix.skill.target || 'claude' }}`
Generated by [Skill Seekers](https://github.com/yusufkaraaslan/Skill_Seekers)
branch: "skill-update/${{ matrix.skill.name }}"
delete-branch: true