Реестр правил

Правила лежат в репозитории как Markdown с frontmatter и собираются в наборы. Набор наследует правила родителей, правило с тем же идентификатором переопределяет родительское, extends уточняет его. Резолвер отдаёт эффективный набор под конкретный тип задачи: на вкладке меняется не оформление, а сам состав правил.

Тип задачи

Цепочка наследованияorg → context-lab
Правил в наборе11
Из них под «fix»2
Стоимость набора~662 ток.

Только для «fix»

2

У этих правил заполнен 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/reproduce-before-fix@1.0.0

Прежде чем править баг, воспроизведи его: тест, который падает на текущем коде, или точная последовательность шагов в отчёте. Правка без воспроизведения лечит симптом. Тест на найденный баг остаётся в наборе навсегда.

Из org@1.0.0Приоритет 85~61 ток.Задачи: fix

Действуют всегда

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 ток.

Куда это компилируется

Один источник, четыре цели. CI падает, если файлы разошлись с реестром или если от удалённого правила остался файл.

npm run rules:resolve -- context-lab --task fix