Method

  • Measurement:
    • Five disjoint read-only scout slices covered seven projects on 2026-09-15: sflw; svelte-chat; bits; airi with iconmania; click2punch with wrdp.
    • Evidence combined manifests, lockfiles, configuration, component inventories, source reads, and selected installed-package reads for transitive context requirements.
    • Locked versions take precedence over manifest ranges. Missing declarations, floating CDN versions, and unmeasured runtimes remain explicit rather than acquiring guessed versions.
    • The greenfield stbk target was untouched by the scouts at measurement time. This page records inputs to a build that will follow the plan; it does not document an existing Storybook deployment.
  • Receipt root: stbk/evidence/2026-09-15-stbk-masterplan-604fd75c/scouts/.
    • ScoutSflw.json:2: stack, eight reusable components, route inventory, XYFlow dependency chain.
    • ScoutChat.json:2: stack, four route files, private snippets, automatic room traffic.
    • ScoutBits.json:2 and ScoutBits-architecture.md:4-209: stack, all 158 library files, upstream primitive provenance, isolation classifications.
    • ScoutVueReact.json:2: airi workspace, Histoire, Vue leaves, React components and gallery contracts.
    • ScoutProtos.json:2: HTML prototypes, CDN dependencies, WordPress boundary and DOM-factory exception.
  • Readback:
    • The first-delivery source files and chat adaptation ranges were read directly when preparing this page.
    • Matrix versions were checked against the cited lockfile entries or source declarations; the Histoire story was followed through its actual Vue component exports.
  • Not performed:
    • No install, build, typecheck, test, linter, application launch, browser execution, or deployment was run by this evidence wave.
    • No successful Storybook import, visual fidelity, keyboard behavior, focus containment, accessibility pass, or live wiki rendering is established here.
    • Isolatability is a source-grounded planning assessment, not a successful runtime result.

Fleet stack matrix

Resolved versions below describe the measured source trees, not the future stbk dependency installation. A manifest range is not an installed version.

