ID:WORK-109Status:done
Remove Type system — delete schema classes, registries, and old signature
Phase 3 of ADR-005 (breaking change). Once all runes are migrated (WORK-106, WORK-107) and tooling updated (WORK-108), remove the legacy Type class system entirely.
Depends on WORK-106, WORK-107, and WORK-108 all being complete.
Priority:mediumComplexity:moderateMilestone:v1.0.0Source:ADR-005
Acceptance Criteria
createComponentRenderableonly accepts the new inline{ rune, schemaOrgType?, ... }signature — oldTypeoverload removedType,TypeFactory, anduseSchemadeleted frompackages/types/src/schema/index.ts- All ~35 schema class files in
packages/runes/src/schema/deleted - All schema class files in community packages (
runes/*/src/schema/) deleted packages/runes/src/registry.tsdeleted (or reduced to only non-Type exports if any exist)RuneDescriptor.typefield removed — onlytypeNameandschemaOrgTyperemainRuneclass no longer referencesType@refrakt-md/typesno longer exports schema classes (Page,Hint, etc.)- All tests pass
- TypeScript compiles cleanly across the entire monorepo
- A changeset is created for the breaking change
Scope
- ~35 schema class files to delete in
packages/runes/src/schema/ - ~30 schema class files to delete across
runes/*/src/schema/(9 community packages) - ~10 registry/index files to update
- 1 function signature to simplify (
createComponentRenderable) - 1 interface to simplify (
RuneDescriptor) - 1 class to simplify (
Rune) - Barrel export cleanup in
packages/types/src/index.tsandpackages/runes/src/index.ts
Approach
- Remove the
Typeoverload fromcreateComponentRenderable— keep only the inline signature - Delete all
schema/directories:packages/runes/src/schema/and eachrunes/*/src/schema/ - Delete or gut
packages/runes/src/registry.ts - Remove
Type,TypeFactory,useSchemafrompackages/types/src/schema/index.ts - Clean up
RuneDescriptor— removetype?: Typefield - Remove schema class re-exports from barrel files
- Run full build (
npm run build) and fix any remaining references - Run full test suite (
npm test) - Create changeset documenting the breaking change
References
- Replace the useSchema / Type class system with plain rune identifiers (Phase 3)
- Add dual-signature support to createComponentRenderable and update RuneDescriptor (dependency — dual-signature support)
- Migrate core runes to inline rune identifiers (dependency — core rune migration)
- Migrate community package runes to inline rune identifiers (dependency — community rune migration)
- Update inspect tooling for string-based rune types (dependency — tooling update)
Relationships
Related
ID:WORK-106Status:done5/5
Migrate core runes to inline rune identifiers
Priority:highComplexity:simpleMilestone:v1.0.0
ID:WORK-107Status:done6/6
Migrate community package runes to inline rune identifiers
Priority:highComplexity:simpleMilestone:v1.0.0
ID:WORK-108Status:done5/5
Update inspect tooling for string-based rune types
Priority:mediumComplexity:simpleMilestone:v1.0.0
ID:WORK-105Status:done6/6
Add dual-signature support to createComponentRenderable and update RuneDescriptor
Priority:highComplexity:moderateMilestone:v1.0.0
History
- 59ded4aContent edited
- f262d7bsource+ADR-005
- f0a845a
- ☑ `createComponentRenderable` only accepts the new inline `{ rune, schemaOrgType?, ... }` signature — old `Type` overload removed
- ☑ `Type`, `TypeFactory`, and `useSchema` deleted from `packages/types/src/schema/index.ts`
- ☑ All ~35 schema class files in `packages/runes/src/schema/` deleted
- +8 more criteria
- c87b1c2statusready→done
- 721addbCreated (ready, medium, moderate, runes, types, architecture, v1.0.0)