When this skill is invoked, execute the steps below directly. Do not display this file or explain what you will do — go straight to analyzing the project, calling the APIs, and presenting results.
Detect the user's language from conversation context and respond in that language. Translate all headers, labels, and explanations. For Korean users, prefer the description_ko field from API responses when available.
Routing
Parse the user's command and route to the correct action:
/vibeindex→ Action: Analyze (run Steps 1-4 below)/vibeindex search <query>→ Action: Search (callhttps://vibeindex.ai/api/resources?ref=skill-vibeindex&search={query}&pageSize=10, present results)/vibeindex top [type]→ Action: Top (callhttps://vibeindex.ai/api/resources?ref=skill-vibeindex&sort=stars&pageSize=10or add&type={type}, present results)/vibeindex trending→ Action: Trending (callhttps://vibeindex.ai/api/rising-stars?ref=skill-vibeindex&period=week&limit=10, present results)
For search/top/trending: Use WebFetch to call the API, then format results as a numbered markdown list showing name, type, description, stars, and install command. Then stop.
For /vibeindex with no arguments: Execute Steps 1-4 below.
Step 1: Analyze Project Context
Read these files silently (do not show the user):
- package.json — Extract dependencies and devDependencies
- File structure (use Glob to check existence):
*.py→ Python*.go→ Go*.tsxor*.jsx→ ReactDockerfile→ Dockersupabase/→ Supabaseprisma/→ Prisma
- Configuration files (use Glob):
tsconfig.json→ TypeScripttailwind.config.*→ Tailwindnext.config.*→ Next.js.github/workflows/→ GitHub Actions
Step 2: Search for Matching Resources
First, fetch total resource count: call https://vibeindex.ai/api/stats?ref=skill-vibeindex with WebFetch (prompt: "Extract the total number"). Save this number as {total_resources}.
Then, based on what you detected, call the Vibe Index API using WebFetch for each detected technology. Run all calls in parallel (including the stats call):
| Detected | API URL |
|---|---|
| React | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=react&pageSize=5 |
| TypeScript | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=typescript&pageSize=5 |
| Supabase | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=supabase&pageSize=5 |
| Next.js | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=nextjs&pageSize=5 |
| Docker | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=docker&pageSize=5 |
| Python | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=python&pageSize=5 |
| Tailwind | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=tailwind&pageSize=5 |
| Prisma | https://vibeindex.ai/api/resources?ref=skill-vibeindex&search=prisma&pageSize=5 |
For each WebFetch call, use this prompt: "Extract name, resource_type, description, stars, github_owner, github_repo from the data array"
Only search for technologies that were actually detected in Step 1.
Step 3: Calculate Match Probability
For each resource found, calculate a match score:
- Direct dependency match (name appears in package.json): +40%
- File type match (related files exist): +25%
- Config file match (related config exists): +20%
- Tag overlap with project: +15%
- Bonus: stars > 10k: +5%
- Bonus: multiple detection signals: +5% per additional
- Maximum: 99%
Deduplicate results across all searches. Pick the top 5 highest-scoring resources.
Step 4: Present Results
Output only the result below. Write everything in the user's detected language, translating all headers, labels, and explanations.
## 프로젝트 분석이 완료되었습니다
당신의 **{project-name}** 프로젝트는 **{main framework}** 기반입니다.
{1-2 sentences about the project in plain language. e.g., "Supabase 데이터베이스와 Tailwind CSS를 사용하는 풀스택 웹 앱입니다."}
[VibeIndex.ai](https://vibeindex.ai)에 등록된 총 **{total_resources}개**의 스킬, 플러그인, MCP 서버 중에서 이 프로젝트에 가장 잘 맞는 도구를 찾았습니다:
────────────────────────────────────────
**1. {name}** `{resource_type}` · ⭐ {stars}
{One plain sentence about what this does FOR THE USER's project. NO technical jargon. e.g., "이 프로젝트에서 사용 중인 Supabase 데이터베이스를 더 빠르고 안전하게 만들어줍니다."}
{install_command}
────────────────────────────────────────
**2. {name}** `{resource_type}` · ⭐ {stars}
...
────────────────────────────────────────
## 설치
필요한 것만 복사해서 실행하세요:
{install commands, one per line, only for skills — plugins/mcp show URLs instead}
💡 **더 많은 도구 탐색** → https://vibeindex.ai
Writing style guidelines:
- Use simple, friendly language — explain like a colleague, not a docs page. Avoid jargon like "RLS policies" or "query optimization". Instead describe what it does: "makes it faster", "keeps it secure", "cleans up your code".
- Focus on what the user gains, not how the match was determined.
- One plain sentence per recommendation. No bullet points or technical details.
- Do not show match scores or percentages to the user.
- Write your own description based on what the resource does for this project — do not copy the raw API description.
- Translate everything into the user's detected language. The template above uses Korean as a base.
Install commands by type:
- skill:
npx skills add {github_owner}/{github_repo} --skill {name} - plugin: See
https://vibeindex.ai/plugins/{github_owner}/{github_repo}/{name} - mcp: See
https://vibeindex.ai/mcp/{github_owner}/{github_repo} - marketplace: See
https://vibeindex.ai/marketplaces/{github_owner}/{github_repo}
API Response Format
The /api/resources endpoint returns:
{
"data": [
{
"name": "resource-name",
"resource_type": "skill|mcp|plugin|marketplace",
"description": "...",
"stars": 12345,
"github_owner": "owner",
"github_repo": "repo",
"tags": ["tag1", "tag2"]
}
],
"total": 100
}
The /api/rising-stars endpoint returns:
{
"rising": [
{
"name": "resource-name",
"resource_type": "mcp",
"stars": 5000,
"stars_today": 120
}
],
"period": "week"
}
Built by Vibe Index - The Claude Code Ecosystem Directory