ProjectFramework and exact versionBundler and versionStyling system and versionTypeScript versionPackage-manager evidenceExisting component explorer
sflwSvelte 5.57.0; SvelteKit 2.70.3, both exact manifest pins. sflw/package-lock.json:883,2422Vite 8.3.0 locked; manifest ^8.0.0. sflw/package-lock.json:2571; sflw/package.json:32Tailwind 4.3.3 and daisyUI 5.7.38; manifest ranges ^4.3.3 and ^5.7.38. CSS-first custom themes. sflw/package-lock.json:1619,2482; sflw/package.json:27,305.9.3 locked; manifest ^5.9.0. sflw/package-lock.json:2550; sflw/package.json:31npm-format sflw/package-lock.json; no packageManager pinNone found
svelte-chatSvelte 5.57.0; SvelteKit 2.70.3, both exact manifest pins. svelte-chat/package-lock.json:1086,2920Vite 8.2.2 locked; manifest ^8.0.0. svelte-chat/package-lock.json:3128; svelte-chat/package.json:21Tailwind 4.3.3 and daisyUI 5.7.38; manifest ranges ^4.3.3 and ^5.7.38. CSS-first custom themes. svelte-chat/package-lock.json:1933,2988; svelte-chat/package.json:16,195.9.3 locked; manifest ^5.9.0. svelte-chat/package-lock.json:3098; svelte-chat/package.json:20npm-format svelte-chat/package-lock.json; no packageManager pinNone found
bitsSvelte 5.57.0 and SvelteKit 2.70.3 locked; manifest ranges ^5.56.1 and ^2.63.0. bits/package-lock.json:926,2487; bits/package.json:17,21Vite 8.2.2 locked; manifest ^8.0.16. bits/package-lock.json:2649; bits/package.json:25Tailwind 4.3.3, manifest ^4.3.3; hand-written ink/brand skin, not daisyUI. bits/package-lock.json:2574; bits/package.json:23; bits/src/app.css:8-34,79-1926.0.3 locked; manifest ^6.0.3. bits/package-lock.json:2628; bits/package.json:24npm-format bits/package-lock.json; no manager pin. The Bun guide-generation script at bits/package.json:10 does not change the lockfile evidenceNone found
airiVue 3.5.41 for stage-web; catalog: resolves catalog range ^3.5.41. airi/pnpm-lock.yaml:2606-2608; airi/pnpm-workspace.yaml:439Vite 8.2.2 locked; catalog range ^8.2.2. airi/pnpm-lock.yaml:2736-2738; airi/pnpm-workspace.yaml:429UnoCSS 66.7.5, exact catalog declaration; Wind3, attributify and icons, not Tailwind/daisyUI. airi/pnpm-lock.yaml:1381-1383; airi/pnpm-workspace.yaml:412; airi/uno.config.ts:141-1686.0.3 locked; catalog range ^6.0.3. airi/pnpm-lock.yaml:1375-1377; airi/pnpm-workspace.yaml:406airi/pnpm-lock.yaml; pnpm 11.24.0 pinned at airi/package.json:6; workspace catalogs and patchesHistoire 1.0.0-beta.1 with Vue plugin of the same version. airi/pnpm-lock.yaml:4748-4750,4826-4828
iconmaniaReact and React DOM 19.1.1, exact manifest pins. iconmania/package.json:20-21; React lock entry iconmania/package-lock.json:2026Vite 7.1.2, exact manifest pin. iconmania/package.json:22; iconmania/package-lock.json:2277Hand-written global CSS; no Tailwind/daisyUI dependency. No package version applies to the local stylesheet. iconmania/src/styles.css:1-99; iconmania/package.json:18-315.9.2, exact manifest pin. iconmania/package.json:29; iconmania/package-lock.json:2226npm-format iconmania/package-lock.json; no workspace or manager pin in the root manifestNone found
click2punchCurrent prototypes are standalone HTML with inline JavaScript; no Svelte/Vue/React dependency in click2punch/package.json:1-13No bundler declared for these documents. Bun 1.4.0 is invoked by test/gate scripts, not a prototype bundler declaration. click2punch/package.json:4-5daisyUI @5 CSS/themes and @tailwindcss/browser@4 from CDN, plus embedded CSS. These are floating major references, not exact locked versions. click2punch/prototypes/2026-09-15-punch-ui/deck.html:8-11Compiler not declared; TypeScript extension source nevertheless exists at the manifest entry click2punch/package.json:8click2punch/bun.lock; happy-dom 20.13.2 locked at line 23 versus manifest ^20.13.2None found
wrdpWordPress 7.1 declared by wrdp/wp/wp-includes/version.php:19; PHP runtime version was not measuredNo root application bundler identified. The nested theme has a PostCSS CSS-build script, not a Vite component application. Its tool resolutions were not part of the scout measurement. wrdp/wp/wp-content/themes/twentytwentyfive/package.json:19-29WordPress/theme CSS and hand-written QuizWizz player CSS with --qw-* tokens. Nested Twenty Twenty-Five package version 1.5.0 is recorded at wrdp/wp/wp-content/themes/twentytwentyfive/package-lock.json:2-9; no Tailwind/daisyUI dependency in that manifestNot declared in the inspected theme manifest; no root package manifestNo root wrdp/package.json. A nested npm lockfile exists at wrdp/wp/wp-content/themes/twentytwentyfive/package-lock.json; this is not a QuizWizz package manifestNone found
  • Scope corrections:
    • airi denotes the inspected stage-web application plus relevant shared packages, not a claim that every workspace package has an identical stack.
    • airi/apps/stage-web/src/main.ts:27 imports @unocss/reset/tailwind.css; the filename denotes a reset, not a Tailwind installation.
    • click2punch is not dependency-free: its repository has a manifest and locked happy-dom dependency, while its prototype pages load runtime CDN dependencies. The same CDN references appear in board.html:8-10 and focus.html:8-10 in the cited prototype directory.
    • wrdp has no root manifest, not no manifests anywhere. PHP 7.4 at wrdp/wp/wp-includes/version.php:40 is the minimum requirement, not a measured runtime version.
