8.4 KB · updated 2026-07-31 · md

doctor.ru.md

docs/i18n/doctor.ru.md

tesserae doctor — проверки здоровья проекта

<!-- translations:start -->

English · 한국어 · 中文 · 日本語 · Русский · Español · Français · Deutsch

<!-- translations:end --> tesserae doctor проверяет рабочее пространство Tesserae от начала до конца — инициализацию, целостность графа, согласованность реестра, свежесть, блокировки, вход в LLM и гигиену диска — и печатает чек-лист. По умолчанию команда только читает; --fix применяет лишь те исправления, которые безопасно перезапускать и которые никогда не могут разрушить живое состояние.

tesserae doctor                 # check the current project
tesserae doctor --fix           # apply the safe repairs, then re-check
tesserae doctor --all --json    # every registered project, JSON report
tesserae doctor --project ~/src/other

Что проверяется

Двадцать проверок, сгруппированных по категориям:

ПроверкаКатегорияЧто проверяетДействие --fix
project_initializedcore.tesserae/ существует и выглядит как рабочее пространство Tesseraeтолько отчёт (предлагает tesserae init)
graph_parsecoregraph.json парсится и имеет ожидаемую формутолько отчёт (предлагает tesserae compile)
config_validcore.tesserae/config.json парсится и валиден относительно шаблона initтолько отчёт
vault_configuredcoreнастроенный путь vault разрешаетсяSAFE: создаёт разрешённый каталог vault, если он находится внутри проекта
registry_consistentregistryзаписи ~/.tesserae/registry.json указывают на реальные корни проектовSAFE: удаляет записи с исчезнувшим корнем, убирает устаревший ключ active; отсутствующий граф — только отчёт
graph_stalenessfreshnessgit-дельта с момента git_head, записанного при последней компиляциитолько отчёт (предлагает tesserae refresh — компиляции тяжелы)
site_search_indexfreshnessстатический сайт / search-index.json новее, чем graph.jsonSAFE: пересобирает сайт
backend_artifactsfreshnessартефакты RAG-Anything актуальнытолько отчёт (их обновление тяжёлое по LLM/сети)
session_chunksfreshnessпокрытие дневных чанков сессий не имеет пропусков в недавнем окнетолько отчёт (предлагает tesserae sessions chunk-backfill)
wiki_lintgraphдрейф графа ⇄ wiki + тривиально исправимые находки линтаSAFE: применяет тривиальные исправления линта (fix_trivial)
compile_lockprocessesудерживается ли живая блокировка компиляции и каким pidтолько отчёт — doctor никогда не убивает процесс и не снимает живую блокировку
daemon_pidprocessesdaemon.pid указывает на живой процесс движкаSAFE: удаляет pid-файл, если его владелец мёртв
llm_loginenvironmentнастроенный LLM-бэкенд действительно пригоден (CLI claude/codex залогинен или есть API-ключ)только отчёт (предлагает claude /login / codex login)
optional_depsenvironmentстатус опциональных зависимостей (memex, raganything)только отчёт (установки требуют сети)
embedding_backendenvironmentдоступен настоящий семантический бэкенд эмбеддинговтолько отчёт (предлагает pip install tesserae[semantic])
environmentenvironmentсводка полной диагностики окружениясекция только-отчёт
build_historyhygieneразмер и форма .build-historySAFE: обрезает её, всегда сохраняя самую свежую запись git_head (от неё зависит проверка staleness)
idempotencehygiene«растяжка» idempotence_suspect в output-snapshotтолько отчёт (это сигнал о баге, а не то, что нужно автопочинить)
orphan_worktreeshygieneустаревшие регистрации git worktreeSAFE: git worktree prune; удаление каталогов — только отчёт
hook_log_bloathygieneрост .tesserae/.session-*-hook.logSAFE: ротирует/усечает логи больше 10 МБ

Упавшая проверка сообщается как находка-ошибка — сам doctor никогда не бросает исключение.

Политика --fix

  • --fix запускает только проверки, помеченные выше как SAFE, а затем выполняет повторную диагностику, чтобы отчёт отражал состояние после исправлений.
  • Каждое исправление идемпотентно: двойной запуск doctor --fix оставляет второй прогон чистым.
  • Doctor никогда не убивает процесс и никогда не снимает живую блокировку компиляции — удерживаемая блокировка сообщается с pid владельца и не трогается.
  • Тяжёлые или сетевые операции (перекомпиляции, установка зависимостей, обновление бэкендов) никогда не включаются в --fix; doctor печатает команду, которую вы должны запустить сами.

Коды выхода

Та же конвенция, что у tesserae lint:

Код выходаЗначение
0здорово — нет находок выше OK
1есть предупреждения
2есть ошибки

Артефакты отчёта

Каждый запуск записывает обе формы отчёта в рабочее пространство:

.tesserae/doctor-report.md      # human checklist
.tesserae/doctor-report.json    # structured findings

--json дополнительно печатает JSON-отчёт в stdout вместо markdown-чек-листа. --all перебирает каждый проект из реестра (игнорируя --project) и отчитывается по каждому проекту.

MCP: doctor_report

MCP-сервер выставляет тот же отчёт как инструмент doctor_report (зеркально lint_report, включая его байтовый лимит на возвращаемое содержимое), чтобы агент мог проверить здоровье рабочего пространства посреди диалога без выхода в шелл. Ему нужен корень проекта — передайте graph_path/project или настройте граф по умолчанию.