[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M78GJ0PJ86NETK044Z0FJFGH":3,"skill-same:01M78GJ0PJ86NETK044Z0FJFGH":80},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":13,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M78GJ0PJ86NETK044Z0FJFGH","outlines",null,"Outlines: structured JSON\u002Fregex\u002FPydantic LLM generation.","RESousa01\u002Fbmad-runtime-dev","RESousa01","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F299151629?v=4","01M78G6P63PC4EAYPFT191W6C9","01M78G6P6QE3EY5S0SZRGWYBCS",0,"MIT","https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fhermes-agent-main\u002Fhermes-agent-main\u002Foptional-skills\u002Fmlops\u002Finference\u002Foutlines\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: outlines\ndescription: \"Outlines: structured JSON\u002Fregex\u002FPydantic LLM generation.\"\nversion: 1.0.0\nauthor: Orchestra Research\nlicense: MIT\ndependencies: [outlines, transformers, vllm, pydantic]\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [Prompt Engineering, Outlines, Structured Generation, JSON Schema, Pydantic, Local Models, Grammar-Based Generation, vLLM, Transformers, Type Safety]\n\n---\n\n# Outlines: Structured Text Generation\n\n## When to Use This Skill\n\nUse Outlines when you need to:\n- **Guarantee valid JSON\u002FXML\u002Fcode** structure during generation\n- **Use Pydantic models** for type-safe outputs\n- **Support local models** (Transformers, llama.cpp, vLLM)\n- **Maximize inference speed** with zero-overhead structured generation\n- **Generate against JSON schemas** automatically\n- **Control token sampling** at the grammar level\n\n**GitHub Stars**: 8,000+ | **From**: dottxt.ai (formerly .txt)\n\n## Installation\n\n```bash\n# Base installation\npip install outlines\n\n# With specific backends\npip install outlines transformers  # Hugging Face models\npip install outlines llama-cpp-python  # llama.cpp\npip install outlines vllm  # vLLM for high-throughput\n```\n\n## Quick Start\n\n### Basic Example: Classification\n\n```python\nimport outlines\nfrom typing import Literal\n\n# Load model\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n\n# Generate with type constraint\nprompt = \"Sentiment of 'This product is amazing!': \"\ngenerator = outlines.generate.choice(model, [\"positive\", \"negative\", \"neutral\"])\nsentiment = generator(prompt)\n\nprint(sentiment)  # \"positive\" (guaranteed one of these)\n```\n\n### With Pydantic Models\n\n```python\nfrom pydantic import BaseModel\nimport outlines\n\nclass User(BaseModel):\n    name: str\n    age: int\n    email: str\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n\n# Generate structured output\nprompt = \"Extract user: John Doe, 30 years old, john@example.com\"\ngenerator = outlines.generate.json(model, User)\nuser = generator(prompt)\n\nprint(user.name)   # \"John Doe\"\nprint(user.age)    # 30\nprint(user.email)  # \"john@example.com\"\n```\n\n## Core Concepts\n\n### 1. Constrained Token Sampling\n\nOutlines uses Finite State Machines (FSM) to constrain token generation at the logit level.\n\n**How it works:**\n1. Convert schema (JSON\u002FPydantic\u002Fregex) to context-free grammar (CFG)\n2. Transform CFG into Finite State Machine (FSM)\n3. Filter invalid tokens at each step during generation\n4. Fast-forward when only one valid token exists\n\n**Benefits:**\n- **Zero overhead**: Filtering happens at token level\n- **Speed improvement**: Fast-forward through deterministic paths\n- **Guaranteed validity**: Invalid outputs impossible\n\n```python\nimport outlines\n\n# Pydantic model -> JSON schema -> CFG -> FSM\nclass Person(BaseModel):\n    name: str\n    age: int\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n\n# Behind the scenes:\n# 1. Person -> JSON schema\n# 2. JSON schema -> CFG\n# 3. CFG -> FSM\n# 4. FSM filters tokens during generation\n\ngenerator = outlines.generate.json(model, Person)\nresult = generator(\"Generate person: Alice, 25\")\n```\n\n### 2. Structured Generators\n\nOutlines provides specialized generators for different output types.\n\n#### Choice Generator\n\n```python\n# Multiple choice selection\ngenerator = outlines.generate.choice(\n    model,\n    [\"positive\", \"negative\", \"neutral\"]\n)\n\nsentiment = generator(\"Review: This is great!\")\n# Result: One of the three choices\n```\n\n#### JSON Generator\n\n```python\nfrom pydantic import BaseModel\n\nclass Product(BaseModel):\n    name: str\n    price: float\n    in_stock: bool\n\n# Generate valid JSON matching schema\ngenerator = outlines.generate.json(model, Product)\nproduct = generator(\"Extract: iPhone 15, $999, available\")\n\n# Guaranteed valid Product instance\nprint(type(product))  # \u003Cclass '__main__.Product'>\n```\n\n#### Regex Generator\n\n```python\n# Generate text matching regex\ngenerator = outlines.generate.regex(\n    model,\n    r\"[0-9]{3}-[0-9]{3}-[0-9]{4}\"  # Phone number pattern\n)\n\nphone = generator(\"Generate phone number:\")\n# Result: \"555-123-4567\" (guaranteed to match pattern)\n```\n\n#### Integer\u002FFloat Generators\n\n```python\n# Generate specific numeric types\nint_generator = outlines.generate.integer(model)\nage = int_generator(\"Person's age:\")  # Guaranteed integer\n\nfloat_generator = outlines.generate.float(model)\nprice = float_generator(\"Product price:\")  # Guaranteed float\n```\n\n### 3. Model Backends\n\nOutlines supports multiple local and API-based backends.\n\n#### Transformers (Hugging Face)\n\n```python\nimport outlines\n\n# Load from Hugging Face\nmodel = outlines.models.transformers(\n    \"microsoft\u002FPhi-3-mini-4k-instruct\",\n    device=\"cuda\"  # Or \"cpu\"\n)\n\n# Use with any generator\ngenerator = outlines.generate.json(model, YourModel)\n```\n\n#### llama.cpp\n\n```python\n# Load GGUF model\nmodel = outlines.models.llamacpp(\n    \".\u002Fmodels\u002Fllama-3.1-8b-instruct.Q4_K_M.gguf\",\n    n_gpu_layers=35\n)\n\ngenerator = outlines.generate.json(model, YourModel)\n```\n\n#### vLLM (High Throughput)\n\n```python\n# For production deployments\nmodel = outlines.models.vllm(\n    \"meta-llama\u002FLlama-3.1-8B-Instruct\",\n    tensor_parallel_size=2  # Multi-GPU\n)\n\ngenerator = outlines.generate.json(model, YourModel)\n```\n\n#### OpenAI (Limited Support)\n\n```python\n# Basic OpenAI support\nmodel = outlines.models.openai(\n    \"gpt-4o-mini\",\n    api_key=\"your-api-key\"\n)\n\n# Note: Some features limited with API models\ngenerator = outlines.generate.json(model, YourModel)\n```\n\n### 4. Pydantic Integration\n\nOutlines has first-class Pydantic support with automatic schema translation.\n\n#### Basic Models\n\n```python\nfrom pydantic import BaseModel, Field\n\nclass Article(BaseModel):\n    title: str = Field(description=\"Article title\")\n    author: str = Field(description=\"Author name\")\n    word_count: int = Field(description=\"Number of words\", gt=0)\n    tags: list[str] = Field(description=\"List of tags\")\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\ngenerator = outlines.generate.json(model, Article)\n\narticle = generator(\"Generate article about AI\")\nprint(article.title)\nprint(article.word_count)  # Guaranteed > 0\n```\n\n#### Nested Models\n\n```python\nclass Address(BaseModel):\n    street: str\n    city: str\n    country: str\n\nclass Person(BaseModel):\n    name: str\n    age: int\n    address: Address  # Nested model\n\ngenerator = outlines.generate.json(model, Person)\nperson = generator(\"Generate person in New York\")\n\nprint(person.address.city)  # \"New York\"\n```\n\n#### Enums and Literals\n\n```python\nfrom enum import Enum\nfrom typing import Literal\n\nclass Status(str, Enum):\n    PENDING = \"pending\"\n    APPROVED = \"approved\"\n    REJECTED = \"rejected\"\n\nclass Application(BaseModel):\n    applicant: str\n    status: Status  # Must be one of enum values\n    priority: Literal[\"low\", \"medium\", \"high\"]  # Must be one of literals\n\ngenerator = outlines.generate.json(model, Application)\napp = generator(\"Generate application\")\n\nprint(app.status)  # Status.PENDING (or APPROVED\u002FREJECTED)\n```\n\n## Common Patterns\n\n### Pattern 1: Data Extraction\n\n```python\nfrom pydantic import BaseModel\nimport outlines\n\nclass CompanyInfo(BaseModel):\n    name: str\n    founded_year: int\n    industry: str\n    employees: int\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\ngenerator = outlines.generate.json(model, CompanyInfo)\n\ntext = \"\"\"\nApple Inc. was founded in 1976 in the technology industry.\nThe company employs approximately 164,000 people worldwide.\n\"\"\"\n\nprompt = f\"Extract company information:\\n{text}\\n\\nCompany:\"\ncompany = generator(prompt)\n\nprint(f\"Name: {company.name}\")\nprint(f\"Founded: {company.founded_year}\")\nprint(f\"Industry: {company.industry}\")\nprint(f\"Employees: {company.employees}\")\n```\n\n### Pattern 2: Classification\n\n```python\nfrom typing import Literal\nimport outlines\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n\n# Binary classification\ngenerator = outlines.generate.choice(model, [\"spam\", \"not_spam\"])\nresult = generator(\"Email: Buy now! 50% off!\")\n\n# Multi-class classification\ncategories = [\"technology\", \"business\", \"sports\", \"entertainment\"]\ncategory_gen = outlines.generate.choice(model, categories)\ncategory = category_gen(\"Article: Apple announces new iPhone...\")\n\n# With confidence\nclass Classification(BaseModel):\n    label: Literal[\"positive\", \"negative\", \"neutral\"]\n    confidence: float\n\nclassifier = outlines.generate.json(model, Classification)\nresult = classifier(\"Review: This product is okay, nothing special\")\n```\n\n### Pattern 3: Structured Forms\n\n```python\nclass UserProfile(BaseModel):\n    full_name: str\n    age: int\n    email: str\n    phone: str\n    country: str\n    interests: list[str]\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\ngenerator = outlines.generate.json(model, UserProfile)\n\nprompt = \"\"\"\nExtract user profile from:\nName: Alice Johnson\nAge: 28\nEmail: alice@example.com\nPhone: 555-0123\nCountry: USA\nInterests: hiking, photography, cooking\n\"\"\"\n\nprofile = generator(prompt)\nprint(profile.full_name)\nprint(profile.interests)  # [\"hiking\", \"photography\", \"cooking\"]\n```\n\n### Pattern 4: Multi-Entity Extraction\n\n```python\nclass Entity(BaseModel):\n    name: str\n    type: Literal[\"PERSON\", \"ORGANIZATION\", \"LOCATION\"]\n\nclass DocumentEntities(BaseModel):\n    entities: list[Entity]\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\ngenerator = outlines.generate.json(model, DocumentEntities)\n\ntext = \"Tim Cook met with Satya Nadella at Microsoft headquarters in Redmond.\"\nprompt = f\"Extract entities from: {text}\"\n\nresult = generator(prompt)\nfor entity in result.entities:\n    print(f\"{entity.name} ({entity.type})\")\n```\n\n### Pattern 5: Code Generation\n\n```python\nclass PythonFunction(BaseModel):\n    function_name: str\n    parameters: list[str]\n    docstring: str\n    body: str\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\ngenerator = outlines.generate.json(model, PythonFunction)\n\nprompt = \"Generate a Python function to calculate factorial\"\nfunc = generator(prompt)\n\nprint(f\"def {func.function_name}({', '.join(func.parameters)}):\")\nprint(f'    \"\"\"{func.docstring}\"\"\"')\nprint(f\"    {func.body}\")\n```\n\n### Pattern 6: Batch Processing\n\n```python\ndef batch_extract(texts: list[str], schema: type[BaseModel]):\n    \"\"\"Extract structured data from multiple texts.\"\"\"\n    model = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n    generator = outlines.generate.json(model, schema)\n\n    results = []\n    for text in texts:\n        result = generator(f\"Extract from: {text}\")\n        results.append(result)\n\n    return results\n\nclass Person(BaseModel):\n    name: str\n    age: int\n\ntexts = [\n    \"John is 30 years old\",\n    \"Alice is 25 years old\",\n    \"Bob is 40 years old\"\n]\n\npeople = batch_extract(texts, Person)\nfor person in people:\n    print(f\"{person.name}: {person.age}\")\n```\n\n## Backend Configuration\n\n### Transformers\n\n```python\nimport outlines\n\n# Basic usage\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n\n# GPU configuration\nmodel = outlines.models.transformers(\n    \"microsoft\u002FPhi-3-mini-4k-instruct\",\n    device=\"cuda\",\n    model_kwargs={\"torch_dtype\": \"float16\"}\n)\n\n# Popular models\nmodel = outlines.models.transformers(\"meta-llama\u002FLlama-3.1-8B-Instruct\")\nmodel = outlines.models.transformers(\"mistralai\u002FMistral-7B-Instruct-v0.3\")\nmodel = outlines.models.transformers(\"Qwen\u002FQwen2.5-7B-Instruct\")\n```\n\n### llama.cpp\n\n```python\n# Load GGUF model\nmodel = outlines.models.llamacpp(\n    \".\u002Fmodels\u002Fllama-3.1-8b.Q4_K_M.gguf\",\n    n_ctx=4096,         # Context window\n    n_gpu_layers=35,    # GPU layers\n    n_threads=8         # CPU threads\n)\n\n# Full GPU offload\nmodel = outlines.models.llamacpp(\n    \".\u002Fmodels\u002Fmodel.gguf\",\n    n_gpu_layers=-1  # All layers on GPU\n)\n```\n\n### vLLM (Production)\n\n```python\n# Single GPU\nmodel = outlines.models.vllm(\"meta-llama\u002FLlama-3.1-8B-Instruct\")\n\n# Multi-GPU\nmodel = outlines.models.vllm(\n    \"meta-llama\u002FLlama-3.1-70B-Instruct\",\n    tensor_parallel_size=4  # 4 GPUs\n)\n\n# With quantization\nmodel = outlines.models.vllm(\n    \"meta-llama\u002FLlama-3.1-8B-Instruct\",\n    quantization=\"awq\"  # Or \"gptq\"\n)\n```\n\n## Best Practices\n\n### 1. Use Specific Types\n\n```python\n# ✅ Good: Specific types\nclass Product(BaseModel):\n    name: str\n    price: float  # Not str\n    quantity: int  # Not str\n    in_stock: bool  # Not str\n\n# ❌ Bad: Everything as string\nclass Product(BaseModel):\n    name: str\n    price: str  # Should be float\n    quantity: str  # Should be int\n```\n\n### 2. Add Constraints\n\n```python\nfrom pydantic import Field\n\n# ✅ Good: With constraints\nclass User(BaseModel):\n    name: str = Field(min_length=1, max_length=100)\n    age: int = Field(ge=0, le=120)\n    email: str = Field(pattern=r\"^[\\w\\.-]+@[\\w\\.-]+\\.\\w+$\")\n\n# ❌ Bad: No constraints\nclass User(BaseModel):\n    name: str\n    age: int\n    email: str\n```\n\n### 3. Use Enums for Categories\n\n```python\n# ✅ Good: Enum for fixed set\nclass Priority(str, Enum):\n    LOW = \"low\"\n    MEDIUM = \"medium\"\n    HIGH = \"high\"\n\nclass Task(BaseModel):\n    title: str\n    priority: Priority\n\n# ❌ Bad: Free-form string\nclass Task(BaseModel):\n    title: str\n    priority: str  # Can be anything\n```\n\n### 4. Provide Context in Prompts\n\n```python\n# ✅ Good: Clear context\nprompt = \"\"\"\nExtract product information from the following text.\nText: iPhone 15 Pro costs $999 and is currently in stock.\nProduct:\n\"\"\"\n\n# ❌ Bad: Minimal context\nprompt = \"iPhone 15 Pro costs $999 and is currently in stock.\"\n```\n\n### 5. Handle Optional Fields\n\n```python\nfrom typing import Optional\n\n# ✅ Good: Optional fields for incomplete data\nclass Article(BaseModel):\n    title: str  # Required\n    author: Optional[str] = None  # Optional\n    date: Optional[str] = None  # Optional\n    tags: list[str] = []  # Default empty list\n\n# Can succeed even if author\u002Fdate missing\n```\n\n## Comparison to Alternatives\n\n| Feature | Outlines | Instructor | Guidance | LMQL |\n|---------|----------|------------|----------|------|\n| Pydantic Support | ✅ Native | ✅ Native | ❌ No | ❌ No |\n| JSON Schema | ✅ Yes | ✅ Yes | ⚠️ Limited | ✅ Yes |\n| Regex Constraints | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |\n| Local Models | ✅ Full | ⚠️ Limited | ✅ Full | ✅ Full |\n| API Models | ⚠️ Limited | ✅ Full | ✅ Full | ✅ Full |\n| Zero Overhead | ✅ Yes | ❌ No | ⚠️ Partial | ✅ Yes |\n| Automatic Retrying | ❌ No | ✅ Yes | ❌ No | ❌ No |\n| Learning Curve | Low | Low | Low | High |\n\n**When to choose Outlines:**\n- Using local models (Transformers, llama.cpp, vLLM)\n- Need maximum inference speed\n- Want Pydantic model support\n- Require zero-overhead structured generation\n- Control token sampling process\n\n**When to choose alternatives:**\n- Instructor: Need API models with automatic retrying\n- Guidance: Need token healing and complex workflows\n- LMQL: Prefer declarative query syntax\n\n## Performance Characteristics\n\n**Speed:**\n- **Zero overhead**: Structured generation as fast as unconstrained\n- **Fast-forward optimization**: Skips deterministic tokens\n- **1.2-2x faster** than post-generation validation approaches\n\n**Memory:**\n- FSM compiled once per schema (cached)\n- Minimal runtime overhead\n- Efficient with vLLM for high throughput\n\n**Accuracy:**\n- **100% valid outputs** (guaranteed by FSM)\n- No retry loops needed\n- Deterministic token filtering\n\n## Resources\n\n- **Documentation**: https:\u002F\u002Foutlines-dev.github.io\u002Foutlines\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Foutlines-dev\u002Foutlines (8k+ stars)\n- **Discord**: https:\u002F\u002Fdiscord.gg\u002FR9DSu34mGd\n- **Blog**: https:\u002F\u002Fblog.dottxt.co\n\n## See Also\n\n- `references\u002Fjson_generation.md` - Comprehensive JSON and Pydantic patterns\n- `references\u002Fbackends.md` - Backend-specific configuration\n- `references\u002Fexamples.md` - Production-ready examples\n\n\n","# Outlines: Structured Text Generation\n\n## When to Use This Skill\n\nUse Outlines when you need to:\n- **Guarantee valid JSON\u002FXML\u002Fcode** structure during generation\n- **Use Pydantic models** for type-safe outputs\n- **Support local models** (Transformers, llama.cpp, vLLM)\n- **Maximize inference speed** with zero-overhead structured generation\n- **Generate against JSON schemas** automatically\n- **Control token sampling** at the grammar level\n\n**GitHub Stars**: 8,000+ | **From**: dottxt.ai (formerly .txt)\n\n## Installation\n\n```bash\n# Base installation\npip install outlines\n\n# With specific backends\npip install outlines transformers  # Hugging Face models\npip install outlines llama-cpp-python  # llama.cpp\npip install outlines vllm  # vLLM for high-throughput\n```\n\n## Quick Start\n\n### Basic Example: Classification\n\n```python\nimport outlines\nfrom typing import Literal\n\n# Load model\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n\n# Generate with type constraint\nprompt = \"Sentiment of 'This product is amazing!': \"\ngenerator = outlines.generate.choice(model, [\"positive\", \"negative\", \"neutral\"])\nsentiment = generator(prompt)\n\nprint(sentiment)  # \"positive\" (guaranteed one of these)\n```\n\n### With Pydantic Models\n\n```python\nfrom pydantic import BaseModel\nimport outlines\n\nclass User(BaseModel):\n    name: str\n    age: int\n    email: str\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n\n# Generate structured output\nprompt = \"Extract user: John Doe, 30 years old, john@example.com\"\ngenerator = outlines.generate.json(model, User)\nuser = generator(prompt)\n\nprint(user.name)   # \"John Doe\"\nprint(user.age)    # 30\nprint(user.email)  # \"john@example.com\"\n```\n\n## Core Concepts\n\n### 1. Constrained Token Sampling\n\nOutlines uses Finite State Machines (FSM) to constrain token generation at the logit level.\n\n**How it works:**\n1. Convert schema (JSON\u002FPydantic\u002Fregex) to context-free grammar (CFG)\n2. Transform CFG into Finite State Machine (FSM)\n3. Filter invalid tokens at each step during generation\n4. Fast-forward when only one valid token exists\n\n**Benefits:**\n- **Zero overhead**: Filtering happens at token level\n- **Speed improvement**: Fast-forward through deterministic paths\n- **Guaranteed validity**: Invalid outputs impossible\n\n```python\nimport outlines\n\n# Pydantic model -> JSON schema -> CFG -> FSM\nclass Person(BaseModel):\n    name: str\n    age: int\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n\n# Behind the scenes:\n# 1. Person -> JSON schema\n# 2. JSON schema -> CFG\n# 3. CFG -> FSM\n# 4. FSM filters tokens during generation\n\ngenerator = outlines.generate.json(model, Person)\nresult = generator(\"Generate person: Alice, 25\")\n```\n\n### 2. Structured Generators\n\nOutlines provides specialized generators for different output types.\n\n#### Choice Generator\n\n```python\n# Multiple choice selection\ngenerator = outlines.generate.choice(\n    model,\n    [\"positive\", \"negative\", \"neutral\"]\n)\n\nsentiment = generator(\"Review: This is great!\")\n# Result: One of the three choices\n```\n\n#### JSON Generator\n\n```python\nfrom pydantic import BaseModel\n\nclass Product(BaseModel):\n    name: str\n    price: float\n    in_stock: bool\n\n# Generate valid JSON matching schema\ngenerator = outlines.generate.json(model, Product)\nproduct = generator(\"Extract: iPhone 15, $999, available\")\n\n# Guaranteed valid Product instance\nprint(type(product))  # \u003Cclass '__main__.Product'>\n```\n\n#### Regex Generator\n\n```python\n# Generate text matching regex\ngenerator = outlines.generate.regex(\n    model,\n    r\"[0-9]{3}-[0-9]{3}-[0-9]{4}\"  # Phone number pattern\n)\n\nphone = generator(\"Generate phone number:\")\n# Result: \"555-123-4567\" (guaranteed to match pattern)\n```\n\n#### Integer\u002FFloat Generators\n\n```python\n# Generate specific numeric types\nint_generator = outlines.generate.integer(model)\nage = int_generator(\"Person's age:\")  # Guaranteed integer\n\nfloat_generator = outlines.generate.float(model)\nprice = float_generator(\"Product price:\")  # Guaranteed float\n```\n\n### 3. Model Backends\n\nOutlines supports multiple local and API-based backends.\n\n#### Transformers (Hugging Face)\n\n```python\nimport outlines\n\n# Load from Hugging Face\nmodel = outlines.models.transformers(\n    \"microsoft\u002FPhi-3-mini-4k-instruct\",\n    device=\"cuda\"  # Or \"cpu\"\n)\n\n# Use with any generator\ngenerator = outlines.generate.json(model, YourModel)\n```\n\n#### llama.cpp\n\n```python\n# Load GGUF model\nmodel = outlines.models.llamacpp(\n    \".\u002Fmodels\u002Fllama-3.1-8b-instruct.Q4_K_M.gguf\",\n    n_gpu_layers=35\n)\n\ngenerator = outlines.generate.json(model, YourModel)\n```\n\n#### vLLM (High Throughput)\n\n```python\n# For production deployments\nmodel = outlines.models.vllm(\n    \"meta-llama\u002FLlama-3.1-8B-Instruct\",\n    tensor_parallel_size=2  # Multi-GPU\n)\n\ngenerator = outlines.generate.json(model, YourModel)\n```\n\n#### OpenAI (Limited Support)\n\n```python\n# Basic OpenAI support\nmodel = outlines.models.openai(\n    \"gpt-4o-mini\",\n    api_key=\"your-api-key\"\n)\n\n# Note: Some features limited with API models\ngenerator = outlines.generate.json(model, YourModel)\n```\n\n### 4. Pydantic Integration\n\nOutlines has first-class Pydantic support with automatic schema translation.\n\n#### Basic Models\n\n```python\nfrom pydantic import BaseModel, Field\n\nclass Article(BaseModel):\n    title: str = Field(description=\"Article title\")\n    author: str = Field(description=\"Author name\")\n    word_count: int = Field(description=\"Number of words\", gt=0)\n    tags: list[str] = Field(description=\"List of tags\")\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\ngenerator = outlines.generate.json(model, Article)\n\narticle = generator(\"Generate article about AI\")\nprint(article.title)\nprint(article.word_count)  # Guaranteed > 0\n```\n\n#### Nested Models\n\n```python\nclass Address(BaseModel):\n    street: str\n    city: str\n    country: str\n\nclass Person(BaseModel):\n    name: str\n    age: int\n    address: Address  # Nested model\n\ngenerator = outlines.generate.json(model, Person)\nperson = generator(\"Generate person in New York\")\n\nprint(person.address.city)  # \"New York\"\n```\n\n#### Enums and Literals\n\n```python\nfrom enum import Enum\nfrom typing import Literal\n\nclass Status(str, Enum):\n    PENDING = \"pending\"\n    APPROVED = \"approved\"\n    REJECTED = \"rejected\"\n\nclass Application(BaseModel):\n    applicant: str\n    status: Status  # Must be one of enum values\n    priority: Literal[\"low\", \"medium\", \"high\"]  # Must be one of literals\n\ngenerator = outlines.generate.json(model, Application)\napp = generator(\"Generate application\")\n\nprint(app.status)  # Status.PENDING (or APPROVED\u002FREJECTED)\n```\n\n## Common Patterns\n\n### Pattern 1: Data Extraction\n\n```python\nfrom pydantic import BaseModel\nimport outlines\n\nclass CompanyInfo(BaseModel):\n    name: str\n    founded_year: int\n    industry: str\n    employees: int\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\ngenerator = outlines.generate.json(model, CompanyInfo)\n\ntext = \"\"\"\nApple Inc. was founded in 1976 in the technology industry.\nThe company employs approximately 164,000 people worldwide.\n\"\"\"\n\nprompt = f\"Extract company information:\\n{text}\\n\\nCompany:\"\ncompany = generator(prompt)\n\nprint(f\"Name: {company.name}\")\nprint(f\"Founded: {company.founded_year}\")\nprint(f\"Industry: {company.industry}\")\nprint(f\"Employees: {company.employees}\")\n```\n\n### Pattern 2: Classification\n\n```python\nfrom typing import Literal\nimport outlines\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n\n# Binary classification\ngenerator = outlines.generate.choice(model, [\"spam\", \"not_spam\"])\nresult = generator(\"Email: Buy now! 50% off!\")\n\n# Multi-class classification\ncategories = [\"technology\", \"business\", \"sports\", \"entertainment\"]\ncategory_gen = outlines.generate.choice(model, categories)\ncategory = category_gen(\"Article: Apple announces new iPhone...\")\n\n# With confidence\nclass Classification(BaseModel):\n    label: Literal[\"positive\", \"negative\", \"neutral\"]\n    confidence: float\n\nclassifier = outlines.generate.json(model, Classification)\nresult = classifier(\"Review: This product is okay, nothing special\")\n```\n\n### Pattern 3: Structured Forms\n\n```python\nclass UserProfile(BaseModel):\n    full_name: str\n    age: int\n    email: str\n    phone: str\n    country: str\n    interests: list[str]\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\ngenerator = outlines.generate.json(model, UserProfile)\n\nprompt = \"\"\"\nExtract user profile from:\nName: Alice Johnson\nAge: 28\nEmail: alice@example.com\nPhone: 555-0123\nCountry: USA\nInterests: hiking, photography, cooking\n\"\"\"\n\nprofile = generator(prompt)\nprint(profile.full_name)\nprint(profile.interests)  # [\"hiking\", \"photography\", \"cooking\"]\n```\n\n### Pattern 4: Multi-Entity Extraction\n\n```python\nclass Entity(BaseModel):\n    name: str\n    type: Literal[\"PERSON\", \"ORGANIZATION\", \"LOCATION\"]\n\nclass DocumentEntities(BaseModel):\n    entities: list[Entity]\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\ngenerator = outlines.generate.json(model, DocumentEntities)\n\ntext = \"Tim Cook met with Satya Nadella at Microsoft headquarters in Redmond.\"\nprompt = f\"Extract entities from: {text}\"\n\nresult = generator(prompt)\nfor entity in result.entities:\n    print(f\"{entity.name} ({entity.type})\")\n```\n\n### Pattern 5: Code Generation\n\n```python\nclass PythonFunction(BaseModel):\n    function_name: str\n    parameters: list[str]\n    docstring: str\n    body: str\n\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\ngenerator = outlines.generate.json(model, PythonFunction)\n\nprompt = \"Generate a Python function to calculate factorial\"\nfunc = generator(prompt)\n\nprint(f\"def {func.function_name}({', '.join(func.parameters)}):\")\nprint(f'    \"\"\"{func.docstring}\"\"\"')\nprint(f\"    {func.body}\")\n```\n\n### Pattern 6: Batch Processing\n\n```python\ndef batch_extract(texts: list[str], schema: type[BaseModel]):\n    \"\"\"Extract structured data from multiple texts.\"\"\"\n    model = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n    generator = outlines.generate.json(model, schema)\n\n    results = []\n    for text in texts:\n        result = generator(f\"Extract from: {text}\")\n        results.append(result)\n\n    return results\n\nclass Person(BaseModel):\n    name: str\n    age: int\n\ntexts = [\n    \"John is 30 years old\",\n    \"Alice is 25 years old\",\n    \"Bob is 40 years old\"\n]\n\npeople = batch_extract(texts, Person)\nfor person in people:\n    print(f\"{person.name}: {person.age}\")\n```\n\n## Backend Configuration\n\n### Transformers\n\n```python\nimport outlines\n\n# Basic usage\nmodel = outlines.models.transformers(\"microsoft\u002FPhi-3-mini-4k-instruct\")\n\n# GPU configuration\nmodel = outlines.models.transformers(\n    \"microsoft\u002FPhi-3-mini-4k-instruct\",\n    device=\"cuda\",\n    model_kwargs={\"torch_dtype\": \"float16\"}\n)\n\n# Popular models\nmodel = outlines.models.transformers(\"meta-llama\u002FLlama-3.1-8B-Instruct\")\nmodel = outlines.models.transformers(\"mistralai\u002FMistral-7B-Instruct-v0.3\")\nmodel = outlines.models.transformers(\"Qwen\u002FQwen2.5-7B-Instruct\")\n```\n\n### llama.cpp\n\n```python\n# Load GGUF model\nmodel = outlines.models.llamacpp(\n    \".\u002Fmodels\u002Fllama-3.1-8b.Q4_K_M.gguf\",\n    n_ctx=4096,         # Context window\n    n_gpu_layers=35,    # GPU layers\n    n_threads=8         # CPU threads\n)\n\n# Full GPU offload\nmodel = outlines.models.llamacpp(\n    \".\u002Fmodels\u002Fmodel.gguf\",\n    n_gpu_layers=-1  # All layers on GPU\n)\n```\n\n### vLLM (Production)\n\n```python\n# Single GPU\nmodel = outlines.models.vllm(\"meta-llama\u002FLlama-3.1-8B-Instruct\")\n\n# Multi-GPU\nmodel = outlines.models.vllm(\n    \"meta-llama\u002FLlama-3.1-70B-Instruct\",\n    tensor_parallel_size=4  # 4 GPUs\n)\n\n# With quantization\nmodel = outlines.models.vllm(\n    \"meta-llama\u002FLlama-3.1-8B-Instruct\",\n    quantization=\"awq\"  # Or \"gptq\"\n)\n```\n\n## Best Practices\n\n### 1. Use Specific Types\n\n```python\n# ✅ Good: Specific types\nclass Product(BaseModel):\n    name: str\n    price: float  # Not str\n    quantity: int  # Not str\n    in_stock: bool  # Not str\n\n# ❌ Bad: Everything as string\nclass Product(BaseModel):\n    name: str\n    price: str  # Should be float\n    quantity: str  # Should be int\n```\n\n### 2. Add Constraints\n\n```python\nfrom pydantic import Field\n\n# ✅ Good: With constraints\nclass User(BaseModel):\n    name: str = Field(min_length=1, max_length=100)\n    age: int = Field(ge=0, le=120)\n    email: str = Field(pattern=r\"^[\\w\\.-]+@[\\w\\.-]+\\.\\w+$\")\n\n# ❌ Bad: No constraints\nclass User(BaseModel):\n    name: str\n    age: int\n    email: str\n```\n\n### 3. Use Enums for Categories\n\n```python\n# ✅ Good: Enum for fixed set\nclass Priority(str, Enum):\n    LOW = \"low\"\n    MEDIUM = \"medium\"\n    HIGH = \"high\"\n\nclass Task(BaseModel):\n    title: str\n    priority: Priority\n\n# ❌ Bad: Free-form string\nclass Task(BaseModel):\n    title: str\n    priority: str  # Can be anything\n```\n\n### 4. Provide Context in Prompts\n\n```python\n# ✅ Good: Clear context\nprompt = \"\"\"\nExtract product information from the following text.\nText: iPhone 15 Pro costs $999 and is currently in stock.\nProduct:\n\"\"\"\n\n# ❌ Bad: Minimal context\nprompt = \"iPhone 15 Pro costs $999 and is currently in stock.\"\n```\n\n### 5. Handle Optional Fields\n\n```python\nfrom typing import Optional\n\n# ✅ Good: Optional fields for incomplete data\nclass Article(BaseModel):\n    title: str  # Required\n    author: Optional[str] = None  # Optional\n    date: Optional[str] = None  # Optional\n    tags: list[str] = []  # Default empty list\n\n# Can succeed even if author\u002Fdate missing\n```\n\n## Comparison to Alternatives\n\n| Feature | Outlines | Instructor | Guidance | LMQL |\n|---------|----------|------------|----------|------|\n| Pydantic Support | ✅ Native | ✅ Native | ❌ No | ❌ No |\n| JSON Schema | ✅ Yes | ✅ Yes | ⚠️ Limited | ✅ Yes |\n| Regex Constraints | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |\n| Local Models | ✅ Full | ⚠️ Limited | ✅ Full | ✅ Full |\n| API Models | ⚠️ Limited | ✅ Full | ✅ Full | ✅ Full |\n| Zero Overhead | ✅ Yes | ❌ No | ⚠️ Partial | ✅ Yes |\n| Automatic Retrying | ❌ No | ✅ Yes | ❌ No | ❌ No |\n| Learning Curve | Low | Low | Low | High |\n\n**When to choose Outlines:**\n- Using local models (Transformers, llama.cpp, vLLM)\n- Need maximum inference speed\n- Want Pydantic model support\n- Require zero-overhead structured generation\n- Control token sampling process\n\n**When to choose alternatives:**\n- Instructor: Need API models with automatic retrying\n- Guidance: Need token healing and complex workflows\n- LMQL: Prefer declarative query syntax\n\n## Performance Characteristics\n\n**Speed:**\n- **Zero overhead**: Structured generation as fast as unconstrained\n- **Fast-forward optimization**: Skips deterministic tokens\n- **1.2-2x faster** than post-generation validation approaches\n\n**Memory:**\n- FSM compiled once per schema (cached)\n- Minimal runtime overhead\n- Efficient with vLLM for high throughput\n\n**Accuracy:**\n- **100% valid outputs** (guaranteed by FSM)\n- No retry loops needed\n- Deterministic token filtering\n\n## Resources\n\n- **Documentation**: https:\u002F\u002Foutlines-dev.github.io\u002Foutlines\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Foutlines-dev\u002Foutlines (8k+ stars)\n- **Discord**: https:\u002F\u002Fdiscord.gg\u002FR9DSu34mGd\n- **Blog**: https:\u002F\u002Fblog.dottxt.co\n\n## See Also\n\n- `references\u002Fjson_generation.md` - Comprehensive JSON and Pydantic patterns\n- `references\u002Fbackends.md` - Backend-specific configuration\n- `references\u002Fexamples.md` - Production-ready examples\n\n\n",{"name":5,"author":23,"license":14,"version":24,"metadata":25,"platforms":38,"description":7,"dependencies":42},"Orchestra Research","1.0.0",{"hermes":26},{"tags":27},[28,29,30,31,32,33,34,35,36,37],"Prompt Engineering","Outlines","Structured Generation","JSON Schema","Pydantic","Local Models","Grammar-Based Generation","vLLM","Transformers","Type Safety",[39,40,41],"linux","macos","windows",[5,43,44,45],"transformers","vllm","pydantic","main","f6a8453b945427ad778127c99f3da279c47a2220","bmad-runtime-lib\u002F_source_review\u002Fhermes-agent-main\u002Fhermes-agent-main\u002Foptional-skills\u002Fmlops\u002Finference\u002Foutlines","https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev","https:\u002F\u002Fgithub.com\u002FRESousa01","2026-10-19 13:01:14",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add RESousa01\u002Fbmad-runtime-dev --skill outlines",{"tool":58,"command":59},"bunx","bunx skills add RESousa01\u002Fbmad-runtime-dev --skill outlines",{"tool":61,"command":62},"pnpm","pnpm dlx skills add RESousa01\u002Fbmad-runtime-dev --skill outlines","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fhermes-agent-main\u002Fhermes-agent-main\u002Foptional-skills\u002Fmlops\u002Finference\u002Foutlines\u002FSKILL.md",true,[66,72,76],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Fbackends.md","REFERENCE","参考文档",14407,"https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fhermes-agent-main\u002Fhermes-agent-main\u002Foptional-skills\u002Fmlops\u002Finference\u002Foutlines\u002Freferences\u002Fbackends.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Fexamples.md",21231,"https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fhermes-agent-main\u002Fhermes-agent-main\u002Foptional-skills\u002Fmlops\u002Finference\u002Foutlines\u002Freferences\u002Fexamples.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fjson_generation.md",14927,"https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fhermes-agent-main\u002Fhermes-agent-main\u002Foptional-skills\u002Fmlops\u002Finference\u002Foutlines\u002Freferences\u002Fjson_generation.md",[81,90,98,105,112,119],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":85,"licenseFileUrl":86,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":18},"01M78H3BBP6055J6C6Y0H85EFP","skill-creator","Create, edit, audit, tidy, validate, or restructure AgentSkills and SKILL.md files.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fopenclaw-main\u002Fopenclaw-main\u002Fskills\u002Fskill-creator\u002Flicense.txt","https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fopenclaw-main\u002Fopenclaw-main\u002Fskills\u002Fskill-creator\u002FSKILL.md",[],[],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":94,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":18},"01M78H0B17WY9EQRPAV9G55Y2D","prose","OpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.","https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fopenclaw-main\u002Fopenclaw-main\u002Fextensions\u002Fopen-prose\u002Fskills\u002Fprose\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fopenclaw-main\u002Fopenclaw-main\u002Fextensions\u002Fopen-prose\u002Fskills\u002Fprose\u002FSKILL.md",[],[],{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":18},"01M78GYV3AEHB5ZQ8XH131F9HE","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fhermes-agent-main\u002Fhermes-agent-main\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[],[],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":18},"01M78GYQ03NRD6F6KVBDX8STSJ","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fhermes-agent-main\u002Fhermes-agent-main\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[],[],{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":18},"01M78GYMHFYT1W2W0RN48E49BQ","spike","Throwaway experiments to validate an idea before build.","https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fhermes-agent-main\u002Fhermes-agent-main\u002Fskills\u002Fsoftware-development\u002Fspike\u002FSKILL.md",[],[],{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":18},"01M78GYF9P7VZ8YJCVJPYS6KER","simplify-code","Parallel 3-agent cleanup of recent code changes.","https:\u002F\u002Fgithub.com\u002FRESousa01\u002Fbmad-runtime-dev\u002Fblob\u002Fmain\u002Fbmad-runtime-lib\u002F_source_review\u002Fhermes-agent-main\u002Fhermes-agent-main\u002Fskills\u002Fsoftware-development\u002Fsimplify-code\u002FSKILL.md",[],[]]