The corpus is in corpus.yml. It uses current upstream refs from local clones under ~/code.
RBENV_VERSION=4.0.5 rbenv exec ruby collect.rb
RBENV_VERSION=4.0.5 rbenv exec ruby analyze.rb
RBENV_VERSION=4.0.5 rbenv exec ruby scan_sources.rb
RBENV_VERSION=4.0.5 rbenv exec ruby classify.rb
RBENV_VERSION=4.0.5 rbenv exec ruby -Itest test/reuse_analysis_test.rb
RBENV_VERSION=4.0.5 rbenv exec ruby -Itest test/source_scanner_test.rb
RBENV_VERSION=4.0.5 rbenv exec ruby -Itest test/resource_classifier_test.rbcollect.rb saves the unmodified output of git-pkgs list --format json under data/raw/. data/snapshots.json records the exact commit for each repository. analyze.rb compares package identities from manifest and lockfile records; it excludes test/fixture/bench/docs paths, requirements[-_.]dev-style filenames, and any names listed under a manager's dev_only_dependencies in corpus.yml. Its cross_manager_reuse output records where one manager's runtime dependencies match another manager's internal_packages patterns in the same ecosystem, i.e. where one tool depends on another's workspace crates or packages. scan_sources.rb combines direct declarations with vendored paths, and extracts native library candidates from CMake, Meson, and Autoconf declarations, reading each repository at the commit recorded in snapshots.json. classify.rb applies the reviewed categories in classifications.yml. Its output separates package-management code, packaging plumbing, and general-purpose libraries. data/native-requiredness.json is hand-collected: for each shared native library it records whether the CMake/Meson declaration is REQUIRED or optional at the pinned commit.