Перейти к основному содержимому

Эксплуатация dogfood-проверок

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

Руководства

Dogfood — проверка CodeGraph средствами самого CodeGraph. Разработчик или оператор использует граф проекта и сохранённые результаты ревью, чтобы проверить свежесть данных, оценить изменения коммита и выбрать следующий шаг обслуживания. Начните со статуса графа, затем запустите анализ или сформируйте отчёт. Для подготовки графа используйте импорт проекта, для проверки изменения — руководство по ревью.

Выполняйте команды в PowerShell из корня исходного репозитория CodeGraph. Подготовьте установленное Python-окружение и настроенный GoCPG. Замените обозначения в примерах своими значениями:

  • CPG_PATH — путь графа этого checkout. Анализ использует текущий каталог как корень Git-репозитория.
  • REVIEW_DIR — каталог сохранённых результатов ревью; по умолчанию data/reviews.
  • BASE_REF — существующая Git-ревизия для сравнения.
  • DOC_PATH — проверяемый документ или каталог.

Начните со статуса

Перед анализом или восстановлением проверьте состояние:

python -m src.cli dogfood status --db 'CPG_PATH' --review-dir 'REVIEW_DIR' --json

Передайте --db 'CPG_PATH' явно: команда проверит выбранный вами граф. Используйте один и тот же путь для статуса, анализа и отчёта.

Проверьте как минимум workflow_state, свежесть CPG, доступность чтения и recommended_next_action. Доступный для чтения граф может оставаться устаревшим. Свежесть данных определяйте по полям отчёта и recommended_next_action.

Проанализируйте диапазон коммитов

По умолчанию базовая ревизия — HEAD~1:

python -m src.cli dogfood analyze --db 'CPG_PATH' --base-ref 'BASE_REF'

Укажите точную точку сравнения, нужную для ревью, например удалённую базовую ветку. В отчёте могут быть изменённые методы, сложность, область влияния изменения, влияние на интерфейсы и другие доступные сигналы CPG. Для каждой метрики учитывайте наличие данных в отчёте: пропуск означает, что для её расчёта нужны дополнительные данные.

Сформируйте отчёт о качестве

python -m src.cli dogfood report --db 'CPG_PATH' --format markdown
python -m src.cli dogfood report --db 'CPG_PATH' --format json

Отчёт использует явно выбранный граф и анализирует изменения текущего checkout относительно HEAD~1. Он описывает изменения последнего коммита. Для полного аудита проекта используйте руководство по аудиту CPG. Чтобы сохранить отчёт, перенаправьте стандартный вывод в свой файл и сохраните рядом Git-ревизию и состояние свежести графа.

Проверьте численные утверждения документации

python -m src.cli dogfood validate-claims --db 'CPG_PATH' --path 'DOC_PATH'

По умолчанию проверяется текущий каталог. Команда находит численные утверждения по поддерживаемым шаблонам и сопоставляет их с данными CPG. Так можно обнаружить расхождения после изменения проекта. При ошибках проверки утверждений код возврата равен 1.

Посмотрите динамику

python -m src.cli dogfood trend --db 'CPG_PATH' --commits 20

Окно по умолчанию — десять коммитов. Сравнивайте запуски только при одинаковой области проекта, правилах построения графа и методике измерения.

Проверьте покрытие интерфейсов историй

python -m src.cli dogfood validate-stories --db 'CPG_PATH' --stories 'STORY_ID' --path 'STORIES_PATH.md' --output 'REPORT_PATH.md'

Замените STORY_ID номером истории, STORIES_PATH.md — совместимым реестром историй, REPORT_PATH.md — местом сохранения отчёта. Без --stories команда выбирает истории Done по текущей реализации. Параметр --go-db 'GO_CPG_PATH' добавляет поддерживаемую межрепозиторную область Go. Такой отчёт является доказательством трассируемости только в заявленных границах и не закрывает задачу или историю. Формат выходного файла — Markdown с метаданными, а не JSON. Команда также может спроецировать срочные находки; согласуйте эту запись перед запуском. Код 0 означает формирование отчёта, а не отсутствие непокрытых интерфейсов: прочитайте результат каждой истории.