flowchart TB
  subgraph Svelte["Svelte source surfaces"]
    subgraph Daisy["Tailwind and daisyUI regime"]
      Sflw["sflw: reusable source components"]
      Chat["svelte-chat: inline route surfaces"]
    end
    Bits["bits: Tailwind ink skin"]
  end
  subgraph Deferred["Other measured source boundaries"]
    Airi["airi: Vue and UnoCSS"]
    Iconmania["iconmania: React and global CSS"]
    Click["click2punch: HTML documents and CDN CSS"]
    Wrdp["wrdp: PHP templates and JS DOM factories"]
  end

The diagram groups source evidence; it is not a diagram of running Storybook instances. The chosen build boundaries are recorded in 10-topology-options.

Storybook baseline

  • Finding:
    • Zero Storybook installations were found across the measured fleet. The five scouts found no declared or locked Storybook packages in the inspected application manifests and lockfiles; their project inventories found no existing Storybook setup to reuse.
    • This is a repository baseline, not a probe of running services or an exhaustive claim about unrelated cached artifacts.
    • The first delivery will create Storybook configuration and stories inside stbk; none of the fleet’s existing demos should be renamed retrospectively as Storybook stories.
  • Existing exception: Histoire in airi, not Storybook.
    • airi/packages/stage-ui/package.json:64-67 defines Histoire development, build and preview scripts.
    • airi/packages/stage-ui/histoire.config.ts:3-9,71-73,96-99 selects HstVue, names the explorer, and supplies browser/server setup files.
    • airi/packages/stage-ui/src/components/misc/button.story.vue:1-29 imports actual shared Vue controls and renders Histoire Story and Variant elements; lines 54-60 exercise default, disabled and loading states.
    • The Button export is real: airi/packages/ui/src/components/misc/index.ts:4 resolves to button.vue; its template at lines 428-435 renders BasicButton, whose native button appears at airi/packages/ui/src/components/misc/basic-button.vue:25-49.
    • Histoire configuration and real story source are verified. A functioning Histoire server or successful Histoire build was not verified.

Component surface per project

  • Classification:
    • Counts refer to real source files, not intended story variants, private snippets, or upstream package primitive counts.
    • [INFERENCE] Easy means no additional application service/provider isolation beyond the documented browser canvas, dependencies, styles and ordinary input fixtures. Needs a fixture or provider includes graph identity, routing, network responses, clipboard outcomes, clock/timezone or mutable application state.
    • These categories preserve the scouts’ source-based assessments. Zero not-isolatable entries does not mean zero integration work or verified browser behavior.

sflw

  • Inventory:
    • Eight reusable files under sflw/src/lib/components, including assistant/AssistantBubble.svelte.
    • Nine route/layout files are separate consumers; they are not nine more reusable leaves.
    • One context-free leaf (Icon), one browser-capability leaf (SourcePanel), and six graph/theme/application-fixture components.
  • Direct-import candidates:
    • sflw/src/lib/components/Icon.svelte:1-59: no imports, state or context; public name, size and stroke props drive SVG markup.
    • sflw/src/lib/components/SourcePanel.svelte:1-41: string source and filename props; only Icon imported; native disclosure and component-local copy feedback. Clipboard access occurs on click and has a failure branch.
    • sflw/src/lib/components/StudioNode.svelte:1-47: will be imported directly, but instantiated through a real SvelteFlow custom-node fixture rather than rendered bare.
  • The six fixture/provider classifications:
    • StudioNode.svelte: custom-node identity and Flow store.
    • TypedEdge.svelte: custom-edge identity, Flow store and label portal.
    • FlowViewport.svelte:2-18: Flow parent and animation-frame-driven fitting; no independent visual markup.
    • ShowcaseHeader.svelte:6,20-21: reactive theme provider for an effective toggle.
    • DemoShell.svelte:3-10,23-51: snippets, theme behavior, navigation and document-head effects.
    • assistant/AssistantBubble.svelte:14-19,200-225: graph/callback fixtures and controlled request outcomes; failed requests can take a local fallback.
  • Wrong assumption corrected:
    • There are not three dependency-free first candidates. Only Icon is completely dependency-free; SourcePanel adds a browser capability, and StudioNode adds a real graph context requirement.

