diff --git a/README.md b/README.md index 644dec87..7a7a96bf 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,70 @@ # Lab Colors -Движок цветовых систем с ProgramWire v1 runtime. Публичный пакет строит и проверяет цветовые Program-графы; конкретное применение результата остаётся у потребителя. +Компилятор и runtime цветовых контрактов для приложений и дизайн-систем. +Вы объявляете источники цвета, связи, подложки и ограничения. Lab Colors +проверяет граф и вычисляет допустимые результаты при изменении наблюдаемых +условий. Приложение задаёт смысл токенов и применяет полученные цвета. -## Публичный API +## Начать работу -Установка, исполняемый Quick Start и актуальный контракт публичного API находятся только в [packages/colors/README.md](packages/colors/README.md). +Для JavaScript и TypeScript используйте пакет `@labpics/colors` с ядром на +Rust/WASM. [Установка и первый пример](packages/colors/README.md#установка) +показывают путь от объявления графа до чтения цвета: `compileProgramWire` → +`updateObserved` → outputs. -Первый сценарий: установите пакет по инструкции и выполните [«Первый маршрут»](packages/colors/README.md#первый-маршрут), чтобы получить проверенный цвет одного output. Команды и код сценария поддерживаются только в этом разделе. +Для оценки из командной строки запустите пример из корня checkout с Rust +версии, указанной в [Cargo.toml](Cargo.toml), или новее: -Корневой README намеренно не дублирует API-пример. Так изменение runtime-поверхности имеет одного владельца и не требует синхронно поддерживать второй фрагмент документации. +```sh +cargo run --quiet --locked -p labcolors-evaluate-cli -- \ + crates/labcolors-evaluate-cli/examples/declared-point.json +``` -Транспортный CLI имеет отдельный узкий контракт: [crates/labcolors-transport-cli/README.md](crates/labcolors-transport-cli/README.md). Он только разбирает, сериализует и инспектирует certificate envelope и не владеет цветовой или certificate-семантикой. +Результат — JSON-отчёт с оценкой объявленной sRGB8-точки и LCEN-сертификатом. +[Руководство CLI](crates/labcolors-evaluate-cli/README.md) описывает вход, +ожидаемый результат и коды отказов. -## Архитектурные границы +## Границы библиотеки -- ProgramWire v1 — канонический бинарный формат объявления Program-графа. -- Невалидные декларации и неподдерживаемые состояния завершаются типизированным отказом без silent fallback. -- Семантика графа принадлежит Core; адаптеры не вводят собственные правила решения. -- DOM и CSS не принадлежат движку: потребитель материализует только допущенный результат. -- Научные, продуктовые и инвентаризационные доказательства не подменяют друг друга. +- **Приложение** владеет именами токенов, состояниями компонентов, дизайном и + отображением. Для ядра идентификаторы токенов непрозрачны. +- **[Core](crates/labcolors-core/README.md)** владеет цветовой математикой, + графом зависимостей и проверкой ограничений. ProgramWire v1 задаёт бинарный + формат графа; недопустимые входы возвращают явные ошибки. +- **WASM и CLI** передают запросы ядру. Отдельный + [labcolors-transport](crates/labcolors-transport-cli/README.md) разбирает, + сериализует и инспектирует LCEN-envelope без вычисления цвета. + +Проверка относится к объявленной модели и переданным наблюдениям. Она не +подтверждает фактическую отрисовку браузера или человеческое восприятие; +DOM и CSS остаются у приложения. ## Разработка -```bash -cargo test --workspace -npm --prefix packages/colors test +Проверка Rust workspace из корня репозитория: + +```sh +cargo test --workspace --locked ``` +Требования к инструментам и команды JS/WASM-пакета указаны в +[packages/colors/package.json](packages/colors/package.json). +[GitHub Actions](https://github.com/Labpics-Team/lab-colors/actions/workflows/ci.yml) +показывает результаты CI. + ## Зависимости -У `labcolors-core` в конфигурации по умолчанию ноль рантайм-зависимостей. Необязательная capability `ext09-extractor` имеет отдельные зависимости, объявленные в [манифесте Core](crates/labcolors-core/Cargo.toml). Проверка конфигурации по умолчанию: +У `labcolors-core` по умолчанию ноль рантайм-зависимостей. Необязательная +возможность `ext09-extractor` подключает зависимости из +[манифеста Core](crates/labcolors-core/Cargo.toml). Проверить конфигурацию по +умолчанию: -```bash +```sh cargo tree -p labcolors-core --edges=no-dev ``` -Текущее состояние CI следует читать в [GitHub Actions](https://github.com/Labpics-Team/lab-colors/actions/workflows/ci.yml), а не из статической фразы в документации. +## Лицензии -## Лицензия - -MIT - - -## Оценка в командной строке - -[labcolors-evaluate](crates/labcolors-evaluate-cli/README.md) принимает один -ограниченный запрос с каноническим ProgramWire и явной объявленной конвенцией, -исполняет существующее ядро и выдаёт отчёт с LCEN-сертификатом. Это моделируемая -точка, не подтверждение человеческого восприятия или состояния браузера. - -```sh -cargo run --quiet --locked -p labcolors-evaluate-cli -- crates/labcolors-evaluate-cli/examples/declared-point.json -``` +Исходный код — [MIT](LICENSE). Для встроенных данных действуют CC-BY-4.0 и +CC-BY-SA-4.0; источники и условия использования перечислены в +[NOTICE.md](crates/labcolors-core/NOTICE.md).