Files to delete
packages/runes/src/lib/model.ts — Model base classpackages/runes/src/lib/annotations/attribute.ts — @attribute decoratorpackages/runes/src/lib/annotations/group.ts — @group / @groupList decoratorspackages/runes/src/lib/annotations/id.ts — @id decoratorpackages/runes/src/lib/annotations/ — entire directory if empty after above
Exports to remove
From packages/runes/src/lib/index.ts and packages/runes/src/index.ts:
Modelattributegroup, groupListidcreateSchemaNodeStream, RenderableNodeCursor (if only used by Model)
Acceptance Criteria
- All files listed above are deleted
Model, @attribute, @group, @groupList, @id, createSchema are no longer exported from @refrakt-md/runesNodeStream and RenderableNodeCursor are removed if no longer used outside Model- No remaining imports of deleted modules anywhere in the monorepo (
grep confirms zero hits) npm run build succeeds for the full monoreponpm test passes- CSS coverage tests pass
Approach
- Remove exports from
packages/runes/src/lib/index.ts and packages/runes/src/index.ts - Delete the files
- Search the entire monorepo for any remaining imports of the deleted symbols
- Full build and test pass
Dependencies
- WORK-099 (simple core runes migrated)
- WORK-100 (simple community runes migrated)
- WORK-101 (moderate runes migrated)
- WORK-102 (complex runes migrated)
Resolution
Completed: 2026-04-02
Branch: claude/implement-spec-032-2KBbw
What was done
- Deleted
model.ts, entire annotations/ directory (6 files), removed NodeStream from node.ts - Removed
createSchema, Model, attribute, group, groupList, id, NodeStream exports from lib/index.ts and index.ts - Converted
SplitLayoutModel from Model subclass to plain splitLayoutAttributes record - Updated
createContentModelSchema base option to accept plain Record<string, SchemaAttribute> instead of Newable<Model> - Updated error message in
packages.ts - Removed
Group interface from interfaces.ts - 696 lines deleted, 58 added
Notes
RenderableNodeCursor is still used extensively by all runes — kept as-isisFilterMatching in node.ts is still used by util.ts — keptTypedNode and TransformFunction in interfaces.ts are unused but harmless public types — left in place- All 7 rune files using
base: SplitLayoutModel work unchanged since SplitLayoutModel is now aliased to the plain splitLayoutAttributes object