@airmark/quiver 0.32.2 → 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.
Files changed (90) hide show
  1. package/README.md +63 -21
  2. package/package.json +9 -7
  3. package/quills/af4141/0.1.0/Quill.yaml +4 -13
  4. package/quills/af4141/0.1.0/example.md +53 -0
  5. package/quills/afmc_moa/0.0.1/Quill.yaml +39 -62
  6. package/quills/afmc_moa/0.0.1/example.md +114 -0
  7. package/quills/afmc_moa/0.0.1/packages/typst-afmc-moa/src/config.typ +1 -1
  8. package/quills/classic_resume/0.0.1/Quill.yaml +281 -0
  9. package/quills/classic_resume/0.0.1/example.md +111 -0
  10. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/LICENSE +21 -0
  11. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/EBGaramond-Bold.ttf +0 -0
  12. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/EBGaramond-BoldItalic.ttf +0 -0
  13. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/EBGaramond-Italic.ttf +0 -0
  14. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/EBGaramond-Regular.ttf +0 -0
  15. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/fonts/EBGaramond/OFL.txt +94 -0
  16. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/components.typ +214 -0
  17. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/config.typ +61 -0
  18. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/layout.typ +86 -0
  19. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/lib.typ +7 -0
  20. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/src/util.typ +37 -0
  21. package/quills/classic_resume/0.0.1/packages/ttq-classic-resume/typst.toml +26 -0
  22. package/quills/classic_resume/0.0.1/plate.typ +143 -0
  23. package/quills/cyber_ribbon_chart/0.0.1/Quill.yaml +327 -0
  24. package/quills/cyber_ribbon_chart/0.0.1/example.md +55 -0
  25. package/quills/cyber_ribbon_chart/0.0.1/plate.typ +609 -0
  26. package/quills/daf1206/0.1.0/Quill.yaml +15 -18
  27. package/quills/daf1206/0.1.0/example.md +55 -0
  28. package/quills/daf4392/0.1.0/Quill.yaml +16 -7
  29. package/quills/daf4392/0.1.0/example.md +51 -0
  30. package/quills/daf4392/0.1.0/plate.typ +2 -2
  31. package/quills/usaf_letter/0.1.0/Quill.yaml +179 -0
  32. package/quills/usaf_letter/0.1.0/assets/dod_seal.png +0 -0
  33. package/quills/usaf_letter/0.1.0/assets/dow_seal.png +0 -0
  34. package/quills/usaf_letter/0.1.0/example.md +35 -0
  35. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/.gitignore +7 -0
  36. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/LICENSE +201 -0
  37. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/CopperplateCC/CopperplateCC-Bold.otf +0 -0
  38. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/CopperplateCC/LICENSE.md +79 -0
  39. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/LiberationMono/LICENSE +102 -0
  40. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/LiberationMono/LiberationMono-Regular.ttf +0 -0
  41. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/NimbusRomanNo9L/GNU General Public License.txt +340 -0
  42. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/NimbusRomanNo9L/NimbusRomNo9L-Med.otf +0 -0
  43. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/NimbusRomanNo9L/NimbusRomNo9L-MedIta.otf +0 -0
  44. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/NimbusRomanNo9L/NimbusRomNo9L-Reg.otf +0 -0
  45. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/NimbusRomanNo9L/NimbusRomNo9L-RegIta.otf +0 -0
  46. 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
  47. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/SpectralSC/SpectralSC-Italic.ttf +0 -0
  48. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/fonts/SpectralSC/SpectralSC-Regular.ttf +0 -0
  49. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/backmatter.typ +32 -0
  50. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/config.typ +45 -0
  51. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/frontmatter.typ +226 -0
  52. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/lib.typ +35 -0
  53. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/mainmatter.typ +140 -0
  54. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/primitives.typ +544 -0
  55. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/src/utils.typ +334 -0
  56. package/quills/usaf_letter/0.1.0/packages/tonguetoquill-usaf-letter/typst.toml +22 -0
  57. package/quills/usaf_letter/0.1.0/plate.typ +121 -0
  58. package/quills/usaf_memo/0.2.0/Quill.yaml +8 -41
  59. package/quills/usaf_memo/0.2.0/example.md +45 -0
  60. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/LICENSE +201 -21
  61. package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/typst.toml +1 -1
  62. package/quills/usaf_memo/0.3.0/Quill.yaml +51 -69
  63. package/quills/usaf_memo/0.3.0/example.md +48 -0
  64. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/LICENSE +201 -21
  65. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/SpectralSC/OFL.txt +93 -0
  66. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/SpectralSC/SpectralSC-Italic.ttf +0 -0
  67. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/SpectralSC/SpectralSC-Regular.ttf +0 -0
  68. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/backmatter.typ +29 -17
  69. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/body.typ +97 -126
  70. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/config.typ +12 -45
  71. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +81 -87
  72. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/indorsement.typ +58 -66
  73. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/lib.typ +14 -36
  74. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/mainmatter.typ +47 -19
  75. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/primitives.typ +158 -111
  76. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/src/utils.typ +41 -141
  77. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/typst.toml +3 -8
  78. package/quills/usaf_memo/0.3.0/plate.typ +78 -85
  79. package/templates/af4141.md +23 -0
  80. package/templates/appointment_letter.md +58 -0
  81. package/templates/daf1206.md +23 -0
  82. package/templates/daf4392.md +34 -0
  83. package/templates/deros_extension.md +40 -0
  84. package/templates/pass_request.md +48 -0
  85. package/templates/rebuttal.md +63 -0
  86. package/templates/templates.json +65 -0
  87. package/templates/usaf_template.md +30 -0
  88. package/templates/ussf_template.md +30 -0
  89. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/Cinzel[wght].ttf +0 -0
  90. package/quills/usaf_memo/0.3.0/packages/tonguetoquill-usaf-memo/fonts/CopperplateCC/CopperplateCC-Heavy.otf +0 -0
