@open-agreements/open-agreements 0.2.2 → 0.3.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 (143) hide show
  1. package/README.md +30 -0
  2. package/content/templates/closing-checklist/template.docx +0 -0
  3. package/content/templates/common-paper-ai-addendum/README.md +18 -0
  4. package/content/templates/common-paper-ai-addendum/metadata.yaml +136 -0
  5. package/content/templates/common-paper-ai-addendum/replacements.json +5 -0
  6. package/content/templates/common-paper-ai-addendum/selections.json +62 -0
  7. package/content/templates/common-paper-ai-addendum/template.docx +0 -0
  8. package/content/templates/common-paper-ai-addendum-in-app/metadata.yaml +88 -0
  9. package/content/templates/common-paper-ai-addendum-in-app/replacements.json +5 -0
  10. package/content/templates/common-paper-ai-addendum-in-app/selections.json +62 -0
  11. package/content/templates/common-paper-amendment/README.md +18 -0
  12. package/content/templates/common-paper-amendment/metadata.yaml +48 -0
  13. package/content/templates/common-paper-amendment/template.docx +0 -0
  14. package/content/templates/common-paper-business-associate-agreement/README.md +20 -1
  15. package/content/templates/common-paper-business-associate-agreement/metadata.yaml +111 -3
  16. package/content/templates/common-paper-business-associate-agreement/replacements.json +2 -1
  17. package/content/templates/common-paper-business-associate-agreement/selections.json +38 -0
  18. package/content/templates/common-paper-business-associate-agreement/template.docx +0 -0
  19. package/content/templates/common-paper-cloud-service-agreement/README.md +18 -0
  20. package/content/templates/common-paper-cloud-service-agreement/metadata.yaml +48 -0
  21. package/content/templates/common-paper-cloud-service-agreement/template.docx +0 -0
  22. package/content/templates/common-paper-csa-with-ai/README.md +18 -0
  23. package/content/templates/common-paper-csa-with-ai/metadata.yaml +462 -2
  24. package/content/templates/common-paper-csa-with-ai/replacements.json +5 -2
  25. package/content/templates/common-paper-csa-with-ai/selections.json +291 -0
  26. package/content/templates/common-paper-csa-with-ai/template.docx +0 -0
  27. package/content/templates/common-paper-csa-with-sla/README.md +18 -0
  28. package/content/templates/common-paper-csa-with-sla/metadata.yaml +387 -2
  29. package/content/templates/common-paper-csa-with-sla/replacements.json +4 -2
  30. package/content/templates/common-paper-csa-with-sla/selections.json +257 -0
  31. package/content/templates/common-paper-csa-with-sla/template.docx +0 -0
  32. package/content/templates/common-paper-csa-without-sla/README.md +18 -0
  33. package/content/templates/common-paper-csa-without-sla/metadata.yaml +380 -2
  34. package/content/templates/common-paper-csa-without-sla/replacements.json +5 -2
  35. package/content/templates/common-paper-csa-without-sla/selections.json +250 -0
  36. package/content/templates/common-paper-csa-without-sla/template.docx +0 -0
  37. package/content/templates/common-paper-data-processing-agreement/README.md +16 -0
  38. package/content/templates/common-paper-data-processing-agreement/metadata.yaml +397 -3
  39. package/content/templates/common-paper-data-processing-agreement/replacements.json +2 -1
  40. package/content/templates/common-paper-data-processing-agreement/selections.json +211 -0
  41. package/content/templates/common-paper-data-processing-agreement/template.docx +0 -0
  42. package/content/templates/common-paper-design-partner-agreement/README.md +18 -0
  43. package/content/templates/common-paper-design-partner-agreement/metadata.yaml +99 -3
  44. package/content/templates/common-paper-design-partner-agreement/selections.json +27 -0
  45. package/content/templates/common-paper-design-partner-agreement/template.docx +0 -0
  46. package/content/templates/common-paper-independent-contractor-agreement/README.md +18 -0
  47. package/content/templates/common-paper-independent-contractor-agreement/clean.json +8 -0
  48. package/content/templates/common-paper-independent-contractor-agreement/metadata.yaml +52 -0
  49. package/content/templates/common-paper-independent-contractor-agreement/replacements.json +3 -0
  50. package/content/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
  51. package/content/templates/common-paper-letter-of-intent/README.md +18 -0
  52. package/content/templates/common-paper-letter-of-intent/metadata.yaml +48 -0
  53. package/content/templates/common-paper-letter-of-intent/template.docx +0 -0
  54. package/content/templates/common-paper-mutual-nda/README.md +29 -7
  55. package/content/templates/common-paper-mutual-nda/metadata.yaml +48 -0
  56. package/content/templates/common-paper-mutual-nda/template.docx +0 -0
  57. package/content/templates/common-paper-one-way-nda/README.md +13 -0
  58. package/content/templates/common-paper-one-way-nda/metadata.yaml +24 -0
  59. package/content/templates/common-paper-one-way-nda/selections.json +38 -0
  60. package/content/templates/common-paper-one-way-nda/template.docx +0 -0
  61. package/content/templates/common-paper-order-form/README.md +18 -0
  62. package/content/templates/common-paper-order-form/metadata.yaml +115 -3
  63. package/content/templates/common-paper-order-form/replacements.json +5 -2
  64. package/content/templates/common-paper-order-form/selections.json +56 -0
  65. package/content/templates/common-paper-order-form/template.docx +0 -0
  66. package/content/templates/common-paper-order-form-with-sla/README.md +18 -0
  67. package/content/templates/common-paper-order-form-with-sla/metadata.yaml +149 -3
  68. package/content/templates/common-paper-order-form-with-sla/replacements.json +6 -2
  69. package/content/templates/common-paper-order-form-with-sla/selections.json +64 -0
  70. package/content/templates/common-paper-order-form-with-sla/template.docx +0 -0
  71. package/content/templates/common-paper-partnership-agreement/README.md +18 -0
  72. package/content/templates/common-paper-partnership-agreement/metadata.yaml +293 -4
  73. package/content/templates/common-paper-partnership-agreement/replacements.json +5 -2
  74. package/content/templates/common-paper-partnership-agreement/selections.json +138 -0
  75. package/content/templates/common-paper-partnership-agreement/template.docx +0 -0
  76. package/content/templates/common-paper-pilot-agreement/README.md +18 -0
  77. package/content/templates/common-paper-pilot-agreement/metadata.yaml +48 -0
  78. package/content/templates/common-paper-pilot-agreement/template.docx +0 -0
  79. package/content/templates/common-paper-professional-services-agreement/README.md +18 -0
  80. package/content/templates/common-paper-professional-services-agreement/metadata.yaml +338 -4
  81. package/content/templates/common-paper-professional-services-agreement/replacements.json +7 -4
  82. package/content/templates/common-paper-professional-services-agreement/selections.json +207 -0
  83. package/content/templates/common-paper-professional-services-agreement/template.docx +0 -0
  84. package/content/templates/common-paper-statement-of-work/README.md +18 -0
  85. package/content/templates/common-paper-statement-of-work/metadata.yaml +110 -2
  86. package/content/templates/common-paper-statement-of-work/replacements.json +4 -1
  87. package/content/templates/common-paper-statement-of-work/selections.json +55 -0
  88. package/content/templates/common-paper-statement-of-work/template.docx +0 -0
  89. package/content/templates/common-paper-term-sheet/README.md +18 -0
  90. package/content/templates/common-paper-term-sheet/metadata.yaml +48 -0
  91. package/content/templates/common-paper-term-sheet/template.docx +0 -0
  92. package/content/templates/working-group-list/template.docx +0 -0
  93. package/dist/commands/checklist.d.ts.map +1 -1
  94. package/dist/commands/checklist.js +2 -1
  95. package/dist/commands/checklist.js.map +1 -1
  96. package/dist/commands/list.d.ts.map +1 -1
  97. package/dist/commands/list.js +1 -46
  98. package/dist/commands/list.js.map +1 -1
  99. package/dist/core/checklist/format-checklist-docx.d.ts +10 -0
  100. package/dist/core/checklist/format-checklist-docx.d.ts.map +1 -0
  101. package/dist/core/checklist/format-checklist-docx.js +321 -0
  102. package/dist/core/checklist/format-checklist-docx.js.map +1 -0
  103. package/dist/core/checklist/index.d.ts +1 -0
  104. package/dist/core/checklist/index.d.ts.map +1 -1
  105. package/dist/core/checklist/index.js +7 -3
  106. package/dist/core/checklist/index.js.map +1 -1
  107. package/dist/core/engine.d.ts +1 -0
  108. package/dist/core/engine.d.ts.map +1 -1
  109. package/dist/core/engine.js +72 -11
  110. package/dist/core/engine.js.map +1 -1
  111. package/dist/core/selector.d.ts +2 -0
  112. package/dist/core/selector.d.ts.map +1 -1
  113. package/dist/core/selector.js +181 -39
  114. package/dist/core/selector.js.map +1 -1
  115. package/dist/core/template-listing.d.ts +40 -0
  116. package/dist/core/template-listing.d.ts.map +1 -0
  117. package/dist/core/template-listing.js +91 -0
  118. package/dist/core/template-listing.js.map +1 -0
  119. package/dist/core/validation/template.d.ts.map +1 -1
  120. package/dist/core/validation/template.js +10 -2
  121. package/dist/core/validation/template.js.map +1 -1
  122. package/dist/index.d.ts +2 -0
  123. package/dist/index.d.ts.map +1 -1
  124. package/dist/index.js +4 -0
  125. package/dist/index.js.map +1 -1
  126. package/package.json +8 -2
  127. package/skills/iso-27001-evidence-collection/CONNECTORS.md +25 -9
  128. package/skills/iso-27001-evidence-collection/SKILL.md +10 -6
  129. package/skills/iso-27001-internal-audit/CONNECTORS.md +25 -9
  130. package/skills/iso-27001-internal-audit/SKILL.md +12 -9
  131. package/skills/soc2-readiness/CONNECTORS.md +25 -9
  132. package/skills/soc2-readiness/SKILL.md +17 -5
  133. package/skills/soc2-readiness/rules/change-vendor-management.md +104 -0
  134. package/skills/soc2-readiness/rules/communication-info.md +85 -0
  135. package/skills/soc2-readiness/rules/control-activities.md +95 -0
  136. package/skills/soc2-readiness/rules/control-environment.md +126 -0
  137. package/skills/soc2-readiness/rules/logical-access.md +264 -0
  138. package/skills/soc2-readiness/rules/monitoring-activities.md +66 -0
  139. package/skills/soc2-readiness/rules/optional-categories.md +264 -0
  140. package/skills/soc2-readiness/rules/privacy-criteria.md +359 -0
  141. package/skills/soc2-readiness/rules/risk-assessment.md +100 -0
  142. package/skills/soc2-readiness/rules/system-operations.md +170 -0
  143. package/skills/soc2-readiness/rules/trust-services.md +0 -230
