Skip to content
cccskills
FreePublished on GitHub

config-skills

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

The English summary is being prepared. Showing the original description.

Run score Not tested

See how to install

Files included (3)

  • SKILL.md5.1 KB
  • jsonschema.md12.6 KB
  • pydantic.md11.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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:

FilePurpose
datamodel.pyGenerated Pydantic v2 models from JSONSchema
schema.yamlSource JSONSchema with $ref references
compile_schema.pyDereferences $ref to create schema.deref.yaml
generate_types.pyGenerates Python types via datamodel-codegen
validators.pyCustom validators beyond JSONSchema capabilities
helpers/loader.pyConfig loading, saving, and format detection
helpers/generator.pyTemplate-based config generation

Links to Shared Skills

This module follows Python conventions from the shared skills:

TopicLinkKey Relevance
Patternspython-skills/patterns.mdPydantic v2, dataclasses
Typingpython-skills/typing.mdType hints, constrained types
Testingpython-skills/testing.mdPytest fixtures, temp files
Errorspython-skills/error-handling.mdCustom exceptions
Securitypython-skills/security.mdPath traversal prevention

Framework-Specific Checklists

ChecklistDescription
pydantic.mdPydantic v2 configuration patterns, nested models, constraints
jsonschema.mdJSONSchema 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:

  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

# 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/

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

CLI best practices for LlamaFarm. Covers Cobra, Bubbletea, Lipgloss patterns for Go CLI development.

The English summary is being prepared. Showing the original description.

llama-farm/llamafarm836Updated Jun 10, 2026

Comprehensive code review for diffs. Analyzes changed code for security vulnerabilities, anti-patterns, and quality issues. Auto-detects domain (frontend/backend) from file paths.

The English summary is being prepared. Showing the original description.

llama-farm/llamafarm836Updated Jun 10, 2026

Commit changes, push to GitHub, and open a PR. Includes quality checks (security, patterns, simplification). Use --quick to skip checks.

The English summary is being prepared. Showing the original description.

llama-farm/llamafarm836Updated Jun 10, 2026

Best practices for the Common utilities package in LlamaFarm. Covers HuggingFace Hub integration, GGUF model management, and shared utilities.

The English summary is being prepared. Showing the original description.

llama-farm/llamafarm836Updated Jun 10, 2026

Designer subsystem patterns for LlamaFarm. Covers React 18, TanStack Query, TailwindCSS, and Radix UI.

The English summary is being prepared. Showing the original description.

llama-farm/llamafarm836Updated Jun 10, 2026

Electron patterns for LlamaFarm Desktop. Covers main/renderer processes, IPC, security, and packaging.

The English summary is being prepared. Showing the original description.

llama-farm/llamafarm836Updated Jun 10, 2026

See all skills by llama-farm

Report a problem with this skill