Files
skill-seekers-reference/WEBSITE_HANDOFF_V3.md
yusyus 7a459cb9cb docs: Add v3.0.0 release planning documents
Add comprehensive release planning documentation:
- V3_RELEASE_MASTER_PLAN.md - Complete 4-week campaign strategy
- V3_RELEASE_SUMMARY.md - Quick reference summary
- WEBSITE_HANDOFF_V3.md - Website update instructions for other Kimi
- RELEASE_PLAN.md, RELEASE_CONTENT_CHECKLIST.md, RELEASE_EXECUTIVE_SUMMARY.md
- QA_FIXES_SUMMARY.md - QA fixes documentation
2026-02-08 14:25:20 +03:00

16 KiB

🌐 Website Handoff: v3.0.0 Updates

For: Kimi instance working on skillseekersweb
Repository: /mnt/1ece809a-2821-4f10-aecb-fcdf34760c0b/Git/skillseekersweb
Deadline: Week 1 of release (Feb 9-15, 2026)


🎯 Mission

Update the Skill Seekers website for v3.0.0 "Universal Intelligence Platform" release.

Key Deliverables:

  1. Blog section (new)
  2. 4 blog posts
  3. Homepage v3.0.0 updates
  4. New integration guides
  5. v3.0.0 changelog
  6. RSS feed
  7. Deploy to Vercel

📁 Repository Structure

/mnt/1ece809a-2821-4f10-aecb-fcdf34760c0b/Git/skillseekersweb/
├── src/
│   ├── content/
│   │   ├── docs/              # Existing docs
│   │   └── blog/              # NEW - Create this
│   ├── pages/
│   │   ├── index.astro        # Homepage - UPDATE
│   │   ├── blog/              # NEW - Create this
│   │   │   ├── index.astro    # Blog listing
│   │   │   └── [...slug].astro # Blog post page
│   │   └── rss.xml.ts         # NEW - RSS feed
│   ├── components/
│   │   └── astro/
│   │       └── blog/          # NEW - Blog components
│   └── layouts/               # Existing layouts
├── public/                    # Static assets
└── astro.config.mjs           # Astro config

📝 Task 1: Create Blog Section

Step 1.1: Create Content Collection

File: src/content/blog/_schema.ts

import { defineCollection, z } from 'astro:content';

const blogCollection = defineCollection({
  type: 'content',
  schema: z.object({
    title: z.string(),
    description: z.string(),
    pubDate: z.coerce.date(),
    author: z.string().default('Skill Seekers Team'),
    authorTwitter: z.string().optional(),
    tags: z.array(z.string()).default([]),
    image: z.string().optional(),
    draft: z.boolean().default(false),
    featured: z.boolean().default(false),
  }),
});

export const collections = {
  'blog': blogCollection,
};

File: src/content/config.ts (Update existing)

import { defineCollection, z } from 'astro:content';

// Existing docs collection
const docsCollection = defineCollection({
  type: 'content',
  schema: z.object({
    title: z.string(),
    description: z.string(),
    section: z.string(),
    order: z.number().optional(),
  }),
});

// NEW: Blog collection
const blogCollection = defineCollection({
  type: 'content',
  schema: z.object({
    title: z.string(),
    description: z.string(),
    pubDate: z.coerce.date(),
    author: z.string().default('Skill Seekers Team'),
    authorTwitter: z.string().optional(),
    tags: z.array(z.string()).default([]),
    image: z.string().optional(),
    draft: z.boolean().default(false),
    featured: z.boolean().default(false),
  }),
});

export const collections = {
  'docs': docsCollection,
  'blog': blogCollection,
};

Step 1.2: Create Blog Posts

Post 1: v3.0.0 Release Announcement

File: src/content/blog/2026-02-10-v3-0-0-release.md

---
title: "Skill Seekers v3.0.0: The Universal Intelligence Platform"
description: "Transform any documentation into structured knowledge for any AI system. 16 output formats. 1,852 tests. One tool for LangChain, LlamaIndex, Cursor, Claude, and more."
pubDate: 2026-02-10
author: "Skill Seekers Team"
authorTwitter: "@skillseekers"
tags: ["v3.0.0", "release", "langchain", "llamaindex", "cursor", "claude"]
image: "/images/blog/v3-release-banner.png"
featured: true
---

# Skill Seekers v3.0.0: The Universal Intelligence Platform

