feat: add distribution files for Smithery, GitHub Action, and Claude Code Plugin

- Add Claude Code Plugin: plugin.json, .mcp.json, 3 slash commands, skill-builder agent skill
- Add GitHub Action: composite action.yml with 6 inputs/2 outputs, comprehensive README
- Add Smithery: publishing guide with namespace yusufkaraaslan/skill-seekers created
- Add render-mcp.yaml for MCP server deployment on Render
- Fix Dockerfile.mcp: --transport flag (nonexistent) → --http, add dynamic PORT support
- Update AGENTS.md to v3.3.0 with corrected test count and expanded CI section
- Allow distribution/claude-plugin/.mcp.json in .gitignore
This commit is contained in:
yusyus
2026-03-16 23:29:50 +03:00
parent 2b725aa8f7
commit 5e4932e8b1
14 changed files with 718 additions and 47 deletions

View File

@@ -0,0 +1,147 @@
# Skill Seekers GitHub Action
Transform documentation, GitHub repos, PDFs, videos, and 13 other source types into AI-ready skills and RAG knowledge — directly in your CI/CD pipeline.
## Quick Start
```yaml
- uses: yusufkaraaslan/skill-seekers-action@v3
with:
source: 'https://react.dev'
```
## Inputs
| Input | Required | Default | Description |
|-------|----------|---------|-------------|
| `source` | Yes | — | Source URL, file path, or `owner/repo` |
| `command` | No | `create` | Command: `create`, `scrape`, `github`, `pdf`, `video`, `analyze`, `unified` |
| `target` | No | `claude` | Target platform: `claude`, `openai`, `gemini`, `langchain`, `llamaindex`, `markdown` |
| `config` | No | — | Path to JSON config file |
| `output-dir` | No | `output` | Output directory |
| `extra-args` | No | — | Additional CLI arguments |
## Outputs
| Output | Description |
|--------|-------------|
| `skill-dir` | Path to the generated skill directory |
| `skill-name` | Name of the generated skill |
## Examples
### Auto-update documentation skill weekly
```yaml
name: Update AI Skills
on:
schedule:
- cron: '0 6 * * 1' # Every Monday 6am UTC
workflow_dispatch:
jobs:
update-skills:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: yusufkaraaslan/skill-seekers-action@v3
with:
source: 'https://react.dev'
target: 'langchain'
- uses: actions/upload-artifact@v4
with:
name: react-skill
path: output/
```
### Generate skill from GitHub repo
```yaml
- uses: yusufkaraaslan/skill-seekers-action@v3
with:
source: 'pallets/flask'
command: 'github'
target: 'claude'
```
### Process PDF documentation
```yaml
- uses: actions/checkout@v4
- uses: yusufkaraaslan/skill-seekers-action@v3
with:
source: 'docs/api-reference.pdf'
command: 'pdf'
```
### Unified multi-source build with config
```yaml
- uses: actions/checkout@v4
- uses: yusufkaraaslan/skill-seekers-action@v3
with:
config: 'configs/my-project.json'
command: 'unified'
target: 'openai'
```
### Commit generated skill back to repo
```yaml
- uses: actions/checkout@v4
- uses: yusufkaraaslan/skill-seekers-action@v3
id: generate
with:
source: 'https://fastapi.tiangolo.com'
- name: Commit skill
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add output/
git diff --staged --quiet || git commit -m "Update AI skill: ${{ steps.generate.outputs.skill-name }}"
git push
```
## Environment Variables
Pass API keys as environment variables for AI-enhanced skills:
```yaml
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
## Supported Source Types
| Type | Example Source |
|------|---------------|
| Documentation (web) | `https://react.dev` |
| GitHub repo | `pallets/flask` or `https://github.com/pallets/flask` |
| PDF | `docs/manual.pdf` |
| Video | `https://youtube.com/watch?v=...` |
| Local codebase | `./src` |
| Jupyter Notebook | `analysis.ipynb` |
| OpenAPI/Swagger | `openapi.yaml` |
| Word (.docx) | `docs/guide.docx` |
| EPUB | `book.epub` |
| PowerPoint | `slides.pptx` |
| AsciiDoc | `docs/guide.adoc` |
| HTML | `page.html` |
| RSS/Atom | `feed.rss` |
| Man pages | `tool.1` |
| Confluence | Via config file |
| Notion | Via config file |
| Chat (Slack/Discord) | Via config file |
## License
MIT

