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-badgesGenerate 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