config-skills

Config Skills for LlamaFarm

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "config-skills" with this command: npx skills add llama-farm/llamafarm/llama-farm-llamafarm-config-skills

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 Pydantic v2, dataclasses

Typing python-skills/typing.md Type hints, constrained types

Testing python-skills/testing.md Pytest fixtures, temp files

Errors python-skills/error-handling.md Custom exceptions

Security python-skills/security.md Path traversal prevention

Framework-Specific Checklists

Checklist Description

pydantic.md Pydantic v2 configuration patterns, nested models, constraints

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:

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:

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:

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:

  • Edit schema.yaml (or referenced schemas like ../rag/schema.yaml )

  • Run nx run generate-types to compile and generate types

  • Update validators.py if new cross-field constraints are needed

  • Test with uv run pytest config/tests/

Common Commands

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/

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

commit-push-pr

No summary provided by upstream source.

Repository SourceNeeds Review
General

electron-skills

No summary provided by upstream source.

Repository SourceNeeds Review
General

react-skills

No summary provided by upstream source.

Repository SourceNeeds Review
General

go-skills

No summary provided by upstream source.

Repository SourceNeeds Review