forgeplan scan
forgeplan scan обходит дерево проекта и составляет перечень исходных модулей. Он учитывает .gitignore, группирует файлы по крейтам / пакетам / директориям и записывает полученный список в рабочее пространство, чтобы coverage и drift могли сопоставлять его с разделами Affected Files в артефактах.
Представьте, что scan - это шаг «прочитай свой собственный репозиторий». Он не затрагивает артефакты напрямую - он просто делает граф модулей доступным для запросов другими командами контроля качества.
Когда использовать
Заголовок раздела «Когда использовать»- При первом запуске coverage/drift в рабочем пространстве -
scanдолжен предшествовать им. - После крупного рефакторинга, который добавляет/удаляет модули - повторно сканируйте, чтобы обновить перечень.
- В CI: повторно сканируйте перед любой проверкой coverage, чтобы просроченные списки модулей не приводили к ложным срабатываниям.
- Перед онбордингом нового члена команды - повторно сканируйте, чтобы
coverageпоказывал реальную картину.
Когда НЕ использовать
Заголовок раздела «Когда НЕ использовать»- Просто для чтения файлов - используйте вашу оболочку.
scanучитывает рабочее пространство, а не является универсальным списком файлов. - Если coverage/drift уже запускались, а ваш код не изменился -
scanидемпотентен, но расточителен.
Использование
Заголовок раздела «Использование»forgeplan scan [OPTIONS] --path <PATH> Путь к корню проекта (по умолчанию: текущая директория) -h, --help Вывести справку -V, --version Вывести версиюПримеры
Заголовок раздела «Примеры»Сканирование текущего проекта
Заголовок раздела «Сканирование текущего проекта»forgeplan scanВывод:
Scanning /Users/me/forgeplan... crates/forgeplan-core 14 modules crates/forgeplan-cli 8 modules crates/forgeplan-mcp 5 modules website/src 12 modules
39 modules indexed in .forgeplan/modules.jsonСканирование соседнего репозитория
Заголовок раздела «Сканирование соседнего репозитория»forgeplan scan --path ../other-projectПолезно при управлении несколькими проектами из одного рабочего пространства .forgeplan/ (продвинутый сценарий).
Полный конвейер coverage
Заголовок раздела «Полный конвейер coverage»forgeplan scan && forgeplan coverage && forgeplan driftКаноническая последовательность сверки кодовой базы: обновление модулей, вычисление coverage, проверка drift. Запускайте её ежемесячно или после крупных рефакторингов.
Интерпретация вывода
Заголовок раздела «Интерпретация вывода»| Строка | Значение |
|---|---|
| Строка для каждого крейта | сколько исходных модулей было найдено в каждой директории верхнего уровня |
| Всего | проиндексированных модулей - это становится знаменателем для coverage |
Сканирование не зависит от языка, но настроено для макетов Rust/TypeScript/Python. Пустые директории и модули, предназначенные только для тестирования, исключаются по умолчанию.
Как это вписывается в рабочий процесс
Заголовок раздела «Как это вписывается в рабочий процесс»scan → coverage (modules ↔ artifacts) → drift (artifacts ↔ git history) → remediatescan - это шаг 0 цикла сверки качества. Без него у coverage и drift нет графа модулей, с которым можно было бы работать.
См. также
Заголовок раздела «См. также»forgeplan coverage- покрытие решений по модулямforgeplan drift- решения, чей код был перемещёнforgeplan scan-import- перестроение индекса LanceDB из markdownforgeplan health- агрегирует coverage в дашборд- Обзор CLI