Skip to main content

Extension

Inheritance, with extends. Reach for it when the new spec is the old one with changes — the relationship is "a kind of".

A child names one parent and overrides what it needs.

# agents/cell-fixer.yaml
id: cell-fixer
extends: loop-base:0.0.1
model: "bedrock:us.anthropic.claude-sonnet-4-6" # overrides the parent's
system_prompt_append: >-
Fix the failing cell and prove the fix by running it.
  • Single inheritance, and the chain may be at most three deep. A spec graph nobody can read is worse than a repeated field.
  • A cycle is refused by name at generation time (a → b → a), not discovered at runtime.
  • The reference may be versioned (loop-base:0.0.1) or bare (loop-base).

Extension carries everything the parent declares, subagent lists included — which is the reason a specialist that only needs shared capability should compose a fragment instead. See Merge semantics for what the child wins and what it appends to.