package/README.md CHANGED
@@ -7,14 +7,17 @@ and aligned to the current Quillmark spec.
7
7
 
8
8
  ## Contents
9
9
 
10
- | Quill | Version | Description |
11
- |--------------|---------|-----------------------------------------------------------------------------------|
12
- | `usaf_memo` | 0.3.0 | USAF / DAF Official Memorandum (AFH 33-337) |
13
- | `usaf_memo` | 0.2.0 | Previous release, retained so documents pinned to `@0.2` keep resolving |
14
- | `af4141` | 0.1.0 | AF Form 4141 — Individual's Record of Duties and Experience (Ground Environment) |
15
- | `daf1206` | 0.1.0 | DAF Form 1206 — Nomination for Award |
16
- | `daf4392` | 0.1.0 | DAF Form 4392 — Pre-Departure Safety Briefing (Page 2) |
17
- | `afmc_moa` | 0.0.1 | DoD Memorandum of Agreement (DoDI 4000.19) |
10
+ | Quill | Version | Description |
11
+ |----------------------|---------|----------------------------------------------------------------------------------|
12
+ | `usaf_memo` | 0.3.0 | USAF / DAF Official Memorandum (AFH 33-337) |
13
+ | `usaf_memo` | 0.2.0 | Previous release, retained so documents pinned to `@0.2` keep resolving |
14
+ | `usaf_letter` | 0.1.0 | USAF / DAF Personal Letter (AFH 33-337) |
15
+ | `af4141` | 0.1.0 | AF Form 4141 — Individual's Record of Duties and Experience (Ground Environment) |
16
+ | `daf1206` | 0.1.0 | DAF Form 1206 — Nomination for Award |
17
+ | `daf4392` | 0.1.0 | DAF Form 4392 — Pre-Departure Safety Briefing (Page 2) |
18
+ | `afmc_moa` | 0.0.1 | DoD Memorandum of Agreement (DoDI 4000.19) |
19
+ | `classic_resume` | 0.0.1 | Classic single-page resume |
20
+ | `cyber_ribbon_chart` | 0.0.1 | 17X Cyber Operations Officer ribbon chart and career vector planner |
18
21
 
19
22
  ## Install
20
23
 
@@ -22,8 +25,8 @@ and aligned to the current Quillmark spec.
22
25
  npm install @airmark/quiver @quillmark/quiver @quillmark/wasm
23
26
  ```
24
27
 
25
- This package ships only the source-quiver assets (`Quiver.yaml` + `quills/`) and
26
- exposes no JavaScript API. Loading is `@quillmark/quiver`'s, rendering is
28
+ This package ships the source-quiver assets (`Quiver.yaml` + `quills/`) and the
29
+ official [templates](#templates), and exposes no JavaScript API. Loading is `@quillmark/quiver`'s, rendering is
27
30
  `@quillmark/wasm`'s.
28
31
 
29
32
  ## Usage
@@ -91,11 +94,32 @@ quills/
91
94
  <name>/
92
95
  <x.y.z>/
93
96
  Quill.yaml
97
+ example.md
94
98
  plate.typ
95
99
  assets/
96
100
  packages/
101
+ templates/
102
+ templates.json
103
+ <file>.md
97
104
  ```
