1.7 KiB
Content Classes
Date: 2026-05-04
Purpose
Content classes are data-defined composition rules for reusable document structures, overlays, and variants. They are not Python inheritance. They are a deterministic way to combine slots such as sections, assertions, snippets, processors, and style guidance.
This is the P10.7 resolver spike for future class/object-style workflows.
Model
A class can declare:
extends: parent classesslots: structured values to contributemerge_policies: per-slot merge behavior
Example:
classes:
base-prd:
slots:
sections:
- Problem
- Decision
enterprise:
extends:
- base-prd
slots:
sections:
- Compliance
merge_policies:
sections: append
Linearization
Multiple inheritance uses a C3-style linearization. That gives us:
- deterministic parent ordering
- monotonic inheritance behavior
- explicit diagnostics for cycles, unknown parents, and inconsistent precedence
The resolved class is merged from base to leaf according to the computed linearization.
Merge Policies
Initial policies:
replaceappendprependdeep_mergeerror_on_conflict
Unknown policies and invalid value shapes produce diagnostics.
CLI
Resolve a class:
mkt class resolve examples/classes/prd-classes.yaml enterprise-prd
JSON/YAML output includes the linearization, merged slots, and diagnostics.
Extension Boundary
The current resolver does not yet instantiate Markdown documents or inject snippets. It establishes the deterministic inheritance and merge floor. Later work can connect resolved slots to contracts, references, processors, and generation plans.