Files
skill-seekers-reference/examples/continue-dev-universal
yusyus bdd61687c5 feat: Complete Phase 1 - AI Coding Assistant Integrations (v2.10.0)
Add comprehensive integration guides for 4 AI coding assistants:

## New Integration Guides (98KB total)
- docs/integrations/WINDSURF.md (20KB) - Windsurf IDE with .windsurfrules
- docs/integrations/CLINE.md (25KB) - Cline VS Code extension with MCP
- docs/integrations/CONTINUE_DEV.md (28KB) - Continue.dev for any IDE
- docs/integrations/INTEGRATIONS.md (25KB) - Comprehensive hub with decision tree

## Working Examples (3 directories, 11 files)
- examples/windsurf-fastapi-context/ - FastAPI + Windsurf automation
- examples/cline-django-assistant/ - Django + Cline with MCP server
- examples/continue-dev-universal/ - HTTP context server for all IDEs

## README.md Updates
- Updated tagline: Universal preprocessor for 10+ AI systems
- Expanded Supported Integrations table (7 → 10 platforms)
- Added 'AI Coding Assistant Integrations' section (60+ lines)
- Cross-links to all new guides and examples

## Impact
- Week 2 of ACTION_PLAN.md: 4/4 tasks complete (100%) 
- Total new documentation: ~3,000 lines
- Total new code: ~1,000 lines (automation scripts, servers)
- Integration coverage: LangChain, LlamaIndex, Pinecone, Cursor, Windsurf,
  Cline, Continue.dev, Claude, Gemini, ChatGPT

## Key Features
- All guides follow proven 11-section pattern from CURSOR.md
- Real-world examples with automation scripts
- Multi-IDE consistency (Continue.dev works in VS Code, JetBrains, Vim)
- MCP integration for dynamic documentation access
- Complete troubleshooting sections with solutions

Positions Skill Seekers as universal preprocessor for ANY AI system.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-07 20:46:26 +03:00
..

Continue.dev + Universal Context Example

Complete example showing how to use Skill Seekers to create IDE-agnostic context providers for Continue.dev across VS Code, JetBrains, and other IDEs.

What This Example Does

  • Generates framework documentation (Vue.js example)
  • Creates HTTP context provider server
  • Works across all IDEs (VS Code, IntelliJ, PyCharm, WebStorm, etc.)
  • Single configuration, consistent results

Quick Start

1. Generate Documentation

# Install Skill Seekers
pip install skill-seekers[mcp]

# Generate Vue.js documentation
skill-seekers scrape --config configs/vue.json
skill-seekers package output/vue --target markdown

2. Start Context Server

# Use the provided HTTP context server
python context_server.py

# Server runs on http://localhost:8765
# Serves documentation at /docs/{framework}

3. Configure Continue.dev

Edit ~/.continue/config.json:

{
  "contextProviders": [
    {
      "name": "http",
      "params": {
        "url": "http://localhost:8765/docs/vue",
        "title": "vue-docs",
        "displayTitle": "Vue.js Documentation",
        "description": "Vue.js framework expert knowledge"
      }
    }
  ]
}

4. Test in Any IDE

VS Code:

code my-vue-project/
# Open Continue panel (Cmd+L)
# Type: @vue-docs Create a Vue 3 component with Composition API

IntelliJ IDEA:

idea my-vue-project/
# Open Continue panel (Cmd+L)
# Type: @vue-docs Create a Vue 3 component with Composition API

Result: IDENTICAL suggestions in both IDEs!

Expected Results

Before (Without Context Provider)

Prompt: "Create a Vue component"

Continue Output:

export default {
  name: 'MyComponent',
  data() {
    return {
      message: 'Hello'
    }
  }
}

Uses Options API (outdated) No TypeScript No Composition API Generic patterns

After (With Context Provider)

Prompt: "@vue-docs Create a Vue component"

Continue Output:

<script setup lang="ts">
import { ref, computed } from 'vue'

interface Props {
  title: string
  count?: number
}

const props = withDefaults(defineProps<Props>(), {
  count: 0
})

const message = ref('Hello')
const displayCount = computed(() => props.count * 2)
</script>