98
105
 
106
+ ## Templates
107
+
108
+ `templates/` holds the official starter documents Tongue to Quill offers in its
109
+ template library. They sit beside the quiver rather than inside it: the quiver
110
+ loaders never read them, and a consumer reaches them as files, through
111
+ `@airmark/quiver/templates/templates.json` and the Markdown it names. Each entry
112
+ is `{ id, name, description, file, tags }`, and every listed template is live.
113
+
114
+ An entry's `id` is permanent. Tongue to Quill derives the template's row id and
115
+ its shareable short code from it, so renaming one retires the old template (its
116
+ stars and its short code with it) and publishes a new one. Removing an entry
117
+ retires it the same way.
118
+
119
+ `npm test` renders every template against this quiver after `quillkit test`, and
120
+ a warning fails it as an error does, so a quill change that breaks a template
121
+ fails here rather than on the app's build.
122
+
99
123
  ## Working on a quill
100
124
 
101
125
  Two verbs, and they answer different questions.
@@ -106,23 +130,27 @@ this collection's own `node_modules`, so the versions pinned here are the format
106
130
  the quiver is packed in and the wasm the gate renders through.
107
131
 
108
132
  **Does it work?** `quillkit test` loads the collection with `fromDir`, compiles
109
- every quill, and renders each one's example document — the blueprint seeded from
110
- the `example:` values in `Quill.yaml`. It is the gate CI runs, so a validation
111
- failure surfaces here rather than on a consumer's build:
133
+ every quill, and renders each one's seed, every field absent but what a card
134
+ kind's `seed:` writes and rendering its `default:` or its blank, and its
135
+ `example.md`, one filled-in page of made-up values. `npm test` then fails a
136
+ quill that ships no example or whose example warns, and a template that warns.
137
+ It is the gate CI runs, so a validation failure surfaces here rather than on a
138
+ consumer's build:
112
139
 
113
140
  ```bash
114
141
  npm install
115
142
  npm test
116
143
  ```
117
144
 
118
- The gate renders nothing the schema did not write, so the coverage is the
119
- `example:` block: a field with no example is a field no render exercises.
145
+ The gate renders one answer per quill, so a page with a long list or a
146
+ wrapping value in it is a design fixture's to exercise (`design/`).
120
147
 
121
148
  **What is it like to use?** `npm run dev` is `quillkit studio`: it packs this
122
149
  quiver, serves the studio client over it, and repacks on every save — pick a
123
- quill, edit the seeded document, watch it paint, read the diagnostics. The
124
- client is quillkit's own, so there is nothing to install for it and nothing to
125
- keep in step.
150
+ quill, edit its example (or, with **Examples** off, its seed), or open one
151
+ of the official templates from **Templates…**, watch it paint, read the
152
+ diagnostics. The client is quillkit's own, so there is nothing to install for it
153
+ and nothing to keep in step.
126
154
 
127
155
  Reload to pick up a repack. Editing a quill into an invalid state is not a
128
156
  failure of the loop: it packs, and the client says what is wrong with that quill
@@ -134,7 +162,10 @@ wasm it was built against, and nothing at runtime reconciles the two. The gate
134
162
  is authoritative, studio is advisory.
135
163
 
136
164
  `npm run site` writes the arrangement a deploy serves into `site/` — the client
137
- at the root, a built quiver at `quiver/` beneath it — without serving it. CI
165
+ at the root, a built quiver at `quiver/` beneath it — without serving it. It
166
+ passes `--drafts`, so the `0.0.x` prototypes are packed beside the releases, and
167
+ `--templates`, so every deploy previews them and the templates as `npm run dev`
168
+ does. CI
138
169
  uploads that on every run, so a pull request — a fork's included — is reviewed
139
170
  by downloading the artifact and serving the directory.
140
171
 
@@ -142,7 +173,18 @@ by downloading the artifact and serving the directory.
142
173
  that same command and keeps the deploy here: nothing outside this repository
143
174
  holds `pages: write`.
144
175
 
176
+ `vercel.json` deploys the same layout to Vercel, where a pull request gets a
177
+ preview URL instead of an artifact to download. It carries the build, the output
178
+ directory and the one cache rule a host owes this layout — `assets/*` immutable,
179
+ which is the engine, and everything else already right by default. Importing the
180
+ repository is the rest of the setup. Both deploys run off `main` and neither
181
+ knows about the other.
182
+
145
183
  ## License
