@tonguetoquill/collection 0.2.3 → 0.2.5-beta.1

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 (102) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +39 -39
  3. package/index.d.ts +2 -2
  4. package/index.js +8 -8
  5. package/package.json +41 -41
  6. package/quills/af4141/0.1.0/Quill.yaml +88 -88
  7. package/quills/af4141/0.1.0/design/TASK.md +19 -19
  8. package/quills/af4141/0.1.0/example.md +35 -35
  9. package/quills/af4141/0.1.0/packages/typst-af4141/FIELDS.json +3169 -3169
  10. package/quills/af4141/0.1.0/packages/typst-af4141/form.typ +538 -538
  11. package/quills/af4141/0.1.0/packages/typst-af4141/lib.typ +227 -227
  12. package/quills/af4141/0.1.0/packages/typst-af4141/typst.toml +7 -7
  13. package/quills/af4141/0.1.0/plate.typ +48 -48
  14. package/quills/classic_resume/0.1.0/Quill.yaml +118 -118
  15. package/quills/classic_resume/0.1.0/example.md +232 -232
  16. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/LICENSE +21 -21
  17. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/README.md +38 -38
  18. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/src/components.typ +184 -184
  19. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/src/layout.typ +42 -42
  20. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/src/lib.typ +5 -5
  21. package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/typst.toml +26 -26
  22. package/quills/classic_resume/0.1.0/plate.typ +44 -44
  23. package/quills/cmu_letter/0.1.0/.quillignore +30 -30
  24. package/quills/cmu_letter/0.1.0/Quill.yaml +64 -64
  25. package/quills/cmu_letter/0.1.0/assets/cmu-wordmark.svg +174 -174
  26. package/quills/cmu_letter/0.1.0/example.md +30 -30
  27. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/LICENSE +21 -21
  28. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/fonts/README.txt +100 -100
  29. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/backmatter.typ +13 -13
  30. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/config.typ +39 -39
  31. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/frontmatter.typ +72 -72
  32. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/lib.typ +47 -47
  33. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/mainmatter.typ +42 -42
  34. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/primitives.typ +70 -70
  35. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/utils.typ +85 -85
  36. package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/typst.toml +17 -17
  37. package/quills/cmu_letter/0.1.0/plate.typ +19 -19
  38. package/quills/daf4392/0.1.0/Quill.yaml +110 -0
  39. package/quills/daf4392/0.1.0/assets/arimo-v35-latin-700.ttf +0 -0
  40. package/quills/daf4392/0.1.0/assets/arimo-v35-latin-700italic.ttf +0 -0
  41. package/quills/daf4392/0.1.0/assets/arimo-v35-latin-italic.ttf +0 -0
  42. package/quills/daf4392/0.1.0/assets/arimo-v35-latin-regular.ttf +0 -0
  43. package/quills/daf4392/0.1.0/assets/page1.png +0 -0
  44. package/quills/daf4392/0.1.0/example.md +33 -0
  45. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/FIELDS.json +9 -0
  46. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/form.typ +14 -0
  47. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/lib.typ +227 -0
  48. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/out/debug.typ +4 -0
  49. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/out/example.typ +4 -0
  50. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/page1.png +0 -0
  51. package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/typst.toml +7 -0
  52. package/quills/daf4392/0.1.0/plate.typ +60 -0
  53. package/quills/taro/0.1.0/Quill.yaml +29 -29
  54. package/quills/taro/0.1.0/example.md +26 -26
  55. package/quills/taro/0.1.0/plate.typ +31 -31
  56. package/quills/usaf_memo/0.1.0/.quillignore +30 -30
  57. package/quills/usaf_memo/0.1.0/Quill.yaml +209 -209
  58. package/quills/usaf_memo/0.1.0/example.md +54 -54
  59. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/LICENSE +21 -21
  60. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/LICENSE +93 -93
  61. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/fonts/CopperplateCC/LICENSE.md +79 -79
  62. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/GNU General Public License.txt +339 -339
  63. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/backmatter.typ +28 -28
  64. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/body.typ +332 -332
  65. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/config.typ +63 -63
  66. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +114 -114
  67. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/indorsement.typ +118 -118
  68. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/lib.typ +55 -55
  69. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/mainmatter.typ +32 -32
  70. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/primitives.typ +272 -272
  71. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/utils.typ +377 -377
  72. package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/typst.toml +16 -16
  73. package/quills/usaf_memo/0.1.0/plate.typ +74 -74
  74. package/quills/usaf_memo/0.2.0/.quillignore +30 -30
  75. package/quills/usaf_memo/0.2.0/Quill.yaml +219 -219
  76. package/quills/usaf_memo/0.2.0/example.md +55 -55
  77. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/.gitignore +6 -6
  78. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/LICENSE +21 -21
  79. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/LICENSE +93 -93
  80. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/fonts/CopperplateCC/LICENSE.md +79 -79
  81. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/GNU General Public License.txt +339 -339
  82. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/backmatter.typ +28 -28
  83. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/body.typ +333 -333
  84. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/config.typ +64 -64
  85. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +114 -114
  86. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/indorsement.typ +118 -118
  87. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/lib.typ +55 -55
  88. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/mainmatter.typ +32 -32
  89. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/primitives.typ +293 -293
  90. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/utils.typ +374 -374
  91. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/typst.toml +27 -27
  92. package/quills/usaf_memo/0.2.0/plate.typ +75 -75
  93. package/templates/af4141.md +88 -88
  94. package/templates/cmu_letter_template.md +37 -37
  95. package/templates/daf4392.md +33 -0
  96. package/templates/loc.md +78 -78
  97. package/templates/pass_request.md +43 -43
  98. package/templates/rebuttal.md +55 -55
  99. package/templates/taro.md +26 -26
  100. package/templates/templates.json +55 -49
  101. package/templates/usaf_template.md +23 -23
  102. package/templates/ussf_template.md +29 -29