## TL;DR

- 🚀 **16 output formats** (was 4 in v2.x)
- 🛠️ **26 MCP tools** (was 9)
-**1,852 tests** passing (was 700+)
- ☁️ **Cloud storage** support (S3, GCS, Azure)
- 🔄 **CI/CD ready** (GitHub Action + Docker)

```bash
pip install skill-seekers
skill-seekers scrape --config react.json

The Problem We're Solving

Every AI project needs documentation:

  • RAG pipelines: "Scrape these docs, chunk them, embed them..."
  • AI coding tools: "I wish Cursor knew this framework..."
  • Claude skills: "Convert this documentation into a skill"

Everyone rebuilds the same scraping infrastructure. Stop rebuilding. Start using.

The Solution: Universal Preprocessor

Skill Seekers v3.0.0 transforms any documentation into structured knowledge for any AI system:

For RAG Pipelines

# LangChain
skill-seekers scrape --format langchain --config react.json

# LlamaIndex  
skill-seekers scrape --format llama-index --config vue.json

# Pinecone-ready
skill-seekers scrape --target markdown --config django.json

For AI Coding Assistants

# Cursor
skill-seekers scrape --target claude --config react.json
cp output/react-claude/.cursorrules ./

# Windsurf, Cline, Continue.dev - same process

For Claude AI

skill-seekers install --config react.json
# Auto-fetches, scrapes, enhances, packages, uploads

What's New in v3.0.0

16 Platform Adaptors

Category Platforms Command
RAG/Vectors LangChain, LlamaIndex, Chroma, FAISS, Haystack, Qdrant, Weaviate --format <name>
AI Platforms Claude, Gemini, OpenAI --target <name>
AI Coding Cursor, Windsurf, Cline, Continue.dev --target claude
Generic Markdown --target markdown

26 MCP Tools

Your AI agent can now prepare its own knowledge:

  • Config tools (3): generate_config, list_configs, validate_config
  • Scraping tools (8): estimate_pages, scrape_docs, scrape_github, scrape_pdf, scrape_codebase, detect_patterns, extract_test_examples, build_how_to_guides
  • Packaging tools (4): package_skill, upload_skill, enhance_skill, install_skill
  • Source tools (5): fetch_config, submit_config, add/remove_config_source, list_config_sources
  • Splitting tools (2): split_config, generate_router
  • Vector DB tools (4): export_to_weaviate, export_to_chroma, export_to_faiss, export_to_qdrant

Cloud Storage

Upload skills directly to cloud storage:

# AWS S3
skill-seekers cloud upload output/react/ --provider s3 --bucket my-bucket

# Google Cloud Storage
skill-seekers cloud upload output/react/ --provider gcs --bucket my-bucket

# Azure Blob Storage
skill-seekers cloud upload output/react/ --provider azure --container my-container

CI/CD Ready

GitHub Action:

- uses: skill-seekers/action@v1
  with:
    config: configs/react.json
    format: langchain

Docker:

docker run -v $(pwd):/data skill-seekers:latest scrape --config /data/config.json

Production Quality

  • 1,852 tests across 100 test files
  • 58,512 lines of Python code
  • 80+ documentation files
  • 12 example projects for every integration

Quick Start

# Install
pip install skill-seekers

# Create a config
skill-seekers config --wizard

# Or use a preset
skill-seekers scrape --config configs/react.json

# Package for your platform
skill-seekers package output/react/ --target langchain

Migration from v2.x

v3.0.0 is fully backward compatible. All v2.x configs and commands work unchanged. New features are additive.


Ready to transform your documentation?

pip install skill-seekers

The universal preprocessor for AI systems.


---

**Post 2: RAG Pipeline Tutorial**

**File:** `src/content/blog/2026-02-12-rag-tutorial.md`

```markdown
---
title: "From Documentation to RAG Pipeline in 5 Minutes"
description: "Learn how to scrape React documentation and ingest it into a LangChain + Chroma RAG pipeline with Skill Seekers v3.0.0"
pubDate: 2026-02-12
author: "Skill Seekers Team"
tags: ["tutorial", "rag", "langchain", "chroma", "react"]
image: "/images/blog/rag-tutorial-banner.png"
---

# From Documentation to RAG Pipeline in 5 Minutes

[Full tutorial content with code examples]

Post 3: AI Coding Assistant Guide

