Skip to content

Instantly share code, notes, and snippets.

View ndelangen's full-sized avatar
🇳🇱
yes?

Norbert de Langen ndelangen

🇳🇱
yes?
  • Chroma Software
  • Netherlands
View GitHub Profile
@ndelangen
ndelangen / lab02-script-refactor-sequence.md
Created August 1, 2026 20:53
Lab-02 behavior-preserving script refactor sequence

Lab-02 script refactor sequence

Scope

This is the implementation route for the 76 files below scripts/** at Lab-02 revision 67205a7c10f6ecf4420cfb7c83e537d4b269266c. It applies the decisions in plan issues 104–109, 111, 123, and 124 without changing release behavior.

The accepted prototype at 2c64ed3a41a1a68fe3550aec399a5447808053f4 is evidence, not an integration branch. Implementation starts from a fresh

@ndelangen
ndelangen / storybook-content-and-isolation-boundary.md
Created July 27, 2026 21:04
Dune Zone Storybook content and isolation boundary

Dune Zone Storybook content and isolation boundary

Status

Accepted planning decision for Choose the public Storybook content and isolation boundary. This supersedes the earlier repair-all-364 decision.

Domain language

  • Capability story: an intentionally authored Storybook example that demonstrates a meaningful use case, visual mode, composition, or interaction of a reusable component.
  • Legacy capture specimen: a story whose purpose was to instantiate one concrete game asset for the retired image-generation pipeline. It is not evidence that the underlying component is defunct.
@ndelangen
ndelangen / storybook-public-content-boundary.md
Last active July 27, 2026 19:48
Decision record for dunezone public Storybook content and isolation boundary

SUPERSEDED: The all-364 content decision in this record is no longer current. The content-boundary ticket was reopened after distinguishing reusable component capability stories from legacy per-output capture specimens. See ndelangen/dunezone#141

Public Storybook content and isolation boundary

Decision for dunezone issue #141, approved 2026-07-27.

Content boundary

  • The production Storybook is exhaustive: every story present in the built Storybook index is public and must pass the release contract.
  • The current baseline is all 364 indexed stories. Intentional empty, loading, unauthenticated, and error-state stories remain valid stories when their state is fixture-driven and renders without runtime failure.
@ndelangen
ndelangen / README.md
Created July 22, 2026 22:40
Dune Zone faction authoring composition prototypes

Faction authoring composition prototypes

Three structurally different concepts compared for Dune Zone's shared Create/Edit faction experience:

  • tabbed-studio.svg — a familiar domain-tabbed studio with a persistent artifact rail.
  • artifact-canvas.svg — an artifact-first canvas where selecting output elements reveals their responsible fields.
  • facet-chapters.svg — one continuous document of domain chapters with local artifact previews.

Selected direction

@ndelangen
ndelangen / your-storybook-preset.js
Created July 29, 2019 12:31
Using other config properties
export const webpack = async (base, config) => {
const { default: webpackMerge } = await import('webpack-merge');
const { default: globToRegex } = await import('glob-to-regexp');
// here we request the resulting entries property
// and transform the array of globs to an array of regular expressions
const entries = (await config.entries).map(globToRegex);
return webpackMerge(base, {
module: {
export const entries = ['**/*.stories.[t|j]s'];
export const presets = ['babel/auto', 'sass'];
export const babel = async (base, config) => ({
rootMode: 'upward',
sourceType: 'unambiguous',
});
@ndelangen
ndelangen / storybook.config.js
Created July 29, 2019 11:50
Configuration with webpack & babel
export const entries = ['**/*.stories.[t|j]s'];
export const babel = async (base, config) => ({
rootMode: 'upward',
sourceType: 'unambiguous',
});
export const webpack = async (base, config) => {
const { default: webpackMerge } = await import('webpack-merge');
@ndelangen
ndelangen / storybook.config.js
Created July 29, 2019 09:57
Configuring storybook's entries & addons
export const entries = ['**/*.stories.[t|j]s'];
export const addons = ['docs', 'knobs'];
@ndelangen
ndelangen / doc.md
Last active December 22, 2017 06:55
Markdown extension for placing React components

Add storybook dependencies

First of all, you need to add a few storybook packages to your project's package.json. To do that, simply run:

:::CodeSwitcher

npm i --save-dev @storybook/react @storybook/addons react react-dom