docs: make project documentation self-contained

This commit is contained in:
2026-09-12 13:09:37 +03:00
parent aa9afc15e4
commit 3a99af1a6e
36 changed files with 1006 additions and 703 deletions
+28 -48
View File
@@ -1,62 +1,42 @@
# Context discipline
# Контекст знаний о системе
Цель — получить правила, которые меняют текущее решение, и не читать остальные
заранее. Это процедура прямой работы по задаче, без обязательных SDD artifacts,
ролей, approval fingerprints или подсчёта документов как delivery gate.
Цель навигации — дать читателю знания, необходимые для конкретного вопроса,
без предварительного чтения всей документации. Самостоятельное объяснение
связывает понятия, сценарии и ограничения, а не воспроизводит устройство кода.
## Routing context
1. Определи требуемое поведение, тип решения и affected repos до supporting reads.
2. Прочитай root/local AGENTS, затем CONVENTIONS и SOURCES affected code repo.
3. Объедини сработавшие semantic, path и boundary triggers. Путь — сигнал ответственности, а не повод загружать всё по расширению `.tsx`/`.ts`.
4. Прочитай выбранные conventions или явно указанные sections до зависимого решения. При domain/API/security вопросе открой точный source через [docs index](../AI_INDEX.md).
5. Проследи ближайший существующий owner и подходящие код/тесты. Его поведение не заменяет canonical fact.
6. Повтори routing при новой потребности и по финальным staged, unstaged и новым файлам. Содержимое работы важнее первоначального названия задачи.
Первый проход работает без diff. Auth + refresh, например, активирует API,
security и testing вместе. Отображение query state без изменения запросов не
добавляет transport rules. Docs-only опечатка не требует frontend/backend conventions.
Обычно хватает нескольких тем; это наблюдение, не лимит. Обязательный source
нельзя пропускать ради числа файлов или token budget.
Новая граница внутри задачи требует дочитать правила до работы. Расширение
самой задачи сначала сообщи пользователю; уже данное разрешение не запрашивай
повторно. Чужой concurrent diff учитывай при разграничении ownership.
[Тематический индекс](../AI_INDEX.md) направляет к нужному предмету:
аутентификация связана с безопасностью и сессиями, денежный показатель —
с его происхождением и валютой, ошибка интерфейса — с восстановлением данных.
Вопрос о внешнем виде не требует автоматически изучать хранение данных.
При обнаружении новой существенной границы расширяется и нужный контекст.
## Источники и конфликты
Прямое указание пользователя определяет задачу. Текущий executable HTTP contract
генерируется backend; docs описывает проектные факты/решения; conventions задают
выбор реализации; code показывает существующие аналоги. Generic framework advice
используется после проектных источников. Research содержит рекомендации, которые
нужно сверить с actual code/config, а не автоматически превращать в новый контракт.
Публичный HTTP-контракт описывается OpenAPI backend; документация объясняет
систему, ADR сохраняют причины решений, исследования предлагают варианты.
Существующее поведение не отменяет согласованное требование, а рекомендация
из исследования не становится принятым решением автоматически.
Если задача намеренно меняет контракт, обновляй его source и зависимые материалы
согласованно. Missing input, противоречие security/data правил или неоднозначный
контракт блокируют только зависимое решение до установления фактов/уточнения.
История чата, случайный аналог и предполагаемый путь не заменяют источник.
При расхождении возможны устаревшее объяснение, дефект реализации или
незавершённое изменение. Неустановленный смысл, особенно в безопасности,
данных и публичном контракте, явно отмечается для ручного решения.
Карта ответственности за знания — [ведение документации](documentation.md).
## Recovery и handoff
Для продолжения достаточно текущей задачи, сделанных изменений, remaining work,
точных checks/results и blockers. Не создавай параллельную копию требований,
Design, state registry или обязательный handoff-файл.
В новом контексте восстанови необходимые sources; в том же переиспользуй уже
прочитанные неизменившиеся inputs. Supporting reads добавляй по возникшему вопросу.
Git status/diff показывают staged и unstaged; новые файлы учитывай отдельно.
Relevant ignored/workspace-owned inputs (например `.env`, root AGENTS) не
теряются только потому, что Git их не показывает. Секреты в evidence не печатай.
Продолжение работы опирается на ожидаемый результат, выполненные изменения,
оставшиеся вопросы, результаты проверок и ограничения. Дублирование требований
в нескольких независимых пересказах создаёт риск расхождения. Исторические
проверки сохраняют своё значение только для того состояния системы, в котором
они выполнялись; секреты не являются допустимым содержимым свидетельств.
## Проверка эффективности
Используй [набор routing cases](agent-context-evals.md) для настройки новых правил.
Проверяй activating case, safe exception и unrelated counterexample по реальным
инструкциям. Source links и gates дополняют эту проверку, но не доказывают first-pass quality.
Сравнивай startup context и реально выбранные sections, фиксируя способ измерения.
Не объявляй меньшее число файлов или зелёный application test улучшением качества
агента. Для first-pass acceptance нужны одинаковые реальные задачи/модель/tools,
наблюдённые ошибки ownership/contract/security и число исправлений.
Добавляй convention по повторяющейся decision error; уточняй trigger при missed
source; deterministic regression отдавай существующему test/linter, если он подходит.
[Проверочные вопросы](agent-context-evals.md) показывают, можно ли получить
правильную модель системы и отличить близкие понятия. Качество оценивается по
верности ответа, найденным ограничениям и необходимости дополнительных уточнений.
Число документов, их краткость или успешная проверка Markdown сами по себе
не доказывают полезность знания. Сравнение результатов требует одинаковых
вопросов и сопоставимых условий.