# Recommendations

Get smart skill suggestions for your project

## SkillKit Analysis

SkillKit analyzes your project and suggests relevant skills.

### Get Recommendations

```
skillkit recommend
```

Output:

```
Project: my-app (Next.js + TypeScript + Tailwind)

Recommended Skills:
  92% vercel-react-best-practices
  87% tailwind-v4-patterns
  85% nextjs-app-router
```

### Filters

```
skillkit recommend --search "auth"
skillkit recommend --category security
skillkit recommend --min-score 80
```

### Explainable Recommendations

See WHY skills match your project:

```
skillkit recommend --explain
```

Output:

```
vercel-react-best-practices (Score: 92)
├── Matched: React, TypeScript, Next.js
├── Your stack: Next.js 14, React 18
└── Path: Frontend > React > Best Practices
```

### LLM-Based Reasoning

Use reasoning-based discovery for complex queries:

```
skillkit recommend --reasoning
```

This uses an LLM to traverse the skill taxonomy and find the most relevant skills based on semantic understanding.

### How It Works

The engine analyzes:

- **Project structure** \- Frameworks, languages, tools
- **Dependencies** \- package.json, requirements.txt
- **File patterns** \- Code patterns in your codebase

### Scoring

Scores based on:

- Stack match
- Quality score (0-100)
- Popularity
- Task relevance

### Programmatic API

```
import {
  RecommendationEngine,
  ReasoningRecommendationEngine,
  analyzeProject
} from '@skillkit/core'

// Basic recommendations
const engine = new RecommendationEngine()
const profile = await analyzeProject('./my-project')
const recs = engine.recommend(profile)

// With reasoning and explanations
const reasoningEngine = new ReasoningRecommendationEngine()
await reasoningEngine.initReasoning()
const explained = await reasoningEngine.recommendWithReasoning(profile, {
  reasoning: true,
  explain: true
})
```
