@open-agreements/open-agreements 0.4.0 → 0.6.2
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/README.md +15 -1
- package/content/external/yc-safe-discount/metadata.yaml +1 -1
- package/content/external/yc-safe-mfn/metadata.yaml +1 -1
- package/content/external/yc-safe-pro-rata-side-letter/metadata.yaml +1 -1
- package/content/external/yc-safe-valuation-cap/metadata.yaml +1 -1
- package/content/recipes/QUALITY_TRACKER.md +35 -0
- package/content/recipes/nvca-certificate-of-incorporation/clean.json +14 -2
- package/content/recipes/nvca-certificate-of-incorporation/computed.json +99 -0
- package/content/recipes/nvca-certificate-of-incorporation/metadata.yaml +133 -2
- package/content/recipes/nvca-certificate-of-incorporation/replacements.json +95 -2
- package/content/recipes/nvca-certificate-of-incorporation/selections-roadmap.md +44 -0
- package/content/recipes/nvca-certificate-of-incorporation/selections.json +95 -0
- package/content/recipes/nvca-indemnification-agreement/metadata.yaml +9 -1
- package/content/recipes/nvca-investors-rights-agreement/clean.json +9 -1
- package/content/recipes/nvca-investors-rights-agreement/metadata.yaml +1 -1
- package/content/recipes/nvca-investors-rights-agreement/replacements.json +4 -1
- package/content/recipes/nvca-management-rights-letter/metadata.yaml +1 -1
- package/content/recipes/nvca-rofr-co-sale-agreement/clean.json +11 -1
- package/content/recipes/nvca-rofr-co-sale-agreement/metadata.yaml +5 -1
- package/content/recipes/nvca-rofr-co-sale-agreement/replacements.json +4 -1
- package/content/recipes/nvca-stock-purchase-agreement/clean.json +8 -3
- package/content/recipes/nvca-stock-purchase-agreement/computed.json +30 -0
- package/content/recipes/nvca-stock-purchase-agreement/metadata.yaml +25 -17
- package/content/recipes/nvca-stock-purchase-agreement/normalize.json +0 -16
- package/content/recipes/nvca-stock-purchase-agreement/replacements.json +22 -19
- package/content/recipes/nvca-stock-purchase-agreement/selections.json +60 -0
- package/content/recipes/nvca-voting-agreement/clean.json +11 -1
- package/content/recipes/nvca-voting-agreement/metadata.yaml +1 -1
- package/content/recipes/nvca-voting-agreement/replacements.json +2 -1
- package/content/templates/bonterms-mutual-nda/metadata.yaml +1 -1
- package/content/templates/bonterms-professional-services-agreement/metadata.yaml +1 -1
- package/content/templates/closing-checklist/metadata.yaml +1 -1
- package/content/templates/common-paper-ai-addendum/metadata.yaml +1 -1
- package/content/templates/common-paper-ai-addendum-in-app/metadata.yaml +1 -1
- package/content/templates/common-paper-amendment/metadata.yaml +1 -1
- package/content/templates/common-paper-business-associate-agreement/metadata.yaml +1 -1
- package/content/templates/common-paper-cloud-service-agreement/metadata.yaml +1 -1
- package/content/templates/common-paper-csa-click-through/metadata.yaml +1 -1
- package/content/templates/common-paper-csa-with-ai/metadata.yaml +1 -1
- package/content/templates/common-paper-csa-with-sla/metadata.yaml +1 -1
- package/content/templates/common-paper-csa-without-sla/metadata.yaml +1 -1
- package/content/templates/common-paper-data-processing-agreement/metadata.yaml +1 -1
- package/content/templates/common-paper-design-partner-agreement/metadata.yaml +1 -1
- package/content/templates/common-paper-independent-contractor-agreement/metadata.yaml +1 -1
- package/content/templates/common-paper-letter-of-intent/metadata.yaml +1 -1
- package/content/templates/common-paper-mutual-nda/metadata.yaml +1 -1
- package/content/templates/common-paper-one-way-nda/metadata.yaml +1 -1
- package/content/templates/common-paper-order-form/metadata.yaml +1 -1
- package/content/templates/common-paper-order-form-with-sla/metadata.yaml +1 -1
- package/content/templates/common-paper-partnership-agreement/metadata.yaml +1 -1
- package/content/templates/common-paper-pilot-agreement/metadata.yaml +1 -1
- package/content/templates/common-paper-professional-services-agreement/metadata.yaml +1 -1
- package/content/templates/common-paper-software-license-agreement/metadata.yaml +1 -1
- package/content/templates/common-paper-statement-of-work/metadata.yaml +1 -1
- package/content/templates/common-paper-term-sheet/metadata.yaml +1 -1
- package/content/templates/openagreements-employee-ip-inventions-assignment/metadata.yaml +1 -1
- package/content/templates/openagreements-employment-confidentiality-acknowledgement/metadata.yaml +1 -1
- package/content/templates/openagreements-employment-offer-letter/metadata.yaml +1 -1
- package/content/templates/working-group-list/metadata.yaml +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +8 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/fill.js +3 -3
- package/dist/commands/fill.js.map +1 -1
- package/dist/commands/list.js +19 -15
- package/dist/commands/list.js.map +1 -1
- package/dist/core/command-generation/adapters/claude.js +4 -4
- package/dist/core/employment/memo.js +3 -3
- package/dist/core/engine.js +1 -1
- package/dist/core/external/index.js +1 -1
- package/dist/core/fill-pipeline.d.ts +3 -3
- package/dist/core/fill-pipeline.js +6 -6
- package/dist/core/fill-pipeline.js.map +1 -1
- package/dist/core/metadata.d.ts +13 -3
- package/dist/core/metadata.d.ts.map +1 -1
- package/dist/core/metadata.js +19 -11
- package/dist/core/metadata.js.map +1 -1
- package/dist/core/recipe/bracket-normalizer.d.ts +4 -5
- package/dist/core/recipe/bracket-normalizer.d.ts.map +1 -1
- package/dist/core/recipe/bracket-normalizer.js +67 -149
- package/dist/core/recipe/bracket-normalizer.js.map +1 -1
- package/dist/core/recipe/cleaner.d.ts.map +1 -1
- package/dist/core/recipe/cleaner.js +91 -7
- package/dist/core/recipe/cleaner.js.map +1 -1
- package/dist/core/recipe/computed.d.ts +1 -0
- package/dist/core/recipe/computed.d.ts.map +1 -1
- package/dist/core/recipe/computed.js +8 -0
- package/dist/core/recipe/computed.js.map +1 -1
- package/dist/core/recipe/downloader.d.ts.map +1 -1
- package/dist/core/recipe/downloader.js +8 -3
- package/dist/core/recipe/downloader.js.map +1 -1
- package/dist/core/recipe/index.d.ts +2 -1
- package/dist/core/recipe/index.d.ts.map +1 -1
- package/dist/core/recipe/index.js +13 -5
- package/dist/core/recipe/index.js.map +1 -1
- package/dist/core/recipe/patcher.d.ts +10 -5
- package/dist/core/recipe/patcher.d.ts.map +1 -1
- package/dist/core/recipe/patcher.js +186 -138
- package/dist/core/recipe/patcher.js.map +1 -1
- package/dist/core/recipe/replacement-keys.d.ts +9 -7
- package/dist/core/recipe/replacement-keys.d.ts.map +1 -1
- package/dist/core/recipe/replacement-keys.js +7 -20
- package/dist/core/recipe/replacement-keys.js.map +1 -1
- package/dist/core/recipe/source-drift.js +1 -1
- package/dist/core/recipe/source-drift.js.map +1 -1
- package/dist/core/recipe/verifier.d.ts +8 -1
- package/dist/core/recipe/verifier.d.ts.map +1 -1
- package/dist/core/recipe/verifier.js +69 -3
- package/dist/core/recipe/verifier.js.map +1 -1
- package/dist/core/selector.d.ts +4 -0
- package/dist/core/selector.d.ts.map +1 -1
- package/dist/core/selector.js +278 -7
- package/dist/core/selector.js.map +1 -1
- package/dist/core/template-listing.d.ts +3 -1
- package/dist/core/template-listing.d.ts.map +1 -1
- package/dist/core/template-listing.js +4 -3
- package/dist/core/template-listing.js.map +1 -1
- package/dist/core/unified-pipeline.d.ts +5 -2
- package/dist/core/unified-pipeline.d.ts.map +1 -1
- package/dist/core/unified-pipeline.js +71 -3
- package/dist/core/unified-pipeline.js.map +1 -1
- package/dist/core/validation/external.d.ts.map +1 -1
- package/dist/core/validation/external.js +0 -2
- package/dist/core/validation/external.js.map +1 -1
- package/dist/core/validation/recipe.d.ts.map +1 -1
- package/dist/core/validation/recipe.js +34 -6
- package/dist/core/validation/recipe.js.map +1 -1
- package/dist/core/validation/scan-metadata.d.ts +2 -1
- package/dist/core/validation/scan-metadata.d.ts.map +1 -1
- package/dist/core/validation/scan-metadata.js +20 -3
- package/dist/core/validation/scan-metadata.js.map +1 -1
- package/dist/core/validation/template.js +5 -5
- package/package.json +5 -4
- package/server.json +31 -0
- package/skills/client-email/SKILL.md +143 -0
- package/skills/cloud-service-agreement/SKILL.md +8 -99
- package/skills/data-privacy-agreement/SKILL.md +10 -97
- package/skills/delaware-franchise-tax/SKILL.md +7 -1
- package/skills/edit-docx-agreement/SKILL.md +10 -3
- package/skills/employment-contract/SKILL.md +10 -95
- package/skills/iso-27001-evidence-collection/SKILL.md +7 -1
- package/skills/iso-27001-internal-audit/SKILL.md +6 -0
- package/skills/nda/SKILL.md +7 -99
- package/skills/open-agreements/CONNECTORS.md +1 -1
- package/skills/open-agreements/SKILL.md +17 -104
- package/skills/recipe-quality-audit/SKILL.md +116 -0
- package/skills/safe/SKILL.md +12 -97
- package/skills/services-agreement/SKILL.md +8 -99
- package/skills/shared/template-filling-execution.md +92 -0
- package/skills/soc2-readiness/SKILL.md +7 -1
- package/skills/unit-test-philosophy/SKILL.md +12 -1
- package/skills/venture-financing/SKILL.md +11 -96
package/README.md
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
[](https://socket.dev/npm/package/open-agreements)
|
|
14
14
|
[](https://packagephobia.com/result?p=open-agreements)
|
|
15
15
|
|
|
16
|
+
[English](./README.md) | [Español](./README.es.md) | [简体中文](./README.zh.md) | [Português (Brasil)](./README.pt-br.md) | [Deutsch](./README.de.md)
|
|
17
|
+
|
|
16
18
|
<!-- TODO: Add OpenSSF Scorecard badge once repo is indexed at securityscorecards.dev -->
|
|
17
19
|
<!-- TODO: Add OpenSSF Best Practices badge after registration at bestpractices.dev -->
|
|
18
20
|
<!-- TODO: Re-evaluate Snyk badge — Advisor migrated to security.snyk.io (July 2024) -->
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
|
|
26
28
|
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
29
|
|
|
28
|
-
|
|
30
|
+
**Open Agreements** by [UseJunior](https://usejunior.com) — part of the [UseJunior developer tools](https://usejunior.com/developer-tools/open-agreements). In production at Am Law 100 firms.
|
|
29
31
|
|
|
30
32
|
## Quality and Trust Signals
|
|
31
33
|
|
|
@@ -325,6 +327,11 @@ Lookup precedence is:
|
|
|
325
327
|
|
|
326
328
|
This keeps default installs simple while allowing advanced users to move large content libraries outside the core package.
|
|
327
329
|
|
|
330
|
+
## See Also
|
|
331
|
+
|
|
332
|
+
- [safe-docx](https://github.com/UseJunior/safe-docx) — surgical editing of existing Word documents with coding agents (MCP server)
|
|
333
|
+
- [UseJunior Developer Tools](https://usejunior.com/developer-tools/open-agreements) — product page with install options and template catalog
|
|
334
|
+
|
|
328
335
|
## Contributing
|
|
329
336
|
|
|
330
337
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for how to add templates, recipes, and other improvements.
|
|
@@ -392,6 +399,13 @@ MIT
|
|
|
392
399
|
|
|
393
400
|
Template content is licensed by their respective authors — CC BY 4.0 (Common Paper, Bonterms), CC BY-ND 4.0 (Y Combinator), or proprietary (NVCA, downloaded at runtime). See each template's `metadata.yaml` for details.
|
|
394
401
|
|
|
402
|
+
## Privacy
|
|
403
|
+
|
|
404
|
+
- **Local mode** (`npx`, global install, stdio MCP): all processing happens on your machine. No document content is sent externally.
|
|
405
|
+
- **Hosted mode** (`https://openagreements.ai/api/mcp`): template filling runs server-side. No filled documents are stored after the response is returned.
|
|
406
|
+
|
|
407
|
+
See our [Privacy Policy](https://usejunior.com/privacy_policy) for details.
|
|
408
|
+
|
|
395
409
|
## Disclaimer
|
|
396
410
|
|
|
397
411
|
This tool generates documents from standard templates. It does not provide legal advice. No affiliation with or endorsement by Common Paper, Bonterms, Y Combinator, NVCA, or any template source is implied. Consult an attorney for legal guidance.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# NVCA Recipe Quality Tracker
|
|
2
|
+
|
|
3
|
+
Tracks quality audit scores and maturity tiers for all 7 NVCA recipes.
|
|
4
|
+
Updated by the `recipe-quality-audit` skill after each audit.
|
|
5
|
+
|
|
6
|
+
## Scorecard
|
|
7
|
+
|
|
8
|
+
| Recipe | S | B | F | Total | Tier | Fixture | Last Audit |
|
|
9
|
+
|--------|---|---|---|-------|------|---------|------------|
|
|
10
|
+
| nvca-stock-purchase-agreement | 7/7 | 4/4 | 4/4 | 15/15 | production | spa-*.json | 2026-03-15 |
|
|
11
|
+
| nvca-certificate-of-incorporation | 6/7 | 3/4 | 2/4 | 11/15 | beta | coi-imim-series-c.json | 2026-03-15 |
|
|
12
|
+
| nvca-investors-rights-agreement | ?/7 | ?/4 | ?/4 | ?/15 | beta | — | — |
|
|
13
|
+
| nvca-voting-agreement | ?/7 | ?/4 | ?/4 | ?/15 | beta | — | — |
|
|
14
|
+
| nvca-rofr-co-sale-agreement | ?/7 | ?/4 | ?/4 | ?/15 | beta | — | — |
|
|
15
|
+
| nvca-indemnification-agreement | ?/7 | ?/4 | ?/4 | ?/15 | beta | — | — |
|
|
16
|
+
| nvca-management-rights-letter | ?/7 | ?/4 | ?/4 | ?/15 | beta | — | — |
|
|
17
|
+
|
|
18
|
+
## Priority Order
|
|
19
|
+
|
|
20
|
+
Based on legal impact in a typical Series A:
|
|
21
|
+
|
|
22
|
+
1. ~~SPA~~ (done — production)
|
|
23
|
+
2. **COI** — defines share structure, liquidation preferences, anti-dilution
|
|
24
|
+
3. IRA — information rights, registration rights, board observer
|
|
25
|
+
4. VA — drag-along, voting provisions, board composition
|
|
26
|
+
5. ROFR — transfer restrictions, co-sale rights
|
|
27
|
+
6. Indemnification — director/officer protection
|
|
28
|
+
7. MRL — management rights (simplest document)
|
|
29
|
+
|
|
30
|
+
## Score Key
|
|
31
|
+
|
|
32
|
+
- **S** = Structural checks (7 total): file inventory, metadata schema, field coverage, ambiguous keys, smart quotes, source SHA, test fixture
|
|
33
|
+
- **B** = Behavioral checks (4 total): source scan, replacement coverage ratio, unmatched underscores, clean effectiveness
|
|
34
|
+
- **F** = Fill checks (4 total): default-only fill, full-values fill, formatting anomalies, zero-match keys
|
|
35
|
+
- **Tier**: scaffold → beta → production
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"removeFootnotes": true,
|
|
3
|
+
"removeBeforePattern": "^AMENDED AND RESTATEDCERTIFICATE OF INCORPORATIONOF",
|
|
3
4
|
"removeParagraphPatterns": [
|
|
4
5
|
"^Note to Drafter:",
|
|
5
|
-
"
|
|
6
|
-
"^
|
|
6
|
+
"^\\[?Use the following",
|
|
7
|
+
"^Last [Uu]pdated",
|
|
8
|
+
"^GDSVF"
|
|
9
|
+
],
|
|
10
|
+
"removeRanges": [
|
|
11
|
+
{
|
|
12
|
+
"start": "^This sample document is the work product",
|
|
13
|
+
"end": "are flagged as .Revised."
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"start": "^Preliminary Notes$",
|
|
17
|
+
"end": "potentially interested party\\."
|
|
18
|
+
}
|
|
7
19
|
]
|
|
8
20
|
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0",
|
|
3
|
+
"max_passes": 2,
|
|
4
|
+
"rules": [
|
|
5
|
+
{
|
|
6
|
+
"id": "under-the-name-present",
|
|
7
|
+
"description": "Include 'under the name' clause when original name provided",
|
|
8
|
+
"when_all": [{ "field": "original_incorporation_name", "op": "defined" }],
|
|
9
|
+
"set_fill": { "under_the_name_clause": " under the name ${original_incorporation_name}" }
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "under-the-name-absent",
|
|
13
|
+
"description": "Remove 'under the name' clause when no original name",
|
|
14
|
+
"when_all": [{ "field": "original_incorporation_name", "op": "falsy" }],
|
|
15
|
+
"set_fill": { "under_the_name_clause": "" }
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "no-cumulative-voting-include",
|
|
19
|
+
"description": "Include 'no cumulative voting' clause (>95% standard)",
|
|
20
|
+
"when_all": [{ "field": "no_cumulative_voting", "op": "neq", "value": false }],
|
|
21
|
+
"set_fill": { "no_cumulative_voting_clause": "There shall be no cumulative voting." }
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "no-cumulative-voting-exclude",
|
|
25
|
+
"description": "Remove 'no cumulative voting' clause",
|
|
26
|
+
"when_all": [{ "field": "no_cumulative_voting", "op": "eq", "value": false }],
|
|
27
|
+
"set_fill": { "no_cumulative_voting_clause": "" }
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "common-stock-voting-limitation-include",
|
|
31
|
+
"description": "Include common stock voting limitation clause (>90% standard)",
|
|
32
|
+
"when_all": [{ "field": "common_stock_voting_limitation", "op": "neq", "value": false }],
|
|
33
|
+
"set_fill": { "common_stock_voting_limitation_clause": "; provided, however, that any amendment, alteration, or repeal of any provision of this Restated Certificate (including any Preferred Stock Designation) that would alter or change the powers, preferences, or special rights of one series of Preferred Stock so as to affect them adversely, but shall not so affect the entire class of Preferred Stock, must be approved by the holders of at least a majority of the shares of the affected series, exclusively and as a separate class, irrespective of whether such approval is required by Section 242(b)(2) of the DGCL or by Section 4.3.4 hereof" }
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "common-stock-voting-limitation-exclude",
|
|
37
|
+
"description": "Remove common stock voting limitation clause",
|
|
38
|
+
"when_all": [{ "field": "common_stock_voting_limitation", "op": "eq", "value": false }],
|
|
39
|
+
"set_fill": { "common_stock_voting_limitation_clause": "" }
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "authorized-shares-vote-include",
|
|
43
|
+
"description": "Include simplified authorized shares vote provision (>95% standard)",
|
|
44
|
+
"when_all": [{ "field": "authorized_shares_vote_provision", "op": "neq", "value": false }],
|
|
45
|
+
"set_fill": { "authorized_shares_vote_provision_clause": "The number of authorized shares of Common Stock may be increased or decreased (but not below the number of shares of Common Stock then outstanding) by the affirmative vote of the holders of a majority of the stock of the Corporation entitled to vote, irrespective of the provisions of Section 242(b)(2) of the DGCL." }
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "authorized-shares-vote-exclude",
|
|
49
|
+
"description": "Remove simplified authorized shares vote provision",
|
|
50
|
+
"when_all": [{ "field": "authorized_shares_vote_provision", "op": "eq", "value": false }],
|
|
51
|
+
"set_fill": { "authorized_shares_vote_provision_clause": "" }
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "officer-indemnification-include",
|
|
55
|
+
"description": "Include officer indemnification (>80% standard)",
|
|
56
|
+
"when_all": [{ "field": "include_officer_indemnification", "op": "neq", "value": false }],
|
|
57
|
+
"set_fill": { "or_officer_clause": "or officer" }
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "officer-indemnification-exclude",
|
|
61
|
+
"description": "Remove officer indemnification",
|
|
62
|
+
"when_all": [{ "field": "include_officer_indemnification", "op": "eq", "value": false }],
|
|
63
|
+
"set_fill": { "or_officer_clause": "" }
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "redemption-cross-ref-include",
|
|
67
|
+
"description": "Include redemption Section 6.1 cross-reference",
|
|
68
|
+
"when_all": [{ "field": "include_redemption_cross_ref", "op": "eq", "value": true }],
|
|
69
|
+
"set_fill": { "redemption_cross_ref_clause": " and Section 6.1" }
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "redemption-cross-ref-exclude",
|
|
73
|
+
"description": "Remove redemption Section 6.1 cross-reference (<5% of deals)",
|
|
74
|
+
"when_all": [{ "field": "include_redemption_cross_ref", "op": "neq", "value": true }],
|
|
75
|
+
"set_fill": { "redemption_cross_ref_clause": "" }
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "no-redemption-statement-include",
|
|
79
|
+
"description": "Keep 'not redeemable' statement when no full redemption (default)",
|
|
80
|
+
"when_all": [{ "field": "include_redemption", "op": "neq", "value": true }],
|
|
81
|
+
"set_fill": { "no_redemption_clause": "Other than as set forth in Section 2.3.2(b), the Preferred Stock is not redeemable at the option of the holder or the Corporation." }
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "no-redemption-statement-exclude",
|
|
85
|
+
"description": "Remove 'not redeemable' statement when full redemption included",
|
|
86
|
+
"when_all": [{ "field": "include_redemption", "op": "eq", "value": true }],
|
|
87
|
+
"set_fill": { "no_redemption_clause": "" }
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "redemption-cross-ref-force-off",
|
|
91
|
+
"description": "Force redemption cross-ref off when redemption article is excluded",
|
|
92
|
+
"when_all": [
|
|
93
|
+
{ "field": "include_redemption", "op": "neq", "value": true },
|
|
94
|
+
{ "field": "include_redemption_cross_ref", "op": "eq", "value": true }
|
|
95
|
+
],
|
|
96
|
+
"set_fill": { "redemption_cross_ref_clause": "" }
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
@@ -9,13 +9,97 @@ license_note: >-
|
|
|
9
9
|
instructions, not the source document.
|
|
10
10
|
source_sha256: d75600769c12724990de48149d7a2bb161f3522daa54b1783672f93697d87d29
|
|
11
11
|
optional: false
|
|
12
|
+
market_data_citations:
|
|
13
|
+
- id: wsgr-2025
|
|
14
|
+
label: WSGR Entrepreneurs Report 2023-2025
|
|
15
|
+
- id: cooley-q4-2025
|
|
16
|
+
label: Cooley Venture Financing Report Q4 2025
|
|
17
|
+
- id: fenwick-2024
|
|
18
|
+
label: Fenwick Silicon Valley Venture Capital Survey 2024
|
|
12
19
|
fields:
|
|
20
|
+
- name: company_name
|
|
21
|
+
type: string
|
|
22
|
+
description: Full legal name of the corporation
|
|
23
|
+
- name: registered_agent_address
|
|
24
|
+
type: string
|
|
25
|
+
description: Street address of the registered agent in Delaware
|
|
26
|
+
- name: registered_agent_city
|
|
27
|
+
type: string
|
|
28
|
+
description: City of the registered agent office
|
|
29
|
+
- name: registered_agent_county
|
|
30
|
+
type: string
|
|
31
|
+
description: County of the registered agent office
|
|
32
|
+
- name: registered_agent_name
|
|
33
|
+
type: string
|
|
34
|
+
description: Name of the registered agent in Delaware
|
|
35
|
+
- name: total_authorized_shares
|
|
36
|
+
type: string
|
|
37
|
+
description: Total number of authorized shares of all classes
|
|
38
|
+
- name: number_of_classes
|
|
39
|
+
type: string
|
|
40
|
+
description: Number of classes of stock (e.g., two)
|
|
41
|
+
default: two
|
|
42
|
+
- name: common_shares_authorized
|
|
43
|
+
type: string
|
|
44
|
+
description: Number of authorized shares of Common Stock
|
|
45
|
+
- name: preferred_shares_authorized
|
|
46
|
+
type: string
|
|
47
|
+
description: Number of authorized shares of Preferred Stock
|
|
48
|
+
- name: series_designation
|
|
49
|
+
type: string
|
|
50
|
+
description: Series designation for preferred stock (e.g., A, B, C)
|
|
51
|
+
default: A
|
|
13
52
|
- name: original_issue_price
|
|
14
53
|
type: string
|
|
15
54
|
description: Original purchase price per share of Series A Preferred Stock
|
|
16
55
|
- name: initial_purchase_price
|
|
17
56
|
type: string
|
|
18
57
|
description: Initial Series A purchase price per share
|
|
58
|
+
- name: liquidation_preference_multiple
|
|
59
|
+
type: string
|
|
60
|
+
description: Liquidation preference multiple (e.g., 1, 1.5, 2)
|
|
61
|
+
default: '1'
|
|
62
|
+
- name: dividend_rate_percent
|
|
63
|
+
type: string
|
|
64
|
+
description: Annual dividend rate percentage on Preferred Stock
|
|
65
|
+
default: '8'
|
|
66
|
+
- name: dividend_rate_per_share
|
|
67
|
+
type: string
|
|
68
|
+
description: Dividend rate per annum per share of Preferred Stock (dollar amount)
|
|
69
|
+
- name: preferred_shares_outstanding_threshold
|
|
70
|
+
type: string
|
|
71
|
+
description: Minimum shares of Preferred Stock outstanding for protective provisions to apply
|
|
72
|
+
- name: preferred_director_seats
|
|
73
|
+
type: string
|
|
74
|
+
description: Number of Preferred Director board seats
|
|
75
|
+
- name: preferred_shares_designated_portion
|
|
76
|
+
type: string
|
|
77
|
+
description: Portion of preferred shares designated as the named series
|
|
78
|
+
default: all
|
|
79
|
+
- name: original_incorporation_name
|
|
80
|
+
type: string
|
|
81
|
+
description: Original incorporation name, if different from current company name (leave blank if same)
|
|
82
|
+
- name: redemption_start_date
|
|
83
|
+
type: string
|
|
84
|
+
description: Earliest date on which preferred stock may be redeemed
|
|
85
|
+
- name: qualified_financing_notice_days
|
|
86
|
+
type: string
|
|
87
|
+
description: Days of prior notice required for qualified financing
|
|
88
|
+
- name: no_cumulative_voting
|
|
89
|
+
type: boolean
|
|
90
|
+
description: Include 'no cumulative voting' clause
|
|
91
|
+
- name: common_stock_voting_limitation
|
|
92
|
+
type: boolean
|
|
93
|
+
description: Include clause limiting common stock from vetoing preferred-only amendments
|
|
94
|
+
- name: authorized_shares_vote_provision
|
|
95
|
+
type: boolean
|
|
96
|
+
description: Include simplified vote provision for changing authorized Common Stock count
|
|
97
|
+
- name: include_officer_indemnification
|
|
98
|
+
type: boolean
|
|
99
|
+
description: Include officer indemnification alongside director indemnification
|
|
100
|
+
- name: include_redemption_cross_ref
|
|
101
|
+
type: boolean
|
|
102
|
+
description: Include cross-reference to Section 6.1 (Redemption)
|
|
19
103
|
- name: signature_page_marker
|
|
20
104
|
type: string
|
|
21
105
|
description: Signature page marker text
|
|
@@ -34,10 +118,57 @@ fields:
|
|
|
34
118
|
- name: effective_date
|
|
35
119
|
type: date
|
|
36
120
|
description: Effective date of the certificate of incorporation
|
|
37
|
-
|
|
121
|
+
- name: adjustment_notice_days
|
|
122
|
+
type: string
|
|
123
|
+
description: Days to provide notice of conversion price adjustments
|
|
124
|
+
default: '10'
|
|
125
|
+
- name: redemption_interest_rate
|
|
126
|
+
type: string
|
|
127
|
+
description: Annual interest rate on unredeemed shares (percentage)
|
|
128
|
+
default: '12'
|
|
129
|
+
- name: conversion_notice_days
|
|
130
|
+
type: string
|
|
131
|
+
description: Days prior to record date for mandatory conversion notice
|
|
132
|
+
default: '10'
|
|
133
|
+
- name: dividend_formula_prefix
|
|
134
|
+
type: string
|
|
135
|
+
description: Non-cumulative dividend formula prefix phrase
|
|
136
|
+
default: the greater of
|
|
137
|
+
- name: dividend_formula_alt
|
|
138
|
+
type: string
|
|
139
|
+
description: Alternative dividend formula phrase
|
|
140
|
+
default: the sum of
|
|
141
|
+
- name: acquisition_exception_shares
|
|
142
|
+
type: string
|
|
143
|
+
description: Max shares issuable as acquisition consideration without triggering anti-dilution
|
|
144
|
+
- name: strategic_partnership_exception_shares
|
|
145
|
+
type: string
|
|
146
|
+
description: Max shares issuable for strategic partnerships without triggering anti-dilution
|
|
147
|
+
- name: dividend_type
|
|
148
|
+
type: string
|
|
149
|
+
description: 'Dividend structure: non_cumulative_as_converted (>95%), non_cumulative_fixed, or cumulative'
|
|
150
|
+
default: non_cumulative_as_converted
|
|
151
|
+
- name: liquidation_participation
|
|
152
|
+
type: string
|
|
153
|
+
description: 'Liquidation participation type: non_participating (94-96%) or participating'
|
|
154
|
+
default: non_participating
|
|
155
|
+
- name: anti_dilution_type
|
|
156
|
+
type: string
|
|
157
|
+
description: 'Anti-dilution formula: broad_based_weighted_average (>98%) or full_ratchet'
|
|
158
|
+
default: broad_based_weighted_average
|
|
159
|
+
- name: include_pay_to_play
|
|
160
|
+
type: boolean
|
|
161
|
+
description: Include Section 5A pay-to-play conversion provisions (<5% of deals)
|
|
162
|
+
- name: include_redemption
|
|
163
|
+
type: boolean
|
|
164
|
+
description: Include Article Sixth full redemption provisions (2-5% of deals)
|
|
165
|
+
priority_fields:
|
|
166
|
+
- company_name
|
|
38
167
|
- original_issue_price
|
|
39
168
|
- initial_purchase_price
|
|
40
|
-
- time_zone
|
|
41
169
|
- par_value
|
|
42
170
|
- specify_percentage
|
|
43
171
|
- effective_date
|
|
172
|
+
- total_authorized_shares
|
|
173
|
+
- common_shares_authorized
|
|
174
|
+
- preferred_shares_authorized
|
|
@@ -1,9 +1,102 @@
|
|
|
1
1
|
{
|
|
2
|
+
"INCORPORATIONOF > [_________]": "{company_name}",
|
|
3
|
+
"[____________], a corporation": "{company_name}",
|
|
4
|
+
"name of this corporation is > [_______________]": "{company_name}",
|
|
5
|
+
"registered agent at such address is > [_____________________]": "{registered_agent_name}",
|
|
6
|
+
"State of Delaware is > [_____________]": "{registered_agent_address}",
|
|
7
|
+
"in the City of [__________], County of [__________].": "in the City of {registered_agent_city}, County of {registered_agent_county}.",
|
|
8
|
+
"authority to issue is > [______]. The Corporation has": "{total_authorized_shares}. The Corporation has",
|
|
9
|
+
"The Corporation has > [two] classes of stock": "{number_of_classes} classes of stock",
|
|
10
|
+
"There are > [_____] shares of authorized Common Stock": "{common_shares_authorized} shares of authorized Common Stock",
|
|
11
|
+
"), and > [______] shares of authorized Preferred Stock": "{preferred_shares_authorized} shares of authorized Preferred Stock",
|
|
12
|
+
"Common Stock, $ > [_____] par value per share": "{par_value} par value per share",
|
|
13
|
+
"Preferred Stock, $ > [______] par value per share": "{par_value} par value per share",
|
|
14
|
+
"on or after > [_____________]": "{redemption_start_date}",
|
|
2
15
|
"[insert original purchase price of Series A Preferred Stock]": "{original_issue_price}",
|
|
3
16
|
"[insert initial Series A purchase price]": "{initial_purchase_price}",
|
|
17
|
+
"greater of (i) > [__ times]": "{liquidation_preference_multiple} times",
|
|
18
|
+
"equal to > [___ times]": "{liquidation_preference_multiple} times",
|
|
19
|
+
"shall mean, with respect to any series of Preferred Stock, > [8]%": "{dividend_rate_percent}%",
|
|
20
|
+
"rate per annum of $ > [___]": "{dividend_rate_per_share}",
|
|
21
|
+
"when at least > [____]": "{preferred_shares_outstanding_threshold}",
|
|
22
|
+
"shall be entitled to elect > [__] director[s]": "{preferred_director_seats} director[s]",
|
|
23
|
+
"shall be entitled to elect > [__] directors of the Corporation": "{number_of_classes} directors of the Corporation",
|
|
24
|
+
"when at least > [__]": "{preferred_shares_outstanding_threshold}",
|
|
25
|
+
"at least > [__] days prior": "{qualified_financing_notice_days} days prior",
|
|
4
26
|
"[Signature Page Follows]": "{signature_page_marker}",
|
|
5
27
|
"[Eastern/Pacific]": "{time_zone}",
|
|
6
|
-
"[$0.001]": "
|
|
28
|
+
"[$0.001]": "{par_value}",
|
|
7
29
|
"[specify percentage]": "{specify_percentage}",
|
|
8
|
-
"[________ __, 20__]": "{effective_date}"
|
|
30
|
+
"[________ __, 20__]": "{effective_date}",
|
|
31
|
+
"not later than > [10]": "{adjustment_notice_days}",
|
|
32
|
+
"at least > [10]": "{conversion_notice_days}",
|
|
33
|
+
"aggregate per annum rate equal to > [12]%": "{redemption_interest_rate}%",
|
|
34
|
+
"$_______ [insert original purchase price of Series A Preferred Stock]": "{original_issue_price}",
|
|
35
|
+
"following such action would not exceed $ > [_______]": "{acquisition_exception_shares}",
|
|
36
|
+
"greater than $ > [_______]": "{strategic_partnership_exception_shares}",
|
|
37
|
+
"is less than $ > [_______]": "{acquisition_exception_shares}",
|
|
38
|
+
" [under the name [_______________]]": "{under_the_name_clause}",
|
|
39
|
+
"[There shall be no cumulative voting.]": "{no_cumulative_voting_clause}",
|
|
40
|
+
"[; provided, however, that, except as otherwise required by law, holders of Common Stock, as such, shall not be entitled to vote on any amendment to this Amended and Restated Certificate of Incorporation (this “Certificate of Incorporation”) that relates solely to the terms of one or more outstanding series of Preferred Stock if the holders of such affected series are entitled, either separately or together with the holders of one or more other such series, to vote thereon pursuant to this Certificate of Incorporation or pursuant to the General Corporation Law]": "{common_stock_voting_limitation_clause}",
|
|
41
|
+
"[The number of authorized shares of Common Stock may be increased or decreased (but not below the number of shares thereof then outstanding) by (in addition to any vote of the holders of one or more series of Preferred Stock that may be required by the terms of this Certificate of Incorporation) the affirmative vote of the holders of shares of capital stock of the Corporation representing a majority of the votes represented by all outstanding shares of capital stock of the Corporation entitled to vote, irrespective of the provisions of Section 242(b)(2) of the General Corporation Law.]": "{authorized_shares_vote_provision_clause}",
|
|
42
|
+
"[all/a majority of the]": "{preferred_shares_designated_portion}",
|
|
43
|
+
"[the series of]": "the Series {series_designation}",
|
|
44
|
+
"acquisition of another corporation > [[do not exceed an aggregate of [______] shares of Common Stock (including shares underlying (directly or indirectly) any such Options or Convertible Securities)];] [or]": "{acquisition_exception_shares} shares of Common Stock (including shares underlying (directly or indirectly) any such Options or Convertible Securities)];] [or]",
|
|
45
|
+
"approved by the Requisite Directors] > [that do not exceed an aggregate of [______] shares of Common Stock (including shares underlying (directly or indirectly) any such Options or Convertible Securities)];]": "that do not exceed an aggregate of {strategic_partnership_exception_shares} shares of Common Stock (including shares underlying (directly or indirectly) any such Options or Convertible Securities)];]",
|
|
46
|
+
"strategic partnerships > [that do not exceed an aggregate of [______] shares of Common Stock (including shares underlying (directly or indirectly) any such Options or Convertible Securities)].": "that do not exceed an aggregate of {strategic_partnership_exception_shares} shares of Common Stock (including shares underlying (directly or indirectly) any such Options or Convertible Securities)].",
|
|
47
|
+
"[or officer]": "{or_officer_clause}",
|
|
48
|
+
"[the greater of]": "{dividend_formula_prefix} ",
|
|
49
|
+
"[the sum of]": "{dividend_formula_alt}",
|
|
50
|
+
"[and Section 6.1]": "{redemption_cross_ref_clause}",
|
|
51
|
+
"[the corporation] > [Signature Page Follows]": "{signature_page_marker}",
|
|
52
|
+
"[or in Section 2.1 [and Section 6.1] > [Eastern/Pacific]": "{time_zone}",
|
|
53
|
+
"[a majority[, by voting power,] > [$0.001]": "{par_value}",
|
|
54
|
+
"[, including the approval of [at least one] > [specify percentage]": "{specify_percentage}",
|
|
55
|
+
"[Initial Consideration] > [________ __, 20__]": "{effective_date}",
|
|
56
|
+
"[Additional Consideration] > [insert original purchase price of Series A Preferred Stock]": "{original_issue_price}",
|
|
57
|
+
"[Notwithstanding the foregoing, for administrative convenience, the initial Preferred Director[s] > [insert initial Series A purchase price]": "{initial_purchase_price}",
|
|
58
|
+
"[or appointed by the last sentence of Section 3.2(a)] > [all/a majority of the]": "{preferred_shares_designated_portion}",
|
|
59
|
+
"[(and to the extent any of such directorships is not otherwise filled by a director appointed in accordance with the last sentence of Section 3.2(a))] > [the series of]": "the Series {series_designation}",
|
|
60
|
+
"[elected by the stockholders entitled to elect the At-Large Directors] > [or officer]": "{or_officer_clause}",
|
|
61
|
+
"[including [a majority of] > [the greater of]": "{dividend_formula_prefix} ",
|
|
62
|
+
"[(subject to appropriate adjustment in the event of any stock dividend, stock split, combination or other similar recapitalization with respect to the Preferred Stock)] > [the sum of]": "{dividend_formula_alt}",
|
|
63
|
+
"[, and any such act or transaction that has not been approved by such consent or vote prior to such act or transaction being effected shall be null and void ab initio, and of no force or effect] > [Signature Page Follows]": "{signature_page_marker}",
|
|
64
|
+
"[in a manner that adversely affects the special rights, powers and preferences of the Preferred Stock (or any series thereof)] > [Eastern/Pacific]": "{time_zone}",
|
|
65
|
+
"[or pari passu with] > [$0.001]": "{par_value}",
|
|
66
|
+
"[or decrease] > [specify percentage]": "{specify_percentage}",
|
|
67
|
+
"[increase or decrease the authorized number of directors constituting the Board of Directors, or change the number of votes entitled to be cast by any director or directors on any matter[; or] > [________ __, 20__]": "{effective_date}",
|
|
68
|
+
"[.] > [insert original purchase price of Series A Preferred Stock]": "{original_issue_price}",
|
|
69
|
+
"[unless otherwise approved by the Requisite Directors:\n[unless the aggregate indebtedness of the Corporation and its subsidiaries for borrowed money following such action would not exceed $[_______] > [insert initial Series A purchase price]": "{initial_purchase_price}",
|
|
70
|
+
"[(i) create or adopt any equity (or equity-linked) compensation plan; [or (ii) amend any such plan to increase the number of shares authorized for issuance thereunder] > [all/a majority of the]": "{preferred_shares_designated_portion}",
|
|
71
|
+
"[approve the annual budget or any [material] > [the series of]": "the Series {series_designation}",
|
|
72
|
+
"[enter into a real estate lease having a term longer than, or extend a real estate lease to result in a term longer than, three years, unless [either (i)] > [or officer]": "{or_officer_clause}",
|
|
73
|
+
"[or (ii) it is included in an annual budget or any amendment thereto approved in accordance with Section 3.3.9(f)] > [the greater of]": "{dividend_formula_prefix} ",
|
|
74
|
+
"[or Section 6.1] > [the sum of]": "{dividend_formula_alt}",
|
|
75
|
+
"[Unless a later time and date is otherwise specified by the holder,] > [Signature Page Follows]": "{signature_page_marker}",
|
|
76
|
+
"[approved (i) prior to the Original Issue Date or (ii) by the Requisite Directors] > [Eastern/Pacific]": "{time_zone}",
|
|
77
|
+
"[the Requisite Holders] > [$0.001]": "{par_value}",
|
|
78
|
+
"[the holders of [a majority] > [specify percentage]": "{specify_percentage}",
|
|
79
|
+
"[and prior to [Date] > [________ __, 20__]": "{effective_date}",
|
|
80
|
+
"[, and such issuance dates occur within a period of no more than [180] > [insert original purchase price of Series A Preferred Stock]": "{original_issue_price}",
|
|
81
|
+
"[(i)] > [insert initial Series A purchase price]": "{initial_purchase_price}",
|
|
82
|
+
"[at a price of at least $[_____] > [all/a majority of the]": "{preferred_shares_designated_portion}",
|
|
83
|
+
"[gross] > [the series of]": "the Series {series_designation}",
|
|
84
|
+
"[, net of the underwriting discount and commissions,] > [or officer]": "{or_officer_clause}",
|
|
85
|
+
"[Requisite Directors] > [the greater of]": "{dividend_formula_prefix} ",
|
|
86
|
+
"[, for which the Board of Directors, in its sole discretion, determines that the Corporation is expected to have a market capitalization equal to or greater than $[__________] > [the sum of]": "{dividend_formula_alt}",
|
|
87
|
+
"[then each share] > [Signature Page Follows]": "{signature_page_marker}",
|
|
88
|
+
"[then the Applicable Portion (as defined below) of the shares] > [Eastern/Pacific]": "{time_zone}",
|
|
89
|
+
"[and (c) a new certificate for the number of shares, if any, of Preferred Stock represented by such surrendered certificate and not converted pursuant to Section 5A.1] > [$0.001]": "{par_value}",
|
|
90
|
+
"[the number of shares of Preferred Stock owned by such holder, and the denominator of which is equal to the aggregate number of outstanding shares of Preferred Stock] > [specify percentage]": "{specify_percentage}",
|
|
91
|
+
"[that would result in at least $_______ in gross proceeds to the Corporation, [including/excluding] > [________ __, 20__]": "{effective_date}",
|
|
92
|
+
"[Requisite Holders] > [insert original purchase price of Series A Preferred Stock]": "{original_issue_price}",
|
|
93
|
+
"[Other than as set forth in Section 2.3.2(b), the Preferred Stock is not redeemable at the option of the holder or the Corporation.] > [insert initial Series A purchase price]": "{initial_purchase_price}",
|
|
94
|
+
"[the applicable Original Issue Price, plus all declared but unpaid dividends thereon] > [all/a majority of the]": "{preferred_shares_designated_portion}",
|
|
95
|
+
"[and (B) the Fair Market Value (determined in the manner set forth below) of such share of Preferred Stock as of the date of the Corporation’s receipt of the Redemption Request] > [the series of]": "the Series {series_designation}",
|
|
96
|
+
"[; provided, however, that Excluded Shares (as such term is defined in Section 6.2) shall not be redeemed and shall be excluded from the calculations set forth in this sentence] > [or officer]": "{or_officer_clause}",
|
|
97
|
+
"[annually] > [the greater of]": "{dividend_formula_prefix} ",
|
|
98
|
+
"[or officers] > [the sum of]": "{dividend_formula_alt}",
|
|
99
|
+
"Redemption. > [Other than as set forth in Section 2.3.2(b), the Preferred Stock is not redeemable at the option of the holder or the Corporation.],": "{no_redemption_clause}",
|
|
100
|
+
"Preferred Stock”), > [all]": "{preferred_shares_designated_portion}",
|
|
101
|
+
"designated as “Series > A Preferred Stock": "{series_designation} Preferred Stock"
|
|
9
102
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# COI Selections Roadmap
|
|
2
|
+
|
|
3
|
+
Research-informed field architecture for future selection sprints, based on Fenwick (2024), Cooley Q4 2025, and WSGR 2023-2025 data.
|
|
4
|
+
|
|
5
|
+
## Implemented
|
|
6
|
+
|
|
7
|
+
| Feature | Market Default | Frequency | Implementation |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| No cumulative voting | Included | >95% | boolean — computed.json |
|
|
10
|
+
| Common stock voting limitation | Included | >90% | boolean — computed.json |
|
|
11
|
+
| Authorized shares vote opt-out | Included | >95% | boolean — computed.json |
|
|
12
|
+
| Officer indemnification | Included | >80% | boolean — computed.json |
|
|
13
|
+
| Redemption cross-ref (§6.1) | Excluded | <5% | boolean — computed.json |
|
|
14
|
+
| Dividends (3-option radio) | Non-cumulative as-converted | >95% | selections.json — `dividends` group |
|
|
15
|
+
| Liquidation §2.1 (2-option radio) | Non-participating | 94-96% | selections.json — `liquidation_section_2_1` group |
|
|
16
|
+
| Liquidation §2.2 (2-option radio) | Non-participating | 94-96% | selections.json — `liquidation_section_2_2` group |
|
|
17
|
+
| Anti-dilution (2-option radio) | Broad-based weighted avg | >98% | selections.json — `anti_dilution` group |
|
|
18
|
+
| Pay-to-play (checkbox toggle) | Excluded | <5% | selections.json — `pay_to_play` group |
|
|
19
|
+
| Redemption (checkbox toggle) | Excluded | 2-5% | selections.json — `redemption_provisions` group |
|
|
20
|
+
|
|
21
|
+
## Future Sprint Priorities
|
|
22
|
+
|
|
23
|
+
### 1. Protective Provisions Checkbox Group
|
|
24
|
+
- 10-15 individually-toggled sub-clauses
|
|
25
|
+
- Most complex but each is simple include/exclude
|
|
26
|
+
- >80% include standard set
|
|
27
|
+
|
|
28
|
+
### 2. Deemed Liquidation Event Fields
|
|
29
|
+
- Additional fields within Section 2.3
|
|
30
|
+
|
|
31
|
+
### 3. QPO/Mandatory Conversion Threshold Fields
|
|
32
|
+
- Qualified public offering threshold parameters
|
|
33
|
+
|
|
34
|
+
### 4. Capped Participating Liquidation Preference Variant
|
|
35
|
+
- Third liquidation option: participating with cap
|
|
36
|
+
- Would extend `liquidation_section_2_1` and `liquidation_section_2_2` groups
|
|
37
|
+
|
|
38
|
+
## Architecture Notes
|
|
39
|
+
|
|
40
|
+
- Paragraph-block selections (dividends, liquidation) use markerless groups with multi-paragraph scope
|
|
41
|
+
- Liquidation uses two paired radio groups (§2.1 and §2.2) with explicit `subClauseStopPatterns`
|
|
42
|
+
- Protective provisions need per-clause checkbox groups within a single section
|
|
43
|
+
- Pay-to-Play and Redemption are article-level toggles (simplest selection type)
|
|
44
|
+
- Redemption inline bracket text handled via computed.json + replacements.json
|