Skip to content

Diagnostics — ROZ code reference

Every compile-time diagnostic Rozie emits carries a stable ROZxxx code. When the compiler reports a problem, the code appears alongside the message and a source-located code frame — for example ROZ204: …. This page is the lookup table: search for the code you hit in your terminal and land on its severity and cause.

The codes are public API — a code string never renumbers across versions. (The internal member name shown in muted text next to each code may be renamed for clarity, but the ROZxxx string is the contract.)

How to read this page

This entire reference is generated at docs-build time by scanning the compiler's own diagnostic registry (packages/core/src/diagnostics/codes.ts). It can never drift from the compiler — every code the compiler knows about appears below, grouped into the same clusters the source file uses.

  • Code — the stable ROZxxx string, with the internal member name in muted text.
  • Severityerror halts compilation; warning is advisory; - means the registry comment doesn't state a severity explicitly (many parse-level codes only describe the cause).
  • Cause — a one-line summary drawn directly from the registry comment. Where a comment is absent, this is -. Nothing here is invented; the page surfaces only what the source documents.

For the human-readable narrative behind many of these — $model write rules, r-match error boundaries, $classSelector validation, listener-element rules — see Features & design choices.

SFC envelope (Plan 02) — ROZ001..ROZ009

CodeSeverityCause
ROZ001 MISSING_ROZIE_ENVELOPE--
ROZ002 MULTIPLE_ROZIE_ENVELOPES--
ROZ003 UNKNOWN_TOP_LEVEL_BLOCK--
ROZ004 DUPLICATE_BLOCK--
ROZ005 PREMATURE_BLOCK_CLOSEerrorliteral `</script>` (or other block close sequence) inside the block's own body ended the block early; escape it as `<\/script>`

Block parse — declarative <props>/<data>/<listeners> (Plan 03) — ROZ010..ROZ029

CodeSeverityCause
ROZ010 INVALID_DECLARATIVE_EXPRESSION--
ROZ011 NOT_OBJECT_LITERAL--
ROZ012 LISTENER_KEY_NOT_STRING--
ROZ013 LISTENER_VALUE_NOT_OBJECT--
ROZ014 REQUIRED_PROP_HAS_DEFAULTwarningA `<props>` entry declared `required: true` also carries a `default:` — the default can never fire (a required prop is always passed), so Rozie drops the default.
ROZ015 LISTENER_ELEMENT_NO_EVENTerrorPhase 19 (D-06): a `<listener>` element carries zero `@event` attributes — it wires nothing.
ROZ016 LISTENERS_UNEXPECTED_ELEMENT-Phase 19 (code-review WR-01): distinct codes for the two OTHER element-walk failure modes, split out of ROZ015 so consumers (IDE suppressors, lint-as-code) can target each precisely.
ROZ017 LISTENER_ELEMENT_UNTERMINATEDerrorPhase 19 (code-review WR-01): a `<listener>` element is left unterminated — no self-closing `/>` and no closing tag.
ROZ018 INVALID_PROP_DOCS_SHAPEwarninga <props> `docs:` key is malformed (non-object, wrong-typed description/deprecated/example, or unknown sub-key); the bad docs/sub-key is dropped and no JSDoc is emitted.

Script parse (Plan 03) — ROZ030..ROZ049

CodeSeverityCause
ROZ030 SCRIPT_PARSE_ERROR--
ROZ031 SCRIPT_UNRECOVERABLE--
ROZ032 SCRIPT_UNRECOGNIZED_LANG-Phase 9 (WR-03): `<script lang="...">` carries an unrecognized value (e.g.

Template parse (Plan 03) — ROZ050..ROZ069

CodeSeverityCause
ROZ050 TEMPLATE_UNCLOSED_ELEMENT--
ROZ051 TEMPLATE_MALFORMED_MUSTACHE--

Modifier grammar (Plan 04) — ROZ070..ROZ079

CodeSeverityCause
ROZ070 MODIFIER_GRAMMAR_ERROR--

Style parse (Plan 03) — ROZ080..ROZ089

CodeSeverityCause
ROZ080 STYLE_PARSE_ERROR--
ROZ081 STYLE_MIXED_ROOT_SELECTOR--
ROZ082 STYLE_PORTAL_INVALID_NESTING-@portal nested inside @media (or any non-@portal at-rule) — invalid per Spike 004 locked decision #2
ROZ083 STYLE_IMPORTANT_DROPPED_IN_STYLE_OBJECTwarningSpike 004 (string-form `:style` lowering, quick-task 260520-8iu): a string-literal `:style` carries `!important` AND the target's object-form lowering (React/Solid) silently drops it — per Spike 004 locked decision #7 this is a WARN.
ROZ084 STYLE_PORTAL_SELECTOR_PARSE_ERROR-@portal block has empty/malformed prelude or unparseable inner content
ROZ085 STYLE_MISSING_SASSerrorPhase 10: `<style lang="scss">` was used but the optional `sass` (dart-sass) peer dependency is not installed.
ROZ086 STYLE_SCSS_COMPILE_ERROR-Phase 10: dart-sass threw on invalid SCSS during `sass.compileString`.
ROZ087 STYLE_UNRECOGNIZED_LANGerrorPhase 10 (D-02): a `<style lang>` value that is neither `scss` nor `css` (nor absent).
ROZ088 STYLE_SCOPED_RULE_TARGETS_PORTAL_CONTENTwarningPhase 38 (D-01..D-05): a plain SCOPED <style> rule whose subject class/tag is used EXCLUSIVELY inside portal-slot fill content (a `<template #body>` / `#node` / `<slot portal>` fill, incl.

Semantic-binding errors (Phase 2 Plan 02) — ROZ100..ROZ199

CodeSeverityCause
ROZ100 UNKNOWN_PROPS_REF-SEM-01: $props.foo where foo not declared
ROZ101 UNKNOWN_DATA_REF-SEM-01: $data.foo where foo not declared
ROZ102 UNKNOWN_REFS_REF-SEM-01: $refs.foo where no template ref="foo"
ROZ103 UNKNOWN_SLOTS_REF-SEM-01: $slots.foo where no <slot name="foo">
ROZ104 LIFECYCLE_OUTSIDE_SCRIPT-$onMount/$onUnmount/$onUpdate called outside <script> block / Program top level
ROZ105 ASYNC_ONMOUNT_RETURN-D-19 edge case: $onMount(async () => …) Promise return cannot be cleanup
ROZ106 COMPUTED_MAGIC_ACCESS-$props['foo'] — magic accessors require static keys
ROZ107 CONDITIONAL_CLEANUP_RETURN-$onMount(() => { return condition ? cleanA : cleanB }) — conditional cleanup shape
ROZ108 NON_FUNCTION_CLEANUP_RETURN-$onMount(() => { return nonFnValue }) — return value is not a function
ROZ109 WATCH_INVALID_ARGS-$watch requires (getterFn, callbackFn); skipping malformed call.
ROZ110 UNKNOWN_MODIFIER-.escspe (typo) — name not registered in ModifierRegistry
ROZ111 MODIFIER_ARITY_MISMATCH-.debounce() (missing required ms arg)
ROZ112 MODIFIER_ARG_SHAPE-.outside('not-a-ref') — refExpr expected, got literal
ROZ113 UNKNOWN_MODEL_REF-$model.bogus — 'bogus' is not a declared prop
ROZ114 UNSUPPORTED_LISTENER_TARGETerrorPhase 19 (D-04/D-06): a `<listener :target="...">` whose target is neither `window` nor `document` (nor omitted → `$el`).
ROZ115 EXPOSE_ARG_NOT_OBJECT-$expose(x) — argument is not an object literal
ROZ116 EXPOSE_SPREAD_PROPERTY-$expose({ ...o }) — a property is a spread
ROZ117 EXPOSE_COMPUTED_KEY-$expose({ [k]: v }) — a property has a computed key
ROZ118 EXPOSE_VALUE_NOT_FUNCTION-$expose({ a: 1 }) / { a: notInScope } / { a: someComputed } — value is not an in-scope <script> function nor an inline arrow/function
ROZ119 EXPOSE_DUPLICATE_CALL-two top-level $expose(...) calls — only one is allowed
ROZ120 EXPOSE_NOT_TOP_LEVEL-$expose(...) called inside a nested function (not <script> Program top level)
ROZ121 EXPOSE_EVENT_NAME_COLLISION-$expose({ open }) where 'open' is an emitted event, or (on class-based targets) a same-named declared prop — field/method name clash
ROZ122 EMIT_EMPTY_EVENT_NAME-$emit('') / $emit(' ') — empty/whitespace-only string-literal event name
ROZ123 REFS_READ_BEFORE_MOUNT-$refs.x read in a $computed body / $watch getter / template binding|interpolation|r-if|r-show|r-for-iterable — evaluated before mount
ROZ124 EXPOSE_CVA_NAME_COLLISION-$expose({ writeValue }) (or registerOnChange/registerOnTouched/setDisabledState) on a single-model CVA-receiving Angular component — collides with the auto-emitted ControlValueAccessor method
ROZ125 CVA_MULTI_MODEL_NO_ACCESSOR-≥2 model:true props — no single-control ControlValueAccessor auto-emitted on the Angular target
ROZ126 CVA_NO_DISABLED_PROP-single-model CVA component with no `disabled` prop — setDisabledState is a no-op on the Angular target
ROZ127 SLOT_PROP_NAME_COLLISIONerror<slot name="X"> where X equals a declared <props> key; Svelte 5 collapses snippets+props into one namespace, so the names cannot coexist
ROZ128 STYLE_GLOBAL_PSEUDO_FORBIDDENerror:global(...) used in <style>; works only on Vue/Svelte, silently dead on React/Solid/Lit.
ROZ129 INVALID_PROVIDE_KEYerror$provide(key, …) key is not a string literal.
ROZ130 INVALID_INJECT_KEYerror$inject(key, …) key is not a string literal.
ROZ131 PROVIDE_NOT_STATEMENTerror$provide(...) used in expression position (must be a top-level statement).
ROZ132 INJECT_UNBOUNDerror$inject(...) not bound to a `const x = $inject(...)`.
ROZ133 PROVIDE_MISSING_VALUEerror$provide(key) called with no value (or a non-expression second argument); $provide(key, value) requires a value.
ROZ134 INJECT_MIXED_DECLARATIONerror$inject(...) shares a `const` declaration with other declarators; it must be the sole declarator (const x = $inject('k')).
ROZ135 STRUCTURED_CLONE_REACTIVEwarningstructuredClone($props/$data/$model.x) throws on Vue reactive()/Svelte $state proxies; use $clone(x).
ROZ136 CLONE_BAD_ARITYerror$clone(value) requires exactly one non-spread argument; the per-target lowering cannot interpret any other arity.
ROZ137 EXPOSE_RESERVED_MEMBERwarningan $expose verb shadows an inherited Object.prototype member (Angular+Lit) or HTMLElement/Element/Node member (Lit); suffix-rename it (e.g.
ROZ138 REACT_STALE_READwarningread of $data/$model/$props.x dominated by an earlier write to the same key in one function body; React setState is async so the read binds the pre-write value.
ROZ139 PARTIAL_INLINE_COLLISIONerroran inlined .rzts/.rzjs declaration name collides with a host binding or an already-inlined partial name; rename one.
ROZ140 PARTIAL_INLINE_CYCLEerrora .rzts/.rzjs script partial (transitively) imports itself; the cycle is broken and reported instead of overflowing the stack.
ROZ141 PARTIAL_UNSUPPORTED_IMPORT_FORMerrora .rzts/.rzjs partial imported via a default or namespace import; only named imports have an inlinable surface.
ROZ142 PUBLIC_CONTRACT_NAME_COLLISIONerrora public-contract identifier (prop/slot/emit/$expose verb/provide-inject key) collides with a per-target reserved name; it cannot be auto-renamed.

Compile-time correctness errors (Phase 2 Plan 02) — ROZ200..ROZ299

CodeSeverityCause
ROZ200 WRITE_TO_NON_MODEL_PROP-SEM-02: $props.foo = … where foo lacks model: true (Phase 2 success criterion 2)
ROZ201 WRITE_TO_REF-$refs.foo = … (refs are read-only DOM-element wrappers)
ROZ202 RESERVED_IDENTIFIER_COLLISION-<data> field or r-for loop var named $el / $props / $data / $refs / $slots / $emit / $event / $attrs / $listeners / $restoreFocus / $model / $expose / $provide / $inject / $clone.
ROZ203 UPDATE_EXPRESSION_VALUE_CONSUMEDerrorexpression-context ++/-- on reactive state isn't lowerable
ROZ204 WRITE_TO_MODEL_PROP_VIA_PROPSerror$props.<modelProp> = … ; use $model.<x>
ROZ205 MODEL_ACCESS_NON_MODEL_PROPerror$model.<nonModelProp>
ROZ206 LISTENER_ELEMENT_MISPLACEDerrorPhase 19 (D-08): a `<listener>` element placed inside `<template>` instead of the `<listeners>` block.

Warnings (Phase 2 Plan 02) — ROZ300..ROZ399

CodeSeverityCause
ROZ300 RFOR_MISSING_KEY-SEM-03: r-for without :key
ROZ301 RFOR_KEY_IS_LOOP_VARIABLE-SEM-03: :key="index" / :key="item" (loop var)
ROZ302 RFOR_KEY_IS_NON_PRIMITIVE-:key="someObj" (Pitfall 6 secondary case)
ROZ303 RIF_ACCESSIBILITY_PLACEHOLDER-RESERVED — not emitted in Phase 2 (deferred per A7)
ROZ304 TEMPLATE_FOR_EMPTY_BODYwarning`<template r-for>` with no children (empty loop body; produces no output, and broke React/Solid emit before the guard)

@rozie/unplugin configuration errors (Phase 3 D-52) — ROZ400..ROZ419

CodeSeverityCause
ROZ400 UNPLUGIN_TARGET_REQUIRED-D-49: target option missing
ROZ401 UNPLUGIN_TARGET_UNKNOWN-target value not in 'vue'|'react'|'svelte'|'angular'
ROZ402 UNPLUGIN_TARGET_NOT_YET_SUPPORTED-Phase 3 only ships 'vue'; react/svelte/angular ROZ402 until later phases
ROZ403 UNPLUGIN_PEER_DEP_MISSING-@rozie/runtime-vue or @vitejs/plugin-vue not resolvable (Pitfall 8)
ROZ404 UNPLUGIN_PLUGIN_CHAIN_MISORDER-detected vite-plugin-vue lacking; D-25 chain broken
ROZ405 UNPLUGIN_ANGULAR_OPTIONS_INVALID-Phase 23 — malformed `angular` config shape (e.g.

@rozie/target-vue lowering errors (Phase 3 D-52) — ROZ420..ROZ449

CodeSeverityCause
ROZ420 TARGET_VUE_RESERVED-RESERVED placeholder; emitter throws this only on internal-invariant violation
ROZ421 TARGET_VUE_RHTML_WITH_CHILDREN-r-html via v-html cannot coexist with children; mirrors ROZ620/721

@rozie/unplugin Solid-branch + @rozie/target-solid errors (Phase 06.3 — D-140 amended) — ROZ810..ROZ812

CodeSeverityCause
ROZ810 UNPLUGIN_SOLID_PEER_DEP_MISSING-vite-plugin-solid not resolvable from cwd (D-139)
ROZ811 UNPLUGIN_SOLID_DEP_MISSING-solid-js (^1.8) not resolvable from cwd (D-139)

@rozie/runtime-solid warnings (Phase 06.3) — ROZ812

CodeSeverityCause
ROZ812 RUNTIME_SOLID_CONTROLLABLE_MODE_FLIP-D-135 — createControllableSignal detected parent flipping controlled/uncontrolled mid-lifecycle

@rozie/target-solid lowering errors (Phase 07.1) — ROZ813..ROZ819

CodeSeverityCause
ROZ813 TARGET_SOLID_RESERVED-internal-invariant placeholder; mirrors TARGET_SVELTE_RESERVED/TARGET_ANGULAR_RESERVED.

@rozie/unplugin React-branch configuration errors (Phase 4 D-63) — ROZ500..ROZ519

CodeSeverityCause
ROZ500 UNPLUGIN_REACT_PEER_DEP_MISSING-D-59: neither @vitejs/plugin-react nor @vitejs/plugin-react-swc installed (Pitfall 9)
ROZ501 UNPLUGIN_REACT_DEP_MISSING-react peer dep not resolvable
ROZ502 UNPLUGIN_REACT_PLUGIN_CHAIN_MISORDER-detected plugin-react/swc lacking; D-58 chain broken (no enforce: 'pre' on @rozie/unplugin)

@rozie/target-react lowering errors (Phase 4 D-63) — ROZ520..ROZ549

CodeSeverityCause
ROZ520 TARGET_REACT_RHTML_WITH_CHILDREN-r-html with children — React's dangerouslySetInnerHTML can't coexist with children (Pitfall 10)
ROZ521 TARGET_REACT_NESTED_STATE_MUTATION-Pitfall 7 — $data.foo.bar = 'x' nested member writes; v1 warns + leaves AST unchanged
ROZ522 TARGET_REACT_MODULE_LET_AUTO_HOISTED-Pitfall 3/8 — module-scoped `let X` referenced from LifecycleHook setup auto-hoisted to useRef
ROZ523 TARGET_REACT_MODULE_LET_UNHOISTABLE-Pitfall 3/8 — module-scoped `let X` referenced too indirectly to safely auto-hoist; user must refactor
ROZ524 TARGET_REACT_SETTER_NAME_COLLISION-Phase 07.7 — user-defined function `set<X>` collides with auto-generated useState/useControllableState setter `setX` for state/model prop X; emits "already declared" + infinite recursion when `$data.X = v` rewrites to `setX(v)` inside the same-named user wrapper

@rozie/runtime-react warnings (Phase 4 D-63) — ROZ550..ROZ579

CodeSeverityCause
ROZ550 RUNTIME_REACT_CONTROLLABLE_MODE_FLIP-D-57 — useControllableState detected parent flipping controlled/uncontrolled mid-lifecycle

@rozie/unplugin Svelte-branch + @rozie/target-svelte errors (Phase 5) — ROZ600..ROZ649

CodeSeverityCause
ROZ600 UNPLUGIN_SVELTE_PEER_DEP_MISSING-@sveltejs/vite-plugin-svelte not resolvable from cwd
ROZ601 UNPLUGIN_SVELTE_DEP_MISSING-svelte itself (^5) not resolvable from cwd
ROZ602 UNPLUGIN_SVELTE_PLUGIN_CHAIN_MISORDER-RESERVED — enforce:'pre' guarantees this; placeholder for future
ROZ620 TARGET_SVELTE_RHTML_WITH_CHILDREN-r-html with children; mirrors Vue/React Pitfall 10
ROZ621 TARGET_SVELTE_RESERVED-internal-invariant placeholder; mirrors TARGET_VUE_RESERVED

@rozie/unplugin Angular-branch + @rozie/target-angular errors (Phase 5 D-72) — ROZ700..ROZ749

CodeSeverityCause
ROZ700 UNPLUGIN_ANGULAR_PEER_DEP_MISSING-@analogjs/vite-plugin-angular not resolvable from cwd (D-72)
ROZ701 UNPLUGIN_ANGULAR_DEP_MISSING-@angular/core (^17) not resolvable
ROZ702 UNPLUGIN_ANGULAR_VITE_VERSION_TOO_LOW-analogjs requires Vite ^6 (RESEARCH OQ6)
ROZ703 UNPLUGIN_ANGULAR_PLUGIN_CHAIN_MISORDER-RESERVED — enforce:'pre' guarantees this
ROZ720 TARGET_ANGULAR_RFOR_MISSING_KEYwarningAngular @for REQUIRES track expression (Pitfall 3); upgrade ROZ300 warning to error for Angular target
ROZ721 TARGET_ANGULAR_RHTML_WITH_CHILDREN-r-html via [innerHTML] cannot coexist with children
ROZ722 TARGET_ANGULAR_RESERVED-internal-invariant placeholder
ROZ723 TARGET_ANGULAR_LOOP_GUARD_HOIST-an early-return event modifier (.self / key-filter) inside an r-for loop references the loop variable — Angular hoists the guard to a class-field arrow that cannot capture loop-scoped bindings

Phase 6 (ROZ800..ROZ899) — D-96 sub-ranges

CodeSeverityCause
ROZ800 COMPILE_INVALID_TARGET-unknown target token in opts.target
ROZ801 COMPILE_INVALID_OPT_COMBO-reserved — disallowed opts combination

@rozie/babel-plugin (Plan 06-04) — ROZ820..ROZ829

CodeSeverityCause
ROZ820 BABEL_PLUGIN_INVALID_TARGET-missing or invalid `target` option (vue|react|svelte|angular required)
ROZ821 BABEL_PLUGIN_NO_FILENAME-cannot resolve relative .rozie path without state.filename / file.opts.filename
ROZ822 BABEL_PLUGIN_COMPILE_ERRORerrorcompile() returned severity:'error' diagnostics during sibling write
ROZ823 BABEL_PLUGIN_SIBLING_WRITE_FAIL-fs writeFileSync failed when emitting sibling .{ext}/.d.ts/.module.css/.global.css

@rozie/unplugin Lit-branch + @rozie/target-lit + @rozie/runtime-lit (Phase 06.4 — D-LIT-19 Option A) — ROZ830..ROZ849

CodeSeverityCause
ROZ830 UNPLUGIN_LIT_PEER_DEP_MISSING-lit (^3.2) not resolvable from cwd
ROZ831 UNPLUGIN_LIT_SIGNALS_PEER_DEP_MISSING-@lit-labs/preact-signals (^1) not resolvable from cwd

@rozie/target-lit lowering errors (Phase 07.1) — ROZ832..ROZ839

CodeSeverityCause
ROZ832 TARGET_LIT_RESERVED-internal-invariant placeholder; mirrors TARGET_SVELTE_RESERVED/TARGET_ANGULAR_RESERVED.
ROZ833 TARGET_LIT_RHTML_WITH_CHILDREN-r-html via unsafeHTML cannot coexist with children; mirrors ROZ620/721
ROZ840 RUNTIME_LIT_CONTROLLABLE_MODE_FLIPwarningcreateLitControllableProperty parent-flip warning (D-LIT-10)

@rozie/cli argv parsing + filesystem errors (Plan 06-03) — ROZ850..ROZ879

CodeSeverityCause
ROZ850 CLI_INVALID_TARGET-unknown --target token (commander InvalidArgumentError)
ROZ851 CLI_MISSING_INPUT-no .rozie files matched after expandInputs
ROZ852 CLI_OUT_REQUIRED---out required for multiple inputs or multiple targets
ROZ853 CLI_NULL_BYTE_INPUT-null-byte injection in input arg (carries forward unplugin/transform.ts:235-237)
ROZ854 CLI_NON_ROZIE_INPUT-file input that doesn't end with .rozie
ROZ855 CLI_REACT_REQUIRES_OUT_DIR-target=react with no --out — sidecars (.d.ts/.module.css/.global.css) cannot stream to stdout

Phase 06.1 source-map composition (D-111) — ROZ900..ROZ919

CodeSeverityCause
ROZ900 SOURCEMAP_COMPOSE_FAILED-composeMaps() threw or returned null
ROZ901 SOURCEMAP_CHILD_MAP_MALFORMED-child map missing required Source Map v3 fields
ROZ902 SOURCEMAP_OFFSET_OUT_OF_RANGE-ChildMap.outputOffset exceeds shellMs output length
ROZ903 SOURCEMAP_REMAPPING_THREWerror@ampproject/remapping internal error
ROZ910 SOURCEMAP_AST_NODE_MISSING_LOC-synthesized AST node lacks loc; falls back to nearest segment (D-104/D-106)
ROZ911 SOURCEMAP_PARSER_OFFSET_INVALID-@babel/parser startLine/startColumn validation failed

Phase 06.2 component composition (D-123 sub-allocation) — ROZ920..ROZ939

CodeSeverityCause
ROZ920 UNKNOWN_COMPONENT-PascalCase tag matches neither outer name nor <components> entry
ROZ921 NON_ROZIE_IMPORT_PATH-<components> entry value is not a `.rozie` string literal
ROZ922 LOWERCASE_LIKELY_TYPOwarning<counter> when Counter is declared
ROZ923 DUPLICATE_COMPONENT_IMPORT_PATHwarningtwo <components> entries point at the same .rozie path
ROZ924 UNUSED_COMPONENT_ENTRYwarningdeclared <components> entry never used in template
ROZ925 ESCAPE_HATCH_REACT_SUSPENSE-<Suspense> — use React directly
ROZ926 ESCAPE_HATCH_VUE_TELEPORT-<Teleport> — use Vue directly
ROZ927 ESCAPE_HATCH_NG_CONTAINER-<ng-container> — use Angular directly
ROZ928 ESCAPE_HATCH_SVELTE_FRAGMENT-<svelte:fragment> — use Svelte directly

Phase 07.2 consumer-side slot fills (D-08 sub-allocation) — ROZ940..ROZ959

CodeSeverityCause
ROZ940 DUPLICATE_DEFAULT_FILLerrorlocked in SPEC.md R3; loose children + explicit <template #default>
ROZ941 UNKNOWN_SLOT_NAMEwarningconsumer fills a slot the producer doesn't declare (typo catch)
ROZ942 DUPLICATE_NAMED_FILLerrortwo sibling <template #header> directives
ROZ943 REPROJECTION_UNDECLARED_WRAPPER_SLOTerrorwrapper forwards a slot it doesn't itself declare
ROZ944 REPROJECTION_UNDECLARED_INNER_SLOTwarningwrapper forwards into a slot the inner producer doesn't declare
ROZ945 CROSS_PACKAGE_LOOKUP_FAILEDerrornpm/relative resolution of a <components> importPath returns null
ROZ946 DYNAMIC_NAME_EXPRESSION_INVALIDerror`<template #[expr]>` bracketed text fails to parse as a JS expression
ROZ947 SCOPED_PARAM_MISMATCHerrorD-09 — consumer destructures a param the producer SlotDecl.params doesn't declare
ROZ948 SCOPED_PARAMS_ALL_DROPPEDwarningscoped-params destructure had properties but none resolved to simple bindings (e.g.

Phase 07.3 consumer-side two-way binding — ROZ949..ROZ951

CodeSeverityCause
ROZ949 TWO_WAY_PROP_NOT_MODELerrorr-model:prop= where producer prop lacks model:true (dual-frame: consumer site + producer decl)
ROZ950 TWO_WAY_ARG_OR_TARGET_INVALIDerrorr-model: with empty arg (`r-model:=`), OR applied to non-component HTML tag (`<div r-model:foo=`)
ROZ951 TWO_WAY_LHS_NOT_WRITABLEerrorRHS not a writable lvalue per 07.3-CONTEXT D-03 permissive rule (literal/ternary/call/$computed)
ROZ952 TWO_WAY_DIRECTIVE_TYPOerrorcolon-form directive `r-<base>:<arg>` whose `<base>` is a Levenshtein near-miss of `model` (e.g.

Phase 11 r-match construct — ROZ953..ROZ959

CodeSeverityCause
ROZ953 MATCH_EMPTY_DISCRIMINANTerrorr-match host with no value (`<template r-match>` / `<template r-match="">`)
ROZ954 MATCH_STRAY_CHILDerrorr-match host child that is neither r-case nor r-default
ROZ955 MATCH_CASE_NO_VALUEerrorvalueless r-case (hint: did you mean r-default?)
ROZ956 MATCH_CASE_WITH_FORerrorr-case + r-for on the same element
ROZ957 MATCH_DEFAULT_NOT_LASTerrorr-default is not the last branch of the match
ROZ958 MATCH_MULTIPLE_DEFAULTerrormore than one r-default in a single r-match
ROZ959 MATCH_DUPLICATE_CASEwarningduplicate literal r-case value (first occurrence wins, like `switch`)

Phase 12 r-model modifiers — ROZ960..ROZ964

CodeSeverityCause
ROZ960 RMODEL_UNKNOWN_MODIFIERerrorunknown r-model modifier (did-you-mean among model modifiers)
ROZ961 RMODEL_EVENT_MODIFIER_MISUSEDerrora valid event modifier used on r-model
ROZ962 DIRECTIVE_TAKES_NO_MODIFIERSerrormodifier on r-if/r-for/r-show/r-html/r-text
ROZ963 RMODEL_BUILTIN_ON_TWO_WAYerrorbuilt-in r-model modifier on consumer-side r-model:propName
ROZ964 RMODEL_MODIFIER_NOT_APPLICABLEwarningvalue-transform modifier on a checkbox/radio r-model

Phase 13 $classSelector — ROZ965..ROZ967

CodeSeverityCause
ROZ965 CLASS_SELECTOR_ARG_NOT_LITERALerrorR3: $classSelector argument is not a string literal
ROZ966 CLASS_SELECTOR_UNKNOWN_CLASSerrorR4: class not declared in the component's <style> scope; did-you-mean hint
ROZ967 CLASS_SELECTOR_INVALID_TOKENerrorR5: multi-token / dotted / combinator / `#` argument (fails the bare-class-token regex)
ROZ968 CLASS_SELECTOR_REACT_NO_SOURCE-retired (Phase 25) — formerly fired when $classSelector was used in a React emit without opts.source.

Phase 14 attribute fallthrough — ROZ969..ROZ971

CodeSeverityCause
ROZ969 R_BIND_COLON_FORMerrorR1: `r-bind:foo="x"` colon form is not supported (use the `:foo` shorthand or the bare-spread `r-bind="obj"`)
ROZ970 ATTR_FALLTHROUGH_MULTI_ROOTerrorR8: a multi-root template with auto-fallthrough enabled has no single root to receive inherited attributes
ROZ971 ATTR_DOUBLE_APPLYwarningR9: `$attrs` referenced (e.g.

Phase 15 listener fallthrough — ROZ972..ROZ974

CodeSeverityCause
ROZ972 R_ON_COLON_FORMerrorR1: `r-on:click="x"` colon form is not supported (use the single-event `@click` syntax or the bare object-spread `r-on="{ click: fn }"`)
ROZ973 LISTENER_FALLTHROUGH_MULTI_ROOTerrorR8: a multi-root template with auto-listener-fallthrough enabled has no single root to receive inherited listeners (INDEPENDENT of ROZ970)
ROZ974 LISTENER_DOUBLE_APPLYwarningR9: `$listeners` referenced (e.g.

Phase 16 $restoreFocus — ROZ975..ROZ976

CodeSeverityCause
ROZ975 RESTORE_FOCUS_NON_LITERAL_SELECTORerrorSPEC R9: $restoreFocus first arg is not a string literal
ROZ976 RESTORE_FOCUS_BAD_ARITYerrorSPEC R9: $restoreFocus called with wrong number of arguments

compile() empty-code guard — ROZ977

CodeSeverityCause
ROZ977 COMPILE_EMPTY_CODE_NO_DIAGNOSTICSerrorinternal: compile() emit produced empty code with no error diagnostics (parser/lowerer/emitter internal failure)

Phase 26 bare-sigil rejection — ROZ978

CodeSeverityCause
ROZ978 BARE_OBJECT_SIGILerrorbare $props/$data/$refs/$slots used as a whole-object value (not a member access).

Phase 37 $portals.default — ROZ979

CodeSeverityCause
ROZ979 DEFAULT_PORTAL_NAME_RESERVEDerrora default portal slot (`<slot portal />`) and a slot `name="default"` both key `$portals.default`; "default" is the reserved default-portal key.
ROZ981 RUNTIME_ONLY_NAME_COLLISIONerrora runtime-only public-contract collision with no typecheck net (Svelte slot-param shadows an r-for loop var, or two emits normalize to one callback prop).

Pre-v1.0 — internal monorepo.