Name:v1.0.0Status:active
v1.0.0 — Editor Integration & Package Ecosystem
Progress 34/49 work items
History 1
34e40e2Created (active)
- Editor package awareness and registry autocomplete
- Community package pipeline hooks (learning)
- CSS fallback resolution for community packages
- Pipeline incremental builds
- Create-Refrakt project type defaults
- Framework adapters: Astro, Nuxt, Next.js, Eleventy (SPEC-030)
- Shared utility extraction from @refrakt-md/svelte (SPEC-030 Phase 0)
- Create-Refrakt multi-framework scaffolding with interactive mode
- Plan CLI resolution parsing and display
- Structure slots and declarative flexibility (SPEC-033): value mapping, density contexts, named slots, repeated elements, element projection
Work Items
Ready 13
WORK-094 changeset-release/main
Create @refrakt-md/vite plugin — Level 1 static transform Build the core Vite plugin that intercepts .md files and emits JS modules with rendered HTML, frontmatter, SEO data, and serialized tree. This is the Level 1 (static, per-file) integration — no cross-page awareness.
0/13 criteria
WORK-095 changeset-release/main
Vite plugin — virtual CSS module and tree-shaking Implement virtual:refrakt/styles module that imports theme tokens, per-rune CSS, and package CSS. Supports tree-shaking to include only CSS for runes actually used in content.
0/9 criteria
WORK-096 changeset-release/main
Vite plugin — dev server HMR Implement hot module replacement for .md file changes during development. When a markdown file is saved, re-transform it and trigger a page update.
0/6 criteria
WORK-097 changeset-release/main
Vite plugin — Level 2 cross-page pipeline Implement the level: 'pipeline' mode that runs the full four-phase cross-page pipeline at build time, enabling breadcrumbs, nav, glossary auto-linking, and other entity-dependent features.
0/11 criteria
WORK-098 changeset-release/main
Vite plugin — behavior init helper export Export a thin initBehaviors() wrapper from @refrakt-md/vite/behaviors that frameworks can call after navigation to re-initialize interactive rune behaviors (accordion, tabs, datatable, etc.).
0/6 criteria
WORK-115 changeset-release/main
Migrate community package postTransform uses to declarative config With WORK-110 through WORK-114 complete, convert the 5 postTransform uses identified in SPEC-033 to their declarative equivalents. Validate identical HTML output before and after each migration.
0/7 criteria
WORK-116 changeset-release/main
Update inspect and contracts tooling for structure slots features Update refrakt inspect and refrakt contracts to surface the new SPEC-033 features: slot assignments, projection effects, and repeated elements.
0/7 criteria
In Progress 2
WORK-089 changeset-release/main
Create @refrakt-md/astro adapter package Build the Astro framework adapter — the first non-SvelteKit target. Astro is MPA-first and SSG-focused, making it the simplest adapter to build and validate.
11/12 criteria
Done 34
WORK-074 changeset-release/main
Display resolution metadata in plan status and plan serve Show resolution data (completion date, PR link) in the plan status output and the plan serve dashboard.
0/5 criteria
WORK-084 changeset-release/main
Inject $file.created and $file.modified Variables into Content Pipeline 8/8 criteria
WORK-086 changeset-release/main
Consolidate Plan Scanner with Shared Git Timestamp Utility 6/6 criteria
WORK-088 changeset-release/main
Extract shared utilities from @refrakt-md/svelte to @refrakt-md/transform Prerequisite for all framework adapters. Two modules in @refrakt-md/svelte are framework-agnostic and needed by every adapter package.
1/7 criteria
WORK-090 changeset-release/main
Create @refrakt-md/nuxt adapter package Build the Nuxt framework adapter. Nuxt is Vite-based like SvelteKit, so the existing Vite plugin logic (virtual modules, content HMR) can be substantially reused.
0/10 criteria
WORK-091 changeset-release/main
Create @refrakt-md/next adapter package Build the Next.js framework adapter. Uses React Server Components + renderToHtml() for zero-hydration content rendering, with a thin client component for behavior initialization.
0/11 criteria
WORK-092 changeset-release/main
Create @refrakt-md/eleventy adapter package Build the Eleventy (11ty v3) framework adapter. The simplest integration — no Vite, no bundler, no framework. Just global data files, templates, and renderToHtml().
0/10 criteria
WORK-093 changeset-release/main
Add multi-framework support to create-refrakt Extend create-refrakt to scaffold projects for Astro, Nuxt, Next.js, and Eleventy in addition to the existing SvelteKit and HTML targets.
1/11 criteria
WORK-099 changeset-release/main
Migrate simple core runes from Model to createContentModelSchema Migrate the straightforward core runes that use @group decorators with sequential or sectioned patterns. These have no custom processChildren logic — they map directly to sequence, sections, or delimited content models.
7/7 criteria
WORK-100 changeset-release/main
Migrate simple community runes from Model to createContentModelSchema Migrate community package runes that use straightforward @group decorator patterns. These map directly to sequence or sections content models with no custom processChildren logic.
5/5 criteria
WORK-101 changeset-release/main
Migrate moderate-complexity runes from Model to createContentModelSchema Migrate runes that have multiple groups, context-dependent group logic, or light custom processing. These need more careful mapping but don't require the custom escape hatch.
7/7 criteria
WORK-102 changeset-release/main
Migrate complex runes from Model to createContentModelSchema Migrate the remaining runes that have custom processChildren overrides with stateful parsing, text pattern matching, or DOM surgery. All will use the custom content model type.
8/8 criteria
WORK-103 changeset-release/main
Remove legacy Model class, decorators, and createSchema Once all runes are migrated to createContentModelSchema, delete the legacy API surface from @refrakt-md/runes.
7/7 criteria
WORK-104 changeset-release/main
Update authoring docs after legacy Model removal Remove or rewrite documentation that references the legacy Model class, decorators, and createSchema. After this work, the authoring docs present createContentModelSchema as the single path.
7/7 criteria
WORK-105 changeset-release/main
Add dual-signature support to createComponentRenderable and update RuneDescriptor Phase 1 of ADR-005. Update createComponentRenderable to accept either the current Type first argument or a new inline { rune: string, schemaOrgType?: string } form. Update RuneDescriptor and Rune class to carry typeName?: string and schemaOrgType?: string instead of type?: Type.Both signatures must work simultaneously so Phase 2 migration can happen incrementally.
6/6 criteria
WORK-106 changeset-release/main
Migrate core runes to inline rune identifiers Phase 2a of ADR-005. Update all ~37 core rune transforms in packages/runes/src/tags/ to use the new inline { rune: 'name' } signature for createComponentRenderable instead of importing schema.X from the registry. Each update is a 2-3 line change per file.Depends on WORK-105 (dual-signature support) being complete.
5/5 criteria
WORK-107 changeset-release/main
Migrate community package runes to inline rune identifiers Phase 2b of ADR-005. Update all ~65 community package rune transforms across 8 packages to use the new inline { rune: 'name' } signature for createComponentRenderable. Same mechanical change as WORK-106 but across community packages.Depends on WORK-105 (dual-signature support) being complete.
6/6 criteria
WORK-108 changeset-release/main
Update inspect tooling for string-based rune types Phase 2c of ADR-005. Update refrakt inspect and related tooling to use the Rune.typeName string field instead of rune.type?.name. Small change (~4 lines) but needed before Phase 3 cleanup can remove the Type class.Depends on WORK-105 (dual-signature support) being complete.
5/5 criteria
WORK-109 changeset-release/main
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.
11/11 criteria
WORK-110 changeset-release/main
Add value mapping to modifier config Extend ModifierConfig with valueMap and mapTarget fields so that modifier values can be declaratively mapped to different data attribute values. This is the smallest SPEC-033 feature and eliminates 2 existing postTransform uses.
0/7 criteria
WORK-111 changeset-release/main
Replace hardcoded density contexts with configurable childDensity Remove the hardcoded COMPACT_CONTEXTS and MINIMAL_CONTEXTS sets from the identity transform engine and replace them with a childDensity field on RuneConfig. This lets community packages declare density behavior without modifying the engine.
0/8 criteria
WORK-112 changeset-release/main
Implement named slots with ordering for structure entries Add a slots array to RuneConfig and slot/order fields to StructureEntry. The engine assembles children by iterating slots in declared order instead of using binary before/after placement. This is the core structural change in SPEC-033 that enables multi-zone layouts.
0/10 criteria
WORK-113 changeset-release/main
Add repeated element generation to structure entries Extend StructureEntry with a repeat field that generates N copies of a template element, with optional filled/unfilled distinction. Eliminates the testimonial rune's postTransform for star ratings.
0/8 criteria
WORK-114 changeset-release/main
Implement element projection (hide, group, relocate) Add a projection field to RuneConfig that enables declarative structural reshaping of the output tree. Projection runs as a distinct pass after BEM class application but before meta tag filtering, operating on data-name addresses. This is SPEC-033's most powerful feature, giving themes control over schema-produced elements.
0/11 criteria
WORK-117 changeset-release/main
Implement framework-agnostic extraction logic for component interface WORK-118 changeset-release/main
Validate property and ref name uniqueness in createComponentRenderable WORK-119 changeset-release/main
Update Svelte renderer to pass props and snippets to component overrides WORK-120 changeset-release/main
Export generic type interfaces for rune component overrides WORK-121 changeset-release/main
Add component interface view to refrakt inspect WORK-122 changeset-release/main
Document framework-native component override interface WORK-126 changeset-release/main
Parse Resolution sections in the plan scanner Extend the plan scanner to extract ## Resolution sections from work item and bug files into a structured resolution field on PlanEntity.
0/8 criteria