@@ -1,27 +1,27 @@
1
- [package]
2
- name = "tonguetoquill-usaf-memo"
3
- version = "2.0.0"
4
- compiler = "0.14.0"
5
- entrypoint = "src/lib.typ"
6
- repository = "https://github.com/nibsbin/tonguetoquill-usaf-memo"
7
- authors = ["Nibs"]
8
- license = "MIT"
9
- description = "Typeset memos that are fully compliant with AFH 33-337 'The Tongue and Quill'."
10
- keywords = [
11
- "USAF",
12
- "Air Force",
13
- "memorandum",
14
- "memo",
15
- "military",
16
- "AFH 33-337",
17
- "official",
18
- "correspondence",
19
- "formatting",
20
- ]
21
- categories = ["office", "report"]
22
- disciplines = ["politics", "law", "business", "engineering", "education"]
23
-
24
- [template]
25
- path = "template"
26
- entrypoint = "usaf-template.typ"
27
- thumbnail = "template/assets/thumbnail.png"
1
+ [package]
2
+ name = "tonguetoquill-usaf-memo"
3
+ version = "2.0.0"
4
+ compiler = "0.14.0"
5
+ entrypoint = "src/lib.typ"
6
+ repository = "https://github.com/nibsbin/tonguetoquill-usaf-memo"
7
+ authors = ["Nibs"]
8
+ license = "MIT"
9
+ description = "Typeset memos that are fully compliant with AFH 33-337 'The Tongue and Quill'."
10
+ keywords = [
11
+ "USAF",
12
+ "Air Force",
13
+ "memorandum",
14
+ "memo",
15
+ "military",
16
+ "AFH 33-337",
17
+ "official",
18
+ "correspondence",
19
+ "formatting",
20
+ ]
21
+ categories = ["office", "report"]
22
+ disciplines = ["politics", "law", "business", "engineering", "education"]
23
+
24
+ [template]
25
+ path = "template"
26
+ entrypoint = "usaf-template.typ"
27
+ thumbnail = "template/assets/thumbnail.png"
@@ -1,75 +1,75 @@
1
- #import "@local/quillmark-helper:0.1.0": data, eval-markup, parse-date
2
- #import "@local/tonguetoquill-usaf-memo:2.0.0": backmatter, frontmatter, indorsement, mainmatter
3
-
4
- // Frontmatter configuration
5
- #show: frontmatter.with(
6
- // Letterhead configuration
7
- letterhead_title: data.letterhead_title,
8
- letterhead_caption: data.letterhead_caption,
9
- letterhead_seal: image("assets/dow_seal.png"),
10
-
11
- // Date
12
- date: parse-date(data.date),
13
-
14
- // Receiver information
15
- memo_for: data.memo_for,
16
-
17
- // Sender information
18
- memo_from: data.memo_from,
19
-
20
- // Subject line
21
- subject: data.subject,
22
-
23
- // Optional references
24
- ..if "references" in data { (references: data.references) },
25
-
26
- // Optional footer tag line
27
- ..if "tag_line" in data { (footer_tag_line: data.tag_line) },
28
-
29
- // Optional classification level
30
- ..if "classification" in data { (classification_level: data.classification) },
31
-
32
- // Font size
33
- ..if "font_size" in data { (font_size: float(data.font_size) * 1pt) },
34
-
35
- // List recipients in vertical list
36
- memo_for_cols: 1,
37
- )
38
-
39
- // Mainmatter configuration
40
- #mainmatter[
41
- #eval-markup(data.BODY)
42
- ]
43
-
44
- // Backmatter
45
- #backmatter(
46
- // Signature block
47
- signature_block: data.signature_block,
48
-
49
- // Optional cc
50
- ..if "cc" in data { (cc: data.cc) },
51
-
52
- // Optional distribution
53
- ..if "distribution" in data { (distribution: data.distribution) },
54
-
55
- // Optional attachments
56
- ..if "attachments" in data { (attachments: data.attachments) },
57
- )
58
-
59
- // Indorsements - iterate through CARDS array and filter by CARD type
60
- #for card in data.CARDS {
61
- if card.CARD == "indorsement" {
62
- indorsement(
63
- from: card.at("from", default: ""),
64
- to: card.at("for", default: ""),
65
- signature_block: card.signature_block,
66
- ..if "attachments" in card { (attachments: card.attachments) },
67
- ..if "cc" in card { (cc: card.cc) },
68
- format: card.at("format", default: "standard"),
69
- ..if "date" in card { (date: card.date) },
70
- ..if "action" in card { (action: card.action) },
71
- )[
72
- #eval-markup(card.BODY)
73
- ]
74
- }
75
- }
1
+ #import "@local/quillmark-helper:0.1.0": data, eval-markup, parse-date
2
+ #import "@local/tonguetoquill-usaf-memo:2.0.0": backmatter, frontmatter, indorsement, mainmatter
3
+
4
+ // Frontmatter configuration
5
+ #show: frontmatter.with(
6
+ // Letterhead configuration
7
+ letterhead_title: data.letterhead_title,
8
+ letterhead_caption: data.letterhead_caption,
9
+ letterhead_seal: image("assets/dow_seal.png"),
10
+
11
+ // Date
12
+ date: parse-date(data.date),
13
+
14
+ // Receiver information
15
+ memo_for: data.memo_for,
16
+
17
+ // Sender information
18
+ memo_from: data.memo_from,
19
+
20
+ // Subject line
21
+ subject: data.subject,
22
+
23
+ // Optional references
24
+ ..if "references" in data { (references: data.references) },
25
+
26
+ // Optional footer tag line
27
+ ..if "tag_line" in data { (footer_tag_line: data.tag_line) },
28
+
29
+ // Optional classification level
30
+ ..if "classification" in data { (classification_level: data.classification) },
31
+
32
+ // Font size
33
+ ..if "font_size" in data { (font_size: float(data.font_size) * 1pt) },
34
+
35
+ // List recipients in vertical list
36
+ memo_for_cols: 1,
37
+ )
38
+
39
+ // Mainmatter configuration
40
+ #mainmatter[
41
+ #eval-markup(data.BODY)
42
+ ]
43
+
44
+ // Backmatter
45
+ #backmatter(
46
+ // Signature block
47
+ signature_block: data.signature_block,
48
+
49
+ // Optional cc
50
+ ..if "cc" in data { (cc: data.cc) },
51
+
52
+ // Optional distribution
53
+ ..if "distribution" in data { (distribution: data.distribution) },
54
+
55
+ // Optional attachments
56
+ ..if "attachments" in data { (attachments: data.attachments) },
57
+ )
58
+
59
+ // Indorsements - iterate through CARDS array and filter by CARD type
60
+ #for card in data.CARDS {
61
+ if card.CARD == "indorsement" {
62
+ indorsement(
63
+ from: card.at("from", default: ""),
64
+ to: card.at("for", default: ""),
65
+ signature_block: card.signature_block,
66
+ ..if "attachments" in card { (attachments: card.attachments) },
67
+ ..if "cc" in card { (cc: card.cc) },
68
+ format: card.at("format", default: "standard"),
69
+ ..if "date" in card { (date: card.date) },
70
+ ..if "action" in card { (action: card.action) },
71
+ )[
72
+ #eval-markup(card.BODY)
73
+ ]
74
+ }
75
+ }
@@ -1,88 +1,88 @@
1
- ---
2
- QUILL: af4141@0.1
3
- # EDIT: Full name in Last, First, Middle Initial format
4
- name: !fill "LAST, FIRST M."
5
- # EDIT: Unit of assignment (e.g., "1 ACCS/DOT", "726 ACS/MOC")
6
- unit: !fill "UNIT/SYMBOL"
7
- # EDIT: Current grade or CCC level (e.g., "SSgt", "GS-12", "3")
8
- grade: !fill "GRADE"
9
- # EDIT: Commander's authentication entry — often a commander's name/signature block or "Verified by unit commander"
10
- commanders_auth: !fill ""
11
- ---
12
-
13
- <!-- ═══════════════════════════════════════════════════════════════
14
- RECORD OF EXPERIENCE CARDS
15
- Each card below becomes one row in the experience table.
16
- Page 1 holds up to 16 rows; Page 2 holds up to 21 rows (37 max).
17
-
18
- Required reportable actions include:
19
- • Initial/subsequent duty assignment
20
- • Written and/or positional upgrade evaluations
21
- • Certification events (Mission Ready, Senior Director, etc.)
22
- • Downgrade or decertification
23
- • PCS/PCA departure
24
- • Temporary duty of significant duration
25
- • Any other commander-directed entry
26
-
27
- Leave blank any columns that do not apply to a given entry.
28
- ═══════════════════════════════════════════════════════════════ -->
29
-
30
- <!-- Example 1: Initial assignment to a unit -->
31
- ---
32
- CARD: experience
33
- date: "15 Jan 2025"
34
- action: "Assigned to 1 ACCS/DOT as Weapons Director"
35
- written_grade: ""
36
- written_grade_date: ""
37
- positional_grade: ""
38
- positional_grade_date: ""
39
- auth_or_remarks: "Initial assignment"
40
- ---
41
-
42
- <!-- Example 2: Written upgrade evaluation -->
43
- ---
44
- CARD: experience
45
- date: "15 Mar 2025"
46
- action: "Completed written upgrade evaluation for 3-Level"
47
- written_grade: "3"
48
- written_grade_date: "15 Mar 2025"
49
- positional_grade: ""
50
- positional_grade_date: ""
51
- auth_or_remarks: "Per AFMAN 13-1CRCV1"
52
- ---
53
-
54
- <!-- Example 3: Positional (live-environment) upgrade / certification -->
55
- ---
56
- CARD: experience
57
- date: "20 Jun 2025"
58
- action: "Certified Mission Ready — positional upgrade"
59
- written_grade: ""
60
- written_grade_date: ""
61
- positional_grade: "4"
62
- positional_grade_date: "20 Jun 2025"
63
- auth_or_remarks: "SSgt Jones, T.R."
64
- ---
65
-
66
- <!-- Example 4: Combined written + positional upgrade (both columns filled) -->
67
- ---
68
- CARD: experience
69
- date: "01 Aug 2025"
70
- action: "Upgrade evaluation — written and positional"
71
- written_grade: "4"
72
- written_grade_date: "01 Aug 2025"
73
- positional_grade: "4"
74
- positional_grade_date: "01 Aug 2025"
75
- auth_or_remarks: "Verified by unit commander"
76
- ---
77
-
78
- <!-- Example 5: PCS departure — no grade columns needed -->
79
- ---
80
- CARD: experience
81
- date: "01 Sep 2025"
82
- action: "PCS to 726 ACS/MOC, Tinker AFB OK"
83
- written_grade: ""
84
- written_grade_date: ""
85
- positional_grade: ""
86
- positional_grade_date: ""
87
- auth_or_remarks: "Outprocessed 1 ACCS/DOT"
88
- ---
1
+ ---
2
+ QUILL: af4141@0.1
3
+ # EDIT: Full name in Last, First, Middle Initial format
4
+ name: "LAST, FIRST M."
5
+ # EDIT: Unit of assignment (e.g., "1 ACCS/DOT", "726 ACS/MOC")
6
+ unit: "UNIT/SYMBOL"
7
+ # EDIT: Current grade or CCC level (e.g., "SSgt", "GS-12", "3")
8
+ grade: "GRADE"
9
+ # EDIT: Commander's authentication entry — often a commander's name/signature block or "Verified by unit commander"
10
+ commanders_auth: ""
11
+ ---
12
+
13
+ <!-- ═══════════════════════════════════════════════════════════════
14
+ RECORD OF EXPERIENCE CARDS
15
+ Each card below becomes one row in the experience table.
16
+ Page 1 holds up to 16 rows; Page 2 holds up to 21 rows (37 max).
17
+
18
+ Required reportable actions include:
19
+ • Initial/subsequent duty assignment
20
+ • Written and/or positional upgrade evaluations
21
+ • Certification events (Mission Ready, Senior Director, etc.)
22
+ • Downgrade or decertification
23
+ • PCS/PCA departure
24
+ • Temporary duty of significant duration
25
+ • Any other commander-directed entry
26
+
27
+ Leave blank any columns that do not apply to a given entry.
28
+ ═══════════════════════════════════════════════════════════════ -->
29
+
30
+ <!-- Example 1: Initial assignment to a unit -->
31
+ ---
32
+ CARD: experience
33
+ date: "15 Jan 2025"
34
+ action: "Assigned to 1 ACCS/DOT as Weapons Director"
35
+ written_grade: ""
36
+ written_grade_date: ""
37
+ positional_grade: ""
38
+ positional_grade_date: ""
39
+ auth_or_remarks: "Initial assignment"
40
+ ---
41
+
42
+ <!-- Example 2: Written upgrade evaluation -->
43
+ ---
44
+ CARD: experience
45
+ date: "15 Mar 2025"
46
+ action: "Completed written upgrade evaluation for 3-Level"
47
+ written_grade: "3"
48
+ written_grade_date: "15 Mar 2025"
49
+ positional_grade: ""
50
+ positional_grade_date: ""
51
+ auth_or_remarks: "Per AFMAN 13-1CRCV1"
52
+ ---
53
+
54
+ <!-- Example 3: Positional (live-environment) upgrade / certification -->
55
+ ---
56
+ CARD: experience
57
+ date: "20 Jun 2025"
58
+ action: "Certified Mission Ready — positional upgrade"
59
+ written_grade: ""
60
+ written_grade_date: ""
61
+ positional_grade: "4"
62
+ positional_grade_date: "20 Jun 2025"
63
+ auth_or_remarks: "SSgt Jones, T.R."
64
+ ---
65
+
66
+ <!-- Example 4: Combined written + positional upgrade (both columns filled) -->
67
+ ---
68
+ CARD: experience
69
+ date: "01 Aug 2025"
70
+ action: "Upgrade evaluation — written and positional"
71
+ written_grade: "4"
72
+ written_grade_date: "01 Aug 2025"
73
+ positional_grade: "4"
74
+ positional_grade_date: "01 Aug 2025"
75
+ auth_or_remarks: "Verified by unit commander"
76
+ ---
77
+
78
+ <!-- Example 5: PCS departure — no grade columns needed -->
79
+ ---
80
+ CARD: experience
81
+ date: "01 Sep 2025"
82
+ action: "PCS to 726 ACS/MOC, Tinker AFB OK"
83
+ written_grade: ""
84
+ written_grade_date: ""
85
+ positional_grade: ""
86
+ positional_grade_date: ""
87
+ auth_or_remarks: "Outprocessed 1 ACCS/DOT"
88
+ ---
@@ -1,38 +1,38 @@
1
- ---
2
- QUILL: cmu_letter@0.1
3
- department: Department Here
4
- address:
5
- - 5000 Forbes Avenue
6
- - Pittsburgh, PA 15213-3890
7
- url: cmu.edu
8
-
9
- date: 2025-11-30
10
- recipient:
11
- - Dr. Heinz Doofenshmirtz
12
- - 9297 Polly Parkway
13
- - City, Virginia 46231
14
- signature_block:
15
- - Phineas Flynn
16
- - Masters Student
17
- ---
18
- <!--
19
- In the data above, edit:
20
- - Recipient
21
- - Signature block
22
- -->
23
-
24
- Dear {:Dr. Heinz Doofenshmirtz:},
25
-
26
- Write your letter content here. This template uses the CMU letter format for professional academic correspondence.
27
-
28
- You can organize your thoughts with bullet points:
29
-
30
- - First point with supporting details and context.
31
-
32
- - Second point to address additional matters or provide supplementary information.
33
-
34
- Use additional paragraphs to develop your ideas fully and maintain clear communication.
35
-
36
- You can also **bold**, _italicize_, __underline__, `code`, and ~~strikethrough~~ your text as needed.
37
-
1
+ ---
2
+ QUILL: cmu_letter@0.1
3
+ department: Department Here
4
+ address:
5
+ - 5000 Forbes Avenue
6
+ - Pittsburgh, PA 15213-3890
7
+ url: cmu.edu
8
+
9
+ date: 2025-11-30
10
+ recipient:
11
+ - Dr. Heinz Doofenshmirtz
12
+ - 9297 Polly Parkway
13
+ - City, Virginia 46231
14
+ signature_block:
15
+ - Phineas Flynn
16
+ - Masters Student
17
+ ---
18
+ <!--
19
+ In the data above, edit:
20
+ - Recipient
21
+ - Signature block
22
+ -->
23
+
24
+ Dear {:Dr. Heinz Doofenshmirtz:},
25
+
26
+ Write your letter content here. This template uses the CMU letter format for professional academic correspondence.
27
+
28
+ You can organize your thoughts with bullet points:
29
+
30
+ - First point with supporting details and context.
31
+
32
+ - Second point to address additional matters or provide supplementary information.
33
+
34
+ Use additional paragraphs to develop your ideas fully and maintain clear communication.
35
+
36
+ You can also **bold**, _italicize_, __underline__, `code`, and ~~strikethrough~~ your text as needed.
37
+
38
38
  Sincerely,