svelte-chat

  • Inventory:
    • Exactly four .svelte source files: svelte-chat/src/routes/+layout.svelte, svelte-chat/src/routes/+page.svelte, svelte-chat/src/routes/+error.svelte, and svelte-chat/src/routes/r/[room]/+page.svelte.
    • Reusable component files: 0. Reusable-file distribution: 0 easy / 0 need a fixture or provider / 0 not isolatable; the denominator is zero, not four.
    • Separate route-file assessment: 1 easy wrapper / 3 needing application fixtures / 0 classified not isolatable. The layout owns CSS/theme synchronization; the lobby uses $app/forms, the error page uses $app/state, and the room owns its application lifecycle.
  • Wrong assumption corrected:
    • A message bubble, avatar, attachment list or toast visible in the app is not an exported component. These surfaces are private snippets or inline markup in the 1,575-line room route.
    • Named directly importable reusable components: none. The first delivery will author attributed adaptations inside stbk, not import fictitious source component files.
  • Adaptation boundaries:
    • Full private bubble snippet: svelte-chat/src/routes/r/[room]/+page.svelte:1079-1200.
      • Planned MessageBubble adaptation: display/body segment at lines 1079-1143, including its inline edit branch with explicit local state/actions.
      • The footer at 1144-1197 is excluded. This is not full-bubble coverage. The body-only extraction omits the footer’s edited marker, nonempty-streaming and interrupted-reply text, and continued-message timestamp at svelte-chat/src/routes/r/[room]/+page.svelte:1165-1173, as well as reaction/thread/action controls. These omissions will be visible in provenance; complete message-status presentation is not claimed.
    • Planned AttachmentList: private attachment snippet at lines 1054-1077; image, audio and file URLs will use owned fixtures.
    • Planned ToastStack: state/type at lines 1025-1035 and markup at lines 1564-1575; list, dismissal and timer ownership will become explicit.
    • Known deferred candidates:
      • Offline alert: lines 1249-1253.
      • Pending-upload display segment: lines 1352-1381; the full list, including retry/remove controls and closing markup, extends through line 1390.
  • Integration trap:
    • Fixture data does not disable room traffic. The effect at lines 421-428 calls room entry; lines 405-412 load identity/drafts, open SSE, fetch history, announce presence and refresh rooms. The read-state effect at lines 365-381 can POST without an explicit story click.

bits

  • Inventory:
    • 158 reusable .svelte files under bits/src/lib: 55 builder blocks, 93 demonstration files, six showcase components, three builder-editor components and one renderer.
    • Distribution: 136 easy / 22 need a fixture or provider / 0 classified not isolatable. The builder route is excluded from this denominator.
    • Breakdown: builder blocks 54/1/0; demonstrations 78/15/0; remaining infrastructure 4/6/0. Source inventory: ScoutBits-architecture.md:27-168 in the receipt root.
    • Of the 22 requiring extra isolation, 13 need clock/timezone fixtures, two need image responses, and seven cover clipboard, routing or application-store boundaries. Needs-fixture does not mean 22 backend mocks.
  • Direct-import first candidates:
    • bits/src/lib/demos/dialog/BasicDemo.svelte:1-59: actual Dialog composition, local form/open/save state, portal, title, description and required inputs.
    • bits/src/lib/demos/combobox/MultipleDemo.svelte:1-96: actual multi-select Combobox, local filtering, selected chips and empty-result state.
    • bits/src/lib/demos/checkbox/IndeterminateDemo.svelte:1-39: actual Checkbox/Label composition with checked and indeterminate bindings and three-state controls.
    • Each script imports only bits-ui and @lucide/svelte; no application store, route or network module is imported by these three files. They have internal state, not a public scalar args API to invent.
  • Provenance correction:
    • The project consumes upstream bits-ui 2.19.0, locked at bits/package-lock.json:1610. Local files supply demonstrations, compositions, skin and builder adapters; they are not a home-grown replacement for the primitive library.
    • ConfigProbe does not require a provider merely to mount: bits/node_modules/bits-ui/dist/bits/utilities/config/bits-config.js:7-11 returns fallback configuration. A provider is needed to demonstrate inheritance, not to justify moving it out of the easy category.

