> ## Documentation Index
> Fetch the complete documentation index at: https://simili.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration Schema

> Complete YAML schema reference for Simili Bot v0.2.0

# Configuration Schema

Simili Bot is configured via a `simili.yaml` file (or `.github/simili.yaml`). This page provides a complete reference for all supported fields.

## Root Level

```yaml theme={null}
extends: string                    # Optional: Parent config "org/repo@branch:path"
search: SearchConfig               # Optional: Search backend selection
qdrant: QdrantConfig               # Optional: Vector database (required for qdrant backend)
embedding: EmbeddingConfig         # Optional: AI model (required for qdrant backend)
llm: LLMConfig                    # Optional: LLM provider (Gemini recommended)
defaults: DefaultsConfig           # Optional: Default behavior settings
repositories: [RepositoryConfig]   # Optional: List of managed repositories
transfer: TransferConfig           # Optional: Issue routing settings
auto_close: AutoCloseConfig       # Optional: Duplicate auto-closure
claude_code: ClaudeCodeConfig     # Optional: Claude Code integration
bot_users: [string]                # Optional: Extra bot users to ignore
workflow: string                   # Optional: Preset workflow name
steps: [string]                   # Optional: Custom pipeline step list
```

***

## Configuration Blocks

### SearchConfig

Defines the similarity search implementation.

```yaml theme={null}
search:
  backend: string                  # "qdrant" | "github_native" | "bm25" (default: "qdrant")
  bm25_fallback: boolean           # Fallback to BM25 if search fails (default: true)
```

### QdrantConfig

Required only when `search.backend` is set to `qdrant`.

```yaml theme={null}
qdrant:
  url: string                      # e.g., https://cluster.qdrant.io:6333
  api_key: string                  # Qdrant API key (supports ${VAR})
  collection: string               # Collection name for issues
  pr_collection: string            # Optional: Dedicated collection for PRs
```

### EmbeddingConfig

Required only when `search.backend` is set to `qdrant`.

```yaml theme={null}
embedding:
  provider: string                 # "gemini" | "openai"
  api_key: string                  # API key (supports ${VAR})
  model: string                    # Optional model name
  dimensions: number               # Required when using non-default models
```

**Default Models:**

* **Gemini**: `gemini-embedding-001` (3072 dims)
* **OpenAI**: `text-embedding-3-small` (1536 dims)

### LLMConfig

Configures the LLM for triage, routing, and duplicate verification.

```yaml theme={null}
llm:
  provider: string                 # "gemini" | "openai"
  api_key: string                  # API key (defaults to embedding api_key)
  model: string                    # Default: gemini-2.5-flash
  temperature: number              # 0.0 - 1.0 (default: 0.1)
```

### DefaultsConfig

```yaml theme={null}
defaults:
  similarity_threshold: number      # 0.0-1.0 (default: 0.65)
  max_similar_to_show: number      # 1-20 (default: 5)
  cross_repo_search: boolean       # (default: true)
  duplicate_candidates: number     # Max issues sent to LLM (default: 5)
```

### RepositoryConfig

```yaml theme={null}
repositories:
  - org: string                    # Required: org/username
    repo: string                   # Required: repo name
    enabled: boolean               # (default: true)
    description: string            # Used by LLM routing
    labels: [string]               # Associated labels
```

### TransferConfig

```yaml theme={null}
transfer:
  enabled: boolean                 # (default: false)
  strategy: string                 # "rules-only" | "vdb-only" | "hybrid" (default: "hybrid")
  llm_routing_enabled: boolean     # Use AI routing (default: false)
  high_confidence: number          # Auto-transfer threshold (default: 0.9)
  medium_confidence: number        # Suggestion threshold (default: 0.6)
  repo_collection: string          # Collection for repo docs (default: "simili_repos")
  rules: [TransferRule]            # Array of routing rules
  vdb_routing: VDBRoutingConfig    # Semantic routing settings
```

### ClaudeCodeConfig

```yaml theme={null}
claude_code:
  enabled: boolean                 # (default: false)
  trigger_phrase: string           # (default: "@simili-bot")
  issue_implement:
    enabled: boolean
    trigger_label: string          # (default: "implement")
    base_branch: string            # (default: "main")
  doc_sync:
    enabled: boolean
    watch_paths: [string]          # Glob patterns
    doc_paths: [string]            # Target doc paths
  security_review:
    enabled: boolean
    trigger_label: string          # (default: "security-review")
  review_checklist:
    enabled: boolean
    trigger_label: string          # (default: "review-checklist")
    items: [string]                # Checklist items
  maintenance:
    enabled: boolean
    tasks: [string]                # Task descriptions
```

### AutoCloseConfig

```yaml theme={null}
auto_close:
  grace_period_hours: number       # (default: 72)
  dry_run: boolean                 # Log without executing (default: false)
```
