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

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/ (продвинутый сценарий).

Окно терминала
forgeplan scan && forgeplan coverage && forgeplan drift

Каноническая последовательность сверки кодовой базы: обновление модулей, вычисление coverage, проверка drift. Запускайте её ежемесячно или после крупных рефакторингов.

СтрокаЗначение
Строка для каждого крейтасколько исходных модулей было найдено в каждой директории верхнего уровня
Всегопроиндексированных модулей - это становится знаменателем для coverage

Сканирование не зависит от языка, но настроено для макетов Rust/TypeScript/Python. Пустые директории и модули, предназначенные только для тестирования, исключаются по умолчанию.

scan → coverage (modules ↔ artifacts) → drift (artifacts ↔ git history) → remediate

scan - это шаг 0 цикла сверки качества. Без него у coverage и drift нет графа модулей, с которым можно было бы работать.