package/README.md CHANGED
@@ -280,6 +280,36 @@ Vercel deploy notes:
280
280
  - Keep project root as repo root
281
281
  - The included `vercel.json` deploys `_site/` as static output
282
282
 
283
+ ## Compliance & Audit Skills
284
+
285
+ Open Agreements includes AI agent skills for ISO 27001 and SOC 2 compliance work. These are markdown-only procedural skills — no scripts executed, no secrets required, evidence stays local. Developed with [Hazel Castro](https://internalisoaudit.com) (ISO 27001 Lead Auditor, 14+ years, 100+ audits).
286
+
287
+ ### ISO 27001 Evidence Collection
288
+
289
+ Collect, organize, and validate evidence for ISO 27001 and SOC 2 audits. API-first approach with CLI commands for major cloud platforms. Produces timestamped, auditor-ready evidence packages.
290
+
291
+ ```bash
292
+ npx skills add open-agreements/open-agreements --skill iso-27001-evidence-collection
293
+ ```
294
+
295
+ ### ISO 27001 Internal Audit
296
+
297
+ Run a structured internal audit against ISO 27001:2022. Walk through controls by domain, identify gaps, collect evidence, and generate findings with corrective action recommendations.
298
+
299
+ ```bash
300
+ npx skills add open-agreements/open-agreements --skill iso-27001-internal-audit
301
+ ```
302
+
303
+ ### SOC 2 Readiness
304
+
305
+ Assess SOC 2 Type II readiness. Map Trust Services Criteria to controls, identify gaps, and build a prioritized remediation plan with NIST SP 800-53 cross-mapping.
306
+
307
+ ```bash
308
+ npx skills add open-agreements/open-agreements --skill soc2-readiness
309
+ ```
310
+
311
+ All three skills use NIST SP 800-53 (public domain) as their canonical reference. Browse the full skill catalog at [skills.sh/open-agreements](https://skills.sh/open-agreements).
312
+
283
313
  ## Optional Content Roots (Future-Proofing)
284
314
 
285
315
  To support logical unbundling as form libraries grow, `open-agreements` can load content from additional roots via:
@@ -17,6 +17,24 @@ An AI addendum based on [Common Paper's](https://commonpaper.com) standard terms
17
17
  | `ai_policy_reference` | string | no | Reference to AI usage policy |
18
18
  | `additional_terms` | string | no | Additional AI-specific terms |
19
19
 
20
+
21
+ ### Signature Block
22
+
23
+ | Field | Type | Required | Description |
24
+ |-------|------|----------|-------------|
25
+ | `provider_signatory_type` | enum (`entity` / `individual`) | no | Whether the Provider signatory is an entity or individual (default: `entity`) |
26
+ | `provider_signatory_name` | string | no | Full legal name of the Provider's signatory |
27
+ | `provider_signatory_title` | string | no | Title/role of the Provider's signatory (entity only) |
28
+ | `provider_signatory_company` | string | no | Company name for the Provider signatory (entity only) |
29
+ | `provider_signatory_email` | string | no | Notice email address for the Provider |
30
+ | `customer_signatory_type` | enum (`entity` / `individual`) | no | Whether the Customer signatory is an entity or individual (default: `entity`) |
31
+ | `customer_signatory_name` | string | no | Full legal name of the Customer's signatory |
32
+ | `customer_signatory_title` | string | no | Title/role of the Customer's signatory (entity only) |
33
+ | `customer_signatory_company` | string | no | Company name for the Customer signatory (entity only) |
34
+ | `customer_signatory_email` | string | no | Notice email address for the Customer |
35
+
36
+ > **Note:** `*_title` and `*_company` are only rendered when the corresponding `*_type` is `entity` (default). When set to `individual`, those cells are left blank even if values are provided.
37
+
20
38
  ## Attribution
21
39
 
22
40
  Based on the Common Paper AI Addendum, available at https://commonpaper.com.
@@ -26,6 +26,142 @@ fields:
26
26
  type: string
27
27
  description: Additional AI-specific terms
28
28
  section: Legal
29
+ - name: training_data_none
30
+ type: boolean
31
+ description: No Training Data types selected
32
+ section: AI Training
33
+ - name: training_data_usage
34
+ type: boolean
35
+ description: Usage Data is Training Data
36
+ section: AI Training
37
+ - name: training_data_feedback
38
+ type: boolean
39
+ description: Feedback is Training Data
40
+ section: AI Training
41
+ - name: training_data_input
42
+ type: boolean
43
+ description: Input is Training Data
44
+ section: AI Training
45
+ - name: training_data_output
46
+ type: boolean
47
+ description: Output is Training Data
48
+ section: AI Training
49
+ - name: training_data_prompts
50
+ type: boolean
51
+ description: User prompts (excluding other Input) are Training Data
52
+ section: AI Training
53
+ - name: training_data_customer_content
54
+ type: boolean
55
+ description: Customer Content is Training Data
56
+ section: AI Training
57
+ - name: training_data_additional
58
+ type: boolean
59
+ description: Additional Training Data types apply
60
+ section: AI Training
61
+ - name: model_training_none
62
+ type: boolean
63
+ description: No model training permitted
64
+ section: AI Training
65
+ - name: model_training_customer_only
66
+ type: boolean
67
+ description: Model training solely for Customer benefit
68
+ section: AI Training
69
+ - name: training_data_aggregated
70
+ type: boolean
71
+ description: Training Data must be aggregated
72
+ section: AI Training
73
+ - name: training_data_deidentified
74
+ type: boolean
75
+ description: Training Data must be de-identified
76
+ section: AI Training
77
+ - name: training_data_best_effort_deidentify
78
+ type: boolean
79
+ description: Provider will use commercially reasonable efforts to de-identify Training Data
80
+ section: AI Training
81
+ - name: training_requirements_additional
82
+ type: boolean
83
+ description: Additional Training Data requirements apply
84
+ section: AI Training
85
+ - name: no_customer_identification
86
+ type: boolean
87
+ description: Neither Input nor Output may identify Customer
88
+ section: AI Output
89
+ - name: improvements_for_customer_only
90
+ type: boolean
91
+ description: Improvements from Customer data solely for Customer benefit
92
+ section: AI Output
93
+ - name: output_restrictions_additional
94
+ type: boolean
95
+ description: Additional output restrictions apply
96
+ section: AI Output
97
+ - name: ai_provider_covered_claims
98
+ type: boolean
99
+ description: Provider AI-specific Covered Claims apply
100
+ section: AI Liability
101
+ - name: provider_covered_claims_detail
102
+ type: string
103
+ description: Detail of Provider Covered Claims describing Output IP infringement provisions
104
+ section: AI Liability
105
+ - name: provider_covered_claims_exclusions
106
+ type: string
107
+ description: Provider Covered Claims indemnity exclusions (e.g. combined use, Input, breach, modifications)
108
+ section: AI Liability
109
+ - name: customer_covered_claims_detail
110
+ type: string
111
+ description: Detail of Customer Covered Claims describing IP infringement and usage violation provisions
112
+ section: AI Liability
113
+ - name: ai_customer_covered_claims
114
+ type: boolean
115
+ description: Customer AI-specific Covered Claims apply
116
+ section: AI Liability
117
+ - name: provider_signatory_type
118
+ type: enum
119
+ description: Whether the Provider signatory is an entity or individual
120
+ options:
121
+ - entity
122
+ - individual
123
+ default: entity
124
+ section: Signature Block
125
+ - name: provider_signatory_name
126
+ type: string
127
+ description: Full legal name of the Provider's signatory
128
+ section: Signature Block
129
+ - name: provider_signatory_title
130
+ type: string
131
+ description: Title/role of the Provider's signatory (entity only)
132
+ section: Signature Block
133
+ - name: provider_signatory_company
134
+ type: string
135
+ description: Company name for the Provider signatory (entity only)
136
+ section: Signature Block
137
+ - name: provider_signatory_email
138
+ type: string
139
+ description: Notice email address for the Provider
140
+ section: Signature Block
141
+ - name: customer_signatory_type
142
+ type: enum
143
+ description: Whether the Customer signatory is an entity or individual
144
+ options:
145
+ - entity
146
+ - individual
147
+ default: entity
148
+ section: Signature Block
149
+ - name: customer_signatory_name
150
+ type: string
151
+ description: Full legal name of the Customer's signatory
152
+ section: Signature Block
153
+ - name: customer_signatory_title
154
+ type: string
155
+ description: Title/role of the Customer's signatory (entity only)
156
+ section: Signature Block
157
+ - name: customer_signatory_company
158
+ type: string
159
+ description: Company name for the Customer signatory (entity only)
160
+ section: Signature Block
161
+ - name: customer_signatory_email
162
+ type: string
163
+ description: Notice email address for the Customer
164
+ section: Signature Block
29
165
  required_fields:
30
166
  - company_name
31
167
  - agreement_description
@@ -0,0 +1,5 @@
1
+ {
2
+ "[ that the Output—when generated and used by Customer according to the terms of the Agreement and the AI Addendum—violates, misappropriates, or otherwise infringes upon the intellectual property or other proprietary rights of another person or entity. ": "{provider_covered_claims_detail}",
3
+ "Without limiting the indemnity exclusions in the Agreement, Provider's obligations as an Indemnifying Party will not apply to Provider Covered Claims that result from: (a) use of Output in combination with data, software, hardware, equipment, technology, or other products or services not provided by Provider; (b) Input; (c) Customer's use of the AI Services in breach of the Agreement or the AI Addendum; (d) modifications to the Output that were not made by Provider; (e) Output that Customer knew or should have known might violate, misappropriate, or otherwise infringe upon another's intellectual property or other proprietary rights; or (f) a claim that use of Output infringes another's trademark or related rights. ]": "{provider_covered_claims_exclusions}",
4
+ "[ that (1) the Input—when used by Provider according to the terms of the Agreement and the AI Addendum—violates, misappropriates, or otherwise infringes upon the intellectual property or other proprietary rights of another person or entity; or (2) results from Customer's use of the AI Services in violation of the applicable restrictions in the Agreement or the AI Addendum. ]": "{customer_covered_claims_detail}"
5
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "groups": [
3
+ {
4
+ "id": "training_data_types",
5
+ "type": "checkbox",
6
+ "options": [
7
+ { "marker": "None", "trigger": { "field": "training_data_none" } },
8
+ { "marker": "Usage Data", "trigger": { "field": "training_data_usage" } },
9
+ { "marker": "Feedback", "trigger": { "field": "training_data_feedback" } },
10
+ { "marker": "Input", "trigger": { "field": "training_data_input" } },
11
+ { "marker": "Output", "trigger": { "field": "training_data_output" } },
12
+ { "marker": "User prompts, excluding other components of Input", "trigger": { "field": "training_data_prompts" } },
13
+ { "marker": "Customer Content", "trigger": { "field": "training_data_customer_content" } },
14
+ { "marker": "{additional_terms}", "trigger": { "field": "training_data_additional" } }
15
+ ]
16
+ },
17
+ {
18
+ "id": "model_training_scope",
19
+ "type": "radio",
20
+ "options": [
21
+ { "marker": "None", "trigger": { "field": "model_training_none", "equals": true } },
22
+ { "marker": "Train the Model(s) in the AI Services solely for Customer\u2019s benefit", "trigger": { "field": "model_training_customer_only", "equals": true } },
23
+ { "marker": "Train the Model(s) in the AI Services", "trigger": "default" }
24
+ ]
25
+ },
26
+ {
27
+ "id": "training_data_requirements",
28
+ "type": "checkbox",
29
+ "options": [
30
+ { "marker": "Training Data must be aggregated", "trigger": { "field": "training_data_aggregated" } },
31
+ { "marker": "Training Data must be de-identified", "trigger": { "field": "training_data_deidentified" } },
32
+ { "marker": "Provider will use commercially reasonable efforts consistent with industry standard technology to de-identify", "trigger": { "field": "training_data_best_effort_deidentify" } },
33
+ { "marker": "{additional_terms}", "trigger": { "field": "training_requirements_additional" } }
34
+ ]
35
+ },
36
+ {
37
+ "id": "output_restrictions",
38
+ "type": "checkbox",
39
+ "options": [
40
+ { "marker": "Neither Input nor Output may identify Customer", "trigger": { "field": "no_customer_identification" } },
41
+ { "marker": "Improvements based on Customer's Input, Output, or Training Data will be solely for Customer's benefit", "trigger": { "field": "improvements_for_customer_only" } },
42
+ { "marker": "{additional_terms}", "trigger": { "field": "output_restrictions_additional" } }
43
+ ]
44
+ },
45
+ {
46
+ "id": "ai_covered_claims",
47
+ "type": "checkbox",
48
+ "options": [
49
+ { "marker": "Provider Covered Claims include any action", "trigger": { "field": "ai_provider_covered_claims" } },
50
+ { "marker": "Customer Covered Claims include any action", "trigger": { "field": "ai_customer_covered_claims" } }
51
+ ]
52
+ },
53
+ {
54
+ "id": "ai_acceptable_use_policy",
55
+ "type": "checkbox",
56
+ "standalone": true,
57
+ "options": [
58
+ { "marker": "Use of the AI Services is subject to the Acceptable Use Policy", "trigger": { "field": "ai_policy_reference" } }
59
+ ]
60
+ }
61
+ ]
62
+ }
@@ -18,4 +18,92 @@ fields:
18
18
  type: string
19
19
  description: Additional AI-specific terms
20
20
  section: Legal
21
+ - name: training_data_none
22
+ type: boolean
23
+ description: No Training Data types selected
24
+ section: AI Training
25
+ - name: training_data_usage
26
+ type: boolean
27
+ description: Usage Data is Training Data
28
+ section: AI Training
29
+ - name: training_data_feedback
30
+ type: boolean
31
+ description: Feedback is Training Data
32
+ section: AI Training
33
+ - name: training_data_input
34
+ type: boolean
35
+ description: Input is Training Data
36
+ section: AI Training
37
+ - name: training_data_output
38
+ type: boolean
39
+ description: Output is Training Data
40
+ section: AI Training
41
+ - name: training_data_prompts
42
+ type: boolean
43
+ description: User prompts (excluding other Input) are Training Data
44
+ section: AI Training
45
+ - name: training_data_customer_content
46
+ type: boolean
47
+ description: Customer Content is Training Data
48
+ section: AI Training
49
+ - name: training_data_additional
50
+ type: boolean
51
+ description: Additional Training Data types apply
52
+ section: AI Training
53
+ - name: model_training_none
54
+ type: boolean
55
+ description: No model training permitted
56
+ section: AI Training
57
+ - name: model_training_customer_only
58
+ type: boolean
59
+ description: Model training solely for Customer benefit
60
+ section: AI Training
61
+ - name: training_data_aggregated
62
+ type: boolean
63
+ description: Training Data must be aggregated
64
+ section: AI Training
65
+ - name: training_data_deidentified
66
+ type: boolean
67
+ description: Training Data must be de-identified
68
+ section: AI Training
69
+ - name: training_data_best_effort_deidentify
70
+ type: boolean
71
+ description: Provider will use commercially reasonable efforts to de-identify Training Data
72
+ section: AI Training
73
+ - name: training_requirements_additional
74
+ type: boolean
75
+ description: Additional Training Data requirements apply
76
+ section: AI Training
77
+ - name: no_customer_identification
78
+ type: boolean
79
+ description: Neither Input nor Output may identify Customer
80
+ section: AI Output
81
+ - name: improvements_for_customer_only
82
+ type: boolean
83
+ description: Improvements from Customer data solely for Customer benefit
84
+ section: AI Output
85
+ - name: output_restrictions_additional
86
+ type: boolean
87
+ description: Additional output restrictions apply
88
+ section: AI Output
89
+ - name: ai_provider_covered_claims
90
+ type: boolean
91
+ description: Provider AI-specific Covered Claims apply
92
+ section: AI Liability
93
+ - name: provider_covered_claims_detail
94
+ type: string
95
+ description: Detail of Provider Covered Claims describing Output IP infringement provisions
96
+ section: AI Liability
97
+ - name: provider_covered_claims_exclusions
98
+ type: string
99
+ description: Provider Covered Claims indemnity exclusions (e.g. combined use, Input, breach, modifications)
100
+ section: AI Liability
101
+ - name: customer_covered_claims_detail
102
+ type: string
103
+ description: Detail of Customer Covered Claims describing IP infringement and usage violation provisions
104
+ section: AI Liability
105
+ - name: ai_customer_covered_claims
106
+ type: boolean
107
+ description: Customer AI-specific Covered Claims apply
108
+ section: AI Liability
21
109
  required_fields: []
@@ -0,0 +1,5 @@
1
+ {
2
+ "[ that the Output\u2014when generated and used by Customer according to the terms of the Agreement and the AI Addendum\u2014violates, misappropriates, or otherwise infringes upon the intellectual property or other proprietary rights of another person or entity. ": "{provider_covered_claims_detail}",
3
+ "Without limiting the indemnity exclusions in the Agreement, Provider's obligations as an Indemnifying Party will not apply to Provider Covered Claims that result from: (a) use of Output in combination with data, software, hardware, equipment, technology, or other products or services not provided by Provider; (b) Input; (c) Customer's use of the AI Services in breach of the Agreement or the AI Addendum; (d) modifications to the Output that were not made by Provider; (e) Output that Customer knew or should have known might violate, misappropriate, or otherwise infringe upon another's intellectual property or other proprietary rights; or (f) a claim that use of Output infringes another's trademark or related rights. ]": "{provider_covered_claims_exclusions}",
4
+ "[ that (1) the Input\u2014when used by Provider according to the terms of the Agreement and the AI Addendum\u2014violates, misappropriates, or otherwise infringes upon the intellectual property or other proprietary rights of another person or entity; or (2) results from Customer's use of the AI Services in violation of the applicable restrictions in the Agreement or the AI Addendum. ]": "{customer_covered_claims_detail}"
5
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "groups": [
3
+ {
4
+ "id": "training_data_types",
5
+ "type": "checkbox",
6
+ "options": [
7
+ { "marker": "None", "trigger": { "field": "training_data_none" } },
8
+ { "marker": "Usage Data", "trigger": { "field": "training_data_usage" } },
9
+ { "marker": "Feedback", "trigger": { "field": "training_data_feedback" } },
10
+ { "marker": "Input", "trigger": { "field": "training_data_input" } },
11
+ { "marker": "Output", "trigger": { "field": "training_data_output" } },
12
+ { "marker": "User prompts, excluding other components of Input", "trigger": { "field": "training_data_prompts" } },
13
+ { "marker": "Customer Content", "trigger": { "field": "training_data_customer_content" } },
14
+ { "marker": "{additional_terms}", "trigger": { "field": "training_data_additional" } }
15
+ ]
16
+ },
17
+ {
18
+ "id": "model_training_scope",
19
+ "type": "radio",
20
+ "options": [
21
+ { "marker": "None", "trigger": { "field": "model_training_none", "equals": true } },
22
+ { "marker": "Train the Model(s) in the AI Services solely for Customer\u2019s benefit", "trigger": { "field": "model_training_customer_only", "equals": true } },
23
+ { "marker": "Train the Model(s) in the AI Services", "trigger": "default" }
24
+ ]
25
+ },
26
+ {
27
+ "id": "training_data_requirements",
28
+ "type": "checkbox",
29
+ "options": [
30
+ { "marker": "Training Data must be aggregated", "trigger": { "field": "training_data_aggregated" } },
31
+ { "marker": "Training Data must be de-identified", "trigger": { "field": "training_data_deidentified" } },
32
+ { "marker": "Provider will use commercially reasonable efforts consistent with industry standard technology to de-identify", "trigger": { "field": "training_data_best_effort_deidentify" } },
33
+ { "marker": "{additional_terms}", "trigger": { "field": "training_requirements_additional" } }
34
+ ]
35
+ },
36
+ {
37
+ "id": "output_restrictions",
38
+ "type": "checkbox",
39
+ "options": [
40
+ { "marker": "Neither Input nor Output may identify Customer", "trigger": { "field": "no_customer_identification" } },
41
+ { "marker": "Improvements based on Customer's Input, Output, or Training Data will be solely for Customer's benefit", "trigger": { "field": "improvements_for_customer_only" } },
42
+ { "marker": "{additional_terms}", "trigger": { "field": "output_restrictions_additional" } }
43
+ ]
44
+ },
45
+ {
46
+ "id": "ai_covered_claims",
47
+ "type": "checkbox",
48
+ "options": [
49
+ { "marker": "Provider Covered Claims include any action", "trigger": { "field": "ai_provider_covered_claims" } },
50
+ { "marker": "Customer Covered Claims include any action", "trigger": { "field": "ai_customer_covered_claims" } }
51
+ ]
52
+ },
53
+ {
54
+ "id": "ai_acceptable_use_policy",
55
+ "type": "checkbox",
56
+ "standalone": true,
57
+ "options": [
58
+ { "marker": "Use of the AI Services is subject to the Acceptable Use Policy", "trigger": { "field": "ai_policy_reference" } }
59
+ ]
60
+ }
61
+ ]
62
+ }
@@ -21,6 +21,24 @@ An amendment template for modifying existing agreements, based on [Common Paper'
21
21
  | `amendment_topic` | string | yes | Topic or variable being changed |
22
22
  | `amendment_details` | string | yes | Details about what is being changed |
23
23
 
24
+
25
+ ### Signature Block
26
+
27
+ | Field | Type | Required | Description |
28
+ |-------|------|----------|-------------|
29
+ | `party_1_signatory_type` | enum (`entity` / `individual`) | no | Whether the first party signatory is an entity or individual (default: `entity`) |
30
+ | `party_1_signatory_name` | string | no | Full legal name of the first party's signatory |
31
+ | `party_1_signatory_title` | string | no | Title/role of the first party's signatory (entity only) |
32
+ | `party_1_signatory_company` | string | no | Company name for the first party signatory (entity only) |
33
+ | `party_1_signatory_email` | string | no | Notice email address for the first party |
34
+ | `party_2_signatory_type` | enum (`entity` / `individual`) | no | Whether the second party signatory is an entity or individual (default: `entity`) |
35
+ | `party_2_signatory_name` | string | no | Full legal name of the second party's signatory |
36
+ | `party_2_signatory_title` | string | no | Title/role of the second party's signatory (entity only) |
37
+ | `party_2_signatory_company` | string | no | Company name for the second party signatory (entity only) |
38
+ | `party_2_signatory_email` | string | no | Notice email address for the second party |
39
+
40
+ > **Note:** `*_title` and `*_company` are only rendered when the corresponding `*_type` is `entity` (default). When set to `individual`, those cells are left blank even if values are provided.
41
+
24
42
  ## Attribution
25
43
 
26
44
  Based on the Common Paper Amendment, available at https://commonpaper.com.
@@ -42,6 +42,54 @@ fields:
42
42
  type: string
43
43
  description: Details about what is being changed
44
44
  section: Terms
45
+ - name: party_1_signatory_type
46
+ type: enum
47
+ description: Whether the first party signatory is an entity or individual
48
+ options:
49
+ - entity
50
+ - individual
51
+ default: entity
52
+ section: Signature Block
53
+ - name: party_1_signatory_name
54
+ type: string
55
+ description: Full legal name of the first party's signatory
56
+ section: Signature Block
57
+ - name: party_1_signatory_title
58
+ type: string
59
+ description: Title/role of the first party's signatory (entity only)
60
+ section: Signature Block
61
+ - name: party_1_signatory_company
62
+ type: string
63
+ description: Company name for the first party signatory (entity only)
64
+ section: Signature Block
65
+ - name: party_1_signatory_email
66
+ type: string
67
+ description: Notice email address for the first party
68
+ section: Signature Block
69
+ - name: party_2_signatory_type
70
+ type: enum
71
+ description: Whether the second party signatory is an entity or individual
72
+ options:
73
+ - entity
74
+ - individual
75
+ default: entity
76
+ section: Signature Block
77
+ - name: party_2_signatory_name
78
+ type: string
79
+ description: Full legal name of the second party's signatory
80
+ section: Signature Block
81
+ - name: party_2_signatory_title
82
+ type: string
83
+ description: Title/role of the second party's signatory (entity only)
84
+ section: Signature Block
85
+ - name: party_2_signatory_company
86
+ type: string
87
+ description: Company name for the second party signatory (entity only)
88
+ section: Signature Block
89
+ - name: party_2_signatory_email
90
+ type: string
91
+ description: Notice email address for the second party
92
+ section: Signature Block
45
93
  required_fields:
46
94
  - company_name
47
95
  - party_1
@@ -20,9 +20,28 @@ A HIPAA business associate agreement based on [Common Paper's](https://commonpap
20
20
  | `aggregation_restrictions` | string | no | Specific aggregation restrictions |
21
21
  | `offshoring_restrictions` | string | no | Specific offshoring rights or restrictions |
22
22
  | `breach_notification_unit` | string | no | Unit for breach notification period |
23
- | `fill_in_value` | string | no | General fill-in value |
23
+ | `breach_notification_number` | string | no | Numeric value for the breach notification period (e.g. 5) |
24
+ | `other_changes` | string | no | Prose describing other changes to BAA Standard Terms |
24
25
  | `custom_effective_date` | string | no | Custom effective date |
25
26
 
27
+
28
+ ### Signature Block
29
+
30
+ | Field | Type | Required | Description |
31
+ |-------|------|----------|-------------|
32
+ | `provider_signatory_type` | enum (`entity` / `individual`) | no | Whether the Provider signatory is an entity or individual (default: `entity`) |
33
+ | `provider_signatory_name` | string | no | Full legal name of the Provider's signatory |
34
+ | `provider_signatory_title` | string | no | Title/role of the Provider's signatory (entity only) |
35
+ | `provider_signatory_company` | string | no | Company name for the Provider signatory (entity only) |
36
+ | `provider_signatory_email` | string | no | Notice email address for the Provider |
37
+ | `company_signatory_type` | enum (`entity` / `individual`) | no | Whether the Company signatory is an entity or individual (default: `entity`) |
38
+ | `company_signatory_name` | string | no | Full legal name of the Company's signatory |
39
+ | `company_signatory_title` | string | no | Title/role of the Company's signatory (entity only) |
40
+ | `company_signatory_company` | string | no | Company name for the Company signatory (entity only) |
41
+ | `company_signatory_email` | string | no | Notice email address for the Company |
42
+
43
+ > **Note:** `*_title` and `*_company` are only rendered when the corresponding `*_type` is `entity` (default). When set to `individual`, those cells are left blank even if values are provided.
44
+
26
45
  ## Attribution
27
46
 
28
47
  Based on the Common Paper Business Associate Agreement, available at https://commonpaper.com.