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.
- package/LICENSE +21 -0
- package/README.md +161 -0
- package/bin/open-agreements.js +2 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +102 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/commands/fill.d.ts +7 -0
- package/dist/commands/fill.d.ts.map +1 -0
- package/dist/commands/fill.js +84 -0
- package/dist/commands/fill.js.map +1 -0
- package/dist/commands/list.d.ts +6 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +202 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/recipe.d.ts +21 -0
- package/dist/commands/recipe.d.ts.map +1 -0
- package/dist/commands/recipe.js +71 -0
- package/dist/commands/recipe.js.map +1 -0
- package/dist/commands/scan.d.ts +12 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +122 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/validate.d.ts +6 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +139 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/core/command-generation/adapters/claude.d.ts +11 -0
- package/dist/core/command-generation/adapters/claude.d.ts.map +1 -0
- package/dist/core/command-generation/adapters/claude.js +85 -0
- package/dist/core/command-generation/adapters/claude.js.map +1 -0
- package/dist/core/command-generation/types.d.ts +14 -0
- package/dist/core/command-generation/types.d.ts.map +1 -0
- package/dist/core/command-generation/types.js +2 -0
- package/dist/core/command-generation/types.js.map +1 -0
- package/dist/core/engine.d.ts +13 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +149 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/external/index.d.ts +8 -0
- package/dist/core/external/index.d.ts.map +1 -0
- package/dist/core/external/index.js +92 -0
- package/dist/core/external/index.js.map +1 -0
- package/dist/core/external/types.d.ts +18 -0
- package/dist/core/external/types.d.ts.map +1 -0
- package/dist/core/external/types.js +2 -0
- package/dist/core/external/types.js.map +1 -0
- package/dist/core/fill-pipeline.d.ts +61 -0
- package/dist/core/fill-pipeline.d.ts.map +1 -0
- package/dist/core/fill-pipeline.js +279 -0
- package/dist/core/fill-pipeline.js.map +1 -0
- package/dist/core/fill-utils.d.ts +39 -0
- package/dist/core/fill-utils.d.ts.map +1 -0
- package/dist/core/fill-utils.js +127 -0
- package/dist/core/fill-utils.js.map +1 -0
- package/dist/core/metadata.d.ts +396 -0
- package/dist/core/metadata.d.ts.map +1 -0
- package/dist/core/metadata.js +126 -0
- package/dist/core/metadata.js.map +1 -0
- package/dist/core/recipe/cleaner.d.ts +13 -0
- package/dist/core/recipe/cleaner.d.ts.map +1 -0
- package/dist/core/recipe/cleaner.js +106 -0
- package/dist/core/recipe/cleaner.js.map +1 -0
- package/dist/core/recipe/downloader.d.ts +8 -0
- package/dist/core/recipe/downloader.d.ts.map +1 -0
- package/dist/core/recipe/downloader.js +58 -0
- package/dist/core/recipe/downloader.js.map +1 -0
- package/dist/core/recipe/index.d.ts +14 -0
- package/dist/core/recipe/index.d.ts.map +1 -0
- package/dist/core/recipe/index.js +91 -0
- package/dist/core/recipe/index.js.map +1 -0
- package/dist/core/recipe/ooxml-parts.d.ts +21 -0
- package/dist/core/recipe/ooxml-parts.d.ts.map +1 -0
- package/dist/core/recipe/ooxml-parts.js +33 -0
- package/dist/core/recipe/ooxml-parts.js.map +1 -0
- package/dist/core/recipe/patcher.d.ts +17 -0
- package/dist/core/recipe/patcher.d.ts.map +1 -0
- package/dist/core/recipe/patcher.js +240 -0
- package/dist/core/recipe/patcher.js.map +1 -0
- package/dist/core/recipe/types.d.ts +28 -0
- package/dist/core/recipe/types.d.ts.map +1 -0
- package/dist/core/recipe/types.js +2 -0
- package/dist/core/recipe/types.js.map +1 -0
- package/dist/core/recipe/verifier.d.ts +24 -0
- package/dist/core/recipe/verifier.d.ts.map +1 -0
- package/dist/core/recipe/verifier.js +143 -0
- package/dist/core/recipe/verifier.js.map +1 -0
- package/dist/core/validation/external.d.ts +16 -0
- package/dist/core/validation/external.d.ts.map +1 -0
- package/dist/core/validation/external.js +106 -0
- package/dist/core/validation/external.js.map +1 -0
- package/dist/core/validation/license.d.ts +15 -0
- package/dist/core/validation/license.d.ts.map +1 -0
- package/dist/core/validation/license.js +30 -0
- package/dist/core/validation/license.js.map +1 -0
- package/dist/core/validation/output.d.ts +12 -0
- package/dist/core/validation/output.d.ts.map +1 -0
- package/dist/core/validation/output.js +47 -0
- package/dist/core/validation/output.js.map +1 -0
- package/dist/core/validation/recipe.d.ts +19 -0
- package/dist/core/validation/recipe.d.ts.map +1 -0
- package/dist/core/validation/recipe.js +148 -0
- package/dist/core/validation/recipe.js.map +1 -0
- package/dist/core/validation/template.d.ts +11 -0
- package/dist/core/validation/template.d.ts.map +1 -0
- package/dist/core/validation/template.js +159 -0
- package/dist/core/validation/template.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/paths.d.ts +15 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +43 -0
- package/dist/utils/paths.js.map +1 -0
- package/external/LICENSE +27 -0
- package/external/README.md +38 -0
- package/external/yc-safe-discount/README.md +16 -0
- package/external/yc-safe-discount/clean.json +4 -0
- package/external/yc-safe-discount/metadata.yaml +71 -0
- package/external/yc-safe-discount/replacements.json +13 -0
- package/external/yc-safe-discount/template.docx +0 -0
- package/external/yc-safe-mfn/README.md +16 -0
- package/external/yc-safe-mfn/clean.json +4 -0
- package/external/yc-safe-mfn/metadata.yaml +64 -0
- package/external/yc-safe-mfn/replacements.json +12 -0
- package/external/yc-safe-mfn/template.docx +0 -0
- package/external/yc-safe-pro-rata-side-letter/README.md +16 -0
- package/external/yc-safe-pro-rata-side-letter/clean.json +4 -0
- package/external/yc-safe-pro-rata-side-letter/metadata.yaml +49 -0
- package/external/yc-safe-pro-rata-side-letter/replacements.json +9 -0
- package/external/yc-safe-pro-rata-side-letter/template.docx +0 -0
- package/external/yc-safe-valuation-cap/README.md +16 -0
- package/external/yc-safe-valuation-cap/clean.json +4 -0
- package/external/yc-safe-valuation-cap/metadata.yaml +64 -0
- package/external/yc-safe-valuation-cap/replacements.json +12 -0
- package/external/yc-safe-valuation-cap/template.docx +0 -0
- package/package.json +77 -0
- package/recipes/nvca-certificate-of-incorporation/clean.json +8 -0
- package/recipes/nvca-certificate-of-incorporation/metadata.yaml +43 -0
- package/recipes/nvca-certificate-of-incorporation/replacements.json +9 -0
- package/recipes/nvca-certificate-of-incorporation/schema.json +11 -0
- package/recipes/nvca-indemnification-agreement/clean.json +7 -0
- package/recipes/nvca-indemnification-agreement/metadata.yaml +83 -0
- package/recipes/nvca-indemnification-agreement/replacements.json +17 -0
- package/recipes/nvca-indemnification-agreement/schema.json +19 -0
- package/recipes/nvca-investors-rights-agreement/clean.json +12 -0
- package/recipes/nvca-investors-rights-agreement/metadata.yaml +75 -0
- package/recipes/nvca-investors-rights-agreement/replacements.json +18 -0
- package/recipes/nvca-investors-rights-agreement/schema.json +18 -0
- package/recipes/nvca-management-rights-letter/clean.json +7 -0
- package/recipes/nvca-management-rights-letter/metadata.yaml +50 -0
- package/recipes/nvca-management-rights-letter/replacements.json +11 -0
- package/recipes/nvca-management-rights-letter/schema.json +13 -0
- package/recipes/nvca-rofr-co-sale-agreement/clean.json +7 -0
- package/recipes/nvca-rofr-co-sale-agreement/metadata.yaml +80 -0
- package/recipes/nvca-rofr-co-sale-agreement/replacements.json +17 -0
- package/recipes/nvca-rofr-co-sale-agreement/schema.json +19 -0
- package/recipes/nvca-stock-purchase-agreement/clean.json +10 -0
- package/recipes/nvca-stock-purchase-agreement/metadata.yaml +74 -0
- package/recipes/nvca-stock-purchase-agreement/replacements.json +20 -0
- package/recipes/nvca-stock-purchase-agreement/schema.json +19 -0
- package/recipes/nvca-voting-agreement/README.md +53 -0
- package/recipes/nvca-voting-agreement/clean.json +7 -0
- package/recipes/nvca-voting-agreement/metadata.yaml +70 -0
- package/recipes/nvca-voting-agreement/replacements.json +18 -0
- package/recipes/nvca-voting-agreement/schema.json +28 -0
- package/skills/open-agreements/SKILL.md +166 -0
- package/templates/bonterms-mutual-nda/README.md +27 -0
- package/templates/bonterms-mutual-nda/metadata.yaml +58 -0
- package/templates/bonterms-mutual-nda/template.docx +0 -0
- package/templates/bonterms-professional-services-agreement/README.md +24 -0
- package/templates/bonterms-professional-services-agreement/metadata.yaml +40 -0
- package/templates/bonterms-professional-services-agreement/template.docx +0 -0
- package/templates/common-paper-ai-addendum/README.md +23 -0
- package/templates/common-paper-ai-addendum/metadata.yaml +33 -0
- package/templates/common-paper-ai-addendum/template.docx +0 -0
- package/templates/common-paper-ai-addendum-in-app/README.md +21 -0
- package/templates/common-paper-ai-addendum-in-app/metadata.yaml +23 -0
- package/templates/common-paper-ai-addendum-in-app/template.docx +0 -0
- package/templates/common-paper-amendment/README.md +27 -0
- package/templates/common-paper-amendment/metadata.yaml +53 -0
- package/templates/common-paper-amendment/template.docx +0 -0
- package/templates/common-paper-business-associate-agreement/README.md +29 -0
- package/templates/common-paper-business-associate-agreement/metadata.yaml +63 -0
- package/templates/common-paper-business-associate-agreement/template.docx +0 -0
- package/templates/common-paper-cloud-service-agreement/README.md +32 -0
- package/templates/common-paper-cloud-service-agreement/metadata.yaml +488 -0
- package/templates/common-paper-cloud-service-agreement/template.docx +0 -0
- package/templates/common-paper-csa-click-through/README.md +33 -0
- package/templates/common-paper-csa-click-through/metadata.yaml +83 -0
- package/templates/common-paper-csa-click-through/template.docx +0 -0
- package/templates/common-paper-csa-with-ai/README.md +49 -0
- package/templates/common-paper-csa-with-ai/metadata.yaml +166 -0
- package/templates/common-paper-csa-with-ai/template.docx +0 -0
- package/templates/common-paper-csa-with-sla/README.md +53 -0
- package/templates/common-paper-csa-with-sla/metadata.yaml +185 -0
- package/templates/common-paper-csa-with-sla/template.docx +0 -0
- package/templates/common-paper-csa-without-sla/README.md +47 -0
- package/templates/common-paper-csa-without-sla/metadata.yaml +155 -0
- package/templates/common-paper-csa-without-sla/template.docx +0 -0
- package/templates/common-paper-data-processing-agreement/README.md +46 -0
- package/templates/common-paper-data-processing-agreement/metadata.yaml +149 -0
- package/templates/common-paper-data-processing-agreement/template.docx +0 -0
- package/templates/common-paper-design-partner-agreement/README.md +29 -0
- package/templates/common-paper-design-partner-agreement/metadata.yaml +65 -0
- package/templates/common-paper-design-partner-agreement/template.docx +0 -0
- package/templates/common-paper-independent-contractor-agreement/README.md +27 -0
- package/templates/common-paper-independent-contractor-agreement/metadata.yaml +55 -0
- package/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
- package/templates/common-paper-letter-of-intent/README.md +25 -0
- package/templates/common-paper-letter-of-intent/metadata.yaml +43 -0
- package/templates/common-paper-letter-of-intent/template.docx +0 -0
- package/templates/common-paper-mutual-nda/README.md +29 -0
- package/templates/common-paper-mutual-nda/metadata.yaml +59 -0
- package/templates/common-paper-mutual-nda/template.docx +0 -0
- package/templates/common-paper-one-way-nda/README.md +27 -0
- package/templates/common-paper-one-way-nda/metadata.yaml +60 -0
- package/templates/common-paper-one-way-nda/template.docx +0 -0
- package/templates/common-paper-order-form/README.md +36 -0
- package/templates/common-paper-order-form/metadata.yaml +98 -0
- package/templates/common-paper-order-form/template.docx +0 -0
- package/templates/common-paper-order-form-with-sla/README.md +42 -0
- package/templates/common-paper-order-form-with-sla/metadata.yaml +129 -0
- package/templates/common-paper-order-form-with-sla/template.docx +0 -0
- package/templates/common-paper-partnership-agreement/README.md +34 -0
- package/templates/common-paper-partnership-agreement/metadata.yaml +90 -0
- package/templates/common-paper-partnership-agreement/template.docx +0 -0
- package/templates/common-paper-pilot-agreement/README.md +34 -0
- package/templates/common-paper-pilot-agreement/metadata.yaml +90 -0
- package/templates/common-paper-pilot-agreement/template.docx +0 -0
- package/templates/common-paper-professional-services-agreement/README.md +44 -0
- package/templates/common-paper-professional-services-agreement/metadata.yaml +141 -0
- package/templates/common-paper-professional-services-agreement/template.docx +0 -0
- package/templates/common-paper-software-license-agreement/README.md +18 -0
- package/templates/common-paper-software-license-agreement/metadata.yaml +13 -0
- package/templates/common-paper-software-license-agreement/template.docx +0 -0
- package/templates/common-paper-statement-of-work/README.md +32 -0
- package/templates/common-paper-statement-of-work/metadata.yaml +78 -0
- package/templates/common-paper-statement-of-work/template.docx +0 -0
- package/templates/common-paper-term-sheet/README.md +22 -0
- package/templates/common-paper-term-sheet/metadata.yaml +28 -0
- package/templates/common-paper-term-sheet/template.docx +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
name: NVCA Model Indemnification Agreement
|
|
2
|
+
description: >-
|
|
3
|
+
Director and officer indemnification agreement for venture-backed companies,
|
|
4
|
+
providing indemnification and advancement of expenses.
|
|
5
|
+
source_url: https://nvca.org/wp-content/uploads/2021/12/NVCA-2020-Indemnification-Agreement.docx
|
|
6
|
+
source_version: "2020"
|
|
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: f9b61b4d99e245573de41d9469925b4332f871ec0e6ac6593055cdfe17825300
|
|
11
|
+
optional: false
|
|
12
|
+
fields:
|
|
13
|
+
- name: indemnitee_name
|
|
14
|
+
type: string
|
|
15
|
+
description: Full legal name of the indemnitee (director or officer)
|
|
16
|
+
required: true
|
|
17
|
+
- name: indemnitee_address
|
|
18
|
+
type: string
|
|
19
|
+
description: Address of the indemnitee
|
|
20
|
+
required: true
|
|
21
|
+
- name: company_name
|
|
22
|
+
type: string
|
|
23
|
+
description: Name of the corporation providing indemnification
|
|
24
|
+
required: true
|
|
25
|
+
- name: fund_sponsor_name
|
|
26
|
+
type: string
|
|
27
|
+
description: Name of the sponsoring fund or entity appointing the indemnitee
|
|
28
|
+
required: false
|
|
29
|
+
- name: indemnitee_role
|
|
30
|
+
type: string
|
|
31
|
+
description: Primary role being indemnified (e.g. director)
|
|
32
|
+
required: true
|
|
33
|
+
default: director
|
|
34
|
+
- name: indemnitee_role_plural
|
|
35
|
+
type: string
|
|
36
|
+
description: Plural form of the primary role (e.g. directors)
|
|
37
|
+
required: true
|
|
38
|
+
default: directors
|
|
39
|
+
- name: indemnitee_role_secondary
|
|
40
|
+
type: string
|
|
41
|
+
description: Secondary role being indemnified (e.g. officer)
|
|
42
|
+
required: false
|
|
43
|
+
default: officer
|
|
44
|
+
- name: indemnitee_role_secondary_plural
|
|
45
|
+
type: string
|
|
46
|
+
description: Plural form of the secondary role (e.g. officers)
|
|
47
|
+
required: false
|
|
48
|
+
default: officers
|
|
49
|
+
- name: indemnitee_pronoun_possessive
|
|
50
|
+
type: string
|
|
51
|
+
description: Possessive pronoun for the indemnitee entity (e.g. its)
|
|
52
|
+
required: true
|
|
53
|
+
default: its
|
|
54
|
+
- name: indemnitee_pronoun_possessive_plural
|
|
55
|
+
type: string
|
|
56
|
+
description: Plural possessive pronoun for the indemnitee (e.g. their)
|
|
57
|
+
required: true
|
|
58
|
+
default: their
|
|
59
|
+
- name: bylaws_name
|
|
60
|
+
type: string
|
|
61
|
+
description: Name of the company's bylaws document
|
|
62
|
+
required: true
|
|
63
|
+
default: Bylaws
|
|
64
|
+
- name: certificate_name
|
|
65
|
+
type: string
|
|
66
|
+
description: Name of the company's certificate of incorporation
|
|
67
|
+
required: true
|
|
68
|
+
default: Certificate of Incorporation
|
|
69
|
+
- name: and_appointing_stockholder
|
|
70
|
+
type: string
|
|
71
|
+
description: Optional additional party text or empty string
|
|
72
|
+
required: false
|
|
73
|
+
default: ""
|
|
74
|
+
- name: indemnification_section_letter
|
|
75
|
+
type: string
|
|
76
|
+
description: Section reference letter for indemnification provisions in the certificate
|
|
77
|
+
required: true
|
|
78
|
+
default: E
|
|
79
|
+
- name: signature_page_marker
|
|
80
|
+
type: string
|
|
81
|
+
description: Signature page marker text
|
|
82
|
+
required: false
|
|
83
|
+
default: Signature Page Follows
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"[name]": "{indemnitee_name}",
|
|
3
|
+
"[address]": "{indemnitee_address}",
|
|
4
|
+
"[corporation]": "{company_name}",
|
|
5
|
+
"[name of fund/sponsor]": "{fund_sponsor_name}",
|
|
6
|
+
"[director]": "{indemnitee_role}",
|
|
7
|
+
"[directors]": "{indemnitee_role_plural}",
|
|
8
|
+
"[officer]": "{indemnitee_role_secondary}",
|
|
9
|
+
"[officers]": "{indemnitee_role_secondary_plural}",
|
|
10
|
+
"[its]": "{indemnitee_pronoun_possessive}",
|
|
11
|
+
"[their]": "{indemnitee_pronoun_possessive_plural}",
|
|
12
|
+
"[Bylaws]": "{bylaws_name}",
|
|
13
|
+
"[Certificate of Incorporation]": "{certificate_name}",
|
|
14
|
+
"[and Appointing Stockholder]": "{and_appointing_stockholder}",
|
|
15
|
+
"[E]": "{indemnification_section_letter}",
|
|
16
|
+
"[Signature Page Follows]": "{signature_page_marker}"
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fields": [
|
|
3
|
+
{ "name": "indemnitee_name", "type": "string", "description": "Full legal name of the indemnitee (director or officer)" },
|
|
4
|
+
{ "name": "indemnitee_address", "type": "string", "description": "Address of the indemnitee" },
|
|
5
|
+
{ "name": "company_name", "type": "string", "description": "Name of the corporation providing indemnification" },
|
|
6
|
+
{ "name": "fund_sponsor_name", "type": "string", "description": "Name of the sponsoring fund or entity appointing the indemnitee" },
|
|
7
|
+
{ "name": "indemnitee_role", "type": "string", "description": "Primary role being indemnified (e.g. director)" },
|
|
8
|
+
{ "name": "indemnitee_role_plural", "type": "string", "description": "Plural form of the primary role (e.g. directors)" },
|
|
9
|
+
{ "name": "indemnitee_role_secondary", "type": "string", "description": "Secondary role being indemnified (e.g. officer)" },
|
|
10
|
+
{ "name": "indemnitee_role_secondary_plural", "type": "string", "description": "Plural form of the secondary role (e.g. officers)" },
|
|
11
|
+
{ "name": "indemnitee_pronoun_possessive", "type": "string", "description": "Possessive pronoun for the indemnitee entity (e.g. its)" },
|
|
12
|
+
{ "name": "indemnitee_pronoun_possessive_plural", "type": "string", "description": "Plural possessive pronoun for the indemnitee (e.g. their)" },
|
|
13
|
+
{ "name": "bylaws_name", "type": "string", "description": "Name of the company's bylaws document" },
|
|
14
|
+
{ "name": "certificate_name", "type": "string", "description": "Name of the company's certificate of incorporation" },
|
|
15
|
+
{ "name": "and_appointing_stockholder", "type": "string", "description": "Optional additional party text (e.g. 'and Appointing Stockholder') or empty string" },
|
|
16
|
+
{ "name": "indemnification_section_letter", "type": "string", "description": "Section reference letter for indemnification provisions in the certificate" },
|
|
17
|
+
{ "name": "signature_page_marker", "type": "string", "description": "Signature page marker text" }
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
name: NVCA Model Investors' Rights Agreement
|
|
2
|
+
description: >-
|
|
3
|
+
Investors' rights agreement for venture financings, covering registration rights,
|
|
4
|
+
information rights, board observer rights, and protective provisions.
|
|
5
|
+
source_url: https://nvca.org/wp-content/uploads/2025/10/NVCA-Model-IRA-10-1-2025-2-1.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: be8ad13f171a343bdb53716b1d318689ae3477cdf7f1986b2e3985e1cabbd08a
|
|
11
|
+
optional: false
|
|
12
|
+
fields:
|
|
13
|
+
- name: company_name
|
|
14
|
+
type: string
|
|
15
|
+
description: Full legal name of the company (e.g. Acme Corp, Inc.)
|
|
16
|
+
required: true
|
|
17
|
+
- name: company_name_short
|
|
18
|
+
type: string
|
|
19
|
+
description: Short name of the company used in running text (e.g. Acme or the Company)
|
|
20
|
+
required: true
|
|
21
|
+
- name: investor_name
|
|
22
|
+
type: string
|
|
23
|
+
description: Full legal name of the lead investor
|
|
24
|
+
required: true
|
|
25
|
+
- name: company_counsel
|
|
26
|
+
type: string
|
|
27
|
+
description: Name and address of company's legal counsel
|
|
28
|
+
required: true
|
|
29
|
+
- name: counsel_cc
|
|
30
|
+
type: string
|
|
31
|
+
description: Additional counsel to CC on notices, or empty string if none
|
|
32
|
+
required: false
|
|
33
|
+
default: ""
|
|
34
|
+
- name: state_of_incorporation
|
|
35
|
+
type: string
|
|
36
|
+
description: State of incorporation (e.g. Delaware)
|
|
37
|
+
required: true
|
|
38
|
+
default: Delaware
|
|
39
|
+
- name: state_lower
|
|
40
|
+
type: string
|
|
41
|
+
description: State of incorporation in lowercase (e.g. delaware)
|
|
42
|
+
required: true
|
|
43
|
+
default: delaware
|
|
44
|
+
- name: judicial_district
|
|
45
|
+
type: string
|
|
46
|
+
description: Federal judicial district for dispute resolution (e.g. District of Delaware)
|
|
47
|
+
required: true
|
|
48
|
+
default: District of Delaware
|
|
49
|
+
- name: amended_restated_upper
|
|
50
|
+
type: string
|
|
51
|
+
description: Uppercase prefix if amending a prior agreement (e.g. AMENDED AND RESTATED) or empty string
|
|
52
|
+
required: false
|
|
53
|
+
default: ""
|
|
54
|
+
- name: amended_restated
|
|
55
|
+
type: string
|
|
56
|
+
description: Title-case prefix if amending a prior agreement (e.g. Amended and Restated) or empty string
|
|
57
|
+
required: false
|
|
58
|
+
default: ""
|
|
59
|
+
- name: business_description
|
|
60
|
+
type: string
|
|
61
|
+
description: Brief description of the company's business
|
|
62
|
+
required: true
|
|
63
|
+
- name: signature_page_marker
|
|
64
|
+
type: string
|
|
65
|
+
description: Signature page marker text
|
|
66
|
+
required: false
|
|
67
|
+
default: Signature Page Follows
|
|
68
|
+
- name: effective_date
|
|
69
|
+
type: string
|
|
70
|
+
description: Effective date of the agreement (e.g. January 15, 2025)
|
|
71
|
+
required: true
|
|
72
|
+
- name: checklist_delivery_date
|
|
73
|
+
type: string
|
|
74
|
+
description: Date the compliance checklist is being delivered
|
|
75
|
+
required: false
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"[Insert Company Name]": "{company_name}",
|
|
3
|
+
"[Company Name]": "{company_name}",
|
|
4
|
+
"[Company]": "{company_name_short}",
|
|
5
|
+
"[Insert Investor Name]": "{investor_name}",
|
|
6
|
+
"[Company counsel name and address]": "{company_counsel}",
|
|
7
|
+
"[Counsel cc, if any]": "{counsel_cc}",
|
|
8
|
+
"[State of Delaware]": "State of {state_of_incorporation}",
|
|
9
|
+
"[State]": "{state_of_incorporation}",
|
|
10
|
+
"[state]": "{state_lower}",
|
|
11
|
+
"[judicial district]": "{judicial_district}",
|
|
12
|
+
"[AMENDED AND RESTATED]": "{amended_restated_upper}",
|
|
13
|
+
"[Amended and Restated]": "{amended_restated}",
|
|
14
|
+
"[description of business]": "{business_description}",
|
|
15
|
+
"[Signature Page Follows]": "{signature_page_marker}",
|
|
16
|
+
"[_________ __, 20__]": "{effective_date}",
|
|
17
|
+
"[Date checklist is being delivered]": "{checklist_delivery_date}"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fields": [
|
|
3
|
+
{ "name": "company_name", "type": "string", "description": "Full legal name of the company (e.g. Acme Corp, Inc.)" },
|
|
4
|
+
{ "name": "company_name_short", "type": "string", "description": "Short name of the company used in running text (e.g. Acme or the Company)" },
|
|
5
|
+
{ "name": "investor_name", "type": "string", "description": "Full legal name of the lead investor" },
|
|
6
|
+
{ "name": "company_counsel", "type": "string", "description": "Name and address of company's legal counsel" },
|
|
7
|
+
{ "name": "counsel_cc", "type": "string", "description": "Additional counsel to CC on notices, or empty string if none" },
|
|
8
|
+
{ "name": "state_of_incorporation", "type": "string", "description": "State of incorporation (e.g. Delaware)" },
|
|
9
|
+
{ "name": "state_lower", "type": "string", "description": "State of incorporation in lowercase (e.g. delaware)" },
|
|
10
|
+
{ "name": "judicial_district", "type": "string", "description": "Federal judicial district for dispute resolution (e.g. District of Delaware)" },
|
|
11
|
+
{ "name": "amended_restated_upper", "type": "string", "description": "Uppercase prefix if amending a prior agreement (e.g. AMENDED AND RESTATED) or empty string" },
|
|
12
|
+
{ "name": "amended_restated", "type": "string", "description": "Title-case prefix if amending a prior agreement (e.g. Amended and Restated) or empty string" },
|
|
13
|
+
{ "name": "business_description", "type": "string", "description": "Brief description of the company's business" },
|
|
14
|
+
{ "name": "signature_page_marker", "type": "string", "description": "Signature page marker text" },
|
|
15
|
+
{ "name": "effective_date", "type": "string", "description": "Effective date of the agreement (e.g. January 15, 2025)" },
|
|
16
|
+
{ "name": "checklist_delivery_date", "type": "string", "description": "Date the compliance checklist is being delivered" }
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
name: NVCA Model Management Rights Letter
|
|
2
|
+
description: >-
|
|
3
|
+
Management rights letter granting ERISA-qualifying management rights to
|
|
4
|
+
venture capital fund investors.
|
|
5
|
+
source_url: https://nvca.org/wp-content/uploads/2025/12/NVCA-2020-Management-Rights-Letter-1-1.docx
|
|
6
|
+
source_version: "2020"
|
|
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: 9661d2a68ca20ee77cf553f1ec5804f08147e7e4c35f5a03938e76a778083e8b
|
|
11
|
+
optional: false
|
|
12
|
+
fields:
|
|
13
|
+
- name: company_name_upper
|
|
14
|
+
type: string
|
|
15
|
+
description: Company name in uppercase
|
|
16
|
+
required: true
|
|
17
|
+
- name: investor_name
|
|
18
|
+
type: string
|
|
19
|
+
description: Full name of the investor
|
|
20
|
+
required: true
|
|
21
|
+
- name: investor_name_upper
|
|
22
|
+
type: string
|
|
23
|
+
description: Investor name in uppercase
|
|
24
|
+
required: true
|
|
25
|
+
- name: city
|
|
26
|
+
type: string
|
|
27
|
+
description: City for the company address
|
|
28
|
+
required: true
|
|
29
|
+
- name: state
|
|
30
|
+
type: string
|
|
31
|
+
description: State for the company address
|
|
32
|
+
required: true
|
|
33
|
+
- name: street_address
|
|
34
|
+
type: string
|
|
35
|
+
description: Street address for the company
|
|
36
|
+
required: true
|
|
37
|
+
- name: zip_code
|
|
38
|
+
type: string
|
|
39
|
+
description: ZIP code for the company address
|
|
40
|
+
required: true
|
|
41
|
+
- name: company_letterhead
|
|
42
|
+
type: string
|
|
43
|
+
description: Portfolio company letterhead text
|
|
44
|
+
required: false
|
|
45
|
+
default: ""
|
|
46
|
+
- name: signature_page_marker
|
|
47
|
+
type: string
|
|
48
|
+
description: Signature page marker text
|
|
49
|
+
required: false
|
|
50
|
+
default: Signature Page Follows
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"[COMPANY]": "{company_name_upper}",
|
|
3
|
+
"[Investor Name]": "{investor_name}",
|
|
4
|
+
"[INVESTOR]": "{investor_name_upper}",
|
|
5
|
+
"[City]": "{city}",
|
|
6
|
+
"[State]": "{state}",
|
|
7
|
+
"[Street Address]": "{street_address}",
|
|
8
|
+
"[Zip]": "{zip_code}",
|
|
9
|
+
"[PORTFOLIO COMPANY LETTERHEAD]": "{company_letterhead}",
|
|
10
|
+
"[Signature Page Follows]": "{signature_page_marker}"
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fields": [
|
|
3
|
+
{ "name": "company_name_upper", "type": "string", "description": "Company name in uppercase" },
|
|
4
|
+
{ "name": "investor_name", "type": "string", "description": "Full name of the investor" },
|
|
5
|
+
{ "name": "investor_name_upper", "type": "string", "description": "Investor name in uppercase" },
|
|
6
|
+
{ "name": "city", "type": "string", "description": "City for the company address" },
|
|
7
|
+
{ "name": "state", "type": "string", "description": "State for the company address" },
|
|
8
|
+
{ "name": "street_address", "type": "string", "description": "Street address for the company" },
|
|
9
|
+
{ "name": "zip_code", "type": "string", "description": "ZIP code for the company address" },
|
|
10
|
+
{ "name": "company_letterhead", "type": "string", "description": "Portfolio company letterhead text" },
|
|
11
|
+
{ "name": "signature_page_marker", "type": "string", "description": "Signature page marker text" }
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: NVCA Model Right of First Refusal and Co-Sale Agreement
|
|
2
|
+
description: >-
|
|
3
|
+
Right of first refusal and co-sale agreement for venture financings,
|
|
4
|
+
restricting transfer of founder shares and providing investor co-sale rights.
|
|
5
|
+
source_url: https://nvca.org/wp-content/uploads/2025/10/NVCA-Model-ROFRA-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: 126b4a402d41b768ff0c9aebf593792159c31ca7a930c440dd5ae0516ef4c4ad
|
|
11
|
+
optional: false
|
|
12
|
+
fields:
|
|
13
|
+
- name: company_name
|
|
14
|
+
type: string
|
|
15
|
+
description: Full legal name of the company (e.g. Acme Corp, Inc.)
|
|
16
|
+
required: true
|
|
17
|
+
- name: investor_name
|
|
18
|
+
type: string
|
|
19
|
+
description: Full legal name of the lead investor
|
|
20
|
+
required: true
|
|
21
|
+
- name: key_holder_name
|
|
22
|
+
type: string
|
|
23
|
+
description: Full name of the key holder (founder or executive)
|
|
24
|
+
required: true
|
|
25
|
+
- name: company_counsel
|
|
26
|
+
type: string
|
|
27
|
+
description: Name and address of company's legal counsel
|
|
28
|
+
required: true
|
|
29
|
+
- name: counsel_cc
|
|
30
|
+
type: string
|
|
31
|
+
description: Additional counsel to CC on notices, or empty string if none
|
|
32
|
+
required: false
|
|
33
|
+
default: ""
|
|
34
|
+
- name: amended_restated_upper
|
|
35
|
+
type: string
|
|
36
|
+
description: Uppercase prefix if amending a prior agreement (e.g. AMENDED AND RESTATED) or empty string
|
|
37
|
+
required: false
|
|
38
|
+
default: ""
|
|
39
|
+
- name: amended_restated
|
|
40
|
+
type: string
|
|
41
|
+
description: Title-case prefix if amending a prior agreement (e.g. Amended and Restated) or empty string
|
|
42
|
+
required: false
|
|
43
|
+
default: ""
|
|
44
|
+
- name: judicial_district
|
|
45
|
+
type: string
|
|
46
|
+
description: Federal judicial district for dispute resolution (e.g. District of Delaware)
|
|
47
|
+
required: true
|
|
48
|
+
default: District of Delaware
|
|
49
|
+
- name: state_lower
|
|
50
|
+
type: string
|
|
51
|
+
description: State of incorporation in lowercase (e.g. delaware)
|
|
52
|
+
required: true
|
|
53
|
+
default: delaware
|
|
54
|
+
- name: business_description
|
|
55
|
+
type: string
|
|
56
|
+
description: Brief description of the company's business
|
|
57
|
+
required: true
|
|
58
|
+
- name: signature_page_marker
|
|
59
|
+
type: string
|
|
60
|
+
description: Signature page marker text
|
|
61
|
+
required: false
|
|
62
|
+
default: Signature Page Follows
|
|
63
|
+
- name: effective_date
|
|
64
|
+
type: string
|
|
65
|
+
description: Effective date of the agreement (e.g. January 15, 2025)
|
|
66
|
+
required: true
|
|
67
|
+
- name: specify_percentage
|
|
68
|
+
type: string
|
|
69
|
+
description: Specified percentage threshold for key holder transfers
|
|
70
|
+
required: true
|
|
71
|
+
- name: rofr_response_days
|
|
72
|
+
type: string
|
|
73
|
+
description: Number of days for the company and investors to respond to a ROFR notice (default 45)
|
|
74
|
+
required: true
|
|
75
|
+
default: "45"
|
|
76
|
+
- name: key_holders_label
|
|
77
|
+
type: string
|
|
78
|
+
description: Label for the key holders group (e.g. Key Holders or Founders)
|
|
79
|
+
required: false
|
|
80
|
+
default: Key Holders
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"[Insert Company Name]": "{company_name}",
|
|
3
|
+
"[Insert Investor Name]": "{investor_name}",
|
|
4
|
+
"[Insert Key Holder Name]": "{key_holder_name}",
|
|
5
|
+
"[Company Counsel Name and Address]": "{company_counsel}",
|
|
6
|
+
"[Counsel cc, if any]": "{counsel_cc}",
|
|
7
|
+
"[AMENDED AND RESTATED]": "{amended_restated_upper}",
|
|
8
|
+
"[Amended and Restated]": "{amended_restated}",
|
|
9
|
+
"[judicial district]": "{judicial_district}",
|
|
10
|
+
"[state]": "{state_lower}",
|
|
11
|
+
"[description of business]": "{business_description}",
|
|
12
|
+
"[Signature Page Follows]": "{signature_page_marker}",
|
|
13
|
+
"[_____ __, 20___]": "{effective_date}",
|
|
14
|
+
"[specify percentage]": "{specify_percentage}",
|
|
15
|
+
"[45]": "{rofr_response_days}",
|
|
16
|
+
"[Key Holders]": "{key_holders_label}"
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fields": [
|
|
3
|
+
{ "name": "company_name", "type": "string", "description": "Full legal name of the company (e.g. Acme Corp, Inc.)" },
|
|
4
|
+
{ "name": "investor_name", "type": "string", "description": "Full legal name of the lead investor" },
|
|
5
|
+
{ "name": "key_holder_name", "type": "string", "description": "Full name of the key holder (founder or executive)" },
|
|
6
|
+
{ "name": "company_counsel", "type": "string", "description": "Name and address of company's legal counsel" },
|
|
7
|
+
{ "name": "counsel_cc", "type": "string", "description": "Additional counsel to CC on notices, or empty string if none" },
|
|
8
|
+
{ "name": "amended_restated_upper", "type": "string", "description": "Uppercase prefix if amending a prior agreement (e.g. AMENDED AND RESTATED) or empty string" },
|
|
9
|
+
{ "name": "amended_restated", "type": "string", "description": "Title-case prefix if amending a prior agreement (e.g. Amended and Restated) or empty string" },
|
|
10
|
+
{ "name": "judicial_district", "type": "string", "description": "Federal judicial district for dispute resolution (e.g. District of Delaware)" },
|
|
11
|
+
{ "name": "state_lower", "type": "string", "description": "State of incorporation in lowercase (e.g. delaware)" },
|
|
12
|
+
{ "name": "business_description", "type": "string", "description": "Brief description of the company's business" },
|
|
13
|
+
{ "name": "signature_page_marker", "type": "string", "description": "Signature page marker text" },
|
|
14
|
+
{ "name": "effective_date", "type": "string", "description": "Effective date of the agreement (e.g. January 15, 2025)" },
|
|
15
|
+
{ "name": "specify_percentage", "type": "string", "description": "Specified percentage threshold for key holder transfers" },
|
|
16
|
+
{ "name": "rofr_response_days", "type": "string", "description": "Number of days for the company and investors to respond to a ROFR notice (default 45)" },
|
|
17
|
+
{ "name": "key_holders_label", "type": "string", "description": "Label for the key holders group (e.g. Key Holders or Founders)" }
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
name: NVCA Model Stock Purchase Agreement
|
|
2
|
+
description: >-
|
|
3
|
+
Series preferred stock purchase agreement for venture capital financings,
|
|
4
|
+
covering purchase terms, representations, and closing conditions.
|
|
5
|
+
source_url: https://nvca.org/wp-content/uploads/2025/10/NVCA-Model-SPA-10-28-2025-1.docx
|
|
6
|
+
source_version: "10-28-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: b2c76452fa82dcda72f1fa9f82ba0ce28ea9445441c897f9cb7ac6663930dcab
|
|
11
|
+
optional: false
|
|
12
|
+
fields:
|
|
13
|
+
- name: company_name
|
|
14
|
+
type: string
|
|
15
|
+
description: Full legal name of the company
|
|
16
|
+
required: true
|
|
17
|
+
- name: investor_name
|
|
18
|
+
type: string
|
|
19
|
+
description: Full name of the investor
|
|
20
|
+
required: true
|
|
21
|
+
- name: company_counsel
|
|
22
|
+
type: string
|
|
23
|
+
description: Company counsel name and address
|
|
24
|
+
required: true
|
|
25
|
+
- name: investor_counsel
|
|
26
|
+
type: string
|
|
27
|
+
description: Investor counsel name and address
|
|
28
|
+
required: true
|
|
29
|
+
- name: company_counsel_name
|
|
30
|
+
type: string
|
|
31
|
+
description: Name of the company's counsel
|
|
32
|
+
required: true
|
|
33
|
+
- name: lead_purchaser_name
|
|
34
|
+
type: string
|
|
35
|
+
description: Name of the lead purchaser
|
|
36
|
+
required: true
|
|
37
|
+
- name: judicial_district
|
|
38
|
+
type: string
|
|
39
|
+
description: Federal judicial district for disputes
|
|
40
|
+
required: true
|
|
41
|
+
- name: balance_sheet_date
|
|
42
|
+
type: string
|
|
43
|
+
description: Date of the company's most recent balance sheet
|
|
44
|
+
required: true
|
|
45
|
+
- name: benefit_plan_name
|
|
46
|
+
type: string
|
|
47
|
+
description: Plan year and name of the employee benefit plan
|
|
48
|
+
required: false
|
|
49
|
+
- name: signature_page_marker
|
|
50
|
+
type: string
|
|
51
|
+
description: Signature page marker text
|
|
52
|
+
required: false
|
|
53
|
+
default: Signature Page Follows
|
|
54
|
+
- name: state_lower
|
|
55
|
+
type: string
|
|
56
|
+
description: State name (lowercase)
|
|
57
|
+
required: true
|
|
58
|
+
- name: specify_percentage
|
|
59
|
+
type: string
|
|
60
|
+
description: Specified percentage threshold
|
|
61
|
+
required: true
|
|
62
|
+
- name: financial_reporting_period
|
|
63
|
+
type: string
|
|
64
|
+
description: Financial reporting period (e.g., monthly, quarterly)
|
|
65
|
+
required: true
|
|
66
|
+
default: monthly
|
|
67
|
+
- name: director_names
|
|
68
|
+
type: string
|
|
69
|
+
description: List of individual director names
|
|
70
|
+
required: true
|
|
71
|
+
- name: applicable_purchasers
|
|
72
|
+
type: string
|
|
73
|
+
description: Names of the applicable purchasers
|
|
74
|
+
required: false
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"[Insert Company Name]": "{company_name}",
|
|
3
|
+
"[Company name]": "{company_name}",
|
|
4
|
+
"[Insert Investor Name]": "{investor_name}",
|
|
5
|
+
"[Company Counsel Name and Address]": "{company_counsel}",
|
|
6
|
+
"[name of Investor\u2019s counsel]": "{investor_counsel}",
|
|
7
|
+
"[name of Investor's counsel]": "{investor_counsel}",
|
|
8
|
+
"[insert name of Company counsel]": "{company_counsel_name}",
|
|
9
|
+
"[name of lead Purchaser]": "{lead_purchaser_name}",
|
|
10
|
+
"[judicial district]": "{judicial_district}",
|
|
11
|
+
"[Balance Sheet Date]": "{balance_sheet_date}",
|
|
12
|
+
"[the Balance Sheet Date]": "{balance_sheet_date}",
|
|
13
|
+
"[insert Plan Year and Name]": "{benefit_plan_name}",
|
|
14
|
+
"[Signature Page Follows]": "{signature_page_marker}",
|
|
15
|
+
"[state]": "{state_lower}",
|
|
16
|
+
"[specify percentage]": "{specify_percentage}",
|
|
17
|
+
"[monthly]": "{financial_reporting_period}",
|
|
18
|
+
"[list the individual director names]": "{director_names}",
|
|
19
|
+
"[name the applicable Purchasers]": "{applicable_purchasers}"
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fields": [
|
|
3
|
+
{ "name": "company_name", "type": "string", "description": "Full legal name of the company" },
|
|
4
|
+
{ "name": "investor_name", "type": "string", "description": "Full name of the investor" },
|
|
5
|
+
{ "name": "company_counsel", "type": "string", "description": "Company counsel name and address" },
|
|
6
|
+
{ "name": "investor_counsel", "type": "string", "description": "Investor counsel name and address" },
|
|
7
|
+
{ "name": "company_counsel_name", "type": "string", "description": "Name of the company's counsel" },
|
|
8
|
+
{ "name": "lead_purchaser_name", "type": "string", "description": "Name of the lead purchaser" },
|
|
9
|
+
{ "name": "judicial_district", "type": "string", "description": "Federal judicial district for disputes" },
|
|
10
|
+
{ "name": "balance_sheet_date", "type": "string", "description": "Date of the company's most recent balance sheet" },
|
|
11
|
+
{ "name": "benefit_plan_name", "type": "string", "description": "Plan year and name of the employee benefit plan" },
|
|
12
|
+
{ "name": "signature_page_marker", "type": "string", "description": "Signature page marker text" },
|
|
13
|
+
{ "name": "state_lower", "type": "string", "description": "State name (lowercase)" },
|
|
14
|
+
{ "name": "specify_percentage", "type": "string", "description": "Specified percentage threshold" },
|
|
15
|
+
{ "name": "financial_reporting_period", "type": "string", "description": "Financial reporting period (e.g., monthly, quarterly)" },
|
|
16
|
+
{ "name": "director_names", "type": "string", "description": "List of individual director names" },
|
|
17
|
+
{ "name": "applicable_purchasers", "type": "string", "description": "Names of the applicable purchasers" }
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# NVCA Model Voting Agreement
|
|
2
|
+
|
|
3
|
+
Recipe for the NVCA Model Voting Agreement (version 10-1-2025).
|
|
4
|
+
|
|
5
|
+
## Source
|
|
6
|
+
|
|
7
|
+
The source document is freely downloadable from [NVCA](https://nvca.org) but is not
|
|
8
|
+
redistributable. This recipe contains only transformation instructions.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# Full pipeline (auto-downloads from NVCA)
|
|
14
|
+
open-agreements recipe run nvca-voting-agreement -d values.json -o voting-agreement.docx
|
|
15
|
+
|
|
16
|
+
# With a local copy of the source document
|
|
17
|
+
open-agreements recipe run nvca-voting-agreement -i NVCA-Voting-Agreement.docx -d values.json -o voting-agreement.docx
|
|
18
|
+
|
|
19
|
+
# Individual stages
|
|
20
|
+
open-agreements recipe clean source.docx -o cleaned.docx --recipe nvca-voting-agreement
|
|
21
|
+
open-agreements recipe patch cleaned.docx -o patched.docx --recipe nvca-voting-agreement
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Values File
|
|
25
|
+
|
|
26
|
+
Create a JSON file with the field values:
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"company_name": "Acme Corp",
|
|
31
|
+
"company_name_upper": "ACME CORP",
|
|
32
|
+
"state_of_incorporation": "Delaware",
|
|
33
|
+
"state_of_incorporation_lower": "Delaware",
|
|
34
|
+
"investor_1_name": "Sequoia Capital Fund XIV",
|
|
35
|
+
"investor_1_designee": "Michael Moritz",
|
|
36
|
+
"series_name": "Series A",
|
|
37
|
+
"company_counsel": "Wilson Sonsini, 650 Page Mill Road, Palo Alto, CA 94304",
|
|
38
|
+
"investor_counsel": "Cooley LLP, 3175 Hanover Street, Palo Alto, CA 94304",
|
|
39
|
+
"effective_date": "January 15, 2025",
|
|
40
|
+
"drag_along_percentage": "sixty percent (60%)",
|
|
41
|
+
"board_size": "five (5)",
|
|
42
|
+
"notice_period_days": "120",
|
|
43
|
+
"judicial_district": "Northern District of California",
|
|
44
|
+
"key_holder_name": "Jane Doe"
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## What the Recipe Does
|
|
49
|
+
|
|
50
|
+
1. **Clean**: Removes explanatory footnotes and drafting notes ("Note to Drafter:", "Preliminary Note")
|
|
51
|
+
2. **Patch**: Replaces 33 bracketed placeholders with template tags, handling Word's split-run XML
|
|
52
|
+
3. **Fill**: Renders template tags with your values using docx-templates
|
|
53
|
+
4. **Verify**: Confirms all values appear, no leftover placeholders or unrendered tags remain
|