Isolation hazards that shape the build

  • Renderer and global CSS boundaries:
    • Svelte, Vue and React will use their native renderer builds. The selected root and bits instances will both use Svelte but remain separate because their global CSS regimes differ; 10-topology-options records the decision.
    • bits/src/app.css:79-96,100-176 defines a global dark base and local btn, card, panel and input utilities. daisyUI is enabled separately by sflw/src/app.css:3-5 and svelte-chat/src/app.css:11-14; the shared class names are not evidence of interchangeable skins.
    • [INFERENCE] Loading these competing stylesheets into one preview document would introduce cascade collisions. A story decorator around markup will not unload a previously imported global stylesheet; separate previews will enforce the bits boundary.
  • XYFlow node identity:
    • sflw/src/lib/components/StudioNode.svelte:11-25 renders real Handle components for non-note nodes.
    • sflw/node_modules/@xyflow/svelte/dist/lib/components/Handle/Handle.svelte:38-48 obtains node-id, connectability and Flow-store contexts. A generic surrounding provider is not equivalent to a registered custom node.
    • The first fixture will follow the real nodeTypes registration at sflw/src/routes/demo/nodes/+page.svelte:10-16,161-174. A sized viewport is required; the source shell supplies one at sflw/src/lib/components/DemoShell.svelte:82,94-95.
  • XYFlow edge identity:
    • sflw/src/lib/components/TypedEdge.svelte:59,73-85 always generates and passes a nonempty label. It is not pure SVG path math.
    • sflw/node_modules/@xyflow/svelte/dist/lib/components/edges/BaseEdge.svelte:42-45 renders EdgeLabel; sflw/node_modules/@xyflow/svelte/dist/lib/components/EdgeLabel/EdgeLabel.svelte:21-31 requires the Flow store, custom-edge context and an edge-label portal.
    • Any later TypedEdge story will use an actual graph edgeTypes fixture, not an SVG wrapper that drops the label.
  • Optional context can conceal a dead interaction:
    • sflw/src/lib/components/ShowcaseHeader.svelte:6,20-21 uses optional access for sflw-theme. The header can render while its theme button does nothing.
    • The real provider at sflw/src/routes/+layout.svelte:23-98 changes document theme, storage and system-preference listeners. A future header story will need controlled provider state and a state-change assertion, not just a screenshot.
  • Source styling is part of the component contract:
    • sflw/src/routes/+layout.svelte:4-5 imports XYFlow CSS and app CSS. Component-only imports do not bring the theme variables at sflw/src/app.css:75-143 or global rules at lines 145-205.
    • Chat’s light and dark are custom theme blocks at svelte-chat/src/app.css:16-84, not daisyUI’s stock palettes. Font and motion tokens follow at lines 92-114.
    • The planned fleet preview will preserve the four source theme definitions and required component tokens with a disclosed neutral base, rather than importing both applications’ full global resets. That is a decided adaptation boundary, not measured pixel identity; 30-first-delivery defines the delivery contract.
    • Tailwind discovery will include imported fleet source and new adaptations. Missing discovery would omit utility and state styling even when components compile.
  • Alias and import-graph boundaries:
    • sflw/src/lib/components/StudioNode.svelte:3 has a type-only $lib/flow/graph import; runtime $lib imports and a ?raw route import appear at sflw/src/routes/demo/basic/+page.svelte:4-7.
    • svelte-chat/src/routes/r/[room]/+page.svelte:3-20 imports helpers through $lib; the whole route will not be used as a shortcut to its snippets.
    • bits/src/lib/showcase/ComponentDrawer.svelte:4-7 requires SvelteKit routing/state. bits/src/lib/builder/store.svelte.ts:1,651-674,724-742,808-818 adds a browser-dependent singleton, session loading, scheduled saving and storage writes. The three selected demos avoid this graph.
  • Portals and repeated mounts:
    • bits/src/lib/demos/dialog/BasicDemo.svelte:20-54 and bits/src/lib/demos/combobox/MultipleDemo.svelte:70-94 use real portals. Future assertions will inspect the preview document, not only descendants of the story root.
    • Fixed IDs in bits/src/lib/demos/checkbox/IndeterminateDemo.svelte:17,30 and bits/src/lib/demos/dialog/BasicDemo.svelte:33-39 make simultaneous duplicate mounts in one document unsafe for label/focus evidence. Isolated canvases will preserve direct-import provenance without silently rewriting source IDs.
  • Chat adaptation safety:
    • svelte-chat/src/routes/r/[room]/+page.svelte:283,365-381,405-428 contains automatic SSE and writes. Copying the page and mocking a presumed API helper would not isolate the actual traffic.
    • svelte-chat/src/lib/render.ts:19-31 sanitizes Markdown output; the bubble inserts rendered HTML at svelte-chat/src/routes/r/[room]/+page.svelte:1133. Adaptations will retain an explicit safe rendering boundary, not substitute unsanitized fixture HTML or assume application CSP transfers to Storybook.
  • iconmania artwork:
    • iconmania/src/app/workspace-data.ts:162-172 constructs same-origin /api/gallery/... SVG and PNG URLs. Faithful gallery stories will need actual image responses; a JSON fixture is not a proof image.
    • iconmania/src/styles.css:1-99 supplies the global theme and element rules. A React component import alone will not reproduce that surface.
  • airi initialization and workspace cost:
    • airi/apps/stage-web/src/modules/i18n.ts:6-22 reads storage and navigator language during module initialization. A future Vue preview will construct a story-specific i18n provider rather than import app bootstrap.
    • airi/packages/stage-ui/src/stores/audio.ts:67-68 constructs AudioContext when the Pinia store initializes, not merely because the module is imported. airi/apps/stage-web/src/components/AudioWaveform.vue:11,18-88 initializes that store and starts analyser/frame behavior; it is not a passive waveform image.
    • airi/package.json:6,15 pins pnpm and invokes it from postinstall; airi/pnpm-workspace.yaml carries catalogs and patches. A future Vue instance needs deliberate package-manager and workspace setup, not one additional story file.
  • click2punch document execution:
    • click2punch/prototypes/2026-09-15-punch-ui/deck.html:8-10,818-863 combines floating CDN dependencies with an immediate inline controller and document-level IDs. board.html:916-920 and focus.html:1564-1576 in the same directory use the same document-oriented pattern.
    • Later coverage will be unchanged-page iframe stories using an HTML renderer, with relative assets preserved. Extracted widgets would be adaptations, not direct component imports. A plain HTML string insertion is not equivalent to executing the original document.
  • wrdp’s narrow exception:
    • wrdp/wp/wp-content/plugins/quizwizz/templates/single-qw_quiz.php:8-34 requires WordPress/PHP execution and cannot be imported as a browser component.
    • A blanket only-by-rewrite verdict for the whole project would still be wrong: wrdp/wp/wp-content/plugins/quizwizz/assets/js/qwizz-player-renderer.js:20-38,70-81,380-391 exposes real status, failure and progress DOM factories through window.QuizWizzPlayerRenderer.
    • These could later become HTML stories with an owned wrapper and original player/token CSS; wrdp/wp/wp-content/plugins/quizwizz/assets/css/qwizz-player.css:1-10 documents the token and scope dependence. They do not represent the full WordPress player lifecycle.