146
184
 
147
- Apache-2.0. Individual quills carry their own licensing terms; see the
148
- `packages/` directory inside each quill for upstream font and template licenses.
185
+ Apache-2.0, the quill packages under `quills/` included, except
186
+ `classic_resume`'s `ttq-classic-resume`, which is MIT. Two things a quill
187
+ carries are not the project's to license: the fonts its package bundles, which
188
+ keep their own upstream terms — see the `packages/` directory inside each quill
189
+ — and the DoD and DoW seals under `quills/*/*/assets/`, which are US
190
+ Government insignia and whose use is governed as such.
package/package.json CHANGED
@@ -1,29 +1,31 @@
1
1
  {
2
2
  "name": "@airmark/quiver",
3
- "version": "0.32.2",
3
+ "version": "0.34.0",
4
4
  "description": "Airmark Quiver — Air Force and DAF document Quills for Quillmark.",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "./Quiver.yaml": "./Quiver.yaml",
8
8
  "./quills/*": "./quills/*",
9
+ "./templates/*": "./templates/*",
9
10
  "./package.json": "./package.json"
10
11
  },
11
12
  "files": [
12
13
  "quills",
14
+ "templates",
13
15
  "Quiver.yaml"
14
16
  ],
15
17
  "engines": {
16
18
  "node": ">=24"
17
19
  },
18
20
  "devDependencies": {
19
- "@quillmark/quiver": "0.27.0",
20
- "@quillmark/wasm": "^0.110.0",
21
- "quillkit": "0.5.4"
21
+ "@quillmark/quiver": "0.33.0",
22
+ "@quillmark/wasm": "^0.121.0",
23
+ "quillkit": "0.13.0"
22
24
  },
23
25
  "scripts": {
24
- "test": "quillkit test",
25
- "site": "quillkit site --out site",
26
- "dev": "quillkit studio"
26
+ "test": "quillkit test && node scripts/check-examples.mjs && node scripts/check-templates.mjs",
27
+ "site": "quillkit site --out site --drafts --templates templates",
28
+ "dev": "quillkit studio --templates templates"
27
29
  },