@@ -0,0 +1,33 @@
1
+ ---
2
+ QUILL: daf4392
3
+
4
+ transportation_mode: "other"
5
+ departure_date: "XX Mar 26"
6
+ final_destination: "123 Sesame St, Fake City, MS"
7
+ notes: "Visiting Donald Duck over 3 day weekend."
8
+ organization: "333 TRS"
9
+ briefed_date: "XX Mar 26"
10
+ briefee_name: "Doe, Jane"
11
+ briefee_grade: "O-1"
12
+ briefer_name: ""
13
+ briefer_grade: ""
14
+ emergency_contact: "John Doe: 999-999-9999"
15
+ ---
16
+
17
+ ---
18
+ CARD: itinerary
19
+ date: "XX Mar"
20
+ departure_point: "Biloxi, MS"
21
+ arrival_point: "Fake City, MS"
22
+ rest_length: "2 days"
23
+ mileage: "250"
24
+ ---
25
+
26
+ ---
27
+ CARD: itinerary
28
+ date: "XX Mar"
29
+ departure_point: "Fake City, MS"
30
+ arrival_point: "Biloxi, MS"
31
+ rest_length: "0"
32
+ mileage: "0"
33
+ ---
package/templates/loc.md CHANGED
@@ -1,79 +1,79 @@
1
- ---
2
- QUILL: usaf_memo@0.2
3
- letterhead_title: DEPARTMENT OF THE AIR FORCE
4
- letterhead_caption:
5
- - 20th Fighter Wing (ACC)
6
- - Shaw Air Force Base South Carolina
7
- memo_for:
8
- - SUBJECT RANK FIRST M. LAST
9
- memo_from:
10
- - ISSUER ORG/SYMBOL
11
- subject: Letter of Counseling
12
- signature_block:
13
- - ISSUER FIRST M. LAST, RANK, USAF
14
- - ISSUER DUTY TITLE
15
- tag_line: Get Rekt # Optional tagline
16
-
17
- # Tune to fit all indorsements on second page
18
- font_size: 11
19
- compress_indorsements: true
20
-
21
- # Based on LOCAR template from https://www.shaw.af.mil/Portals/98/Docs/Legal/Revamp/2022%20LOCAR%20TEMPLATE%20(Enlisted).docx
22
- ---
23
-
24
- **NOTE: This template is undergoing major refinement. It is included for demonstration purposes.**
25
-
26
- <!-- 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:}.
28
-
29
- <!-- EDIT: Counseling paragraph: Discuss the impact of the member's actions and what improvement is expected. -->
30
- You are hereby counseled.
31
- {:impact_and_expected_improvement:}.
32
- Your conduct is unacceptable and any future misconduct may result in more severe action.
33
-
34
- 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.
35
-
36
- You will acknowledge receipt of this letter immediately by signing the first indorsement. Within 3 duty days from the day you received this letter, you will provide your response by signing the second indorsement below. Any comments or documents you wish to be considered concerning this letter must be submitted at that time, and will become part of the record, consistent with AFI 36-2907, Adverse Administrative Actions, paragraph 2.4.2.5. After receiving your response, I intend to notify you of my final disposition of this action within 3 duty days.
37
-
38
- ---
39
- CARD: indorsement
40
- for: ISSUER ORG/SYMBOL
41
- from: SUBJECT RANK FIRST M. LAST
42
- signature_block: SUBJECT FIRST M. LAST, RANK, USAF
43
- ---
44
-
45
- <!-- 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.
47
-
48
- ---
49
- CARD: indorsement
50
- from: SUBJECT RANK FIRST M. LAST
51
- for: ISSUER ORG/SYMBOL
52
- signature_block: SUBJECT FIRST M. LAST, RANK, USAF
53
- date: "Date: _____________"
54
- ---
55
-
56
- <!-- EDIT: Second Indorsement: Subject's response - choose one option -->
57
- I have reviewed the allegations contained in this Letter of Counseling. _I am submitting the attached documents in response_ / _I hereby waive my right to respond_.
58
-
59
- ---
60
- CARD: indorsement
61
- from: ISSUER RANK FIRST M. LAST
62
- for: SUBJECT RANK FIRST M. LAST
63
- signature_block: ISSUER FIRST M. LAST, RANK, USAF
64
- date: "Date: _____________"
65
- ---
66
-
67
- <!-- EDIT: Third Indorsement: Issuer's final decision - choose appropriate options -->
68
- _I have considered the response you submitted_ / _You waived your right to submit a response to this action_. I have decided to _withdraw_ / _sustain_ the Letter of Counseling.
69
-
70
- ---
71
- CARD: indorsement
72
- from: SUBJECT RANK FIRST M. LAST
73
- for: ISSUER ORG/SYMBOL
74
- signature_block: SUBJECT FIRST M. LAST, RANK, USAF
75
- date: "Date: _____________"
76
- ---
77
-
78
- <!-- EDIT: Fourth Indorsement: Subject acknowledges final decision -->
1
+ ---
2
+ QUILL: usaf_memo@0.2
3
+ letterhead_title: DEPARTMENT OF THE AIR FORCE
4
+ letterhead_caption:
5
+ - 20th Fighter Wing (ACC)
6
+ - Shaw Air Force Base South Carolina
7
+ memo_for:
8
+ - SUBJECT RANK FIRST M. LAST
9
+ memo_from:
10
+ - ISSUER ORG/SYMBOL
11
+ subject: Letter of Counseling
12
+ signature_block:
13
+ - ISSUER FIRST M. LAST, RANK, USAF
14
+ - ISSUER DUTY TITLE
15
+ tag_line: Get Rekt # Optional tagline
16
+
17
+ # Tune to fit all indorsements on second page
18
+ font_size: 11
19
+ compress_indorsements: true
20
+
21
+ # Based on LOCAR template from https://www.shaw.af.mil/Portals/98/Docs/Legal/Revamp/2022%20LOCAR%20TEMPLATE%20(Enlisted).docx
22
+ ---
23
+
24
+ **NOTE: This template is undergoing major refinement. It is included for demonstration purposes.**
25
+
26
+ <!-- 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:}.
28
+
29
+ <!-- EDIT: Counseling paragraph: Discuss the impact of the member's actions and what improvement is expected. -->
30
+ You are hereby counseled.
31
+ {:impact_and_expected_improvement:}.
32
+ Your conduct is unacceptable and any future misconduct may result in more severe action.
33
+
34
+ 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.
35
+
36
+ You will acknowledge receipt of this letter immediately by signing the first indorsement. Within 3 duty days from the day you received this letter, you will provide your response by signing the second indorsement below. Any comments or documents you wish to be considered concerning this letter must be submitted at that time, and will become part of the record, consistent with AFI 36-2907, Adverse Administrative Actions, paragraph 2.4.2.5. After receiving your response, I intend to notify you of my final disposition of this action within 3 duty days.
37
+
38
+ ---
39
+ CARD: indorsement
40
+ for: ISSUER ORG/SYMBOL
41
+ from: SUBJECT RANK FIRST M. LAST
42
+ signature_block: SUBJECT FIRST M. LAST, RANK, USAF
43
+ ---
44
+
45
+ <!-- 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.
47
+
48
+ ---
49
+ CARD: indorsement
50
+ from: SUBJECT RANK FIRST M. LAST
51
+ for: ISSUER ORG/SYMBOL
52
+ signature_block: SUBJECT FIRST M. LAST, RANK, USAF
53
+ date: "Date: _____________"
54
+ ---
55
+
56
+ <!-- EDIT: Second Indorsement: Subject's response - choose one option -->
57
+ I have reviewed the allegations contained in this Letter of Counseling. _I am submitting the attached documents in response_ / _I hereby waive my right to respond_.
58
+
59
+ ---
60
+ CARD: indorsement
61
+ from: ISSUER RANK FIRST M. LAST
62
+ for: SUBJECT RANK FIRST M. LAST
63
+ signature_block: ISSUER FIRST M. LAST, RANK, USAF
64
+ date: "Date: _____________"
65
+ ---
66
+
67
+ <!-- EDIT: Third Indorsement: Issuer's final decision - choose appropriate options -->
68
+ _I have considered the response you submitted_ / _You waived your right to submit a response to this action_. I have decided to _withdraw_ / _sustain_ the Letter of Counseling.
69
+
70
+ ---
71
+ CARD: indorsement
72
+ from: SUBJECT RANK FIRST M. LAST
73
+ for: ISSUER ORG/SYMBOL
74
+ signature_block: SUBJECT FIRST M. LAST, RANK, USAF
75
+ date: "Date: _____________"
76
+ ---
77
+
78
+ <!-- EDIT: Fourth Indorsement: Subject acknowledges final decision -->
79
79
  I acknowledge receipt of the final decision regarding disposition of this Letter of Counseling on {:date and time:}.