Provenance ledger

Relationships below specify what will be built. Imported directly means the future story will consume the existing source file unchanged; it does not claim an import has already been compiled or exercised. The graph fixture supports StudioNode and is not an additional fleet component.

Story to be builtSource file, project-relativeRelationship
sflw Iconsflw/src/lib/components/Icon.svelte:1-59imported directly
sflw SourcePanelsflw/src/lib/components/SourcePanel.svelte:1-41imported directly
sflw StudioNodesflw/src/lib/components/StudioNode.svelte:1-47imported directly; instantiated by the graph fixture
StudioNode graph fixtureRegistration pattern: sflw/src/routes/demo/nodes/+page.svelte:10-16,161-174fixture authored in stbk; the route itself will not be imported
bits Dialog BasicDemobits/src/lib/demos/dialog/BasicDemo.svelte:1-59imported directly
bits Combobox MultipleDemobits/src/lib/demos/combobox/MultipleDemo.svelte:1-96imported directly
bits Checkbox IndeterminateDemobits/src/lib/demos/checkbox/IndeterminateDemo.svelte:1-39imported directly
svelte-chat MessageBubble display/bodysvelte-chat/src/routes/r/[room]/+page.svelte:1079-1143adapted copy; new stbk component name, explicit local state/actions, footer 1144-1197 excluded. This is not full-bubble coverage.
svelte-chat AttachmentListsvelte-chat/src/routes/r/[room]/+page.svelte:1054-1077; attachment contract at svelte-chat/src/lib/types.ts:6-20adapted copy; new stbk component name and controlled media fixtures
svelte-chat ToastStacksvelte-chat/src/routes/r/[room]/+page.svelte:1025-1035,1564-1575adapted copy; new stbk component name and explicit list/dismissal/timer ownership
  • Every adapted component will carry a provenance header naming its source file and exact ranges, including any additional helpers copied during implementation.
  • Copied chat helpers will be attributed separately: rendering shape 171-183, date formatting 199-200, initials/formatting 239-247, edit behavior 888-930, and icon snippet 1048-1052 in svelte-chat/src/routes/r/[room]/+page.svelte, selecting only the helpers actually retained. Network-bound behavior will be replaced by stated local fixture behavior, not copied wholesale.
  • New wrappers, fixtures, source adaptations and Storybook configuration will live in stbk. Existing fleet projects will remain read-only.
  • The ledger promises six direct-source component stories and three chat adaptations, not native coverage of every measured project.