Проверьте использование конфигурации

python -m src.cli dogfood config-check --format json --level all --fix-suggestions

Если значения по умолчанию не подходят репозиторию, используйте --config, --schema, --source и --output. Предложения исправлений носят рекомендательный характер: каждое изменение нужно сверять с фактическим контрактом конфигурации.

В JSON поле orphans содержит найденные параметры, их расположение, тип и серьёзность проблемы. Поле summary группирует находки по типам и уровням: errors, warnings и info. Сначала разберите ошибки, затем предупреждения; используйте путь и номер строки каждой находки, чтобы проверить параметр в исходниках.

Код возврата зависит от выбранного уровня --level: 2 при наличии ошибок, 1 при предупреждениях и 0, когда нет ошибок и предупреждений. Информационные находки остаются в отчёте при коде 0. Параметр --output сохраняет JSON-отчёт в указанный файл; сообщение о сохранении команда выводит отдельно в stderr.

Выполните обслуживание базы графа

python -m src.cli dogfood maintain-db --db 'CPG_PATH' --json

Команда выполняет CHECKPOINT или VACUUM, только когда обслуживание требуется. Параметр --force применяйте осознанно. Не запускайте обслуживание одновременно с импортом или другим процессом записи. Для обслуживания нужен доступный GoCPG с поддержкой maintenance RPC. Проверяйте ok и message: неудачное обслуживание возвращает код 1.

Продолжите управляемый процесс

python -m src.cli dogfood continue --db 'CPG_PATH' --review-dir 'REVIEW_DIR' --json

continue читает текущее состояние и может обновить CPG, выполнить ревью, сохранить его результат и спроецировать срочные находки. Это команда с записью данных; запускайте её после согласования области и владельца графа. JSON сообщает operation и status_after; возможны update, review, poll и no-op. После ожидания в ответе может появиться follow_up с автоматически выполненным обновлением или ревью. Если продолжение невозможно, вернитесь к status и следуйте recommended_next_action; не обходите условие владельца, свежести или безопасности записи.

Сводка команд

Сводка команд
Задача Команда
Текущее состояние python -m src.cli dogfood status --db 'CPG_PATH'
Анализ коммита python -m src.cli dogfood analyze --db 'CPG_PATH'
Отчёт о качестве python -m src.cli dogfood report --db 'CPG_PATH'
Утверждения документации python -m src.cli dogfood validate-claims --db 'CPG_PATH'
Динамика качества python -m src.cli dogfood trend --db 'CPG_PATH'
Интерфейсы историй python -m src.cli dogfood validate-stories --db 'CPG_PATH'
Использование конфигурации python -m src.cli dogfood config-check
Обслуживание базы python -m src.cli dogfood maintain-db --db 'CPG_PATH'
Следующий управляемый шаг python -m src.cli dogfood continue --db 'CPG_PATH'

story-validate остаётся зарегистрированным псевдонимом validate-stories, но в новых сценариях следует использовать каноническое имя из таблицы.

Последовательность восстановления

  1. Выполните python -m src.cli dogfood status --db 'CPG_PATH' --json.
  2. Убедитесь, что явно выбран нужный CPG.
  3. Если граф устарел или недоступен, используйте поддерживаемый процесс импорта или обновления проекта вне группы команд dogfood.
  4. Повторите status и проверьте изменившиеся поля свежести.
  5. Запустите нужный анализ, проверку утверждений или отчёт.
  6. Сохраните результат вместе с ревизиями Git и CPG, чтобы сравнивать последующие проверки.

Не удаляйте CPG первым действием при восстановлении. Блокировка базы может означать работу другого процесса записи: сначала определите владельца и согласуйте обслуживание.

Связанные руководства

Командная строка — установка CLI и параметры команд. Импорт проекта — построение и обновление графа. Ревью кода — выбор изменения и разбор находок. Диагностика — проверка конфигурации и сервисов.