🎯

config-skills

🎯Skill

from llama-farm/llamafarm

VibeIndex|
What it does

config-skills skill from llama-farm/llamafarm

πŸ“¦

Part of

llama-farm/llamafarm(18 items)

config-skills

Installation

Install ScriptRun install script
curl -fsSL https://raw.githubusercontent.com/llama-farm/llamafarm/main/install.sh | bash
git cloneClone repository
git clone https://github.com/llama-farm/llamafarm.git
npm installInstall npm package
npm install -g nx
πŸ“– Extracted from docs: llama-farm/llamafarm
10Installs
830
-
Last UpdatedJan 26, 2026

Skill Details

SKILL.md

Configuration module patterns for LlamaFarm. Covers Pydantic v2 models, JSONSchema generation, YAML processing, and validation.

Overview

# Config Skills for LlamaFarm

Specialized patterns and best practices for the LlamaFarm configuration module (config/).

Module Overview

The config module provides YAML/TOML/JSON configuration loading with JSONSchema validation:

| File | Purpose |

|------|---------|

| datamodel.py | Generated Pydantic v2 models from JSONSchema |

| schema.yaml | Source JSONSchema with $ref references |

| compile_schema.py | Dereferences $ref to create schema.deref.yaml |

| generate_types.py | Generates Python types via datamodel-codegen |

| validators.py | Custom validators beyond JSONSchema capabilities |

| helpers/loader.py | Config loading, saving, and format detection |

| helpers/generator.py | Template-based config generation |

Links to Shared Skills

This module follows Python conventions from the shared skills:

| Topic | Link | Key Relevance |

|-------|------|---------------|

| Patterns | [python-skills/patterns.md](../python-skills/patterns.md) | Pydantic v2, dataclasses |

| Typing | [python-skills/typing.md](../python-skills/typing.md) | Type hints, constrained types |

| Testing | [python-skills/testing.md](../python-skills/testing.md) | Pytest fixtures, temp files |

| Errors | [python-skills/error-handling.md](../python-skills/error-handling.md) | Custom exceptions |

| Security | [python-skills/security.md](../python-skills/security.md) | Path traversal prevention |

Framework-Specific Checklists

| Checklist | Description |

|-----------|-------------|

| [pydantic.md](pydantic.md) | Pydantic v2 configuration patterns, nested models, constraints |

| [jsonschema.md](jsonschema.md) | JSONSchema generation, dereferencing, validation |

Tech Stack

  • Python: 3.11+
  • Pydantic: v2 with ConfigDict, Field, constrained types
  • JSONSchema: Draft-07 with $ref dereferencing via jsonref
  • YAML: ruamel.yaml for comment-preserving read/write
  • Code Generation: datamodel-codegen for schema-to-Pydantic

Key Patterns

Generated Pydantic Models

The datamodel.py file is auto-generated from JSONSchema:

```python

# Generated by datamodel-codegen from schema.deref.yaml

from pydantic import BaseModel, ConfigDict, Field, conint, constr

class Database(BaseModel):

model_config = ConfigDict(extra="forbid")

name: constr(pattern=r"^[a-z][a-z0-9_]*$", min_length=1, max_length=50)

type: Type

config: dict[str, Any] | None = Field(None, description="Database-specific configuration")

```

Custom Validators for Cross-Field Constraints

JSONSchema draft-07 cannot express all constraints. Custom validators extend validation:

```python

def validate_llamafarm_config(config_dict: dict[str, Any]) -> None:

"""Validate constraints beyond JSONSchema (uniqueness, references)."""

# Check for duplicate prompt names

prompt_names = [p.get("name") for p in config_dict.get("prompts", [])]

duplicates = [name for name in prompt_names if prompt_names.count(name) > 1]

if duplicates:

raise ValueError(f"Duplicate prompt set names: {', '.join(set(duplicates))}")

```

Comment-Preserving YAML with ruamel.yaml

Configuration files preserve user comments when modified:

```python

from ruamel.yaml import YAML

from ruamel.yaml.comments import CommentedMap

def _get_ruamel_yaml() -> YAML:

yaml_instance = YAML()

yaml_instance.preserve_quotes = True

yaml_instance.indent(mapping=2, sequence=4, offset=2)

return yaml_instance

```

Directory Structure

```

config/

β”œβ”€β”€ pyproject.toml # UV-managed dependencies

β”œβ”€β”€ schema.yaml # Source JSONSchema with $ref

β”œβ”€β”€ schema.deref.yaml # Dereferenced schema (generated)

β”œβ”€β”€ datamodel.py # Pydantic models (generated)

β”œβ”€β”€ compile_schema.py # Schema compilation script

β”œβ”€β”€ generate_types.py # Type generation script

β”œβ”€β”€ validators.py # Custom validation beyond JSONSchema

β”œβ”€β”€ validate_config.py # CLI validation wrapper

β”œβ”€β”€ __init__.py # Public API exports

β”œβ”€β”€ helpers/

β”‚ β”œβ”€β”€ loader.py # Config loading/saving

β”‚ └── generator.py # Template-based generation

β”œβ”€β”€ templates/

β”‚ └── default.yaml # Default config template

└── tests/

β”œβ”€β”€ conftest.py # Shared fixtures

└── test_*.py # Test modules

```

Workflow: Schema Changes

When modifying the configuration schema:

  1. Edit schema.yaml (or referenced schemas like ../rag/schema.yaml)
  2. Run nx run generate-types to compile and generate types
  3. Update validators.py if new cross-field constraints are needed
  4. Test with uv run pytest config/tests/

Common Commands

```bash

# Generate types from schema

nx run generate-types

# Validate a config file

uv run python config/validate_config.py path/to/llamafarm.yaml --verbose

# Run tests

uv run pytest config/tests/ -v

# Lint and format

ruff check config/ --fix

ruff format config/

```