Confidence

  • Verified by source read:
    • Cited dependency resolutions, differing manifest ranges, package-manager declarations, CSS mechanisms and source component paths.
    • The reusable-file inventories recorded by the scouts, with direct readback of the six selected component files and chat adaptation ranges.
    • XYFlow’s node/edge context calls and portal chain; optional header toggle access; chat’s automatic SSE/write paths; Bits demo import boundaries; airi’s actual Histoire stories; API-served React artwork; CDN-dependent HTML documents; the WordPress DOM-factory exception.
    • Official Storybook composition documentation describes refs federation of independently published Storybooks and warns that composed addons do not behave exactly as in a non-composed instance. Federation will not be treated as a merged renderer or proof of addon parity.
  • [INFERENCE] Source-grounded assessments:
    • The easy/fixture/provider distributions predict isolation work; they are not successful compilation or interaction results.
    • CSS collisions justify the decided preview separation, but no combined preview was built to measure their visual manifestation.
    • Minimal component import graphs make the selected stories plausible first-delivery candidates; dependency resolution, generated CSS and runtime behavior still require implementation evidence.
  • Decided, not yet delivered by this measurement:
    • Two native Svelte instances, attributed chat adaptations, controlled fixtures, a disclosed fleet base-style adaptation, and the read-only fleet fence.
    • The scope and behavioral gates belong to 30-first-delivery; runtime and publication gates belong to 40-runtime-and-hosting.
  • Not established here:
    • Successful installation/build, working Storybook navigation or composition, exercised keyboard/focus behavior, browser accessibility, visual matching, or absence of unintended runtime requests.
    • Published wiki title, search, links, Mermaid rendering, or HTTPS content delivery. Those require the owner’s post-publication checks; source inspection and a hostname response cannot substitute for them.
    • Any claim that Storybook is already live. Return to index for the plan and its phase boundaries.