open-agreements 0.1.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 (243) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +161 -0
  3. package/bin/open-agreements.js +2 -0
  4. package/dist/cli/index.d.ts +2 -0
  5. package/dist/cli/index.d.ts.map +1 -0
  6. package/dist/cli/index.js +102 -0
  7. package/dist/cli/index.js.map +1 -0
  8. package/dist/commands/fill.d.ts +7 -0
  9. package/dist/commands/fill.d.ts.map +1 -0
  10. package/dist/commands/fill.js +84 -0
  11. package/dist/commands/fill.js.map +1 -0
  12. package/dist/commands/list.d.ts +6 -0
  13. package/dist/commands/list.d.ts.map +1 -0
  14. package/dist/commands/list.js +202 -0
  15. package/dist/commands/list.js.map +1 -0
  16. package/dist/commands/recipe.d.ts +21 -0
  17. package/dist/commands/recipe.d.ts.map +1 -0
  18. package/dist/commands/recipe.js +71 -0
  19. package/dist/commands/recipe.js.map +1 -0
  20. package/dist/commands/scan.d.ts +12 -0
  21. package/dist/commands/scan.d.ts.map +1 -0
  22. package/dist/commands/scan.js +122 -0
  23. package/dist/commands/scan.js.map +1 -0
  24. package/dist/commands/validate.d.ts +6 -0
  25. package/dist/commands/validate.d.ts.map +1 -0
  26. package/dist/commands/validate.js +139 -0
  27. package/dist/commands/validate.js.map +1 -0
  28. package/dist/core/command-generation/adapters/claude.d.ts +11 -0
  29. package/dist/core/command-generation/adapters/claude.d.ts.map +1 -0
  30. package/dist/core/command-generation/adapters/claude.js +85 -0
  31. package/dist/core/command-generation/adapters/claude.js.map +1 -0
  32. package/dist/core/command-generation/types.d.ts +14 -0
  33. package/dist/core/command-generation/types.d.ts.map +1 -0
  34. package/dist/core/command-generation/types.js +2 -0
  35. package/dist/core/command-generation/types.js.map +1 -0
  36. package/dist/core/engine.d.ts +13 -0
  37. package/dist/core/engine.d.ts.map +1 -0
  38. package/dist/core/engine.js +149 -0
  39. package/dist/core/engine.js.map +1 -0
  40. package/dist/core/external/index.d.ts +8 -0
  41. package/dist/core/external/index.d.ts.map +1 -0
  42. package/dist/core/external/index.js +92 -0
  43. package/dist/core/external/index.js.map +1 -0
  44. package/dist/core/external/types.d.ts +18 -0
  45. package/dist/core/external/types.d.ts.map +1 -0
  46. package/dist/core/external/types.js +2 -0
  47. package/dist/core/external/types.js.map +1 -0
  48. package/dist/core/fill-pipeline.d.ts +61 -0
  49. package/dist/core/fill-pipeline.d.ts.map +1 -0
  50. package/dist/core/fill-pipeline.js +279 -0
  51. package/dist/core/fill-pipeline.js.map +1 -0
  52. package/dist/core/fill-utils.d.ts +39 -0
  53. package/dist/core/fill-utils.d.ts.map +1 -0
  54. package/dist/core/fill-utils.js +127 -0
  55. package/dist/core/fill-utils.js.map +1 -0
  56. package/dist/core/metadata.d.ts +396 -0
  57. package/dist/core/metadata.d.ts.map +1 -0
  58. package/dist/core/metadata.js +126 -0
  59. package/dist/core/metadata.js.map +1 -0
  60. package/dist/core/recipe/cleaner.d.ts +13 -0
  61. package/dist/core/recipe/cleaner.d.ts.map +1 -0
  62. package/dist/core/recipe/cleaner.js +106 -0
  63. package/dist/core/recipe/cleaner.js.map +1 -0
  64. package/dist/core/recipe/downloader.d.ts +8 -0
  65. package/dist/core/recipe/downloader.d.ts.map +1 -0
  66. package/dist/core/recipe/downloader.js +58 -0
  67. package/dist/core/recipe/downloader.js.map +1 -0
  68. package/dist/core/recipe/index.d.ts +14 -0
  69. package/dist/core/recipe/index.d.ts.map +1 -0
  70. package/dist/core/recipe/index.js +91 -0
  71. package/dist/core/recipe/index.js.map +1 -0
  72. package/dist/core/recipe/ooxml-parts.d.ts +21 -0
  73. package/dist/core/recipe/ooxml-parts.d.ts.map +1 -0
  74. package/dist/core/recipe/ooxml-parts.js +33 -0
  75. package/dist/core/recipe/ooxml-parts.js.map +1 -0
  76. package/dist/core/recipe/patcher.d.ts +17 -0
  77. package/dist/core/recipe/patcher.d.ts.map +1 -0
  78. package/dist/core/recipe/patcher.js +240 -0
  79. package/dist/core/recipe/patcher.js.map +1 -0
  80. package/dist/core/recipe/types.d.ts +28 -0
  81. package/dist/core/recipe/types.d.ts.map +1 -0
  82. package/dist/core/recipe/types.js +2 -0
  83. package/dist/core/recipe/types.js.map +1 -0
  84. package/dist/core/recipe/verifier.d.ts +24 -0
  85. package/dist/core/recipe/verifier.d.ts.map +1 -0
  86. package/dist/core/recipe/verifier.js +143 -0
  87. package/dist/core/recipe/verifier.js.map +1 -0
  88. package/dist/core/validation/external.d.ts +16 -0
  89. package/dist/core/validation/external.d.ts.map +1 -0
  90. package/dist/core/validation/external.js +106 -0
  91. package/dist/core/validation/external.js.map +1 -0
  92. package/dist/core/validation/license.d.ts +15 -0
  93. package/dist/core/validation/license.d.ts.map +1 -0
  94. package/dist/core/validation/license.js +30 -0
  95. package/dist/core/validation/license.js.map +1 -0
  96. package/dist/core/validation/output.d.ts +12 -0
  97. package/dist/core/validation/output.d.ts.map +1 -0
  98. package/dist/core/validation/output.js +47 -0
  99. package/dist/core/validation/output.js.map +1 -0
  100. package/dist/core/validation/recipe.d.ts +19 -0
  101. package/dist/core/validation/recipe.d.ts.map +1 -0
  102. package/dist/core/validation/recipe.js +148 -0
  103. package/dist/core/validation/recipe.js.map +1 -0
  104. package/dist/core/validation/template.d.ts +11 -0
  105. package/dist/core/validation/template.d.ts.map +1 -0
  106. package/dist/core/validation/template.js +159 -0
  107. package/dist/core/validation/template.js.map +1 -0
  108. package/dist/index.d.ts +13 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +19 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/utils/paths.d.ts +15 -0
  113. package/dist/utils/paths.d.ts.map +1 -0
  114. package/dist/utils/paths.js +43 -0
  115. package/dist/utils/paths.js.map +1 -0
  116. package/external/LICENSE +27 -0
  117. package/external/README.md +38 -0
  118. package/external/yc-safe-discount/README.md +16 -0
  119. package/external/yc-safe-discount/clean.json +4 -0
  120. package/external/yc-safe-discount/metadata.yaml +71 -0
  121. package/external/yc-safe-discount/replacements.json +13 -0
  122. package/external/yc-safe-discount/template.docx +0 -0
  123. package/external/yc-safe-mfn/README.md +16 -0
  124. package/external/yc-safe-mfn/clean.json +4 -0
  125. package/external/yc-safe-mfn/metadata.yaml +64 -0
  126. package/external/yc-safe-mfn/replacements.json +12 -0
  127. package/external/yc-safe-mfn/template.docx +0 -0
  128. package/external/yc-safe-pro-rata-side-letter/README.md +16 -0
  129. package/external/yc-safe-pro-rata-side-letter/clean.json +4 -0
  130. package/external/yc-safe-pro-rata-side-letter/metadata.yaml +49 -0
  131. package/external/yc-safe-pro-rata-side-letter/replacements.json +9 -0
  132. package/external/yc-safe-pro-rata-side-letter/template.docx +0 -0
  133. package/external/yc-safe-valuation-cap/README.md +16 -0
  134. package/external/yc-safe-valuation-cap/clean.json +4 -0
  135. package/external/yc-safe-valuation-cap/metadata.yaml +64 -0
  136. package/external/yc-safe-valuation-cap/replacements.json +12 -0
  137. package/external/yc-safe-valuation-cap/template.docx +0 -0
  138. package/package.json +77 -0
  139. package/recipes/nvca-certificate-of-incorporation/clean.json +8 -0
  140. package/recipes/nvca-certificate-of-incorporation/metadata.yaml +43 -0
  141. package/recipes/nvca-certificate-of-incorporation/replacements.json +9 -0
  142. package/recipes/nvca-certificate-of-incorporation/schema.json +11 -0
  143. package/recipes/nvca-indemnification-agreement/clean.json +7 -0
  144. package/recipes/nvca-indemnification-agreement/metadata.yaml +83 -0
  145. package/recipes/nvca-indemnification-agreement/replacements.json +17 -0
  146. package/recipes/nvca-indemnification-agreement/schema.json +19 -0
  147. package/recipes/nvca-investors-rights-agreement/clean.json +12 -0
  148. package/recipes/nvca-investors-rights-agreement/metadata.yaml +75 -0
  149. package/recipes/nvca-investors-rights-agreement/replacements.json +18 -0
  150. package/recipes/nvca-investors-rights-agreement/schema.json +18 -0
  151. package/recipes/nvca-management-rights-letter/clean.json +7 -0
  152. package/recipes/nvca-management-rights-letter/metadata.yaml +50 -0
  153. package/recipes/nvca-management-rights-letter/replacements.json +11 -0
  154. package/recipes/nvca-management-rights-letter/schema.json +13 -0
  155. package/recipes/nvca-rofr-co-sale-agreement/clean.json +7 -0
  156. package/recipes/nvca-rofr-co-sale-agreement/metadata.yaml +80 -0
  157. package/recipes/nvca-rofr-co-sale-agreement/replacements.json +17 -0
  158. package/recipes/nvca-rofr-co-sale-agreement/schema.json +19 -0
  159. package/recipes/nvca-stock-purchase-agreement/clean.json +10 -0
  160. package/recipes/nvca-stock-purchase-agreement/metadata.yaml +74 -0
  161. package/recipes/nvca-stock-purchase-agreement/replacements.json +20 -0
  162. package/recipes/nvca-stock-purchase-agreement/schema.json +19 -0
  163. package/recipes/nvca-voting-agreement/README.md +53 -0
  164. package/recipes/nvca-voting-agreement/clean.json +7 -0
  165. package/recipes/nvca-voting-agreement/metadata.yaml +70 -0
  166. package/recipes/nvca-voting-agreement/replacements.json +18 -0
  167. package/recipes/nvca-voting-agreement/schema.json +28 -0
  168. package/skills/open-agreements/SKILL.md +166 -0
  169. package/templates/bonterms-mutual-nda/README.md +27 -0
  170. package/templates/bonterms-mutual-nda/metadata.yaml +58 -0
  171. package/templates/bonterms-mutual-nda/template.docx +0 -0
  172. package/templates/bonterms-professional-services-agreement/README.md +24 -0
  173. package/templates/bonterms-professional-services-agreement/metadata.yaml +40 -0
  174. package/templates/bonterms-professional-services-agreement/template.docx +0 -0
  175. package/templates/common-paper-ai-addendum/README.md +23 -0
  176. package/templates/common-paper-ai-addendum/metadata.yaml +33 -0
  177. package/templates/common-paper-ai-addendum/template.docx +0 -0
  178. package/templates/common-paper-ai-addendum-in-app/README.md +21 -0
  179. package/templates/common-paper-ai-addendum-in-app/metadata.yaml +23 -0
  180. package/templates/common-paper-ai-addendum-in-app/template.docx +0 -0
  181. package/templates/common-paper-amendment/README.md +27 -0
  182. package/templates/common-paper-amendment/metadata.yaml +53 -0
  183. package/templates/common-paper-amendment/template.docx +0 -0
  184. package/templates/common-paper-business-associate-agreement/README.md +29 -0
  185. package/templates/common-paper-business-associate-agreement/metadata.yaml +63 -0
  186. package/templates/common-paper-business-associate-agreement/template.docx +0 -0
  187. package/templates/common-paper-cloud-service-agreement/README.md +32 -0
  188. package/templates/common-paper-cloud-service-agreement/metadata.yaml +488 -0
  189. package/templates/common-paper-cloud-service-agreement/template.docx +0 -0
  190. package/templates/common-paper-csa-click-through/README.md +33 -0
  191. package/templates/common-paper-csa-click-through/metadata.yaml +83 -0
  192. package/templates/common-paper-csa-click-through/template.docx +0 -0
  193. package/templates/common-paper-csa-with-ai/README.md +49 -0
  194. package/templates/common-paper-csa-with-ai/metadata.yaml +166 -0
  195. package/templates/common-paper-csa-with-ai/template.docx +0 -0
  196. package/templates/common-paper-csa-with-sla/README.md +53 -0
  197. package/templates/common-paper-csa-with-sla/metadata.yaml +185 -0
  198. package/templates/common-paper-csa-with-sla/template.docx +0 -0
  199. package/templates/common-paper-csa-without-sla/README.md +47 -0
  200. package/templates/common-paper-csa-without-sla/metadata.yaml +155 -0
  201. package/templates/common-paper-csa-without-sla/template.docx +0 -0
  202. package/templates/common-paper-data-processing-agreement/README.md +46 -0
  203. package/templates/common-paper-data-processing-agreement/metadata.yaml +149 -0
  204. package/templates/common-paper-data-processing-agreement/template.docx +0 -0
  205. package/templates/common-paper-design-partner-agreement/README.md +29 -0
  206. package/templates/common-paper-design-partner-agreement/metadata.yaml +65 -0
  207. package/templates/common-paper-design-partner-agreement/template.docx +0 -0
  208. package/templates/common-paper-independent-contractor-agreement/README.md +27 -0
  209. package/templates/common-paper-independent-contractor-agreement/metadata.yaml +55 -0
  210. package/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
  211. package/templates/common-paper-letter-of-intent/README.md +25 -0
  212. package/templates/common-paper-letter-of-intent/metadata.yaml +43 -0
  213. package/templates/common-paper-letter-of-intent/template.docx +0 -0
  214. package/templates/common-paper-mutual-nda/README.md +29 -0
  215. package/templates/common-paper-mutual-nda/metadata.yaml +59 -0
  216. package/templates/common-paper-mutual-nda/template.docx +0 -0
  217. package/templates/common-paper-one-way-nda/README.md +27 -0
  218. package/templates/common-paper-one-way-nda/metadata.yaml +60 -0
  219. package/templates/common-paper-one-way-nda/template.docx +0 -0
  220. package/templates/common-paper-order-form/README.md +36 -0
  221. package/templates/common-paper-order-form/metadata.yaml +98 -0
  222. package/templates/common-paper-order-form/template.docx +0 -0
  223. package/templates/common-paper-order-form-with-sla/README.md +42 -0
  224. package/templates/common-paper-order-form-with-sla/metadata.yaml +129 -0
  225. package/templates/common-paper-order-form-with-sla/template.docx +0 -0
  226. package/templates/common-paper-partnership-agreement/README.md +34 -0
  227. package/templates/common-paper-partnership-agreement/metadata.yaml +90 -0
  228. package/templates/common-paper-partnership-agreement/template.docx +0 -0
  229. package/templates/common-paper-pilot-agreement/README.md +34 -0
  230. package/templates/common-paper-pilot-agreement/metadata.yaml +90 -0
  231. package/templates/common-paper-pilot-agreement/template.docx +0 -0
  232. package/templates/common-paper-professional-services-agreement/README.md +44 -0
  233. package/templates/common-paper-professional-services-agreement/metadata.yaml +141 -0
  234. package/templates/common-paper-professional-services-agreement/template.docx +0 -0
  235. package/templates/common-paper-software-license-agreement/README.md +18 -0
  236. package/templates/common-paper-software-license-agreement/metadata.yaml +13 -0
  237. package/templates/common-paper-software-license-agreement/template.docx +0 -0
  238. package/templates/common-paper-statement-of-work/README.md +32 -0
  239. package/templates/common-paper-statement-of-work/metadata.yaml +78 -0
  240. package/templates/common-paper-statement-of-work/template.docx +0 -0
  241. package/templates/common-paper-term-sheet/README.md +22 -0
  242. package/templates/common-paper-term-sheet/metadata.yaml +28 -0
  243. package/templates/common-paper-term-sheet/template.docx +0 -0
