gov_codes 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.simplecov +13 -1
  3. data/.tool-versions +1 -1
  4. data/CHANGELOG.md +31 -26
  5. data/README.md +180 -25
  6. data/Rakefile +7 -2
  7. data/checksums/gov_codes-0.1.1.gem.sha512 +1 -0
  8. data/lib/gov_codes/afsc/enlisted.rb +111 -80
  9. data/lib/gov_codes/afsc/officer.rb +121 -65
  10. data/lib/gov_codes/afsc/releases/dafecd/2025-10-31/enlisted.yml +2726 -0
  11. data/lib/gov_codes/afsc/releases/dafecd/2025-10-31/ri.yml +369 -0
  12. data/lib/gov_codes/afsc/releases/dafocd/2025-10-31/officer.yml +2393 -0
  13. data/lib/gov_codes/afsc/releases/dafocd/2025-10-31/ri.yml +193 -0
  14. data/lib/gov_codes/afsc/releases.rb +219 -0
  15. data/lib/gov_codes/afsc/releases.yml +11 -0
  16. data/lib/gov_codes/afsc/ri.rb +161 -126
  17. data/lib/gov_codes/afsc.rb +29 -8
  18. data/lib/gov_codes/dafecd/index_builder.rb +416 -0
  19. data/lib/gov_codes/dafecd/patterns.rb +50 -0
  20. data/lib/gov_codes/dafecd/publication.rb +252 -0
  21. data/lib/gov_codes/dafecd/record_splitter.rb +77 -0
  22. data/lib/gov_codes/dafecd/ri_sdi/change_date.rb +63 -0
  23. data/lib/gov_codes/dafecd/ri_sdi/config.rb +137 -0
  24. data/lib/gov_codes/dafecd/ri_sdi/index_builder.rb +265 -0
  25. data/lib/gov_codes/dafecd/ri_sdi/ri_list_parser.rb +125 -0
  26. data/lib/gov_codes/dafecd/ri_sdi/sdi_card_parser.rb +151 -0
  27. data/lib/gov_codes/dafecd/ri_sdi/sdi_section_splitter.rb +77 -0
  28. data/lib/gov_codes/dafecd/ri_sdi/section_slicer.rb +45 -0
  29. data/lib/gov_codes/dafecd/ri_sdi/title.rb +76 -0
  30. data/lib/gov_codes/dafecd/ri_sdi/title_overrides/dafecd.yml +124 -0
  31. data/lib/gov_codes/dafecd/ri_sdi/title_overrides/dafocd.yml +78 -0
  32. data/lib/gov_codes/dafecd/shredout_acronyms.rb +47 -0
  33. data/lib/gov_codes/dafecd/shredout_degluer.rb +73 -0
  34. data/lib/gov_codes/dafecd/shredout_overrides/dafecd.yml +27 -0
  35. data/lib/gov_codes/dafecd/shredout_overrides/dafocd.yml +27 -0
  36. data/lib/gov_codes/dafecd/shredout_parser.rb +75 -0
  37. data/lib/gov_codes/dafecd/specialty_parser.rb +200 -0
  38. data/lib/gov_codes/dafecd/text.rb +48 -0
  39. data/lib/gov_codes/dafecd/title_degluer.rb +67 -0
  40. data/lib/gov_codes/dafecd/title_overrides/dafocd.yml +141 -0
  41. data/lib/gov_codes/dafecd/title_overrides.yml +142 -0
  42. data/lib/gov_codes/data_loader.rb +19 -0
  43. data/lib/gov_codes/version.rb +1 -1
  44. metadata +34 -6
  45. data/lib/gov_codes/afsc/enlisted.yml +0 -532
  46. data/lib/gov_codes/afsc/officer.yml +0 -1072
  47. data/lib/gov_codes/afsc/ri.yml +0 -237
