@tonguetoquill/collection 0.13.5 → 0.15.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonguetoquill/collection",
3
- "version": "0.13.5",
3
+ "version": "0.15.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/nibsbin/tonguetoquill-collection.git"
@@ -37,6 +37,6 @@
37
37
  "dependencies": {},
38
38
  "devDependencies": {
39
39
  "@quillmark/registry": "^0.12.0",
40
- "@quillmark/wasm": "^0.51.0"
40
+ "@quillmark/wasm": "^0.53.1"
41
41
  }
42
42
  }
@@ -41,7 +41,7 @@ cards:
41
41
  fields:
42
42
  date:
43
43
  title: Date
44
- type: string
44
+ type: date
45
45
  ui:
46
46
  group: Record
47
47
  description: Date of the action (column A).
@@ -63,7 +63,7 @@ cards:
63
63
 
64
64
  written_grade_date:
65
65
  title: Written Grade Date
66
- type: string
66
+ type: date
67
67
  ui:
68
68
  group: Record
69
69
  compact: true
@@ -79,7 +79,7 @@ cards:
79
79
 
80
80
  positional_grade_date:
81
81
  title: Positional Grade Date
82
- type: string
82
+ type: date
83
83
  ui:
84
84
  group: Record
85
85
  compact: true
@@ -30,7 +30,7 @@ commanders_auth: ""
30
30
  <!-- Example 1: Initial assignment to a unit -->
31
31
  ---
32
32
  CARD: experience
33
- date: "15 Jan 25"
33
+ date: 2025-01-15
34
34
  action: "Assigned to 1 ACCS/DOT as Weapons Director"
35
35
  written_grade: ""
36
36
  written_grade_date: ""
@@ -42,10 +42,10 @@ auth_or_remarks: "Initial assignment"
42
42
  <!-- Example 2: Written upgrade evaluation -->
43
43
  ---
44
44
  CARD: experience
45
- date: "15 Mar 25"
45
+ date: 2025-03-15
46
46
  action: "Completed written upgrade evaluation for 3-Level"
47
47
  written_grade: "3"
48
- written_grade_date: "15 Mar 25"
48
+ written_grade_date: 2025-03-15
49
49
  positional_grade: ""
50
50
  positional_grade_date: ""
51
51
  auth_or_remarks: "Per AFMAN 13-1CRCV1"
@@ -54,31 +54,31 @@ auth_or_remarks: "Per AFMAN 13-1CRCV1"
54
54
  <!-- Example 3: Positional (live-environment) upgrade / certification -->
55
55
  ---
56
56
  CARD: experience
57
- date: "20 Jun 25"
57
+ date: 2025-06-20
58
58
  action: "Certified Mission Ready — positional upgrade"
59
59
  written_grade: ""
60
60
  written_grade_date: ""
61
61
  positional_grade: "4"
62
- positional_grade_date: "20 Jun 25"
62
+ positional_grade_date: 2025-06-20
63
63
  auth_or_remarks: "SSgt Jones, T.R."
64
64
  ---
65
65
 
66
66
  <!-- Example 4: Combined written + positional upgrade (both columns filled) -->
67
67
  ---
68
68
  CARD: experience
69
- date: "1 Aug 25"
69
+ date: 2025-08-01
70
70
  action: "Upgrade evaluation — written and positional"
71
71
  written_grade: "4"
72
- written_grade_date: "1 Aug 25"
72
+ written_grade_date: 2025-08-01
73
73
  positional_grade: "4"
74
- positional_grade_date: "1 Aug 25"
74
+ positional_grade_date: 2025-08-01
75
75
  auth_or_remarks: "Verified by unit commander"
76
76
  ---
77
77
 
78
78
  <!-- Example 5: PCS departure — no grade columns needed -->
79
79
  ---
80
80
  CARD: experience
81
- date: "1 Sep 25"
81
+ date: 2025-09-01
82
82
  action: "PCS to 726 ACS/MOC, Tinker AFB OK"
83
83
  written_grade: ""
