You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Production-конфиг несёт NeutralTint { ratio, target_mp, hue_stiffness, hue_override_deg }, а ядро содержит TINT_PERCEPTIBLE_MP_FLOOR, CUSP_HALF_WINDOW_DEG, LIGHTNESS_SETTLE, CURVE_REFINE_STEPS и midpoint fallback.
Эти значения меняют продуктовый результат, но не имеют статуса универсальной физики:
M′=1.5 не доказан как screen perceptibility threshold;
±40° — текущая aesthetic policy;
0.002 не является общей границей точности finite sRGB8;
фиксированное число итераций не доказывает неподвижную точку;
Err → midpoint скрывает недостижимость;
cusp attraction не является обязательным законом family identity.
Однако утверждение «три anchors однозначно задают научно правильную neutral curve» также неверно. Точки не определяют единственную траекторию без explicit construction model/profile.
Роль neutral family в продукте
Neutral family — не статическая палитра и не только offline candidate set. Это first-class вычислительный механизм адаптивной системы:
immutable anchors
+ versioned construction/profile
+ current context and client contract
→ selected family point
→ finite emitted state
Continuous family позволяет:
выбирать точки по дельтам/контрактам;
перерешивать их при изменении background/theme/context;
сохранять связанную траекторию family;
искать минимальное допустимое изменение.
Фактический output всегда конечен и повторно измеряется после emission. Continuous family и finite output domain не конкурируют — это два уровня одной модели.
Доменное решение
Разделить четыре SSOT-понятия:
Client source data — ordered immutable anchors.
Versioned family construction — как из anchors определяется непрерывное/упорядоченное семейство.
Finite emission policy — какие output states реально доступны и как выполняется tie/quantization.
Client role/dependency contract — по какому отношению выбирается текущая точка.
explicit dense client anchors без восстановления скрытой формы.
Каждый construction имеет immutable ID, documented semantics, applicability и falsification tests. Ни один не называется универсальной психофизической истиной без данных.
Дизайн-система передаёт opaque ID и generic contract. Resolver выбирает family point, который выполняет этот контракт в текущем контексте. Одинаковый client level разных families может получить разные t, J′, chroma, alpha и bytes.
Обязательные свойства:
byte-exact anchors;
deterministic construction identity;
continuous-path continuity/monotonicity ровно в объявленных величинах;
finite emitted candidate/domain contract;
nearest/admissible state с explicit stable tie rule;
честные repeated outputs при insufficient finite capacity;
Закрытый PR #226 остаётся доступным только как audit trail/counterexample source; production-код переносится повторной реализацией от актуального main.
Проблема
Production-конфиг несёт
NeutralTint { ratio, target_mp, hue_stiffness, hue_override_deg }, а ядро содержитTINT_PERCEPTIBLE_MP_FLOOR,CUSP_HALF_WINDOW_DEG,LIGHTNESS_SETTLE,CURVE_REFINE_STEPSи midpoint fallback.Эти значения меняют продуктовый результат, но не имеют статуса универсальной физики:
M′=1.5не доказан как screen perceptibility threshold;±40°— текущая aesthetic policy;0.002не является общей границей точности finite sRGB8;Err → midpointскрывает недостижимость;Однако утверждение «три anchors однозначно задают научно правильную neutral curve» также неверно. Точки не определяют единственную траекторию без explicit construction model/profile.
Роль neutral family в продукте
Neutral family — не статическая палитра и не только offline candidate set. Это first-class вычислительный механизм адаптивной системы:
Continuous family позволяет:
Фактический output всегда конечен и повторно измеряется после emission. Continuous family и finite output domain не конкурируют — это два уровня одной модели.
Доменное решение
Разделить четыре SSOT-понятия:
Точные типы и пространство construction подлежат сравнительному DDD/научному review.
Возможные competing constructions
Не утверждать один вариант заранее. Проверить как минимум:
Каждый construction имеет immutable ID, documented semantics, applicability и falsification tests. Ни один не называется универсальной психофизической истиной без данных.
Достаточность входов и UX
Lab Colors не задаёт интерактивных вопросов.
Если базового набора anchors недостаточно для выбранного explicit construction/contract:
Никаких
NeedsPreference,askUser, CLI-мастеров или скрытого magic fit.Источник истины
R=G=Bозначает только encoded achromatic state; это не обещание одинакового appearance во всех contexts.h_okиh_camне являются двумя независимо редактируемыми источниками одного цвета ARCH: запретить независимо изменяемые hue-представления одного цветового стимула #16.Sampling и role mapping
Semantic/client level не равен фиксированному
t.Дизайн-система передаёт opaque ID и generic contract. Resolver выбирает family point, который выполняет этот контракт в текущем контексте. Одинаковый client level разных families может получить разные
t,J′, chroma, alpha и bytes.Обязательные свойства:
Если family не может выполнить требуемый client relation, возвращается typed conflict/capacity status; points не переставляются молча.
Удаляемая или понижаемая policy
После доказанной migration/replacement:
ratioкак universal tint amount;target_mpкак обязательная «правильная сила»;hue_stiffness;hue_override_degкак компенсация слабой общей модели;TINT_PERCEPTIBLE_MP_FLOORкак universal observer threshold;CUSP_HALF_WINDOW_DEG;LIGHTNESS_SETTLE;CURVE_REFINE_STEPS;Current values до замены остаются compatibility baselines/preset data и не удаляются до differential proof shipped behavior.
TDD / falsification
t.R=G=Bне получает invented hue.Acceptance
ratio/target_mp/hue_stiffness/hue_override.Зависимости и связи
Закрытый PR #226 остаётся доступным только как audit trail/counterexample source; production-код переносится повторной реализацией от актуального
main.