config-conventions

Enforce YAML-defined defaults and explicit optional config in NeMo-RL TypedDict schemas.

Updated May 23, 2026
One-click install
npx skills add https://github.com/yo-steven/skills-exploration-20260522 --skill config-conventions
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: config-conventions
Source: https://github.com/yo-steven/skills-exploration-20260522/tree/main/skills/NeMo-RL/config-conventions
Command: npx skills add https://github.com/yo-steven/skills-exploration-20260522 --skill config-conventions

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It prevents hidden or inconsistent configuration defaults in NeMo-RL by making YAML the single source of truth and enforcing clear rules around required fields, optional fields, and documented exemplar values.

Core Features & Use Cases

  • YAML-first defaults: Stops developers from hardcoding non-None defaults in code so runtime behavior is explicit and user-controlled.
  • TypedDict optionality: Guides correct handling of NotRequired fields so absence is treated as meaningful rather than masked by magic fallback values.
  • Exemplar-driven documentation: Ensures exemplar YAMLs define defaults, while recipe YAMLs remain minimal by inheriting via a required defaults pointer.
  • Forbidden patterns guardrails: Flags common ways defaults leak into code (e.g., get(..., "bfloat16") or function parameters defaulting config values), improving review quality.

Quick Start

Follow the rules in this skill while editing NeMo-RL TypedDict config structures and exemplar/recipe YAMLs, then use minimize on any recipe YAML missing the required defaults key.

Frequently Asked Questions about config-conventions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce YAML configuration defaults in NeMo-RL?

How do I enforce YAML configuration defaults in NeMo-RL? Enforce YAML configuration defaults in NeMo-RL by making YAML the single source of truth, preventing hardcoded values in code, and ensuring runtime behavior remains explicit and user-controlled through mandatory defaults pointers in recipe YAMLs.

Why should configuration defaults be defined in YAML instead of Python code?

Why should configuration defaults be defined in YAML instead of Python code? Configuration defaults should be defined in YAML to prevent hidden or inconsistent values in NeMo-RL. This approach ensures runtime behavior is explicit, user-controlled, and reviewed correctly, avoiding magic fallback values in function parameters.

What is the best way to handle NotRequired TypedDict fields in policy config schemas?

What is the best way to handle NotRequired TypedDict fields in policy config schemas? Handle NotRequired TypedDict fields in policy config schemas by treating absence as meaningful rather than masking it with magic fallback values. You must use presence checks to ensure optional config behavior remains explicit.

How do I keep recipe YAML files minimal while documenting configuration defaults?

How do I keep recipe YAML files minimal while documenting configuration defaults? Keep recipe YAML files minimal by inheriting defaults from exemplar YAMLs via a required defaults pointer. Exemplar YAMLs define and document the defaults, while recipe YAMLs remain concise by referencing this single source of truth.

What are common forbidden patterns that leak configuration defaults into code?

What are common forbidden patterns that leak configuration defaults into code? Common forbidden patterns that leak configuration defaults include using dictionary get methods with hardcoded fallbacks like get(..., "bfloat16") or setting function parameters to default config values. These patterns mask explicit runtime behavior and reduce review quality.