<template>
  <div>
    <h2>{{ props.title }}</h2>
    <p>{{ message }} - Count: {{ displayCount }}</p>
  </div>
</template>

<style scoped>
/* Component styles */
</style>

Composition API with <script setup> TypeScript interfaces Proper props definition Vue 3 best practices

Files in This Example

  • context_server.py - HTTP context provider server (FastAPI)
  • quickstart.py - Automation script for setup
  • requirements.txt - Python dependencies
  • config.example.json - Sample Continue.dev configuration

Multi-IDE Testing

This example demonstrates IDE consistency:

Test 1: VS Code

cd examples/continue-dev-universal
python context_server.py &

code test-project/
# In Continue: @vue-docs Create a component
# Note the exact code generated

Test 2: IntelliJ IDEA

# Same server still running
idea test-project/
# In Continue: @vue-docs Create a component
# Code should be IDENTICAL to VS Code

Test 3: PyCharm

# Same server still running
pycharm test-project/
# In Continue: @vue-docs Create a component
# Code should be IDENTICAL to both above

Why it works: Continue.dev uses the SAME ~/.continue/config.json across all IDEs!

Context Server Architecture

The context_server.py implements a simple HTTP server:

from fastapi import FastAPI
from skill_seekers.cli.doc_scraper import load_skill

app = FastAPI()

@app.get("/docs/{framework}")
async def get_framework_docs(framework: str):
    """
    Serve framework documentation as Continue context.

    Args:
        framework: Framework name (vue, react, django, etc.)

    Returns:
        JSON with contextItems array
    """
    # Load documentation
    docs = load_skill(f"output/{framework}-markdown/SKILL.md")

    return {
        "contextItems": [
            {
                "name": f"{framework.title()} Documentation",
                "description": f"Complete {framework} framework knowledge",
                "content": docs
            }
        ]
    }

Multi-Framework Support

Add more frameworks easily:

# Generate React docs
skill-seekers scrape --config configs/react.json
skill-seekers package output/react --target markdown

# Generate Django docs
skill-seekers scrape --config configs/django.json
skill-seekers package output/django --target markdown

# Server automatically serves both at:
# http://localhost:8765/docs/react
# http://localhost:8765/docs/django

Update ~/.continue/config.json:

{
  "contextProviders": [
    {
      "name": "http",
      "params": {
        "url": "http://localhost:8765/docs/vue",
        "title": "vue-docs",
        "displayTitle": "Vue.js"
      }
    },
    {
      "name": "http",
      "params": {
        "url": "http://localhost:8765/docs/react",
        "title": "react-docs",
        "displayTitle": "React"
      }
    },
    {
      "name": "http",
      "params": {
        "url": "http://localhost:8765/docs/django",
        "title": "django-docs",
        "displayTitle": "Django"
      }
    }
  ]
}

Now you can use:

@vue-docs @react-docs @django-docs Create a full-stack app

Team Deployment

Option 1: Shared Server

# Run on team server
ssh team-server
python context_server.py --host 0.0.0.0 --port 8765

# Team members update config:
{
  "contextProviders": [
    {
      "name": "http",
      "params": {
        "url": "http://team-server.company.com:8765/docs/vue",
        "title": "vue-docs"
      }
    }
  ]
}

Option 2: Docker Deployment

# Dockerfile
FROM python:3.11-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

COPY context_server.py .
COPY output/ output/

EXPOSE 8765
CMD ["python", "context_server.py", "--host", "0.0.0.0"]
# Build and run
docker build -t skill-seekers-context .
docker run -d -p 8765:8765 skill-seekers-context

# Team uses: http://your-server:8765/docs/vue

Option 3: Kubernetes Deployment

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: skill-seekers-context
spec:
  replicas: 3
  selector:
    matchLabels:
      app: skill-seekers-context
  template:
    metadata:
      labels:
        app: skill-seekers-context
    spec:
      containers:
      - name: context-server
        image: skill-seekers-context:latest
        ports:
        - containerPort: 8765
---
apiVersion: v1
kind: Service
metadata:
  name: skill-seekers-context
spec:
  selector:
    app: skill-seekers-context
  ports:
  - port: 80
    targetPort: 8765
  type: LoadBalancer

Customization