28
30
  "keywords": [
29
31
  "quillmark",
@@ -14,13 +14,11 @@ main:
14
14
  name:
15
15
  type: string
16
16
  default: ""
17
- example: "Doe, John A."
18
17
  description: Full name in Last, First, Middle Initial format.
19
18
 
20
19
  unit:
21
20
  type: string
22
21
  default: ""
23
- example: 1st Air Control Squadron
24
22
  description: Unit or organization of assignment.
25
23
 
26
24
  grade:
@@ -35,9 +33,9 @@ main:
35
33
 
36
34
  card_kinds:
37
35
  experience:
36
+ title: Record of Experience
38
37
  description: Each card represents one row in the Record of Experience table. Rows fill page 1 (up to 16 rows) then page 2 (up to 21 rows), for a maximum of 37 rows.
39
38
  ui:
40
- title: Record of Experience
41
39
  groups: [record]
42
40
  body:
43
41
  enabled: false
@@ -45,7 +43,6 @@ card_kinds:
45
43
  date:
46
44
  type: date
47
45
  default: ""
48
- example: "2026-03-14"
49
46
  ui:
50
47
  group: record
51
48
  description: Date of the action (column A).
@@ -53,7 +50,6 @@ card_kinds:
53
50
  action:
54
51
  type: string
55
52
  default: ""
56
- example: Upgraded to 5-level; assumed ADO duties
57
53
  ui:
58
54
  group: record
59
55
  description: One type of action per line (column B).
@@ -61,16 +57,14 @@ card_kinds:
61
57
  written_grade:
62
58
  type: string
63
59
  default: ""
64
- example: "3"
65
60
  ui:
66
61
  group: record
67
62
  compact: true
68
- description: Written grade, if applicable (column C).
63
+ description: Written grade, as in 3, if applicable (column C).
69
64
 
70
65
  written_grade_date:
71
66
  type: date
72
67
  default: ""
73
- example: "2026-02-28"
74
68
  ui:
75
69
  group: record
76
70
  compact: true
@@ -79,16 +73,14 @@ card_kinds:
79
73
  positional_grade:
80
74
  type: string
81
75
  default: ""
82
- example: "2"
83
76
  ui:
84
77
  group: record
85
78
  compact: true
86
- description: Positional grade, if applicable (column E).
79
+ description: Positional grade, as in 2, if applicable (column E).
87
80
 
88
81
  positional_grade_date:
89
82
  type: date
90
83
  default: ""
91
- example: "2026-03-14"
92
84
  ui:
93
85
  group: record
94
86
  compact: true
@@ -97,7 +89,6 @@ card_kinds:
97
89
  auth_or_remarks:
98
90
  type: string
99
91
  default: ""
100
- example: "J.A.D."
101
92
  ui:
102
93
  group: record
103
- description: Authentication or remarks entry (column G).
94
+ description: Authentication initials, as in J.A.D., or remarks entry (column G).
@@ -0,0 +1,53 @@
1
+ ~~~
2
+ $quill: af4141
3
+ name: Doe, John A.
4
+ unit: 1st Air Control Squadron
5
+ grade: SSgt
6
+ commanders_auth: R.T.K., Lt Col
7
+ ~~~
8
+
9
+ ~~~
10
+ $kind: experience
11
+ date: 2025-06-02
12
+ action: Assigned to 1st Air Control Squadron
13
+ auth_or_remarks: M.S.P.
14
+ ~~~
15
+
16
+ ~~~
17
+ $kind: experience
18
+ date: 2025-09-19
19
+ action: Completed initial qualification training
20
+ auth_or_remarks: M.S.P.
21
+ ~~~
22
+
23
+ ~~~
24
+ $kind: experience
25
+ date: 2026-02-28
26
+ action: Initial evaluation, written phase
27
+ written_grade: "3"
28
+ written_grade_date: 2026-02-28
29
+ auth_or_remarks: L.E.W.
30
+ ~~~
31
+
32
+ ~~~
33
+ $kind: experience
34
+ date: 2026-03-14
35
+ action: Initial evaluation, positional phase
36
+ positional_grade: "2"
37
+ positional_grade_date: 2026-03-14
38
+ auth_or_remarks: L.E.W.
39
+ ~~~
40
+
41
+ ~~~
42
+ $kind: experience
43
+ date: 2026-03-14
44
+ action: Upgraded to 5-level
45
+ auth_or_remarks: R.T.K.
46
+ ~~~
47
+
48
+ ~~~
49
+ $kind: experience
50
+ date: 2026-03-16
51
+ action: Assumed ADO duties
52
+ auth_or_remarks: R.T.K.
53
+ ~~~
@@ -16,7 +16,6 @@ main:
16
16
  first_party_name:
17
17
  type: plaintext
18
18
  inline: true
19
- example: "[First Party Name and Acronym]"
20
19
  ui:
21
20
  group: parties
22
21
  description: "Full organization name and acronym of the first party (the MOA's proponent). Printed as 'THE [FIRST PARTY]' in the title block and referenced throughout as '[the First Party]'."
@@ -24,7 +23,6 @@ main:
24
23
  second_party_name:
25
24
  type: plaintext
26
25
  inline: true
27
- example: "[Second Party Name and Acronym]"
28
26
  ui:
29
27
  group: parties
30
28
  description: "Full organization name and acronym of the second party. Printed as 'THE [SECOND PARTY]' in the title block."
@@ -40,7 +38,6 @@ main:
40
38
  subject:
41
39
  type: plaintext
42
40
  inline: true
43
- example: "[Insert Subject]"
44
41
  ui:
45
42
  group: parties
46
43
  description: "Subject of the agreement, printed in the title block ('FOR [SUBJECT]') and on the Attachment A cover if reimbursable."
@@ -48,7 +45,6 @@ main:
48
45
  agreement_number:
49
46
  type: plaintext
50
47
  inline: true
51
- example: "[Insert Agreement Number]"
52
48
  ui:
53
49
  group: parties
54
50
  description: Unique agreement identification number, printed in the title block.
@@ -58,8 +54,6 @@ main:
58
54
  items:
59
55
  type: plaintext
60
56
  default: []
61
- example:
62
- - "[Insert Second Party Mailing Address]"
63
57
  ui:
64
58
  group: correspondence
65
59
  description: "Second Party's mailing address for MOA correspondence and notices. Also shown in the intro paragraph if second_party_is_non_government is true."
@@ -76,7 +70,6 @@ main:
76
70
  type: richtext
77
71
  inline: true
78
72
  default: ""
79
- example: "[Insert Reimbursable Support]"
80
73
  ui:
81
74
  group: financial_details
82
75
  description: "Attachment A, item 1: description of the reimbursable support. Only used when reimbursable is true."
@@ -85,27 +78,24 @@ main:
85
78
  type: plaintext
86
79
  inline: true
87
80
  default: ""
88
- example: "$[Insert Estimated Amount]"
89
81
  ui:
90
82
  group: financial_details
91
83
  compact: true
92
- description: "Attachment A, item 2: estimated amount of funds to be reimbursed. Only used when reimbursable is true."
84
+ description: "Attachment A, item 2: estimated amount of funds to be reimbursed, as in $50,000. Only used when reimbursable is true."
93
85
 
94
86
  appropriation_fy:
95
87
  type: plaintext
96
88
  inline: true
97
89
  default: ""
98
- example: "[Insert Appropriation FY]"
99
90
  ui:
100
91
  group: financial_details
101
92
  compact: true
102
- description: "Attachment A, item 2: appropriation fiscal year. Only used when reimbursable is true."
93
+ description: "Attachment A, item 2: appropriation fiscal year, printed after 'FY', as in 2027. Only used when reimbursable is true."
103
94
 
104
95
  cost_center_provider:
105
96
  type: plaintext
106
97
  inline: true
107
98
  default: ""
108
- example: "[Insert Provider Cost Center Number]"
109
99
  ui:
110
100
  group: financial_details
111
101
  compact: true
@@ -115,7 +105,6 @@ main:
115
105
  type: plaintext
116
106
  inline: true
117
107
  default: ""
118
- example: "[Insert Receiver Cost Center Number]"
119
108
  ui:
120
109
  group: financial_details
121
110
  compact: true
@@ -125,7 +114,6 @@ main:
125
114
  type: plaintext
126
115
  inline: true
127
116
  default: ""
128
- example: "[Insert Provider Financial POC]"
129
117
  ui:
130
118
  group: financial_details
131
119
  description: "Attachment A, item 4: provider's financial point of contact. Only used when reimbursable is true."
@@ -134,7 +122,6 @@ main:
134
122
  type: plaintext
135
123
  inline: true
136
124
  default: ""
137
- example: "[Insert Receiver Financial POC]"
138
125
  ui:
139
126
  group: financial_details
140
127
  description: "Attachment A, item 4: receiver's financial point of contact. Only used when reimbursable is true."
@@ -143,7 +130,6 @@ main:
143
130
  type: richtext
144
131
  inline: true
145
132
  default: ""
146
- example: "[Insert Any Additional Financial Information]"
147
133
  ui:
148
134
  group: financial_details
149
135
  description: "Attachment A, item 5: any other financial information required by DoD 7000.14-R or desired in the agreement. Only used when reimbursable is true."
@@ -151,7 +137,6 @@ main:
151
137
  first_party_signatory:
152
138
  type: plaintext
153
139
  inline: true
154
- example: "[First Party Signatory Name and Title]"
155
140
  ui:
156
141
  group: signatures
157
142
  description: "Name and title of the First Party's approval authority, printed under the signature line."
@@ -159,7 +144,6 @@ main:
159
144
  second_party_signatory:
160
145
  type: plaintext
161
146
  inline: true
162
- example: "[Second Party Signatory Name and Title]"
163
147
  ui:
164
148
  group: signatures
165
149
  description: "Name and title of the Second Party's approval authority, printed under the signature line."
@@ -173,35 +157,31 @@ main:
173
157
 
174
158
  card_kinds:
175
159
  background:
176
- description: "Background section (DoDI 4000.19 paragraph 1) explaining the circumstances leading to this MOA. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders before authorities."
177
- ui:
178
- title: Background
179
- body:
180
- example: |
160
+ title: Background
161
+ description: "Background section (DoDI 4000.19 paragraph 1) explaining the circumstances leading to this MOA. The body opens with 'BACKGROUND:'. Optional: include it only to explain a need the purpose does not make self-evident, typically with another federal agency; between OSD or DoD Components it is normally omitted. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders before authorities."
162
+ seed:
163
+ $body: |
181
164
  BACKGROUND: [If there is a need to discuss background, do so here. Normally, there is no need to discuss the background or provide justification for the MOA, particularly if between OSD or DoD Components. Occasionally, however, there is a desire to explain the need for the MOA; particularly where it is not self-evident from the purpose or it is with another federal agency.]
182
165
 
183
166
  authorities:
184
- description: "Authorities section citing the legal basis for this MOA. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after background, before purpose_and_scope."
185
- ui:
186
- title: Authorities
187
- body:
188
- example: |
167
+ title: Authorities
168
+ description: "Authorities section citing the legal basis for this MOA. The body opens with 'AUTHORITIES:' and states the legal authority for the MOA, such as the Economy Act, and each Party's authorities. Another federal agency's own asserted authority is prefaced 'The [Party] asserts the following authority:'; DoD need not agree with it. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after background, before purpose_and_scope."
169
+ seed:
170
+ $body: |
189
171
  AUTHORITIES: [State the legal authority upon which the reimbursable MOA is based, such as the Economy Act, or any other legal or significant authority that authorizes any such actions associated with this MOA. Discuss the authorities of the Parties here. If the other Party is another federal agency and insists on stating what it believes to be its own authority, preface that assertion with "The [Party] asserts the following authority:" The DoD has no obligation to agree with such assertions of authority by other federal agencies.]
190
172
 
191
173
  purpose_and_scope:
192
- description: "Purpose and Scope section describing what this MOA establishes. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after authorities, before responsibilities_of_the_parties."
193
- ui:
194
- title: Purpose and Scope
195
- body:
196
- example: |
174
+ title: Purpose and Scope
175
+ description: "Purpose and Scope section describing what this MOA establishes. The body opens with 'PURPOSE AND SCOPE:' and states the MOA's purpose and scope. Every MOA includes it. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after authorities, before responsibilities_of_the_parties."
176
+ seed:
177
+ $body: |
197
178
  PURPOSE AND SCOPE: [State the purpose and the scope of the MOA here. Always use this paragraph.]
198
179
 
199
180
  responsibilities_of_the_parties:
200
- description: "Responsibilities of the Parties section listing each party's obligations under this MOA. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after purpose_and_scope, before personnel."
201
- ui:
202
- title: Responsibilities of the Parties
203
- body:
204
- example: |
181
+ title: Responsibilities of the Parties
182
+ description: "Responsibilities of the Parties section listing each party's obligations under this MOA. The body opens with 'RESPONSIBILITIES OF THE PARTIES:', then a list item per Party ('The [First Party] will—', 'The [Second Party] will—', 'Both Parties will—'), each nesting every specific obligation of that Party. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after purpose_and_scope, before personnel."
183
+ seed:
184
+ $body: |
205
185
  RESPONSIBILITIES OF THE PARTIES:
206
186
 
207
187
  - The [First Party] will—
@@ -212,19 +192,17 @@ card_kinds:
212
192
  - [insert as many responsibilities as necessary but ensure that they apply to both Parties]
213
193
 
214
194
  personnel:
215
- description: "Personnel section describing each party's responsibility for its own personnel costs. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after responsibilities_of_the_parties, before general_provisions."
216
- ui:
217
- title: Personnel
218
- body:
219
- example: |
195
+ title: Personnel
196
+ description: "Personnel section describing each party's responsibility for its own personnel costs. The body opens with 'PERSONNEL:' and states each Party's responsibility for all costs of its personnel (pay and benefits, support, travel) and for their supervision and management, with the process for any shared supervision. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after responsibilities_of_the_parties, before general_provisions."
197
+ seed:
198
+ $body: |
220
199
  PERSONNEL: [Explain each Party's responsibility for all costs of its personnel, including pay and benefits, support, and travel, if applicable to the agreement. Each Party is responsible for supervision and management of its personnel. For shared supervision or management, explain the process to accomplish that.]
221
200
 
222
201
  general_provisions:
223
- description: "General Provisions section covering points of contact, termination, expiration, and other standard MOA terms. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after personnel, before financial_details."
224
- ui:
225
- title: General Provisions
226
- body:
227
- example: |
202
+ title: General Provisions
203
+ description: "General Provisions section covering points of contact, termination, expiration, and other standard MOA terms. The body opens with 'GENERAL PROVISIONS:', then a list of DoDI 4000.19's standard provisions, each led by its capitalized title: POINTS OF CONTACT (a primary and an alternate POC per Party, each with name, position, office, phone and email), CORRESPONDENCE, REVIEW OF AGREEMENT (a non-reimbursable MOA at least at mid-point, a reimbursable one annually for financial impacts), MODIFICATION OF AGREEMENT, DISPUTES, TERMINATION OF AGREEMENT (its days of written notice), TRANSFERABILITY, ENTIRE AGREEMENT, EFFECTIVE DATE, EXPIRATION DATE, NO THIRD PARTY BENEFICIARIES, SEVERABILITY and OTHER FEDERAL AGENCIES. CANCELLATION OR MODIFICATION OF PREVIOUS AGREEMENT, naming that agreement's subject, number and effective date, appears only when this MOA supersedes one. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after personnel, before financial_details."
204
+ seed:
205
+ $body: |
228
206
  GENERAL PROVISIONS:
229
207
 
230
208
  - POINTS OF CONTACT (POCS). The following POCs will be used by the Parties to communicate matters concerning this MOA. Each Party may change its POC upon reasonable notice to the other Party.
@@ -249,11 +227,10 @@ card_kinds:
249
227
  - OTHER FEDERAL AGENCIES. This MOA does not bind any federal agency, other than the Parties, nor waive required compliance with any law or regulation.
250
228
 
251
229
  financial_details:
252
- description: "Financial Details section (DoDI 4000.19 paragraph 7) covering availability of funds, billing, payment, and Economy Act determination. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after general_provisions, before list_of_attachments."
253
- ui:
254
- title: Financial Details
255
- body:
256
- example: |
230
+ title: Financial Details
231
+ description: "Financial Details section (DoDI 4000.19 paragraph 7) covering availability of funds, billing, payment, and Economy Act determination. The body opens with 'FINANCIAL DETAILS:'. A non-reimbursable MOA follows it with 'This MOA does not provide for reimbursement between the Parties.' A reimbursable one lists AVAILABILITY OF FUNDS, BILLING, PAYMENT OF BILLS, FINANCIAL SPECIFICS (referring to Attachment A and stating any allowance or advance payments) and ECONOMY ACT DETERMINATION AND FINDINGS (D&F). The D&F adds that the provider can render the support without jeopardizing its missions when the provider is an OSD or DoD Component, and that any required D&F is completed when a separate written one is required. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders after general_provisions, before list_of_attachments."
232
+ seed:
233
+ $body: |
257
234
  FINANCIAL DETAILS [include Attachment A in all reimbursable MOAs; if the MOA is not reimbursable add, "This MOA does not provide for reimbursement between the Parties"]:
258
235
 
259
236
  - AVAILABILITY OF FUNDS. This MOA does not document the obligation of funds between the Parties. The obligation of funds by the Parties, resulting from this MOA, is subject to the availability of funds pursuant to the DoD Financial Management Regulation. No provision in this MOA will be interpreted to require obligation or payment of funds in violation of the Anti-Deficiency Act, Section 1341 of Title 31, United States Code.
@@ -263,27 +240,27 @@ card_kinds:
263
240
  - ECONOMY ACT DETERMINATION AND FINDINGS (D&F). If the MOA is being entered into in accordance with Section 1535 of Title 31, United States Code (the Economy Act), both Parties agree that the requirements listed in Paragraph (a) of the Economy Act have been met. [Add the following sentence if the provider is an OSD or DoD Component] The provider has determined that the capabilities exist to render the requested support without jeopardizing its assigned missions. [Add the following sentence only if a separate, written Economy Act D&F is required.] Any required Economy Act D&F has been completed.
264
241
 
265
242
  list_of_attachments:
266
- description: "List of Attachments section enumerating this MOA's attachments. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders last, after financial_details, immediately before the signature blocks."
267
- ui:
268
- title: List of Attachments
269
- body:
270
- example: |
243
+ title: List of Attachments
244
+ description: "List of Attachments section enumerating this MOA's attachments. The body opens with 'LIST OF ATTACHMENTS:', then a list item per attachment, as in 'Attachment A, Financial Details'. Authored as its own card, but rendered inline as the body's numbered paragraphs — same chained decimal numbering as the rest of the body, no page break. Exactly one is expected; if more than one is supplied, only the first is used. Renders last, after financial_details, immediately before the signature blocks."
245
+ seed:
246
+ $body: |
271
247
  LIST OF ATTACHMENTS:
272
248
 
273
249
  - [List each attachment here, e.g. "Attachment A, Financial Details".]
274
250
 
275
251
  attachment:
252
+ title: Attachment
276
253
  description: "A lettered attachment to the MOA, starting at Attachment B (Attachment A is reserved for the reimbursable financial-details page and is generated automatically when 'reimbursable' is true). Each card starts on its own page."
277
254
  ui:
278
- title: Attachment
279
- body:
280
- example: |
255
+ groups: [attachment]
256
+ seed:
257
+ title: "[Insert Attachment Title]"
258
+ $body: |
281
259
  [Describe the attachment's content here.]
282
260
  fields:
283
261
  title:
284
262
  type: plaintext
285
263
  inline: true
286
- example: "[Insert Attachment Title]"
287
264
  ui:
288
265
  group: attachment
289
266
  description: "Subject of the attachment, printed on the cover line ('to [subject], [agreement_number] [title]')."