A project to archive Scouts BSA merit badge requirements and Cub Scout adventures.
Goals:
- Have machine-readable versions of merit badges and Cub Scout adventures with their requirements
- Ability to review the history of requirements as they evolve via git commits
- A simple static site of all merit badges and adventures deployed to GitHub pages
Create the merit badge archive:
make archive-merit-badgesValidate the merit badge archive:
make validate-merit-badgesValidation warns about identical sibling leaf instructions, including exports
that still contain inline resource titles. These warnings request source review;
they do not change or remove official wording. The duplicate-content source
evidence records the Athletics
5.option-g.2.e/.f and Insect Study 9.a/.b issues verified on the official
pages on October 21, 2026. Both remain upstream-source issues pending an official
correction. Complete requirement HTML fixtures and release text/hierarchy
snapshots accompany the evidence for offline regression testing.
Validation also checks repeated action leaves across mandatory instruction groups
within an explicit “Do ALL of the following” option. It does not compare separate
alternatives. Golf source evidence
records the official page's repeated history instruction at 2.option-b.2 and
2.option-b.3.a (reported downstream as .3.1). The linked 2026 pamphlet refers
readers to the web requirements; it provides no replacement wording. Both entries,
their IDs, links, response flags, and hierarchy remain preserved. The complete
release141 semantic tree is an offline regression fixture.
The release141 Insect Study recheck confirms that both distinct source elements
belong to requirement 9, Careers and Hobbies, and that the beekeeping resource
belongs to 9.b. The linked 2026 pamphlet directs readers back to the live page
for current requirements; it supplies no alternate hobby instruction. The
provenance record includes response hashes and heading/parent associations.
Regression coverage preserves all 33 requirement nodes and 39 structured
requirement resources, including the separate resources on both repeated choices.
An official clarification is still required before changing 9.b; the duplicate
warning is the intended diagnostic, not an extraction failure.
Generate the merit badge index file:
make index-merit-badgesGenerate merit badge change report:
make report-merit-badgesCreate the Cub Scout adventures archive:
make archive-cub-adventuresClean only Cub Scout adventures output:
make clean-cub-adventuresValidate the Cub Scout adventures archive:
make validate-cub-adventuresGenerate the Cub Scout adventures index file:
make index-cub-adventuresGenerate Cub Scout adventures change report:
make report-cub-adventuresRun the entire merit badge archiving process (archive, index, validate, and report):
make allRun both merit badges and Cub Scout adventures archiving:
make all-with-cub-adventuresRun code quality checks:
make checkThe project generates two types of files for each merit badge and Cub Scout adventure:
- JSON files: Structured data including name, overview, requirements, activities, etc.
- Markdown files: Human-readable format of the requirements
- Stored in
build/merit-badges/ - Include Eagle-required status, PDF links, and shop URLs
- Images stored in
build/merit-badges/images/
- Organized by rank in
build/cub-scout-adventures/{rank}/ - Include adventure type (Required/Elective), category, and detailed activities
- Activities include location, energy level, supply requirements, and prep time
- Images stored in
build/cub-scout-adventures/{rank}/images/
Changes to requirements are tracked and preserved using Git's version control:
- Individual Files: Each merit badge and adventure is stored as separate JSON and Markdown files
- Git History: Changes are committed only when requirements actually differ
- Detailed Commit Messages: Commit messages include which items were added, removed, or modified
- Web Interface: A GitHub Pages site provides access to current requirements with links to Git history
The project automatically deploys a simple website to GitHub Pages that includes:
- An index of all available merit badges and Cub Scout adventures
- Individual pages for each item with full requirements
- Links to original scouting.org pages and resources
- Images for each badge and adventure
The project includes GitHub Actions workflows that:
- Run archive process automatically on a schedule
- Generate structured comparison reports between archive runs
- Commit changes to the repository with detailed commit messages
- Deploy an updated website to GitHub Pages
You can also manually trigger these workflows from the GitHub Actions tab.
In case of failures:
- Use the workflow_dispatch trigger to manually run the archiver
- Check the GitHub Actions logs for detailed error information
- Run the validation steps to identify specific issues:
make validate-merit-badges make validate-cub-adventures
- Run the archivers locally to debug issues:
make archive-merit-badges make archive-cub-adventures