---
name: kodoceh-web-dead-tokens-json
description: В kodoceh-web packages/tokens/tokens.json НЕ участвует в сборке — Tailwind читает tokens.cjs; правка json бесполезна и создаёт ложную уверенность
metadata: 
  node_type: memory
  type: project
  originSessionId: b11e39bd-4f6f-47c9-ba7b-680ccf041a5b
  modified: 2026-08-06T08:48:11.838Z
---

`~/Разработки/kodoceh-web/packages/tokens/` содержал **два** файла токенов, и они разъехались:
- **`tokens.cjs` — живой**: `tailwind-preset.cjs` делает `require("./tokens.cjs")`. Здесь mint `#2E8C66`, emerald `#2F8E6B`, шрифт Onest.
- **`tokens.json` — мёртвый**: не импортировался ниоткуда. Здесь mint `#5FD6A6`, emerald `#26935F`, Manrope — то есть **задокументированный фирстиль ([[cebers_dev_brand]]) жил только в мёртвом файле, на проде другие цвета**.

**УСТРАНЕНО 2026-08-06:** `tokens.json` удалён вместе с записью в `exports` (package.json), добавлен `tokens.d.ts`; `ACCENT = "#2E8C66"` вынесен в `import { colors } from "@cbr/tokens"` в 9 файлах (studio `page/cabinet/privacy/_orders_ui`, ui `Header/InstallPWA/EnablePush/VoiceInput/Onboarding/Feedback`), цвета карточек `cases` тоже берутся из токенов. **Расхождение фирстиля с продом осталось и не правилось** — это решение владельца, а не баг.

Разделение ролей после фикса (см. Decisions D10 в Obsidian): тема-**не**зависимые константы — `tokens.cjs`; тема-зависимые оттенки (`--brand-ink`, `--case-*-ink`) — `globals.css`. Дублировать значения между ними нельзя.

**Why:** 2026-08-06 при чистке ренейма Гаечкин→Механт я переименовал `accentGaechkin`→`accentMehant` в `tokens.json`, проверил «класс нигде не используется» и отчитался как о выполненном. Правка ушла в мёртвый файл — в живом `tokens.cjs` осталось старое имя и *другое значение* (`#D8902E` vs `#F2A33C`). Поймано только внешним аудитом (Impeccable critique), не мной.

**How to apply:** правя любой конфиг/токены — сначала доказать, что файл реально читается (`grep -rn "require\|import" | grep <файл>`), и только потом менять. Наличие файла с правильным именем ≠ его участие в сборке. Родственно [[deployed_is_not_running]]: «файл поправлен» ≠ «поведение изменилось».