Add Project-Specific Context

# In context_server.py

@app.get("/project/conventions")
async def get_project_conventions():
    """Serve company-specific patterns."""
    return {
        "contextItems": [{
            "name": "Project Conventions",
            "description": "Company coding standards",
            "content": """
# Company Coding Standards

## Vue Components
- Always use Composition API
- TypeScript is required
- Props must have interfaces
- Use Pinia for state management

## API Calls
- Use axios with interceptors
- All endpoints must be typed
- Error handling with try/catch
- Loading states required
"""
        }]
    }

Add to Continue config:

{
  "contextProviders": [
    {
      "name": "http",
      "params": {
        "url": "http://localhost:8765/docs/vue",
        "title": "vue-docs"
      }
    },
    {
      "name": "http",
      "params": {
        "url": "http://localhost:8765/project/conventions",
        "title": "conventions",
        "displayTitle": "Company Standards"
      }
    }
  ]
}

Now use both:

@vue-docs @conventions Create a component following our standards

Troubleshooting

Issue: Context provider not showing

Solution: Check server is running

curl http://localhost:8765/docs/vue
# Should return JSON

# If not running:
python context_server.py

Issue: Different results in different IDEs

Solution: Verify same config file

# All IDEs use same config
cat ~/.continue/config.json

# NOT project-specific configs
# (those would cause inconsistency)

Issue: Documentation outdated

Solution: Re-generate and restart

skill-seekers scrape --config configs/vue.json
skill-seekers package output/vue --target markdown

# Restart server (will load new docs)
pkill -f context_server.py
python context_server.py

Advanced Usage

RAG Integration

# rag_context_server.py
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings

# Load vector store
embeddings = OpenAIEmbeddings()
vectorstore = Chroma(
    persist_directory="./chroma_db",
    embedding_function=embeddings
)

@app.get("/docs/search")
async def search_docs(query: str, k: int = 5):
    """RAG-powered search."""
    results = vectorstore.similarity_search(query, k=k)

    return {
        "contextItems": [
            {
                "name": f"Result {i+1}",
                "description": doc.metadata.get("source", "Docs"),
                "content": doc.page_content
            }
            for i, doc in enumerate(results)
        ]
    }

Continue config:

{
  "contextProviders": [
    {
      "name": "http",
      "params": {
        "url": "http://localhost:8765/docs/search?query={query}",
        "title": "rag-search",
        "displayTitle": "RAG Search"
      }
    }
  ]
}

MCP Integration

# Install MCP support
pip install skill-seekers[mcp]

# Continue config with MCP
{
  "mcpServers": {
    "skill-seekers": {
      "command": "python",
      "args": ["-m", "skill_seekers.mcp.server_fastmcp", "--transport", "stdio"]
    }
  },
  "contextProviders": [
    {
      "name": "mcp",
      "params": {
        "serverName": "skill-seekers"
      }
    }
  ]
}

Performance Tips

1. Cache Documentation

from functools import lru_cache

@lru_cache(maxsize=100)
def load_cached_docs(framework: str) -> str:
    """Cache docs in memory."""
    return load_skill(f"output/{framework}-markdown/SKILL.md")

2. Compress Responses

from fastapi.responses import JSONResponse
import gzip

@app.get("/docs/{framework}")
async def get_docs(framework: str):
    docs = load_cached_docs(framework)

    # Compress if large
    if len(docs) > 10000:
        docs = gzip.compress(docs.encode()).decode('latin1')

    return JSONResponse(...)

3. Load Balancing

# Run multiple instances
python context_server.py --port 8765 &
python context_server.py --port 8766 &
python context_server.py --port 8767 &

# Configure Continue with failover
{
  "contextProviders": [
    {
      "name": "http",
      "params": {
        "url": "http://localhost:8765/docs/vue",
        "fallbackUrls": [
          "http://localhost:8766/docs/vue",
          "http://localhost:8767/docs/vue"
        ]
      }
    }
  ]
}

Next Steps

  1. Add more frameworks for full-stack development
  2. Deploy to team server for shared access
  3. Integrate with RAG for deep search
  4. Create project-specific context providers
  5. Set up CI/CD for automatic documentation updates

Support