Только для «ui»
5У этих правил заполнен task_types: на других вкладках резолвер их не отдаёт.
Контраст текста не ниже 4.5:1
org/contrast-floor@1.0.0Обычный текст и плейсхолдеры держат контраст не ниже 4.5:1 к своему фону, крупный и жирный — 3:1. Приглушённый серый на светлом фоне — самая частая причина нечитаемого интерфейса: если сомневаешься, двигай цвет в сторону основного текста. Статусные цвета проверяй в обеих темах: палитра, подобранная на тёмном фоне, на светлом обычно проваливается.
Из org@1.0.0Приоритет 85~97 ток.Задачи: ui, fix**/*.tsx, **/*.css
Клавиатура и фокус обязательны
org/keyboard-and-focus@1.0.0Всё, что делается мышью, делается с клавиатуры: Tab проходит по порядку чтения, Escape закрывает слой, после закрытия фокус возвращается на триггер. Кольцо фокуса видно и не убирается через outline: none. Действие, доступное только по наведению, считается недоступным.
Из org@1.0.0Приоритет 80~75 ток.Задачи: ui**/*.tsx
Все состояния, а не только счастливый путь
org/states-before-happy-path@1.0.0У интерактивного элемента есть hover, focus-visible, active, disabled; у экрана с данными — загрузка, пустота и ошибка. Пустое состояние объясняет, что делать дальше, а не пишет «ничего нет». Проверяй вёрстку на длинном и коротком тексте: перенос и обрезка входят в дизайн.
Из org@1.0.0Приоритет 75~79 ток.Задачи: ui**/*.tsx
Анимация объясняет состояние
org/motion-conveys-state@1.0.0Анимируй только переход состояния: появление, уход, отклик на нажатие. Вход и выход идут на ease-out за 150–250 мс, ease-in не используй — он делает интерфейс вязким. Анимируй transform и opacity, а не width, height и отступы. Действие, которое пользователь повторяет десятки раз за день, не анимируй вовсе.
Из org@1.0.0Приоритет 65~89 ток.Задачи: ui**/*.tsx, **/*.css
У анимации есть вариант без движения
org/reduced-motion@1.0.0Каждый блок с анимацией сопровождай @media (prefers-reduced-motion: reduce): переход схлопывается в мгновенный или в смену прозрачности. Движение — это украшение поверх работающего интерфейса, а не условие, без которого он не показывается.
Из org@1.0.0Приоритет 55~67 ток.Задачи: ui**/*.css, **/*.tsx
Действуют всегда
9Правила без привязки к типу задачи входят в набор на любой вкладке.
Ключ посетителя не покидает браузер
context-lab/key-stays-in-browser@1.0.0Ключ Anthropic посетителя хранится только в его браузере и уходит напрямую в api.anthropic.com. Сервер лаборатории не логирует промпты и ключи; iframe превью работает без allow-same-origin.
Из context-lab@1.0.0Приоритет 95~54 ток.apps/lab/**
Внешние действия только по просьбе
org/ask-before-publish@1.1.0Не делай push, публикацию пакетов, деплой, отправку сообщений и любые другие внешние действия без явной просьбы пользователя. Коммиты и переключение веток — тоже только по просьбе: локальный коммит допустим, когда пользователь попросил сохранить работу.
Из org@1.0.0Приоритет 95~71 ток.
Пропсы только через type checker
context-lab/type-checker-only@1.0.0Пропсы компонентов извлекай только через TypeScript Compiler API с настоящим ts.Program и type checker. Синтаксический разбор без проверки типов не используй: он ломается на пересечениях, обёртках React и наследовании.
Из context-lab@1.0.0Приоритет 90~62 ток.packages/docgen/**
Одна реализация инструментов
context-lab/one-tool-implementation@1.0.0Инструменты поиска и выдачи API живут в @context-lab/index-tools и обслуживают одновременно MCP-сервер и браузерный tool use. Не дублируй их логику в других пакетах.
Из context-lab@1.0.0Приоритет 80~47 ток.packages/**
Проверки делает компилятор
context-lab/compiler-checks@1.0.0Сгенерированный код проверяет @context-lab/checks на typescript и @typescript/vfs. Не заменяй проверку типов регулярными выражениями по коду; линтер только дополняет компилятор.
Из context-lab@1.0.0Приоритет 70~51 ток.packages/checks/**, packages/runner/**
Ответы в бюджете токенов
context-lab/token-budget@1.0.0Каждый ответ инструмента укладывается в бюджет токенов. При переполнении сообщай, какие разделы опущены и как их запросить точечно; молчаливая обрезка запрещена.
Из context-lab@1.0.0Приоритет 70~45 ток.packages/**
Логика приходит с тестами
context-lab/tests-required@1.0.0Новая логика в packages/* приходит с тестами на vitest. MCP-сервер проверяется сквозным тестом через настоящий stdio-клиент из SDK. Перед коммитом прогоняй npm run verify.
Из context-lab@1.0.0Приоритет 60~49 ток.packages/**
Пакеты экспортируют исходники
context-lab/source-exports@1.0.0Пакеты монорепо экспортируют исходники (exports: ./src/index.ts); сборка в dist нужна только публикуемым пакетам. Относительные импорты внутри пакетов пишутся с расширением .ts.
Из context-lab@1.0.0Приоритет 50~51 ток.packages/**/package.json
Долговременная память в Obsidian
org/memory-in-obsidian@1.0.0Если пользователь ссылается на прошлую работу, решение или «что мы делали раньше», сначала найди это в хранилище Obsidian через MCP: фильтруй по проекту и дате во frontmatter и читай только нужные заметки. Заметки о сессиях не пиши сам: их экспортирует планировщик.
Из org@1.0.0Приоритет 40~74 ток.