open-agreements 0.1.0 → 0.2.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 (341) hide show
  1. package/README.md +215 -17
  2. package/bin/open-agreements.js +3 -1
  3. package/{external → content/external}/yc-safe-discount/metadata.yaml +17 -21
  4. package/{external → content/external}/yc-safe-mfn/metadata.yaml +16 -16
  5. package/{external → content/external}/yc-safe-pro-rata-side-letter/metadata.yaml +13 -13
  6. package/{external → content/external}/yc-safe-valuation-cap/metadata.yaml +16 -16
  7. package/{recipes → content/recipes}/nvca-certificate-of-incorporation/metadata.yaml +13 -13
  8. package/content/recipes/nvca-indemnification-agreement/clean.json +17 -0
  9. package/{recipes → content/recipes}/nvca-indemnification-agreement/metadata.yaml +17 -21
  10. package/{recipes → content/recipes}/nvca-investors-rights-agreement/metadata.yaml +18 -22
  11. package/{recipes → content/recipes}/nvca-management-rights-letter/metadata.yaml +13 -16
  12. package/{recipes → content/recipes}/nvca-rofr-co-sale-agreement/metadata.yaml +20 -24
  13. package/content/recipes/nvca-stock-purchase-agreement/clean.json +13 -0
  14. package/content/recipes/nvca-stock-purchase-agreement/computed.json +103 -0
  15. package/content/recipes/nvca-stock-purchase-agreement/metadata.yaml +138 -0
  16. package/content/recipes/nvca-stock-purchase-agreement/normalize.json +83 -0
  17. package/content/recipes/nvca-stock-purchase-agreement/replacements.json +41 -0
  18. package/{recipes → content/recipes}/nvca-voting-agreement/metadata.yaml +19 -23
  19. package/{templates → content/templates}/bonterms-mutual-nda/metadata.yaml +14 -14
  20. package/content/templates/bonterms-mutual-nda/source.json +18 -0
  21. package/content/templates/bonterms-mutual-nda/template.docx +0 -0
  22. package/{templates → content/templates}/bonterms-professional-services-agreement/metadata.yaml +15 -10
  23. package/content/templates/bonterms-professional-services-agreement/selections.json +12 -0
  24. package/content/templates/bonterms-professional-services-agreement/source.json +18 -0
  25. package/content/templates/bonterms-professional-services-agreement/template.docx +0 -0
  26. package/content/templates/closing-checklist/metadata.yaml +39 -0
  27. package/content/templates/closing-checklist/template.docx +0 -0
  28. package/{templates → content/templates}/common-paper-ai-addendum/metadata.yaml +8 -10
  29. package/{templates → content/templates}/common-paper-ai-addendum-in-app/metadata.yaml +6 -8
  30. package/{templates → content/templates}/common-paper-amendment/metadata.yaml +14 -14
  31. package/{templates → content/templates}/common-paper-business-associate-agreement/metadata.yaml +9 -16
  32. package/content/templates/common-paper-business-associate-agreement/replacements.json +3 -0
  33. package/{templates → content/templates}/common-paper-business-associate-agreement/template.docx +0 -0
  34. package/{templates → content/templates}/common-paper-cloud-service-agreement/metadata.yaml +53 -187
  35. package/{templates → content/templates}/common-paper-cloud-service-agreement/template.docx +0 -0
  36. package/{templates → content/templates}/common-paper-csa-click-through/metadata.yaml +10 -20
  37. package/{templates → content/templates}/common-paper-csa-with-ai/metadata.yaml +14 -37
  38. package/content/templates/common-paper-csa-with-ai/replacements.json +7 -0
  39. package/content/templates/common-paper-csa-with-ai/template.docx +0 -0
  40. package/{templates → content/templates}/common-paper-csa-with-sla/metadata.yaml +14 -40
  41. package/content/templates/common-paper-csa-with-sla/replacements.json +7 -0
  42. package/{templates → content/templates}/common-paper-csa-with-sla/template.docx +0 -0
  43. package/{templates → content/templates}/common-paper-csa-without-sla/metadata.yaml +14 -34
  44. package/content/templates/common-paper-csa-without-sla/replacements.json +7 -0
  45. package/{templates → content/templates}/common-paper-csa-without-sla/template.docx +0 -0
  46. package/{templates → content/templates}/common-paper-data-processing-agreement/metadata.yaml +15 -34
  47. package/content/templates/common-paper-data-processing-agreement/replacements.json +3 -0
  48. package/{templates → content/templates}/common-paper-data-processing-agreement/template.docx +0 -0
  49. package/{templates → content/templates}/common-paper-design-partner-agreement/metadata.yaml +10 -16
  50. package/content/templates/common-paper-design-partner-agreement/replacements.json +4 -0
  51. package/{templates → content/templates}/common-paper-design-partner-agreement/template.docx +0 -0
  52. package/{templates → content/templates}/common-paper-independent-contractor-agreement/metadata.yaml +14 -14
  53. package/{templates → content/templates}/common-paper-letter-of-intent/metadata.yaml +11 -12
  54. package/{templates → content/templates}/common-paper-mutual-nda/metadata.yaml +13 -13
  55. package/content/templates/common-paper-mutual-nda/selections.json +38 -0
  56. package/{templates → content/templates}/common-paper-one-way-nda/metadata.yaml +13 -14
  57. package/{templates → content/templates}/common-paper-order-form/metadata.yaml +12 -23
  58. package/content/templates/common-paper-order-form/replacements.json +5 -0
  59. package/{templates → content/templates}/common-paper-order-form/template.docx +0 -0
  60. package/{templates → content/templates}/common-paper-order-form-with-sla/metadata.yaml +12 -30
  61. package/content/templates/common-paper-order-form-with-sla/replacements.json +5 -0
  62. package/{templates → content/templates}/common-paper-order-form-with-sla/template.docx +0 -0
  63. package/{templates → content/templates}/common-paper-partnership-agreement/metadata.yaml +9 -21
  64. package/content/templates/common-paper-partnership-agreement/replacements.json +7 -0
  65. package/{templates → content/templates}/common-paper-partnership-agreement/template.docx +0 -0
  66. package/{templates → content/templates}/common-paper-pilot-agreement/metadata.yaml +31 -21
  67. package/content/templates/common-paper-pilot-agreement/replacements.json +4 -0
  68. package/content/templates/common-paper-pilot-agreement/selections.json +37 -0
  69. package/{templates → content/templates}/common-paper-pilot-agreement/template.docx +0 -0
  70. package/{templates → content/templates}/common-paper-professional-services-agreement/metadata.yaml +15 -32
  71. package/content/templates/common-paper-professional-services-agreement/replacements.json +8 -0
  72. package/content/templates/common-paper-professional-services-agreement/template.docx +0 -0
  73. package/{templates → content/templates}/common-paper-software-license-agreement/metadata.yaml +6 -6
  74. package/{templates → content/templates}/common-paper-statement-of-work/metadata.yaml +12 -19
  75. package/content/templates/common-paper-statement-of-work/replacements.json +3 -0
  76. package/{templates → content/templates}/common-paper-statement-of-work/template.docx +0 -0
  77. package/{templates → content/templates}/common-paper-term-sheet/metadata.yaml +9 -9
  78. package/content/templates/openagreements-employee-ip-inventions-assignment/README.md +31 -0
  79. package/content/templates/openagreements-employee-ip-inventions-assignment/metadata.yaml +71 -0
  80. package/content/templates/openagreements-employee-ip-inventions-assignment/template.docx +0 -0
  81. package/content/templates/openagreements-employee-ip-inventions-assignment/template.md +80 -0
  82. package/content/templates/openagreements-employment-confidentiality-acknowledgement/README.md +30 -0
  83. package/content/templates/openagreements-employment-confidentiality-acknowledgement/metadata.yaml +60 -0
  84. package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.docx +0 -0
  85. package/content/templates/openagreements-employment-confidentiality-acknowledgement/template.md +51 -0
  86. package/content/templates/openagreements-employment-offer-letter/README.md +33 -0
  87. package/content/templates/openagreements-employment-offer-letter/metadata.yaml +75 -0
  88. package/content/templates/openagreements-employment-offer-letter/template.docx +0 -0
  89. package/content/templates/openagreements-employment-offer-letter/template.md +90 -0
  90. package/content/templates/working-group-list/metadata.yaml +22 -0
  91. package/content/templates/working-group-list/template.docx +0 -0
  92. package/dist/cli/index.d.ts +3 -1
  93. package/dist/cli/index.d.ts.map +1 -1
  94. package/dist/cli/index.js +185 -88
  95. package/dist/cli/index.js.map +1 -1
  96. package/dist/commands/checklist.d.ts +22 -0
  97. package/dist/commands/checklist.d.ts.map +1 -0
  98. package/dist/commands/checklist.js +222 -0
  99. package/dist/commands/checklist.js.map +1 -0
  100. package/dist/commands/fill.d.ts +11 -0
  101. package/dist/commands/fill.d.ts.map +1 -1
  102. package/dist/commands/fill.js +65 -30
  103. package/dist/commands/fill.js.map +1 -1
  104. package/dist/commands/list.d.ts +1 -0
  105. package/dist/commands/list.d.ts.map +1 -1
  106. package/dist/commands/list.js +132 -87
  107. package/dist/commands/list.js.map +1 -1
  108. package/dist/commands/recipe.d.ts +3 -0
  109. package/dist/commands/recipe.d.ts.map +1 -1
  110. package/dist/commands/recipe.js +27 -2
  111. package/dist/commands/recipe.js.map +1 -1
  112. package/dist/commands/scan.d.ts +16 -0
  113. package/dist/commands/scan.d.ts.map +1 -1
  114. package/dist/commands/scan.js +36 -20
  115. package/dist/commands/scan.js.map +1 -1
  116. package/dist/commands/validate.d.ts.map +1 -1
  117. package/dist/commands/validate.js +67 -48
  118. package/dist/commands/validate.js.map +1 -1
  119. package/dist/core/checklist/index.d.ts +38 -0
  120. package/dist/core/checklist/index.d.ts.map +1 -0
  121. package/dist/core/checklist/index.js +229 -0
  122. package/dist/core/checklist/index.js.map +1 -0
  123. package/dist/core/checklist/patch-apply.d.ts +65 -0
  124. package/dist/core/checklist/patch-apply.d.ts.map +1 -0
  125. package/dist/core/checklist/patch-apply.js +274 -0
  126. package/dist/core/checklist/patch-apply.js.map +1 -0
  127. package/dist/core/checklist/patch-schemas.d.ts +86 -0
  128. package/dist/core/checklist/patch-schemas.d.ts.map +1 -0
  129. package/dist/core/checklist/patch-schemas.js +89 -0
  130. package/dist/core/checklist/patch-schemas.js.map +1 -0
  131. package/dist/core/checklist/patch-validator.d.ts +76 -0
  132. package/dist/core/checklist/patch-validator.d.ts.map +1 -0
  133. package/dist/core/checklist/patch-validator.js +404 -0
  134. package/dist/core/checklist/patch-validator.js.map +1 -0
  135. package/dist/core/checklist/schemas.d.ts +270 -0
  136. package/dist/core/checklist/schemas.d.ts.map +1 -0
  137. package/dist/core/checklist/schemas.js +229 -0
  138. package/dist/core/checklist/schemas.js.map +1 -0
  139. package/dist/core/checklist/test-utils.d.ts +7 -0
  140. package/dist/core/checklist/test-utils.d.ts.map +1 -0
  141. package/dist/core/checklist/test-utils.js +13 -0
  142. package/dist/core/checklist/test-utils.js.map +1 -0
  143. package/dist/core/command-generation/adapters/claude.d.ts.map +1 -1
  144. package/dist/core/command-generation/adapters/claude.js +8 -2
  145. package/dist/core/command-generation/adapters/claude.js.map +1 -1
  146. package/dist/core/employment/jurisdiction-rules.d.ts +20 -0
  147. package/dist/core/employment/jurisdiction-rules.d.ts.map +1 -0
  148. package/dist/core/employment/jurisdiction-rules.js +57 -0
  149. package/dist/core/employment/jurisdiction-rules.js.map +1 -0
  150. package/dist/core/employment/memo.d.ts +57 -0
  151. package/dist/core/employment/memo.d.ts.map +1 -0
  152. package/dist/core/employment/memo.js +589 -0
  153. package/dist/core/employment/memo.js.map +1 -0
  154. package/dist/core/engine.d.ts +1 -1
  155. package/dist/core/engine.d.ts.map +1 -1
  156. package/dist/core/engine.js +64 -31
  157. package/dist/core/engine.js.map +1 -1
  158. package/dist/core/external/index.d.ts.map +1 -1
  159. package/dist/core/external/index.js +18 -60
  160. package/dist/core/external/index.js.map +1 -1
  161. package/dist/core/external/types.d.ts +1 -1
  162. package/dist/core/external/types.d.ts.map +1 -1
  163. package/dist/core/fill-pipeline.d.ts +9 -6
  164. package/dist/core/fill-pipeline.d.ts.map +1 -1
  165. package/dist/core/fill-pipeline.js +92 -21
  166. package/dist/core/fill-pipeline.js.map +1 -1
  167. package/dist/core/fill-utils.d.ts +1 -1
  168. package/dist/core/fill-utils.d.ts.map +1 -1
  169. package/dist/core/fill-utils.js.map +1 -1
  170. package/dist/core/metadata.d.ts +129 -331
  171. package/dist/core/metadata.d.ts.map +1 -1
  172. package/dist/core/metadata.js +76 -5
  173. package/dist/core/metadata.js.map +1 -1
  174. package/dist/core/recipe/bracket-normalizer.d.ts +46 -0
  175. package/dist/core/recipe/bracket-normalizer.d.ts.map +1 -0
  176. package/dist/core/recipe/bracket-normalizer.js +354 -0
  177. package/dist/core/recipe/bracket-normalizer.js.map +1 -0
  178. package/dist/core/recipe/cleaner.d.ts +19 -5
  179. package/dist/core/recipe/cleaner.d.ts.map +1 -1
  180. package/dist/core/recipe/cleaner.js +256 -17
  181. package/dist/core/recipe/cleaner.js.map +1 -1
  182. package/dist/core/recipe/computed.d.ts +136 -0
  183. package/dist/core/recipe/computed.d.ts.map +1 -0
  184. package/dist/core/recipe/computed.js +225 -0
  185. package/dist/core/recipe/computed.js.map +1 -0
  186. package/dist/core/recipe/index.d.ts +3 -0
  187. package/dist/core/recipe/index.d.ts.map +1 -1
  188. package/dist/core/recipe/index.js +62 -63
  189. package/dist/core/recipe/index.js.map +1 -1
  190. package/dist/core/recipe/patcher.d.ts +19 -2
  191. package/dist/core/recipe/patcher.d.ts.map +1 -1
  192. package/dist/core/recipe/patcher.js +197 -14
  193. package/dist/core/recipe/patcher.js.map +1 -1
  194. package/dist/core/recipe/replacement-keys.d.ts +33 -0
  195. package/dist/core/recipe/replacement-keys.d.ts.map +1 -0
  196. package/dist/core/recipe/replacement-keys.js +53 -0
  197. package/dist/core/recipe/replacement-keys.js.map +1 -0
  198. package/dist/core/recipe/source-drift.d.ts +33 -0
  199. package/dist/core/recipe/source-drift.d.ts.map +1 -0
  200. package/dist/core/recipe/source-drift.js +113 -0
  201. package/dist/core/recipe/source-drift.js.map +1 -0
  202. package/dist/core/recipe/types.d.ts +6 -1
  203. package/dist/core/recipe/types.d.ts.map +1 -1
  204. package/dist/core/recipe/verifier.d.ts +1 -1
  205. package/dist/core/recipe/verifier.d.ts.map +1 -1
  206. package/dist/core/recipe/verifier.js +19 -4
  207. package/dist/core/recipe/verifier.js.map +1 -1
  208. package/dist/core/selector.d.ts +41 -0
  209. package/dist/core/selector.d.ts.map +1 -0
  210. package/dist/core/selector.js +323 -0
  211. package/dist/core/selector.js.map +1 -0
  212. package/dist/core/unified-pipeline.d.ts +53 -0
  213. package/dist/core/unified-pipeline.d.ts.map +1 -0
  214. package/dist/core/unified-pipeline.js +107 -0
  215. package/dist/core/unified-pipeline.js.map +1 -0
  216. package/dist/core/validation/external.d.ts.map +1 -1
  217. package/dist/core/validation/external.js +9 -1
  218. package/dist/core/validation/external.js.map +1 -1
  219. package/dist/core/validation/recipe.d.ts +1 -1
  220. package/dist/core/validation/recipe.d.ts.map +1 -1
  221. package/dist/core/validation/recipe.js +52 -41
  222. package/dist/core/validation/recipe.js.map +1 -1
  223. package/dist/core/validation/scan-metadata.d.ts +21 -0
  224. package/dist/core/validation/scan-metadata.d.ts.map +1 -0
  225. package/dist/core/validation/scan-metadata.js +70 -0
  226. package/dist/core/validation/scan-metadata.js.map +1 -0
  227. package/dist/core/validation/template.d.ts.map +1 -1
  228. package/dist/core/validation/template.js +131 -42
  229. package/dist/core/validation/template.js.map +1 -1
  230. package/dist/index.d.ts +4 -1
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js +5 -1
  233. package/dist/index.js.map +1 -1
  234. package/dist/utils/paths.d.ts +28 -0
  235. package/dist/utils/paths.d.ts.map +1 -1
  236. package/dist/utils/paths.js +113 -7
  237. package/dist/utils/paths.js.map +1 -1
  238. package/package.json +82 -13
  239. package/skills/cloud-service-agreement/CONNECTORS.md +19 -0
  240. package/skills/cloud-service-agreement/SKILL.md +172 -0
  241. package/skills/data-privacy-agreement/CONNECTORS.md +19 -0
  242. package/skills/data-privacy-agreement/SKILL.md +158 -0
  243. package/skills/delaware-franchise-tax/CONNECTORS.md +16 -0
  244. package/skills/delaware-franchise-tax/SKILL.md +169 -0
  245. package/skills/delaware-franchise-tax/reference/faq.md +101 -0
  246. package/skills/delaware-franchise-tax/reference/filing-instructions.md +111 -0
  247. package/skills/delaware-franchise-tax/reference/tax-calculation.md +167 -0
  248. package/skills/employment-contract/CONNECTORS.md +19 -0
  249. package/skills/employment-contract/SKILL.md +157 -0
  250. package/skills/nda/CONNECTORS.md +19 -0
  251. package/skills/nda/SKILL.md +153 -0
  252. package/skills/open-agreements/CONNECTORS.md +19 -0
  253. package/skills/open-agreements/SKILL.md +86 -70
  254. package/skills/safe/CONNECTORS.md +19 -0
  255. package/skills/safe/SKILL.md +161 -0
  256. package/skills/services-agreement/CONNECTORS.md +19 -0
  257. package/skills/services-agreement/SKILL.md +156 -0
  258. package/skills/unit-test-philosophy/SKILL.md +113 -0
  259. package/skills/unit-test-philosophy/references/allure-test-spec-writing-guide.md +164 -0
  260. package/skills/venture-financing/CONNECTORS.md +19 -0
  261. package/skills/venture-financing/SKILL.md +169 -0
  262. package/recipes/nvca-certificate-of-incorporation/schema.json +0 -11
  263. package/recipes/nvca-indemnification-agreement/clean.json +0 -7
  264. package/recipes/nvca-indemnification-agreement/schema.json +0 -19
  265. package/recipes/nvca-investors-rights-agreement/schema.json +0 -18
  266. package/recipes/nvca-management-rights-letter/schema.json +0 -13
  267. package/recipes/nvca-rofr-co-sale-agreement/schema.json +0 -19
  268. package/recipes/nvca-stock-purchase-agreement/clean.json +0 -10
  269. package/recipes/nvca-stock-purchase-agreement/metadata.yaml +0 -74
  270. package/recipes/nvca-stock-purchase-agreement/replacements.json +0 -20
  271. package/recipes/nvca-stock-purchase-agreement/schema.json +0 -19
  272. package/recipes/nvca-voting-agreement/schema.json +0 -28
  273. package/templates/bonterms-mutual-nda/template.docx +0 -0
  274. package/templates/bonterms-professional-services-agreement/template.docx +0 -0
  275. package/templates/common-paper-csa-with-ai/template.docx +0 -0
  276. package/templates/common-paper-professional-services-agreement/template.docx +0 -0
  277. /package/{external → content/external}/LICENSE +0 -0
  278. /package/{external → content/external}/README.md +0 -0
  279. /package/{external → content/external}/yc-safe-discount/README.md +0 -0
  280. /package/{external → content/external}/yc-safe-discount/clean.json +0 -0
  281. /package/{external → content/external}/yc-safe-discount/replacements.json +0 -0
  282. /package/{external → content/external}/yc-safe-discount/template.docx +0 -0
  283. /package/{external → content/external}/yc-safe-mfn/README.md +0 -0
  284. /package/{external → content/external}/yc-safe-mfn/clean.json +0 -0
  285. /package/{external → content/external}/yc-safe-mfn/replacements.json +0 -0
  286. /package/{external → content/external}/yc-safe-mfn/template.docx +0 -0
  287. /package/{external → content/external}/yc-safe-pro-rata-side-letter/README.md +0 -0
  288. /package/{external → content/external}/yc-safe-pro-rata-side-letter/clean.json +0 -0
  289. /package/{external → content/external}/yc-safe-pro-rata-side-letter/replacements.json +0 -0
  290. /package/{external → content/external}/yc-safe-pro-rata-side-letter/template.docx +0 -0
  291. /package/{external → content/external}/yc-safe-valuation-cap/README.md +0 -0
  292. /package/{external → content/external}/yc-safe-valuation-cap/clean.json +0 -0
  293. /package/{external → content/external}/yc-safe-valuation-cap/replacements.json +0 -0
  294. /package/{external → content/external}/yc-safe-valuation-cap/template.docx +0 -0
  295. /package/{recipes → content/recipes}/nvca-certificate-of-incorporation/clean.json +0 -0
  296. /package/{recipes → content/recipes}/nvca-certificate-of-incorporation/replacements.json +0 -0
  297. /package/{recipes → content/recipes}/nvca-indemnification-agreement/replacements.json +0 -0
  298. /package/{recipes → content/recipes}/nvca-investors-rights-agreement/clean.json +0 -0
  299. /package/{recipes → content/recipes}/nvca-investors-rights-agreement/replacements.json +0 -0
  300. /package/{recipes → content/recipes}/nvca-management-rights-letter/clean.json +0 -0
  301. /package/{recipes → content/recipes}/nvca-management-rights-letter/replacements.json +0 -0
  302. /package/{recipes → content/recipes}/nvca-rofr-co-sale-agreement/clean.json +0 -0
  303. /package/{recipes → content/recipes}/nvca-rofr-co-sale-agreement/replacements.json +0 -0
  304. /package/{recipes → content/recipes}/nvca-voting-agreement/README.md +0 -0
  305. /package/{recipes → content/recipes}/nvca-voting-agreement/clean.json +0 -0
  306. /package/{recipes → content/recipes}/nvca-voting-agreement/replacements.json +0 -0
  307. /package/{templates → content/templates}/bonterms-mutual-nda/README.md +0 -0
  308. /package/{templates → content/templates}/bonterms-professional-services-agreement/README.md +0 -0
  309. /package/{templates → content/templates}/common-paper-ai-addendum/README.md +0 -0
  310. /package/{templates → content/templates}/common-paper-ai-addendum/template.docx +0 -0
  311. /package/{templates → content/templates}/common-paper-ai-addendum-in-app/README.md +0 -0
  312. /package/{templates → content/templates}/common-paper-ai-addendum-in-app/template.docx +0 -0
  313. /package/{templates → content/templates}/common-paper-amendment/README.md +0 -0
  314. /package/{templates → content/templates}/common-paper-amendment/template.docx +0 -0
  315. /package/{templates → content/templates}/common-paper-business-associate-agreement/README.md +0 -0
  316. /package/{templates → content/templates}/common-paper-cloud-service-agreement/README.md +0 -0
  317. /package/{templates → content/templates}/common-paper-csa-click-through/README.md +0 -0
  318. /package/{templates → content/templates}/common-paper-csa-click-through/template.docx +0 -0
  319. /package/{templates → content/templates}/common-paper-csa-with-ai/README.md +0 -0
  320. /package/{templates → content/templates}/common-paper-csa-with-sla/README.md +0 -0
  321. /package/{templates → content/templates}/common-paper-csa-without-sla/README.md +0 -0
  322. /package/{templates → content/templates}/common-paper-data-processing-agreement/README.md +0 -0
  323. /package/{templates → content/templates}/common-paper-design-partner-agreement/README.md +0 -0
  324. /package/{templates → content/templates}/common-paper-independent-contractor-agreement/README.md +0 -0
  325. /package/{templates → content/templates}/common-paper-independent-contractor-agreement/template.docx +0 -0
  326. /package/{templates → content/templates}/common-paper-letter-of-intent/README.md +0 -0
  327. /package/{templates → content/templates}/common-paper-letter-of-intent/template.docx +0 -0
  328. /package/{templates → content/templates}/common-paper-mutual-nda/README.md +0 -0
  329. /package/{templates → content/templates}/common-paper-mutual-nda/template.docx +0 -0
  330. /package/{templates → content/templates}/common-paper-one-way-nda/README.md +0 -0
  331. /package/{templates → content/templates}/common-paper-one-way-nda/template.docx +0 -0
  332. /package/{templates → content/templates}/common-paper-order-form/README.md +0 -0
  333. /package/{templates → content/templates}/common-paper-order-form-with-sla/README.md +0 -0
  334. /package/{templates → content/templates}/common-paper-partnership-agreement/README.md +0 -0
  335. /package/{templates → content/templates}/common-paper-pilot-agreement/README.md +0 -0
  336. /package/{templates → content/templates}/common-paper-professional-services-agreement/README.md +0 -0
  337. /package/{templates → content/templates}/common-paper-software-license-agreement/README.md +0 -0
  338. /package/{templates → content/templates}/common-paper-software-license-agreement/template.docx +0 -0
  339. /package/{templates → content/templates}/common-paper-statement-of-work/README.md +0 -0
  340. /package/{templates → content/templates}/common-paper-term-sheet/README.md +0 -0
  341. /package/{templates → content/templates}/common-paper-term-sheet/template.docx +0 -0