84
84
  written_grade_date: ""
@@ -3,6 +3,16 @@
3
3
 
4
4
  #set text(font: ("NimbusRomNo9L", "Times New Roman", "serif"))
5
5
 
6
+ // `type: date` fields arrive as Typst `datetime`; PDF overlay expects strings.
7
+ #let form-cell(v) = {
8
+ if v == none { "" }
9
+ else if type(v) == datetime {
10
+ v.display("[month padding:none]/[day padding:none]/[year]")
11
+ } else {
12
+ str(v)
13
+ }
14
+ }
15
+
6
16
  // Column order within each 7-field row group
7
17
  #let col-keys = (
8
18
  "date",
@@ -33,7 +43,7 @@
33
43
  if card.CARD == "experience" {
34
44
  if row < max-rows {
35
45
  for (col, key) in col-keys.enumerate() {
36
- let value = card.at(key, default: "")
46
+ let value = form-cell(card.at(key, default: none))
37
47
  if value != "" {
38
48
  let field-name = if row < 16 {
39
49
  // Page 1: fields start at index 4, stride 7
@@ -38,17 +38,17 @@ cards:
38
38
  title: Section Title
39
39
  type: string
40
40
  default: Experience
41
- headingLeft:
41
+ heading_left:
42
42
  title: Heading Left (e.g., Company/School)
43
43
  type: string
44
44
  required: true
45
- headingRight:
45
+ heading_right:
46
46
  title: Heading Right (e.g., Location)
47
47
  type: string
48
- subheadingLeft:
48
+ subheading_left:
49
49
  title: Subheading Left (e.g., Title/Degree)
50
50
  type: string
51
- subheadingRight:
51
+ subheading_right:
52
52
  title: Subheading Right (e.g., Date)
53
53
  type: string
54
54
 
@@ -36,10 +36,10 @@ cells:
36
36
  ---
37
37
  CARD: experience_section
38
38
  title: Work Experience
39
- headingLeft: Templar Archives Research Division
40
- headingRight: August 2024 – Present
41
- subheadingLeft: Psionic Research Analyst
42
- subheadingRight: Aiur
39
+ heading_left: Templar Archives Research Division
40
+ heading_right: August 2024 – Present
41
+ subheading_left: Psionic Research Analyst
42
+ subheading_right: Aiur
43
43
  ---
44
44
 
45
45
  - Analyzed Khala disruption patterns following Amon's corruption, developing countermeasures to protect remaining neural link infrastructure.
@@ -47,10 +47,10 @@ subheadingRight: Aiur
47
47
 
48
48
  ---
49
49
  CARD: experience_section
50
- headingLeft: Terran Dominion Ghost Academy
51
- headingRight: May 2025 – July 2025
52
- subheadingLeft: Covert Ops Trainee
53
- subheadingRight: Tarsonis (Remote)
50
+ heading_left: Terran Dominion Ghost Academy
51
+ heading_right: May 2025 – July 2025
52
+ subheading_left: Covert Ops Trainee
53
+ subheading_right: Tarsonis (Remote)
54
54
  ---
55
55
 
56
56
  - Developed tactical HUD displays for Ghost operatives integrating real-time Zerg hive cluster intelligence.
@@ -59,10 +59,10 @@ subheadingRight: Tarsonis (Remote)
59
59
 
60
60
  ---
61
61
  CARD: experience_section
62
- headingLeft: Abathur's Evolution Pit
63
- headingRight: June 2023 – July 2023
64
- subheadingLeft: Biomass Research Intern
65
- subheadingRight: Char
62
+ heading_left: Abathur's Evolution Pit
63
+ heading_right: June 2023 – July 2023
64
+ subheading_left: Biomass Research Intern
65
+ subheading_right: Char
66
66
  ---
67
67
 
68
68
  - Developed tracking algorithms for Overlord surveillance networks; supported pattern-of-life analysis for Terran outpost elimination.
@@ -70,10 +70,10 @@ subheadingRight: Char
70
70
 
71
71
  ---
72
72
  CARD: experience_section
73
- headingLeft: Raynor's Raiders
74
- headingRight: January 2018 – June 2020
75
- subheadingLeft: Combat Engineer
76
- subheadingRight: Mar Sara
73
+ heading_left: Raynor's Raiders
74
+ heading_right: January 2018 – June 2020
75
+ subheading_left: Combat Engineer
76
+ subheading_right: Mar Sara
77
77
  ---
78
78
 
79
79
  - Administered Hyperion shipboard systems, SCV maintenance protocols, and bunker defense automation for 30,000+ colonists.
@@ -84,18 +84,18 @@ subheadingRight: Mar Sara
84
84
  ---
85
85
  CARD: experience_section
86
86
  title: Education
87
- headingLeft: Carnegie Mellon University
88
- headingRight: December 2025
89
- subheadingLeft: Master of Information Technology Strategy
90
- subheadingRight: Pittsburgh, PA
87
+ heading_left: Carnegie Mellon University
88
+ heading_right: December 2025
89
+ subheading_left: Master of Information Technology Strategy
90
+ subheading_right: Pittsburgh, PA
91
91
  ---
92
92
 
93
93
  ---
94
94
  CARD: experience_section
95
- headingLeft: United States Air Force Academy
96
- headingRight: May 2024
97
- subheadingLeft: BS, Data Science
98
- subheadingRight: Colorado Springs, CO
95
+ heading_left: United States Air Force Academy
96
+ heading_right: May 2024
97
+ subheading_left: BS, Data Science
98
+ subheading_right: Colorado Springs, CO
99
99
  ---
100
100
 
101
101
  - Distinguished Graduate (top 10%); Chinese language minor (L2+/R1 on DLPT).
@@ -104,24 +104,24 @@ subheadingRight: Colorado Springs, CO
104
104
 
105
105
  ---
106
106
  CARD: experience_section
107
- headingLeft: Western Governors University
108
- headingRight: April 2022
109
- subheadingLeft: BS, Cybersecurity and Information Assurance
110
- subheadingRight: Remote
107
+ heading_left: Western Governors University
108
+ heading_right: April 2022
109
+ subheading_left: BS, Cybersecurity and Information Assurance
110
+ subheading_right: Remote
111
111
  ---
112
112
 
113
113
  ---
114
114
  CARD: experience_section
115
- headingLeft: Community College of the Air Force
116
- headingRight: February 2019
117
- subheadingLeft: AS, Information Systems Technology
118
- subheadingRight: Remote
115
+ heading_left: Community College of the Air Force
116
+ heading_right: February 2019
117
+ subheading_left: AS, Information Systems Technology
118
+ subheading_right: Remote
119
119
  ---
120
120
 
121
121
  ---
122
122
  CARD: experience_section
123
123
  title: Cyber Competition
124
- headingLeft: 1st in SANS Academy Cup 2024
124
+ heading_left: 1st in SANS Academy Cup 2024
125
125
  ---
126
126
 
127
127
  - Competed as the Delogrand Web Exploit SME, solving SQLi, API, and HTTP packet crafting problems.
@@ -129,7 +129,7 @@ headingLeft: 1st in SANS Academy Cup 2024
129
129
 
130
130
  ---
131
131
  CARD: experience_section
132
- headingLeft: 1st in NCX 2023
132
+ heading_left: 1st in NCX 2023
133
133
  ---
134
134
 
135
135
  - Developed strategies, defensive scripts, and exploits for the Cyber Combat event.
@@ -137,7 +137,7 @@ headingLeft: 1st in NCX 2023
137
137
 
138
138
  ---
139
139
  CARD: experience_section
140
- headingLeft: 1st in SANS Academy Cup 2023
140
+ heading_left: 1st in SANS Academy Cup 2023
141
141
  ---
142
142
 
143
143
  - Competed as the Delogrand Web Exploit SME, solving XSS, XXE, SQLi, and HTTP crafting problems.
@@ -145,14 +145,14 @@ headingLeft: 1st in SANS Academy Cup 2023
145
145
 
146
146
  ---
147
147
  CARD: experience_section
148
- headingLeft: 1st in RMCS 2023
148
+ heading_left: 1st in RMCS 2023
149
149
  ---
150
150
 
151
151
  - Competed as the Delogrand Web Exploit SME, solving obfuscated JS, Wasm, XSS, and SQLi problems.
152
152
 
153
153
  ---
154
154
  CARD: experience_section
155
- headingLeft: 1st in NCX 2022
155
+ heading_left: 1st in NCX 2022
156
156
  ---
157
157
 
158
158
  - Trained and strategized teams for the Cyber Combat event.
@@ -1,4 +1,4 @@
1
- #import "@local/quillmark-helper:0.1.0": data, parse-date
1
+ #import "@local/quillmark-helper:0.1.0": data
2
2
  #import "@local/ttq-classic-resume:0.1.0": *
3
3
 
4
4
  #show: resume
@@ -15,10 +15,10 @@
15
15
 
16
16
  if card.CARD == "experience_section" {
17
17
  timeline-entry(
18
- heading-left: card.at("headingLeft", default: ""),
19
- heading-right: card.at("headingRight", default: ""),
20
- subheading-left: card.at("subheadingLeft", default: none),
21
- subheading-right: card.at("subheadingRight", default: none),
18
+ heading-left: card.at("heading_left", default: ""),
19
+ heading-right: card.at("heading_right", default: ""),
20
+ subheading-left: card.at("subheading_left", default: none),
21
+ subheading-right: card.at("subheading_right", default: none),
22
22
  body: card.at("BODY", default: none),
23
23
  )
24
24
  } else if card.CARD == "skills_section" {
@@ -1,20 +1,19 @@
1
1
  ---
2
2
  QUILL: cmu_letter@0.1
3
- department: !fill Department Here
3
+ department: Department Here
4
4
  address:
5
5
  - 5000 Forbes Avenue
6
6
  - Pittsburgh, PA 15213-3890
7
7
  url: cmu.edu
8
- recipient: !fill
8
+ recipient:
9
9
  - Dr. Heinz Doofenshmirtz
10
10
  - 9297 Polly Parkway
11
11
  - City, Virginia 46231
12
- signature_block: !fill
12
+ signature_block:
13
13
  - Phineas Flynn
14
14
  - Masters Student
15
15
  ---
16
-
17
- Dear {:Dr. Heinz Doofenshmirtz:},
16
+ Dear Dr. Heinz Doofenshmirtz,
18
17
 
19
18
  Write your letter content here. This template uses the CMU letter format for professional academic correspondence.
20
19
 
@@ -1,4 +1,4 @@
1
- #import "@local/quillmark-helper:0.1.0": data, parse-date
1
+ #import "@local/quillmark-helper:0.1.0": data
2
2
  #import "@local/tonguetoquill-cmu-letter:0.1.0": backmatter, frontmatter, mainmatter
3
3
 
4
4
  #show: frontmatter.with(
@@ -6,7 +6,11 @@
6
6
  department: data.department,
7
7
  address: data.address,
8
8
  url: data.url,
9
- date: if "date" in data { parse-date(data.date) } else { datetime.today() },
9
+ date: if "date" in data and data.date != none {
10
+ data.date
11
+ } else {
12
+ datetime.today()
13
+ },
10
14
  recipient: data.recipient,
11
15
  )
12
16
 
@@ -1,5 +1,12 @@
1
1
  #import "@local/quillmark-helper:0.1.0": data
2
2
 
3
+ // `type: date` fields arrive as Typst `datetime`; overlay text must be plain strings.
4
+ #let show-date(v) = {
5
+ if v == none { "" }
6
+ else if type(v) == datetime { v.display("[month padding:none]/[day padding:none]/[year]") }
7
+ else { str(v) }
8
+ }
9
+
3
10
  #set page(width: 8.5in, height: 11in, margin: 0in)
4
11
  #set text(font: "Arimo", size: 10pt)
5
12
 
@@ -19,7 +26,7 @@
19
26
  #check(411pt, 67pt, mode == "other")
20
27
 
21
28
  // Fields
22
- #tf(40pt, 100pt)[#data.at("departure_date", default: "")]
29
+ #tf(40pt, 100pt)[#show-date(data.at("departure_date", default: none))]
23
30
  #tf(123pt, 100pt)[#data.at("final_destination", default: "")]
24
31
 
25
32
  // Itinerary Rows (via CARDS)
@@ -31,7 +38,7 @@
31
38
  for card in data.CARDS {
32
39
  if card.CARD == "itinerary" and row < 10 {
33
40
  let dy = dy-start + (row * dy-step)
34
- tf(80pt, dy)[#card.at("date", default: "")]
41
+ tf(80pt, dy)[#show-date(card.at("date", default: none))]
35
42
  tf(135pt, dy)[#card.at("departure_point", default: "")]
36
43
  tf(295pt, dy)[#card.at("arrival_point", default: "")]
37
44
  tf(450pt, dy)[#card.at("rest_length", default: "")]
@@ -56,7 +63,7 @@
56
63
 
57
64
  // Acknowledgements
58
65
  #tf(40pt, 620pt)[#data.at("organization", default: "")]
59
- #tf(500pt, 620pt)[#data.at("briefed_date", default: "")]
66
+ #tf(500pt, 620pt)[#show-date(data.at("briefed_date", default: none))]
60
67
 
61
68
  #tf(40pt, 650pt)[#data.at("briefee_name", default: "")]
62
69
  #tf(270pt, 650pt)[#data.at("briefee_grade", default: "")]
@@ -80,8 +80,7 @@ main:
80
80
 
81
81
  date:
82
82
  title: Date of memo (YYYY-MM-DD); defaults to today
83
- type: string
84
- default: ""
83
+ type: date
85
84
  ui:
86
85
  group: Additional
87
86
  description: YYYY-MM-DD. Leave blank to use today's date.
@@ -204,7 +203,7 @@ cards:
204
203
  description: List of office symbols to receive copies of this endorsement.
205
204
  date:
206
205
  title: Date of endorsement (YYYY-MM-DD)
207
- type: string
206
+ type: date
208
207
  ui:
209
208
  group: Additional
210
209
  description: Date of the endorsement. Leave blank to omit.
@@ -1,4 +1,4 @@
1
- #import "@local/quillmark-helper:0.1.0": data, parse-date
1
+ #import "@local/quillmark-helper:0.1.0": data
2
2
  #import "@local/tonguetoquill-usaf-memo:1.0.0": backmatter, frontmatter, indorsement, mainmatter
3
3
 
4
4
  // Frontmatter configuration
@@ -9,7 +9,7 @@
9
9
  letterhead_seal: image("assets/dow_seal.jpg"),
10
10
 
11
11
  // Date
12
- date: parse-date(data.date),
12
+ date: data.at("date", default: none),
13
13
 
14
14
  // Receiver information
15
15
  memo_for: data.memo_for,
@@ -78,14 +78,6 @@ main:
78
78
  group: Letterhead
79
79
  description: Organizational motto at the bottom of the page.
80
80
 
81
- date:
82
- title: Date of memo (YYYY-MM-DD); defaults to today
83
- type: string
84
- default: ""
85
- ui:
86
- group: Additional
87
- description: YYYY-MM-DD. Leave blank to use today's date.
88
-
89
81
  references:
90
82
  title: References for the memo
91
83
  type: array
@@ -135,8 +127,9 @@ main:
135
127
  - CONFIDENTIAL
136
128
  ui:
137
129
  group: Additional
130
+ compact: true
138
131
  description: Follow AFI 31-401 and applicable DoD guidance for classification markings. Leave blank for unclassified.
139
-
132
+
140
133
  font_size:
141
134
  title: Font size for the memo text (int pt)
142
135
  type: number
@@ -145,8 +138,18 @@ main:
145
138
  - 11
146
139
  ui:
147
140
  group: Additional
141
+ compact: true
148
142
  description: Font size for the memo text (pt).
149
143
 
144
+ date:
145
+ title: Date of memo (YYYY-MM-DD); defaults to today
146
+ type: date
147
+ default: ""
148
+ ui:
149
+ group: Additional
150
+ description: YYYY-MM-DD. Leave blank to use today's date.
151
+
152
+
150
153
  cards:
151
154
  indorsement:
152
155
  title: Routing indorsement
@@ -214,7 +217,7 @@ cards:
214
217
  description: List of office symbols to receive copies of this endorsement.
215
218
  date:
216
219
  title: Date of endorsement (YYYY-MM-DD)
217
- type: string
220
+ type: date
218
221
  ui:
219
222
  group: Additional
220
223
  description: Date of the endorsement. Leave blank to omit.
@@ -1,4 +1,4 @@
1
- #import "@local/quillmark-helper:0.1.0": data, parse-date
1
+ #import "@local/quillmark-helper:0.1.0": data
2
2
  #import "@local/tonguetoquill-usaf-memo:2.0.0": backmatter, frontmatter, indorsement, mainmatter
3
3
 
4
4
  // Frontmatter configuration
@@ -9,7 +9,7 @@
9
9
  letterhead_seal: image("assets/dow_seal.png"),
10
10
 
11
11
  // Date
12
- date: parse-date(data.date),
12
+ date: data.at("date", default: none),
13
13
 
14
14
  // Receiver information
15
15
  memo_for: data.memo_for,
@@ -13,7 +13,7 @@ commanders_auth: ""
13
13
  <!-- Add one CARD: experience block per row. Duplicate as needed. -->
14
14
  ---
15
15
  CARD: experience
16
- date: "1 Jan 25"
16
+ date: 2025-01-01
17
17
  action: "Describe the action or event"
18
18
  written_grade: ""
19
19
  written_grade_date: ""
@@ -21,7 +21,7 @@ In the data above, edit:
21
21
  - Signature block
22
22
  -->
23
23
 
24
- Dear {:Dr. Heinz Doofenshmirtz:},
24
+ Dear Dr. Heinz Doofenshmirtz,
25
25
 
26
26
  Write your letter content here. This template uses the CMU letter format for professional academic correspondence.
27
27
 
@@ -35,4 +35,4 @@ Use additional paragraphs to develop your ideas fully and maintain clear communi
35
35
 
36
36
  You can also **bold**, _italicize_, __underline__, `code`, and ~~strikethrough~~ your text as needed.
37
37
 
38
- Sincerely,
38
+ Sincerely,
package/templates/loc.md CHANGED
@@ -21,14 +21,12 @@ compress_indorsements: true
21
21
  # Based on LOCAR template from https://www.shaw.af.mil/Portals/98/Docs/Legal/Revamp/2022%20LOCAR%20TEMPLATE%20(Enlisted).docx
22
22
  ---
23
23
 
24
- **NOTE: This template is undergoing major refinement. It is included for demonstration purposes.**
25
-
26
24
  <!-- EDIT: Describe the incident: what the member did or failed to do, citing specific incidents and dates, and if possible, with UCMJ articles. -->
27
- Investigation has disclosed the {:incident_description:}.
25
+ Investigation has disclosed that on 8 March 2026, you failed to report to 0730 formation as directed and did not notify your supervisor until 0815.
28
26
 
29
27
  <!-- EDIT: Counseling paragraph: Discuss the impact of the member's actions and what improvement is expected. -->
30
28
  You are hereby counseled.
31
- {:impact_and_expected_improvement:}.
29
+ Your actions disrupted accountability procedures and delayed mission tasking for your section. You are expected to report on time for all formations and immediately notify your chain of command if an emergency prevents timely reporting.
32
30
  Your conduct is unacceptable and any future misconduct may result in more severe action.
33
31
 
34
32
  The following information required by the Privacy Act is provided for your information. **AUTHORITY**: 10 U.S.C. § 8013. **PURPOSE**: To obtain any comments or documents you desire to submit (on a voluntary basis) for consideration concerning this action. **ROUTINE USES**: Provides you an opportunity to submit comments or documents for consideration. If provided, the comments and documents you submit become a part of the action. **DISCLOSURE**: Your written acknowledgement of receipt and signature are mandatory. Any other comments or documents you provide are voluntary.
@@ -43,7 +41,7 @@ signature_block: SUBJECT FIRST M. LAST, RANK, USAF
43
41
  ---
44
42
 
45
43
  <!-- EDIT: First Indorsement: Subject acknowledges receipt of the LOC -->
46
- I acknowledge receipt and understanding of this letter on {:date and time:}. I understand that I have 3 duty days from the date I received this letter to provide a response and that I must include in my response any comments or documents I wish to be considered concerning this Letter of Counseling.
44
+ I acknowledge receipt and understanding of this letter on 10 March 2026 at 1430. I understand that I have 3 duty days from the date I received this letter to provide a response and that I must include in my response any comments or documents I wish to be considered concerning this Letter of Counseling.
47
45
 
48
46
  ---
49
47
  CARD: indorsement
@@ -76,4 +74,4 @@ date: "Date: _____________"
76
74
  ---
77
75
 
78
76
  <!-- EDIT: Fourth Indorsement: Subject acknowledges final decision -->
79
- I acknowledge receipt of the final decision regarding disposition of this Letter of Counseling on {:date and time:}.
77
+ I acknowledge receipt of the final decision regarding disposition of this Letter of Counseling on 14 March 2026 at 0930.
@@ -6,12 +6,12 @@ letterhead_caption:
6
6
  - UNIVERSITY OF PITTSBURGH, PA
7
7
  memo_for:
8
8
  - AFROTC DET 730/CC
9
- memo_from: !fill
9
+ memo_from:
10
10
  - 2d Lt First M. Last
11
- subject: !fill DD Month YYYY DD Month YYYY, Special Pass Request
11
+ subject: 15 May 202618 May 2026, Special Pass Request
12
12
  references:
13
13
  - DAFI 36-3003, 07 August 2024, Military Leave Program
14
- signature_block: !fill
14
+ signature_block:
15
15
  - FIRST M. LAST, 2d Lt, USAF
16
16
  - AFIT Masters Student
17
17
  font_size: 11
@@ -22,18 +22,18 @@ In the data above, edit;
22
22
  - Signature Block
23
23
  - Subject
24
24
  ---------------->
25
- **PURPOSE:** The purpose of the memorandum is to request a 4-day pass, in accordance with DAFI 36-3003, for traveling to {:Area 51 for personal research:}.
25
+ **PURPOSE:** The purpose of the memorandum is to request a 4-day pass, in accordance with DAFI 36-3003, for traveling to Columbus, Ohio to visit family.
26
26
 
27
27
  <!-------------
28
28
  In Narrative section below, edit:
29
29
  - Flight and transit details
30
30
  - Document completion of AF4392 if age 25 or under
31
31
  --------------->
32
- **NARRATIVE:** On {:DD Month YYYY:}, depart via {:UA2424 at 0240 ET:}. On {:DD Month YYYY:}, return via {:UA1234 at 1300 ET:}. Transit to and from {:PIT with POV:}. I do not need to complete AF4392 to comply with travel risk requirements because I am not under the age of 26.
32
+ **NARRATIVE:** On 15 May 2026, depart via UA2424 at 0240 ET. On 18 May 2026, return via UA1234 at 1300 ET. Transit to and from PIT with POV. I do not need to complete AF4392 to comply with travel risk requirements because I am not under the age of 26.
33
33
 
34
34
  **REFERENCED REGULATION:** “5.3. Special Pass. Unit commanders may award 3 or 4-day special passes for special occasions or circumstances, such as reenlistment or for some type of special recognition or compensatory time off. They may delegate approval to a level no lower than squadron section commander, deputies, or equivalents. (T-1) Special passes start after normal working hours on a given day. They stop at the beginning of normal working hours on either the 4th day for a 3 -day special pass or the 5th day for a 4-day special pass. A 3-day special pass can be Friday through Sunday, Saturday through Monday, or Tuesday through Thursday. A 4-day special pass can be Thursday through Sunday or Saturday through Tuesday or Friday through Monday. This applies to a normal Monday through Friday workweek. See paragraph 2.1.2 for safe travel guidelines.”
35
35
 
36
- If you have any questions, please contact me at {:airman.snuffy@us.af.mil:} or {:(123) 456-7890:}.
36
+ If you have any questions, please contact me at first.last@us.af.mil or (123) 456-7890.
37
37
 
38
38
  ---
39
39
  CARD: indorsement
@@ -41,4 +41,4 @@ signature_block:
41
41
  - ROBERT T. CHANCE, Lt Col, USAF
42
42
  - Commander
43
43
  format: informal
44
- ---
44
+ ---
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  QUILL: usaf_memo@0.2
3
3
  letterhead_title: DEPARTMENT OF THE AIR FORCE
4
- letterhead_caption: !fill
4
+ letterhead_caption:
5
5
  - YOUR SQUADRON HERE
6
6
  - USAF BASE, STATE
7
- memo_for: !fill
7
+ memo_for:
8
8
  - Issuer's Rank FIRST M. LAST, USAF
9
- memo_from: !fill
9
+ memo_from:
10
10
  - Subject's ORG/SYMBOL
11
- subject: !fill Response to Letter of Counseling, (Subject of LOC), dated DD Month YYYY
12
- signature_block: !fill
11
+ subject: Response to Letter of Counseling, Late Arrival to Formation, dated 10 March 2026
12
+ signature_block:
13
13
  - Subject's FIRST M. LAST, Rank, USAF
14
14
  - Duty Title
15
15
  ---
@@ -19,7 +19,7 @@ signature_block: !fill
19
19
  - State the date and subject matter clearly
20
20
  - Express intent to respond professionally
21
21
  ------------------------------------------------------>
22
- I received the Letter of Counseling dated {:DD Month YYYY:} regarding {:my late arrival to formation on DD Month YYYY:}. I respectfully submit this response for your consideration.
22
+ I received the Letter of Counseling dated 10 March 2026 regarding my late arrival to formation on 8 March 2026. I respectfully submit this response for your consideration.
23
23
 
24
24
  <!-----------------------------------------------------
25
25
  2. RESPONSE TO ALLEGATIONS
@@ -53,4 +53,4 @@ I have taken immediate corrective action to prevent recurrence. I have adjusted
53
53
  - Articulate potential career impacts (promotion eligibility, security clearance, reenlistment)
54
54
  - Reaffirm commitment to Air Force standards and continued service excellence
55
55
  ------------------------------------------------------>
56
- Based on my sustained performance record and the comprehensive corrective actions implemented, I respectfully request for this letter to not be filed in my Personnel Information File. Filing could adversely impact my promotion eligibility and future career opportunities. This isolated incident does not accurately reflect my dedication to the Air Force or my commitment to upholding the highest standards of conduct and professionalism. I am determined to continue serving with distinction and contributing meaningfully to the mission. Thank you for your consideration.
56
+ Based on my sustained performance record and the comprehensive corrective actions implemented, I respectfully request for this letter to not be filed in my Personnel Information File. Filing could adversely impact my promotion eligibility and future career opportunities. This isolated incident does not accurately reflect my dedication to the Air Force or my commitment to upholding the highest standards of conduct and professionalism. I am determined to continue serving with distinction and contributing meaningfully to the mission. Thank you for your consideration.
@@ -27,13 +27,6 @@
27
27
  "file": "rebuttal.md",
28
28
  "production": true
29
29
  },
30
- {
31
- "id": "taro-template",
32
- "name": "Taro Template",
33
- "description": "Official Taro ice cream template",
34
- "file": "taro.md",
35
- "production": false
36
- },
37
30
  {
38
31
  "id": "cmu-letter",
39
32
  "name": "CMU Letter",