Parent
#1 — context2html Framework
What to build
Add YAML front matter to the remaining 30 components (component #26 was done in Slice 2 as the pilot). Each .md file under components/ gains a front matter block with id, name, dependencies, compat_types, degrade_to, and requires_3d.
The registry already handles batch listing — this slice proves it works at scale by loading and validating all 31 components.
Metadata rules:
id: numeric, matches filename prefix (01-31)
name: human-readable name from the file
dependencies: list of lib file names needed; empty list if none
compat_types: which content types this component is appropriate for (most are all 5)
degrade_to: component ID string to fall back to, or empty if none
requires_3d: true if the component needs WebGL/WebGPU
Bulk validation: write a script (scripts/validate-components.py) or a test that:
- Loads all 31 components via the registry
- Asserts every component has valid metadata (id matches filename, dependencies exist in libs/, compat_types are valid enums)
- Reports any parse failures or missing fields
Acceptance criteria
Blocked by
Parent
#1 — context2html Framework
What to build
Add YAML front matter to the remaining 30 components (component #26 was done in Slice 2 as the pilot). Each
.mdfile undercomponents/gains a front matter block with id, name, dependencies, compat_types, degrade_to, and requires_3d.The registry already handles batch listing — this slice proves it works at scale by loading and validating all 31 components.
Metadata rules:
id: numeric, matches filename prefix (01-31)name: human-readable name from the filedependencies: list of lib file names needed; empty list if nonecompat_types: which content types this component is appropriate for (most are all 5)degrade_to: component ID string to fall back to, or empty if nonerequires_3d: true if the component needs WebGL/WebGPUBulk validation: write a script (
scripts/validate-components.py) or a test that:Acceptance criteria
ComponentRegistry.list_components()returns all 31registry.resolve_dependencies([1, 2, 3, ... 31])returns deduplicated list of all required lib filesBlocked by