@airmark/quiver 0.33.0 → 0.34.0
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.
- package/README.md +16 -10
- package/package.json +7 -7
- package/quills/af4141/0.1.0/Quill.yaml +3 -12
- package/quills/af4141/0.1.0/example.md +53 -0
- package/quills/afmc_moa/0.0.1/Quill.yaml +29 -45
- package/quills/afmc_moa/0.0.1/example.md +114 -0
- package/quills/afmc_moa/0.0.1/packages/typst-afmc-moa/src/config.typ +1 -1
- package/quills/classic_resume/0.0.1/Quill.yaml +83 -163
- package/quills/classic_resume/0.0.1/example.md +111 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/components.typ +67 -34
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/config.typ +18 -10
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/layout.typ +36 -7
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/lib.typ +1 -0
- package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/util.typ +16 -11
- package/quills/classic_resume/0.0.1/plate.typ +54 -54
- package/quills/cyber_ribbon_chart/0.0.1/Quill.yaml +120 -113
- package/quills/cyber_ribbon_chart/0.0.1/example.md +55 -0
- package/quills/cyber_ribbon_chart/0.0.1/plate.typ +506 -325
- package/quills/daf1206/0.1.0/Quill.yaml +14 -16
- package/quills/daf1206/0.1.0/example.md +55 -0
- package/quills/daf4392/0.1.0/Quill.yaml +1 -6
- package/quills/daf4392/0.1.0/example.md +51 -0
- package/quills/usaf_letter/0.1.0/Quill.yaml +7 -42
- package/quills/usaf_letter/0.1.0/example.md +35 -0
- package/quills/{usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/LICENSE → usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/SpectralSC/OFL.txt} +2 -2
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/SpectralSC/SpectralSC-Italic.ttf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/SpectralSC/SpectralSC-Regular.ttf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/frontmatter.typ +1 -1
- package/quills/usaf_letter/0.1.0/plate.typ +1 -4
- package/quills/usaf_memo/0.2.0/Quill.yaml +7 -40
- package/quills/usaf_memo/0.2.0/example.md +45 -0
- package/quills/usaf_memo/0.3.0/Quill.yaml +13 -50
- package/quills/usaf_memo/0.3.0/example.md +48 -0
- package/quills/{usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/Cinzel/LICENSE → usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/SpectralSC/OFL.txt} +2 -2
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/SpectralSC/SpectralSC-Italic.ttf +0 -0
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/SpectralSC/SpectralSC-Regular.ttf +0 -0
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +1 -1
- package/quills/usaf_memo/0.3.0/plate.typ +1 -4
- package/templates/deros_extension.md +40 -0
- package/templates/templates.json +7 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/Cinzel/Cinzel-Regular.ttf +0 -0
- package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/CopperplateCC/CopperplateCC-Heavy.otf +0 -0
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/Cinzel-Regular.ttf +0 -0
- package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/CopperplateCC/CopperplateCC-Heavy.otf +0 -0
|
@@ -8,60 +8,75 @@ typst:
|
|
|
8
8
|
plate_file: plate.typ
|
|
9
9
|
|
|
10
10
|
# One landscape page an officer hands to a senior rater or a development team.
|
|
11
|
-
# The top half is the plan
|
|
12
|
-
# the boards and schools fall in. The
|
|
13
|
-
# plan credible.
|
|
11
|
+
# The top half is the plan: the assignment you hold now, then alternative
|
|
12
|
+
# vectors branching from it over the years the boards and schools fall in. The
|
|
13
|
+
# bottom half is the record that makes the plan credible.
|
|
14
14
|
main:
|
|
15
15
|
ui:
|
|
16
|
+
# The editor opens one group at a time, starting with the first, so each is a
|
|
17
|
+
# task finished without looking at another: who you are, where you are
|
|
18
|
+
# going, what you have done. The checklist is apart from the record because
|
|
19
|
+
# most visits skip it whole. The timeline's start year sits with the officer
|
|
20
|
+
# so every required field is in the group that opens.
|
|
16
21
|
groups:
|
|
17
22
|
officer: {}
|
|
18
|
-
|
|
23
|
+
plan: {}
|
|
19
24
|
record: {}
|
|
20
25
|
qualifications: { title: "Qualifications & experience" }
|
|
21
|
-
# The chart's one piece of prose. It
|
|
22
|
-
# page,
|
|
23
|
-
body:
|
|
24
|
-
example: |
|
|
25
|
-
What you want out of this discussion, and anything that constrains it — a join-spouse, a degree finishing, a date you cannot move before.
|
|
26
|
+
# The chart's one piece of prose. It is set on the ruled notes area at the
|
|
27
|
+
# foot of the page, and a rater goes on writing below it during the discussion.
|
|
28
|
+
description: "The body is what you want out of this discussion, and anything that shapes it that has no date to draw: a preference, an assignment you would turn down, a question for the rater. A constraint that ends in a known year goes in constraints, where the timeline can show it."
|
|
26
29
|
fields:
|
|
27
30
|
name:
|
|
28
31
|
# Read as `string` rather than `plaintext`: it reaches
|
|
29
32
|
# `set document(author:)`, which takes no content.
|
|
30
33
|
type: string
|
|
31
|
-
example: Capt John A. Snuffy
|
|
32
34
|
ui:
|
|
33
35
|
group: officer
|
|
34
|
-
description: "Grade and name as you want them read, set largest on the page. This is also the exported PDF's title and author, so it is written out rather than marked up."
|
|
36
|
+
description: "Grade and name as you want them read, set largest on the page, as in 'Capt John A. Snuffy'. This is also the exported PDF's title and author, so it is written out rather than marked up."
|
|
35
37
|
|
|
36
38
|
duty_title:
|
|
37
39
|
type: plaintext
|
|
38
40
|
inline: true
|
|
39
41
|
default: ""
|
|
40
|
-
example: 17S Instructor · 333 TRS, Keesler AFB
|
|
41
42
|
ui:
|
|
42
43
|
group: officer
|
|
43
|
-
description: "
|
|
44
|
+
description: "The job you hold today, as in Instructor or Flight Commander. The unit goes in unit. It prints under your name and heads the current-assignment block the vectors branch from."
|
|
45
|
+
|
|
46
|
+
unit:
|
|
47
|
+
type: plaintext
|
|
48
|
+
inline: true
|
|
49
|
+
default: ""
|
|
50
|
+
ui:
|
|
51
|
+
group: officer
|
|
52
|
+
description: "Unit and base, as in '333 TRS, Keesler AFB'."
|
|
53
|
+
|
|
54
|
+
afsc:
|
|
55
|
+
type: plaintext
|
|
56
|
+
inline: true
|
|
57
|
+
default: ""
|
|
58
|
+
ui:
|
|
59
|
+
group: officer
|
|
60
|
+
compact: true
|
|
61
|
+
description: "Your AFSC with its skill level and any prefix, as in 17S3 or K17D3. It leads the line under your name, because it says which half of the career field the plan is in."
|
|
44
62
|
|
|
45
63
|
commissioning_yg:
|
|
46
64
|
type: integer
|
|
47
|
-
example: 2022
|
|
48
65
|
ui:
|
|
49
66
|
group: officer
|
|
50
67
|
compact: true
|
|
51
|
-
description: "Commissioning year group. Every milestone on the timeline is counted from this year, so it is the one number that changes the whole chart
|
|
68
|
+
description: "Commissioning year group. Every milestone on the timeline is counted from this year, so it is the one number that changes the whole chart: a board at YG+8 lands in this year plus eight."
|
|
52
69
|
|
|
53
70
|
adjusted_yg:
|
|
54
|
-
type: integer
|
|
55
|
-
default: 0
|
|
71
|
+
type: integer?
|
|
56
72
|
ui:
|
|
57
73
|
group: officer
|
|
58
74
|
compact: true
|
|
59
|
-
description: "Adjusted year group, if a board or a break in service moved yours. Leave
|
|
75
|
+
description: "Adjusted year group, if a board or a break in service moved yours. The chart counts every milestone from it and prints it as your year group, noting the one you commissioned in. Leave blank when it is unchanged; the chart then counts from your commissioning year group."
|
|
60
76
|
|
|
61
77
|
date_of_rank:
|
|
62
78
|
type: date
|
|
63
79
|
default: ""
|
|
64
|
-
example: 2026-05-01
|
|
65
80
|
ui:
|
|
66
81
|
group: officer
|
|
67
82
|
compact: true
|
|
@@ -70,56 +85,85 @@ main:
|
|
|
70
85
|
date_arrived_station:
|
|
71
86
|
type: date
|
|
72
87
|
default: ""
|
|
73
|
-
example: 2025-06-15
|
|
74
88
|
ui:
|
|
75
89
|
group: officer
|
|
76
90
|
compact: true
|
|
77
|
-
description: "Date arrived station, YYYY-MM-DD.
|
|
91
|
+
description: "Date arrived station, YYYY-MM-DD. Leave blank to print a dash."
|
|
92
|
+
|
|
93
|
+
timeline_start_year:
|
|
94
|
+
type: integer
|
|
95
|
+
ui:
|
|
96
|
+
group: officer
|
|
97
|
+
compact: true
|
|
98
|
+
description: "First calendar year the timeline shows. Usually the current year: the chart is a plan, so it starts where you are, not where you commissioned."
|
|
78
99
|
|
|
79
100
|
advanced_degree:
|
|
80
101
|
type: plaintext
|
|
81
102
|
inline: true
|
|
82
103
|
default: ""
|
|
83
|
-
example: MS Cyber Operations, AFIT
|
|
84
104
|
ui:
|
|
85
105
|
group: officer
|
|
86
|
-
|
|
87
|
-
description: "Advanced academic degree, in hand or in progress. Leave blank if you hold none — the slot prints a dash rather than disappearing, because its absence is itself information to a board."
|
|
106
|
+
description: "Advanced academic degree, as in 'MS Cyber Operations, AFIT'. Add '(in progress)' for one you have not finished. Leave blank if you hold none: the slot prints a dash rather than disappearing, because its absence is itself information to a board."
|
|
88
107
|
|
|
89
|
-
timeline_start_year:
|
|
90
|
-
type: integer
|
|
91
|
-
example: 2026
|
|
92
|
-
ui:
|
|
93
|
-
group: timeline
|
|
94
|
-
compact: true
|
|
95
|
-
description: "First calendar year the timeline shows. Usually the current year: the chart is a plan, so it starts where you are, not where you commissioned."
|
|
96
108
|
|
|
97
109
|
timeline_years:
|
|
98
110
|
type: integer
|
|
99
111
|
default: 12
|
|
100
112
|
ui:
|
|
101
|
-
group:
|
|
113
|
+
group: plan
|
|
102
114
|
compact: true
|
|
103
115
|
description: "How many years wide the timeline is. Twelve carries a Captain from today past the Lt Col board and is the comfortable reading width. The full milestone ladder runs to YG+17, so widening it toward eighteen brings the SDE looks into view at the cost of narrower columns; any milestone that falls outside the window is counted in a note rather than dropped."
|
|
104
116
|
|
|
105
|
-
|
|
117
|
+
move_year:
|
|
118
|
+
type: integer?
|
|
119
|
+
ui:
|
|
120
|
+
group: plan
|
|
121
|
+
compact: true
|
|
122
|
+
description: "The year you expect to leave this assignment. The current-assignment block runs until it and every vector starts from it, so this is the date a rater reads first. Every vector leaves on this one date; a vector that stays longer, say to upgrade in place, starts with that extension as its first tour. Leave blank to start the vectors at the left edge of the timeline with no current block."
|
|
123
|
+
|
|
124
|
+
move_cycle:
|
|
125
|
+
type: enum
|
|
126
|
+
values: [Summer, Winter]
|
|
127
|
+
default: Summer
|
|
128
|
+
ui:
|
|
129
|
+
group: plan
|
|
130
|
+
compact: true
|
|
131
|
+
description: "The VML cycle you would move on in that year. Winter moves print in the first half of the year and Summer moves in the second."
|
|
132
|
+
|
|
133
|
+
constraints:
|
|
106
134
|
type: array
|
|
107
135
|
max: 3
|
|
136
|
+
ui:
|
|
137
|
+
group: plan
|
|
138
|
+
layout: table
|
|
108
139
|
items:
|
|
109
140
|
type: object
|
|
110
141
|
properties:
|
|
111
|
-
|
|
142
|
+
note:
|
|
112
143
|
type: plaintext
|
|
113
144
|
inline: true
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
145
|
+
title: Constraint
|
|
146
|
+
description: "What limits the plan, short enough for a bar, as in 'Join-spouse, no OCONUS'."
|
|
147
|
+
through:
|
|
148
|
+
type: integer
|
|
149
|
+
title: Through
|
|
150
|
+
description: "The last year it holds."
|
|
151
|
+
default: []
|
|
152
|
+
description: "Anything that limits where or when you can move and ends in a known year: a join-spouse assignment, a degree finishing, a child's school year. Each prints under the timeline's years as a bar from its left edge to the end of the last year the constraint holds, above the vectors, so a rater sees which ones cross it. A constraint with no end year belongs in the body."
|
|
153
|
+
|
|
154
|
+
vectors:
|
|
155
|
+
type: array
|
|
156
|
+
max: 3
|
|
157
|
+
ui:
|
|
158
|
+
group: plan
|
|
159
|
+
items:
|
|
160
|
+
type: object
|
|
161
|
+
properties:
|
|
162
|
+
track:
|
|
118
163
|
type: plaintext
|
|
119
164
|
inline: true
|
|
120
165
|
default: ""
|
|
121
|
-
|
|
122
|
-
description: "What this vector is for, set small under the label — 'Primary', 'Alternate', 'Backup'. Leave blank where the label already says it."
|
|
166
|
+
description: "What this vector is for, as in 'Command track' or 'Joint'. Its rank comes from its position: the first row prints as Primary, the second as Alternate, the third as Backup."
|
|
123
167
|
tours:
|
|
124
168
|
type: array
|
|
125
169
|
ui:
|
|
@@ -130,53 +174,27 @@ main:
|
|
|
130
174
|
title:
|
|
131
175
|
type: plaintext
|
|
132
176
|
inline: true
|
|
133
|
-
example: 333 TRS Instructor
|
|
134
177
|
title: Assignment
|
|
135
|
-
description: "Assignment and unit,
|
|
136
|
-
|
|
137
|
-
type:
|
|
138
|
-
|
|
139
|
-
default: "2"
|
|
178
|
+
description: "Assignment and unit as you would say it, as in '333 TRS/DO' or 'Joint Staff J6'. Keep it to what fits: roughly twelve characters per year of length at the default width. A longer title sets smaller, or turns up the side of a narrow block, and one that fits neither way is left off its block."
|
|
179
|
+
years:
|
|
180
|
+
type: number
|
|
181
|
+
default: 2
|
|
140
182
|
title: Years
|
|
141
|
-
description: "Length in years. The timeline is ruled in half-years,
|
|
142
|
-
vml:
|
|
143
|
-
type: enum
|
|
144
|
-
values: [Summer, Winter]
|
|
145
|
-
default: Summer
|
|
146
|
-
title: VML
|
|
147
|
-
description: "Which VML cycle you would move on. This places the tour rather than labelling it: a Summer tour starts in the second half of a year and a Winter tour in the first. Where that means waiting, the wait is added to the tour before it rather than left as a hole — you hold a job until you move — so a tour can print longer than the length you gave it."
|
|
183
|
+
description: "Length in years, in halves: 0.5 to 4. The timeline is ruled in half-years, one per VML cycle, so a length is rounded to the nearest half, and one outside that range draws at the nearer end, marked with a dagger. A whole number of years keeps you on the cycle you moved in on; a half switches Summer to Winter or back."
|
|
148
184
|
school:
|
|
149
185
|
type: boolean
|
|
150
186
|
default: false
|
|
151
|
-
description: "Tick for a school you would move for
|
|
152
|
-
description: "The assignments on this row, in the order you would serve them.
|
|
187
|
+
description: "Tick for a school you would move for, such as IDE or SDE in residence or Weapons School, rather than a duty assignment. It prints outlined instead of filled, so a year in a classroom does not read as a year in a job."
|
|
188
|
+
description: "The assignments on this row, in the order you would serve them. The first starts on your move, and each one after starts when the one before it ends, so there are no dates to keep in step."
|
|
153
189
|
default:
|
|
154
|
-
- {
|
|
155
|
-
- {
|
|
156
|
-
- {
|
|
157
|
-
|
|
158
|
-
- label: Vector 1
|
|
159
|
-
focus: Primary — command track
|
|
160
|
-
tours:
|
|
161
|
-
- { title: 333 TRS Instructor, duration: "4", vml: Summer }
|
|
162
|
-
- { title: 333 TRS / DO, duration: "3.5", vml: Winter }
|
|
163
|
-
- { title: IDE in residence, duration: "1", vml: Summer, school: true }
|
|
164
|
-
- label: Vector 2
|
|
165
|
-
focus: Alternate — staff depth
|
|
166
|
-
tours:
|
|
167
|
-
- { title: 17X CFM Staff, duration: "2.5", vml: Winter }
|
|
168
|
-
- { title: MAJCOM A3 Division Chief, duration: "2", vml: Summer }
|
|
169
|
-
- label: Vector 3
|
|
170
|
-
focus: Backup — joint
|
|
171
|
-
tours:
|
|
172
|
-
- { title: Joint Staff J6, duration: "3", vml: Summer }
|
|
173
|
-
- { title: USCYBERCOM JFHQ-C, duration: "2.5", vml: Winter }
|
|
174
|
-
ui:
|
|
175
|
-
group: timeline
|
|
176
|
-
description: "One row per alternative career path. Three is the conventional chart and all the page holds — a primary, an alternate, and a backup. One is a plan; three is a conversation."
|
|
190
|
+
- { track: "", tours: [] }
|
|
191
|
+
- { track: "", tours: [] }
|
|
192
|
+
- { track: "", tours: [] }
|
|
193
|
+
description: "One row per alternative career path after the assignment you hold now: a primary, an alternate and a backup, in that order. One is a plan; three is a conversation, and all the page holds."
|
|
177
194
|
|
|
178
195
|
stratifications:
|
|
179
196
|
type: array
|
|
197
|
+
max: 3
|
|
180
198
|
ui:
|
|
181
199
|
group: record
|
|
182
200
|
layout: table
|
|
@@ -184,30 +202,22 @@ main:
|
|
|
184
202
|
type: object
|
|
185
203
|
properties:
|
|
186
204
|
year:
|
|
187
|
-
type:
|
|
188
|
-
inline: true
|
|
189
|
-
example: "2026"
|
|
205
|
+
type: integer
|
|
190
206
|
description: "The reporting year."
|
|
191
|
-
|
|
207
|
+
rater:
|
|
192
208
|
type: plaintext
|
|
193
209
|
inline: true
|
|
194
210
|
default: ""
|
|
195
|
-
example: "#1/14 Capts"
|
|
196
211
|
title: Rater
|
|
197
|
-
description: "Your rater's stratification as it was written,
|
|
198
|
-
|
|
212
|
+
description: "Your rater's stratification as it was written, as in '#1/14 Capts'."
|
|
213
|
+
hlr:
|
|
199
214
|
type: plaintext
|
|
200
215
|
inline: true
|
|
201
216
|
default: ""
|
|
202
|
-
example: "#1/45 Capts"
|
|
203
217
|
title: Higher Level Reviewer
|
|
204
|
-
description: "Your Higher Level Reviewer's stratification as it was written,
|
|
218
|
+
description: "Your Higher Level Reviewer's stratification as it was written, as in '#1/45 CGOs'. Leave blank where you drew none."
|
|
205
219
|
default: []
|
|
206
|
-
|
|
207
|
-
- { year: "2026", rater_strat: "#1/14 Capts", hlr_strat: "#1/45 Capts" }
|
|
208
|
-
- { year: "2025", rater_strat: "#2/12 Capts", hlr_strat: "#3/40 Capts" }
|
|
209
|
-
- { year: "2024", rater_strat: "#1/8 Lts, #2/40 Instructors", hlr_strat: "" }
|
|
210
|
-
description: "Your last three years of stratifications, most recent first. Three is what the page is built for; more rows will set, and the section grows to hold them. Written out, a row is `{year: \"2026\", rater_strat: \"#1/14 Capts\", hlr_strat: \"#1/45 CGOs\"}`."
|
|
220
|
+
description: "Your last three years of stratifications, in any order: the page sets the most recent first. Three is all the page holds. Written out, a row is `{year: 2026, rater: \"#1/14 Capts\", hlr: \"#1/45 CGOs\"}`."
|
|
211
221
|
|
|
212
222
|
awards:
|
|
213
223
|
type: array
|
|
@@ -215,9 +225,6 @@ main:
|
|
|
215
225
|
type: plaintext
|
|
216
226
|
inline: true
|
|
217
227
|
default: []
|
|
218
|
-
example:
|
|
219
|
-
- Wing CGOQ ×2
|
|
220
|
-
- HAF A2/6 CGOY 2025
|
|
221
228
|
ui:
|
|
222
229
|
group: record
|
|
223
230
|
description: "Major awards, one per line, strongest first. Wing level and above earns a line; anything smaller costs more room than it wins."
|
|
@@ -228,13 +235,9 @@ main:
|
|
|
228
235
|
type: plaintext
|
|
229
236
|
inline: true
|
|
230
237
|
default: []
|
|
231
|
-
example:
|
|
232
|
-
- SANS FOR577 (GLIR)
|
|
233
|
-
- CISSP
|
|
234
|
-
- Security+
|
|
235
238
|
ui:
|
|
236
239
|
group: record
|
|
237
|
-
description: "Certifications and courses, one per line. Name the certification a board would recognize rather than every course you have sat."
|
|
240
|
+
description: "Certifications and courses, one per line. Name the certification a board would recognize rather than every course you have sat. PME and the Cyber 200 and 300 courses are ticked under qualifications instead."
|
|
238
241
|
|
|
239
242
|
deployments:
|
|
240
243
|
type: array
|
|
@@ -242,21 +245,20 @@ main:
|
|
|
242
245
|
type: plaintext
|
|
243
246
|
inline: true
|
|
244
247
|
default: []
|
|
245
|
-
example:
|
|
246
|
-
- 1× short tour — returned Jan 2024
|
|
247
248
|
ui:
|
|
248
249
|
group: record
|
|
249
|
-
description: "Deployments and short tours, one per line
|
|
250
|
+
description: "Deployments and short tours, one per line, with the month you returned: it is what a rater needs to work out when you are next eligible."
|
|
250
251
|
|
|
251
|
-
# The page prints every member in four
|
|
252
|
-
#
|
|
253
|
-
#
|
|
254
|
-
#
|
|
252
|
+
# The page prints every member in four rows and marks the held ones, so an
|
|
253
|
+
# empty box is as much of the chart as a filled one. A row is a property
|
|
254
|
+
# here rather than a heading in the plate, so the partition is in the value
|
|
255
|
+
# and the address as well as on the page. The plate repeats each `title` as
|
|
256
|
+
# its row's label, since the data carries only the members.
|
|
255
257
|
qualifications:
|
|
256
258
|
type: object
|
|
257
259
|
ui:
|
|
258
260
|
group: qualifications
|
|
259
|
-
description: "Tick what you hold. The page prints the whole 17X vocabulary and marks these
|
|
261
|
+
description: "Tick what you hold. The page prints the whole 17X vocabulary and marks these: a rater reads the empty boxes as readily as the filled ones, so what you have not done yet is on the page whether you tick it or not. A ticked course or school also marks its milestone on the timeline done. Written out, a tick is `flight_cc: true`, and a tick with its detail `flight_cc: {detail: UMS Flt/CC}`; an unticked member is left out."
|
|
260
262
|
properties:
|
|
261
263
|
command:
|
|
262
264
|
type: matrix
|
|
@@ -275,10 +277,10 @@ main:
|
|
|
275
277
|
type: plaintext
|
|
276
278
|
inline: true
|
|
277
279
|
default: ""
|
|
278
|
-
|
|
279
|
-
description: "The unit, course, or year that proves it, set in italics under the label. Leave blank where the label says enough on its own."
|
|
280
|
+
description: "The unit, course, year or distinction that proves it, set in italics after the label, as in '23 IOS' or 'DG'. Leave blank where the label says enough on its own."
|
|
280
281
|
operations:
|
|
281
282
|
type: matrix
|
|
283
|
+
title: Operations
|
|
282
284
|
ui:
|
|
283
285
|
compact: true
|
|
284
286
|
members:
|
|
@@ -304,6 +306,9 @@ main:
|
|
|
304
306
|
instructor: Instructor
|
|
305
307
|
jqo: Joint Qualified Officer (JQO)
|
|
306
308
|
properties: *detail
|
|
309
|
+
# Completion and distinction are one tick and its detail, so SOS held
|
|
310
|
+
# with detail DG reads as both. Candidate and graduate are two ticks:
|
|
311
|
+
# they are different rungs, and a board reads them differently.
|
|
307
312
|
education:
|
|
308
313
|
type: matrix
|
|
309
314
|
title: Education & PME
|
|
@@ -311,10 +316,12 @@ main:
|
|
|
311
316
|
compact: true
|
|
312
317
|
members:
|
|
313
318
|
commissioning_dg: Commissioning Source DG
|
|
314
|
-
|
|
319
|
+
sos: SOS
|
|
315
320
|
cyber_200: Cyber 200
|
|
316
321
|
cyber_300: Cyber 300
|
|
317
|
-
|
|
318
|
-
|
|
322
|
+
ide_candidate: IDE Candidate
|
|
323
|
+
ide_graduate: IDE Graduate
|
|
324
|
+
sde_candidate: SDE Candidate
|
|
325
|
+
sde_graduate: SDE Graduate
|
|
319
326
|
weapons_school: Weapons School / WIC DG
|
|
320
327
|
properties: *detail
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
~~~
|
|
2
|
+
$quill: cyber_ribbon_chart
|
|
3
|
+
name: Capt John A. Snuffy
|
|
4
|
+
afsc: 17S3
|
|
5
|
+
duty_title: Instructor
|
|
6
|
+
unit: 333 TRS, Keesler AFB
|
|
7
|
+
date_arrived_station: 2025-06-15
|
|
8
|
+
move_year: 2028
|
|
9
|
+
move_cycle: Summer
|
|
10
|
+
commissioning_yg: 2022
|
|
11
|
+
date_of_rank: 2026-05-01
|
|
12
|
+
advanced_degree: MS Cyber Operations, AFIT
|
|
13
|
+
constraints:
|
|
14
|
+
- { note: "Join-spouse, no OCONUS", through: 2029 }
|
|
15
|
+
vectors:
|
|
16
|
+
- track: Command
|
|
17
|
+
tours:
|
|
18
|
+
- { title: 333 TRS/DO, years: 2 }
|
|
19
|
+
- { title: IDE in residence, years: 1, school: true }
|
|
20
|
+
- { title: "Sq/CC, Scott AFB", years: 2 }
|
|
21
|
+
- track: Staff depth
|
|
22
|
+
tours:
|
|
23
|
+
- { title: 17X CFM Staff, years: 2.5 }
|
|
24
|
+
- { title: MAJCOM A3 Division Chief, years: 2 }
|
|
25
|
+
- track: Joint
|
|
26
|
+
tours:
|
|
27
|
+
- { title: Joint Staff J6, years: 3 }
|
|
28
|
+
- { title: USCYBERCOM JFHQ-C, years: 2.5 }
|
|
29
|
+
stratifications:
|
|
30
|
+
- { year: 2026, rater: "#1/14 Capts", hlr: "#1/45 Capts" }
|
|
31
|
+
- { year: 2025, rater: "#2/12 Lts", hlr: "#3/40 CGOs" }
|
|
32
|
+
- { year: 2024, rater: "#1/8 Lts, #2/40 Instructors" }
|
|
33
|
+
awards:
|
|
34
|
+
- Wing CGOQ x2
|
|
35
|
+
- HAF A2/6 CGOY 2025
|
|
36
|
+
certifications:
|
|
37
|
+
- SANS FOR577 (GLIR)
|
|
38
|
+
- CISSP
|
|
39
|
+
- Security+
|
|
40
|
+
deployments:
|
|
41
|
+
- 1x short tour, returned Jan 2024
|
|
42
|
+
qualifications:
|
|
43
|
+
operations:
|
|
44
|
+
dodin_ops: true
|
|
45
|
+
dco: { detail: 23 IOS }
|
|
46
|
+
crew_cc: true
|
|
47
|
+
staff:
|
|
48
|
+
instructor: { detail: 333 TRS }
|
|
49
|
+
education:
|
|
50
|
+
sos: { detail: DG }
|
|
51
|
+
cyber_200: { detail: "2025" }
|
|
52
|
+
timeline_start_year: 2026
|
|
53
|
+
~~~
|
|
54
|
+
|
|
55
|
+
What I want out of this discussion: the DO seat at the 333 TRS when my instructor tour ends, then IDE in residence. I'd rather not go to staff before I've had a DO job.
|