@@ -0,0 +1,38 @@
1
+ # External Templates
2
+
3
+ This directory contains third-party standard-form legal documents that are redistributable under **CC BY-ND 4.0** but must not be modified. The `template.docx` files here are unmodified copies of the originals published by their respective authors.
4
+
5
+ ## How It Works
6
+
7
+ Unlike templates in `templates/` (which contain pre-baked `{tag}` placeholders), external templates store the original document as-is. At fill time, the CLI applies bracket-to-tag replacement in a temporary directory, fills the values, and produces an output file. The committed source is never altered.
8
+
9
+ ## Contents
10
+
11
+ | Directory | Document | Publisher |
12
+ |-----------|----------|-----------|
13
+ | `yc-safe-valuation-cap/` | Post-Money SAFE — Valuation Cap | Y Combinator |
14
+ | `yc-safe-discount/` | Post-Money SAFE — Discount | Y Combinator |
15
+ | `yc-safe-mfn/` | Post-Money SAFE — MFN | Y Combinator |
16
+ | `yc-safe-pro-rata-side-letter/` | Pro Rata Side Letter | Y Combinator |
17
+
18
+ ## Each Directory Contains
19
+
20
+ - `template.docx` — Unmodified original DOCX from the publisher
21
+ - `metadata.yaml` — Zod-validated schema with fields, source URL, license info, and `source_sha256` integrity hash
22
+ - `replacements.json` — Bracket-to-tag mapping used at fill time
23
+ - `clean.json` — Optional cleanup config (footnotes, notes to drafter)
24
+ - `README.md` — Attribution, source link, usage notes
25
+
26
+ ## Updating External Templates
27
+
28
+ When a publisher releases a new version:
29
+
30
+ 1. Re-download the DOCX from the official `source_url` (never re-save through Microsoft Word)
31
+ 2. Update `source_sha256` in `metadata.yaml` with the new file's SHA-256 hash
32
+ 3. Update `version` in `metadata.yaml`
33
+ 4. Re-test the replacement mappings with `open-agreements scan` and a test fill
34
+ 5. Run `open-agreements validate` to confirm integrity
35
+
36
+ ## License
37
+
38
+ See [LICENSE](./LICENSE) for full attribution and license details.
@@ -0,0 +1,16 @@
1
+ # YC Post-Money SAFE — Discount
2
+
3
+ Y Combinator's Post-Money SAFE (Simple Agreement for Future Equity) with a discount rate and no valuation cap.
4
+
5
+ ## Source
6
+
7
+ - **Document**: Post-Money SAFE — Discount Only
8
+ - **Publisher**: Y Combinator
9
+ - **URL**: https://www.ycombinator.com/documents
10
+ - **License**: CC BY-ND 4.0
11
+
12
+ ## License Notice
13
+
14
+ This document is redistributed under the Creative Commons Attribution-NoDerivatives 4.0 International license (CC BY-ND 4.0). The `template.docx` file in this directory is an unmodified copy of the original as published by Y Combinator.
15
+
16
+ You may fill in the blanks for your own use. Do not redistribute modified versions of the document itself. See https://creativecommons.org/licenses/by-nd/4.0/ for full license terms.
@@ -0,0 +1,4 @@
1
+ {
2
+ "removeFootnotes": false,
3
+ "removeParagraphPatterns": []
4
+ }
@@ -0,0 +1,71 @@
1
+ name: YC Post-Money SAFE — Discount
2
+ description: >-
3
+ Y Combinator's Post-Money SAFE (Simple Agreement for Future Equity) with a
4
+ discount rate and no valuation cap.
5
+ source_url: https://www.ycombinator.com/documents
6
+ version: "2024.12"
7
+ license: CC-BY-ND-4.0
8
+ allow_derivatives: false
9
+ attribution_text: >-
10
+ Based on the Y Combinator Post-Money SAFE, available at
11
+ https://www.ycombinator.com/documents. Licensed under CC BY-ND 4.0.
12
+ Copyright Y Combinator.
13
+ source_sha256: 93d606fc568e39673ab96c581850ece30b4f478972b7b4d4d132df695264b5a5
14
+ fields:
15
+ - name: company_name
16
+ type: string
17
+ description: Full legal name of the company
18
+ required: true
19
+ section: Parties
20
+ - name: investor_name
21
+ type: string
22
+ description: Full legal name of the investor
23
+ required: true
24
+ section: Parties
25
+ - name: purchase_amount
26
+ type: string
27
+ description: Dollar amount of the investment (e.g., "100,000")
28
+ required: true
29
+ section: Deal Terms
30
+ - name: discount_rate
31
+ type: string
32
+ description: >-
33
+ Discount rate as a percentage, expressed as 100 minus the discount
34
+ (e.g., "80" for a 20% discount)
35
+ required: true
36
+ section: Deal Terms
37
+ - name: date_of_safe
38
+ type: date
39
+ description: Date the SAFE is executed
40
+ required: true
41
+ section: Deal Terms
42
+ - name: state_of_incorporation
43
+ type: string
44
+ description: State where the company is incorporated (e.g., "Delaware")
45
+ required: true
46
+ section: Company Details
47
+ - name: governing_law_jurisdiction
48
+ type: string
49
+ description: State whose laws govern the agreement (e.g., "Delaware")
50
+ required: true
51
+ section: Company Details
52
+ - name: company
53
+ type: string
54
+ description: Company name as used in the signature block (typically matches company_name)
55
+ required: true
56
+ section: Signatures
57
+ - name: company_name_caps
58
+ type: string
59
+ description: Company name in uppercase as used in the header (e.g., "ACME INC.")
60
+ required: true
61
+ section: Signatures
62
+ - name: name
63
+ type: string
64
+ description: Name of the company signatory
65
+ required: true
66
+ section: Signatures
67
+ - name: title
68
+ type: string
69
+ description: Title of the company signatory (e.g., "CEO")
70
+ required: true
71
+ section: Signatures
@@ -0,0 +1,13 @@
1
+ {
2
+ "[Company Name]": "{company_name}",
3
+ "[Investor Name]": "{investor_name}",
4
+ "[__________]": "{purchase_amount}",
5
+ "[100 minus the discount]": "{discount_rate}",
6
+ "[Date of Safe]": "{date_of_safe}",
7
+ "[State of Incorporation]": "{state_of_incorporation}",
8
+ "[Governing Law Jurisdiction]": "{governing_law_jurisdiction}",
9
+ "[COMPANY]": "{company}",
10
+ "[COMPANY NAME]": "{company_name_caps}",
11
+ "[name]": "{name}",
12
+ "[title]": "{title}"
13
+ }
@@ -0,0 +1,16 @@
1
+ # YC Post-Money SAFE — MFN
2
+
3
+ Y Combinator's Post-Money SAFE (Simple Agreement for Future Equity) with a most favored nation (MFN) provision, no valuation cap, and no discount.
4
+
5
+ ## Source
6
+
7
+ - **Document**: Post-Money SAFE — MFN Only
8
+ - **Publisher**: Y Combinator
9
+ - **URL**: https://www.ycombinator.com/documents
10
+ - **License**: CC BY-ND 4.0
11
+
12
+ ## License Notice
13
+
14
+ This document is redistributed under the Creative Commons Attribution-NoDerivatives 4.0 International license (CC BY-ND 4.0). The `template.docx` file in this directory is an unmodified copy of the original as published by Y Combinator.
15
+
16
+ You may fill in the blanks for your own use. Do not redistribute modified versions of the document itself. See https://creativecommons.org/licenses/by-nd/4.0/ for full license terms.
@@ -0,0 +1,4 @@
1
+ {
2
+ "removeFootnotes": false,
3
+ "removeParagraphPatterns": []
4
+ }
@@ -0,0 +1,64 @@
1
+ name: YC Post-Money SAFE — MFN
2
+ description: >-
3
+ Y Combinator's Post-Money SAFE (Simple Agreement for Future Equity) with a
4
+ most favored nation (MFN) provision, no valuation cap, and no discount.
5
+ source_url: https://www.ycombinator.com/documents
6
+ version: "2024.12"
7
+ license: CC-BY-ND-4.0
8
+ allow_derivatives: false
9
+ attribution_text: >-
10
+ Based on the Y Combinator Post-Money SAFE, available at
11
+ https://www.ycombinator.com/documents. Licensed under CC BY-ND 4.0.
12
+ Copyright Y Combinator.
13
+ source_sha256: d3ad99466059b6f4d838e8e5daeeff5752e9866e6b557c6056df772f8509e727
14
+ fields:
15
+ - name: company_name
16
+ type: string
17
+ description: Full legal name of the company
18
+ required: true
19
+ section: Parties
20
+ - name: investor_name
21
+ type: string
22
+ description: Full legal name of the investor
23
+ required: true
24
+ section: Parties
25
+ - name: purchase_amount
26
+ type: string
27
+ description: Dollar amount of the investment (e.g., "100,000")
28
+ required: true
29
+ section: Deal Terms
30
+ - name: date_of_safe
31
+ type: date
32
+ description: Date the SAFE is executed
33
+ required: true
34
+ section: Deal Terms
35
+ - name: state_of_incorporation
36
+ type: string
37
+ description: State where the company is incorporated (e.g., "Delaware")
38
+ required: true
39
+ section: Company Details
40
+ - name: governing_law_jurisdiction
41
+ type: string
42
+ description: State whose laws govern the agreement (e.g., "Delaware")
43
+ required: true
44
+ section: Company Details
45
+ - name: company
46
+ type: string
47
+ description: Company name as used in the signature block (typically matches company_name)
48
+ required: true
49
+ section: Signatures
50
+ - name: company_name_caps
51
+ type: string
52
+ description: Company name in uppercase as used in the header (e.g., "ACME INC.")
53
+ required: true
54
+ section: Signatures
55
+ - name: name
56
+ type: string
57
+ description: Name of the company signatory
58
+ required: true
59
+ section: Signatures
60
+ - name: title
61
+ type: string
62
+ description: Title of the company signatory (e.g., "CEO")
63
+ required: true
64
+ section: Signatures
@@ -0,0 +1,12 @@
1
+ {
2
+ "[Company Name]": "{company_name}",
3
+ "[Investor Name]": "{investor_name}",
4
+ "[_____________]": "{purchase_amount}",
5
+ "[Date of Safe]": "{date_of_safe}",
6
+ "[State of Incorporation]": "{state_of_incorporation}",
7
+ "[Governing Law Jurisdiction]": "{governing_law_jurisdiction}",
8
+ "[COMPANY]": "{company}",
9
+ "[COMPANY NAME]": "{company_name_caps}",
10
+ "[name]": "{name}",
11
+ "[title]": "{title}"
12
+ }
@@ -0,0 +1,16 @@
1
+ # YC Pro Rata Side Letter
2
+
3
+ Y Combinator's Pro Rata Side Letter, granting the investor pro rata rights in connection with a Post-Money SAFE investment.
4
+
5
+ ## Source
6
+
7
+ - **Document**: Pro Rata Side Letter
8
+ - **Publisher**: Y Combinator
9
+ - **URL**: https://www.ycombinator.com/documents
10
+ - **License**: CC BY-ND 4.0
11
+
12
+ ## License Notice
13
+
14
+ This document is redistributed under the Creative Commons Attribution-NoDerivatives 4.0 International license (CC BY-ND 4.0). The `template.docx` file in this directory is an unmodified copy of the original as published by Y Combinator.
15
+
16
+ You may fill in the blanks for your own use. Do not redistribute modified versions of the document itself. See https://creativecommons.org/licenses/by-nd/4.0/ for full license terms.
@@ -0,0 +1,4 @@
1
+ {
2
+ "removeFootnotes": false,
3
+ "removeParagraphPatterns": []
4
+ }
@@ -0,0 +1,49 @@
1
+ name: YC Pro Rata Side Letter
2
+ description: >-
3
+ Y Combinator's Pro Rata Side Letter, granting the investor pro rata rights
4
+ in connection with a Post-Money SAFE investment.
5
+ source_url: https://www.ycombinator.com/documents
6
+ version: "2024.12"
7
+ license: CC-BY-ND-4.0
8
+ allow_derivatives: false
9
+ attribution_text: >-
10
+ Based on the Y Combinator Pro Rata Side Letter, available at
11
+ https://www.ycombinator.com/documents. Licensed under CC BY-ND 4.0.
12
+ Copyright Y Combinator.
13
+ source_sha256: 9b769a6a724da0c40e6649df8c774f49cc20dafe7247cc366ce4b98b4c2a3510
14
+ fields:
15
+ - name: company_name
16
+ type: string
17
+ description: Full legal name of the company
18
+ required: true
19
+ section: Parties
20
+ - name: investor_name
21
+ type: string
22
+ description: Full legal name of the investor
23
+ required: true
24
+ section: Parties
25
+ - name: date_of_safe
26
+ type: date
27
+ description: Date of the related SAFE agreement
28
+ required: true
29
+ section: Deal Terms
30
+ - name: company_name_caps
31
+ type: string
32
+ description: Company name in uppercase as used in the header (e.g., "ACME INC.")
33
+ required: true
34
+ section: Signatures
35
+ - name: investor_name_caps
36
+ type: string
37
+ description: Investor name in uppercase as used in the header (e.g., "JANE DOE")
38
+ required: true
39
+ section: Signatures
40
+ - name: name
41
+ type: string
42
+ description: Name of the company signatory
43
+ required: true
44
+ section: Signatures
45
+ - name: title
46
+ type: string
47
+ description: Title of the company signatory (e.g., "CEO")
48
+ required: true
49
+ section: Signatures
@@ -0,0 +1,9 @@
1
+ {
2
+ "[Company Name]": "{company_name}",
3
+ "[Investor Name]": "{investor_name}",
4
+ "[Date of Safe]": "{date_of_safe}",
5
+ "[COMPANY NAME]": "{company_name_caps}",
6
+ "[INVESTOR NAME]": "{investor_name_caps}",
7
+ "[name]": "{name}",
8
+ "[title]": "{title}"
9
+ }
@@ -0,0 +1,16 @@
1
+ # YC Post-Money SAFE — Valuation Cap
2
+
3
+ Y Combinator's Post-Money SAFE (Simple Agreement for Future Equity) with a valuation cap and no discount.
4
+
5
+ ## Source
6
+
7
+ - **Document**: Post-Money SAFE — Valuation Cap Only
8
+ - **Publisher**: Y Combinator
9
+ - **URL**: https://www.ycombinator.com/documents
10
+ - **License**: CC BY-ND 4.0
11
+
12
+ ## License Notice
13
+
14
+ This document is redistributed under the Creative Commons Attribution-NoDerivatives 4.0 International license (CC BY-ND 4.0). The `template.docx` file in this directory is an unmodified copy of the original as published by Y Combinator.
15
+
16
+ You may fill in the blanks for your own use. Do not redistribute modified versions of the document itself. See https://creativecommons.org/licenses/by-nd/4.0/ for full license terms.
@@ -0,0 +1,4 @@
1
+ {
2
+ "removeFootnotes": false,
3
+ "removeParagraphPatterns": []
4
+ }
@@ -0,0 +1,64 @@
1
+ name: YC Post-Money SAFE — Valuation Cap
2
+ description: >-
3
+ Y Combinator's Post-Money SAFE (Simple Agreement for Future Equity) with a
4
+ valuation cap and no discount. The most common early-stage investment instrument.
5
+ source_url: https://www.ycombinator.com/documents
6
+ version: "2024.12"
7
+ license: CC-BY-ND-4.0
8
+ allow_derivatives: false
9
+ attribution_text: >-
10
+ Based on the Y Combinator Post-Money SAFE, available at
11
+ https://www.ycombinator.com/documents. Licensed under CC BY-ND 4.0.
12
+ Copyright Y Combinator.
13
+ source_sha256: 185d24f5bcf13acdf1419bf1d420771088da5dea3b3f3e0cdc7fa5df643649c4
14
+ fields:
15
+ - name: company_name
16
+ type: string
17
+ description: Full legal name of the company
18
+ required: true
19
+ section: Parties
20
+ - name: investor_name
21
+ type: string
22
+ description: Full legal name of the investor
23
+ required: true
24
+ section: Parties
25
+ - name: purchase_amount
26
+ type: string
27
+ description: Dollar amount of the investment (e.g., "100,000")
28
+ required: true
29
+ section: Deal Terms
30
+ - name: valuation_cap
31
+ type: string
32
+ description: Post-money valuation cap in dollars (e.g., "10,000,000")
33
+ required: true
34
+ section: Deal Terms
35
+ - name: date_of_safe
36
+ type: date
37
+ description: Date the SAFE is executed
38
+ required: true
39
+ section: Deal Terms
40
+ - name: state_of_incorporation
41
+ type: string
42
+ description: State where the company is incorporated (e.g., "Delaware")
43
+ required: true
44
+ section: Company Details
45
+ - name: governing_law_jurisdiction
46
+ type: string
47
+ description: State whose laws govern the agreement (e.g., "Delaware")
48
+ required: true
49
+ section: Company Details
50
+ - name: company
51
+ type: string
52
+ description: Company name as used in the signature block (typically matches company_name)
53
+ required: true
54
+ section: Signatures
55
+ - name: name
56
+ type: string
57
+ description: Name of the company signatory
58
+ required: true
59
+ section: Signatures
60
+ - name: title
61
+ type: string
62
+ description: Title of the company signatory (e.g., "CEO")
63
+ required: true
64
+ section: Signatures
@@ -0,0 +1,12 @@
1
+ {
2
+ "[Company Name]": "{company_name}",
3
+ "[Investor Name]": "{investor_name}",
4
+ "$[_____________] (the \u201cPurchase Amount\u201d)": "${purchase_amount} (the \u201cPurchase Amount\u201d)",
5
+ "$[_____________].": "${valuation_cap}.",
6
+ "[Date of Safe]": "{date_of_safe}",
7
+ "[State of Incorporation]": "{state_of_incorporation}",
8
+ "[Governing Law Jurisdiction]": "{governing_law_jurisdiction}",
9
+ "[COMPANY]": "{company}",
10
+ "[name]": "{name}",
11
+ "[title]": "{title}"
12
+ }
package/package.json ADDED
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "open-agreements",
3
+ "version": "0.1.0",
4
+ "description": "Open-source legal template filling CLI and library",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/open-agreements/open-agreements.git"
8
+ },
9
+ "homepage": "https://github.com/open-agreements/open-agreements#readme",
10
+ "bugs": {
11
+ "url": "https://github.com/open-agreements/open-agreements/issues"
12
+ },
13
+ "type": "module",
14
+ "bin": {
15
+ "open-agreements": "./bin/open-agreements.js"
16
+ },
17
+ "main": "./dist/index.js",
18
+ "types": "./dist/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "import": "./dist/index.js",
22
+ "types": "./dist/index.d.ts"
23
+ }
24
+ },
25
+ "files": [
26
+ "dist/",
27
+ "bin/",
28
+ "templates/",
29
+ "external/",
30
+ "recipes/",
31
+ "skills/",
32
+ "README.md",
33
+ "LICENSE"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsc",
37
+ "dev": "tsc --watch",
38
+ "test": "vitest",
39
+ "test:run": "vitest run",
40
+ "lint": "eslint src/",
41
+ "validate": "node bin/open-agreements.js validate",
42
+ "prepare": "npm run build"
43
+ },
44
+ "keywords": [
45
+ "legal",
46
+ "templates",
47
+ "nda",
48
+ "agreements",
49
+ "docx",
50
+ "contract"
51
+ ],
52
+ "author": "UseJunior <steven@usejunior.com>",
53
+ "license": "MIT",
54
+ "dependencies": {
55
+ "adm-zip": "^0.5.16",
56
+ "commander": "^13.1.0",
57
+ "docx-templates": "^4.13.0",
58
+ "@xmldom/xmldom": "^0.9.5",
59
+ "js-yaml": "^4.1.0",
60
+ "zod": "^3.24.0"
61
+ },
62
+ "devDependencies": {
63
+ "@types/adm-zip": "^0.5.7",
64
+ "@types/js-yaml": "^4.0.9",
65
+ "@types/node": "^22.13.0",
66
+ "@eslint/js": "^9.39.2",
67
+ "docx": "^9.5.1",
68
+ "eslint": "^9.19.0",
69
+ "globals": "^14.0.0",
70
+ "typescript-eslint": "^8.54.0",
71
+ "typescript": "^5.7.0",
72
+ "vitest": "^3.0.0"
73
+ },
74
+ "engines": {
75
+ "node": ">=20"
76
+ }
77
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "removeFootnotes": true,
3
+ "removeParagraphPatterns": [
4
+ "^Note to Drafter:",
5
+ "^Preliminary Note\\b",
6
+ "^Use the following"
7
+ ]
8
+ }
@@ -0,0 +1,43 @@
1
+ name: NVCA Model Certificate of Incorporation
2
+ description: >-
3
+ Amended and restated certificate of incorporation for venture-backed Delaware
4
+ corporations, defining preferred stock rights, preferences, and privileges.
5
+ source_url: https://nvca.org/wp-content/uploads/2025/10/NVCA-Model-COI-10-1-2025.docx
6
+ source_version: "10-1-2025"
7
+ license_note: >-
8
+ NVCA model documents are freely downloadable but not redistributable.
9
+ This recipe contains only transformation instructions, not the source document.
10
+ source_sha256: d75600769c12724990de48149d7a2bb161f3522daa54b1783672f93697d87d29
11
+ optional: false
12
+ fields:
13
+ - name: original_issue_price
14
+ type: string
15
+ description: Original purchase price per share of Series A Preferred Stock
16
+ required: true
17
+ - name: initial_purchase_price
18
+ type: string
19
+ description: Initial Series A purchase price per share
20
+ required: true
21
+ - name: signature_page_marker
22
+ type: string
23
+ description: Signature page marker text
24
+ required: false
25
+ default: Signature Page Follows
26
+ - name: time_zone
27
+ type: string
28
+ description: Time zone for notices and deadlines (e.g., Eastern, Pacific)
29
+ required: true
30
+ default: Eastern
31
+ - name: par_value
32
+ type: string
33
+ description: Par value per share of common and preferred stock
34
+ required: true
35
+ default: "0.001"
36
+ - name: specify_percentage
37
+ type: string
38
+ description: Percentage threshold for specified provisions
39
+ required: true
40
+ - name: effective_date
41
+ type: date
42
+ description: Effective date of the certificate of incorporation
43
+ required: true
@@ -0,0 +1,9 @@
1
+ {
2
+ "[insert original purchase price of Series A Preferred Stock]": "{original_issue_price}",
3
+ "[insert initial Series A purchase price]": "{initial_purchase_price}",
4
+ "[Signature Page Follows]": "{signature_page_marker}",
5
+ "[Eastern/Pacific]": "{time_zone}",
6
+ "[$0.001]": "${par_value}",
7
+ "[specify percentage]": "{specify_percentage}",
8
+ "[________ __, 20__]": "{effective_date}"
9
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "fields": [
3
+ { "name": "original_issue_price", "type": "string", "description": "Original purchase price per share of Series A Preferred Stock" },
4
+ { "name": "initial_purchase_price", "type": "string", "description": "Initial Series A purchase price per share" },
5
+ { "name": "signature_page_marker", "type": "string", "description": "Signature page marker text" },
6
+ { "name": "time_zone", "type": "string", "description": "Time zone for notices and deadlines (e.g., Eastern, Pacific)" },
7
+ { "name": "par_value", "type": "string", "description": "Par value per share of common and preferred stock" },
8
+ { "name": "specify_percentage", "type": "string", "description": "Percentage threshold for specified provisions" },
9
+ { "name": "effective_date", "type": "date", "description": "Effective date of the certificate of incorporation" }
10
+ ]
11
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "removeFootnotes": false,
3
+ "removeParagraphPatterns": [
4
+ "^Comment:",
5
+ "^NOTE:"
6
+ ]
7
+ }