Skip to content

Collapse default skill/qual-level titles in the release data - #60

Merged
saturnflyer merged 1 commit into
mainfrom
feature/skill-level-title-defaults
Jul 16, 2026
Merged

Collapse default skill/qual-level titles in the release data#60
saturnflyer merged 1 commit into
mainfrom
feature/skill-level-title-defaults

Conversation

@saturnflyer

Copy link
Copy Markdown
Member

Summary

  • Enlisted skill_levels and officer qual_levels repeated a :title for every ladder rung of every specialty, even though it's almost always a fixed function of the digit (enlisted 1/3/5/7/9 = Helper/Apprentice/Journeyman/Craftsman/Superintendent; officer 3/4 = Qualified/Staff). :code stays as extracted (it's the extractor's verified, verbatim-from-PDF ground truth).
  • Only elide a level's title when one value covers the vast majority (>=90%): all enlisted levels qualify, but officer levels 1-2 reflect a real flying vs. non-flying doctrinal split with no dominant default, so those stay fully explicit.
  • Enlisted already had a fallback for an omitted title, but its level-9 default was wrong ("Senior Enlisted Leader" instead of the actual majority, "Superintendent" — 84/88 real entries). Officer had no fallback at all and needed one added, or an elided title would have resolved to nil.
  • The extractor (bin/extract_afsc_from_pdf.rb) now strips a rung's :title when it matches the runtime default, reusing the same SKILL_LEVELS/QUAL_LEVELS constants the lookup fallback uses (single source of truth, no duplicated map).
  • Regenerated both 2025-10-31 release YAMLs from the source PDFs; the diff is title lines disappearing only where they match the new defaults — no :code/:name/:shredouts changes.

Every ladder rung repeated its title even though it's almost always a
fixed function of the digit (enlisted 1/3/5/7/9 = Helper/Apprentice/
Journeyman/Craftsman/Superintendent; officer 3/4 = Qualified/Staff).
Only elide where one value covers the vast majority of specialties
(>=90%): all enlisted levels qualify, but officer levels 1-2 reflect a
real flying vs. non-flying split with no dominant default, so they stay
explicit. The extractor now strips a rung's :title when it matches the
runtime default; Enlisted already had a fallback for the omitted title
but its level-9 default was wrong ("Senior Enlisted Leader" instead of
the actual majority, "Superintendent"); Officer had no fallback at all
and needed one added to avoid resolving to nil.
@saturnflyer
saturnflyer requested a review from a team as a code owner July 16, 2026 17:30
@saturnflyer
saturnflyer merged commit 09396af into main Jul 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant