What
The #395 inventory's residue: failures that are already visible-or-loud but inconsistent, plus lint-shaped gaps. None violates always-renders on its own; together they make the error surface uneven. One backlog issue so they don't scatter:
Styling / render consistency
assemble.js:118-123 missing-child note renders as a bare unstyled paragraph that reads like content — give it the error-block styling.
parse-error / tag-error / .enscribe-error marker classes have no CSS rules (unlike ref-error/cite-error) — same error styling family.
- Deferred placement markers in a master (
<toc>/<endnotes> in master scope) are dropped with a warning (assemble.js:139-141) — a small visible placeholder would be honest.
CLI ergonomics
emit() write failures surface as raw ENOENT stacks (cli.js:570-576) — map to a clean CliError.
--live build: a missing non-website master child throws mid-copy (build-live.js:222) where the nav-item path warns+skips — pick one policy.
copyShellAssets require.resolve failure (unbuilt engine bundle) is a raw throw (build-live.js:57-64) — name the fix ("run the package build").
- Known
--theme in the BROWSER bundle: getThemeCss is a Node fs read (index.js:275-281) — themes are sub-1KB; build-inline them.
Lint-shaped gaps (accepted-but-inert authoring)
<library> with no src and no inline content: vfile-only note (library-load.js:186-189).
- Data-store
<fig> carrying BOTH src= and a base64 body: src silently wins (asset-load.js:220-222) — one collision-style flag.
- Dataset→table hand-off with no format on either side (
asset-load.js:343-345) — name the miss.
ris / endnote-xml format words accepted by the gate but unwired in FORMAT_FORCETYPE (library-load.js:76-78) — falls to auto-detect, which does not detect them.
- CLI URL
<table src> gap (browser preloads it, CLI sync path cannot) — small preload-collection fix flagged in the audit.
- DSL live-link CDN
<script src> has no onerror hint (index.js:442-444) — offline reader sees un-activated source (visible degrade), a one-line hint would name it.
- Empty authored
<bibliography> (zero resolved cites) is suppressed (bibliography.js:234-239) — same placement-marker-semantics question as the notes issue; settle there, execute here.
Source: #395 universality audit inventory (posted on #395). Each line cites its inventory row; verify against current code before fixing (verify-first).
What
The #395 inventory's residue: failures that are already visible-or-loud but inconsistent, plus lint-shaped gaps. None violates always-renders on its own; together they make the error surface uneven. One backlog issue so they don't scatter:
Styling / render consistency
assemble.js:118-123missing-child note renders as a bare unstyled paragraph that reads like content — give it the error-block styling.parse-error/tag-error/.enscribe-errormarker classes have no CSS rules (unlikeref-error/cite-error) — same error styling family.<toc>/<endnotes>in master scope) are dropped with a warning (assemble.js:139-141) — a small visible placeholder would be honest.CLI ergonomics
emit()write failures surface as raw ENOENT stacks (cli.js:570-576) — map to a clean CliError.--livebuild: a missing non-website master child throws mid-copy (build-live.js:222) where the nav-item path warns+skips — pick one policy.copyShellAssetsrequire.resolvefailure (unbuilt engine bundle) is a raw throw (build-live.js:57-64) — name the fix ("run the package build").--themein the BROWSER bundle:getThemeCssis a Node fs read (index.js:275-281) — themes are sub-1KB; build-inline them.Lint-shaped gaps (accepted-but-inert authoring)
<library>with no src and no inline content: vfile-only note (library-load.js:186-189).<fig>carrying BOTHsrc=and a base64 body: src silently wins (asset-load.js:220-222) — one collision-style flag.asset-load.js:343-345) — name the miss.ris/endnote-xmlformat words accepted by the gate but unwired inFORMAT_FORCETYPE(library-load.js:76-78) — falls to auto-detect, which does not detect them.<table src>gap (browser preloads it, CLI sync path cannot) — small preload-collection fix flagged in the audit.<script src>has no onerror hint (index.js:442-444) — offline reader sees un-activated source (visible degrade), a one-line hint would name it.<bibliography>(zero resolved cites) is suppressed (bibliography.js:234-239) — same placement-marker-semantics question as the notes issue; settle there, execute here.Source: #395 universality audit inventory (posted on #395). Each line cites its inventory row; verify against current code before fixing (verify-first).