File: src/content/blog/2026-02-14-ai-coding-guide.md

---
title: "Give Cursor Complete Framework Knowledge with Skill Seekers"
description: "How to convert any framework documentation into Cursor AI rules for better code completion and understanding"
pubDate: 2026-02-14
author: "Skill Seekers Team"
tags: ["cursor", "ai-coding", "tutorial", "windsurf", "cline"]
image: "/images/blog/ai-coding-banner.png"
---

# Give Cursor Complete Framework Knowledge

[Full guide content]

Post 4: GitHub Action Tutorial

File: src/content/blog/2026-02-16-github-action.md

---
title: "Auto-Generate AI Knowledge on Every Documentation Update"
description: "Set up CI/CD pipelines with Skill Seekers GitHub Action to automatically update your AI skills when docs change"
pubDate: 2026-02-16
author: "Skill Seekers Team"
tags: ["github-actions", "ci-cd", "automation", "devops"]
image: "/images/blog/github-action-banner.png"
---

# Auto-Generate AI Knowledge with GitHub Actions

[Full tutorial content]

🎨 Task 2: Create Blog Pages

Step 2.1: Blog Listing Page

File: src/pages/blog/index.astro

---
import { getCollection } from 'astro:content';
import Layout from '../../layouts/Layout.astro';
import BlogList from '../../components/astro/blog/BlogList.astro';

const posts = await getCollection('blog', ({ data }) => {
  return !data.draft;
});

// Sort by date (newest first)
const sortedPosts = posts.sort((a, b) => 
  b.data.pubDate.valueOf() - a.data.pubDate.valueOf()
);

// Get featured post
const featuredPost = sortedPosts.find(post => post.data.featured);
const regularPosts = sortedPosts.filter(post => post !== featuredPost);
---

<Layout 
  title="Blog - Skill Seekers"
  description="Latest news, tutorials, and updates from Skill Seekers"
>
  <main class="max-w-6xl mx-auto px-4 py-12">
    <h1 class="text-4xl font-bold mb-4">Blog</h1>
    <p class="text-xl text-gray-600 mb-12">
      Latest news, tutorials, and updates from Skill Seekers
    </p>

    {featuredPost && (
      <section class="mb-16">
        <h2 class="text-2xl font-semibold mb-6">Featured</h2>
        <BlogCard post={featuredPost} featured />
      </section>
    )}

    <section>
      <h2 class="text-2xl font-semibold mb-6">All Posts</h2>
      <BlogList posts={regularPosts} />
    </section>
  </main>
</Layout>

Step 2.2: Individual Blog Post Page

File: src/pages/blog/[...slug].astro

---
import { getCollection } from 'astro:content';
import Layout from '../../layouts/Layout.astro';

export async function getStaticPaths() {
  const posts = await getCollection('blog');
  return posts.map(post => ({
    params: { slug: post.slug },
    props: { post },
  }));
}

const { post } = Astro.props;
const { Content } = await post.render();
---

<Layout 
  title={post.data.title}
  description={post.data.description}
  image={post.data.image}
>
  <article class="max-w-3xl mx-auto px-4 py-12">
    <header class="mb-12">
      <div class="flex gap-2 mb-4">
        {post.data.tags.map(tag => (
          <span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-sm">
            {tag}
          </span>
        ))}
      </div>
      <h1 class="text-4xl font-bold mb-4">{post.data.title}</h1>
      <p class="text-xl text-gray-600 mb-6">{post.data.description}</p>
      <div class="flex items-center gap-4 text-gray-500">
        <span>{post.data.author}</span>
        <span>•</span>
        <time datetime={post.data.pubDate.toISOString()}>
          {post.data.pubDate.toLocaleDateString('en-US', {
            year: 'numeric',
            month: 'long',
            day: 'numeric',
          })}
        </time>
      </div>
    </header>

    <div class="prose prose-lg max-w-none">
      <Content />
    </div>
  </article>
</Layout>

Step 2.3: Create Blog Components

File: src/components/astro/blog/BlogCard.astro

---
interface Props {
  post: any;
  featured?: boolean;
}

const { post, featured = false } = Astro.props;
---