package/README.md CHANGED
@@ -1,10 +1,61 @@
1
1
  # OpenAgreements
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/open-agreements)](https://www.npmjs.com/package/open-agreements)
4
+ [![npm downloads](https://img.shields.io/npm/dm/open-agreements.svg)](https://npmjs.org/package/open-agreements)
4
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
5
6
  [![Agent Skill](https://img.shields.io/badge/agent--skill-open--agreements-purple)](https://skills.sh)
7
+ [![CI](https://github.com/open-agreements/open-agreements/actions/workflows/ci.yml/badge.svg)](https://github.com/open-agreements/open-agreements/actions/workflows/ci.yml)
8
+ [![MCP Server Status](https://img.shields.io/endpoint?url=https%3A%2F%2Fopenagreements.ai%2Fapi%2Fstatus%3Fformat%3Dshields)](https://openagreements.openstatus.dev/)
9
+ [![codecov](https://img.shields.io/codecov/c/github/open-agreements/open-agreements/main)](https://app.codecov.io/gh/open-agreements/open-agreements)
10
+ [![GitHub stargazers](https://img.shields.io/github/stars/open-agreements/open-agreements?style=social)](https://github.com/open-agreements/open-agreements/stargazers)
11
+ [![Tests: Vitest](https://img.shields.io/badge/tests-vitest-6E9F18)](https://vitest.dev/)
12
+ [![OpenSpec Traceability](https://img.shields.io/badge/openspec-traceability%20gate-brightgreen)](./scripts/validate_openspec_coverage.mjs)
13
+ [![Socket Badge](https://socket.dev/api/badge/npm/package/open-agreements)](https://socket.dev/npm/package/open-agreements)
14
+ [![install size](https://packagephobia.com/badge?p=open-agreements)](https://packagephobia.com/result?p=open-agreements)
6
15
 
7
- Fill standard legal agreement templates and produce signable DOCX files. 25 templates covering NDAs, cloud terms, contractor agreements, SAFEs, and NVCA financing documents.
16
+ <!-- TODO: Add OpenSSF Scorecard badge once repo is indexed at securityscorecards.dev -->
17
+ <!-- TODO: Add OpenSSF Best Practices badge after registration at bestpractices.dev -->
18
+ <!-- TODO: Re-evaluate Snyk badge — Advisor migrated to security.snyk.io (July 2024) -->
19
+
20
+ <p align="center">
21
+ <img src="docs/assets/demo-fill-nda.gif" alt="Fill a Mutual NDA in Claude Code — prompt, answer questions, get a signed-ready DOCX" width="720">
22
+ </p>
23
+
24
+ > *Demo: Claude fills a Common Paper Mutual NDA in under 2 minutes. Sped up for brevity.*
25
+
26
+ Fill standard legal agreement templates and produce signable DOCX files. Templates cover NDAs, cloud terms, employment docs, contractor agreements, SAFEs, and NVCA financing documents.
27
+
28
+ Built by the team behind [UseJunior.com](https://usejunior.com) — in production at Am Law 100 firms.
29
+
30
+ ## Quality and Trust Signals
31
+
32
+ - CI runs on pull requests and pushes to `main`.
33
+ - Live service health is published via OpenStatus at `openagreements.openstatus.dev`.
34
+ - Coverage is published to Codecov with repository-defined patch/project gates in `codecov.yml`.
35
+ - The active JS test framework is Vitest, with JUnit test results uploaded for Codecov test analytics.
36
+ - OpenSpec scenario traceability is enforced via `npm run check:spec-coverage`. For a local matrix export, run `npm run check:spec-coverage -- --write-matrix integration-tests/OPENSPEC_TRACEABILITY.md`.
37
+ - Recipe source drift canary (`npm run check:source-drift`) verifies expected source hash plus structural replacement/normalize anchors.
38
+ - Assumption-level regressions are tracked in `docs/assumptions.md` and validated via targeted regression tests + CI gates.
39
+ - LibreOffice-powered DOCX visual rendering uses a pinned build config on macOS (`config/libreoffice-headless.json`); run `npm run check:libreoffice` before visual Allure evidence tests.
40
+ - Maintainer: [Steven Obiajulu](https://www.linkedin.com/in/steven-obiajulu/) (MIT-trained mechanical engineer; Harvard Law trained lawyer).
41
+
42
+ ## How It Works
43
+
44
+ 1. Step 1: Choose a template (36 standard agreements)
45
+ 2. Step 2: Fill in your details (interactive prompts or MCP)
46
+ 3. Step 3: Get a professionally formatted DOCX
47
+
48
+ OpenAgreements supports two execution modes with different trust boundaries:
49
+
50
+ - Hosted remote MCP connector (`https://openagreements.ai/api/mcp`) for fast setup in Claude.
51
+ - Fully local package execution (`npx`, global install, or local stdio MCP package) for machine-local workflows.
52
+
53
+ There is no global default mode recommendation. Choose based on document sensitivity, internal policy, and workflow speed needs. See `docs/trust-checklist.md` for a 60-second data-flow summary.
54
+
55
+ ### Quick Decision
56
+
57
+ - If your document is sensitive, use fully local package execution.
58
+ - If you prioritize convenience, use the hosted remote MCP connector.
8
59
 
9
60
  ## Use with Claude Code
10
61
 
@@ -49,31 +100,63 @@ open-agreements fill common-paper-mutual-nda -d values.json -o my-nda.docx
49
100
 
50
101
  ### What Happens
51
102
 
52
- 1. Claude runs `list --json` to discover 25 templates and their fields
103
+ 1. Claude runs `list --json` to discover available templates and their fields
53
104
  2. Claude interviews you for field values (grouped by section, up to 4 questions per round)
54
105
  3. Claude runs `fill <template>` to render a DOCX preserving all original formatting
55
106
  4. You review and sign the output document
56
107
 
108
+ ## Use with Cursor
109
+
110
+ This repository includes a Cursor plugin manifest with MCP wiring:
111
+
112
+ - Plugin manifest: `.cursor-plugin/plugin.json`
113
+ - MCP config: `mcp.json`
114
+ - Skill: `skills/open-agreements/SKILL.md`
115
+
116
+ The default MCP setup in `mcp.json` includes:
117
+
118
+ - Hosted OpenAgreements MCP connector (`https://openagreements.ai/api/mcp`)
119
+ - Local workspace MCP server (`npx -y @open-agreements/contracts-workspace-mcp`)
120
+ - Local template drafting MCP server (`npx -y @open-agreements/contract-templates-mcp`)
121
+
122
+ To publish this plugin in Cursor Marketplace, submit this repository at:
123
+
124
+ - https://cursor.com/marketplace/publish
125
+
57
126
  ## Templates
58
127
 
59
- 25 templates across three tiers. Run `open-agreements list` for the full inventory.
128
+ 28 templates across three tiers. Run `open-agreements list` for the full inventory.
60
129
 
61
130
  | Tier | Count | Source | How It Works |
62
131
  |------|-------|--------|--------------|
63
- | Internal templates | 14 | [Common Paper](https://commonpaper.com), [Bonterms](https://bonterms.com) | Shipped in package, CC BY 4.0 |
132
+ | Internal templates | 17 | [Common Paper](https://commonpaper.com), [Bonterms](https://bonterms.com), OpenAgreements | Shipped in package, CC BY 4.0 |
64
133
  | External templates | 4 | [Y Combinator](https://www.ycombinator.com/documents) | Vendored unchanged, CC BY-ND 4.0 |
65
134
  | Recipes | 7 | [NVCA](https://nvca.org/model-legal-documents/) | Downloaded on demand (not redistributable) |
66
135
 
67
- **Internal templates** (NDAs, cloud terms, contractor agreements, etc.) are CC BY 4.0 — we ship the DOCX with `{tag}` placeholders.
136
+ **Internal templates** (NDAs, cloud terms, employment forms, contractor agreements, etc.) are CC BY 4.0 — we ship the DOCX with `{tag}` placeholders.
68
137
 
69
138
  **External templates** (YC SAFEs) are CC BY-ND 4.0 — we vendor the original unchanged. The filled output is a transient derivative on your machine.
70
139
 
71
140
  **Recipes** (NVCA financing documents) are freely downloadable but not redistributable — we ship only transformation instructions and download the source DOCX from nvca.org at runtime.
72
141
 
142
+ ### Guidance Extraction
143
+
144
+ Source documents contain expert commentary — footnotes, drafting notes, `[Comment: ...]` blocks — written by domain specialists (e.g., securities lawyers). The recipe cleaner removes this content to produce a fillable document, but can also extract it as structured JSON:
145
+
146
+ ```bash
147
+ open-agreements recipe clean source.docx -o cleaned.docx \
148
+ --recipe nvca-indemnification-agreement \
149
+ --extract-guidance guidance.json
150
+ ```
151
+
152
+ This produces a `guidance.json` with every removed footnote, comment, and drafting note tagged by source type and document position. The guidance is a local-only artifact (not committed or shipped) that AI agents or human authors can reference while filling the form. See [Adding Recipes — Guidance Extraction](docs/adding-recipes.md#guidance-extraction) for format details.
153
+
154
+ **Why programmatic extraction?** The source document is the single source of truth. Re-running extraction after a publisher update produces fresh guidance with zero manual effort, preserves the exact language of domain experts, and captures everything — an AI can summarize on the fly, but cannot recover discarded content.
155
+
73
156
  Each template is a self-contained directory:
74
157
 
75
158
  ```
76
- templates/<name>/
159
+ content/templates/<name>/
77
160
  ├── template.docx # DOCX with {tag} placeholders
78
161
  ├── metadata.yaml # Fields, license, source, attribution
79
162
  └── README.md # Template-specific documentation
@@ -113,12 +196,120 @@ open-agreements list
113
196
  open-agreements list --json
114
197
  ```
115
198
 
199
+ ## Contracts Workspace CLI (Separate Package)
200
+
201
+ OpenAgreements now includes a sibling package for repository/workspace operations:
202
+
203
+ - Package: `@open-agreements/contracts-workspace`
204
+ - Binary: `open-agreements-workspace`
205
+ - Docs: `docs/contracts-workspace.md`
206
+
207
+ This package is intentionally separate from `open-agreements` so teams can adopt:
208
+
209
+ - template filling only
210
+ - workspace management only
211
+ - or both together
212
+
213
+ Core workspace features:
214
+
215
+ - topic-first `init` planning (minimal suggested structure with top-level domains)
216
+ - forms catalog with URL + SHA-256 validation
217
+ - YAML status indexing and linting with filename-driven `_executed` status
218
+
219
+ The v1 model is filesystem-only and works in locally synced cloud-drive folders (for example, Google Drive sync). No Drive API/OAuth integration is required.
220
+
221
+ ## Local MCP for Workspace Demo
222
+
223
+ For local connector demos, there is a local stdio MCP package:
224
+
225
+ - Package: `@open-agreements/contracts-workspace-mcp`
226
+ - Binary: `open-agreements-workspace-mcp`
227
+ - Docs: `docs/contracts-workspace.md`
228
+
229
+ Quick start:
230
+
231
+ ```bash
232
+ npm run build:workspace-mcp
233
+ node packages/contracts-workspace-mcp/bin/open-agreements-workspace-mcp.js
234
+ ```
235
+
236
+ ## Local MCP for Template Drafting
237
+
238
+ For local Gemini/Cursor template drafting flows, use:
239
+
240
+ - Package: `@open-agreements/contract-templates-mcp`
241
+ - Binary: `open-agreements-contract-templates-mcp`
242
+
243
+ Quick start:
244
+
245
+ ```bash
246
+ npm run build:contract-templates-mcp
247
+ node packages/contract-templates-mcp/bin/open-agreements-contract-templates-mcp.js
248
+ ```
249
+
250
+ ## Website (Vercel)
251
+
252
+ A static marketing site is generated from `site/` with Eleventy.
253
+
254
+ - Entry points: `site/index.njk`, `site/templates.njk`, `site/template-detail.njk`
255
+ - Styles: `site/styles.css`
256
+ - Demo media: `site/assets/demo-fill-nda.gif`
257
+ - Deployment config: `vercel.json`
258
+ - Discovery outputs (generated during `npm run build:site`): `_site/llms.txt`, `_site/llms-full.txt`, `_site/sitemap.xml`, `_site/robots.txt`
259
+
260
+ Local preview:
261
+
262
+ ```bash
263
+ npm run build:site
264
+ python3 -m http.server 8080 --directory _site
265
+ ```
266
+
267
+ Then open `http://localhost:8080`.
268
+
269
+ Vercel deploy notes:
270
+
271
+ - Import this repository in Vercel
272
+ - Keep project root as repo root
273
+ - The included `vercel.json` deploys `_site/` as static output
274
+
275
+ ## Optional Content Roots (Future-Proofing)
276
+
277
+ To support logical unbundling as form libraries grow, `open-agreements` can load content from additional roots via:
278
+
279
+ - env var: `OPEN_AGREEMENTS_CONTENT_ROOTS`
280
+ - format: path-delimited list of absolute/relative directories (for example, `dirA:dirB` on macOS/Linux)
281
+ - expected structure under each root: `templates/`, `external/`, and/or `recipes/` (or nested under `content/`)
282
+
283
+ Lookup precedence is:
284
+
285
+ 1. roots in `OPEN_AGREEMENTS_CONTENT_ROOTS` (in listed order)
286
+ 2. bundled package content (default fallback)
287
+
288
+ This keeps default installs simple while allowing advanced users to move large content libraries outside the core package.
289
+
116
290
  ## Contributing
117
291
 
118
292
  See [CONTRIBUTING.md](CONTRIBUTING.md) for how to add templates, recipes, and other improvements.
119
293
 
120
294
  - [Adding templates](docs/adding-templates.md) (CC BY 4.0 / CC0 sources)
121
295
  - [Adding recipes](docs/adding-recipes.md) (non-redistributable sources)
296
+ - [Employment source policy](docs/employment-source-policy.md) (trust and terms classifications)
297
+ - [Code of Conduct](CODE_OF_CONDUCT.md) (community expectations and enforcement)
298
+
299
+ ## Releasing
300
+
301
+ Releases are automated through GitHub Actions using npm trusted publishing (OIDC) with provenance enabled.
302
+
303
+ 1. Update versions in root package + publishable MCP packages.
304
+ 2. Push commit + tag with `git push origin main --tags`
305
+ 3. Run the local Gemini extension gate (copy/symlink into `~/.gemini/extensions/open-agreements` and verify both local MCP servers start/respond).
306
+ 4. The `Release` workflow publishes from the tag after running build, validation, tests, isolated runtime smoke, and package checks.
307
+
308
+ Workflow guardrails:
309
+
310
+ - tag must match root + publishable package versions
311
+ - release commit must be contained in `origin/main`
312
+ - publish fails if any target npm version already exists
122
313
 
123
314
  ## Architecture
124
315
 
@@ -129,19 +320,26 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for how to add templates, recipes, and ot
129
320
  - **Skill Pattern**: Agent-agnostic `ToolCommandAdapter` interface
130
321
 
131
322
  ```
132
- src/
133
- ├── cli/ # Commander.js CLI
134
- ├── commands/ # fill, validate, list, recipe, scan
323
+ content/ # All content directories
324
+ ├── templates/ # Internal templates (CC BY 4.0)
325
+ ├── external/ # External templates (CC BY-ND 4.0)
326
+ └── recipes/ # Recipes (downloaded at runtime)
327
+
328
+ src/ # TypeScript source + collocated unit tests
329
+ ├── cli/ # Commander.js CLI
330
+ ├── commands/ # fill, validate, list, recipe, scan
135
331
  ├── core/
136
- │ ├── engine.ts # docx-templates wrapper
137
- │ ├── metadata.ts # Zod schemas + loader
138
- │ ├── recipe/ # Recipe pipeline (clean → patch → fill → verify)
139
- │ ├── external/ # External template support
140
- │ ├── validation/ # template, license, output, recipe
332
+ │ ├── engine.ts # docx-templates wrapper
333
+ │ ├── metadata.ts # Zod schemas + loader
334
+ │ ├── recipe/ # Recipe pipeline (clean → patch → fill → verify)
335
+ │ ├── external/ # External template support
336
+ │ ├── validation/ # template, license, output, recipe
141
337
  │ └── command-generation/
142
- │ ├── types.ts # ToolCommandAdapter interface
143
- │ └── adapters/ # Claude Code adapter
144
- └── index.ts # Public API
338
+ │ ├── types.ts # ToolCommandAdapter interface
339
+ │ └── adapters/ # Claude Code adapter
340
+ └── index.ts # Public API
341
+
342
+ integration-tests/ # Integration and end-to-end tests
145
343
  ```
146
344
 
147
345
  ## Resources
@@ -1,2 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import '../dist/cli/index.js';
2
+ import { runCli } from '../dist/cli/index.js';
3
+
4
+ await runCli(process.argv);
@@ -1,71 +1,67 @@
1
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.
2
+ description: Y Combinator's Post-Money SAFE (Simple Agreement for Future Equity) with a discount rate and no valuation cap.
5
3
  source_url: https://www.ycombinator.com/documents
6
- version: "2024.12"
4
+ version: '2024.12'
7
5
  license: CC-BY-ND-4.0
8
6
  allow_derivatives: false
9
7
  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.
8
+ Based on the Y Combinator Post-Money SAFE, available at https://www.ycombinator.com/documents. Licensed under CC BY-ND
9
+ 4.0. Copyright Y Combinator.
13
10
  source_sha256: 93d606fc568e39673ab96c581850ece30b4f478972b7b4d4d132df695264b5a5
14
11
  fields:
15
12
  - name: company_name
16
13
  type: string
17
14
  description: Full legal name of the company
18
- required: true
19
15
  section: Parties
20
16
  - name: investor_name
21
17
  type: string
22
18
  description: Full legal name of the investor
23
- required: true
24
19
  section: Parties
25
20
  - name: purchase_amount
26
21
  type: string
27
22
  description: Dollar amount of the investment (e.g., "100,000")
28
- required: true
29
23
  section: Deal Terms
30
24
  - name: discount_rate
31
25
  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
26
+ description: Discount rate as a percentage, expressed as 100 minus the discount (e.g., "80" for a 20% discount)
36
27
  section: Deal Terms
37
28
  - name: date_of_safe
38
29
  type: date
39
30
  description: Date the SAFE is executed
40
- required: true
41
31
  section: Deal Terms
42
32
  - name: state_of_incorporation
43
33
  type: string
44
34
  description: State where the company is incorporated (e.g., "Delaware")
45
- required: true
46
35
  section: Company Details
47
36
  - name: governing_law_jurisdiction
48
37
  type: string
49
38
  description: State whose laws govern the agreement (e.g., "Delaware")
50
- required: true
51
39
  section: Company Details
52
40
  - name: company
53
41
  type: string
54
42
  description: Company name as used in the signature block (typically matches company_name)
55
- required: true
56
43
  section: Signatures
57
44
  - name: company_name_caps
58
45
  type: string
59
46
  description: Company name in uppercase as used in the header (e.g., "ACME INC.")
60
- required: true
61
47
  section: Signatures
62
48
  - name: name
63
49
  type: string
64
50
  description: Name of the company signatory
65
- required: true
66
51
  section: Signatures
67
52
  - name: title
68
53
  type: string
69
54
  description: Title of the company signatory (e.g., "CEO")
70
- required: true
71
55
  section: Signatures
56
+ required_fields:
57
+ - company_name
58
+ - investor_name
59
+ - purchase_amount
60
+ - discount_rate
61
+ - date_of_safe
62
+ - state_of_incorporation
63
+ - governing_law_jurisdiction
64
+ - company
65
+ - company_name_caps
66
+ - name
67
+ - title
@@ -1,64 +1,64 @@
1
1
  name: YC Post-Money SAFE — MFN
2
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.
3
+ Y Combinator's Post-Money SAFE (Simple Agreement for Future Equity) with a most favored nation (MFN) provision, no
4
+ valuation cap, and no discount.
5
5
  source_url: https://www.ycombinator.com/documents
6
- version: "2024.12"
6
+ version: '2024.12'
7
7
  license: CC-BY-ND-4.0
8
8
  allow_derivatives: false
9
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.
10
+ Based on the Y Combinator Post-Money SAFE, available at https://www.ycombinator.com/documents. Licensed under CC BY-ND
11
+ 4.0. Copyright Y Combinator.
13
12
  source_sha256: d3ad99466059b6f4d838e8e5daeeff5752e9866e6b557c6056df772f8509e727
14
13
  fields:
15
14
  - name: company_name
16
15
  type: string
17
16
  description: Full legal name of the company
18
- required: true
19
17
  section: Parties
20
18
  - name: investor_name
21
19
  type: string
22
20
  description: Full legal name of the investor
23
- required: true
24
21
  section: Parties
25
22
  - name: purchase_amount
26
23
  type: string
27
24
  description: Dollar amount of the investment (e.g., "100,000")
28
- required: true
29
25
  section: Deal Terms
30
26
  - name: date_of_safe
31
27
  type: date
32
28
  description: Date the SAFE is executed
33
- required: true
34
29
  section: Deal Terms
35
30
  - name: state_of_incorporation
36
31
  type: string
37
32
  description: State where the company is incorporated (e.g., "Delaware")
38
- required: true
39
33
  section: Company Details
40
34
  - name: governing_law_jurisdiction
41
35
  type: string
42
36
  description: State whose laws govern the agreement (e.g., "Delaware")
43
- required: true
44
37
  section: Company Details
45
38
  - name: company
46
39
  type: string
47
40
  description: Company name as used in the signature block (typically matches company_name)
48
- required: true
49
41
  section: Signatures
50
42
  - name: company_name_caps
51
43
  type: string
52
44
  description: Company name in uppercase as used in the header (e.g., "ACME INC.")
53
- required: true
54
45
  section: Signatures
55
46
  - name: name
56
47
  type: string
57
48
  description: Name of the company signatory
58
- required: true
59
49
  section: Signatures
60
50
  - name: title
61
51
  type: string
62
52
  description: Title of the company signatory (e.g., "CEO")
63
- required: true
64
53
  section: Signatures
54
+ required_fields:
55
+ - company_name
56
+ - investor_name
57
+ - purchase_amount
58
+ - date_of_safe
59
+ - state_of_incorporation
60
+ - governing_law_jurisdiction
61
+ - company
62
+ - company_name_caps
63
+ - name
64
+ - title
@@ -1,49 +1,49 @@
1
1
  name: YC Pro Rata Side Letter
2
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.
3
+ Y Combinator's Pro Rata Side Letter, granting the investor pro rata rights in connection with a Post-Money SAFE
4
+ investment.
5
5
  source_url: https://www.ycombinator.com/documents
6
- version: "2024.12"
6
+ version: '2024.12'
7
7
  license: CC-BY-ND-4.0
8
8
  allow_derivatives: false
9
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.
10
+ Based on the Y Combinator Pro Rata Side Letter, available at https://www.ycombinator.com/documents. Licensed under CC
11
+ BY-ND 4.0. Copyright Y Combinator.
13
12
  source_sha256: 9b769a6a724da0c40e6649df8c774f49cc20dafe7247cc366ce4b98b4c2a3510
14
13
  fields:
15
14
  - name: company_name
16
15
  type: string
17
16
  description: Full legal name of the company
18
- required: true
19
17
  section: Parties
20
18
  - name: investor_name
21
19
  type: string
22
20
  description: Full legal name of the investor
23
- required: true
24
21
  section: Parties
25
22
  - name: date_of_safe
26
23
  type: date
27
24
  description: Date of the related SAFE agreement
28
- required: true
29
25
  section: Deal Terms
30
26
  - name: company_name_caps
31
27
  type: string
32
28
  description: Company name in uppercase as used in the header (e.g., "ACME INC.")
33
- required: true
34
29
  section: Signatures
35
30
  - name: investor_name_caps
36
31
  type: string
37
32
  description: Investor name in uppercase as used in the header (e.g., "JANE DOE")
38
- required: true
39
33
  section: Signatures
40
34
  - name: name
41
35
  type: string
42
36
  description: Name of the company signatory
43
- required: true
44
37
  section: Signatures
45
38
  - name: title
46
39
  type: string
47
40
  description: Title of the company signatory (e.g., "CEO")
48
- required: true
49
41
  section: Signatures
42
+ required_fields:
43
+ - company_name
44
+ - investor_name
45
+ - date_of_safe
46
+ - company_name_caps
47
+ - investor_name_caps
48
+ - name
49
+ - title
@@ -1,64 +1,64 @@
1
1
  name: YC Post-Money SAFE — Valuation Cap
2
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.
3
+ Y Combinator's Post-Money SAFE (Simple Agreement for Future Equity) with a valuation cap and no discount. The most
4
+ common early-stage investment instrument.
5
5
  source_url: https://www.ycombinator.com/documents
6
- version: "2024.12"
6
+ version: '2024.12'
7
7
  license: CC-BY-ND-4.0
8
8
  allow_derivatives: false
9
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.
10
+ Based on the Y Combinator Post-Money SAFE, available at https://www.ycombinator.com/documents. Licensed under CC BY-ND
11
+ 4.0. Copyright Y Combinator.
13
12
  source_sha256: 185d24f5bcf13acdf1419bf1d420771088da5dea3b3f3e0cdc7fa5df643649c4
14
13
  fields:
15
14
  - name: company_name
16
15
  type: string
17
16
  description: Full legal name of the company
18
- required: true
19
17
  section: Parties
20
18
  - name: investor_name
21
19
  type: string
22
20
  description: Full legal name of the investor
23
- required: true
24
21
  section: Parties
25
22
  - name: purchase_amount
26
23
  type: string
27
24
  description: Dollar amount of the investment (e.g., "100,000")
28
- required: true
29
25
  section: Deal Terms
30
26
  - name: valuation_cap
31
27
  type: string
32
28
  description: Post-money valuation cap in dollars (e.g., "10,000,000")
33
- required: true
34
29
  section: Deal Terms
35
30
  - name: date_of_safe
36
31
  type: date
37
32
  description: Date the SAFE is executed
38
- required: true
39
33
  section: Deal Terms
40
34
  - name: state_of_incorporation
41
35
  type: string
42
36
  description: State where the company is incorporated (e.g., "Delaware")
43
- required: true
44
37
  section: Company Details
45
38
  - name: governing_law_jurisdiction
46
39
  type: string
47
40
  description: State whose laws govern the agreement (e.g., "Delaware")
48
- required: true
49
41
  section: Company Details
50
42
  - name: company
51
43
  type: string
52
44
  description: Company name as used in the signature block (typically matches company_name)
53
- required: true
54
45
  section: Signatures
55
46
  - name: name
56
47
  type: string
57
48
  description: Name of the company signatory
58
- required: true
59
49
  section: Signatures
60
50
  - name: title
61
51
  type: string
62
52
  description: Title of the company signatory (e.g., "CEO")
63
- required: true
64
53
  section: Signatures
54
+ required_fields:
55
+ - company_name
56
+ - investor_name
57
+ - purchase_amount
58
+ - valuation_cap
59
+ - date_of_safe
60
+ - state_of_incorporation
61
+ - governing_law_jurisdiction
62
+ - company
63
+ - name
64
+ - title
@@ -1,43 +1,43 @@
1
1
  name: NVCA Model Certificate of Incorporation
2
2
  description: >-
3
- Amended and restated certificate of incorporation for venture-backed Delaware
4
- corporations, defining preferred stock rights, preferences, and privileges.
3
+ Amended and restated certificate of incorporation for venture-backed Delaware corporations, defining preferred stock
4
+ rights, preferences, and privileges.
5
5
  source_url: https://nvca.org/wp-content/uploads/2025/10/NVCA-Model-COI-10-1-2025.docx
6
- source_version: "10-1-2025"
6
+ source_version: 10-1-2025
7
7
  license_note: >-
8
- NVCA model documents are freely downloadable but not redistributable.
9
- This recipe contains only transformation instructions, not the source document.
8
+ NVCA model documents are freely downloadable but not redistributable. This recipe contains only transformation
9
+ instructions, not the source document.
10
10
  source_sha256: d75600769c12724990de48149d7a2bb161f3522daa54b1783672f93697d87d29
11
11
  optional: false
12
12
  fields:
13
13
  - name: original_issue_price
14
14
  type: string
15
15
  description: Original purchase price per share of Series A Preferred Stock
16
- required: true
17
16
  - name: initial_purchase_price
18
17
  type: string
19
18
  description: Initial Series A purchase price per share
20
- required: true
21
19
  - name: signature_page_marker
22
20
  type: string
23
21
  description: Signature page marker text
24
- required: false
25
22
  default: Signature Page Follows
26
23
  - name: time_zone
27
24
  type: string
28
25
  description: Time zone for notices and deadlines (e.g., Eastern, Pacific)
29
- required: true
30
26
  default: Eastern
31
27
  - name: par_value
32
28
  type: string
33
29
  description: Par value per share of common and preferred stock
34
- required: true
35
- default: "0.001"
30
+ default: '0.001'
36
31
  - name: specify_percentage
37
32
  type: string
38
33
  description: Percentage threshold for specified provisions
39
- required: true
40
34
  - name: effective_date
41
35
  type: date
42
36
  description: Effective date of the certificate of incorporation
43
- required: true
37
+ required_fields:
38
+ - original_issue_price
39
+ - initial_purchase_price
40
+ - time_zone
41
+ - par_value
42
+ - specify_percentage
43
+ - effective_date