View File

@@ -0,0 +1,92 @@
name: 'Skill Seekers - AI Knowledge Builder'
description: 'Transform documentation, repos, PDFs, videos, and 13 other source types into AI skills and RAG knowledge'
author: 'Yusuf Karaaslan'
branding:
icon: 'book-open'
color: 'blue'
inputs:
source:
description: 'Source URL, file path, or owner/repo for GitHub repos'
required: true
command:
description: 'Command to run: create (auto-detect), scrape, github, pdf, video, analyze, unified'
required: false
default: 'create'
target:
description: 'Output target platform: claude, openai, gemini, langchain, llamaindex, markdown, cursor, windsurf'
required: false
default: 'claude'
config:
description: 'Path to JSON config file (for unified/advanced scraping)'
required: false
output-dir:
description: 'Output directory for generated skills'
required: false
default: 'output'
extra-args:
description: 'Additional CLI arguments to pass to skill-seekers'
required: false
default: ''
outputs:
skill-dir:
description: 'Path to the generated skill directory'
value: ${{ steps.run.outputs.skill-dir }}
skill-name:
description: 'Name of the generated skill'
value: ${{ steps.run.outputs.skill-name }}
runs:
using: 'composite'
steps:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install Skill Seekers
shell: bash
run: pip install skill-seekers
- name: Run Skill Seekers
id: run
shell: bash
env:
ANTHROPIC_API_KEY: ${{ env.ANTHROPIC_API_KEY }}
OPENAI_API_KEY: ${{ env.OPENAI_API_KEY }}
GOOGLE_API_KEY: ${{ env.GOOGLE_API_KEY }}
GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }}
run: |
set -euo pipefail
OUTPUT_DIR="${{ inputs.output-dir }}"
mkdir -p "$OUTPUT_DIR"
CMD="${{ inputs.command }}"
SOURCE="${{ inputs.source }}"
TARGET="${{ inputs.target }}"
CONFIG="${{ inputs.config }}"
EXTRA="${{ inputs.extra-args }}"
# Build the command
if [ "$CMD" = "create" ]; then
skill-seekers create "$SOURCE" --target "$TARGET" --output "$OUTPUT_DIR" $EXTRA
elif [ -n "$CONFIG" ]; then
skill-seekers "$CMD" --config "$CONFIG" --target "$TARGET" --output "$OUTPUT_DIR" $EXTRA
else
skill-seekers "$CMD" "$SOURCE" --target "$TARGET" --output "$OUTPUT_DIR" $EXTRA
fi
# Find the generated skill directory
SKILL_DIR=$(find "$OUTPUT_DIR" -name "SKILL.md" -exec dirname {} \; | head -1)
SKILL_NAME=$(basename "$SKILL_DIR" 2>/dev/null || echo "unknown")
echo "skill-dir=$SKILL_DIR" >> "$GITHUB_OUTPUT"
echo "skill-name=$SKILL_NAME" >> "$GITHUB_OUTPUT"
echo "### Skill Generated" >> "$GITHUB_STEP_SUMMARY"
echo "- **Name:** $SKILL_NAME" >> "$GITHUB_STEP_SUMMARY"
echo "- **Directory:** $SKILL_DIR" >> "$GITHUB_STEP_SUMMARY"
echo "- **Target:** $TARGET" >> "$GITHUB_STEP_SUMMARY"