@@ -1,237 +0,0 @@
1
- # Reporting Identifiers (RI) and Special Duty Identifiers (SDI)
2
- # Source: https://en.wikipedia.org/wiki/Air_Force_Specialty_Code
3
- # Wikipedia Revision: 1318430021
4
- # Extracted: 2025-11-17
5
- #
6
- # IMPORTANT: This file contains ONLY codes explicitly listed on Wikipedia.
7
- # No predictions, no assumptions, no hallucinations.
8
- # See .agent-os/product/decisions.md (DEC-003) for anti-hallucination policy.
9
- #
10
- # Format: Career field (digit + letter) + identifier (3 digits) + optional suffix
11
- # Examples: 8A400, 9Z200, 8G000B, 8R300A
12
-
13
- :8A:
14
- :name: Enlisted aide and protocol
15
- :subcategories:
16
- :200: Enlisted aide
17
- :300: Protocol
18
- :400: Talent management consultant
19
- :8B:
20
- :name: Military training
21
- :subcategories:
22
- :000: Military training instructor
23
- :100: Military Training leader
24
- :200: Academy military training NCO
25
- :300: Officer accessions instructor
26
- :8C:
27
- :name: Military and family readiness
28
- :subcategories:
29
- :000: Military and family readiness non-commissioned officer (RNCO)
30
- :8D:
31
- :name: Language and culture
32
- :subcategories:
33
- :100: Language & culture advisor
34
- :8F:
35
- :name: First sergeant
36
- :subcategories:
37
- :000: First sergeant
38
- :8G:
39
- :name: Honor guard
40
- :subcategories:
41
- :000:
42
- :name: Premier honor guard
43
- :subcategories:
44
- :B: Pallbearer
45
- :C: Color guard
46
- :D: Drill team
47
- :100: Base honor guard program manager
48
- :8H:
49
- :name: Airmen dorm leader
50
- :subcategories:
51
- :000: Airmen dorm leader
52
- :8I:
53
- :name: Inspector general
54
- :subcategories:
55
- :000: Superintendent, inspector general
56
- :100: Inspections coordinator
57
- :200: Complaints & resolution coordinator
58
- :8K:
59
- :name: Software development
60
- :subcategories:
61
- :000: Software development specialist
62
- :8L:
63
- :name: Air advisor
64
- :subcategories:
65
- :100: Air advisor basic
66
- :200: Air advisor basic, team sergeant
67
- :300: Air advisor basic, team leader
68
- :400: Air advisor advanced
69
- :500: Air advisor advanced, team sergeant
70
- :600: Air advisor advanced, team leader
71
- :700: Combat aviation advisor
72
- :800: Combat aviation advisor team sergeant
73
- :900: Combat aviation advisor team leader
74
- :8P:
75
- :name: Courier and defense attaché
76
- :subcategories:
77
- :000: Courier
78
- :100: Defense attaché
79
- :8R:
80
- :name: Recruiting
81
- :subcategories:
82
- :000: Enlisted accessions recruiter
83
- :200: Second-tier recruiter
84
- :300:
85
- :name: Third-tier recruiter
86
- :subcategories:
87
- :A: Flight chief
88
- :B: Graduated, flight chief
89
- :C: Production superintendent
90
- :E: Senior enlisted leader
91
- :8S:
92
- :name: Missile facility
93
- :subcategories:
94
- :000: Missile facility manager
95
- :200: Combat crew communications
96
- :8T:
97
- :name: Professional military education
98
- :subcategories:
99
- :000: Professional military education instructor
100
- :100: Enlisted professional military education instructional system designer
101
- :200: Development advisor
102
- :8U:
103
- :name: Unit deployment
104
- :subcategories:
105
- :000: Unit deployment manager
106
- :100: Weapons of mass destruction civil support team (WMD-CST)
107
- :8W:
108
- :name: Weapons safety
109
- :subcategories:
110
- :000: Weapons safety manager – wing level
111
- :8Y:
112
- :name: Pathfinder
113
- :subcategories:
114
- :000: Pathfinder
115
- :9A:
116
- :name: Disqualified/awaiting separation
117
- :subcategories:
118
- :000: Enlisted airman/guardian – disqualified for reasons beyond control
119
- :100: Enlisted airman/guardian – disqualified for reasons within control
120
- :200: Enlisted airman/guardian awaiting discharge, separation, or retirement for reasons within their control
121
- :300: Enlisted airman/guardian awaiting discharge, separation, or retirement for reasons beyond their control
122
- :400: Disqualified airman/guardian, return to duty program
123
- :500: Enlisted airman/guardian temporarily ineligible for retraining – disqualified for reasons beyond control
124
- :9B:
125
- :name: Senior enlisted advisor
126
- :subcategories:
127
- :000: Senior enlisted advisor to the chairman of the joint chiefs of staff
128
- :100: Senior enlisted advisor to the chief of the National Guard Bureau
129
- :9C:
130
- :name: Chief Master Sergeant of the Air Force
131
- :subcategories:
132
- :000: Chief Master Sergeant of the Air Force
133
- :100: Executive assistant to the Chief Master Sergeant of the Air Force
134
- :9D:
135
- :name: Developmental positions
136
- :subcategories:
137
- :100: AF developmental senior enlisted positions
138
- :200: Key developmental senior enlisted positions
139
- :9E:
140
- :name: Command Chief Master Sergeant
141
- :subcategories:
142
- :000: Command Chief Master Sergeant
143
- :100: Command chief executive assistant
144
- :200: Individual Mobilization Augmentee to Command Chief Master Sergeant
145
- :9F:
146
- :name: First term airmen center
147
- :subcategories:
148
- :000: First term airmen center (FTAC) NCOIC
149
- :9G:
150
- :name: Group senior enlisted leader
151
- :subcategories:
152
- :100: Group senior enlisted leader
153
- :9H:
154
- :name: Academic and WHCA
155
- :subcategories:
156
- :000: Academic faculty instructor
157
- :100: White House communications agency technician (WHCA)
158
- :9I:
159
- :name: Futures airmen
160
- :subcategories:
161
- :000: Futures airmen
162
- :9J:
163
- :name: Prisoner
164
- :subcategories:
165
- :000: Prisoner
166
- :9L:
167
- :name: Interpreter/translator
168
- :subcategories:
169
- :000: Interpreter/translator
170
- :100: Enlisted international affairs manager
171
- :9M:
172
- :name: Military entrance and health
173
- :subcategories:
174
- :000: Military entrance processing command (MEPCOM) senior enlisted advisor
175
- :200: International health specialists (IHS)
176
- :400: Chief, medical enlisted force (CMEF)
177
- :9N:
178
- :name: Legislative fellows
179
- :subcategories:
180
- :000: Secretary of the Air Force enlisted legislative fellows
181
- :9P:
182
- :name: Patient
183
- :subcategories:
184
- :000: Patient
185
- :9Q:
186
- :name: Reserve force
187
- :subcategories:
188
- :000: Reserve force generation and oversight NCO
189
- :9R:
190
- :name: Civil Air Patrol
191
- :subcategories:
192
- :000: Civil Air Patrol (CAP) – USAF reserve assistance NCO
193
- :9S:
194
- :name: Scientific applications
195
- :subcategories:
196
- :100: Scientific applications specialist
197
- :9T:
198
- :name: Trainee
199
- :subcategories:
200
- :000: Basic enlisted airman
201
- :100: Officer trainee
202
- :200: Precadet assignee
203
- :400: AFIT/EWI enlisted student
204
- :500: Basic special warfare enlisted airman
205
- :9U:
206
- :name: Ineligible/unallotted
207
- :subcategories:
208
- :000: Enlisted airman/guardian ineligible for local utilization
209
- :100: Unallotted enlisted authorization
210
- :9V:
211
- :name: Joint senior enlisted
212
- :subcategories:
213
- :000: Key developmental joint senior enlisted position
214
- :100: Executive assistant to the senior enlisted advisor to the Chairman of the Joint Chiefs of Staff
215
- :9W:
216
- :name: Wounded warrior
217
- :subcategories:
218
- :000: Combat wounded warrior
219
- :100: Reserved for future use
220
- :200: Combat wounded warrior with exemptions
221
- :300: Non-combat wounded warrior
222
- :400: Wounded warrior – limited assignment status (LAS)
223
- :500: Reserved for future use
224
- :600: Reserved for future use
225
- :700: Reserved for future use
226
- :800: Wounded warrior – ambassador
227
- :900: Wounded warrior – project planner/officer
228
- :9Y:
229
- :name: Air Force parachute team
230
- :subcategories:
231
- :000: Air force parachute team (AFPT) instructor
232
- :9Z:
233
- :name: Special warfare mission support
234
- :subcategories:
235
- :000: Special warfare mission support (SWMS) career field manager (CFM) on headquarters Air Force staff, Air Force Special Warfare Division
236
- :100: Special warfare mission support (SWMS) senior enlisted leader, Air Force Special Warfare (AFSPECWAR)
237
- :200: Special warfare mission support (SWMS) superintendent, Air Force Special Warfare (AFSPECWAR)