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, но
в новых сценариях следует использовать каноническое имя из таблицы.
Последовательность восстановления
- Выполните
python -m src.cli dogfood status --db 'CPG_PATH' --json. - Убедитесь, что явно выбран нужный CPG.
- Если граф устарел или недоступен, используйте поддерживаемый процесс импорта или обновления проекта вне группы команд dogfood.
- Повторите status и проверьте изменившиеся поля свежести.
- Запустите нужный анализ, проверку утверждений или отчёт.
- Сохраните результат вместе с ревизиями Git и CPG, чтобы сравнивать последующие проверки.
Не удаляйте CPG первым действием при восстановлении. Блокировка базы может означать работу другого процесса записи: сначала определите владельца и согласуйте обслуживание.
Связанные руководства
Командная строка — установка CLI и параметры команд. Импорт проекта — построение и обновление графа. Ревью кода — выбор изменения и разбор находок. Диагностика — проверка конфигурации и сервисов.