<article class={`bg-white rounded-lg shadow-md overflow-hidden ${featured ? 'md:flex' : ''}`}>
  {post.data.image && (
    <img 
      src={post.data.image} 
      alt={post.data.title}
      class={`object-cover ${featured ? 'md:w-1/2 h-64 md:h-auto' : 'w-full h-48'}`}
    />
  )}
  <div class="p-6">
    <div class="flex gap-2 mb-3">
      {post.data.tags.slice(0, 3).map(tag => (
        <span class="px-2 py-1 bg-gray-100 text-gray-700 rounded text-xs">
          {tag}
        </span>
      ))}
    </div>
    <h3 class={`font-bold mb-2 ${featured ? 'text-2xl' : 'text-xl'}`}>
      <a href={`/blog/${post.slug}`} class="hover:text-blue-600">
        {post.data.title}
      </a>
    </h3>
    <p class="text-gray-600 mb-4 line-clamp-3">{post.data.description}</p>
    <div class="flex items-center gap-2 text-sm text-gray-500">
      <span>{post.data.author}</span>
      <span>•</span>
      <time datetime={post.data.pubDate.toISOString()}>
        {post.data.pubDate.toLocaleDateString('en-US', {
          month: 'short',
          day: 'numeric',
          year: 'numeric',
        })}
      </time>
    </div>
  </div>
</article>

File: src/components/astro/blog/BlogList.astro

---
import BlogCard from './BlogCard.astro';

interface Props {
  posts: any[];
}

const { posts } = Astro.props;
---

<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
  {posts.map(post => (
    <BlogCard post={post} />
  ))}
</div>

📡 Task 3: Create RSS Feed

File: src/pages/rss.xml.ts

import rss from '@astrojs/rss';
import { getCollection } from 'astro:content';

export async function GET(context: any) {
  const posts = await getCollection('blog');
  
  return rss({
    title: 'Skill Seekers Blog',
    description: 'Latest news, tutorials, and updates from Skill Seekers',
    site: context.site,
    items: posts.map(post => ({
      title: post.data.title,
      description: post.data.description,
      pubDate: post.data.pubDate,
      link: `/blog/${post.slug}/`,
    })),
  });
}

🏠 Task 4: Update Homepage

File: src/pages/index.astro

Key Updates Needed:

  1. Hero Section:

    • Update tagline to "Universal Documentation Preprocessor"
    • Add v3.0.0 badge
    • Highlight "16 Output Formats"
  2. Features Section:

    • Add new platform adaptors (16 total)
    • Update MCP tools count (26)
    • Add test count (1,852)
  3. Add Blog Preview:

    • Show latest 3 blog posts
    • Link to blog section
  4. Add CTA:

    • "Get Started with v3.0.0"
    • Link to installation docs

📝 Task 5: Update Changelog

File: src/content/docs/community/changelog.md

Add v3.0.0 section at the top (same content as main repo CHANGELOG).


Update site navigation to include:

  • Blog link
  • New integration guides
  • v3.0.0 highlights

🚀 Task 7: Deploy

cd /mnt/1ece809a-2821-4f10-aecb-fcdf34760c0b/Git/skillseekersweb

# Install dependencies
npm install

# Test build
npm run build

# Deploy to Vercel
vercel --prod

📋 Checklist

Content

  • 4 blog posts created in src/content/blog/
  • All posts have proper frontmatter
  • All posts have images (or placeholder)

Pages

  • Blog listing page (src/pages/blog/index.astro)
  • Blog post page (src/pages/blog/[...slug].astro)
  • RSS feed (src/pages/rss.xml.ts)

Components

  • BlogCard component
  • BlogList component

Configuration

  • Content collection config updated
  • RSS feed configured

Homepage

  • Hero updated with v3.0.0 messaging
  • Features section updated
  • Blog preview added

Navigation

  • Blog link added
  • New integration guides linked

Testing

  • Build passes (npm run build)
  • All pages render correctly
  • RSS feed works
  • Links work

Deployment

  • Deployed to Vercel
  • Verified live site
  • Checked all pages

📞 Questions?

Main Repo: /mnt/1ece809a-2821-4f10-aecb-fcdf34760c0b/Git/Skill_Seekers
Master Plan: See V3_RELEASE_MASTER_PLAN.md in main repo
Content: Blog post content is provided above

Key Resources:

  • Examples: Copy from main repo /examples/
  • Integration guides: Copy from main repo /docs/integrations/
  • Images: Create or use placeholders initially

Deadline: End of Week 1 (Feb 15, 2026)

Good luck! 🚀